@import url('https://fonts.googleapis.com/css2?family=Bodoni+Moda:opsz,wght@6..96,400;6..96,500&family=Manrope:wght@400;500;600&display=swap');

:root { --black:#0b0b0a; --ivory:#f3efe5; --sand:#c8a879; --limestone:#d8cec0; --muted:#746b60; --serif:"Bodoni Moda","Bodoni 72",Didot,serif; --sans:"Manrope",Arial,sans-serif; --shell:1280px; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; background:var(--ivory); }
body { margin:0; color:var(--black); background:var(--ivory); font-family:var(--sans); font-size:15px; line-height:1.65; }
img { display:block; max-width:100%; }
a { color:inherit; }
figure { margin:0; }
::selection { color:var(--black); background:var(--sand); }
.section-shell { width:min(var(--shell),calc(100% - 64px)); margin-inline:auto; }
.section-pad { padding-block:clamp(92px,10vw,152px); }

.site-header { position:relative; z-index:10; border-bottom:1px solid rgba(11,11,10,.14); background:rgba(243,239,229,.98); }
.header-inner { width:min(var(--shell),calc(100% - 64px)); min-height:92px; margin-inline:auto; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:38px; }
.brand-link { justify-self:start; }
.brand-link img { width:92px; height:auto; }
nav { display:flex; align-items:center; gap:30px; }
nav a,.header-cta { font-size:10px; font-weight:600; letter-spacing:.12em; text-decoration:none; text-transform:uppercase; }
.header-cta { justify-self:end; display:flex; gap:10px; align-items:center; }

.hero { min-height:calc(100svh - 92px); padding-block:clamp(54px,7vw,96px); display:grid; grid-template-columns:minmax(0,.82fr) minmax(520px,1fr); gap:clamp(50px,6vw,90px); align-items:center; }
.hero-copy { max-width:650px; }
.eyebrow { margin:0 0 26px; color:#78674e; font-size:10px; font-weight:600; letter-spacing:.18em; text-transform:uppercase; }
h1,h2,h3,p { margin-top:0; }
h1,h2,h3 { font-family:var(--serif); font-weight:400; line-height:.99; letter-spacing:-.035em; }
h1 { margin-bottom:32px; font-size:clamp(58px,7vw,102px); }
h2 { margin-bottom:0; font-size:clamp(44px,5.4vw,76px); }
h3 { margin-bottom:0; font-size:clamp(28px,2.3vw,36px); }
.hero-intro { max-width:440px; margin-bottom:38px; font-family:var(--serif); font-size:clamp(21px,2vw,28px); line-height:1.28; }
.hero-image { width:min(100%,720px); justify-self:end; aspect-ratio:8/9; overflow:hidden; background:var(--limestone); }
.hero-image img { width:100%; height:100%; object-fit:cover; transform:scale(1.03); transform-origin:right center; }
.button { min-height:52px; padding:0 22px; display:inline-flex; align-items:center; justify-content:space-between; gap:30px; border:1px solid currentColor; font-size:10px; font-weight:600; letter-spacing:.12em; text-decoration:none; text-transform:uppercase; transition:color .25s,background .25s; }
.button-dark { color:var(--ivory); background:var(--black); }
.button-dark:hover { color:var(--black); background:var(--sand); }
.horizon { width:min(440px,calc(100% - 72px)); height:1px; margin:64px auto 0; position:relative; background:var(--sand); }
.horizon img { position:absolute; left:50%; top:50%; width:22px; height:auto; padding:5px; background:var(--ivory); transform:translate(-50%,-50%); }

.manifesto h2 { max-width:980px; margin-bottom:72px; }
.manifesto-grid { width:min(720px,65%); margin-left:auto; display:grid; grid-template-columns:1fr 1fr; gap:56px; }
.manifesto-grid p { margin-bottom:0; }

.section-dark { color:var(--ivory); background:var(--black); }
.section-dark .eyebrow { color:var(--sand); }
.section-heading { display:grid; grid-template-columns:.65fr 1.35fr; gap:60px; align-items:start; }
.proof-grid { margin-top:72px; display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid #444; border-bottom:1px solid #444; }
.proof-grid article { min-height:320px; padding:42px 38px 38px 0; display:flex; flex-direction:column; border-right:1px solid #444; }
.proof-grid article:not(:first-child) { padding-left:38px; }
.proof-grid article:last-child { border-right:0; }
.proof-grid strong { font-family:var(--serif); font-size:clamp(88px,10vw,150px); font-weight:400; line-height:.8; letter-spacing:-.06em; }
.proof-grid h3 { margin:auto 0 10px; }
.proof-grid p { margin:0; color:#c8c5bc; }
.rate-grid article>span { color:var(--sand); font-size:10px; }

.rates-heading { grid-template-columns:1.25fr .75fr; align-items:end; }
.rates-heading>p { max-width:440px; margin:0 0 8px; color:var(--muted); }
.rate-grid { margin-top:72px; border-top:1px solid rgba(11,11,10,.32); }
.rate-grid article { min-height:118px; padding:26px 0; display:grid; grid-template-columns:52px minmax(180px,.8fr) 130px 1.3fr; gap:28px; align-items:center; border-bottom:1px solid rgba(11,11,10,.32); }
.rate-grid h3 { margin:0; font-size:30px; }
.rate-grid strong { font-family:var(--serif); font-size:38px; font-weight:400; line-height:1; }
.rate-grid p { margin:0; color:var(--muted); }
.rate-terms { max-width:850px; margin-top:34px; color:var(--muted); }
.rate-terms p { margin:0 0 10px; }
.policy { margin-top:34px; padding:24px 0; display:grid; grid-template-columns:1fr 2fr; gap:40px; border-top:1px solid rgba(11,11,10,.28); border-bottom:1px solid rgba(11,11,10,.28); }
.policy span { color:#78674e; font-size:10px; font-weight:600; letter-spacing:.18em; text-transform:uppercase; }
.policy p { max-width:720px; margin:0; }

.studio-section { display:grid; grid-template-columns:1.2fr .8fr; align-items:stretch; }
.studio-image { align-self:center; aspect-ratio:191/105; overflow:hidden; background:var(--limestone); }
.studio-image img { width:100%; height:100%; object-fit:cover; }
.studio-copy { padding:clamp(64px,7vw,105px) clamp(40px,5vw,76px); background:var(--limestone); display:flex; flex-direction:column; justify-content:center; }
.studio-copy h2 { margin-bottom:34px; }
.studio-copy>p:not(.eyebrow) { max-width:440px; }
dl { margin:54px 0 0; border-top:1px solid rgba(11,11,10,.28); }
dl div { padding:15px 0; display:flex; justify-content:space-between; gap:20px; border-bottom:1px solid rgba(11,11,10,.28); }
dt { font-size:9px; letter-spacing:.12em; text-transform:uppercase; }
dd { margin:0; text-align:right; }

.founder { display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(60px,10vw,150px); align-items:start; }
.founder-title h2 { max-width:650px; }
.founder-copy { max-width:560px; padding-top:40px; }
.founder-copy p { margin-bottom:24px; font-size:17px; }
.founder-copy p:first-child { font-family:var(--serif); font-size:clamp(24px,2.2vw,31px); line-height:1.35; }

.exterior-statement { width:min(1120px,calc(100% - 64px)); aspect-ratio:1401/1123; overflow:hidden; background:var(--black); }
.exterior-statement img { width:100%; height:100%; object-fit:cover; }

.visit { display:grid; grid-template-columns:.75fr 1.25fr; gap:clamp(60px,9vw,130px); align-items:center; }
.visit-copy { max-width:510px; }
.visit-copy h2 { margin-bottom:32px; }
.visit-copy p:not(.eyebrow) { margin-bottom:28px; }
.text-link { padding-bottom:4px; border-bottom:1px solid currentColor; font-size:10px; font-weight:600; letter-spacing:.12em; text-decoration:none; text-transform:uppercase; }
.map-frame { aspect-ratio:4/3; overflow:hidden; border:1px solid rgba(11,11,10,.18); background:var(--limestone); }
.map-frame iframe { width:100%; height:100%; border:0; display:block; }

.booking { color:var(--ivory); background:var(--black); }
.booking-inner { padding-block:clamp(84px,10vw,142px); display:flex; align-items:flex-end; justify-content:space-between; gap:60px; }
.booking .eyebrow { color:var(--sand); }
.booking h2 { margin-bottom:26px; }
.booking p:not(.eyebrow) { max-width:520px; margin-bottom:0; color:#c8c5bc; }
.button-light { flex-shrink:0; color:var(--black); background:var(--ivory); }
.button-light:hover { background:var(--sand); }

footer { background:var(--ivory); }
.footer-inner { min-height:150px; padding-block:36px; display:grid; grid-template-columns:1fr 1fr 1fr; gap:30px; align-items:end; font-size:11px; }
.footer-inner>img { width:102px; height:auto; }
.footer-contact { display:flex; flex-direction:column; }
.footer-contact a { text-decoration:none; }
.footer-inner p { margin:0; text-align:right; }

.reveal { animation:rise .9s cubic-bezier(.2,.8,.2,1) both; }
.reveal-late { animation-delay:.12s; }
@keyframes rise { from { opacity:0; transform:translateY(18px); } to { opacity:1; transform:none; } }

@media (max-width:920px) {
  .section-shell,.header-inner { width:min(var(--shell),calc(100% - 48px)); }
  nav { display:none; }
  .header-inner { grid-template-columns:1fr 1fr; }
  .hero { grid-template-columns:1fr 1fr; gap:44px; }
  .manifesto-grid { width:80%; }
  .rate-grid article { grid-template-columns:42px minmax(160px,.8fr) 110px 1fr; gap:20px; }
  .studio-section { width:100%; grid-template-columns:1fr; }
  .studio-image,.studio-copy { width:min(var(--shell),calc(100% - 48px)); margin-inline:auto; }
}

@media (max-width:700px) {
  .section-shell,.header-inner { width:calc(100% - 40px); }
  .header-inner { min-height:78px; gap:20px; }
  .brand-link img { width:84px; }
  .header-cta { font-size:9px; }
  .hero { min-height:auto; padding-top:28px; grid-template-columns:1fr; gap:52px; }
  .hero-copy { grid-row:1; padding-bottom:0; }
  .hero-image { grid-row:2; width:min(100%,480px); justify-self:center; }
  h1 { font-size:clamp(52px,15vw,76px); }
  h2 { font-size:clamp(43px,13vw,60px); }
  .horizon { margin-top:48px; }
  .manifesto h2 { margin-bottom:52px; }
  .manifesto-grid,.section-heading,.rates-heading { width:100%; grid-template-columns:1fr; gap:28px; }
  .founder,.visit { grid-template-columns:1fr; gap:28px; }
  .proof-grid { margin-top:52px; grid-template-columns:1fr; }
  .proof-grid article,.proof-grid article:not(:first-child) { min-height:240px; padding:34px 0; border-right:0; border-bottom:1px solid #444; }
  .proof-grid article:last-child { border-bottom:0; }
  .proof-grid strong { font-size:112px; }
  .rate-grid { margin-top:52px; }
  .rate-grid article { min-height:0; grid-template-columns:32px 1fr auto; gap:16px; }
  .rate-grid article p { grid-column:2/-1; }
  .policy { grid-template-columns:1fr; gap:14px; }
  .studio-image,.studio-copy { width:100%; }
  .studio-copy { padding-inline:24px; }
  .founder-copy { padding-top:10px; }
  .exterior-statement { width:calc(100% - 40px); margin-inline:auto; }
  .visit { gap:48px; }
  .map-frame { aspect-ratio:1/1; }
  .booking-inner { align-items:flex-start; flex-direction:column; }
  .footer-inner { grid-template-columns:1fr; align-items:start; }
  .footer-inner p { text-align:left; }
}

@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .reveal { animation:none; } .button { transition:none; } }

/* Pre-launch brand review. Existing website type and hero are retained. */
.review-banner { padding:10px 20px; text-align:center; background:#d8cec0; color:#303238; font:500 12px/1.5 var(--sans); }
.hero-actions { display:flex; align-items:center; flex-wrap:wrap; gap:24px; }
.opening-note { font-size:14px; margin-top:18px; color:var(--muted); }
#waitlist { scroll-margin-top:100px; }
.waitlist-inner { display:grid; grid-template-columns:1fr 1fr; gap:90px; padding-block:90px; }
.waitlist-copy h2 { margin-bottom:26px; }
.waitlist-copy p { max-width:430px; }
.waitlist-copy .text-link { color:var(--ivory); border-color:var(--ivory); }
.waitlist-follow { margin:32px 0 12px; }
.waitlist-form fieldset { margin:0; padding:0; border:0; min-width:0; }
.waitlist-form label { display:block; margin-bottom:8px; font:500 14px/1.5 var(--sans); }
.waitlist-form input[type=text],.waitlist-form input[type=email] { width:100%; box-sizing:border-box; min-height:50px; margin:0 0 20px; padding:12px 14px; background:var(--ivory); color:var(--black); border:1px solid var(--limestone); border-radius:0; font:400 16px/1.5 var(--sans); opacity:1; }
.waitlist-form .consent { display:flex; align-items:flex-start; gap:10px; margin:4px 0 24px; font-size:13px; }
.consent input { flex:none; width:18px; height:18px; margin:2px 0 0; }
.waitlist-form button { font-family:var(--sans); cursor:default; }
.preview-notice { color:var(--sand); font-size:13px; margin-bottom:24px; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
a:focus-visible,button:focus-visible,input:focus-visible { outline:3px solid var(--sand); outline-offset:5px; }
@media(max-width:700px) { .waitlist-inner { grid-template-columns:1fr; gap:36px; padding-block:60px; } .hero-actions { align-items:flex-start; flex-direction:column; gap:22px; } .review-banner { font-size:11px; } }

/* Keep the complete design views visible, including entrance and sign. */
.studio-image,.exterior-statement { aspect-ratio:auto; overflow:visible; background:transparent; }
.studio-image img,.exterior-statement img { display:block; width:100%; height:auto; object-fit:contain; }
.studio-image figcaption,.exterior-statement figcaption { padding-top:12px; font-family:var(--sans); font-size:12px; line-height:1.5; color:var(--black); opacity:.7; }
.optional-label { font-weight:400; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior:auto; } .reveal { animation:none; opacity:1; transform:none; } }

/* Brevo hosts and processes the opening waitlist. */
.waitlist-inner { grid-template-columns:minmax(0,1fr) minmax(0,1.2fr); gap:48px; align-items:start; }
.waitlist-embed { min-width:0; }
.brevo-frame { display:block; width:100%; max-width:640px; height:1200px; border:0; margin:0 auto; }
.booking .form-fallback { text-align:center; font-size:13px; margin-top:16px; }
.form-fallback a { color:inherit; text-decoration:underline; }
.booking .waitlist-detail { font-size:14px; }
@media(max-width:800px) { .waitlist-inner { grid-template-columns:minmax(0,1fr); gap:32px; } }

/* Standalone waitlist: keep the final invitation compact. */
.waitlist-inner { grid-template-columns:minmax(0,1fr) auto; align-items:center; }
.waitlist-action { text-align:right; }
.booking .waitlist-link-note { font-size:12px; margin:14px 0 0; }
@media(max-width:800px) { .waitlist-inner { grid-template-columns:1fr; } .waitlist-action { text-align:left; } }

/* Language controls remain available when the main menu is hidden. */
.header-actions { justify-self:end; display:flex; flex-direction:column; align-items:flex-end; gap:12px; padding-block:14px; }
.language-switch { display:flex; gap:9px; align-items:center; font-size:12px; }
.language-switch a { text-decoration:none; padding-block:5px; }
.language-switch a[aria-current="page"] { text-decoration:underline; text-underline-offset:4px; }
.language-switch a:hover { text-decoration:underline; }
.language-switch a:focus-visible { outline:2px solid currentColor; outline-offset:4px; }
@media(max-width:1100px) { .header-inner { gap:20px; } nav { gap:16px; } }
@media(max-width:700px) { .header-inner { grid-template-columns:auto minmax(0,1fr); } .header-cta { text-align:right; letter-spacing:.06em; } .header-actions { gap:5px; } }
