/* ════════════════════════════════════════════════════════
   GRAVITATE SPACE ◆ · SHARED DESIGN SYSTEM
   Hot Desk Subscription · index / pricing / apply
════════════════════════════════════════════════════════ */

@font-face{font-family:'Aspekta';font-weight:400;font-style:normal;src:url('fonts/Aspekta-400.ttf') format('truetype');font-display:swap}
@font-face{font-family:'Aspekta';font-weight:800;font-style:normal;src:url('fonts/Aspekta-800.ttf') format('truetype');font-display:swap}
@font-face{font-family:'Relais Display';font-weight:300;font-style:normal;src:url('fonts/RelaisDisplay-Light.otf') format('opentype');font-display:swap}

:root{
  --b1:#1B100E; --b2:#2B1B17; --b3:#402822; --b4:#5A382F;
  --cream:#EDE9DE; --porc:#FAF9F6;
  --or1:#7E4128; --or2:#B05A38; --or3:#C2693F; --or4:#D89A6F;
  --grad:linear-gradient(135deg,#C2693F 0%,#8A4A30 100%);
  --ink:#FAF9F6;
  --sym:"\25C6";
  --display:'Libre Caslon Display','Times New Roman',serif;
  --sans:'Aspekta',system-ui,sans-serif;
  --maxw:1320px;
  --pad:clamp(20px,4vw,64px);
  --t-fast:.22s cubic-bezier(.2,.7,.2,1);
  --t-med:.45s cubic-bezier(.2,.7,.2,1);
  --t-slow:.8s cubic-bezier(.2,.7,.2,1);
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--b2);color:var(--cream);font-family:var(--sans);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;border:0;background:none;color:inherit}

/* ─── TYPE ─── */
.eyebrow{font-family:var(--sans);font-size:11px;letter-spacing:.2em;text-transform:uppercase;font-weight:400;color:var(--or2);display:inline-flex;align-items:center;gap:10px}
.eyebrow::before{content:var(--sym);font-size:13px;color:var(--or2)}
.eyebrow--porc{color:var(--porc)}
.eyebrow--porc::before{color:var(--porc)}
.eyebrow--warm{color:var(--or4)}
.eyebrow--warm::before{color:var(--or4)}

h1,h2,h3,h4{font-family:var(--display);font-weight:var(--dispwt,400);margin:0;letter-spacing:-.005em}
h1{font-size:calc(clamp(48px,7vw,104px) * var(--dispscale,1));line-height:.96}
h2{font-size:calc(clamp(34px,4.8vw,72px) * var(--dispscale,1));line-height:1}
h3{font-size:calc(clamp(24px,2.6vw,36px) * var(--dispscale,1));line-height:1.1}
h4{font-size:calc(20px * var(--dispscale,1));line-height:1.2}
p{margin:0}
/* Emphasis must never change font, weight or colour mid-sentence, keep it identical to body text. */
strong,b{font-weight:inherit;color:inherit}
.lead{font-size:clamp(17px,1.5vw,22px);line-height:1.45;color:rgba(237,233,222,.78)}
.italic{font-style:italic}
.accent{color:var(--or2)}
.accent-warm{color:var(--or4)}

/* ─── LAYOUT ─── */
.wrap{max-width:var(--maxw);margin:0 auto;padding-left:var(--pad);padding-right:var(--pad)}
.section{padding:clamp(80px,11vw,150px) 0;position:relative}
.section--tight{padding:clamp(48px,7vw,96px) 0}
.section--cream{background:var(--cream);color:var(--b2)}
.section--cream .lead{color:rgba(43,27,23,.7)}
.section--porc{background:var(--porc);color:var(--b2)}
.section--porc .lead{color:rgba(43,27,23,.7)}
.section--porc .eyebrow{color:var(--or2)}
.section--porc h1,.section--porc h2,.section--porc h3,.section--porc h4{color:var(--b2)}
.section--dark{background:var(--b1)}
.section--accent{background:var(--or2);color:var(--ink)}

/* ─── BUTTONS ─── */
.btn{display:inline-flex;align-items:center;gap:12px;padding:16px 24px;font-family:var(--sans);font-size:14px;font-weight:400;letter-spacing:.04em;border-radius:2px;transition:transform var(--t-fast),background var(--t-fast),color var(--t-fast),border-color var(--t-fast),box-shadow var(--t-fast);cursor:pointer;white-space:nowrap;position:relative}
.btn-pri{background:var(--or2);color:#FAF9F6;transition:transform var(--t-fast),box-shadow var(--t-fast),filter var(--t-fast)}
.btn-pri:hover{filter:brightness(1.07);transform:translateY(-1px);box-shadow:0 12px 24px -12px rgba(0,0,0,.35)}
.nav-links a.btn-pri,.nav-links a.btn-pri:hover{color:#FAF9F6}
.btn-ghost{background:transparent;color:var(--cream);border:1px solid rgba(237,233,222,.35)}
.btn-ghost:hover{border-color:var(--cream);background:rgba(237,233,222,.05)}
.btn-ghost-dark{background:transparent;color:var(--b2);border:1px solid rgba(43,27,23,.3)}
.btn-ghost-dark:hover{border-color:var(--b2);background:rgba(43,27,23,.05)}
.btn-dark{background:var(--b2);color:var(--cream)}
.btn-dark:hover{background:var(--b1);transform:translateY(-1px)}
.btn-cream{background:var(--cream);color:var(--b2)}
.btn-cream:hover{background:var(--porc);transform:translateY(-1px)}
.btn-arrow::after{content:"→";font-size:1em;margin-left:6px;opacity:.85;transition:transform var(--t-fast)}
.btn-arrow:hover::after{transform:translateX(3px)}
.btn-sm{padding:10px 16px;font-size:12px}

/* ─── NAV ─── */
.nav{position:fixed;top:0;left:0;right:0;z-index:100;padding:18px var(--pad);display:flex;align-items:center;justify-content:space-between;transition:background var(--t-med),padding var(--t-med),border-color var(--t-med);border-bottom:1px solid transparent;gap:20px}
.nav.scrolled{background:rgba(27,16,14,.92);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom-color:var(--b3);padding-top:12px;padding-bottom:12px}
body.cream-page .nav{border-bottom-color:transparent}
body.cream-page .nav:not(.scrolled){color:var(--b2)}
body.cream-page .nav:not(.scrolled) .brand{color:var(--b2)}
body.cream-page .nav:not(.scrolled) .brand-mark{color:var(--b2)}
body.cream-page .nav:not(.scrolled) .nav-links a:not(.btn){color:rgba(43,27,23,.7)}
body.cream-page .nav:not(.scrolled) .nav-links a:not(.btn):hover{color:var(--b2)}
body.cream-page .nav:not(.scrolled) .nav-links a.active{color:var(--b2)}
body.cream-page .nav:not(.scrolled) .nav-phone{color:var(--b2)}

.brand{display:flex;align-items:baseline;gap:14px;font-size:18px;color:var(--cream);transition:transform var(--t-fast)}
.brand:hover{transform:translateX(-2px)}
.brand-mark{font-size:22px;letter-spacing:.05em;color:var(--cream)}
.brand-wordmark{font-family:var(--sans);font-weight:800;letter-spacing:-.01em}
.brand-arm{font-family:var(--display);font-weight:300;opacity:.85}
.nav-links{display:flex;align-items:center;gap:28px;font-size:14px}
.nav-links a{color:rgba(237,233,222,.75);transition:color var(--t-fast);position:relative}
.nav-links a:not(.btn):hover{color:var(--cream)}
.nav-links a.active{color:var(--cream)}
.nav-links a:not(.btn)::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:1px;background:var(--or2);transform:scaleX(0);transform-origin:left;transition:transform var(--t-fast)}
.nav-links a:not(.btn):hover::after,.nav-links a.active::after{transform:scaleX(1)}
.nav-phone{display:inline-flex;align-items:center;gap:8px;color:var(--cream);font-size:13px;letter-spacing:.04em}
.nav-phone::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--or2);box-shadow:0 0 0 0 rgba(214,53,4,.5);animation:pulse 2s infinite}
@media(max-width:560px){.nav-phone span{display:none}.nav-phone::after{content:"Call"}}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(214,53,4,.5)}70%{box-shadow:0 0 0 8px rgba(214,53,4,0)}100%{box-shadow:0 0 0 0 rgba(214,53,4,0)}}

/* ─── MARQUEE ─── */
.marquee{background:var(--b1);border-top:0;border-bottom:1px solid var(--b3);padding:22px 0;overflow:hidden;margin-top:-1px;position:relative;z-index:3}
.marquee--cream{background:var(--cream);border-top-color:rgba(43,27,23,.12);border-bottom-color:rgba(43,27,23,.12)}
.mq-row{display:flex;gap:56px;align-items:center;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:rgba(237,233,222,.55);animation:marquee 50s linear infinite;white-space:nowrap;width:max-content}
.marquee--cream .mq-row{color:rgba(43,27,23,.55)}
.mq-row span::before{content:var(--sym);color:var(--or2);margin-right:12px;font-size:9px}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ─── SECTION HEAD ─── */
.sec-head{margin-bottom:64px;max-width:760px}
.sec-head .eyebrow{margin-bottom:22px}
.sec-head h2{margin-bottom:22px}
.sec-head--row{display:flex;justify-content:space-between;align-items:flex-end;max-width:none;gap:32px;flex-wrap:wrap}
.sec-head--row>div{max-width:640px}

/* ─── PHOTO BREAK ─── */
.photo-break{position:relative;min-height:80vh;max-height:760px;overflow:hidden;display:flex;align-items:center;justify-content:flex-start;padding:80px var(--pad);color:var(--porc)}
.photo-break-bg{position:absolute;inset:-20% 0;background-size:cover;background-position:center;will-change:transform;z-index:0}
.photo-break::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(115deg,rgba(27,16,14,.82) 0%,rgba(27,16,14,.55) 45%,rgba(27,16,14,.2) 100%)}
.photo-break-inner{position:relative;z-index:2;max-width:780px}
.photo-break .eyebrow{color:var(--or4);margin-bottom:32px}
.photo-break .eyebrow::before{color:var(--or4)}
.photo-break-quote{font-family:var(--display);font-weight:300;font-size:clamp(40px,6.2vw,96px);line-height:1.02;letter-spacing:-.015em;color:var(--porc);text-wrap:balance;margin-bottom:32px}
.photo-break-attr{font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:rgba(250,249,246,.7);display:inline-flex;align-items:center;gap:14px}
.photo-break-attr::before{content:"";width:32px;height:1px;background:var(--or2)}
.photo-break-cta{margin-top:36px;display:flex;gap:14px;flex-wrap:wrap}
.photo-break-corner{position:absolute;z-index:2;bottom:32px;right:var(--pad);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:rgba(250,249,246,.5);display:inline-flex;align-items:center;gap:10px}
.photo-break-corner::before{content:var(--sym);color:var(--or4);font-size:14px}

/* ─── FORM ─── */
.form{background:var(--b2);padding:36px;border-radius:4px;border:1px solid var(--b3);display:flex;flex-direction:column;gap:14px}
.form label{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:rgba(237,233,222,.55);margin-bottom:4px;display:block}
.form input,.form textarea,.form select{width:100%;padding:14px 0;background:transparent;border:0;border-bottom:1px solid var(--b3);color:var(--cream);font-family:var(--sans);font-size:15px;outline:none;transition:border-color var(--t-fast)}
.form input:focus,.form textarea:focus,.form select:focus{border-color:var(--or2)}
.form textarea{resize:none;min-height:80px;padding-top:12px}
.form select option{background:var(--b2);color:var(--cream)}
.form button{margin-top:10px;width:100%;justify-content:center}

/* ─── FOOTER ─── */
footer{background:var(--b1);border-top:1px solid var(--b3);padding:48px 0 32px}
.foot-row{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;font-size:13px;color:rgba(237,233,222,.5)}
.foot-links{display:flex;gap:28px;flex-wrap:wrap}
.foot-links a{color:rgba(237,233,222,.7);transition:color var(--t-fast)}
.foot-links a:hover{color:var(--cream)}
.foot-bottom{margin-top:32px;padding-top:24px;border-top:1px solid var(--b3);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:12px;color:rgba(237,233,222,.4)}

/* PULLQUOTE, porcelain breathing section with split content */
.pullquote{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,5vw,80px);align-items:center;max-width:var(--maxw);margin:0 auto;padding:clamp(60px,8vw,120px) var(--pad)}
@media(max-width:880px){.pullquote{grid-template-columns:1fr;gap:32px}}
.pullquote-l h2{font-family:var(--display);font-weight:300;font-size:clamp(34px,5vw,72px);line-height:1.02;color:var(--b2);letter-spacing:-.018em;margin-bottom:18px}
.pullquote-l h2 .accent{color:var(--or2);font-style:italic}
.pullquote-l .eyebrow{margin-bottom:18px}
.pullquote-l p{font-size:16px;line-height:1.6;color:rgba(43,27,23,.72);margin-bottom:20px;max-width:480px}
.pullquote-l p strong{color:var(--b2);font-weight:400}
.pullquote-l .pq-cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:12px}
.pullquote-r{position:relative;aspect-ratio:5/6;overflow:hidden;border-radius:4px;background:var(--b3)}
.pullquote-r img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s cubic-bezier(.2,.7,.2,1)}
.pullquote:hover .pullquote-r img{transform:scale(1.04)}
.pullquote-r::after{content:var(--sym);position:absolute;top:24px;right:24px;font-size:22px;color:var(--porc);mix-blend-mode:screen;opacity:.85}

/* CTA BANNER, inline strip CTA between sections */
.cta-strip{background:var(--cream);color:var(--b2);padding:clamp(28px,4vw,48px) clamp(28px,4vw,56px);display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;border-radius:4px;border:1px solid rgba(43,27,23,.12);transition:border-color var(--t-fast),transform var(--t-fast);max-width:var(--maxw);margin:0 auto}
.cta-strip:hover{border-color:var(--or2);transform:translateY(-2px)}
.cta-strip-l{flex:1;min-width:280px}
.cta-strip-l .eyebrow{color:var(--or2);margin-bottom:10px}
.cta-strip-l .eyebrow::before{color:var(--or2)}
.cta-strip-l h3{font-family:var(--display);font-weight:300;font-size:clamp(24px,2.8vw,36px);color:var(--b2);line-height:1.1;margin:0}
.cta-strip-l h3 .italic{font-style:italic;color:var(--or2)}
.cta-strip-r{display:flex;gap:10px;flex-wrap:wrap}

/* TEAM PHOTO BREAK, porcelain variant of photo-break with caption beneath */
.team-break{position:relative;width:100%;overflow:hidden}
.team-break-img{width:100%;aspect-ratio:21/9;object-fit:cover;display:block;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.team-break:hover .team-break-img{transform:scale(1.02)}
@media(max-width:880px){.team-break-img{aspect-ratio:4/3}}
.team-break-caption{position:absolute;bottom:32px;left:var(--pad);font-family:var(--display);font-weight:300;font-size:clamp(20px,2.4vw,32px);color:var(--porc);max-width:600px;line-height:1.2;text-shadow:0 4px 24px rgba(0,0,0,.5)}
.team-break-caption .eyebrow{color:var(--or4);margin-bottom:10px;display:flex;text-shadow:none}
.team-break-caption .eyebrow::before{color:var(--or4)}

/* TIER LADDER, 5-step descending rate */
.tier-ladder{display:grid;grid-template-columns:repeat(5,1fr);gap:0;border:1px solid rgba(43,27,23,.15);border-radius:4px;overflow:hidden;margin-top:48px}
@media(max-width:1100px){.tier-ladder{grid-template-columns:repeat(5,1fr);overflow-x:auto}}
@media(max-width:760px){.tier-ladder{grid-template-columns:1fr}}
.tier-cell{padding:32px 24px;background:var(--cream);border-right:1px solid rgba(43,27,23,.12);display:flex;flex-direction:column;gap:10px;position:relative;transition:background var(--t-fast)}
.tier-cell:last-child{border-right:0}
.tier-cell:hover{background:var(--porc)}
.tier-cell.start{background:var(--b1);color:var(--cream)}
.tier-cell.floor{background:var(--or2);color:var(--porc)}
.tier-cell.floor:hover{background:var(--or3)}
.tier-cell .step{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--or2);margin-bottom:4px}
.tier-cell.start .step{color:var(--or4)}
.tier-cell.floor .step{color:var(--porc);opacity:.85}
.tier-cell .rate{font-family:var(--display);font-weight:300;font-size:clamp(40px,4.4vw,56px);line-height:.95;letter-spacing:-.015em;color:inherit}
.tier-cell .rate .d{color:var(--or2);font-size:.5em;vertical-align:top;margin-top:.18em;margin-right:2px}
.tier-cell.start .rate .d{color:var(--or4)}
.tier-cell.floor .rate .d{color:var(--porc);opacity:.7}
.tier-cell .rate .mo{font-size:12px;font-family:var(--sans);font-weight:400;letter-spacing:.12em;text-transform:uppercase;color:rgba(43,27,23,.55);margin-left:6px;vertical-align:middle}
.tier-cell.start .rate .mo{color:rgba(237,233,222,.55)}
.tier-cell.floor .rate .mo{color:rgba(250,249,246,.7)}
.tier-cell h5{font-family:var(--display);font-weight:300;font-size:20px;color:inherit;margin:0 0 4px;line-height:1.15}
.tier-cell p{font-size:12.5px;line-height:1.5;color:rgba(43,27,23,.65);margin:0}
.tier-cell.start p{color:rgba(237,233,222,.7)}
.tier-cell.floor p{color:rgba(250,249,246,.85)}
.tier-cell .trigger{margin-top:auto;padding-top:14px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:rgba(43,27,23,.5);border-top:1px solid rgba(43,27,23,.12);line-height:1.4}
.tier-cell.start .trigger{color:rgba(237,233,222,.5);border-top-color:rgba(237,233,222,.15)}
.tier-cell.floor .trigger{color:rgba(250,249,246,.7);border-top-color:rgba(250,249,246,.2)}
.tier-cell .badge{position:absolute;top:14px;right:14px;font-size:10px;letter-spacing:.18em;text-transform:uppercase;padding:4px 8px;border-radius:2px}
.tier-cell.start .badge{background:rgba(214,53,4,.18);color:var(--or4)}
.tier-cell.floor .badge{background:rgba(250,249,246,.18);color:var(--porc)}
.reveal{opacity:0;transform:translateY(24px);transition:opacity var(--t-slow),transform var(--t-slow)}
.reveal.in{opacity:1;transform:none}
.reveal-d1{transition-delay:.1s}.reveal-d2{transition-delay:.2s}.reveal-d3{transition-delay:.3s}.reveal-d4{transition-delay:.4s}
/* Safety net: never leave entrance-animated content invisible for reduced-motion users */
@media(prefers-reduced-motion:reduce){
  .reveal,.hero-left>*,.occ{opacity:1!important;transform:none!important;animation:none!important}
}

/* ─── PARALLAX ─── */
.parallax-bg{will-change:transform}

/* ─── TWEAKS PANEL ─── */
.apply-tab{position:fixed;right:0;top:50%;transform:translateY(-50%) rotate(180deg);writing-mode:vertical-rl;z-index:150;background:var(--or2);color:var(--ink);border:0;padding:18px 11px;font-family:var(--sans);font-size:12px;letter-spacing:.18em;text-transform:uppercase;cursor:pointer;border-radius:4px 0 0 4px;box-shadow:-4px 0 16px -6px rgba(0,0,0,.4);transition:background var(--t-fast),padding var(--t-fast)}
.apply-tab:hover{background:var(--or3);padding-right:15px}
.apply-overlay{position:fixed;inset:0;background:rgba(15,9,7,.55);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);z-index:300;opacity:0;pointer-events:none;transition:opacity .35s ease}
body.apply-open .apply-overlay{opacity:1;pointer-events:auto}
.apply-drawer{position:fixed;top:0;right:0;height:100vh;width:min(480px,94vw);background:var(--b2);z-index:301;transform:translateX(102%);transition:transform .42s cubic-bezier(.2,.7,.2,1);display:flex;flex-direction:column;box-shadow:-24px 0 60px -20px rgba(0,0,0,.55)}
body.apply-open .apply-drawer{transform:none}
body.apply-open .apply-tab{opacity:0;pointer-events:none}
.ad-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:26px 30px 18px;border-bottom:1px solid var(--b3);flex-shrink:0}
.ad-kicker{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--or4);display:block;margin-bottom:8px}
.ad-head h3{font-family:var(--display);font-weight:var(--dispwt,300);font-size:30px;color:var(--cream);margin:0;line-height:1}
.ad-close{width:36px;height:36px;border-radius:50%;border:1px solid var(--b4);background:transparent;color:var(--cream);font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background var(--t-fast),border-color var(--t-fast);flex-shrink:0}
.ad-close:hover{background:var(--b3);border-color:var(--or2)}
.ad-body{flex:1;overflow-y:auto;padding:24px 30px 40px}
.ad-top{background:var(--b2);padding-bottom:14px;margin-bottom:4px;border-bottom:1px solid var(--b3)}
.ad-top-note{font-size:12.5px;color:rgba(237,233,222,.6);margin:0;line-height:1.55}
.ad-bottom{margin-top:28px;padding-top:22px;border-top:1px solid var(--b3);position:sticky;bottom:0;background:linear-gradient(180deg,transparent,var(--b2) 22%);padding-bottom:4px}
.ad-submit{width:100%;justify-content:center;padding:18px 24px;font-size:14px}
.ad-fine{font-size:11.5px;color:rgba(237,233,222,.4);line-height:1.55;margin:14px 0 0}
.ad-sec{margin-top:24px}
.ad-leg{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--or4);display:inline-flex;align-items:center;gap:9px;margin-bottom:14px}
.ad-leg::before{content:var(--sym);color:var(--or2);font-size:11px}
/* "Tell us more", expand the quick apply into the full application */
.ad-more{margin-top:22px;border:1px solid var(--b3);border-radius:4px;background:rgba(250,249,246,.02)}
.ad-more>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:10px;padding:16px 18px}
.ad-more>summary::-webkit-details-marker{display:none}
.ad-more-lbl{font-size:13px;letter-spacing:.04em;color:var(--cream);font-weight:500}
.ad-more>summary .ad-opt{margin:0;font-size:11.5px}
.ad-more-chev{margin-left:auto;font-family:var(--display);font-size:22px;color:var(--or4);line-height:1;transition:transform var(--t-fast)}
.ad-more[open]>summary .ad-more-chev{transform:rotate(45deg)}
.ad-more-inner{padding:2px 18px 18px}
.ad-more:not([open]) .ad-more-inner{display:none}
.ad-more[open] .ad-more-inner{display:block}
.ad-more-inner .ad-sec:first-child{margin-top:10px}
.ad-row2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:420px){.ad-row2{grid-template-columns:1fr;gap:0}}
.ad-form label{display:block;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:rgba(237,233,222,.55);margin-bottom:18px}
.ad-form .ad-opt{text-transform:none;letter-spacing:0;color:rgba(237,233,222,.35);margin-left:6px}
.ad-form input,.ad-form select,.ad-form textarea{width:100%;margin-top:8px;padding:12px 0;background:transparent;border:0;border-bottom:1px solid var(--b4);color:var(--cream);font-family:var(--sans);font-size:15px;outline:none;transition:border-color var(--t-fast);letter-spacing:0;text-transform:none}
.ad-form input::placeholder,.ad-form textarea::placeholder{color:rgba(237,233,222,.35)}
.ad-form input:focus,.ad-form select:focus,.ad-form textarea:focus{border-color:var(--or2)}
.ad-form select{cursor:pointer}
.ad-form select option{background:var(--b1);color:var(--cream)}
.ad-form textarea{resize:none}
.ad-fine{font-size:11.5px;color:rgba(237,233,222,.4);line-height:1.55;margin:14px 0 0}
/* day chips + extras */
.ad-chips{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 18px}
.ad-chip{position:relative;cursor:pointer;margin:0}
.ad-chip input{position:absolute;opacity:0;pointer-events:none}
.ad-chip span{display:inline-flex;align-items:center;justify-content:center;min-width:46px;padding:9px 12px;border:1px solid var(--b4);border-radius:3px;font-size:12px;letter-spacing:.04em;color:rgba(237,233,222,.7);transition:all var(--t-fast);text-transform:none}
.ad-chip input:checked+span{background:var(--or2);border-color:var(--or2);color:var(--ink)}
.ad-chip input:focus-visible+span{outline:2px solid var(--or4);outline-offset:2px}
@media(max-width:560px){.apply-tab{top:auto;bottom:0;right:18px;transform:none;writing-mode:horizontal-tb;border-radius:4px 4px 0 0;padding:12px 20px;letter-spacing:.12em}.apply-tab:hover{padding-right:20px}}

/* ─── TWEAKS PANEL ─── */
.news-bar{position:fixed;left:24px;bottom:24px;z-index:160;width:min(720px,calc(100vw - 48px));background:var(--b1);border:1px solid var(--b3);border-radius:6px;padding:20px 24px;display:flex;align-items:center;gap:24px;box-shadow:0 24px 60px -16px rgba(0,0,0,.55);transform:translateY(calc(100% + 40px));opacity:0;transition:transform .5s cubic-bezier(.2,.7,.2,1),opacity .5s ease;flex-wrap:wrap}
.news-bar.up{transform:none;opacity:1}
.news-x{position:absolute;top:10px;right:12px;width:26px;height:26px;border:0;background:transparent;color:rgba(237,233,222,.5);font-size:18px;cursor:pointer;border-radius:50%;transition:background var(--t-fast),color var(--t-fast);display:flex;align-items:center;justify-content:center}
.news-x:hover{background:var(--b3);color:var(--cream)}
.news-l{flex:1;min-width:200px}
.news-kicker{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--or4);display:block;margin-bottom:5px}
.news-copy{font-size:13px;color:rgba(237,233,222,.66);line-height:1.5;margin:0;max-width:280px}
.news-form{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.news-form input{padding:11px 13px;background:var(--b2);border:1px solid var(--b3);border-radius:3px;color:var(--cream);font-family:var(--sans);font-size:13px;outline:none;transition:border-color var(--t-fast);width:130px}
.news-form input::placeholder{color:rgba(237,233,222,.4)}
.news-form input:focus{border-color:var(--or2)}
.news-go{white-space:nowrap}
.news-thanks{font-family:var(--display);font-size:18px;color:var(--or4)}
@media(max-width:680px){.news-bar{left:12px;right:12px;width:auto;bottom:12px;padding:18px 20px}.news-form input{flex:1;width:auto;min-width:120px}}

/* ─── TWEAKS PANEL ─── */
.tweaks-panel{position:fixed;bottom:24px;right:24px;z-index:200;background:var(--b1);border:1px solid var(--b3);border-radius:4px;padding:24px;width:288px;max-height:84vh;overflow-y:auto;font-family:var(--sans);font-size:13px;box-shadow:0 20px 40px rgba(0,0,0,.4);display:none}
.tweaks-panel.open{display:block}
.tweaks-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:14px;border-bottom:1px solid var(--b3)}
.tweaks-head h5{font-family:var(--display);font-weight:300;font-size:18px;margin:0;color:var(--cream)}
.tweaks-close{color:rgba(237,233,222,.6);cursor:pointer;font-size:18px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background var(--t-fast)}
.tweaks-close:hover{background:var(--b3);color:var(--cream)}
.tweaks-row{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}
.tweaks-row .lbl{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:rgba(237,233,222,.55)}
.tweaks-radio{display:flex;flex-direction:column;gap:6px}
.tweaks-opt{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--b2);border:1px solid var(--b3);border-radius:3px;cursor:pointer;transition:border-color var(--t-fast),background var(--t-fast)}
.tweaks-opt:hover{border-color:var(--b4)}
.tweaks-opt.active{border-color:var(--or2);background:rgba(214,53,4,.08)}
.tweaks-opt .dot{width:10px;height:10px;border-radius:50%;border:1px solid var(--b4);flex-shrink:0}
.tweaks-opt.active .dot{background:var(--or2);border-color:var(--or2)}
.tweaks-opt span{color:var(--cream);font-size:13px}

/* brand-mode swatches */
.tw-swatches{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.tw-swatch{display:flex;align-items:center;gap:9px;padding:9px 11px;background:var(--b2);border:1px solid var(--b3);border-radius:3px;cursor:pointer;transition:border-color var(--t-fast),background var(--t-fast)}
.tw-swatch:hover{border-color:var(--b4)}
.tw-swatch.active{border-color:var(--cream);background:rgba(237,233,222,.06)}
.tw-swatch .sw{width:16px;height:16px;border-radius:50%;flex-shrink:0}
.tw-swatch .swl{font-size:11px;color:var(--cream);letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tw-syms{display:flex;gap:6px}
.tw-sym{flex:1;aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:18px;color:var(--cream);background:var(--b2);border:1px solid var(--b3);border-radius:3px;cursor:pointer;transition:border-color var(--t-fast),background var(--t-fast),color var(--t-fast)}
.tw-sym:hover{border-color:var(--b4)}
.tw-sym.active{border-color:var(--or2);background:rgba(214,53,4,.08);color:var(--or4)}

/* ─── FINAL CTA BANNER (above SEO footer on every page) ─── */
.final-banner{background:var(--b2);color:var(--cream);padding:clamp(48px,7vw,96px) var(--pad);text-align:center;position:relative;overflow:hidden;border-top:1px solid var(--b3)}
.final-banner::before{content:var(--sym);position:absolute;left:50%;top:-60px;transform:translateX(-50%);font-size:380px;color:rgba(214,53,4,.04);font-family:var(--display);line-height:1;pointer-events:none}
.final-banner-inner{position:relative;z-index:1;max-width:720px;margin:0 auto}
.final-banner .eyebrow{justify-content:center;margin-bottom:18px;color:var(--or4)}
.final-banner .eyebrow::before{color:var(--or4)}
.final-banner h2{font-family:var(--display);font-weight:300;font-size:clamp(32px,4.8vw,64px);line-height:1.02;color:var(--cream);margin-bottom:18px;letter-spacing:-.012em}
.final-banner h2 .accent{color:var(--or4);font-style:italic}
.final-banner p{font-size:16px;line-height:1.6;color:rgba(237,233,222,.7);max-width:520px;margin:0 auto 32px}
.final-banner-cta{display:flex;gap:14px;flex-wrap:wrap;justify-content:center}
.final-banner .btn-lg{padding:20px 32px;font-size:14px;letter-spacing:.08em}

/* ─── PAGE HEADER (sub pages) ─── */
.page-header{padding:160px var(--pad) 80px;max-width:var(--maxw);margin:0 auto;display:grid;grid-template-columns:1.2fr 1fr;gap:64px;align-items:end}
@media(max-width:880px){.page-header{grid-template-columns:1fr;padding-top:140px;gap:32px}}
.page-header h1{font-size:clamp(44px,6.5vw,96px);line-height:1;color:inherit;margin-bottom:4px}
.page-header h1 .accent{color:var(--or2);font-style:italic}
.page-header .lead{max-width:520px}
.page-header .eyebrow{margin-bottom:24px}
body.cream-page .page-header h1{color:var(--b2)}
body.cream-page .page-header .lead{color:rgba(43,27,23,.7)}
body.cream-page .page-header .eyebrow{color:var(--or2)}

/* ─── UTIL ─── */
@media(max-width:720px){
  h1{font-size:clamp(40px,11vw,64px)}
  .photo-break{min-height:64vh;padding:60px var(--pad)}
}

/* ════════════════════════════════════════════════════════
   SHARED COMPONENTS · STEPS-MINI · FAQ-MINI · FORM CENTERED · SEO FOOTER
════════════════════════════════════════════════════════ */

/* STEPS MINI, homepage teaser, vertical timeline */
.steps-mini{display:grid;grid-template-columns:repeat(6,1fr);gap:0;background:rgba(237,233,222,.1);border:1px solid rgba(237,233,222,.1)}
.steps-mini .smini{background:var(--b2);padding:32px 24px;display:flex;flex-direction:column;gap:10px;min-height:200px;transition:background var(--t-fast);position:relative;border-right:1px solid rgba(237,233,222,.08)}
.steps-mini .smini:last-child{border-right:0}
.steps-mini .smini:hover{background:var(--b3)}
.steps-mini .smini-n{font-family:var(--display);font-size:36px;color:var(--or2);line-height:1;margin-bottom:8px}
.steps-mini .smini h5{font-family:var(--display);font-weight:300;color:var(--cream);font-size:18px;margin:0;line-height:1.2}
.steps-mini .smini p{font-size:13px;color:rgba(237,233,222,.6);line-height:1.5;margin:0}
.steps-mini .smini-cta{margin-top:12px;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--or2);font-family:var(--sans);transition:color var(--t-fast),transform var(--t-fast);display:inline-block}
.steps-mini .smini-cta:hover{color:var(--or4);transform:translateX(3px)}
body.light-bg .steps-mini .smini-cta{color:var(--or2)}
@media(max-width:1100px){.steps-mini{grid-template-columns:repeat(3,1fr)}.steps-mini .smini:nth-child(3n){border-right:0}}
@media(max-width:680px){.steps-mini{grid-template-columns:1fr}.steps-mini .smini{border-right:0;border-bottom:1px solid rgba(237,233,222,.08)}}

/* CENTERED FORM */
.form-centered{max-width:680px;margin:0 auto;background:var(--b2);padding:clamp(36px,5vw,64px);border-radius:4px;border:1px solid var(--b3)}
.form-centered .form-intro{text-align:center;margin-bottom:40px;padding-bottom:32px;border-bottom:1px solid var(--b3)}
.form-centered .form-intro h3{font-family:var(--display);color:var(--cream);font-size:32px;margin-bottom:10px}
.form-centered .form-intro p{font-size:14px;color:rgba(237,233,222,.6);line-height:1.55}
.form-section{margin-bottom:32px}
.form-section:last-child{margin-bottom:0}
.form-section-title{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--or4);margin-bottom:18px;display:inline-flex;align-items:center;gap:10px}
.form-section-title::before{content:var(--sym);color:var(--or2);font-size:11px}
.form-field{margin-bottom:22px}
.form-field:last-child{margin-bottom:0}
.form-row-2{display:grid;grid-template-columns:1fr 1fr;gap:22px}
@media(max-width:560px){.form-row-2{grid-template-columns:1fr;gap:0}}
.form-centered label{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:rgba(237,233,222,.55);margin-bottom:8px;display:block}
.form-centered label .opt{color:rgba(237,233,222,.35);margin-left:6px;text-transform:none;letter-spacing:.02em;font-size:11px}
.form-centered input,.form-centered textarea,.form-centered select{width:100%;padding:14px 0;background:transparent;border:0;border-bottom:1px solid var(--b3);color:var(--cream);font-family:var(--sans);font-size:15px;outline:none;transition:border-color var(--t-fast)}
.form-centered input:focus,.form-centered textarea:focus,.form-centered select:focus{border-color:var(--or2)}
.form-centered textarea{resize:none;min-height:90px;padding-top:12px}
.form-centered select option{background:var(--b2);color:var(--cream)}
.form-centered .form-submit{margin-top:8px;text-align:center;padding-top:32px;border-top:1px solid var(--b3)}
.form-centered .form-submit-note{font-size:12px;color:rgba(237,233,222,.45);margin-top:16px;line-height:1.55}
.form-centered button[type="submit"]{padding:18px 36px;font-size:14px;letter-spacing:.06em;width:100%;justify-content:center}
/* optional-detail accordion */
.form-more{margin:4px 0 28px;border:1px solid var(--b3);border-radius:4px;background:rgba(250,249,246,.02)}
.form-more>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:12px;padding:18px 20px;font-size:13px;letter-spacing:.04em;color:var(--cream)}
.form-more>summary::-webkit-details-marker{display:none}
.form-more>summary .opt{color:rgba(237,233,222,.4);font-size:12px}
.form-more>summary .form-more-chev{margin-left:auto;font-family:var(--display);font-size:22px;color:var(--or4);line-height:1;transition:transform var(--t-fast)}
.form-more[open]>summary .form-more-chev{transform:rotate(45deg)}
.form-more-inner{padding:4px 20px 22px}
.form-more:not([open]) .form-more-inner{display:none}
.form-more[open] .form-more-inner{display:block}
.form-more-inner .form-field:first-child{margin-top:4px}

/* FAQ MINI, bottom of each page */
.faq-mini{max-width:880px;margin:0 auto}
.faq-mini .faq-item{border-top:1px solid var(--b3)}
.faq-mini .faq-item:last-child{border-bottom:1px solid var(--b3)}
.faq-mini .faq-q{display:flex;justify-content:space-between;align-items:center;padding:22px 0;cursor:pointer;gap:24px;font-family:var(--display);font-weight:300;font-size:clamp(17px,1.5vw,21px);color:var(--cream);transition:color var(--t-fast),padding var(--t-fast);width:100%;text-align:left;line-height:1.3}
.faq-mini .faq-q:hover{color:var(--or4);padding-left:6px}
.faq-mini .faq-q .toggle{flex-shrink:0;width:28px;height:28px;border:1px solid var(--cream);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background var(--t-fast),border-color var(--t-fast),color var(--t-fast),transform var(--t-med);font-family:var(--sans);font-size:14px}
.faq-mini .faq-q:hover .toggle{background:var(--or2);border-color:var(--or2);color:var(--porc)}
.faq-mini .faq-item.open .faq-q{color:var(--or4)}
.faq-mini .faq-item.open .faq-q .toggle{transform:rotate(45deg);background:var(--or2);border-color:var(--or2);color:var(--porc)}
.faq-mini .faq-a{max-height:0;overflow:hidden;transition:max-height var(--t-med),padding var(--t-med);padding:0 60px 0 0}
.faq-mini .faq-item.open .faq-a{max-height:500px;padding-bottom:22px}
.faq-mini .faq-a p{font-size:14px;line-height:1.6;color:rgba(237,233,222,.7);margin:0}
.faq-mini-foot{margin-top:36px;text-align:center;font-size:13px;color:rgba(237,233,222,.55)}
.faq-mini-foot a{color:var(--or4);border-bottom:1px solid var(--or2);padding-bottom:2px}

/* Cream variant for FAQ mini */
.section--cream .faq-mini .faq-item{border-color:rgba(43,27,23,.15)}
.section--cream .faq-mini .faq-q{color:var(--b2)}
.section--cream .faq-mini .faq-q:hover{color:var(--or2)}
.section--cream .faq-mini .faq-q .toggle{border-color:var(--b2)}
.section--cream .faq-mini .faq-item.open .faq-q{color:var(--or2)}
.section--cream .faq-mini .faq-a p{color:rgba(43,27,23,.7)}
.section--cream .faq-mini-foot{color:rgba(43,27,23,.55)}

/* ─── SITE FOOTER · clean, useful, NAP for local SEO ─── */
.site-footer{background:var(--b1);color:var(--cream);padding:0 var(--pad) 30px;border-top:1px solid var(--b3)}
.sf-wrap{max-width:var(--maxw);margin:0 auto}
.sf-cta{display:flex;justify-content:space-between;align-items:center;gap:32px;flex-wrap:wrap;padding:clamp(48px,6vw,80px) 0;border-bottom:1px solid var(--b3)}
.sf-cta h2{font-family:var(--display);font-weight:var(--dispwt,300);font-size:clamp(30px,4.4vw,56px);line-height:1;color:var(--cream);letter-spacing:-.01em}
.sf-cta h2 .accent{font-style:italic;color:var(--or4)}
.sf-cta-btns{display:flex;gap:12px;flex-wrap:wrap}
.sf-top{display:grid;grid-template-columns:1.4fr 1.6fr;gap:clamp(40px,6vw,90px);padding:48px 0 44px;border-bottom:1px solid var(--b3)}
@media(max-width:880px){.sf-top{grid-template-columns:1fr;gap:40px}}
.sf-brand-col .brand{margin-bottom:18px}
.sf-tag{font-size:14px;line-height:1.6;color:rgba(237,233,222,.6);max-width:380px;margin-bottom:22px}
.sf-contact{font-style:normal;display:flex;flex-direction:column;gap:7px;margin-bottom:24px}
.sf-contact a{font-size:14px;color:rgba(237,233,222,.78);transition:color var(--t-fast);width:fit-content}
.sf-contact a:hover{color:var(--or4)}
.sf-phone{font-family:var(--display);font-size:24px!important;color:var(--cream)!important;line-height:1}
.sf-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
@media(max-width:560px){.sf-cols{grid-template-columns:1fr 1fr;gap:26px}}
.sf-col{display:flex;flex-direction:column;gap:12px}
.sf-h{font-family:var(--sans);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--or4);margin-bottom:4px}
.sf-col a{font-size:14px;color:rgba(237,233,222,.7);transition:color var(--t-fast),transform var(--t-fast);width:fit-content}
.sf-col a:hover{color:var(--cream);transform:translateX(3px)}
.sf-areas{display:flex;gap:16px;flex-wrap:wrap;align-items:baseline;padding:24px 0;border-bottom:1px solid var(--b3)}
.sf-areas .sf-h{margin:0;white-space:nowrap;padding-top:2px}
.sf-area-list{font-size:13px;color:rgba(237,233,222,.5);line-height:1.7;flex:1;min-width:240px}
.sf-bottom{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-top:22px;font-size:12.5px;color:rgba(237,233,222,.45)}
.sf-bottom a{color:rgba(237,233,222,.62);border-bottom:1px solid var(--b3);transition:color var(--t-fast)}
.sf-bottom a:hover{color:var(--or4)}

/* SEO FOOTER BLOCK, keyword-rich, breathy */
.seo-footer{background:var(--b1);padding:64px var(--pad) 0;border-top:1px solid var(--b3)}
.seo-footer-grid{max-width:var(--maxw);margin:0 auto;display:grid;grid-template-columns:1.4fr 1fr;gap:48px;padding-bottom:48px;border-bottom:1px solid var(--b3)}
@media(max-width:880px){.seo-footer-grid{grid-template-columns:1fr;gap:32px}}
.seo-footer h4{font-family:var(--display);font-weight:300;font-size:clamp(22px,2.2vw,32px);color:var(--cream);margin-bottom:18px;line-height:1.2}
.seo-footer p{font-size:14px;line-height:1.65;color:rgba(237,233,222,.62);margin-bottom:14px}
.seo-footer p strong{color:var(--cream);font-weight:400}
.seo-footer-keywords{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.seo-footer-keywords span{font-size:11px;letter-spacing:.08em;color:rgba(237,233,222,.5);padding:5px 11px;border:1px solid var(--b3);border-radius:2px;transition:border-color var(--t-fast),color var(--t-fast)}
.seo-footer-keywords span:hover{border-color:var(--or2);color:var(--cream)}
.seo-footer-meta{display:flex;flex-direction:column;gap:18px}
.seo-footer-meta-row{display:flex;flex-direction:column;gap:4px}
.seo-footer-meta-row .lbl{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:rgba(237,233,222,.45)}
.seo-footer-meta-row .val{font-size:14px;color:var(--cream)}
.seo-footer-meta-row .val a{color:var(--cream);border-bottom:1px solid var(--b3);transition:border-color var(--t-fast)}
.seo-footer-meta-row .val a:hover{border-color:var(--or2)}

/* TERMS BLOCK, payment + cancellation */
.terms-block{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(237,233,222,.12);border:1px solid rgba(237,233,222,.12);margin-top:48px}
.term-card{background:var(--b2);padding:32px;display:flex;flex-direction:column;gap:12px;transition:background var(--t-fast)}
.term-card:hover{background:var(--b3)}
.term-card .sym{font-family:var(--display);font-size:32px;color:var(--or2);line-height:1;margin-bottom:8px}
.term-card h5{font-family:var(--display);font-weight:300;font-size:20px;color:var(--cream);margin:0 0 6px}
.term-card p{font-size:13px;line-height:1.55;color:rgba(237,233,222,.65);margin:0}
.term-card p strong{color:var(--or4);font-weight:400}
@media(max-width:880px){.terms-block{grid-template-columns:1fr}}

/* AREA HIGHLIGHTS, for location page */
.area-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media(max-width:880px){.area-grid{grid-template-columns:1fr}}
.area-card{background:var(--b2);border:1px solid var(--b3);border-radius:4px;overflow:hidden;display:flex;flex-direction:column;transition:transform var(--t-fast),border-color var(--t-fast)}
.area-card:hover{transform:translateY(-3px);border-color:var(--or2)}
.area-img{aspect-ratio:4/3;background:var(--b3);background-size:cover;background-position:center;transition:transform 1s cubic-bezier(.2,.7,.2,1)}
.area-card:hover .area-img{transform:scale(1.04)}
.area-body{padding:24px}
.area-body .eyebrow{margin-bottom:10px}
.area-body h4{font-family:var(--display);font-weight:300;font-size:22px;color:var(--cream);margin-bottom:8px}
.area-body p{font-size:13px;color:rgba(237,233,222,.65);line-height:1.55;margin-bottom:14px}
.area-body .area-time{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--or4);display:inline-flex;align-items:center;gap:8px}
.area-body .area-time::before{content:"→";color:var(--or2)}

/* UPSTAIRS BLOCK */
.upstairs{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,5vw,80px);align-items:center}
@media(max-width:880px){.upstairs{grid-template-columns:1fr}}
.upstairs-img{aspect-ratio:5/4;position:relative;overflow:hidden;border-radius:4px;background:var(--b3)}
.upstairs-img img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s cubic-bezier(.2,.7,.2,1)}
.upstairs-img:hover img{transform:scale(1.04)}
.upstairs-img::after{content:"◎";position:absolute;top:24px;right:24px;font-size:28px;color:var(--porc);mix-blend-mode:screen;opacity:.85}
.upstairs-bullets{margin-top:24px;display:flex;flex-direction:column;gap:0;border-top:1px solid rgba(237,233,222,.15)}
.upstairs-bullet{padding:14px 0;border-bottom:1px solid rgba(237,233,222,.15);display:flex;align-items:baseline;gap:14px}
.upstairs-bullet .sym{color:var(--or2);font-family:var(--display);font-size:18px;min-width:22px}
.upstairs-bullet div h6{font-family:var(--display);font-weight:300;font-size:17px;color:var(--cream);margin:0 0 2px}
.upstairs-bullet div p{font-size:13px;color:rgba(237,233,222,.6);margin:0;line-height:1.5}

/* ════════════════════════════════════════════════════════
   PORCELAIN BACKGROUND MODE (Tweaks → Background: Porcelain)
   Flips the warm-dark surfaces to porcelain so a bright/yellow
   accent can be auditioned on white. Brown stays the default.
════════════════════════════════════════════════════════ */
body.light-bg{background:#E6DCC8;color:rgba(43,27,23,.8)}
/* global dark text on the warm-sand bg (excludes accent fills + buttons) */
body.light-bg h1,body.light-bg h2,body.light-bg h3,body.light-bg h4,body.light-bg h5,body.light-bg h6,body.light-bg .display-h1{color:var(--b2)}
body.light-bg p,body.light-bg li,body.light-bg .lead,body.light-bg .hero-sub,
body.light-bg .occ-label,body.light-bg .occ-stat-label,body.light-bg .step p,body.light-bg .feat p,
body.light-bg .comm p,body.light-bg .smini p,body.light-bg .smini h5{color:rgba(43,27,23,.74)}
body.light-bg .hero-meta span,body.light-bg .occ-rate-l{color:rgba(43,27,23,.6)}
/* dark surfaces → warm white cards */
body.light-bg .section--dark,
body.light-bg .occ,body.light-bg .feat,body.light-bg .comm,body.light-bg .comm-6,
body.light-bg .step,body.light-bg .steps-mini .smini,body.light-bg .onair,body.light-bg .ladder,
body.light-bg .addons,body.light-bg .studio-only,body.light-bg .pipeline-flow,body.light-bg .flow-node,
body.light-bg .returns-card,body.light-bg .term-card,body.light-bg .founding,body.light-bg .final-banner,
body.light-bg .seo-footer,body.light-bg footer,body.light-bg .map-frame,body.light-bg .map-meta,
body.light-bg .anytime-card.featured,body.light-bg .anytime-card.locked,body.light-bg .setday-card.featured,
body.light-bg .tier-cell.start,body.light-bg .rhythm-day.shoot,body.light-bg .occ-rate{
  background:var(--porc);border-color:rgba(43,27,23,.12);
}
body.light-bg .section--dark,body.light-bg .comm-6,body.light-bg .flow-node,
body.light-bg .founding,body.light-bg .seo-footer,body.light-bg footer{background:#EFEADD}
/* flip explicit cream text dark inside flipped surfaces */
body.light-bg .section--dark *:not(.btn):not(.eyebrow):not(.accent):not(.accent-warm):not(.btn-pri),
body.light-bg .occ *,body.light-bg .feat *,body.light-bg .comm:not(.comm-1) *,
body.light-bg .step *,body.light-bg .steps-mini .smini *,body.light-bg .onair *:not(.onair-light),
body.light-bg .ladder *,body.light-bg .addons *,body.light-bg .studio-only *,
body.light-bg .pipeline-flow *,body.light-bg .flow-node:not(.flow-node--accent) *,
body.light-bg .returns-card *,body.light-bg .term-card *,body.light-bg .founding *,
body.light-bg .final-banner *:not(.btn),body.light-bg .seo-footer *,body.light-bg footer *,
body.light-bg .map-meta *,body.light-bg .anytime-card.featured *,body.light-bg .anytime-card.locked *,
body.light-bg .setday-card.featured *,body.light-bg .tier-cell.start *,body.light-bg .rhythm-day.shoot *{
  color:rgba(43,27,23,.76);
}
body.light-bg .section--dark h1,body.light-bg .section--dark h2,body.light-bg .section--dark h3,body.light-bg .section--dark h4,body.light-bg .section--dark h5,
body.light-bg .occ-label-big,body.light-bg .feat h4,body.light-bg .comm:not(.comm-1) h4,
body.light-bg .onair h3,body.light-bg .ladder h3,body.light-bg .final-banner h2,
body.light-bg .returns-card h5,body.light-bg .founding h3,body.light-bg .step h4,
body.light-bg .anytime-card h3,body.light-bg .smini h5{color:var(--b2)}
/* accents stay on-brand */
body.light-bg .eyebrow,body.light-bg .eyebrow--warm,body.light-bg .accent,body.light-bg .accent-warm,
body.light-bg .comm .big,body.light-bg .step-num,body.light-bg .smini-n,body.light-bg .founding-num{color:var(--or2)}
body.light-bg .eyebrow::before,body.light-bg .eyebrow--warm::before{color:var(--or2)}
/* hairlines */
body.light-bg .features,body.light-bg .steps,body.light-bg .steps-mini{background:rgba(43,27,23,.1);border-color:rgba(43,27,23,.1)}
body.light-bg .rule-row,body.light-bg .guide,body.light-bg .quad-row,body.light-bg .dist,
body.light-bg .occ-meta,body.light-bg .occ-rate,body.light-bg .occ-grid .occ-cell,
body.light-bg .addons-row,body.light-bg .ladder-cell,body.light-bg .flow-node,
body.light-bg .upstairs-bullet,body.light-bg .upstairs-bullets,
body.light-bg .comm .label,body.light-bg .returns-card,body.light-bg .seo-footer-meta-row,
body.light-bg .foot-bottom,body.light-bg .foot-row{border-color:rgba(43,27,23,.14)}
/* accent-fill cards keep a SOLID accent + ink (no gradient) */
body.light-bg .comm-1,body.light-bg .section--accent{background:var(--or2)}
body.light-bg .comm-1 *,body.light-bg .flow-node--accent *,body.light-bg .section--accent *:not(.btn){color:var(--ink)}
body.light-bg .btn-pri,body.light-bg .nav-links a.btn-pri{color:#FAF9F6}
body.light-bg .btn-ghost,body.light-bg .btn-dark{color:var(--b2);border-color:rgba(43,27,23,.3)}
/* nav legible on sand */
body.light-bg .nav:not(.scrolled) .brand,body.light-bg .nav:not(.scrolled) .brand-mark,
body.light-bg .nav:not(.scrolled) .nav-links a:not(.btn),body.light-bg .nav:not(.scrolled) .nav-phone{color:var(--b2)}
body.light-bg .nav.scrolled{background:rgba(43,27,23,.92)}
body.light-bg .nav.scrolled .brand,body.light-bg .nav.scrolled .brand-mark,body.light-bg .nav.scrolled .nav-links a:not(.btn),body.light-bg .nav.scrolled .nav-phone{color:var(--cream)}
body.light-bg .seo-footer,body.light-bg footer{border-top-color:rgba(43,27,23,.12)}

/* keep the page bottom DARK to close it up, even in porcelain mode */
body.light-bg .seo-footer,body.light-bg footer,body.light-bg .final-banner{background:var(--b1);border-color:var(--b3);border-top-color:var(--b3)}
body.light-bg .seo-footer h4,body.light-bg .final-banner h2{color:var(--cream)}
body.light-bg .seo-footer p,body.light-bg .final-banner p,
body.light-bg .seo-footer-meta-row .val,body.light-bg .seo-footer-meta-row .val a,
body.light-bg .foot-bottom span,body.light-bg .foot-links a,body.light-bg .foot-row,
body.light-bg .seo-footer-meta-row .lbl{color:rgba(237,233,222,.62)}
body.light-bg .final-banner *:not(.btn):not(.eyebrow):not(.accent){color:rgba(237,233,222,.7)}
body.light-bg .final-banner h2{color:var(--cream)}
body.light-bg .seo-footer-keywords span{border-color:var(--b3);color:rgba(237,233,222,.5)}
body.light-bg .final-banner .btn-ghost{color:var(--cream);border-color:rgba(237,233,222,.35)}
body.light-bg .seo-footer-meta-row,body.light-bg .foot-bottom,body.light-bg .foot-row{border-color:var(--b3)}
body.light-bg footer .brand,body.light-bg footer .brand-mark{color:var(--cream)}
body.light-bg .final-banner .eyebrow,body.light-bg .seo-footer .eyebrow{color:var(--or4)}
body.light-bg .final-banner .eyebrow::before,body.light-bg .seo-footer .eyebrow::before{color:var(--or4)}

/* ════════════════════════════════════════════════════════
   RESPONSIVE LAYER  ·  mobile / tablet / 13" / large desktop
   Webflow-style breakpoints: 991 (tablet), 767 (landscape
   phone), 479 (portrait phone), plus 1440+ for large screens.
════════════════════════════════════════════════════════ */

/* mobile hamburger button (injected by site.js, hidden on desktop) */
.nav-burger{display:none;flex-direction:column;justify-content:center;gap:5px;width:42px;height:42px;border:1px solid var(--line-strong,rgba(237,233,222,.22));border-radius:3px;background:transparent;cursor:pointer;flex-shrink:0;transition:border-color var(--t-fast)}
.nav-burger span{display:block;width:18px;height:1.5px;background:currentColor;margin:0 auto;transition:transform var(--t-fast),opacity var(--t-fast)}
.nav-burger:hover{border-color:currentColor}
body.cream-page .nav:not(.scrolled) .nav-burger{color:var(--b2)}
.nav.scrolled .nav-burger,body[data-hero="image"] .nav:not(.scrolled) .nav-burger{color:var(--cream)}
.nav-open .nav-burger span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.nav-open .nav-burger span:nth-child(2){opacity:0}
.nav-open .nav-burger span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}

/* ── Large desktop: widen the canvas a touch ── */
@media(min-width:1600px){
  :root{--maxw:1440px}
}

/* ── Tablet / small laptop (≤991px) ── */
@media(max-width:991px){
  .nav{z-index:130}
  .nav-burger{display:flex}
  /* slide-in sheet from the right */
  .nav .nav-links{position:fixed;top:0;right:0;bottom:0;width:min(330px,84vw);background:var(--b1);border-left:1px solid var(--b3);
    flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:2px;padding:104px 30px 40px;
    transform:translateX(105%);transition:transform .4s cubic-bezier(.2,.7,.2,1);z-index:120;overflow-y:auto;box-shadow:-24px 0 60px rgba(0,0,0,.4)}
  body.nav-open .nav-links{transform:translateX(0)}
  /* every item shows in the sheet */
  .nav .nav-links a{display:flex!important;align-items:center;color:var(--cream)!important;font-size:18px;font-family:var(--display);font-weight:var(--dispwt,400);padding:15px 0;width:100%;border-bottom:1px solid var(--b3);letter-spacing:.01em}
  .nav .nav-links a:not(.btn)::after{display:none}
  .nav .nav-links a.active{color:var(--or4)!important}
  .nav .nav-links .btn-pri{margin-top:20px;width:100%;justify-content:center;font-size:14px;padding:16px;font-family:var(--sans);color:#FAF9F6!important;border-bottom:0}
  .nav .nav-links .nav-phone{order:-1;font-size:18px}
  .nav .nav-links .nav-phone span{display:inline!important}
  .nav .nav-links .nav-phone::after{content:none!important}
  /* dim + blur the page BEHIND, header stays sharp (nav z130 > backdrop z110) */
  body.nav-open::after{content:"";position:fixed;inset:0;background:rgba(27,16,14,.55);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:110}
  /* hero + split layouts stack */
  .hero{grid-template-columns:1fr;gap:48px;padding-top:120px}
  .page-header{grid-template-columns:1fr;gap:24px;padding-top:128px}
  .section{padding:clamp(56px,9vw,96px) 0}
  .features,.steps,.steps-mini,.handbook-grid{grid-template-columns:repeat(2,1fr)!important}
  .at-studio{grid-template-columns:repeat(2,1fr)}
}

/* ── Landscape phone / large mobile (≤767px) ── */
@media(max-width:767px){
  body{font-size:15.5px}
  .wrap{padding-left:22px;padding-right:22px}
  .nav{padding:14px 22px}
  /* single column everything */
  .features,.steps,.steps-mini,.handbook-grid,.at-studio,
  .comm-grid,.returns-intro,.ways,.culture,.area-grid,.terms-block,
  .setday-grid,.studio-specs{grid-template-columns:1fr!important}
  .comm-grid > *{grid-column:auto!important}
  /* stacked split sections */
  .studio-teaser,.studio-wrap,.upstairs,.pipeline,.location,.referral,
  .quad,.rules,.app-process,.cta-grid,.pullquote,.welcome,.map-block,
  .pricing-hero,.founding,.studio-only,.included,.simplicity{grid-template-columns:1fr!important;gap:32px!important}
  /* gallery becomes a clean 2-up, no row-spanning gaps */
  .editorial{grid-template-columns:1fr 1fr;grid-auto-rows:150px;gap:10px}
  .editorial > *{grid-column:auto!important;grid-row:auto!important}
  .ed-1{grid-column:1 / -1!important;grid-row:span 2!important}
  /* tighten oversized display type on phones */
  h1{font-size:calc(clamp(38px,10vw,60px) * var(--dispscale,1))}
  h2{font-size:calc(clamp(30px,7vw,46px) * var(--dispscale,1))}
  .hero h1,.display-h1{font-size:calc(clamp(40px,11vw,64px) * var(--dispscale,1))!important}
  /* footers + meta rows stack and left-align */
  .foot-row,.foot-bottom,.pricing-foot,.seo-footer-grid{flex-direction:column;align-items:flex-start;gap:14px}
  .seo-footer-grid{display:flex}
  /* photo-break + banners: contain text */
  .photo-break{min-height:60vh;padding:56px 22px}
  .team-break-img{aspect-ratio:3/4}
  .final-banner{padding:56px 22px}
  /* pricing toggle wraps cleanly */
  .price-toggle{flex-wrap:wrap}
  .price-toggle-btn{flex:1 1 auto;padding:12px 16px;font-size:12px}
  /* tables / wide rows scroll rather than overflow */
  .perks-table-head{display:none}
  /* forms full width */
  .form-centered,.form{padding:28px 20px}
  .quick-paths{grid-template-columns:1fr 1fr}
}

/* ── Portrait phone (≤479px) ── */
@media(max-width:479px){
  .editorial{grid-template-columns:1fr;grid-auto-rows:200px}
  .ed-1{grid-column:1!important;grid-row:span 1!important}
  .quick-paths{grid-template-columns:1fr}
  .hero-meta{gap:14px}
  .btn{padding:15px 20px;font-size:13px}
  .nav .brand-arm{display:none}
  .pricing-foot{gap:10px}
}

/* tame the clumsy pricing-foot row everywhere: even inline pills */
.pricing-foot{align-items:center}
.pricing-foot span{display:inline-flex;align-items:center}
@media(min-width:768px){
  .pricing-foot{gap:14px 0;justify-content:center}
  .pricing-foot span:not(:last-child){padding-right:26px;margin-right:0;border-right:1px solid rgba(43,27,23,.18)}
  .pricing-foot span{padding-left:26px}
  .pricing-foot span:first-child{padding-left:0}
}

/* ════════════════════════════════════════════════════════
   MOBILE POLISH · kill gaps, keep sizing sane, breathing room
   before headings (addresses review notes on mobile layout)
════════════════════════════════════════════════════════ */
@media(max-width:767px){
  /* #33, headings never butt up against the section above */
  .sec-head{padding-top:6px}
  /* flush/zero-padding sections still need air on phones */
  .section[style*="padding-top:0"],
  .section[style*="padding:0"]{padding-top:clamp(48px,9vw,72px)!important}
  .pullquote{padding-top:clamp(40px,8vw,64px)!important}
  /* tighten the giant vertical rhythm so there are no dead voids */
  .section{padding:clamp(60px,9vw,84px) 0}
  .section--tight{padding:clamp(40px,7vw,60px) 0}
  /* image hero: size to content, no forced 100vh void below the text */
  body[data-hero="image"] .hero{min-height:auto}
  body[data-hero="image"] .hero-left{padding:120px var(--pad) 64px}
  /* editorial gallery: consistent tiles, no row-span voids */
  .editorial{grid-auto-rows:auto}
  .ed{aspect-ratio:4/3}
  /* fly-through video: don't go absurdly tall on phones */
  .home-ft-frame{aspect-ratio:4/5;max-height:78vh}
  /* CTA bands & banners: contain padding so they don't balloon */
  .sf-cta{padding:clamp(36px,8vw,56px) 0}
  .final-banner{padding:clamp(48px,9vw,72px) 22px}
}
@media(max-width:479px){
  .editorial{grid-template-columns:1fr;grid-auto-rows:auto}
  .ed{aspect-ratio:3/2}
}


