:root{
  --ivory:#F5F0E6; --sand:#D8C5B1; --sand-light:#EDE4D6; --sage:#A9AE96;
  --clay:#B4765B; --clay-deep:#8E553D; --forest:#343B32;
  --ink:#1F231E; --muted:#555A50;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:Inter,system-ui,sans-serif;font-weight:400;color:var(--ink);background:var(--ivory);line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}
.wrap{max-width:1160px;margin:0 auto;padding:0 24px}
section{padding:88px 0}
h1,h2,h3{font-weight:300;color:var(--forest);line-height:1.1;letter-spacing:-.02em}
h1{font-size:clamp(2.6rem,6vw,4.6rem)}
h2{font-size:clamp(2rem,4vw,3rem);margin-bottom:16px}
h3{font-weight:500;font-size:1.15rem;letter-spacing:0}
.label{font-size:.78rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--clay-deep);margin-bottom:18px;display:block}
.lede{color:var(--muted);font-size:1.15rem;max-width:560px}

/* buttons */
.btn{display:inline-block;padding:14px 28px;border-radius:999px;font:500 .95rem Inter,sans-serif;text-decoration:none;border:1.5px solid transparent;transition:transform .15s,background .15s;cursor:pointer}
.btn:hover{transform:translateY(-1px)}
.btn-clay{background:var(--clay);color:var(--ink)}
.btn-clay:hover{background:#c2836a}
.btn-outline{border-color:var(--forest);color:var(--forest);background:transparent}
.btn-outline:hover{background:var(--forest);color:var(--ivory)}
.btn-forest{background:var(--forest);color:var(--ivory)}
.btn-sm{padding:10px 20px;font-size:.88rem}
.btn-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px}

/* header */
header{position:sticky;top:0;z-index:50;background:rgba(245,240,230,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--sand)}
.nav{display:flex;align-items:center;justify-content:space-between;height:76px}
.nav img{height:44px;width:auto}
.nav ul{display:flex;gap:32px;list-style:none;align-items:center}
.nav a.link{text-decoration:none;font-size:.95rem;color:var(--ink)}
.nav a.link:hover{color:var(--clay-deep)}
@media(max-width:820px){.nav ul li:not(:last-child){display:none}}

/* hero */
.hero{padding:0}
.hero-grid{display:grid;grid-template-columns:1.05fr 1fr;min-height:620px}
.hero-copy{display:flex;flex-direction:column;justify-content:center;padding:72px 24px 72px max(24px,calc((100vw - 1160px)/2 + 24px));padding-right:56px}
.hero-copy p.lede{margin-top:24px}
.hero-img{position:relative;background:var(--forest);overflow:hidden}
.hero-img img{width:100%;height:100%;object-fit:cover;filter:brightness(1.55) contrast(.95) saturate(1.05)}
@media(max-width:820px){.hero-grid{grid-template-columns:1fr}.hero-img{height:380px}.hero-copy{padding:56px 24px}}

/* studios */
.studios{background:var(--forest);color:var(--ivory)}
.studios h2{color:var(--ivory)}
.studios .lede{color:#cfd3c6}
.cards{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:48px}
.card{background:var(--ivory);color:var(--ink);border-radius:20px;padding:36px}
.card h3{font-size:1.6rem;font-weight:300;margin-bottom:8px}
.card address{font-style:normal;color:var(--muted);margin-bottom:24px}
@media(max-width:820px){.cards{grid-template-columns:1fr}}

/* intro offer */
.offer{background:var(--sand);text-align:center;padding:72px 0}
.offer h2{margin-bottom:24px}

/* belief */
.belief-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:48px;border-top:1px solid var(--sand)}
.belief-grid div{padding:28px 8px;border-bottom:1px solid var(--sand);font-size:1.25rem;font-weight:300;color:var(--forest)}
@media(max-width:600px){.belief-grid{grid-template-columns:1fr 1fr}}

/* benefits */
.benefits{background:var(--sand-light)}
.benefit-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:32px;margin-top:48px}
.benefit{border-top:2px solid var(--sage);padding-top:20px}
.benefit h3{margin-bottom:8px}
.benefit p{color:var(--muted);font-size:.95rem}
@media(max-width:900px){.benefit-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.benefit-grid{grid-template-columns:1fr}}

/* memberships */
.plans{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:48px}
.plan{background:#fff8ef;border:1px solid var(--sand);border-radius:20px;padding:36px;display:flex;flex-direction:column;position:relative}
.plan .price{font-size:2.6rem;font-weight:300;color:var(--forest);margin:12px 0 4px;letter-spacing:-.02em}
.plan .price small{font-size:1rem;color:var(--muted);font-weight:400}
.plan p{color:var(--muted);font-size:.95rem;flex:1;margin-bottom:28px}
.plan.best{background:var(--forest);color:var(--ivory);border-color:var(--forest)}
.plan.best h3,.plan.best .price{color:var(--ivory)}
.plan.best p,.plan.best .price small{color:#cfd3c6}
.tag{position:absolute;top:20px;right:20px;background:var(--sage);color:var(--ink);font-size:.72rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;padding:5px 12px;border-radius:999px}
.fineprint{margin-top:24px;color:var(--muted);font-size:.9rem}
@media(max-width:900px){.plans{grid-template-columns:1fr}}

/* schedule */
.schedule{background:var(--sand-light)}
.tabs{display:flex;gap:8px;margin:32px 0 24px}
.tab{padding:10px 24px;border-radius:999px;border:1.5px solid var(--forest);background:transparent;color:var(--forest);font:500 .95rem Inter,sans-serif;cursor:pointer}
.tab[aria-selected="true"]{background:var(--forest);color:var(--ivory)}
.panel{background:var(--ivory);border-radius:20px;padding:24px;min-height:260px}
.panel[hidden]{display:none}
.mb-placeholder{border:2px dashed var(--sage);border-radius:14px;padding:32px;text-align:center;color:var(--muted);font-size:.92rem}
.mb-placeholder code{background:var(--sand-light);padding:2px 6px;border-radius:4px;font-size:.85rem}

/* teachers */
.teacher-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:64px;align-items:center}
.teacher-photo{aspect-ratio:4/5;background:var(--sage);border-radius:20px;display:flex;align-items:center;justify-content:center;color:var(--forest);font-size:.9rem;text-align:center;padding:24px;overflow:hidden}
.teacher-photo img{width:100%;height:100%;object-fit:cover}
blockquote{font-size:clamp(1.8rem,3.6vw,2.7rem);font-weight:300;color:var(--forest);line-height:1.2;letter-spacing:-.02em;margin-bottom:32px}
@media(max-width:820px){.teacher-grid{grid-template-columns:1fr;gap:32px}}

/* newsletter */
.news{background:var(--sage);text-align:center}
.news h2{margin-bottom:12px}
.news form{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:28px}
.news input[type=email]{padding:14px 22px;border-radius:999px;border:1.5px solid var(--forest);background:var(--ivory);font:400 1rem Inter,sans-serif;min-width:280px;color:var(--ink)}
.news .note{font-size:.85rem;margin-top:14px;color:var(--forest)}

/* footer */
footer{background:var(--forest);color:var(--ivory);padding:72px 0 40px}
.foot-grid{display:grid;grid-template-columns:auto 1fr 1fr 1fr;gap:56px;align-items:start}
.foot-grid img{height:110px;width:auto}
footer h4{font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;font-weight:600;color:var(--sage);margin-bottom:14px}
footer p,footer address,footer a{font-style:normal;color:#e6e3d8;font-size:.95rem;text-decoration:none;line-height:1.8}
footer a:hover{color:#fff;text-decoration:underline}
.social{display:flex;gap:12px}
.social a{width:44px;height:44px;border-radius:50%;border:1.5px solid rgba(245,240,230,.4);display:flex;align-items:center;justify-content:center;color:var(--ivory);transition:background .15s,border-color .15s}
.social a:hover{background:var(--ivory);color:var(--forest);border-color:var(--ivory);text-decoration:none}
.social svg{width:20px;height:20px}
.copy{margin-top:56px;padding-top:24px;border-top:1px solid rgba(245,240,230,.18);font-size:.82rem;color:#aab0a0}
@media(max-width:900px){.foot-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.foot-grid{grid-template-columns:1fr}}

/* ---------- shared: nav state ---------- */
.nav a.link[aria-current="page"]{color:var(--clay-deep);font-weight:500}
.nav ul{gap:28px}
@media(max-width:980px){.nav ul{gap:18px}.nav a.link{font-size:.88rem}}
.mobile-nav{display:none}
@media(max-width:820px){
  .mobile-nav{display:flex;gap:20px;overflow-x:auto;padding:10px 24px;border-top:1px solid var(--sand);font-size:.9rem;white-space:nowrap}
  .mobile-nav a{text-decoration:none;color:var(--ink)}
  .mobile-nav a[aria-current="page"]{color:var(--clay-deep);font-weight:500}
}

/* ---------- inner page hero ---------- */
.page-hero{padding:96px 0 64px;border-bottom:1px solid var(--sand)}
.page-hero h1{font-size:clamp(2.4rem,5.2vw,4rem);max-width:820px}
.page-hero .lede{margin-top:20px}
.page-hero.split .wrap{display:grid;grid-template-columns:1.1fr 1fr;gap:56px;align-items:center}
.page-hero.split img{border-radius:20px;aspect-ratio:4/3;object-fit:cover;width:100%;filter:brightness(1.55) contrast(.95)}
@media(max-width:820px){.page-hero.split .wrap{grid-template-columns:1fr}}
.section-head{display:flex;justify-content:space-between;align-items:end;gap:24px;flex-wrap:wrap;margin-bottom:8px}
.alt{background:var(--sand-light)}
.note{color:var(--muted);font-size:.92rem;margin-top:16px}
.text-link{color:var(--clay-deep);font-weight:500;text-decoration:none;border-bottom:1px solid currentColor}
.text-link:hover{color:var(--forest)}

/* ---------- pricing ---------- */
.feature-offer{display:grid;grid-template-columns:1.4fr 1fr;gap:32px;align-items:center;background:var(--sand);border-radius:24px;padding:48px}
.feature-offer .price{font-size:4rem;font-weight:300;color:var(--forest);letter-spacing:-.03em;line-height:1}
.feature-offer h2{margin-bottom:8px}
.feature-offer p{color:var(--ink)}
@media(max-width:820px){.feature-offer{grid-template-columns:1fr;padding:32px}}
.plan ul{list-style:none;margin:4px 0 28px;flex:1}
.plan li{padding:8px 0;border-bottom:1px solid var(--sand);font-size:.93rem;color:var(--muted)}
.plan.best li{border-color:rgba(245,240,230,.18);color:#cfd3c6}
.plan li:last-child{border-bottom:0}
.rows{margin-top:40px;border-top:1px solid var(--sand)}
.row{display:grid;grid-template-columns:1fr auto auto;gap:24px;align-items:center;padding:22px 4px;border-bottom:1px solid var(--sand)}
.row h3{font-size:1.1rem}
.row p{color:var(--muted);font-size:.9rem}
.row .amt{font-size:1.6rem;font-weight:300;color:var(--forest)}
@media(max-width:600px){.row{grid-template-columns:1fr auto}.row .btn{grid-column:1/-1;justify-self:start}}

/* ---------- schedule ---------- */
.widget-box{background:var(--ivory);border-radius:20px;padding:24px;min-height:220px}
.alt .widget-box{background:var(--ivory)}
section:not(.alt) .widget-box{background:#fff8ef;border:1px solid var(--sand)}

/* ---------- teachers ---------- */
.founder{display:grid;grid-template-columns:320px 1fr;gap:56px;align-items:center}
.founder .avatar{width:100%;aspect-ratio:4/5;border-radius:20px;font-size:4rem}
.founder h2{margin-bottom:4px}
.founder .role{color:var(--clay-deep);font-weight:500;margin-bottom:20px;display:block}
.founder p{color:var(--muted);max-width:560px}
@media(max-width:820px){.founder{grid-template-columns:1fr;gap:28px}.founder .avatar{max-width:320px}}
.team{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:36px 24px;margin-top:40px}
.member{background:none;border:0;text-align:left;font:inherit;color:inherit;padding:0;cursor:default}
.member.has-bio{cursor:pointer}
.member.has-bio:hover .avatar{transform:translateY(-3px)}
.member.has-bio:focus-visible{outline:2px solid var(--clay);outline-offset:6px;border-radius:16px}
.avatar{display:flex;align-items:center;justify-content:center;width:100%;aspect-ratio:1;border-radius:16px;background:var(--sand-light);color:var(--forest);font-size:2.4rem;font-weight:300;letter-spacing:.02em;overflow:hidden;transition:transform .2s}
.avatar img{width:100%;height:100%;object-fit:cover}
.team .member:nth-child(3n+2) .avatar{background:#e2e3d6}
.team .member:nth-child(3n) .avatar{background:#ead8c9}
.member h3{margin-top:14px;font-size:1.02rem}
.member span{display:block;color:var(--muted);font-size:.88rem}
.member .more{color:var(--clay-deep);font-size:.82rem;font-weight:500;margin-top:4px}
dialog.bio{border:0;border-radius:24px;padding:0;max-width:640px;width:calc(100% - 32px);background:var(--ivory);color:var(--ink)}
dialog.bio::backdrop{background:rgba(31,35,30,.55)}
.bio-inner{display:grid;grid-template-columns:200px 1fr;gap:28px;padding:36px}
.bio-inner .avatar{aspect-ratio:4/5}
.bio-inner h3{font-size:1.6rem;font-weight:300}
.bio-inner .role{color:var(--clay-deep);font-size:.9rem;font-weight:500;display:block;margin-bottom:14px}
.bio-inner p{color:var(--muted);font-size:.95rem;white-space:pre-line}
.bio-close{position:absolute;top:14px;right:14px;width:40px;height:40px;border-radius:50%;border:0;background:var(--sand-light);font-size:1.4rem;cursor:pointer;color:var(--forest)}
@media(max-width:600px){.bio-inner{grid-template-columns:1fr;padding:28px}.bio-inner .avatar{max-width:180px}}

/* ---------- teacher training ---------- */
.details{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:40px;border-top:1px solid var(--sand)}
.details div{padding:24px 16px 24px 0;border-bottom:1px solid var(--sand)}
.details dt{font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:var(--clay-deep)}
.details dd{font-size:1.2rem;font-weight:300;color:var(--forest);margin-top:6px}
@media(max-width:820px){.details{grid-template-columns:1fr 1fr}}
.topics{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;margin-top:40px}
.topics div{border-top:2px solid var(--sage);padding-top:18px}
.topics h3{margin-bottom:6px}
.topics p{color:var(--muted);font-size:.95rem}
@media(max-width:820px){.topics{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.topics{grid-template-columns:1fr}}

/* ---------- about ---------- */
.story{display:grid;grid-template-columns:1fr 1.2fr;gap:64px}
.story p{color:var(--muted);font-size:1.08rem;margin-bottom:18px}
.story p.big{font-size:clamp(1.5rem,2.6vw,2rem);font-weight:300;color:var(--forest);line-height:1.3}
@media(max-width:820px){.story{grid-template-columns:1fr;gap:24px}}
.offerings{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:40px}
.offering{background:var(--ivory);border-radius:20px;padding:28px}
.offering h3{margin-bottom:8px}
.offering p{color:var(--muted);font-size:.93rem}
@media(max-width:900px){.offerings{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.offerings{grid-template-columns:1fr}}
.pull{text-align:center;max-width:860px;margin:0 auto}
.pull blockquote{margin-bottom:16px}
.pull cite{font-style:normal;color:var(--muted);letter-spacing:.08em;font-size:.9rem}

/* fixes */
.alt .team .member:nth-child(3n+1) .avatar{background:var(--ivory)}
.plan .tag ~ h3{padding-right:110px}

/* teacher training dates */
.ytt-dates{display:grid;grid-template-columns:1.3fr 1fr;gap:56px;align-items:start}
.date-list{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:0 24px;margin-top:28px;border-top:1px solid var(--sand)}
.date-list li{padding:14px 0;border-bottom:1px solid var(--sand);font-size:1.05rem;color:var(--forest)}
@media(max-width:820px){.ytt-dates{grid-template-columns:1fr}.date-list{grid-template-columns:1fr 1fr}}
.founder p{margin-bottom:14px}
dialog.bio{margin:auto;max-height:86vh;overflow:auto}
.bio-inner > div:first-child{position:sticky;top:36px;align-self:start}
@media(max-width:600px){.bio-inner > div:first-child{position:static}}
