@font-face {
  font-family: "DM Sans";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("fonts/dm-sans-latin.woff2") format("woff2");
}

@font-face {
  font-family: "Playfair Display";
  font-style: normal;
  font-weight: 500 600;
  font-display: swap;
  src: url("fonts/playfair-display-latin.woff2") format("woff2");
}

@font-face {
  font-family: "Playfair Display";
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/playfair-display-italic-latin.woff2") format("woff2");
}

:root {
  --ink: #2b1913;
  --ink-2: #3c251d;
  --cream: #f7f1e6;
  --paper: #fffdf8;
  --gold: #c7a45b;
  --gold-light: #e2ca8f;
  --wine: #6e2430;
  --green: #31493c;
  --muted: #786b62;
  --line: rgba(43,25,19,.17);
  --serif: "Playfair Display", Georgia, serif;
  --sans: "DM Sans", Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 90px; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--sans); font-size: 16px; line-height: 1.65; }
a { color: inherit; }
img { display: block; max-width: 100%; width: auto; height: auto; }
h1,h2,h3,p { margin-top: 0; }
h1,h2,h3 { line-height: 1.08; }
h1,h2 { font-family: var(--serif); font-weight: 500; letter-spacing: -.035em; }
h2 { font-size: clamp(2.35rem, 5vw, 4.6rem); margin-bottom: 1.5rem; }
h3 { font-size: 1.5rem; }
em { color: var(--gold-light); font-weight: 500; }
mark { background: linear-gradient(transparent 62%, rgba(199,164,91,.34) 0); color: inherit; }
.skip-link { position: fixed; top: -80px; left: 1rem; z-index: 100; background: #fff; padding: .8rem 1rem; }
.skip-link:focus { top: 1rem; }
.eyebrow { font-size: .75rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--wine); margin-bottom: 1.1rem; }
.section { padding: clamp(5rem, 9vw, 9rem) max(5vw, calc((100vw - 1240px)/2)); }
.section-narrow { max-width: 900px; margin: 0 auto; padding: clamp(5rem, 9vw, 9rem) 5vw; }
.section-heading { max-width: 850px; margin-bottom: 4rem; }
.section-heading.centered { text-align: center; margin-left: auto; margin-right: auto; }
.section-heading > p:last-child { max-width: 680px; margin: 0 auto; color: var(--muted); font-size: 1.06rem; }
.button { display: inline-flex; justify-content: center; align-items: center; min-height: 54px; padding: .85rem 1.4rem; border: 1px solid var(--gold); background: var(--gold); color: #22150f; text-decoration: none; font-weight: 700; border-radius: 999px; transition: transform .2s ease, background .2s ease; }
.button:hover { transform: translateY(-2px); background: var(--gold-light); }
.button-small { min-height: 40px; padding: .5rem 1rem; font-size: .88rem; }
.button-wide { width: 100%; }
.section-cta { width: 100%; margin-top: clamp(2rem, 4vw, 3.5rem); text-align: center; }
.section-cta .button { min-width: min(100%, 320px); }
.featured-proof .section-cta,
.teacher .section-cta { grid-column: 1 / -1; }
.mobile-cta { display: none; }
.text-link { color: #fff; text-underline-offset: .3rem; }

.site-header { height: 76px; padding: 0 max(4vw, calc((100vw - 1320px)/2)); display: flex; align-items: center; justify-content: space-between; gap: 2rem; background: rgba(255,253,248,.96); border-bottom: 1px solid var(--line); position: sticky; top: 0; z-index: 50; backdrop-filter: blur(10px); }
.brand { display: flex; align-items: center; gap: .7rem; text-decoration: none; line-height: 1.1; }
.brand-logo { width: 44px; height: 44px; object-fit: contain; flex: 0 0 auto; }
.brand b { display: block; font-size: .83rem; letter-spacing: .13em; }
.brand small { display: block; font-size: .62rem; letter-spacing: .18em; margin-top: .25rem; }
.site-header nav { display: flex; gap: 2rem; }
.site-header nav a { text-decoration: none; font-size: .88rem; font-weight: 600; }

.hero { min-height: calc(100vh - 76px); background: var(--ink); color: #fff; display: grid; grid-template-columns: 56% 44%; position: relative; overflow: hidden; }
.hero-copy { align-self: center; padding: 7vw 6vw 7vw max(5vw, calc((100vw - 1320px)/2)); position: relative; z-index: 3; isolation: isolate; }
.hero-copy::before { content:""; position: absolute; width: min(690px,72vw); aspect-ratio: 1; left: 20%; top: 50%; transform: translateY(-50%) rotate(-9deg); background: url("assets/spiral-line.svg") center/contain no-repeat; opacity: .32; pointer-events: none; z-index: -1; }
.hero .eyebrow { color: var(--gold-light); }
.hero h1 { font-size: clamp(4rem, 8vw, 7.7rem); margin-bottom: 2rem; }
.hero-lead { font-family: var(--serif); font-size: clamp(1.35rem, 2.2vw, 2rem); max-width: 650px; line-height: 1.35; }
.hero-text { max-width: 610px; color: #d8cbc2; font-size: 1.05rem; }
.hero-actions { display: flex; align-items: center; gap: 1.5rem; margin-top: 2.2rem; flex-wrap: wrap; }
.hero-image { min-height: 700px; background: linear-gradient(90deg,var(--ink) 0%, rgba(43,25,19,.28) 27%, transparent 50%), url("assets/hero-spiral.webp") center/cover no-repeat; background-color: var(--ink-2); }
.facts { display: grid; grid-template-columns: repeat(4,1fr); background: var(--green); color: #fff; padding: 2.3rem max(5vw, calc((100vw - 1240px)/2)); }
.facts div { padding: .4rem 1.8rem; border-right: 1px solid rgba(255,255,255,.2); }
.facts div:first-child { padding-left: 0; }
.facts div:last-child { border: 0; }
.facts span,.facts strong { display: block; }
.facts span { color: var(--gold-light); font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; }
.facts strong { margin-top: .3rem; font-size: .93rem; }

.promise { background: var(--cream); }
.promise > h2 { max-width: 930px; }
.large-copy { font-family: var(--serif); font-size: clamp(1.5rem, 3vw, 2.5rem); line-height: 1.42; max-width: 1050px; margin-bottom: 4.5rem; }
.promise-grid { display: grid; grid-template-columns: repeat(4,1fr); border-top: 1px solid var(--line); }
.promise-grid article { padding: 2rem 1.5rem 1rem 0; }
.promise-grid span { color: var(--wine); font-size: .77rem; font-weight: 700; }
.promise-grid h3 { margin: .8rem 0 .4rem; }
.promise-grid p { color: var(--muted); }

.pain { text-align: center; }
.pain h2 { font-size: clamp(2.4rem,5vw,4rem); }
.pain-list { text-align: left; margin: 3rem 0; border-top: 1px solid var(--line); }
.pain-list p { padding: 1.2rem 0; margin: 0; border-bottom: 1px solid var(--line); font-size: 1.1rem; }
blockquote { font-family: var(--serif); font-size: clamp(1.7rem,3vw,2.5rem); font-style: italic; line-height: 1.4; color: var(--wine); margin: 4rem 0 2rem; }
.bridge { font-size: 1.08rem; }

.movement { background: var(--ink); color: #fff; }
.movement .eyebrow { color: var(--gold-light); }
.movement-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: rgba(255,255,255,.16); border: 1px solid rgba(255,255,255,.16); }
.movement-grid article { padding: clamp(2rem,5vw,4.5rem); }
.horizontal-card { background: #241713; }
.vertical-card { background: var(--green); }
.card-label { color: var(--gold-light); font-size: .74rem; font-weight: 700; letter-spacing: .13em; }
.movement-grid h3 { font-family: var(--serif); font-size: clamp(2rem,4vw,3.4rem); margin: 1.3rem 0 2rem; }
.movement-grid ul { padding-left: 1.1rem; color: #ddd0c6; }
.movement-grid li { margin-bottom: .8rem; }
.movement-grid article > p:last-child { margin-top: 2.5rem; color: var(--gold-light); }

.journey { background: var(--paper); position: relative; }
.journey-line { width: 1px; height: calc(100% - 24rem); background: linear-gradient(var(--gold),var(--wine)); position: absolute; left: max(5.9vw, calc((100vw - 1220px)/2 + 11px)); top: 20rem; }
.journey-card { display: grid; grid-template-columns: 72px minmax(280px,1fr) minmax(300px,.9fr); gap: 2rem; padding: 2.7rem 0; border-top: 1px solid var(--line); position: relative; }
.journey-number { width: 24px; height: 24px; border-radius: 50%; background: var(--gold); color: var(--ink); display: grid; place-items: center; font: 700 .72rem var(--sans); z-index: 1; }
.journey-summary > span { color: var(--wine); font-size: .73rem; font-weight: 700; letter-spacing: .12em; }
.journey-summary h3 { font-family: var(--serif); font-size: clamp(2rem,3.6vw,3.5rem); margin: .7rem 0 1rem; }
.tags { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.tags li { padding: .35rem .7rem; border: 1px solid var(--line); border-radius: 999px; font-size: .78rem; color: var(--muted); }
.result { border-left: 2px solid var(--gold); padding-left: 1rem; margin-top: 1.5rem; color: var(--muted); }
details { border-top: 1px solid var(--line); }
summary { cursor: pointer; list-style: none; padding: 1.25rem 2rem 1.25rem 0; font-weight: 700; position: relative; }
summary::-webkit-details-marker { display: none; }
summary::after { content: "+"; position: absolute; right: .2rem; font-size: 1.4rem; color: var(--wine); }
details[open] summary::after { content: "–"; }
.journey details ol { padding-left: 1.3rem; margin: 0; }
.journey details li { padding: .8rem 0 .8rem .4rem; border-top: 1px solid var(--line); }
.journey details li span { display: block; color: var(--muted); font-size: .91rem; margin-top: .2rem; }

.method { background: var(--cream); }
.method-flow { display: grid; grid-template-columns: repeat(9,auto); align-items: stretch; justify-content: center; gap: .75rem; padding: 3rem 0 5rem; counter-reset: method-step; }
.method-flow article { width: 164px; min-height: 172px; text-align: left; background: rgba(255,253,248,.78); border: 1px solid rgba(43,25,19,.13); border-radius: 1rem; padding: 1.2rem; position: relative; box-shadow: 0 10px 30px rgba(43,25,19,.05); counter-increment: method-step; }
.method-flow article::before { content:"0" counter(method-step); display: block; color: var(--gold); font: 500 1.8rem var(--serif); margin-bottom: 1.4rem; }
.method-flow span { color: var(--wine); font-weight: 800; font-size: .77rem; letter-spacing: .1em; }
.method-flow p { font-family: var(--serif); line-height: 1.35; margin-top: .5rem; }
.method-flow i { color: var(--gold); font-style: normal; align-self: center; font-size: 1.35rem; }
.method-columns { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.method-columns article { background: var(--paper); padding: 2.3rem; }
.method-columns article:nth-child(2) { position: relative; overflow: hidden; isolation: isolate; }
.method-columns article:nth-child(2)::before { content:""; position: absolute; width: 135%; aspect-ratio: 1; left: 8%; top: 50%; transform: translateY(-50%) rotate(-10deg); background: url("assets/spiral-line.svg") center/contain no-repeat; opacity: .25; z-index: 0; pointer-events: none; }
.method-columns article:nth-child(2) > * { position: relative; z-index: 1; }
.method-columns h3 { font-family: var(--serif); font-size: 1.9rem; }
.method-columns article > p:last-child { color: var(--muted); }

.axes { background: linear-gradient(180deg,rgba(91,25,39,.46) 0%,rgba(72,18,31,.62) 50%,rgba(55,13,24,.82) 100%), url("assets/nepal-house.webp") center 42%/cover no-repeat; color: #fff; position: relative; }
.axes .eyebrow { color: var(--gold-light); }
.axes .section-heading { text-shadow: 0 2px 22px rgba(24,4,10,.38); }
.axes-intro { max-width: 700px !important; margin: 1.5rem 0 0 !important; color: #f2e6e4 !important; font-family: var(--serif); font-size: 1.3rem !important; line-height: 1.5; }
.axes-foundation { max-width: 980px; margin: 0 0 2rem; padding: 2rem; background: rgba(52,10,21,.45); border-left: 3px solid var(--gold-light); backdrop-filter: blur(5px); }
.axes-foundation h3 { max-width: 780px; font: 500 clamp(2rem,4vw,3.4rem)/1.12 var(--serif); margin-bottom: 1.2rem; }
.axes-foundation p { max-width: 850px; color: #f2e6e4; margin-bottom: .8rem; }
.axes-structure-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1rem; margin-bottom: 2rem; }
.axes-structure-grid article { background: rgba(255,253,248,.92); color: var(--ink); border-radius: 1rem; padding: 1.6rem; }
.axes-structure-grid article > span { display: block; color: var(--gold); font: 500 2rem var(--serif); margin-bottom: 1rem; }
.axes-structure-grid h3 { font-family: var(--serif); font-size: 1.45rem; margin-bottom: .7rem; }
.axes-structure-grid p { color: var(--muted); margin: 0; }
.axes-pillars { max-width: 980px; margin: 0 0 2rem; padding: 1.6rem 2rem; background: rgba(52,10,21,.58); border: 1px solid rgba(255,255,255,.25); color: #f2e6e4; font-size: 1.08rem; }
.axes-pillars strong { color: var(--gold-light); }
.axes-grid { display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid rgba(255,255,255,.31); border-left: 1px solid rgba(255,255,255,.31); background: rgba(65,13,25,.34); backdrop-filter: blur(5px); }
.axes-grid div { display: grid; padding: 1.6rem; border-right: 1px solid rgba(255,255,255,.31); border-bottom: 1px solid rgba(255,255,255,.31); }
.axes-grid b { color: var(--gold-light); font-family: var(--serif); font-size: 1.7rem; }
.axes-grid span { font-weight: 700; }
.axes-grid small { color: #e2cdd0; margin-top: .3rem; }
.axes-credit { margin: 1rem 0 0; color: rgba(255,255,255,.72); font-size: .7rem; }
.axes-credit a { text-underline-offset: .2rem; }

.functions { display: grid; grid-template-columns: 1.2fr .8fr; padding-left: 0; padding-right: 0; padding-top: 0; padding-bottom: 0; }
.water-panel,.function-panel { padding: clamp(4rem,8vw,8rem); }
.water-panel { background: var(--green); color: #fff; }
.water-panel .eyebrow,.function-panel .eyebrow { color: var(--gold-light); }
.water-cards article { padding: 1.2rem 0; border-top: 1px solid rgba(255,255,255,.2); display: grid; grid-template-columns: 90px 1fr; align-items: baseline; }
.water-cards b { color: var(--gold-light); }
.water-cards span { font-family: var(--serif); font-size: 1.5rem; }
.water-cards p { grid-column: 2; color: #d5ddd8; margin-bottom: 0; }
.function-panel { background: var(--ink); color: #fff; }
.function-panel dl { margin: 2rem 0 0; }
.function-panel dl div { padding: 1rem 0; border-top: 1px solid rgba(255,255,255,.18); display: grid; grid-template-columns: 110px 1fr; }
.function-panel dt { color: var(--gold-light); font-family: var(--serif); font-size: 1.4rem; }
.function-panel dd { margin: 0; color: #d8cbc2; }

.audience { background: var(--paper); }
.audience-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
.audience-grid article { border: 1px solid var(--line); padding: 3rem; }
.audience-grid span { color: var(--wine); font-weight: 700; }
.audience-grid h3 { font-family: var(--serif); font-size: 2rem; margin-top: 1rem; }
.audience-grid p { color: var(--muted); }
.note { text-align: center; margin: 2rem auto 0; max-width: 760px; font-weight: 600; }

.featured-proof { background: var(--wine); color: #fff; display: grid; grid-template-columns: 1.1fr .9fr; gap: 7vw; align-items: center; }
.featured-proof .eyebrow { color: var(--gold-light); }
.featured-proof h2 { max-width: 760px; }
.featured-proof-copy > p:not(.eyebrow) { max-width: 700px; color: #f1dfe2; font-family: var(--serif); font-size: clamp(1.2rem,2vw,1.55rem); line-height: 1.55; }
.featured-proof-copy > span { color: var(--gold-light); font-size: .82rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.featured-proof figure { margin: 0; width: min(100%,520px); justify-self: center; padding: 1rem; background: var(--paper); box-shadow: 0 24px 70px rgba(43,25,19,.35); }
.featured-proof img { width: 100%; height: auto; }

.experience { background: var(--cream); }
.experience-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1rem; }
.experience-grid article { background: var(--paper); border: 1px solid var(--line); padding: 2rem; }
.experience-grid span { color: var(--wine); font-size: .78rem; font-weight: 800; letter-spacing: .1em; }
.experience-grid h3 { margin: .8rem 0 .5rem; }
.experience-grid p { color: var(--muted); margin: 0; }

.bonus-grid { display: grid; grid-template-columns: repeat(5,1fr); border-top: 1px solid var(--line); }
.bonus-grid article { padding: 2rem 1.5rem 1rem 0; border-right: 1px solid var(--line); }
.bonus-grid article + article { padding-left: 1.5rem; }
.bonus-grid b { color: var(--wine); }
.bonus-grid h3 { font-family: var(--serif); font-size: 1.45rem; margin-top: 1rem; }
.bonus-grid p { color: var(--muted); font-size: .92rem; }

.teacher { background: var(--ink); color: #fff; display: grid; grid-template-columns: .9fr 1.1fr; gap: 7vw; align-items: center; }
.teacher-image { display: grid; place-items: center; }
.teacher-image img { width: 100%; height: auto; object-fit: contain; aspect-ratio: auto; border-radius: 2rem; }
.teacher .eyebrow { color: var(--gold-light); }
.teacher h2 { font-size: clamp(3rem,6vw,5.5rem); }
.teacher-copy > p:not(.eyebrow) { color: #d8cbc2; max-width: 650px; }

.testimonials { background: var(--cream); }
.testimonial-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1.2rem; align-items: start; }
.testimonial-card { margin: 0; background: var(--paper); border: 1px solid var(--line); padding: clamp(1.5rem,3vw,2.2rem); min-height: 100%; display: flex; flex-direction: column; }
.testimonial-card > span { font-size: .72rem; font-weight: 800; letter-spacing: .09em; color: var(--wine); text-transform: uppercase; }
.testimonial-card blockquote { margin: 1.5rem 0; color: var(--ink); font-size: clamp(1.25rem,2vw,1.55rem); line-height: 1.48; text-align: left; }
.testimonial-card > p { margin: auto 0 0; font-weight: 800; color: var(--wine); }
.testimonial-card > small { color: var(--muted); margin-top: .25rem; }

.not-for { text-align: center; }
.not-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--line); border: 1px solid var(--line); margin-top: 3rem; text-align: left; }
.not-grid p { background: var(--paper); padding: 1.4rem; margin: 0; }

.offer { background: var(--green); color: #fff; display: grid; grid-template-columns: 1.15fr .85fr; gap: 7vw; align-items: center; }
.offer .eyebrow { color: var(--gold-light); }
.offer-copy > p:not(.eyebrow) { color: #d5ddd8; max-width: 680px; font-size: 1.08rem; }
.offer-copy ul { columns: 2; padding-left: 1.2rem; }
.offer-copy li { margin-bottom: .6rem; color: #e0e7e2; }
.price-card { background: var(--paper); color: var(--ink); padding: clamp(2rem,4vw,3.5rem); border-radius: 1.5rem; box-shadow: 0 24px 70px rgba(0,0,0,.22); }
.price-card > span { color: var(--wine); font-weight: 800; font-size: .76rem; letter-spacing: .12em; }
.price { font-family: var(--serif); font-size: clamp(4rem,7vw,6.8rem); line-height: 1; margin: 1.3rem 0 1rem; }
.price small { font-family: var(--sans); font-size: 1rem; }
.price sup { font-size: 2rem; }
.price-card > p:not(.price) { color: var(--muted); }
.purchase-notes { margin-top: 1.2rem; padding: 1rem 1.1rem; background: var(--cream); border-radius: .8rem; }
.purchase-notes p { margin: 0; color: var(--muted); font-size: .86rem; line-height: 1.5; }
.purchase-notes p + p { margin-top: .35rem; }
.purchase-notes b { color: var(--wine); }
.next-prices { margin-top: 1.5rem; border-top: 1px solid var(--line); }
.next-prices p { display: flex; justify-content: space-between; margin: 0; padding: .8rem 0; border-bottom: 1px solid var(--line); font-size: .88rem; }

.faq details { border-bottom: 1px solid var(--line); }
.faq summary { font-size: 1.05rem; padding: 1.5rem 2.5rem 1.5rem 0; }
.faq details p { color: var(--muted); padding: 0 2rem 1.5rem 0; }
.faq-support { margin: 2rem 0 0; padding: 1.2rem 1.4rem; background: var(--cream); text-align: center; }
.faq-support a, footer a { color: var(--wine); font-weight: 700; text-underline-offset: .2rem; }

.closing { background: var(--ink); color: #fff; text-align: center; padding: clamp(6rem,12vw,11rem) 5vw; position: relative; overflow: hidden; }
.closing::before { content:""; width: 550px; height: 550px; border: 1px solid rgba(226,202,143,.18); border-radius: 50%; position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); box-shadow: 0 0 0 80px rgba(226,202,143,.04),0 0 0 160px rgba(226,202,143,.025); }
.closing > * { position: relative; z-index: 1; }
.closing .eyebrow { color: var(--gold-light); }
.closing h2 { max-width: 1000px; margin-left: auto; margin-right: auto; }
.closing > p:not(.eyebrow) { color: #d8cbc2; font-size: 1.15rem; margin-bottom: 2rem; }

footer { padding: 2.5rem 5vw; display: grid; grid-template-columns: 1fr 2fr 1fr; align-items: center; gap: 2rem; color: var(--muted); font-size: .78rem; border-top: 1px solid var(--line); }
footer p { margin: 0; text-align: center; }
footer p:last-child { text-align: right; }

@media (max-width: 980px) {
  .site-header nav { display: none; }
  .hero { grid-template-columns: 1fr; min-height: auto; }
  .hero-copy { padding: 6rem 6vw 4rem; }
  .hero-copy::before { width: 92vw; left: 18%; opacity: .25; }
  .hero-image { min-height: 72vw; background-image: linear-gradient(0deg,var(--ink) 0%, rgba(43,25,19,.18) 34%, transparent 58%), url("assets/hero-spiral.webp"); background-position: center 34%; }
  .facts,.promise-grid,.axes-grid,.experience-grid { grid-template-columns: repeat(2,1fr); }
  .facts div:nth-child(2) { border-right: 0; }
  .facts div { border-bottom: 1px solid rgba(255,255,255,.18); padding: 1rem; }
  .journey-card { grid-template-columns: 50px 1fr; }
  .journey-card details { grid-column: 2; }
  .journey-line { left: max(6.2vw, calc((100vw - 1220px)/2 + 11px)); }
  .method-flow { grid-template-columns: repeat(2,minmax(0,1fr)); gap: .8rem; padding: 1.5rem 0 4rem; }
  .method-flow article { width: auto; max-width: none; min-height: 150px; }
  .method-flow article:last-of-type { grid-column: 1 / -1; min-height: 128px; }
  .method-flow i { display: none; }
  .method-columns,.functions,.teacher,.offer,.featured-proof { grid-template-columns: 1fr; }
  .axes-structure-grid { grid-template-columns: 1fr; }
  .bonus-grid { grid-template-columns: repeat(2,1fr); }
  .testimonial-grid { grid-template-columns: 1fr; max-width: 560px; margin: 0 auto; }
  footer { grid-template-columns: 1fr; text-align: center; }
  footer .brand { justify-content: center; }
  footer p:last-child { text-align: center; }
}

@media (max-width: 640px) {
  body { padding-bottom: 92px; }
  h2 { font-size: 2.45rem; }
  .site-header { height: 66px; padding: 0 1rem; }
  .site-header > .button { display: none; }
  .brand b { font-size: .72rem; }
  .brand-logo { width: 38px; height: 38px; }
  .hero { min-height: calc(100svh - 66px); display: flex; flex-direction: column; }
  .hero-copy { padding: 4rem 1.3rem 3rem; }
  .hero-copy::before { width: 132vw; left: 5%; top: 42%; opacity: .29; }
  .hero h1 { font-size: clamp(3.6rem,17vw,5rem); }
  .hero-lead { font-size: 1.35rem; }
  .hero-image { min-height: 105vw; background-size: cover; background-position: center 30%; }
  .facts,.promise-grid,.movement-grid,.axes-grid,.experience-grid,.audience-grid,.not-grid { grid-template-columns: 1fr; }
  .facts div { border-right: 0; padding: 1rem 0; }
  .section,.section-narrow { padding: 4.5rem 1.25rem; }
  .promise-grid article { padding: 1.3rem 0; border-bottom: 1px solid var(--line); }
  .movement-grid article { padding: 2rem 1.3rem; }
  .journey-card { grid-template-columns: 34px 1fr; gap: 1rem; }
  .journey-card details { grid-column: 1 / -1; margin-left: 50px; }
  .journey-line { left: 1.95rem; top: 19rem; }
  .method-columns article,.audience-grid article { padding: 1.5rem; }
  .method-columns article:nth-child(2)::before { width: 120%; left: 16%; opacity: .28; }
  .method-flow article { min-height: 145px; padding: 1rem; }
  .method-flow article::before { margin-bottom: 1rem; font-size: 1.5rem; }
  .method-flow p { font-size: 1.05rem; }
  .water-panel,.function-panel { padding: 4rem 1.25rem; }
  .water-cards article { grid-template-columns: 82px 1fr; }
  .axes-grid div { padding: 1.2rem; }
  .bonus-grid { grid-template-columns: 1fr; }
  .bonus-grid article,.bonus-grid article + article { padding: 1.3rem 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .teacher { gap: 3rem; }
  .offer-copy ul { columns: 1; }
  .price-card { padding: 2rem 1.3rem; }
  .mobile-cta { display: flex; position: fixed; left: 1rem; right: 1rem; bottom: max(1rem, env(safe-area-inset-bottom)); z-index: 60; min-height: 58px; align-items: center; justify-content: center; padding: .9rem 1.25rem; border: 1px solid var(--gold-light); border-radius: 999px; background: var(--gold); color: #22150f; box-shadow: 0 10px 28px rgba(43,25,19,.3); font-weight: 700; text-align: center; text-decoration: none; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  * { transition: none !important; }
}
