/* CURVE STUDIO — editorial, quiet luxury.
   Layout: ivory ground, hairline rules, generous whitespace, split hero, arch-topped imagery echoing the studio. */
:root{
  --ivory:#F6F2EC;      /* page ground */
  --bone:#EDE6DC;       /* soft band */
  --sand:#D9CCBC;       /* hairline accents */
  --taupe:#8B7B6E;      /* secondary text */
  --cocoa:#5A4D44;      /* brand mid */
  --espresso:#2E2621;   /* brand dark */
  --ink:#231D19;        /* running text */
  --beige:#EADFD1;      /* text on dark */
  --line:rgba(46,38,33,.16);
  --line-light:rgba(234,223,209,.28);
  --display:"Cormorant Garamond","Cormorant",Garamond,"Times New Roman",serif;
  --ui:"Jost","Helvetica Neue",Helvetica,Arial,sans-serif;
  --gutter:clamp(20px,5vw,72px);
  --max:1320px;
  --radius:6px;         /* subtle, consistent image rounding */
  --ease:cubic-bezier(.2,.7,.2,1);
  color-scheme:light;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ivory);color:var(--ink);font-family:var(--ui);font-weight:300;font-size:16.5px;line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
p{margin:0}
h1,h2,h3{font-family:var(--display);font-weight:300;margin:0;line-height:1.02;letter-spacing:-.005em;text-wrap:balance}
em{font-style:italic}
.wrap{max-width:var(--max);margin-inline:auto;padding-inline:var(--gutter)}
.label{font-family:var(--ui);font-size:.68rem;font-weight:400;letter-spacing:.28em;text-transform:uppercase}
.muted{color:var(--taupe)}
.rule{height:1px;background:var(--line);border:0;margin:0}
:focus-visible{outline:1px solid var(--cocoa);outline-offset:4px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}

/* links & buttons */
.btn{display:inline-flex;align-items:center;gap:14px;font-family:var(--ui);font-size:.7rem;font-weight:400;letter-spacing:.26em;text-transform:uppercase;padding:17px 30px;border:1px solid currentColor;transition:background .4s var(--ease),color .4s var(--ease),border-color .4s var(--ease)}
.btn--dark{background:var(--espresso);color:var(--beige);border-color:var(--espresso)}
.btn--dark:hover{background:transparent;color:var(--espresso)}
.btn--ghost:hover{background:var(--espresso);color:var(--beige);border-color:var(--espresso)}
.btn--light{color:var(--beige);border-color:var(--line-light)}
.btn--light:hover{background:var(--beige);color:var(--espresso);border-color:var(--beige)}
.link{display:inline-flex;align-items:center;gap:14px;font-size:.7rem;font-weight:400;letter-spacing:.26em;text-transform:uppercase;padding-bottom:6px;border-bottom:1px solid currentColor;transition:gap .4s var(--ease)}
.link:hover{gap:22px}
.arrow{display:inline-block;width:28px;height:1px;background:currentColor;position:relative}
.arrow::after{content:"";position:absolute;right:0;top:-3px;width:7px;height:7px;border-top:1px solid currentColor;border-right:1px solid currentColor;transform:rotate(45deg)}

/* header */
.site-header{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:rgba(246,242,236,.92);backdrop-filter:saturate(1.2) blur(10px);-webkit-backdrop-filter:saturate(1.2) blur(10px);border-bottom:1px solid var(--line)}
.site-header .bar{display:flex;align-items:center;justify-content:space-between;gap:24px;height:84px}
.brand img{height:34px;width:auto}
.nav{display:flex;align-items:center;gap:clamp(18px,2.6vw,40px)}
.nav a:not(.btn){font-size:.68rem;font-weight:400;letter-spacing:.26em;text-transform:uppercase;color:var(--cocoa);position:relative;padding-block:6px}
.nav a:not(.btn)::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;background:currentColor;transition:right .4s var(--ease)}
.nav a:not(.btn):hover::after,.nav a[aria-current="page"]::after{right:0}
.nav .btn{padding:13px 22px}
.menu-toggle{display:none;background:none;border:0;padding:10px 0;cursor:pointer;color:var(--espresso);font-family:var(--ui);font-size:.68rem;letter-spacing:.26em;text-transform:uppercase}
@media (max-width:920px){
  .menu-toggle{display:block}
  .nav{position:fixed;inset:84px 0 auto 0;flex-direction:column;align-items:flex-start;gap:22px;background:var(--ivory);padding:28px var(--gutter) 36px;border-bottom:1px solid var(--line);transform:translateY(-8px);opacity:0;pointer-events:none;transition:opacity .35s var(--ease),transform .35s var(--ease)}
  .nav.is-open{opacity:1;transform:none;pointer-events:auto}
  .nav a:not(.btn){font-size:.8rem}
}

/* hero */
.hero{padding-block:clamp(36px,6vw,80px) clamp(64px,8vw,110px)}
.hero .grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(36px,6vw,96px);align-items:end}
.hero h1{font-size:clamp(3.2rem,7.4vw,7rem);color:var(--espresso)}
.hero h1 em{color:var(--cocoa)}
.hero .copy{display:grid;gap:34px;padding-bottom:clamp(0px,3vw,40px)}
.hero .lede{font-family:var(--display);font-size:clamp(1.25rem,1.8vw,1.55rem);line-height:1.45;color:var(--cocoa);max-width:30ch}
.hero .actions{display:flex;flex-wrap:wrap;gap:22px 30px;align-items:center}
.hero figure{margin:0;position:relative}
.hero figure img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 35%;border-radius:var(--radius)}
.hero figcaption{position:absolute;left:-1px;bottom:28px;transform:translateX(-50%) rotate(-90deg);transform-origin:center;white-space:nowrap;color:var(--taupe)}
@media (max-width:820px){.hero .grid{grid-template-columns:1fr}.hero figure{order:-1}.hero figure img{aspect-ratio:4/4.4}.hero figcaption{display:none}}

/* strip */
.strip{border-block:1px solid var(--line)}
.strip p{padding:22px 0;text-align:center;color:var(--cocoa);max-width:none;line-height:2.2}
.strip span{margin-inline:clamp(10px,2.4vw,28px);color:var(--sand)}

/* section heads */
.section{padding-block:clamp(84px,11vw,160px)}
.head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,6vw,96px);align-items:end;margin-bottom:clamp(44px,6vw,80px)}
.head h2{font-size:clamp(2.4rem,4.8vw,4.2rem);color:var(--espresso)}
.head p{color:var(--cocoa);max-width:52ch}
.head .label{display:block;margin-bottom:22px;color:var(--taupe)}
@media (max-width:820px){.head{grid-template-columns:1fr}}

/* statement */
.statement{text-align:center}
.statement h2{font-size:clamp(2.6rem,6vw,5.4rem);color:var(--espresso)}
.statement h2 em{color:var(--cocoa)}
.statement .cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(28px,5vw,80px);max-width:960px;margin:clamp(40px,5vw,64px) auto 0;text-align:left;color:var(--cocoa)}
@media (max-width:720px){.statement .cols{grid-template-columns:1fr}}

/* classes */
.classes .grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,2.6vw,40px)}
.class-card{display:grid;gap:26px;align-content:start}
.class-card .media{overflow:hidden;border-radius:var(--radius);background:var(--bone)}
.class-card img{width:100%;aspect-ratio:3/4;object-fit:cover;transition:transform 1.4s var(--ease)}
.class-card:hover img{transform:scale(1.035)}
.class-card .meta{display:flex;justify-content:space-between;gap:12px;color:var(--taupe);padding-bottom:16px;border-bottom:1px solid var(--line)}
.class-card h3{font-size:clamp(1.9rem,2.5vw,2.4rem);color:var(--espresso)}
.class-card p{color:var(--cocoa);font-size:.95rem}
@media (max-width:900px){.classes .grid{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.classes .grid{grid-template-columns:1fr}}

/* method band */
.method{position:relative;color:var(--beige);background:var(--espresso);overflow:hidden}
.method .grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:min(92vh,820px)}
.method .img{position:relative}
.method .img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.method .txt{padding:clamp(64px,9vw,140px) clamp(28px,6vw,110px);display:grid;gap:30px;align-content:center}
.method h2{font-size:clamp(2.4rem,4.6vw,4.2rem);color:var(--beige)}
.method h2 em{color:var(--sand)}
.method p{color:var(--beige);opacity:.86;max-width:48ch}
.method .label{color:var(--sand)}
@media (max-width:820px){.method .grid{grid-template-columns:1fr}.method .img{min-height:60vh}}

/* schedule / bsport */
.bsport-frame{border-top:1px solid var(--line);padding-top:clamp(28px,4vw,48px);min-height:320px}
.bsport-fallback{display:none;text-align:center;padding:48px 20px;border:1px solid var(--line);border-radius:var(--radius);color:var(--cocoa)}
.bsport-fallback p{margin-bottom:24px;font-family:var(--display);font-size:1.4rem}
.bsport-frame.is-fallback .bsport-fallback{display:block}

/* offers */
.offers{background:var(--bone)}
.offers .grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line)}
.offer{padding:clamp(34px,4vw,56px) clamp(22px,3vw,44px) clamp(34px,4vw,48px);display:grid;gap:18px;align-content:start}
.offer+.offer{border-left:1px solid var(--line)}
.offer .price{font-family:var(--display);font-weight:300;font-size:clamp(3.2rem,5.4vw,4.8rem);line-height:1;color:var(--espresso);font-variant-numeric:lining-nums}
.offer .price small{font-family:var(--ui);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--taupe);margin-left:6px}
.offer h3{font-size:1.7rem;color:var(--espresso)}
.offer p{color:var(--cocoa);font-size:.94rem}
.offers .foot{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:18px;border-top:1px solid var(--line);padding-top:32px;margin-top:8px}
@media (max-width:820px){.offers .grid{grid-template-columns:1fr}.offer+.offer{border-left:0;border-top:1px solid var(--line)}}

/* app */
.app{background:var(--espresso);color:var(--beige);overflow:hidden}
.app .grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(36px,6vw,96px);align-items:center}
.app h2{font-size:clamp(2.6rem,5vw,4.6rem);color:var(--beige)}
.app p{color:var(--beige);opacity:.84;max-width:44ch}
.app .copy{display:grid;gap:30px}
.app .label{color:var(--sand)}
.stores{display:flex;flex-wrap:wrap;gap:14px}
.phones{position:relative;display:flex;justify-content:center;align-items:flex-end;gap:0;min-height:440px}
.phones img{width:min(46%,250px);height:auto}
.phones img:first-child{margin-right:-6%;transform:translateY(-36px)}
@media (max-width:820px){.app .grid{grid-template-columns:1fr}.phones{min-height:0}}

/* founder */
.founder figure{margin:0}
.founder img{width:100%;aspect-ratio:16/7;object-fit:cover;filter:grayscale(1) contrast(1.02);border-radius:var(--radius)}
.founder .quote{display:grid;grid-template-columns:minmax(0,.4fr) minmax(0,1fr);gap:clamp(24px,5vw,80px);padding-top:clamp(44px,6vw,80px)}
.founder blockquote{margin:0;font-family:var(--display);font-weight:300;font-style:italic;font-size:clamp(1.9rem,3.6vw,3.2rem);line-height:1.15;color:var(--espresso)}
.founder .by{display:grid;gap:10px;align-content:start;color:var(--taupe)}
.founder .by p{color:var(--cocoa);max-width:30ch}
@media (max-width:720px){.founder .quote{grid-template-columns:1fr}.founder img{aspect-ratio:4/3}}

/* visit */
.visit .grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(36px,6vw,96px);align-items:center}
.visit img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:var(--radius)}
.visit dl{margin:0;display:grid;gap:26px}
.visit dt{color:var(--taupe);margin-bottom:6px}
.visit dd{margin:0;font-family:var(--display);font-size:1.45rem;line-height:1.35;color:var(--espresso)}
.visit dd a{border-bottom:1px solid var(--line)}
.visit dd a:hover{border-color:currentColor}
@media (max-width:820px){.visit .grid{grid-template-columns:1fr}.visit img{aspect-ratio:4/4}}

/* page hero (sub pages) */
.page-hero{position:relative;color:var(--beige);background:var(--espresso)}
.page-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.62}
.page-hero .wrap{position:relative;padding-block:clamp(120px,16vw,220px) clamp(56px,7vw,96px);display:grid;gap:22px}
.page-hero h1{font-size:clamp(3rem,7vw,6.2rem);color:var(--beige)}
.page-hero h1 em{color:var(--sand)}
.page-hero p{max-width:52ch;opacity:.9}

/* price list */
.pricelist{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(36px,6vw,96px)}
.pricelist h3{font-size:2rem;color:var(--espresso);margin-bottom:10px}
.prow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 24px;padding:20px 0;border-top:1px solid var(--line);align-items:baseline}
.prow:last-child{border-bottom:1px solid var(--line)}
.prow .n{font-family:var(--display);font-size:1.3rem;color:var(--espresso)}
.prow .v{font-family:var(--display);font-size:1.6rem;color:var(--espresso);font-variant-numeric:lining-nums tabular-nums}
.prow .d{grid-column:1/-1;font-size:.82rem;color:var(--taupe);letter-spacing:.02em}
@media (max-width:820px){.pricelist{grid-template-columns:1fr}}

/* steps */
.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line)}
.step{padding:34px clamp(18px,3vw,40px) 10px 0;display:grid;gap:14px}
.step+.step{padding-left:clamp(18px,3vw,40px);border-left:1px solid var(--line)}
.step .num{font-family:var(--display);font-style:italic;font-size:2.4rem;color:var(--sand);line-height:1}
.step h3{font-size:1.6rem;color:var(--espresso)}
.step p{color:var(--cocoa);font-size:.94rem}
@media (max-width:760px){.steps{grid-template-columns:1fr}.step+.step{padding-left:0;border-left:0;border-top:1px solid var(--line)}}

/* footer */
.site-footer{background:var(--ivory);border-top:1px solid var(--line);padding-block:clamp(72px,9vw,120px) 36px}
.site-footer .mark{width:min(720px,100%);margin:0 auto clamp(56px,7vw,90px)}
.fgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:36px}
.fgrid .col{display:grid;gap:10px;align-content:start;font-size:.86rem;color:var(--cocoa)}
.fgrid .col .label{color:var(--taupe);margin-bottom:8px}
.fgrid a:hover{color:var(--espresso);text-decoration:underline;text-underline-offset:4px}
.legal{margin-top:clamp(56px,7vw,90px);padding-top:26px;border-top:1px solid var(--line);display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;color:var(--taupe)}
@media (max-width:820px){.fgrid{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.fgrid{grid-template-columns:1fr}}

/* reveal */
.reveal{opacity:1;transform:none;transition:opacity 1s var(--ease),transform 1s var(--ease)}
.js .reveal.pending{opacity:0;transform:translateY(18px)}

/* gallery */
.gallery .grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(12px,1.6vw,24px);align-items:start}
.gallery figure{margin:0;overflow:hidden;background:var(--bone);border-radius:var(--radius)}
.gallery img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}
.gallery figure:hover img{transform:scale(1.03)}
.gallery .g1{grid-column:1/6;aspect-ratio:4/5}
.gallery .g2{grid-column:6/9;aspect-ratio:3/4;margin-top:clamp(40px,8vw,120px)}
.gallery .g3{grid-column:9/13;aspect-ratio:4/5}
.gallery .g4{grid-column:2/6;aspect-ratio:3/4}
.gallery .g5{grid-column:7/12;aspect-ratio:4/5;margin-top:-12%}
@media (max-width:760px){.gallery .grid{grid-template-columns:1fr 1fr}.gallery figure{grid-column:auto!important;margin-top:0!important;aspect-ratio:3/4!important}.gallery .g5{display:none}}

/* shop */
.shop .grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(36px,6vw,96px);align-items:center}
.shop img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:var(--radius)}
.shop .copy{display:grid;gap:26px}
.shop h2{font-size:clamp(2.4rem,4.4vw,3.8rem);color:var(--espresso)}
.shop p{color:var(--cocoa);max-width:44ch}
.shop ul{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.shop li{padding:14px 0;border-bottom:1px solid var(--line);font-family:var(--display);font-size:1.3rem;color:var(--espresso)}
@media (max-width:820px){.shop .grid{grid-template-columns:1fr}}

/* full-screen hero (home) */
.brand .logo-light{display:none}
.site-header--over{position:fixed;left:0;right:0;background:transparent;border-bottom-color:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;transition:background .4s var(--ease),border-color .4s var(--ease)}
.site-header--over:not(.is-solid) .brand .logo-dark{display:none}
.site-header--over:not(.is-solid) .brand .logo-light{display:block}
.site-header--over:not(.is-solid) .nav a:not(.btn),.site-header--over:not(.is-solid) .menu-toggle{color:var(--beige)}
.site-header--over:not(.is-solid) .nav .btn{background:transparent;border-color:var(--line-light);color:var(--beige)}
.site-header--over.is-solid{background:rgba(246,242,236,.94);border-bottom-color:var(--line);backdrop-filter:saturate(1.2) blur(10px);-webkit-backdrop-filter:saturate(1.2) blur(10px)}
@media (max-width:920px){.site-header--over .nav.is-open a:not(.btn){color:var(--cocoa)}.site-header--over .nav.is-open .btn{background:var(--espresso);color:var(--beige);border-color:var(--espresso)}}
.hero--full{position:relative;min-height:100vh;min-height:100svh;padding:0;display:flex;align-items:flex-end;background:var(--espresso);color:var(--beige);overflow:hidden}
.hero--full .hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 62%}
.hero--full::after{content:"";position:absolute;inset:0;background:
  linear-gradient(90deg,rgba(35,29,25,.62) 0%,rgba(35,29,25,.38) 38%,rgba(35,29,25,0) 68%),
  linear-gradient(180deg,rgba(35,29,25,.45) 0%,rgba(35,29,25,0) 22%,rgba(35,29,25,0) 55%,rgba(35,29,25,.55) 100%)}
@media (max-width:720px){.hero--full::after{background:linear-gradient(180deg,rgba(35,29,25,.45) 0%,rgba(35,29,25,0) 18%,rgba(35,29,25,.15) 40%,rgba(35,29,25,.82) 78%,rgba(35,29,25,.9) 100%)}}
.hero--full .hero-inner{position:relative;z-index:1;width:100%;padding-block:140px clamp(48px,7vw,96px);display:flex;justify-content:space-between;align-items:flex-end;gap:32px}
.hero--full .copy{display:grid;gap:28px;max-width:760px}
.hero--full h1{font-size:clamp(3.2rem,8vw,7.4rem);color:var(--beige);line-height:.98}
.hero--full h1 em{color:var(--sand)}
.hero--full .lede{font-family:var(--display);font-size:clamp(1.2rem,1.7vw,1.5rem);line-height:1.45;color:var(--beige);opacity:.92;max-width:34ch}
.hero--full .label{color:var(--beige);opacity:.85}
.hero--full .actions{display:flex;flex-wrap:wrap;gap:20px 30px;align-items:center}
.hero--full .link{color:var(--beige)}
.btn--cream{background:var(--beige);color:var(--espresso);border-color:var(--beige)}
.btn--cream:hover{background:transparent;color:var(--beige)}
.scroll-cue{writing-mode:vertical-rl;letter-spacing:.3em;opacity:.7;padding-bottom:6px;border-right:1px solid var(--line-light);padding-right:10px}
@media (max-width:720px){.scroll-cue{display:none}.hero--full .hero-bg{object-position:50% 50%}}

/* visit (simple, no photo) */
.visit-head{text-align:center;display:grid;gap:18px;margin-bottom:clamp(40px,5vw,64px)}
.visit-head h2{font-size:clamp(2.8rem,5.6vw,4.8rem);color:var(--espresso)}
.visit-head h2 em{color:var(--cocoa)}
.visit-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:0}
.visit-grid>div{padding:34px clamp(16px,3vw,40px);display:grid;gap:10px;align-content:start;text-align:center;justify-items:center}
.visit-grid>div+div{border-left:1px solid var(--line)}
.visit-grid dt{color:var(--taupe)}
.visit-grid dd{margin:0;font-family:var(--display);font-size:1.4rem;line-height:1.4;color:var(--espresso);overflow-wrap:anywhere}
.visit-grid dd a{border-bottom:1px solid var(--line)}
.visit-grid dd a:hover{border-color:currentColor}
.visit-grid .link{margin-top:8px}
@media (max-width:760px){.visit-grid{grid-template-columns:1fr}.visit-grid>div+div{border-left:0;border-top:1px solid var(--line)}}

/* footer = contact (no duplicate info) */

.foot-nav{display:flex;flex-wrap:wrap;gap:10px 26px}
.foot-nav a:hover{color:var(--espresso)}

.visit-simple{padding-top:0;padding-bottom:clamp(56px,7vw,96px);text-align:center}
.visit-simple .wrap{display:grid;gap:18px;justify-items:center}
.visit-simple h2{font-size:clamp(2.8rem,5.6vw,4.8rem);color:var(--espresso)}
.visit-simple h2 em{color:var(--cocoa)}

/* Bsport shop blocks */
.shop-block{display:grid;gap:20px}
.shop-block+.shop-block{margin-top:clamp(56px,7vw,96px)}
.shop-block-head{display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap}
.shop-block-head h3{font-size:clamp(1.8rem,2.6vw,2.4rem);color:var(--espresso)}
.bsport-mount{min-height:120px}
.page-hero .btn--light{color:var(--beige)}

/* Align / Evolve */
.formats{background:var(--bone)}
.formats-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--line)}
.format{padding:clamp(36px,4.5vw,64px) clamp(4px,4vw,64px) clamp(20px,3vw,40px) 0;display:grid;gap:18px;align-content:start}
.format+.format{padding-left:clamp(20px,4vw,64px);padding-right:0;border-left:1px solid var(--line)}
.format>.label:first-child{color:var(--taupe)}
.format h3{font-size:clamp(2.2rem,3.6vw,3.2rem);color:var(--espresso);line-height:1.05}
.format h3 em{color:var(--cocoa)}
.format .tone{letter-spacing:.2em;margin-bottom:6px}
.format p{color:var(--cocoa);max-width:52ch}
.ideal{margin-top:12px;display:grid;gap:12px}
.ideal .label{color:var(--taupe)}
.ideal ul{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.ideal li{padding:11px 0;border-bottom:1px solid var(--line);font-family:var(--display);font-size:1.2rem;color:var(--espresso)}
.formats-foot{display:flex;justify-content:center;margin-top:clamp(40px,5vw,64px)}
@media (max-width:820px){.formats-grid{grid-template-columns:1fr}.format,.format+.format{padding-left:0;padding-right:0}.format+.format{border-left:0;border-top:1px solid var(--line)}}

/* reviews */
.reviews .rating{display:grid;gap:8px;justify-items:start}
.reviews .rating p{font-family:var(--display);font-size:1.4rem;color:var(--espresso)}
.stars{color:#B08D57;letter-spacing:.18em;font-size:.9rem}
.reviews-track{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(300px,1fr);gap:clamp(16px,2vw,28px);overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:18px;scrollbar-width:thin}
.review{margin:0;scroll-snap-align:start;display:grid;gap:18px;align-content:start;padding:clamp(28px,3vw,40px);border:1px solid var(--line);border-radius:var(--radius);background:var(--ivory)}
.review blockquote{margin:0;font-family:var(--display);font-style:italic;font-size:1.3rem;line-height:1.45;color:var(--espresso)}
.review figcaption{color:var(--taupe)}
@media (min-width:1100px){.reviews-track{grid-auto-flow:row;grid-template-columns:repeat(3,minmax(0,1fr));overflow:visible}}

/* dark footer */
.site-footer{background:var(--espresso);color:var(--beige);border-top:0}
.site-footer .mark{opacity:.95}
.site-footer .fgrid .col{color:var(--beige)}
.site-footer .fgrid .col .label{color:var(--sand)}
.site-footer .fgrid a:hover{color:#fff}
.site-footer .legal{border-top-color:var(--line-light);color:var(--sand)}
.visit-simple{padding-bottom:clamp(64px,8vw,110px)}

/* Align / Evolve — tabs */
.fmt-tabs{display:inline-flex;gap:6px;padding:6px;border:1px solid var(--line);border-radius:999px;margin-bottom:clamp(28px,4vw,48px);background:var(--ivory)}
.fmt-tabs button{font-family:var(--display);font-size:1.35rem;letter-spacing:.02em;padding:10px 30px;border:0;border-radius:999px;background:transparent;color:var(--cocoa);cursor:pointer;transition:background .35s var(--ease),color .35s var(--ease)}
.fmt-tabs button[aria-selected="true"]{background:var(--espresso);color:var(--beige)}
.fmt-panel{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(28px,5vw,80px);align-items:center;animation:fmtIn .6s var(--ease)}
.fmt-panel img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:var(--radius)}
.fmt-copy{display:grid;gap:22px;align-content:center}
.fmt-copy h3{font-size:clamp(2.4rem,4.4vw,3.8rem);color:var(--espresso);line-height:1.02}
.fmt-copy h3 em{color:var(--cocoa)}
.fmt-copy p{color:var(--cocoa);font-size:1.05rem;max-width:44ch}
.chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.chips li{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;padding:9px 16px;border:1px solid var(--line);border-radius:999px;color:var(--espresso);background:var(--ivory)}
@keyframes fmtIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media (max-width:820px){.fmt-panel{grid-template-columns:1fr}.fmt-panel img{aspect-ratio:4/3.6}}

/* founder with portrait */
.founder-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(36px,6vw,110px);align-items:center}
.founder-grid figure{margin:0}
.founder-grid img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:60% 45%;border-radius:var(--radius)}
.founder-copy{display:grid;gap:22px}
.founder-copy blockquote{margin:0;font-family:var(--display);font-weight:300;font-size:clamp(2.6rem,5vw,4.4rem);line-height:1.02;color:var(--espresso)}
.founder-copy blockquote em{color:var(--cocoa)}
.founder-copy p{color:var(--cocoa);max-width:48ch}
.founder-copy .sign{font-family:var(--display);font-style:italic;font-size:1.35rem;color:var(--espresso)}
@media (max-width:820px){.founder-grid{grid-template-columns:1fr}}
.fmt-panel[hidden]{display:none}
.founder-grid img{filter:none}

/* founder — photo melts into a curtain-toned band */
.founder-split{--curtain:#E3DACE;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);background:var(--curtain);min-height:min(92vh,860px);overflow:hidden}
.founder-photo{margin:0;position:relative;min-height:520px}
.founder-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:100% 42%;
  -webkit-mask-image:linear-gradient(270deg,#000 0%,#000 78%,transparent 100%);mask-image:linear-gradient(270deg,#000 0%,#000 78%,transparent 100%)}
.founder-split .founder-copy{padding:clamp(64px,8vw,130px) clamp(12px,3vw,48px) clamp(64px,8vw,130px) var(--gutter);max-width:640px;justify-self:end;align-content:center}
.founder-split + .reviews{padding-top:clamp(84px,11vw,160px)}
@media (max-width:820px){
  .founder-split{grid-template-columns:1fr;min-height:0}
  .founder-photo{min-height:0;aspect-ratio:4/4.4}
  .founder-photo{order:-1}.founder-photo img{object-position:100% 40%;-webkit-mask-image:linear-gradient(180deg,#000 70%,transparent 100%);mask-image:linear-gradient(180deg,#000 70%,transparent 100%)}
  .founder-split .founder-copy{padding:8px var(--gutter) 72px}
}

/* hero title on two lines */
.hero--full .copy{max-width:1040px}
.hero--full h1{font-size:clamp(3rem,7vw,6.6rem)}
.nowrap{white-space:nowrap}
@media (max-width:560px){.nowrap{white-space:normal}}

/* class cards: equal height, links aligned at the bottom */
.classes .grid{align-items:stretch}
.class-card{display:flex;flex-direction:column;gap:22px}
.class-card .link{margin-top:auto;align-self:flex-start}

/* footer — refined typography & tighter rhythm */
.site-footer{padding-block:clamp(56px,7vw,88px) 28px}
.site-footer .mark{width:min(560px,86%);margin-bottom:clamp(40px,5vw,64px)}
.site-footer .fgrid{gap:28px 32px;max-width:980px;margin-inline:auto}
.site-footer .fgrid .col{gap:1px;font-family:var(--display);font-weight:400;font-size:1.14rem;line-height:1.4;letter-spacing:.005em}
.site-footer .fgrid .col .label{font-family:var(--ui);font-size:.62rem;letter-spacing:.3em;line-height:1;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--line-light);width:2.2em;white-space:nowrap;overflow:visible}
.site-footer .fgrid a{transition:color .25s ease}
.site-footer .fgrid a:hover{text-decoration:none;color:#fff;font-style:italic}
.site-footer .legal{margin-top:clamp(40px,5vw,64px);padding-top:20px;font-family:var(--display);font-style:italic;font-size:.95rem;letter-spacing:.02em;text-transform:none}
.site-footer .legal{max-width:980px;margin-inline:auto}
@media (max-width:480px){.site-footer .fgrid{grid-template-columns:1fr 1fr;gap:30px 20px}.site-footer .fgrid .col{font-size:1.02rem}.site-footer .legal{flex-direction:column;gap:4px}}

/* footer v3 — inspired by editorial serif footer */
.site-footer.ft{padding-block:clamp(56px,6vw,84px) 26px;font-family:"Lora",Georgia,serif;color:var(--beige)}
.ft-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:40px 48px;align-items:start}
.ft-logo{width:190px;max-width:70%;display:block;margin:0 0 20px}
.ft-line{margin:0 0 26px;font-size:.92rem;color:#F3ECE3}
.ft-tag{margin:0;font-style:italic;font-size:.95rem;color:var(--sand)}
.ft-col h4{margin:6px 0 22px;font-family:"Lora",Georgia,serif;font-weight:500;font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;color:var(--sand)}
.ft-col p{margin:0 0 12px;font-size:.9rem;line-height:1.55;color:#F3ECE3}
.ft-col a{color:inherit;text-decoration:none;transition:color .25s ease}
.ft-col a:hover{color:#fff;text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}
.ft-muted{color:var(--sand)!important;opacity:.85}
.ft-legal{margin-top:clamp(48px,6vw,80px);padding-top:26px;border-top:1px solid var(--line-light);display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px 20px;font-size:.8rem;letter-spacing:.08em;color:var(--sand);opacity:.85}
@media (max-width:900px){.ft-grid{grid-template-columns:1fr 1fr}.ft-brand{grid-column:1/-1}}
@media (max-width:480px){.ft-grid{gap:32px 20px}.ft-col p{font-size:.86rem}.ft-legal{flex-direction:column}}
.ft-grid{grid-template-columns:1.3fr 1fr 1.25fr 1fr}
.ft-col a{white-space:nowrap}
@media (max-width:480px){.ft-pre{display:none}}
/* footer v3 — site fonts only */
.site-footer.ft{font-family:var(--display)}
.ft-line{margin:0 0 4px;font-size:1.12rem;font-weight:400}
.ft-tag{font-family:var(--display);font-style:italic;font-weight:400;font-size:1.12rem}
.ft-col h4{font-family:var(--ui);font-weight:400;font-size:.66rem;letter-spacing:.28em;margin:8px 0 20px}
.ft-col p{font-family:var(--display);font-size:1.08rem;line-height:1.4;margin-bottom:10px}
.ft-legal{font-family:var(--ui);font-size:.66rem;letter-spacing:.24em;text-transform:uppercase}
@media (max-width:480px){.ft-col p{font-size:1rem}}
@media (max-width:900px){.ft-grid{grid-template-columns:1fr 1fr}}
/* footer — clean sans (Jost) */
.site-footer.ft,.ft-line,.ft-tag,.ft-col p{font-family:var(--ui)}
.ft-line{font-size:.9rem;font-weight:400;letter-spacing:.02em;margin:0 0 4px}
.ft-tag{font-style:normal;font-weight:300;font-size:.9rem;letter-spacing:.02em;color:var(--sand)}
.ft-col p{font-size:.88rem;font-weight:300;line-height:1.6;letter-spacing:.02em;margin-bottom:10px}
@media (max-width:480px){.ft-col p{font-size:.84rem}}
/* small Curve mark above statement */
.st-mark{display:block;width:clamp(20px,1.9vw,26px);height:auto;margin:0 auto clamp(26px,3vw,38px);opacity:.75}
.section.statement{padding-top:clamp(52px,6vw,88px)}
.st-mark{opacity:1;margin-bottom:clamp(22px,2.6vw,32px)}
/* FLOW link under shop list */
.flow-note{display:grid;gap:14px;justify-items:start;margin-top:4px}
.flow-note p{margin:0;line-height:1.6}
.flow-note .label{display:inline-block;margin-bottom:6px}
.flow-note strong{font-family:var(--display);font-weight:500;font-size:1.3rem;color:var(--espresso);letter-spacing:.01em}
.flow-note .link{color:var(--espresso)}
.hero--full .hero-bg,.hero--full .hero-inner{will-change:transform}
/* schedule hero: full photo, soft uniform shade + very light left gradient */
.page-hero--sched .sched-img{opacity:.7;object-position:50% 40%}
.page-hero--sched::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,rgba(35,29,25,.42) 0%,rgba(35,29,25,.18) 40%,rgba(35,29,25,0) 70%)}
.page-hero--sched .wrap{z-index:2}
@media (max-width:999px){.page-hero--sched .sched-img{object-position:60% 40%}.page-hero--sched::before{background:linear-gradient(180deg,rgba(35,29,25,0) 30%,rgba(35,29,25,.35) 100%)}}
