:root{
  --ink:#173933;
  --ink-2:#244a43;
  --paper:#f5f3ef;
  --paper-2:#e9e5dd;
  --white:#fffdf8;
  --accent:#8a6a32;
  --muted:#66625a;
  --line:#ccc8c0;
  --dark-line:#49615c;
  --serif:Georgia,'Times New Roman',serif;
  --sans:Arial,Helvetica,sans-serif;
  --content-max:1560px;
  --page-gutter:clamp(22px,2.5vw,40px);
  --grid-gap:clamp(38px,4vw,64px);
  --cell-pad:clamp(24px,2vw,34px);
  --line-inset:clamp(8px,.8vw,12px);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:96px}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 var(--sans);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}button,summary{font:inherit}img{max-width:100%}.wrap{width:min(var(--content-max),calc(100% - (2 * var(--page-gutter))));margin-inline:auto}
.skip{position:absolute;left:12px;top:-100px;z-index:100;background:var(--white);padding:10px 14px}.skip:focus{top:12px}
a:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:5px}

.site-header{height:96px;padding:0 max(var(--page-gutter),calc((100vw - var(--content-max))/2));border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:28px;position:relative;z-index:60;background:var(--paper)}
.brand{font:27px/1.2 var(--serif);white-space:nowrap}.brand span{display:block;margin-top:6px;font:10px/1.3 var(--sans);letter-spacing:.14em}
.desktop-nav{display:flex;gap:36px;font-size:13px}.desktop-nav a,.nav-cta{transition:opacity .2s}.desktop-nav a:hover,.nav-cta:hover{opacity:.58}
.nav-cta{white-space:nowrap;border-bottom:1px solid;display:flex;align-items:center;gap:16px;padding-bottom:6px;font-size:14px}
.mobile-menu{display:none}

.eyebrow{margin:0 0 20px;font-size:12px;line-height:1.6;font-weight:400;letter-spacing:.14em;text-transform:uppercase}
h1,h2{margin:0;font-family:var(--serif);font-weight:400;letter-spacing:-.035em;line-height:1.06}h1{font-size:clamp(52px,4.7vw,78px);text-wrap:balance}h2{font-size:clamp(40px,3.85vw,60px);text-wrap:balance}h3{margin:0;font-weight:500;line-height:1.3}em{font-weight:400;font-style:italic;color:inherit}

.hero{display:grid;grid-template-columns:minmax(0,1.16fr) minmax(0,.84fr);gap:var(--grid-gap);align-items:center;padding:40px 0 52px}
.hero-copy{max-width:760px}.lead{max-width:620px;margin:25px 0 0;font-size:18px;line-height:1.65;color:#41534e}
.actions{display:flex;align-items:center;gap:28px;margin-top:32px}.button,.text-link{border-bottom:1px solid;display:inline-flex;align-items:center;justify-content:space-between;gap:30px;width:fit-content;padding:11px 0;font-size:14px;line-height:1.5;transition:opacity .2s}.button{background:transparent;color:var(--ink)}.button:hover,.text-link:hover{opacity:.58}
.hero-visual{position:relative;width:min(100%,520px);justify-self:end;margin-right:0}.portrait-frame{position:relative;aspect-ratio:3/4;overflow:hidden;background:#cdd5ca}.portrait-frame img{width:100%;height:auto;display:block;object-fit:contain;object-position:center}

.intro-strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;padding:26px max(var(--page-gutter),calc((100vw - var(--content-max))/2))}
.intro-strip p{margin:0;padding-right:3vw;font:20px/1.42 var(--serif);color:var(--ink)}.intro-strip p+p{border-left:1px solid var(--line);padding-left:3vw}

.lesson-section{background:var(--ink);color:#f5f3ef;padding:84px 0 82px}.lesson-section .eyebrow{color:#c8d0cd}
.showcase-title{display:grid;grid-template-columns:7fr 5fr;gap:var(--grid-gap);align-items:end}.showcase-title h2{font-size:clamp(44px,4.7vw,68px)}.showcase-title p{max-width:610px;margin:0;color:#c8d2ce;font-size:15px}
.lesson-showcase{margin-top:48px}.demo-figure{margin:0}.demo-figure>a{display:block;overflow:hidden;background:#f0f2f1}.demo-figure img{display:block;width:100%;height:100%;object-fit:cover;object-position:top center;transition:transform .35s ease}.demo-figure>a:hover img{transform:scale(1.006)}.demo-main>a img{aspect-ratio:4/3;object-fit:contain}.showcase-secondary{display:grid;grid-template-columns:1.18fr .82fr;gap:5.5vw;margin-top:46px;align-items:start}.showcase-secondary .demo-figure>a img{aspect-ratio:4/3}.showcase-secondary .demo-figure:nth-child(2){margin-top:76px}
.demo-figure figcaption{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:end;margin-top:17px}.demo-figure figcaption div{min-width:0}.demo-figure figcaption span{display:block;color:#bfc9c5;font-size:11px;letter-spacing:.14em}.demo-figure figcaption strong{display:block;margin-top:8px;font:clamp(23px,2.25vw,31px)/1.23 var(--serif);font-weight:400;color:#fff}.demo-figure figcaption a{border-bottom:1px solid #8ea19a;padding-bottom:5px;font-size:12px;color:#d3dcda;white-space:nowrap}
.showcase-swipe{display:none}.showcase-note{margin-top:28px;color:#b7c3bf;font-size:12px;line-height:1.6}

.method{padding:88px 0 92px}.section-top{display:grid;grid-template-columns:5fr 7fr;gap:0 var(--grid-gap);align-items:end}.section-top .eyebrow{grid-column:1/-1}.section-top>p:last-child{margin:0;max-width:610px;color:var(--muted)}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:4.5vw;margin-top:42px}.steps article{padding-top:18px;border-top:1px solid var(--line)}.number{display:block;font:clamp(58px,5vw,78px)/.9 var(--serif);color:#b3aea5;letter-spacing:-.05em}.steps h3{margin-top:22px;font:26px/1.25 var(--serif);font-weight:400}.steps p{margin:8px 0 0;color:var(--muted);font-size:14px;max-width:330px}

.route-section{padding:88px 0 94px;border-top:1px solid var(--line);display:grid;grid-template-columns:5fr 7fr;gap:var(--grid-gap);align-items:start}.route-intro{display:block;margin:0}.route-intro .eyebrow{margin-bottom:22px}.route-intro h2{font-size:clamp(40px,4vw,60px)}.route-intro>p:last-child{margin:25px 0 0;max-width:600px;color:var(--muted)}
.route-line{list-style:none;margin:0;padding:0}.route-line li{display:grid;grid-template-columns:48px 1fr;gap:18px;border-top:1px solid var(--line);padding:20px var(--line-inset) 21px}.route-line li:last-child{border-bottom:1px solid var(--line)}.route-line li>span{display:block;padding-top:3px;font-size:12px;color:var(--muted)}.route-line h3{font:25px/1.25 var(--serif);font-weight:400}.route-line p{margin:7px 0 0;color:var(--muted);font-size:14px;line-height:1.5}

.progress-section{background:#ded9cf;padding:90px 0 96px}.progress-head{display:grid;grid-template-columns:5fr 7fr;gap:var(--grid-gap);align-items:end}.progress-head .eyebrow{margin:0}.progress-head h2{font-size:clamp(42px,4.2vw,64px)}
.progress-refined{display:grid;grid-template-columns:5fr 7fr;gap:var(--grid-gap);margin-top:48px;align-items:start}.progress-lead{margin:0 0 26px;color:#5d5951;max-width:610px}.evidence-list{border-top:1px solid #bdb6a9}.evidence-list>div{display:grid;grid-template-columns:38px 1fr;gap:12px;padding:16px var(--line-inset);border-bottom:1px solid #bdb6a9}.evidence-list span{font-size:12px;color:#6d685f}.evidence-list p{margin:0;font-size:14px}
.progress-case{border-top:1px solid #bdb6a9;padding-top:18px}.progress-case-head .eyebrow{margin-bottom:14px;color:#5d5951}.progress-case-head h3{max-width:700px;font:clamp(31px,3vw,44px)/1.14 var(--serif);font-weight:400}.progress-case-head>p:last-child{margin:12px 0 0;color:#66625a;font-size:13px}.progress-metrics{margin-top:25px;border-top:1px solid #bdb6a9}.progress-metrics article{display:grid;grid-template-columns:140px minmax(150px,185px) minmax(0,1fr);gap:28px;align-items:baseline;padding:17px var(--line-inset);border-bottom:1px solid #bdb6a9}.progress-metrics span{font-size:12px;letter-spacing:.11em;color:#5d5951}.progress-metrics strong{font:clamp(29px,2.7vw,42px)/1.05 var(--serif);font-weight:400;color:var(--ink);white-space:nowrap}.progress-metrics p{margin:0;color:#66625a;font-size:13px}.progress-next{margin:20px 0 0;color:#66625a;font-size:13px}.progress-next strong{color:var(--ink)}

.about{display:grid;grid-template-columns:5fr 7fr;gap:var(--grid-gap);padding:90px 0 94px;border-bottom:1px solid var(--line)}.about-quote{max-width:610px;margin:30px 0 0;font:italic clamp(27px,2.25vw,31px)/1.42 var(--serif);color:#465753}.about-body{padding-top:35px}.about-body p{margin:0 0 17px;color:var(--muted);font-size:15px}.about-tags{display:flex;flex-wrap:wrap;gap:0;margin-top:26px;padding-top:16px;border-top:1px solid var(--line);font:16px/1.5 var(--serif)}.about-tags span{padding:0;border:0}.about-tags span+span:before{content:'·';margin:0 13px;color:#99948b}

.price-section{display:block;padding:90px 0 96px}.price-copy{display:grid;grid-template-columns:5fr 7fr;gap:var(--grid-gap);align-items:end}.price-copy .eyebrow{grid-column:1/-1}.price-copy>p:last-child{margin:0;max-width:720px;color:var(--muted)}
.format-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:48px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.format-card{min-width:0;padding:27px var(--cell-pad) 30px}.format-card+.format-card{border-left:1px solid var(--line)}.format-label{margin:0 0 18px;font-size:12px;line-height:1.5;letter-spacing:.11em;color:var(--muted)}.format-card h3{font:31px/1.2 var(--serif);font-weight:400}.format-note{min-height:68px;margin:12px 0 24px;color:var(--muted);font-size:14px;line-height:1.55}.price{font:clamp(38px,3.25vw,49px)/1.05 var(--serif);letter-spacing:-.025em}.price span{display:block;margin-top:7px;font:12px/1.4 var(--sans);color:var(--muted);letter-spacing:0}.format-card ul{list-style:none;padding:0;margin:21px 0 0;border-top:1px solid var(--line)}.format-card li{padding:10px 0;border-bottom:1px solid var(--line);font-size:12px;color:var(--muted)}.format-card li:last-child{border-bottom:0}.format-card li:before{content:'—';margin-right:8px;color:#88837a}.format-card-primary .format-label{color:var(--ink)}
.price-footer{display:grid;grid-template-columns:5fr 7fr;gap:var(--grid-gap);align-items:end;margin-top:28px}.price-footer p{max-width:760px;margin:0;color:var(--muted);font-size:13px}.price-footer strong{color:var(--ink);font-weight:500}.price-footer .button{white-space:nowrap;justify-self:end}

.faq-section{display:grid;grid-template-columns:5fr 7fr;gap:var(--grid-gap);padding:90px 0 96px;border-top:1px solid var(--line)}.faq-intro>p:last-child{max-width:500px;color:var(--muted)}.faq-list{border-top:1px solid var(--line)}details{border-bottom:1px solid var(--line)}summary{position:relative;list-style:none;cursor:pointer;padding:19px 42px 19px var(--line-inset);font-size:16px;font-weight:500}summary::-webkit-details-marker{display:none}summary:after{content:'+';position:absolute;right:3px;top:13px;font:25px var(--sans);color:#716d65}details[open] summary:after{content:'−'}details p{max-width:760px;margin:0;padding:0 38px 21px var(--line-inset);color:var(--muted);font-size:14px}

.contact-section{color:#f5f3ef;background:var(--ink);display:grid;grid-template-columns:7fr 5fr;gap:var(--grid-gap);padding:78px max(var(--page-gutter),calc((100vw - var(--content-max))/2)) 86px}.contact-section .eyebrow{color:#c8d0cd}.contact-section h2{margin:22px 0 25px;font-size:clamp(52px,5.5vw,86px)}.contact-intro{max-width:760px;margin:0;color:#c8d2ce}.contact-options{align-self:end;display:flex;flex-direction:column;align-items:flex-start}.contact-link{display:flex;align-items:center;justify-content:space-between;gap:80px;width:min(100%,440px);border-bottom:1px solid #8ca099;padding:14px 0;font:clamp(28px,2.7vw,39px)/1.2 var(--serif)}.contact-link span{font:20px var(--sans)}.contact-phone{margin-top:25px;font-size:20px;border-bottom:1px solid #80958e}.contact-email{overflow-wrap:anywhere;margin-top:14px;font-size:17px;border-bottom:1px solid #80958e}.contact-options p{max-width:440px;margin:24px 0 0;color:#aebdb8;font-size:13px}

.footer{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:42px;padding:30px max(var(--page-gutter),calc((100vw - var(--content-max))/2));background:var(--paper)}.footer-meta{justify-self:center;text-align:center}.footer-meta p{margin:0 0 4px;font-size:12px;color:var(--muted)}.footer-meta a,.footer-up{font-size:12px;color:var(--muted);border-bottom:1px solid transparent}.footer-meta a:hover,.footer-up:hover{border-color:currentColor}

@media(max-width:1100px){
  .desktop-nav{gap:24px}.desktop-nav a{font-size:12px}.nav-cta{font-size:12px;gap:8px}
  .hero{grid-template-columns:1.1fr .9fr}.hero,.route-section,.progress-refined,.about,.faq-section{gap:var(--grid-gap)}.progress-metrics article{grid-template-columns:105px minmax(145px,165px) minmax(0,1fr);gap:18px}.format-card{padding-left:var(--cell-pad);padding-right:var(--cell-pad)}.format-card h3{font-size:27px}.format-note{min-height:76px}
}
@media(max-width:1024px){
  html{scroll-padding-top:86px}.site-header{height:86px;padding:0 22px}.brand{font-size:22px}.brand span{font-size:9px;letter-spacing:.11em}.desktop-nav,.nav-cta{display:none}.mobile-menu{display:block;margin-left:auto}.mobile-menu summary{width:44px;height:44px;cursor:pointer;list-style:none;display:flex;flex-direction:column;justify-content:center;gap:5px;padding:10px}.mobile-menu summary::-webkit-details-marker{display:none}.mobile-menu summary:after{display:none}.mobile-menu summary span{display:block;width:24px;height:1.5px;background:var(--ink);transition:transform .2s,opacity .2s}.mobile-menu[open] summary span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}.mobile-menu[open] summary span:nth-child(2){opacity:0}.mobile-menu[open] summary span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}.mobile-menu-panel{position:fixed;z-index:55;inset:86px 0 0;background:var(--paper);padding:38px 22px 48px;border-top:1px solid var(--line);overflow:auto}.mobile-menu-panel nav{display:flex;flex-direction:column}.mobile-menu-panel nav a{border-bottom:1px solid var(--line);padding:16px 0;font:29px/1.2 var(--serif)}.mobile-menu-cta{display:inline-block;margin-top:32px;border-bottom:1px solid;padding:11px 0;font-size:14px}
  .wrap{width:calc(100% - 44px)}.hero{grid-template-columns:1fr;gap:36px;padding:44px 0 58px}.hero-copy{max-width:760px}.hero-visual{width:min(100%,500px);max-width:none;justify-self:start;margin-right:0}.intro-strip{grid-template-columns:1fr;padding:0 22px}.intro-strip p{padding:18px 0;font-size:19px}.intro-strip p+p{border-left:0;border-top:1px solid var(--line);padding-left:0}.showcase-title,.section-top,.progress-head{grid-template-columns:1fr;gap:24px}.showcase-title p,.section-top>p:last-child{margin-top:0}.showcase-secondary{gap:28px;grid-template-columns:1fr 1fr}.showcase-secondary .demo-figure:nth-child(2){margin-top:48px}.route-section{grid-template-columns:1fr;gap:40px}.progress-refined,.about,.faq-section{grid-template-columns:1fr;gap:38px}.price-copy{grid-template-columns:1fr;gap:24px}.price-copy .eyebrow{grid-column:auto}.format-grid{grid-template-columns:1fr;margin-top:38px}.format-card{padding:24px 0 26px}.format-card+.format-card{border-left:0;border-top:1px solid var(--line);padding-left:0}.format-note{min-height:0;max-width:620px}.price-footer{grid-template-columns:1fr;gap:18px}.progress-metrics article{grid-template-columns:130px 170px 1fr}.contact-section{grid-template-columns:1fr;gap:40px;padding:60px 22px 66px}.footer{grid-template-columns:1fr auto;gap:20px}.footer-meta{grid-column:1/-1;justify-self:start;text-align:left;order:3}
}
@media(max-width:600px){
  body{font-size:16px}.site-header{padding:0 18px}.brand{font-size:21px}.brand span{font-size:9px}.hero{padding:36px 0 48px;gap:28px}.hero h1{font-size:clamp(43px,12vw,58px);text-wrap:pretty}.lead{font-size:16px;margin-top:20px}.actions{align-items:flex-start;flex-direction:column;gap:8px;margin-top:24px}.hero-visual{margin-left:0;max-width:430px}
  .lesson-section{padding:52px 0 50px}.showcase-title h2{font-size:42px}.lesson-showcase{margin-top:32px}.demo-main>a img{aspect-ratio:4/3}.showcase-swipe{display:block;margin:28px 0 -19px;font-size:12px;color:#bfc9c5;letter-spacing:.08em;text-transform:uppercase}.showcase-secondary{display:flex;gap:16px;margin-top:32px;overflow-x:auto;scroll-snap-type:x mandatory;margin-right:-18px;padding-right:18px;padding-bottom:8px}.showcase-secondary .demo-figure{flex:0 0 86%;scroll-snap-align:start}.showcase-secondary .demo-figure:nth-child(2){margin-top:0}.demo-figure figcaption{display:block;margin-top:13px}.demo-figure figcaption strong{font-size:24px}.demo-figure figcaption a{display:inline-block;margin-top:10px}.showcase-note{margin-top:20px}
  .method{padding:50px 0 54px}.steps{display:block;margin-top:28px}.steps article{padding:16px 0 18px}.steps article+article{margin-top:4px}.number{font-size:56px}.steps h3{margin-top:14px;font-size:24px}.steps p{font-size:14px}
  .route-section{padding:50px 0 54px}.route-intro h2{font-size:40px}.route-intro>p:last-child{margin-top:21px}.route-line li{grid-template-columns:39px 1fr;padding:16px 0 17px}.route-line h3{font-size:22px}
  .progress-section{padding:52px 0 56px}.progress-head h2{font-size:40px}.progress-refined{margin-top:32px;gap:34px}.progress-case{padding-top:16px}.progress-case h3{font-size:30px}.progress-metrics{margin-top:22px}.progress-metrics article{grid-template-columns:1fr;gap:5px;padding:16px 0}.progress-metrics strong{font-size:38px}.progress-next{font-size:14px;line-height:1.55}
  .about{padding:50px 0}.about h2{font-size:41px}.about-quote{font-size:27px;line-height:1.4}.about-body{padding-top:0}.about-body p{font-size:16px}.about-tags{font-size:16px;line-height:1.7}.about-tags span{display:inline}.about-tags span+span:before{margin:0 9px}
  .price-section{padding:50px 0 54px}.price-copy h2{font-size:41px}.format-grid{margin-top:31px}.format-card{padding:22px 0 24px}.format-card h3{font-size:27px}.format-note{margin:10px 0 22px;font-size:14px}.price{font-size:44px}.format-card ul{margin-top:18px}.format-card li{font-size:14px;padding:8px 0}.price-footer{margin-top:22px}.price-footer p{font-size:14px;line-height:1.55}.faq-section{padding:50px 0 54px}.faq-intro h2{font-size:41px}.faq-list summary{font-size:16px}.faq-list details p{font-size:16px;line-height:1.55}.contact-section{padding:52px 18px 58px}.contact-section h2{font-size:52px}.contact-intro{font-size:16px}.contact-link{width:100%;font-size:34px}.contact-phone{font-size:19px}.contact-options p{font-size:14px}.footer{display:grid;grid-template-columns:1fr auto;gap:18px 15px;padding:28px 18px}.footer-meta{grid-column:1/-1;order:3}.footer-up{align-self:start}
}

@media(max-width:1024px){
  .format-card{padding-left:14px;padding-right:14px}
  .format-card+.format-card{padding-left:14px}
}

@media(max-width:600px){
  .wrap{width:calc(100% - 36px)}
  .intro-strip{padding-left:18px;padding-right:18px}
  .format-card{padding-left:12px;padding-right:12px}
  .route-line li,.evidence-list>div,.progress-metrics article{padding-left:6px;padding-right:6px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Responsive audit, 2026-09-20. Keep existing photography and visual identity. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
.hero>*,.showcase-title>*,.section-top>*,.progress-head>*,.progress-refined>*,.price-copy>*,.price-footer>*,.contact-section>*,.footer>*{min-width:0}
.demo-figure,.lesson-showcase,.showcase-secondary{min-width:0}
.demo-figure img{max-width:100%}
.mobile-menu{border-bottom:0}
.mobile-menu summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.demo-figure figcaption a,.footer-up,.footer-meta a{min-height:44px;display:inline-flex;align-items:center}
@media(min-width:1025px) and (max-width:1350px){
 .progress-metrics article{grid-template-columns:minmax(90px,1fr) minmax(0,1fr);gap:10px 18px}
 .progress-metrics article p{grid-column:1/-1}
}
@media(max-width:1024px){
 .mobile-menu-panel{position:absolute;inset:100% 0 auto;max-height:calc(100dvh - 86px);overscroll-behavior:contain}
 .price-footer .button{justify-self:start}
}
@media(max-width:600px){
 .showcase-secondary{display:grid;grid-template-columns:minmax(0,1fr);gap:30px;overflow:visible;margin-right:0;padding-right:0;padding-bottom:0;scroll-snap-type:none}
 .showcase-swipe{display:none}
 .showcase-secondary .demo-figure{min-width:0}
 .contact-link{gap:20px}
 .brand{white-space:normal}
 .brand span{line-height:1.5}
 .footer .brand{font-size:19px}
 .footer .brand span{font-size:8px}
}
@media(max-width:360px){
 .site-header{gap:12px}
 .site-header .brand{font-size:19px}
 .hero h1{font-size:39px}
 h2,.price-copy h2,.about h2,.faq-intro h2,.route-intro h2,.progress-head h2,.showcase-title h2{font-size:36px;overflow-wrap:break-word}
 .contact-section h2{font-size:44px}
}

/* V7.14 · interactive Student Workspace demo entry */
.interactive-demo-row{margin-top:36px}.interactive-demo-cta{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:22px 0;border-top:1px solid #50605a;border-bottom:1px solid #50605a;transition:opacity .2s}.interactive-demo-cta:hover{opacity:.72}.interactive-demo-cta>span{display:grid;grid-template-columns:auto auto auto;align-items:baseline;gap:14px 22px;min-width:0}.interactive-demo-cta small{color:#c4cfcb;font-size:12px;letter-spacing:.12em}.interactive-demo-cta strong{font:400 clamp(22px,2vw,30px)/1.2 var(--serif);color:#fff}.interactive-demo-cta em{font-style:normal;color:#c8d2ce;font-size:12px}.interactive-demo-cta>b{flex:0 0 auto;color:#fff;font-size:31px;font-weight:300;line-height:1}@media(max-width:760px){.interactive-demo-row{margin-top:28px}.interactive-demo-cta{padding:18px 0}.interactive-demo-cta>span{grid-template-columns:1fr;gap:6px}.interactive-demo-cta strong{font-size:24px}.interactive-demo-cta>b{font-size:27px}}

/* V7.19 first lesson + legal footer */
.hero-first-step{margin:18px 0 0;color:var(--muted);font-size:13px;line-height:1.55}.hero-first-step strong{color:var(--ink);font-weight:600}
.footer-meta{max-width:760px}.footer-legal{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 16px;margin-top:7px}.footer-legal a{font-size:12px;color:var(--muted);border-bottom:1px solid transparent}.footer-legal a:hover{border-color:currentColor}
@media(max-width:1024px){.footer-legal{justify-content:flex-start}}
@media(max-width:620px){.hero-first-step{font-size:14px;margin-top:16px}.footer-legal{display:grid;gap:2px;margin-top:8px}.footer-legal a{min-height:36px;display:flex;align-items:center}}

/* V7.21 — editorial rebalancing of the lesson showcase */
.lesson-showcase{margin-top:40px}
.demo-main{width:min(70%,1050px)}
.demo-main>a img{aspect-ratio:4/3;object-fit:contain;object-position:center}
.demo-main figcaption{max-width:940px}
.showcase-secondary{width:min(92%,1320px);grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:44px;margin-top:48px}
.showcase-secondary .demo-figure:nth-child(2){margin-top:34px}

@media(max-width:1020px){
  .demo-main,.showcase-secondary{width:100%}
  .demo-main>a img{aspect-ratio:4/3;object-fit:contain}
  .showcase-secondary{gap:28px}
  .showcase-secondary .demo-figure:nth-child(2){margin-top:28px}
}

@media(max-width:760px){
  .lesson-showcase{margin-top:28px}
  .demo-main>a img{aspect-ratio:4/3;object-fit:contain}
  .demo-main figcaption{max-width:none}
  .showcase-secondary{width:100%;grid-template-columns:1fr;gap:28px;margin-top:34px}
  .showcase-secondary .demo-figure:nth-child(2){margin-top:0}
}

/* V7.26 · showcase natural-ratio alignment
   Cards use their intrinsic ratio so the white card edge sits exactly on the site grid. */
.lesson-showcase .demo-figure img,
.lesson-showcase .demo-main>a img,
.lesson-showcase .showcase-secondary .demo-figure>a img{
  width:100%;
  height:auto;
  aspect-ratio:auto;
  object-fit:contain;
  object-position:top left;
}
.lesson-showcase .demo-figure>a{background:transparent;}

/* V7.28 · online booking */
.booking-section{background:var(--paper-2);padding:88px 0 92px;border-top:1px solid var(--line)}
.booking-head .eyebrow{margin-bottom:20px}
.booking-title{display:grid;grid-template-columns:5fr 7fr;gap:var(--grid-gap);align-items:end}
.booking-title h2{font-size:clamp(40px,4vw,60px)}
.booking-title>p{margin:0;max-width:700px;color:var(--muted)}
.booking-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:46px;border-top:1px solid #bdb6a9;border-bottom:1px solid #bdb6a9}
.booking-card{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:28px;align-items:end;padding:30px var(--cell-pad) 32px}
.booking-card+.booking-card{border-left:1px solid #bdb6a9}
.booking-label{margin:0 0 15px;font-size:11px;line-height:1.5;letter-spacing:.12em;color:var(--muted)}
.booking-card h3{font:32px/1.18 var(--serif);font-weight:400}
.booking-copy{max-width:470px;margin:12px 0 0;color:var(--muted);font-size:14px;line-height:1.55}
.booking-meta{min-width:180px}
.booking-price{margin:0;font:32px/1.08 var(--serif);letter-spacing:-.02em;white-space:nowrap}
.booking-price span{display:block;margin-top:7px;font:12px/1.4 var(--sans);letter-spacing:0;color:var(--muted)}
.booking-link{display:flex;align-items:center;justify-content:space-between;gap:32px;margin-top:24px;padding:11px 0;border-bottom:1px solid var(--ink);font-size:14px;white-space:nowrap;transition:opacity .2s}
.booking-link:hover{opacity:.58}
.booking-note{margin-top:24px;color:var(--muted);font-size:13px;line-height:1.6}
.booking-note a{color:var(--ink);border-bottom:1px solid #9f998d}

@media(max-width:1024px){
  .booking-title{grid-template-columns:1fr;gap:24px}
  .booking-grid{grid-template-columns:1fr}
  .booking-card+.booking-card{border-left:0;border-top:1px solid #bdb6a9}
}
@media(max-width:600px){
  .booking-section{padding:50px 0 54px}
  .booking-title h2{font-size:41px}
  .booking-grid{margin-top:30px}
  .booking-card{grid-template-columns:1fr;gap:22px;padding:24px 0 26px}
  .booking-meta{min-width:0}
  .booking-price{font-size:38px}
  .booking-link{width:100%;font-size:15px}
  .booking-note{font-size:14px}
}
.contact-max{margin-top:22px;font-size:15px;border-bottom:1px solid #80958e}

/* V7.29 · showcase rounding + booking meta alignment */
.lesson-showcase .demo-figure>a{border-radius:18px;}
.lesson-showcase .demo-figure img{border-radius:18px;}
.booking-meta-link-only{justify-items:start;align-items:start;}

/* V7.32 · mobile editorial polish — desktop remains unchanged */
@media (max-width:760px){
  :root{--page-gutter:16px;--grid-gap:28px;--cell-pad:18px}
  html{scroll-padding-top:76px}
  body{font-size:16px;line-height:1.55}
  .wrap{width:calc(100% - 32px)}

  .site-header{height:74px;padding:0 16px;gap:12px}
  .site-header .brand{font-size:20px;line-height:1.08;letter-spacing:-.015em}
  .site-header .brand span{margin-top:4px;font-size:8px;letter-spacing:.13em}
  .mobile-menu summary{width:42px;height:42px;padding:9px}
  .mobile-menu-panel{position:fixed;inset:74px 0 0;height:calc(100dvh - 74px);max-height:none;padding:24px 16px 34px;z-index:100}
  body:has(.mobile-menu[open]){overflow:hidden}
  .mobile-menu-panel nav a{padding:15px 0;font-size:27px}
  .mobile-menu-cta{display:flex;justify-content:space-between;width:100%;margin-top:24px;padding:14px 0;font-size:14px}

  .eyebrow{margin-bottom:14px;font-size:10px;letter-spacing:.15em}
  .hero{grid-template-columns:1fr;gap:24px;padding:28px 0 30px}
  .hero h1{font-size:clamp(40px,11.6vw,50px);line-height:1.01;letter-spacing:-.045em;text-wrap:pretty}
  .lead{margin-top:18px;font-size:16px;line-height:1.55;color:#43554f}
  .actions{display:grid;grid-template-columns:1fr 1fr;gap:0 16px;margin-top:22px}
  .actions .button{grid-column:1/-1;width:100%;padding:14px 0;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);font-size:14px}
  .actions .text-link{width:100%;padding:12px 0 8px;gap:8px;font-size:12px;line-height:1.35}
  .hero-first-step{margin-top:14px;font-size:12.5px;line-height:1.5}
  .hero-visual{width:100%;max-width:none;margin:2px 0 0;justify-self:stretch}
  .portrait-frame{aspect-ratio:4/5;border-radius:18px;background:#d6d7d0}
  .portrait-frame img{width:100%;height:100%;object-fit:cover;object-position:center 43%}

  .intro-strip{counter-reset:intro;display:block;padding:7px 16px 8px}
  .intro-strip p{counter-increment:intro;display:grid;grid-template-columns:34px 1fr;align-items:center;gap:8px;padding:11px 0;font-size:16px;line-height:1.3}
  .intro-strip p::before{content:'0' counter(intro);font:10px/1 var(--sans);letter-spacing:.12em;color:#8b877f}
  .intro-strip p+p{padding-left:0;border-left:0;border-top:1px solid var(--line)}

  .lesson-section{padding:54px 0 58px}
  .showcase-title{gap:14px}
  .showcase-title h2{font-size:39px;line-height:1.02}
  .showcase-title p{font-size:14px;line-height:1.55}
  .interactive-demo-row{margin-top:24px}
  .interactive-demo-cta{padding:16px 0}
  .interactive-demo-cta>span{gap:4px}
  .interactive-demo-cta small{font-size:10px}
  .interactive-demo-cta strong{font-size:25px}
  .interactive-demo-cta em{font-size:11px}
  .lesson-showcase{margin-top:26px}
  .lesson-showcase .demo-figure>a,.lesson-showcase .demo-figure img{border-radius:16px}
  .demo-main{width:100%}
  .demo-figure figcaption{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end;margin-top:13px}
  .demo-figure figcaption span{font-size:9px;letter-spacing:.12em}
  .demo-figure figcaption strong{margin-top:5px;font-size:22px;line-height:1.18}
  .demo-figure figcaption a{margin-top:0;padding-bottom:2px;min-height:36px;font-size:11px}
  .showcase-swipe{display:block;margin:30px 0 -18px;font-size:9px;letter-spacing:.14em;color:#aebdb8}
  .showcase-secondary{display:flex;width:auto;gap:14px;margin-top:30px;margin-right:-16px;padding-right:16px;padding-bottom:8px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
  .showcase-secondary::-webkit-scrollbar{display:none}
  .showcase-secondary .demo-figure{flex:0 0 84%;scroll-snap-align:start}
  .showcase-secondary .demo-figure:nth-child(2){margin-top:0}
  .showcase-note{margin-top:16px;font-size:11px}

  .method{padding:54px 0 58px}
  .section-top{gap:14px}
  .section-top h2{font-size:38px;line-height:1.03}
  .section-top>p:last-child{font-size:14px;line-height:1.55}
  .steps{display:block;margin-top:28px}
  .steps article{display:grid;grid-template-columns:42px minmax(0,1fr);column-gap:14px;align-items:start;padding:17px 0 18px}
  .steps article+article{margin-top:0}
  .number{grid-row:1/3;font-size:38px;line-height:1;color:#aaa59c}
  .steps h3{margin:0;font-size:22px;line-height:1.18}
  .steps p{grid-column:2;margin:5px 0 0;font-size:13px;line-height:1.5}

  .route-section{padding:54px 0 58px;gap:28px}
  .route-intro h2{font-size:38px;line-height:1.03}
  .route-intro>p:last-child{margin-top:16px;font-size:14px;line-height:1.55}
  .route-line li{grid-template-columns:30px minmax(0,1fr);gap:12px;padding:16px 0 17px}
  .route-line li>span{font-size:10px;letter-spacing:.08em}
  .route-line h3{font-size:21px;line-height:1.2}
  .route-line p{margin-top:5px;font-size:13px;line-height:1.48}

  .progress-section{padding:54px 0 58px}
  .progress-head{gap:14px}
  .progress-head h2{font-size:37px;line-height:1.03}
  .progress-refined{margin-top:28px;gap:28px}
  .progress-lead{margin-bottom:20px;font-size:14px;line-height:1.55}
  .evidence-list>div{grid-template-columns:28px 1fr;gap:10px;padding:13px 0}
  .evidence-list span{font-size:10px}
  .evidence-list p{font-size:13px;line-height:1.45}
  .progress-case{padding-top:15px}
  .progress-case-head .eyebrow{margin-bottom:10px}
  .progress-case-head h3{font-size:29px;line-height:1.08}
  .progress-case-head>p:last-child{font-size:12px;line-height:1.5}
  .progress-metrics{margin-top:20px}
  .progress-metrics article{grid-template-columns:88px minmax(0,1fr);gap:4px 12px;padding:14px 0}
  .progress-metrics span{font-size:9px;letter-spacing:.1em}
  .progress-metrics strong{font-size:31px;white-space:normal}
  .progress-metrics p{grid-column:2;font-size:12px;line-height:1.45}
  .progress-next{margin-top:17px;font-size:12.5px;line-height:1.5}

  .about{padding:54px 0 58px;gap:26px}
  .about h2{font-size:38px;line-height:1.03}
  .about-quote{margin-top:22px;font-size:24px;line-height:1.35}
  .about-body{padding-top:24px;border-top:1px solid var(--line)}
  .about-body p{margin-bottom:14px;font-size:14px;line-height:1.6}
  .about-tags{margin-top:20px;padding-top:14px;font-size:14px;line-height:1.65}

  .price-section{padding:54px 0 58px}
  .price-copy{gap:14px}
  .price-copy h2{font-size:38px;line-height:1.03}
  .price-copy>p:last-child{font-size:14px;line-height:1.55}
  .format-grid{margin-top:28px;border-bottom:0}
  .format-card{padding:20px 0 22px}
  .format-card+.format-card{padding-left:0}
  .format-label{margin-bottom:11px;font-size:10px}
  .format-card h3{font-size:25px;line-height:1.18}
  .format-note{min-height:0;margin:8px 0 17px;font-size:13px;line-height:1.5}
  .price{font-size:39px}
  .price span{font-size:11px}
  .price-footer{gap:16px;margin-top:20px}
  .price-footer p{font-size:13px;line-height:1.55}
  .price-footer .button{width:100%;padding:13px 0;border-top:1px solid var(--ink)}

  .booking-section{padding:54px 0 58px}
  .booking-title{gap:14px}
  .booking-title h2{font-size:38px;line-height:1.03}
  .booking-title>p{font-size:14px;line-height:1.55}
  .booking-grid{gap:12px;margin-top:28px;border:0}
  .booking-card{display:grid;grid-template-columns:1fr;gap:18px;padding:20px;border:1px solid #c8c1b4;border-radius:18px;background:rgba(255,253,248,.55)}
  .booking-card+.booking-card{border:1px solid #c8c1b4}
  .booking-card-primary{background:var(--white);border-color:#b7afa1}
  .booking-label{margin-bottom:10px;font-size:9px}
  .booking-card h3{font-size:27px}
  .booking-copy{margin-top:8px;font-size:13px;line-height:1.5}
  .booking-price{font-size:34px}
  .booking-price span{font-size:11px}
  .booking-link{width:100%;margin-top:14px;padding:11px 0;font-size:14px}
  .booking-meta-link-only .booking-link{margin-top:0}
  .booking-note{margin-top:18px;font-size:12px;line-height:1.55}

  .faq-section{padding:54px 0 58px;gap:24px}
  .faq-intro h2{font-size:38px;line-height:1.03}
  .faq-intro>p:last-child{font-size:14px;line-height:1.55}
  .faq-list summary{padding:17px 38px 17px 0;font-size:15px;line-height:1.35}
  .faq-list summary:after{right:0;top:12px;font-size:24px}
  .faq-list details p{padding:0 0 18px;font-size:14px;line-height:1.55}

  .contact-section{grid-template-columns:1fr;gap:30px;padding:54px 16px 58px}
  .contact-section h2{margin:16px 0 18px;font-size:44px;line-height:1.02}
  .contact-intro{font-size:14px;line-height:1.55}
  .contact-link{width:100%;gap:20px;padding:13px 0;font-size:29px}
  .contact-max{margin-top:18px;font-size:14px}
  .contact-phone{margin-top:20px;font-size:18px}
  .contact-email{font-size:15px}
  .contact-options p{font-size:12px}

  .footer{grid-template-columns:1fr auto;gap:18px 12px;padding:26px 16px 30px}
  .footer .brand{font-size:18px}
  .footer .brand span{font-size:7px}
  .footer-meta{grid-column:1/-1;justify-self:start;text-align:left;order:3}
  .footer-meta p{font-size:11px;line-height:1.45}
  .footer-legal{gap:0 14px;margin-top:8px}
  .footer-legal a{font-size:11px;min-height:34px}
  .footer-up{align-self:start}
}

@media (max-width:360px){
  .wrap{width:calc(100% - 28px)}
  .site-header{padding-inline:14px}
  .site-header .brand{font-size:18px}
  .hero h1{font-size:39px}
  .actions{grid-template-columns:1fr}
  .actions .button{grid-column:auto}
  .actions .text-link{padding-top:10px}
  .intro-strip{padding-inline:14px}
  .showcase-title h2,.section-top h2,.route-intro h2,.progress-head h2,.about h2,.price-copy h2,.booking-title h2,.faq-intro h2{font-size:35px}
  .showcase-secondary{margin-right:-14px;padding-right:14px}
  .showcase-secondary .demo-figure{flex-basis:88%}
  .demo-figure figcaption{grid-template-columns:1fr}
  .demo-figure figcaption a{width:max-content}
  .progress-metrics article{grid-template-columns:1fr;gap:4px}
  .progress-metrics p{grid-column:1}
  .booking-card{padding:18px}
  .contact-section{padding-inline:14px}
  .contact-section h2{font-size:41px}
  .footer{padding-inline:14px}
}

/* V7.33 · mobile swipe cards for 02–04 and formats. Section 07 intentionally unchanged. */
.mobile-carousel-hint{display:none}
@media (max-width:760px){
  .mobile-carousel-hint{
    display:block;
    margin:22px 0 9px;
    color:#8b877f;
    font-size:9px;
    line-height:1.2;
    letter-spacing:.14em;
    text-transform:uppercase;
  }

  /* 02 · lesson flow */
  .steps{
    display:flex;
    gap:12px;
    margin:0 -16px 0 0;
    padding:0 16px 8px 0;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    scroll-padding-left:0;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
  }
  .steps::-webkit-scrollbar{display:none}
  .steps article,
  .steps article+article{
    flex:0 0 84%;
    display:block;
    min-width:0;
    margin:0;
    padding:20px;
    border:1px solid var(--line);
    border-radius:18px;
    background:rgba(255,255,255,.34);
    scroll-snap-align:start;
  }
  .steps .number{font-size:49px;line-height:.9}
  .steps h3{margin-top:24px;font-size:25px;line-height:1.14}
  .steps p{margin:8px 0 0;font-size:13px;line-height:1.5}

  /* 03 · route */
  .route-section{gap:0}
  .route-section .mobile-carousel-hint{margin-top:26px}
  .route-line{
    display:flex;
    gap:12px;
    margin:0 -16px 0 0;
    padding:0 16px 8px 0;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
  }
  .route-line::-webkit-scrollbar{display:none}
  .route-line li,
  .route-line li:last-child{
    flex:0 0 84%;
    display:block;
    min-width:0;
    margin:0;
    padding:20px;
    border:1px solid var(--line);
    border-radius:18px;
    background:rgba(255,255,255,.30);
    scroll-snap-align:start;
  }
  .route-line li>span{display:block;padding:0;font-size:10px;letter-spacing:.12em}
  .route-line h3{margin-top:28px;font-size:25px;line-height:1.14}
  .route-line p{margin-top:8px;font-size:13px;line-height:1.5}

  /* 04 · result cards; explanatory checking steps stay vertical */
  .mobile-carousel-hint-results{margin-top:22px}
  .progress-metrics{
    display:flex;
    gap:12px;
    margin:0 -16px 0 0;
    padding:0 16px 8px 0;
    border-top:0;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
  }
  .progress-metrics::-webkit-scrollbar{display:none}
  .progress-metrics article{
    flex:0 0 82%;
    display:block;
    min-width:0;
    margin:0;
    padding:18px;
    border:1px solid #bdb6a9;
    border-radius:17px;
    background:rgba(255,255,255,.20);
    scroll-snap-align:start;
  }
  .progress-metrics span{display:block;font-size:9px;letter-spacing:.11em}
  .progress-metrics strong{display:block;margin-top:24px;font-size:36px;line-height:1}
  .progress-metrics p{display:block;margin-top:10px;font-size:12.5px;line-height:1.48}

  /* 06 · formats */
  .price-section .mobile-carousel-hint{margin-top:24px}
  .format-grid{
    display:flex;
    gap:12px;
    margin:0 -16px 0 0;
    padding:0 16px 8px 0;
    border:0;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
  }
  .format-grid::-webkit-scrollbar{display:none}
  .format-card,
  .format-card+.format-card{
    flex:0 0 86%;
    min-width:0;
    margin:0;
    padding:20px;
    border:1px solid var(--line);
    border-radius:18px;
    background:rgba(255,255,255,.30);
    scroll-snap-align:start;
  }
  .format-card-primary{background:#fff}
  .format-label{margin-bottom:13px}
  .format-card h3{font-size:26px;line-height:1.15}
  .format-note{margin:10px 0 22px}
  .price{font-size:41px}
  .price-footer{margin-top:23px}
}

@media (max-width:350px){
  .steps article,.route-line li{flex-basis:88%}
  .progress-metrics article{flex-basis:86%}
  .format-card,.format-card+.format-card{flex-basis:90%}
}


/* V7.34 · mobile flow: compact hero + about facts + booking swipe. Desktop remains unchanged. */
@media (max-width:760px){
  /* Hero: preserve the message, but let the first screen breathe. */
  .hero{gap:20px;padding-top:24px}
  .hero h1{font-size:clamp(37px,10.5vw,43px);line-height:.98;letter-spacing:-.042em}
  .hero h1 .hero-mobile-line,.hero h1 em{display:block}
  .lead{margin-top:16px;line-height:1.5}
  .actions{margin-top:18px}
  .hero-first-step{margin-top:12px}

  /* 05 · facts become the quick-read layer before the biography. */
  .about-body{display:flex;flex-direction:column;padding-top:22px}
  .mobile-carousel-hint-about{order:-2;margin-top:0}
  .about-tags{
    order:-1;
    display:flex;
    flex-wrap:nowrap;
    gap:12px;
    margin:0 -16px 22px 0;
    padding:0 16px 8px 0;
    border-top:0;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
  }
  .about-tags::-webkit-scrollbar{display:none}
  .about-tags span{
    flex:0 0 82%;
    display:flex;
    min-height:124px;
    align-items:flex-end;
    padding:18px;
    border:1px solid var(--line);
    border-radius:18px;
    background:rgba(255,255,255,.30);
    font:400 23px/1.16 var(--serif);
    scroll-snap-align:start;
  }
  .about-tags span+span:before{content:none}

  /* 07 · keep the card design the user liked, only change the mobile layout. */
  .mobile-carousel-hint-booking{margin-top:24px;margin-bottom:9px}
  .booking-grid{
    display:flex;
    width:calc(100% - 16px);
    gap:12px;
    margin:0 0 0 16px;
    padding:0 16px 8px 0;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
  }
  .booking-grid::-webkit-scrollbar{display:none}
  .booking-card,.booking-card+.booking-card{
    flex:0 0 88%;
    min-width:0;
    scroll-snap-align:start;
  }
}
@media (max-width:360px){
  .hero h1{font-size:35px}
  .about-tags{margin-right:-14px;padding-right:14px}
  .about-tags span{flex-basis:87%;font-size:21px;min-height:118px}
  .booking-grid{width:calc(100% - 14px);margin-left:14px;padding-right:14px}
  .booking-card,.booking-card+.booking-card{flex-basis:91%}
}

/* V7.35 · mobile overflow hotfix: keep swipe rows contained inside the viewport. */
@media (max-width:760px){
  .about{min-width:0;overflow:hidden}
  .about-title,.about-body{min-width:0;width:100%;max-width:100%}
  .about-tags{
    width:100%;
    max-width:100%;
    margin:0 0 22px;
    padding:0 0 8px;
    box-sizing:border-box;
    contain:layout paint;
  }
  .about-tags span{min-width:0}

  .booking-section{overflow:hidden}
  .booking-grid{
    width:calc(100% - 32px);
    max-width:var(--content-max);
    margin-left:auto;
    margin-right:auto;
    padding-right:0;
    box-sizing:border-box;
  }
}
@media (max-width:360px){
  .about-tags{margin-right:0;padding-right:0}
  .booking-grid{width:calc(100% - 28px);margin-left:auto;margin-right:auto;padding-right:0}
}

/* V7.35b · all swipe rails stay inside the page grid; card peeking comes from flex-basis, not negative margins. */
@media (max-width:760px){
  .steps,.route-line,.progress-metrics,.format-grid{
    width:100%;
    max-width:100%;
    margin-right:0;
    padding-right:0;
    box-sizing:border-box;
  }
}

/* V7.35c · keep the booking swipe hint aligned with the page gutter. */
@media (max-width:760px){
  .mobile-carousel-hint-booking{margin-left:auto;margin-right:auto}
}


/* V7.36 · DESKTOP POLISH
   Desktop keeps the editorial layout: no carousels. Motion is deliberately subtle. */
@media (min-width:1025px){
  /* 01 · richer image/caption response without changing the composition. */
  .demo-figure>a{transition:background-color .28s ease}
  .demo-figure img{transition:transform .48s cubic-bezier(.2,.65,.25,1),filter .35s ease}
  .demo-figure figcaption a{transition:transform .28s ease,border-color .28s ease,color .28s ease}
  .demo-figure:hover figcaption a{transform:translateX(4px);border-color:#d3dcda;color:#fff}
  .interactive-demo-cta>b,.booking-link span,.button span,.contact-link span{display:inline-block;transition:transform .28s ease}
  .interactive-demo-cta:hover>b,.booking-link:hover span{transform:translateX(5px)}
  .button:hover span{transform:translateY(3px)}
  .contact-link:hover span{transform:translateY(-3px)}

  /* 02 · the three lesson stages behave like one editorial sequence. */
  .steps article{position:relative;transition:opacity .28s ease,transform .28s ease,border-color .28s ease}
  .steps article:before{content:"";position:absolute;left:0;top:-1px;width:0;height:1px;background:var(--ink);transition:width .38s cubic-bezier(.2,.65,.25,1)}
  .steps:hover article{opacity:.46}
  .steps article:hover{opacity:1;transform:translateY(-2px);border-top-color:transparent}
  .steps article:hover:before{width:100%}
  .steps article:hover .number{color:var(--ink)}
  .steps .number{transition:color .28s ease}

  /* 03 · route stays fully visible, but the active step gets a quiet reading cue. */
  .route-line li{position:relative;transition:background-color .28s ease,padding-left .28s ease}
  .route-line li:before{content:"";position:absolute;left:0;top:50%;width:5px;height:5px;border-radius:50%;background:var(--ink);transform:translate(-50%,-50%) scale(0);transition:transform .28s ease}
  .route-line li:hover{background:rgba(23,57,51,.035);padding-left:calc(var(--line-inset) + 8px)}
  .route-line li:hover:before{transform:translate(-50%,-50%) scale(1)}
  .route-line li>span,.route-line h3{transition:color .28s ease}
  .route-line li:hover>span,.route-line li:hover h3{color:var(--ink)}

  /* 04 · results read more like editorial data, not cards. */
  .progress-metrics article{transition:background-color .28s ease,padding-left .28s ease,padding-right .28s ease}
  .progress-metrics article:hover{background:rgba(255,255,255,.20);padding-left:calc(var(--line-inset) + 8px);padding-right:calc(var(--line-inset) + 8px)}
  .progress-metrics strong{letter-spacing:-.025em}

  /* 05 · facts become a structured desktop fact grid; mobile swipe stays untouched. */
  .about-tags{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin-top:30px;padding-top:0;border-top:1px solid var(--line);font:400 18px/1.25 var(--serif)}
  .about-tags span{display:flex;min-height:82px;align-items:flex-end;padding:16px 18px 15px 0;border-bottom:1px solid var(--line);transition:background-color .28s ease,padding-left .28s ease}
  .about-tags span:nth-child(even){padding-left:18px;border-left:1px solid var(--line)}
  .about-tags span+span:before{content:none}
  .about-tags span:hover{background:rgba(23,57,51,.035);padding-left:10px}
  .about-tags span:nth-child(even):hover{padding-left:28px}

  /* 06 · price columns stay architectural; only the reading line responds. */
  .format-card{position:relative;transition:background-color .28s ease}
  .format-card:before{content:"";position:absolute;left:0;right:0;top:-1px;height:1px;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform .38s cubic-bezier(.2,.65,.25,1)}
  .format-card:hover{background:rgba(23,57,51,.022)}
  .format-card:hover:before{transform:scaleX(1)}
  .format-card h3,.format-card .price{transition:transform .28s ease}
  .format-card:hover h3,.format-card:hover .price{transform:translateX(4px)}

  /* 07 · preserve the successful booking block and only animate its action. */
  .booking-card{transition:background-color .28s ease}
  .booking-card:hover{background:rgba(255,255,255,.26)}
  .booking-card-primary:hover{background:rgba(255,255,255,.72)}
  .booking-link{transition:opacity .2s ease,border-color .28s ease}
  .booking-card:hover .booking-link{border-color:var(--ink)}

  /* FAQ gets a tiny hover cue, useful for mouse users. */
  .faq-list summary{transition:padding-left .25s ease,color .25s ease}
  .faq-list summary:hover{padding-left:calc(var(--line-inset) + 7px);color:var(--ink)}
}

@media (min-width:1025px) and (hover:hover) and (pointer:fine){
  .demo-figure>a:hover img{transform:scale(1.012)}
}

/* Progressive desktop reveal. Content remains fully visible without JS or with reduced motion. */
@media (min-width:1025px) and (prefers-reduced-motion:no-preference){
  html.motion-ready .desktop-reveal{opacity:0;transform:translateY(12px);transition:opacity .5s ease,transform .55s cubic-bezier(.2,.65,.25,1)}
  html.motion-ready .desktop-reveal.is-visible{opacity:1;transform:none}
}
