/* B001 FV: supplied composition with the shared green palette. */
.b001-fv { background:var(--color-surface-soft); overflow:clip; }
.b001-fv__inner { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); max-width:1680px; margin:auto; padding:1.75rem clamp(1.25rem,2.5vw,3rem) 1.75rem 0; gap:1.25rem; }
.b001-fv__story { position:relative; isolation:isolate; min-height:650px; overflow:hidden; }
.b001-fv__photo { position:absolute; z-index:-2; right:-2%; bottom:0; width:110%; max-width:none; height:100%; object-fit:contain; object-position:right bottom; }
.b001-fv__story::before { content:""; position:absolute; z-index:-1; inset:0; background:linear-gradient(105deg,var(--color-surface-soft) 0%,rgba(242,251,247,.94) 19%,rgba(242,251,247,.45) 45%,transparent 68%); }
.b001-fv__story::after { content:""; position:absolute; z-index:-1; inset:0; background:linear-gradient(150deg,rgba(102,217,160,.12),transparent 28%,transparent 86%,rgba(102,217,160,.2)); pointer-events:none; }
.b001-fv__copy { padding:2.75rem 0 1.5rem clamp(1.25rem,3vw,3.25rem); }
.b001-fv__intro { font-size:clamp(1.375rem,2.1vw,2.2rem); font-weight:800; line-height:1.6; letter-spacing:.04em; margin:0 0 1.35rem; }
.b001-fv h1 { font-size:clamp(1.71rem,2.745vw,2.88rem); font-weight:900; letter-spacing:.015em; line-height:1.55; margin:0 0 1.5rem; }
.b001-fv h1 span { color:var(--color-brand-green-dark); }
.b001-fv h1 mark { color:inherit; background:linear-gradient(transparent 86%,var(--color-brand-lime) 86%); }
.b001-fv__lead { font-size:clamp(.875rem,1.08vw,1.0625rem); line-height:1.9; font-weight:700; margin:0 0 1.75rem; }
.b001-fv__prices { display:flex; align-items:center; width:81%; gap:.7rem; }
.b001-fv__prices>div { flex:1; min-width:0; background:rgba(255,255,255,.94); border:1px solid var(--color-border-default); border-radius:1rem; padding:1.05rem 1rem; }
.b001-fv__prices p { margin:0 0 .35rem; font-size:clamp(.875rem,1.12vw,1.0625rem); font-weight:800; }
.b001-fv__prices p small { font-size:.8em; }
.b001-fv__prices strong { font-family:var(--font-numeric); font-size:clamp(1.625rem,2.55vw,2.75rem); color:var(--color-brand-green); line-height:1.2; white-space:nowrap; }
.b001-fv__prices strong small { font-size:.4em; }
.b001-fv__prices>.b001-fv__price-net { background:var(--color-brand-lime); border-color:var(--color-brand-lime); }
.b001-fv__price-arrow { font-size:2.5rem; line-height:1; font-weight:900; color:var(--color-brand-green-dark); }
.b001-fv__badges { display:flex; gap:.85rem; width:75%; list-style:none; margin:1.8rem 0 0; padding:0; }
.b001-fv__badges li { flex:1; max-width:6.2rem; min-height:8.3rem; display:flex; flex-direction:column; justify-content:center; align-items:center; text-align:center; gap:.75rem; padding:.9rem .25rem; background:rgba(255,255,255,.96); border:1px solid var(--color-border-default); border-radius:50%; font-weight:700; font-size:.875rem; line-height:1.6; }
.b001-fv__badges img { width:2rem; height:2rem; object-fit:contain; filter:brightness(0) saturate(100%) invert(31%) sepia(81%) saturate(1051%) hue-rotate(120deg) brightness(89%) contrast(101%); }
/* Keep shared simulator markup but arrange it vertically in the FV panel. */
.b001-fv #quick-simulator { padding:0; margin:0; align-self:center; background:none; min-width:0; }
.b001-fv .simulator-shell { width:100%; max-width:none; margin:0; padding:1.5rem; border:1px solid var(--color-border-default); border-radius:1.25rem; background:rgba(255,255,255,.97); box-shadow:var(--shadow-medium); }
.b001-fv .simulator-header { display:block; text-align:left; position:relative; margin:0 0 1.35rem; padding-top:.65rem; }
.b001-fv .simulator-header h2 { font-size:clamp(1.35rem,1.95vw,2rem); white-space:nowrap; display:block; line-height:1.4; }
.b001-fv .simulator-header h2>span { color:var(--color-brand-green); font-size:1.65em; }
.b001-fv .simulator-header h2>small { font-size:.72em; }
.b001-fv .simulator-header p { position:absolute; right:0; top:-.7rem; margin:0; background:var(--color-brand-lime); color:var(--color-brand-green-darker); padding:.15rem .5rem; border-radius:.4rem; font-size:.75rem; }
.b001-fv .simulator-layout { display:block; }
.b001-fv .simulator-form { display:grid; grid-template-columns:1fr; gap:.95rem; }
.b001-fv .simulator-group { min-height:0; border:0; padding:0; min-width:0; background:none; }
.b001-fv .simulator-group legend { display:flex; align-items:center; gap:.5rem; width:100%; font-size:1rem; padding:0; margin-bottom:.55rem; }
.b001-fv .simulator-group legend>span { display:inline-flex; justify-content:center; align-items:center; width:1.7rem; height:1.7rem; color:var(--color-text-inverse); background:var(--color-brand-green); border-radius:50%; flex-shrink:0; font-size:1rem; }
.b001-fv .simulator-choices { display:grid; gap:.65rem; grid-template-rows:auto; margin-block-start:0; flex:none; }
.b001-fv .simulator-choices--three { grid-template-columns:repeat(3,minmax(0,1fr)); }
.b001-fv .simulator-choices--two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.b001-fv .simulator-choice { width:100%; min-height:2.9rem; padding:.5rem .25rem; gap:.4rem; justify-content:center; flex-direction:column; font-size:.875rem; border:1px solid var(--color-border-muted); border-radius:.6rem; background:white; cursor:default; }
.b001-fv .simulator-choice.is-selected { color:var(--color-brand-green-darker); border-color:var(--color-brand-green); background:var(--color-surface-soft); }
.b001-fv .simulator-group:first-child .simulator-choice { min-height:6.5rem; }
.b001-fv .simulator-group:first-child .simulator-choice img { width:3.15rem; height:3.15rem; }
.b001-fv .simulator-group:not(:first-child) .simulator-choice img, .b001-fv .simulator-flow-arrow { display:none; }
.b001-fv .simulator-result { display:grid; grid-template-columns:27% minmax(0,1fr); column-gap:1rem; margin-top:var(--space-md); padding:1rem; border:0; border-radius:1rem; background:var(--color-surface-mint); }
.b001-fv .simulator-result__head { display:none; }
.b001-fv__result-recommend { display:flex; flex-direction:column; justify-content:center; align-items:center; gap:.4rem; color:var(--color-brand-green-darker); border-right:1px solid var(--color-border-default); }
.b001-fv__result-recommend>span { font-size:.75rem; }
.b001-fv__result-recommend img { width:3.25rem; height:3.75rem; object-fit:contain; }
.b001-fv__result-recommend strong { font-size:1rem; white-space:nowrap; }
.b001-fv .simulator-result__body { display:block; padding:0; }
.b001-fv .simulator-result__details>p { display:none; }
.b001-fv .simulator-result__details dl { margin:0 0 .6rem; font-size:.8125rem; }
.b001-fv .simulator-result__details dl>div { display:flex; justify-content:space-between; gap:.3rem; margin:0 0 .3rem; }
.b001-fv .simulator-result__price { border-top:1px solid var(--color-border-strong); padding:.45rem 0 0; }
.b001-fv .simulator-result__price>span { display:block; font-size:.8125rem; color:var(--color-brand-green-darker); }
.b001-fv .simulator-result__price>strong { display:block; font-size:clamp(2rem,3.3vw,3.4rem); color:var(--color-brand-green-darker); line-height:1.2; white-space:nowrap; background:linear-gradient(transparent 83%,var(--color-brand-lime) 83%); }
.b001-fv .simulator-result__price small { font-size:.35em; }
.b001-fv .simulator-result__action { margin:var(--space-md) 0 0; width:100%; max-width:var(--button-max-width); min-height:var(--button-min-height,3.5rem); padding:var(--button-padding,var(--space-sm) 1.75rem); font-size:var(--button-font-size,var(--font-size-cta)); gap:var(--button-gap,.3125rem); }
.b001-fv-trust { background:var(--color-brand-green-dark); border-block:1px solid transparent; color:white; }

.b001-fv-trust .trust-item { color:white; border-color:rgba(255,255,255,.3); }
.b001-fv-trust .trust-item img { filter:brightness(0) invert(1); }
/* Match A001 TOP's 1440px FV frame and 1200px content alignment on PC. */
@media(min-width:1200px) {
  .b001-fv__inner { --fv-photo-gutter:max(var(--page-gutter),calc((min(100%,var(--container-visual-max)) - var(--container-default-max)) / 2)); position:relative; isolation:isolate; width:min(100%,var(--container-visual-max)); max-width:var(--container-visual-max); padding-block:1.125rem; padding-inline:var(--fv-photo-gutter); grid-template-columns:minmax(0,1.46fr) minmax(0,1fr); gap:1.25rem; align-items:stretch; }
  /* Anchor the photo to the same capped container as the copy and simulator. */
  .b001-fv__inner::before { content:""; position:absolute; z-index:-1; inset-block:0; left:calc(var(--fv-photo-gutter) + 9.5rem); right:0; pointer-events:none; background:url("/assets/media/family-ecocute-v6-furnished.png") left center / cover no-repeat; mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.38) 8%,#000 20%,#000 48%,rgba(0,0,0,.55) 72%,rgba(0,0,0,.12) 90%,transparent 100%); }
  .b001-fv__story { container-type:inline-size; min-height:630px; display:flex; align-items:center; }
  .b001-fv__story>picture { display:none; }
  .b001-fv__story::before, .b001-fv__story::after { content:none; }
  .b001-fv__copy { width:100%; padding:0; }
  .b001-fv__intro { font-size:4cqw; line-height:1.5; letter-spacing:.025em; margin-bottom:1.125rem; }
  .b001-fv h1 { font-size:7.128cqw; line-height:1.4; letter-spacing:.01em; margin-bottom:1.25rem; }
  .b001-fv__lead { width:67%; font-size:2cqw; line-height:1.75; margin-bottom:1.375rem; }
  .b001-fv__prices { width:58%; gap:.5rem; }
  .b001-fv__prices>div { padding:.75rem .875rem; border-radius:.65rem; }
  .b001-fv__prices p { font-size:1.95cqw; margin-bottom:.25rem; }
  .b001-fv__prices strong { font-size:4.65cqw; }
  .b001-fv__price-arrow { font-size:2rem; }
  .b001-fv__badges { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); width:58%; gap:.75rem; margin-top:1.375rem; }
  .b001-fv__badges li { min-width:0; max-width:none; min-height:7rem; padding:.65rem .15rem; gap:.5rem; font-size:.8125rem; line-height:1.55; }
  .b001-fv__badges img { width:1.8rem; height:1.8rem; }
  .b001-fv #quick-simulator { container-type:inline-size; align-self:center; }
  .b001-fv .simulator-shell { position:relative; overflow:visible; padding:1rem 1.5rem 1.5rem; border-radius:1rem; }
  .b001-fv .simulator-header { position:static; padding-top:.75rem; margin-bottom:.875rem; }
  .b001-fv .simulator-header h2 { font-size:6cqw; line-height:1.3; letter-spacing:0; }
  .b001-fv .simulator-header h2>span { font-size:1.6em; }
  .b001-fv .simulator-header p { top:0; right:1rem; transform:translateY(-50%); z-index:1; border:1px solid var(--color-border-default); font-size:.6875rem; padding:.125rem .5rem; }
  .b001-fv .simulator-form { gap:.75rem; }
  .b001-fv .simulator-group legend { font-size:.875rem; margin-bottom:.4375rem; gap:.5rem; }
  .b001-fv .simulator-group legend::after { content:""; height:1px; background:var(--color-border-muted); flex:1; }
  .b001-fv .simulator-group legend>span { width:1.5rem; height:1.5rem; font-size:.9375rem; }
  .b001-fv .simulator-choices { gap:.625rem; }
  .b001-fv .simulator-choice { min-height:2.1875rem; padding:.25rem; border-radius:.5rem; font-size:.8125rem; line-height:1.5; }
  .b001-fv .simulator-group:first-child .simulator-choice { min-height:5.125rem; gap:.125rem; }
  .b001-fv .simulator-group:first-child .simulator-choice img { width:2.625rem; height:2.625rem; }
  .b001-fv .simulator-choices--two { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .b001-fv .simulator-result { grid-template-columns:28% minmax(0,1fr); gap:0 .8125rem; margin-top:1rem; padding:.75rem; border-radius:.75rem; }
  .b001-fv__result-recommend { gap:.375rem; padding-right:.65rem; }
  .b001-fv__result-recommend>span { border:1px solid var(--color-border-strong); border-bottom:0; border-radius:1.5rem 1.5rem 0 0; width:5rem; padding:.375rem .25rem 0; text-align:center; font-size:.6875rem; }
  .b001-fv__result-recommend img { width:5rem; height:3.5rem; padding:.25rem 1.125rem .5rem; margin-top:-.375rem; border:1px solid var(--color-border-strong); border-top:0; border-radius:0 0 1.25rem 1.25rem; }
  .b001-fv__result-recommend strong { font-size:3.65cqw; }
  .b001-fv .simulator-result__details { border:0; padding:0; }
  .b001-fv .simulator-result__details dl { gap:.25rem; margin:0 0 .375rem; }
  .b001-fv .simulator-result__details dl>div { font-size:.75rem; line-height:1.5; margin:0; }
  .b001-fv .simulator-result__price { padding-top:.375rem; }
  .b001-fv .simulator-result__price>span { margin:0; font-size:.75rem; line-height:1.5; }
  .b001-fv .simulator-result__price>strong { font-size:10.9cqw; line-height:1.1; text-align:right; }
  .b001-fv .simulator-result__action::after { content:""; width:.5rem; height:.5rem; border-top:2px solid currentColor; border-right:2px solid currentColor; transform:rotate(45deg); margin-left:.5rem; }


}
@media(min-width:1200px) and (max-width:1279px) { .b001-fv__inner { --fv-photo-gutter:var(--page-gutter); } .b001-fv__inner::before { left:calc(var(--fv-photo-gutter) + 47vw - 27.625rem); } }
@media(max-width:1199px) { .b001-fv__inner { grid-template-columns:1fr; padding:0; gap:0; } .b001-fv__story { min-height:610px; } .b001-fv__photo { width:95%; } .b001-fv__copy { padding:2.5rem; } .b001-fv__intro { font-size:1.85rem; } .b001-fv h1 { font-size:2.8rem; } .b001-fv__prices { width:58%; } .b001-fv__prices strong { font-size:2.5rem; } .b001-fv__badges { width:52%; } .b001-fv #quick-simulator { width:min(100% - 3rem,720px); margin:1.5rem auto 2rem; } .b001-fv .simulator-header h2 { font-size:1.85rem; } .b001-fv .simulator-result__price>strong { font-size:3.5rem; } }
@media(max-width:767px) { .b001-fv__story { min-height:650px; } .b001-fv__photo { width:135%; right:-15%; bottom:0; height:auto; } .b001-fv__story::before { background:linear-gradient(180deg,var(--color-surface-soft) 0%,rgba(242,251,247,.97) 21%,rgba(242,251,247,.2) 53%,transparent 75%); } .b001-fv__copy { padding:1.5rem 1.25rem 0; } .b001-fv__intro { font-size:1.2rem; margin-bottom:.8rem; } .b001-fv h1 { font-size:clamp(1.55rem,5.5vw,2.3rem); margin-bottom:.85rem; } .b001-fv__lead { font-size:.8125rem; line-height:1.8; margin-bottom:1rem; } .b001-fv__prices { width:100%; max-width:430px; gap:.45rem; } .b001-fv__prices>div { padding:.75rem; border-radius:.75rem; } .b001-fv__prices strong { font-size:1.85rem; } .b001-fv__prices p { font-size:.8125rem; } .b001-fv__badges { width:auto; gap:.5rem; margin-top:1rem; } .b001-fv__badges li { flex:none; width:3.9rem; min-height:5.5rem; font-size:.675rem; gap:.3rem; padding:.5rem .15rem; } .b001-fv__badges img { width:1.45rem; height:1.45rem; } .b001-fv #quick-simulator { width:calc(100% - 2rem); margin:1rem auto 1.5rem; } .b001-fv .simulator-shell { padding:1rem; border-radius:1rem; } .b001-fv .simulator-header h2 { font-size:clamp(1.03rem,4.1vw,1.6rem); } .b001-fv .simulator-header { padding-top:1rem; } .b001-fv .simulator-header p { top:-.4rem; font-size:.65rem; } .b001-fv .simulator-group legend { font-size:.875rem; } .b001-fv .simulator-choice { font-size:.72rem; } .b001-fv .simulator-choices { gap:.4rem; } .b001-fv .simulator-group:first-child .simulator-choice { min-height:5.5rem; } .b001-fv .simulator-result { padding:.85rem; column-gap:.65rem; grid-template-columns:25% minmax(0,1fr); } .b001-fv__result-recommend strong { font-size:.7rem; } .b001-fv__result-recommend img { width:2.5rem; } .b001-fv .simulator-result__details dl { font-size:.65rem; } .b001-fv .simulator-result__price>strong { font-size:2.1rem; } .b001-fv .simulator-result__action { font-size:.8125rem; }  }
/* Keep the raster e-shop logo legible; a white filter would erase its white-backed artwork. */
.b001-fv-trust .trust-item .trust-item__e-shop-logo { filter:none; background:white; border-radius:.25rem; }


@media (max-width: 374px) {
  .b001-fv__prices strong { font-size: 1.5rem; }
}

.b001-fv__prices .b001-fv__price-net strong { color:var(--color-brand-green-darker); }

/* 料金シミュレーターの案内ラベル。元の大きさを120%に拡大。 */
.b001-fv .simulator-header p {
  scale:1.32;
  transform-origin:right center;
  font-weight:700;
  border-color:var(--color-brand-lime);
}
.b001-fv .simulator-header p::after {
  content:"";
  position:absolute;
  top:100%;
  right:1rem;
  width:0;
  height:0;
  border-inline:5px solid transparent;
  border-top:6px solid var(--color-brand-lime);
}

@media (min-width:1200px) { .b001-fv .simulator-header p { top:14px; right:-12px; scale:1.65; } }

.b001-fv h1 .b001-fv__particle { font-size:.75em; }

.b001-fv h1 .b001-fv__installation { color:var(--color-brand-green-dark); }

@media (max-width:767px) {
  .b001-fv #quick-simulator { position:relative; z-index:1; margin-top:-1rem; }
  .b001-fv__story { display:flex; flex-direction:column; min-height:0; }
  .b001-fv__story > picture { position:relative; order:2; display:block; height:53vw; max-height:26rem; overflow:hidden; margin-top:var(--space-md); }
  .b001-fv__photo { width:135%; height:100%; right:-15%; object-fit:cover; object-position:center 75%; z-index:0; }
  .b001-fv__copy { display:grid; grid-template-columns:minmax(0,1fr) 4.5rem; column-gap:.5rem; }
  .b001-fv__intro, .b001-fv__prices { grid-column:1 / -1; }
  .b001-fv h1 { grid-column:1; grid-row:2; }
  .b001-fv__lead { grid-column:1; grid-row:3; }
  .b001-fv .b001-benefits-slot { grid-column:2; grid-row:2 / 4; width:100%; height:auto; margin:0; align-self:start; }
  .b001-fv .b001-benefits--shields { flex-direction:column; gap:.25rem; }
  .b001-fv .b001-benefits--shields > li { flex:none; width:4.5rem; height:4.09rem; }
  .b001-fv .b001-benefits__shield-main { font-size:1.24rem; }
  .b001-fv .b001-benefits__shield-main--wide { font-size:.913rem; }
  .b001-fv .b001-benefits__shield-ribbon { font-size:.475rem; }
  .b001-fv .simulator-shell { position:relative; overflow:visible; }
  .b001-fv .simulator-header { position:static; }
  .b001-fv .simulator-header p { top:0; right:1rem; transform:translateY(-50%); }
}

/* F012-03: all four shared service and warranty badges. */
.b001-fv .b001-benefits-slot:has(.trust-shield-badges) { height: auto; }
.b001-fv .trust-shield-badges { flex-wrap: wrap; }

/* F012-02: match the TOP trust band's tablet breakpoint. */
@media (min-width: 768px) and (max-width: 1279px) {
  .b001-fv-trust .trust-stack__inner {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .b001-fv-trust .trust-item {
    padding-inline: var(--space-md);
    white-space: nowrap;
  }
  .b001-fv-trust .trust-item:nth-child(3) {
    border-left: 0;
  }
  .b001-fv-trust .trust-item:nth-child(n+3) {
    border-top: 1px solid rgba(255,255,255,.3);
  }
}

/* F028 tablet: keep copy and prices clear of the family photo. */
@media (min-width: 768px) and (max-width: 1199px) {
  .b001-fv__story { display: flex; flex-direction: column; min-height: 0; }
  .b001-fv__story > picture {
    position: relative;
    order: 2;
    display: block;
    height: clamp(240px, 32vw, 360px);
    overflow: hidden;
  }
  .b001-fv__photo {
    inset: 0;
    width: 100%;
    height: 100%;
    max-width: 100%;
    object-fit: cover;
    object-position: center 70%;
    z-index: 0;
  }
  .b001-fv__copy {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 11rem;
    column-gap: var(--space-lg);
    padding: var(--space-xl);
  }
  .b001-fv__intro, .b001-fv h1, .b001-fv__prices { grid-column: 1 / -1; }
  .b001-fv__intro { font-size: 1.625rem; }
  .b001-fv h1 { font-size: 2.5rem; }
  .b001-fv__lead { grid-column: 1; align-self: center; }
  .b001-fv .b001-benefits-slot {
    grid-column: 2;
    grid-row: 3;
    width: 100%;
    height: auto;
    margin: 0 0 var(--space-lg);
    align-self: center;
  }
  .b001-fv .b001-benefits-slot .trust-shield-badges { flex-wrap: nowrap; width: 100%; gap: var(--space-xs); }
  .b001-fv .b001-benefits-slot .trust-shield-badges > li { min-width: 0; flex: 1; }
  .b001-fv__prices { width: 100%; max-width: 36rem; }
  .b001-fv__prices strong { font-size: 2.5rem; }
}
/* Let narrow price cards size their numerals to the actual available space. */
@media (max-width: 1199px) {
  .b001-fv__prices > div { container-type: inline-size; }
  .b001-fv__prices strong { font-size: clamp(1.125rem, 20cqw, 2.5rem); }
}

/* Only the priced standard tank is currently selectable. */
.b001-fv .simulator-choices--single { grid-template-columns:minmax(0,1fr); grid-template-rows:auto; }
