/* =========================================================
   Site IA v1: reusable header + /lesson/ page
   ========================================================= */
.mobile-menu,.menu-toggle{display:none}
.menu-toggle{width:48px;height:48px;border:1px solid rgba(23,59,120,.18);border-radius:14px;background:rgba(255,253,248,.92);padding:0;align-items:center;justify-content:center;flex-direction:column;gap:5px;color:var(--navy)}
.menu-toggle span{display:block;width:21px;height:2px;border-radius:999px;background:currentColor;transition:transform .25s ease,opacity .25s ease}
.site-header.menu-open .menu-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.site-header.menu-open .menu-toggle span:nth-child(2){opacity:0}
.site-header.menu-open .menu-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.lesson-preview-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;padding:0;margin:0;list-style:none}
.lesson-preview-grid li{padding:22px 18px;border-radius:20px;background:rgba(255,253,248,.86);border:1px solid rgba(222,209,186,.9);box-shadow:0 10px 26px rgba(80,60,30,.05)}
.lesson-preview-grid strong{display:block;color:var(--navy);font-family:"Yu Mincho","Hiragino Mincho ProN","YuMincho","MS PMincho",serif;font-size:21px;margin-bottom:7px}
.lesson-preview-grid span{display:block;color:var(--muted);font-size:14px;line-height:1.7}
.section-cta-row{display:flex;justify-content:center;margin-top:24px}
.access-preview .map-card{margin-top:0}
.top-contact-section{padding-top:12px}
.mobile-break{display:none}

/* /lesson/ */
.lesson-page .site-header{position:sticky}
.lesson-main{overflow:hidden}
.lesson-hero{max-width:1120px;margin:0 auto;padding:56px 20px 44px;display:grid;grid-template-columns:minmax(0,1.12fr) minmax(320px,.88fr);gap:42px;align-items:center}
.lesson-hero-copy h1{font-size:clamp(36px,5vw,58px);line-height:1.34;margin-bottom:20px}
.lesson-hero-copy .hero-lead{max-width:42em;margin-bottom:24px}
.lesson-badges{display:flex;flex-wrap:wrap;gap:9px;margin:0 0 28px;padding:0;list-style:none}
.lesson-badges li{padding:8px 12px;border-radius:999px;background:rgba(255,253,248,.82);border:1px solid rgba(222,209,186,.9);font-size:13px;font-weight:800;color:var(--navy)}
.lesson-hero-panel{padding:28px;border-radius:28px;background:linear-gradient(145deg,rgba(23,59,120,.96),rgba(83,111,154,.9));color:#fff;box-shadow:var(--shadow)}
.lesson-hero-panel h2{color:#fff;font-size:27px;line-height:1.5;margin-bottom:14px}
.lesson-hero-panel p{margin:0;line-height:1.95;opacity:.95}
.lesson-hero-panel .mini-note{display:block;margin-top:18px;padding-top:16px;border-top:1px solid rgba(255,255,255,.25);font-size:13px;font-weight:700}
.lesson-section{max-width:1120px;margin:0 auto;padding:58px 20px}
.lesson-section.alt{max-width:none;background:rgba(255,253,248,.52);border-top:1px solid rgba(222,209,186,.55);border-bottom:1px solid rgba(222,209,186,.55)}
.lesson-section.alt>.lesson-inner{max-width:1120px;margin:0 auto}
.lesson-section-head{max-width:760px;margin:0 auto 32px;text-align:center}
.lesson-section-head .section-kicker{margin-bottom:8px}
.lesson-section-head h2{font-size:clamp(29px,4vw,43px);line-height:1.45;margin-bottom:12px}
.lesson-section-head p{color:var(--muted);line-height:2;margin-bottom:0}
.start-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:stretch}
.lesson-card{padding:28px;border-radius:24px;background:rgba(255,253,248,.9);border:1px solid rgba(222,209,186,.9);box-shadow:0 12px 30px rgba(80,60,30,.06)}
.lesson-card h3{font-size:25px;line-height:1.55;margin-bottom:12px}
.lesson-card p:last-child{margin-bottom:0}
.lesson-list{padding:0;margin:18px 0 0;list-style:none;display:grid;gap:10px}
.lesson-list li{position:relative;padding-left:28px;line-height:1.8}
.lesson-list li::before{content:"✓";position:absolute;left:0;top:.25em;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:var(--green);color:#fff;font-size:12px;font-weight:900}
.private-note{margin-top:18px;padding:16px 18px;border-radius:16px;background:var(--gold-soft);color:#66583c;font-size:14px;line-height:1.8}
.growth-flow{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;padding:0;margin:0;list-style:none;counter-reset:step}
.growth-flow li{position:relative;padding:24px 16px 22px;border-radius:20px;background:rgba(255,253,248,.9);border:1px solid rgba(222,209,186,.9);text-align:center;min-height:142px;display:flex;align-items:center;justify-content:center;color:var(--navy);font-weight:900;line-height:1.65}
.growth-flow li::before{counter-increment:step;content:counter(step);position:absolute;top:10px;left:12px;color:var(--gold);font-size:12px}
.growth-flow li:not(:last-child)::after{content:"→";position:absolute;right:-13px;top:50%;transform:translateY(-50%);z-index:2;color:var(--gold);font-size:20px}
.exchange-note{max-width:800px;margin:22px auto 0;padding:22px 24px;border-radius:20px;background:linear-gradient(135deg,rgba(23,59,120,.96),rgba(83,111,154,.9));color:#fff;text-align:center;line-height:1.9}
.exchange-note strong{display:block;font-family:"Yu Mincho",serif;font-size:23px;margin-bottom:5px}
.foundation-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:22px;align-items:start}
.foundation-steps{padding:0;margin:0;list-style:none;display:grid;gap:11px;counter-reset:foundation}
.foundation-steps li{position:relative;padding:17px 18px 17px 54px;border-radius:17px;background:rgba(255,253,248,.9);border:1px solid rgba(222,209,186,.85);line-height:1.7}
.foundation-steps li::before{counter-increment:foundation;content:counter(foundation);position:absolute;left:16px;top:16px;width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:var(--navy);color:#fff;font-size:12px;font-weight:900}
.practical-box{padding:28px;border-radius:24px;background:var(--blue-soft);border:1px solid rgba(83,111,154,.16)}
.practical-box h3{font-size:27px;margin-bottom:12px}.practical-box p{line-height:2}.practical-box p:last-child{margin-bottom:0}
.small-group-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.small-group-highlight{margin-top:22px;padding:26px;border-radius:22px;background:var(--paper);border:1px solid rgba(201,178,124,.65);text-align:center;color:var(--navy);font-family:"Yu Mincho",serif;font-size:24px;font-weight:700;line-height:1.7}
.age-track{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
.age-card{padding:22px 17px;border-radius:20px;background:rgba(255,253,248,.9);border:1px solid rgba(222,209,186,.9)}
.age-card .age{display:block;color:#755f38;font-weight:900;margin-bottom:9px}.age-card h3{font-size:20px;line-height:1.5;margin-bottom:8px}.age-card p{font-size:14px;line-height:1.8;margin:0;color:#625b52}
.long-note{max-width:820px;margin:24px auto 0;text-align:center;color:var(--muted);line-height:2}
.lesson-info-grid{display:grid;grid-template-columns:.82fr 1.18fr;gap:22px;align-items:start}
.lesson-info-card,.pricing-card{padding:28px;border-radius:24px;background:rgba(255,253,248,.92);border:1px solid rgba(222,209,186,.9);box-shadow:var(--shadow)}
.lesson-info-card h3,.pricing-card h3{font-size:25px;margin-bottom:18px}
.lesson-facts{margin:0}.lesson-fact{display:grid;grid-template-columns:6em 1fr;gap:14px;padding:14px 0;border-top:1px solid rgba(222,209,186,.72)}.lesson-fact:first-child{border-top:0}.lesson-fact dt{font-weight:900;color:var(--navy)}.lesson-fact dd{margin:0}
.price-main{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:15px 0;border-bottom:1px solid rgba(222,209,186,.72)}.price-main span{font-weight:800}.price-main strong{color:var(--navy);font-size:26px;white-space:nowrap}
.private-prices{padding:0;margin:12px 0 0;list-style:none}.private-prices li{display:flex;justify-content:space-between;gap:14px;padding:11px 0;border-top:1px solid rgba(222,209,186,.6)}.private-prices strong{color:var(--navy);white-space:nowrap}
.price-notes{margin-top:18px;padding:16px;border-radius:15px;background:var(--paper-soft);font-size:13px;line-height:1.85;color:var(--muted)}
.consult-box{margin-top:22px;padding:20px 22px;border-left:4px solid var(--gold);background:rgba(241,231,207,.5);border-radius:0 16px 16px 0;line-height:1.9}
.lesson-final{max-width:1120px;margin:0 auto;padding:18px 20px 70px}.lesson-final .final-cta{margin-top:0}.lesson-final .final-cta p{max-width:42em;margin-left:auto;margin-right:auto}
.lesson-footer-link{color:#fff;text-decoration:underline;text-underline-offset:3px}

@media(max-width:860px){
  body.menu-lock{overflow:hidden}
  .desktop-nav{display:none!important}
  .menu-toggle{display:flex;flex:0 0 auto}
  .site-header{position:sticky}
  .header-inner{min-height:64px}
  .mobile-menu{display:none;position:absolute;top:100%;left:0;right:0;padding:8px 14px 18px;background:rgba(255,253,248,.98);border-bottom:1px solid rgba(201,178,124,.55);box-shadow:0 18px 30px rgba(58,42,18,.12)}
  .site-header.menu-open .mobile-menu{display:grid}
  .mobile-menu a{min-height:48px;display:flex;align-items:center;padding:10px 12px;border-bottom:1px solid rgba(222,209,186,.7);color:var(--navy);text-decoration:none;font-weight:800;font-size:15px}
  .mobile-menu a:last-child{border-bottom:0}
  .mobile-break{display:block}
  .lesson-preview-grid{grid-template-columns:1fr 1fr}
  .section-cta-row .button{width:auto;min-width:260px}
  .lesson-hero{grid-template-columns:1fr;padding:34px 16px 38px;gap:22px}
  .lesson-hero-copy h1{font-size:34px;line-height:1.45}
  .lesson-hero-panel{padding:22px;border-radius:22px}
  .lesson-hero-panel h2{font-size:23px}
  .lesson-section{padding:46px 16px}
  .lesson-section.alt{padding-left:16px;padding-right:16px}
  .lesson-section-head{margin-bottom:26px;text-align:left}
  .lesson-section-head h2{font-size:29px}
  .start-grid,.foundation-grid,.small-group-grid,.lesson-info-grid{grid-template-columns:1fr}
  .lesson-card,.practical-box,.lesson-info-card,.pricing-card{padding:22px;border-radius:20px}
  .growth-flow{grid-template-columns:1fr;gap:10px}
  .growth-flow li{min-height:0;text-align:left;justify-content:flex-start;padding:17px 18px 17px 52px}
  .growth-flow li::before{top:50%;left:16px;transform:translateY(-50%)}
  .growth-flow li:not(:last-child)::after{content:"↓";right:auto;left:27px;top:auto;bottom:-19px;transform:none}
  .exchange-note{text-align:left;padding:20px}.exchange-note strong{font-size:21px}
  .small-group-highlight{text-align:left;font-size:21px;padding:22px}
  .age-track{grid-template-columns:1fr;gap:10px}.age-card{padding:20px}.long-note{text-align:left;margin-top:20px}
  .price-main strong{font-size:23px}
  .lesson-final{padding:8px 16px 92px}
}
@media(max-width:540px){
  .lesson-preview-grid{grid-template-columns:1fr}
  .lesson-preview-grid li{padding:18px}
  .section-cta-row{margin-top:18px}.section-cta-row .button{width:100%;min-width:0}
  .lesson-badges{gap:7px}.lesson-badges li{font-size:12px;padding:7px 10px}
  .lesson-fact{grid-template-columns:5em 1fr;font-size:14px}
  .price-main{align-items:flex-start;flex-direction:column;gap:3px}.price-main strong{font-size:24px}
  .private-prices li{align-items:flex-start}.private-prices strong{font-size:18px}
}
