/* First-view-only refresh. Booking behavior, destinations and tracking stay unchanged. */
.hero--focused{--hero-navy:#102b4a;background:#fff;padding:104px 0 44px;color:var(--hero-navy);isolation:isolate;}
.hero-backdrop{position:absolute;inset:0;z-index:0;pointer-events:none;}
.hero-backdrop img{width:100%;height:100%;object-fit:cover;object-position:center 55%;}
/* White haze is separate from the photo. Text stays on the dense end of the wash. */
.hero--focused::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.08) 40%,rgba(255,255,255,.35) 75%,#fff 100%),linear-gradient(90deg,#fff 0%,rgba(255,255,255,.97) 30%,rgba(255,255,255,.94) 44%,rgba(255,255,255,.55) 60%,rgba(255,255,255,.05) 82%);}
.hero--focused .hero-grid{position:relative;z-index:2;width:100%;max-width:1160px;display:block;}
.hero--focused .hero-copy{max-width:540px;}
.hero--focused .hero-action{margin-top:22px;max-width:470px;min-width:0;}
.hero--focused .hero-eyebrow{font-size:13px;font-weight:500;letter-spacing:.06em;color:var(--hero-navy);margin:0 0 14px;}
.hero--focused .hero-eyebrow::before{display:none;}
.hero--focused h1{font-size:clamp(36px,3.7vw,48px);font-weight:700;line-height:1.4;letter-spacing:-.04em;color:var(--hero-navy);}
.hero--focused .hero-sub{max-width:none;margin-top:12px;font-size:15px;line-height:1.7;color:var(--hero-navy);}
.hero-offer-label{font-size:14px;line-height:1.5;color:var(--hero-navy);}
.hero-offer-label span{font-size:13px;font-weight:400;}
.hero--focused .num--price{font-family:var(--font-body);font-size:34px;font-weight:700;line-height:1.5;letter-spacing:-.04em;white-space:nowrap;font-variant-numeric:tabular-nums;}
.hero--focused .num--price .yen{font-size:18px;margin-left:3px;}
.hero-hourly{font-size:14px;line-height:1.6;color:var(--hero-navy);margin-top:2px;}
.hero-hourly strong{font-size:17px;font-weight:700;}
.hero-hourly>span{font-size:12px;margin-left:3px;}
.hero-benefit-pair{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;margin-top:15px;padding:13px 0;border-top:1px solid rgba(16,43,74,.2);border-bottom:1px solid rgba(16,43,74,.2);}
.hero-benefit-item{min-width:0;}
.hero-benefit-item+ .hero-benefit-item{border-left:1px solid rgba(16,43,74,.2);padding-left:20px;}
.hero-benefit-label{font-size:14px;line-height:1.5;color:var(--hero-navy);}
.hero-benefit-value{font-size:22px;line-height:1.6;font-weight:700;color:var(--hero-navy);letter-spacing:-.03em;}
.hero-benefit-detail{font-size:13px;line-height:1.5;color:var(--hero-navy);}
.hero--focused .hero-cta{margin-top:18px;max-width:470px;}
.hero--focused .booking-actions{display:flex;flex-direction:column;gap:0;}
.hero--focused .btn-booking{min-height:56px;font-size:17px;padding:15px 18px;border-radius:6px;box-shadow:none;}
.hero--focused .booking-cta-note{font-size:13px;text-align:center;line-height:1.6;margin:7px 0 3px;color:#3b4b5a;}
.hero--focused .hero-cta .booking-actions .btn-line{align-self:center;min-height:44px;width:auto;margin-top:3px;padding:8px 12px;font-size:15px;line-height:1.6;gap:9px;background:transparent;border:0;border-radius:4px;box-shadow:none;color:var(--hero-navy);text-decoration:underline;text-underline-offset:4px;transform:none;}
.hero--focused .hero-cta .booking-actions .btn-line:hover{background:#edf2f7;}
.hero--focused .btn-line:focus-visible{outline:3px solid #2f80ed;outline-offset:3px;}
.hero--focused .btn-line .ico{width:26px;height:21px;font-size:8px;}
.hero-conditions{margin-top:12px;font-size:13px;line-height:1.7;color:#3b4b5a;text-wrap:pretty;}
.training-pay-note{font-size:14px;line-height:1.8;margin-top:8px;color:#4c5b68;}
@media(max-width:760px){
  .hero--focused{padding:72px 0 28px;}
  .hero-backdrop img{object-position:58% center;}
  .hero--focused::before{background:linear-gradient(180deg,rgba(255,255,255,.45) 0%,rgba(255,255,255,.45) 40%,rgba(255,255,255,.82) 62%,#fff 100%),linear-gradient(90deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.96) 35%,rgba(255,255,255,.86) 64%,rgba(255,255,255,.38) 85%,rgba(255,255,255,.14) 100%);}
  .hero--focused .hero-grid{display:block;padding:0 20px;}
  .hero--focused .hero-eyebrow{font-size:12px;margin-bottom:10px;}
  .hero--focused h1{font-size:34px;line-height:1.4;}
  .hero--focused .hero-sub{font-size:14px;margin-top:9px;line-height:1.65;}
  .hero--focused .hero-action{margin-top:16px;}
  .hero--focused .num--price{font-size:29px;}
  .hero--focused .num--price .yen{font-size:17px;}
  .hero-benefit-pair{gap:12px;margin-top:12px;padding:11px 0;}
  .hero-benefit-item+ .hero-benefit-item{padding-left:12px;}
  .hero-benefit-label{font-size:13px;}
  .hero-benefit-value{font-size:19px;}
  .hero-benefit-detail{font-size:12px;}
  .hero--focused .hero-cta{max-width:none;margin-top:14px;}
  .hero--focused .btn-booking{font-size:16px;}
  .hero-conditions{margin-top:10px;}
}
@media(max-width:360px){
  .hero--focused h1{font-size:30px;}
  .hero--focused .num--price{font-size:28px;}
  .hero-benefit-pair{gap:10px;}
  .hero-benefit-item+ .hero-benefit-item{padding-left:10px;}
  .hero-benefit-value{font-size:18px;}
}
