:root { --paper:#f1e8df; --cream:#f8f3ed; --ink:#251e1a; --red:#a32226; --muted:#72665d; --line:#cfc1b5; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--cream); color:var(--ink); font-family:Arial,Helvetica,sans-serif; }
a { color:inherit; text-decoration:none; }
svg { width:1.2em; height:1.2em; fill:none; stroke:currentColor; stroke-width:1.4; }

.topline { height:32px; padding:0 3.2vw; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; border-bottom:1px solid var(--line); color:var(--muted); font-size:8px; letter-spacing:.16em; text-transform:uppercase; }
.topline p { margin:0; }
.topline a { justify-self:end; display:flex; align-items:center; gap:7px; }
.topline a svg { width:12px; }
header { height:96px; padding:0 3.2vw; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; border-bottom:1px solid var(--line); background:rgba(248,243,237,.96); position:relative; z-index:10; }
.menu { width:42px; height:42px; padding:0; display:flex; flex-direction:column; justify-content:center; gap:7px; border:0; background:transparent; cursor:pointer; }
.menu i { width:25px; height:1px; background:var(--ink); }
.menu i:last-child { width:16px; }
.wordmark { position:relative; font-family:Georgia,'Times New Roman',serif; font-size:38px; line-height:1; letter-spacing:-.06em; }
.wordmark em { color:var(--red); font-weight:400; }
.wordmark small { position:absolute; left:50%; top:45px; transform:translateX(-50%); font-family:Arial,sans-serif; font-size:7px; font-style:normal; letter-spacing:.32em; text-transform:uppercase; }
.header-cta { justify-self:end; display:flex; align-items:center; gap:16px; padding-bottom:8px; border-bottom:1px solid var(--ink); font-size:9px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
.header-cta svg { transition:transform .2s; }
.header-cta:hover svg { transform:translateX(4px); }

.hero { min-height:calc(100vh - 128px); display:grid; grid-template-columns:7vw minmax(440px,1.08fr) minmax(400px,.92fr) 52px; background:var(--paper); overflow:hidden; }
.issue { padding-top:13vh; display:flex; align-items:center; flex-direction:column; border-right:1px solid var(--line); color:var(--red); }
.issue span { writing-mode:vertical-rl; transform:rotate(180deg); font-size:7px; letter-spacing:.25em; text-transform:uppercase; }
.issue strong { margin-top:15px; font-family:Georgia,serif; font-size:18px; font-weight:400; }
.issue i { width:1px; height:100px; margin-top:25px; background:var(--red); }
.hero-copy { padding:12vh 4vw 7vh; display:flex; flex-direction:column; justify-content:center; position:relative; z-index:2; }
.kicker { margin:0 0 30px; color:var(--red); font-size:8px; font-weight:700; letter-spacing:.28em; text-transform:uppercase; }
h1,h2 { font-family:Georgia,'Times New Roman',serif; font-weight:400; letter-spacing:-.065em; }
h1 { margin:0; font-size:clamp(74px,8vw,132px); line-height:.78; white-space:nowrap; }
h1 em,h2 em { color:var(--red); font-weight:400; }
.hero-bottom { display:grid; grid-template-columns:minmax(210px,330px) 125px; gap:4vw; align-items:end; margin-top:9vh; }
.hero-bottom>p { margin:0; color:var(--muted); font-family:Georgia,serif; font-size:14px; line-height:1.75; }
.hero-bottom>a { width:120px; height:120px; padding:20px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; border-radius:50%; background:var(--red); color:white; text-align:center; font-size:10px; line-height:1.3; letter-spacing:.12em; text-transform:uppercase; transition:transform .25s; }
.hero-bottom>a:hover { transform:rotate(-4deg) scale(1.03); }
.hero-bottom>a svg { align-self:center; width:22px; height:22px; }
.hero-image { margin:0; position:relative; min-height:620px; background:#dbc9ba; overflow:hidden; }
.hero-image img { width:100%; height:100%; position:absolute; inset:0; object-fit:cover; object-position:center top; }
.hero-image::after { content:''; position:absolute; inset:0; border:18px solid rgba(248,243,237,.18); pointer-events:none; }
.hero-image figcaption { position:absolute; left:28px; right:28px; bottom:22px; z-index:2; display:flex; justify-content:space-between; color:white; font-size:7px; letter-spacing:.17em; text-transform:uppercase; }
.hero-image figcaption b { font-weight:400; }
.vertical-note { display:flex; align-items:center; justify-content:center; border-left:1px solid var(--line); writing-mode:vertical-rl; transform:rotate(180deg); color:var(--muted); font-size:7px; letter-spacing:.18em; text-transform:uppercase; }

.marquee { height:72px; padding:0 4vw; display:flex; align-items:center; justify-content:space-between; gap:25px; overflow:hidden; border-top:1px solid var(--ink); border-bottom:1px solid var(--ink); background:var(--red); color:white; white-space:nowrap; font-family:Georgia,serif; font-size:18px; font-style:italic; }
.marquee i { font-style:normal; font-size:9px; }

.treatments { padding:120px 6vw 130px; }
.section-label { display:flex; align-items:center; gap:18px; margin-bottom:75px; color:var(--red); }
.section-label span { display:grid; place-items:center; width:32px; height:32px; border:1px solid currentColor; border-radius:50%; font-family:Georgia,serif; font-size:11px; }
.section-label p { margin:0; font-size:8px; font-weight:700; letter-spacing:.22em; text-transform:uppercase; }
.treatments-intro { display:grid; grid-template-columns:.7fr 1.3fr; gap:6vw; align-items:start; }
.treatments-intro>p { max-width:300px; margin:9px 0 0; color:var(--muted); font-family:Georgia,serif; font-size:16px; line-height:1.7; }
.treatments-intro h2 { margin:0; font-size:clamp(52px,6vw,86px); line-height:.98; }
.treatment-list { margin-top:90px; border-top:1px solid var(--ink); }
.treatment-list article { min-height:138px; display:grid; grid-template-columns:90px 1fr 1.15fr 62px; gap:30px; align-items:center; border-bottom:1px solid var(--line); transition:padding .25s,background .25s; }
.treatment-list article:hover { padding:0 20px; background:var(--paper); }
.treatment-list article>span { color:var(--red); font-family:Georgia,serif; font-size:14px; }
.treatment-list h3 { margin:0; font-family:Georgia,serif; font-size:27px; font-weight:400; }
.treatment-list p { max-width:460px; margin:0; color:var(--muted); font-size:12px; line-height:1.7; }
.treatment-list a { width:48px; height:48px; display:grid; place-items:center; border:1px solid var(--ink); border-radius:50%; }
.treatment-list a:hover { background:var(--red); color:white; border-color:var(--red); }

.editorial { display:grid; grid-template-columns:45% 55%; background:#221b18; color:var(--cream); }
.editorial-photo { min-height:810px; position:relative; overflow:hidden; }
.editorial-photo img { width:100%; height:100%; position:absolute; inset:0; object-fit:cover; }
.editorial-photo::after { content:''; position:absolute; inset:0; background:linear-gradient(0deg,rgba(36,20,16,.24),transparent 55%); }
.editorial-photo>span { position:absolute; left:25px; bottom:32px; z-index:2; color:white; font-size:7px; letter-spacing:.22em; text-transform:uppercase; }
.editorial-copy { padding:95px 7vw 80px; }
.editorial .section-label { margin-bottom:55px; color:#d06a6d; }
.overline { margin:0 0 18px; color:#bcaea4; font-size:8px; letter-spacing:.21em; text-transform:uppercase; }
.editorial-copy h2 { margin:0; font-size:clamp(48px,5vw,74px); line-height:.98; }
.copy-columns { display:grid; grid-template-columns:1fr 1fr; gap:30px; margin-top:45px; }
.copy-columns p { margin:0; color:#bbaea5; font-size:12px; line-height:1.8; }
.editorial-copy blockquote { margin:50px 0 30px; padding:35px 0; border-top:1px solid #4b403a; border-bottom:1px solid #4b403a; font-family:Georgia,serif; font-size:25px; line-height:1.4; }
.editorial-copy blockquote em { color:#d06a6d; font-weight:400; }
.editorial-signature { font-family:'Brush Script MT',cursive; color:#e0cfc3; font-size:35px; }
.editorial-signature small { display:block; margin-top:5px; color:#8f8179; font-family:Arial,sans-serif; font-size:7px; letter-spacing:.15em; text-transform:uppercase; }

.method { display:grid; grid-template-columns:.8fr 1.2fr; min-height:720px; padding:120px 6vw; background:var(--paper); }
.method-heading { padding-right:7vw; }
.method-heading .section-label { margin-bottom:85px; }
.method-heading h2 { margin:0; font-size:clamp(52px,5.5vw,80px); line-height:.95; }
.method-heading>p { max-width:420px; margin-top:35px; color:var(--muted); font-family:Georgia,serif; font-size:15px; line-height:1.75; }
.method-steps { border-top:1px solid var(--ink); }
.method-steps article { min-height:170px; display:grid; grid-template-columns:60px 1fr 1.3fr; gap:25px; align-items:center; border-bottom:1px solid var(--line); }
.method-steps article>span { color:var(--red); font-family:Georgia,serif; font-style:italic; }
.method-steps h3 { margin:0; font-family:Georgia,serif; font-size:30px; font-weight:400; }
.method-steps p { margin:0; color:var(--muted); font-size:12px; line-height:1.7; }

.manifesto { min-height:680px; padding:90px 6vw; display:grid; grid-template-columns:70px 1fr 140px; align-items:center; background:var(--red); color:white; }
.manifesto-side { justify-self:start; writing-mode:vertical-rl; transform:rotate(180deg); font-size:7px; letter-spacing:.22em; text-transform:uppercase; }
.manifesto-copy { text-align:center; }
.manifesto-copy>p { margin:0 0 35px; font-size:8px; letter-spacing:.25em; text-transform:uppercase; }
.manifesto-copy h2 { margin:0; color:white; font-size:clamp(70px,9vw,142px); line-height:.8; }
.manifesto-copy a { width:max-content; margin:65px auto 0; padding-bottom:8px; display:flex; align-items:center; gap:20px; border-bottom:1px solid white; font-size:8px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; }
.manifesto-number { align-self:end; justify-self:end; font-family:Georgia,serif; font-size:90px; opacity:.2; }

.voices { padding:115px 10vw; background:var(--cream); }
.voices .section-label { justify-content:center; }
.voice-grid { max-width:1080px; margin:0 auto; display:grid; grid-template-columns:110px 1fr 190px; gap:40px; align-items:center; }
.quote-symbol { align-self:start; color:var(--red); font-family:Georgia,serif; font-size:130px; line-height:.75; }
.voice-grid blockquote { margin:0; font-family:Georgia,serif; font-size:clamp(30px,3.7vw,52px); line-height:1.3; letter-spacing:-.035em; }
.voice-author { display:flex; flex-direction:column; gap:8px; padding-left:25px; border-left:1px solid var(--line); }
.voice-author strong { font-family:Georgia,serif; font-size:15px; font-weight:400; }
.voice-author span { color:var(--muted); font-size:8px; letter-spacing:.1em; text-transform:uppercase; }
.voice-author i { margin-top:10px; color:var(--red); font-size:9px; font-style:normal; letter-spacing:.15em; }

.faq { padding:115px 7vw 130px; display:grid; grid-template-columns:.8fr 1.2fr; gap:8vw; background:#eaded3; }
.faq .section-label { margin-bottom:75px; }
.faq h2 { margin:0; font-size:clamp(58px,6vw,90px); line-height:.9; }
.faq-list { border-top:1px solid var(--ink); }
.faq-list details { border-bottom:1px solid var(--line); }
.faq-list summary { min-height:95px; display:grid; grid-template-columns:45px 1fr 30px; gap:15px; align-items:center; list-style:none; cursor:pointer; font-family:Georgia,serif; font-size:18px; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary span { color:var(--red); font-family:Arial,sans-serif; font-size:8px; }
.faq-list summary b { justify-self:end; color:var(--red); font-size:22px; font-weight:400; transition:transform .2s; }
.faq-list details[open] summary b { transform:rotate(45deg); }
.faq-list details>p { margin:0 45px 28px 60px; color:var(--muted); font-size:12px; line-height:1.75; }

.booking { display:grid; grid-template-columns:1.2fr .8fr; background:#231b18; color:white; }
.booking-main { padding:110px 8vw; border-right:1px solid #493b35; }
.booking-main>p { margin:0 0 25px; color:#c69792; font-size:8px; letter-spacing:.23em; text-transform:uppercase; }
.booking-main h2 { margin:0; font-size:clamp(68px,8vw,112px); line-height:.85; }
.booking-main h2 em { color:#d06a6d; }
.booking-main>a { width:max-content; margin-top:60px; padding:17px 23px; display:flex; align-items:center; gap:38px; border:1px solid #d06a6d; border-radius:100px; background:#a32226; color:white; font-size:11px; font-weight:700; letter-spacing:.13em; text-transform:uppercase; transition:background .2s,transform .2s; }
.booking-main>a:hover { background:#bb2d31; transform:translateY(-2px); }
.booking-info { padding:70px 6vw; display:flex; flex-direction:column; justify-content:center; }
.booking-info>div { padding:28px 0; border-bottom:1px solid #493b35; }
.booking-info>div:last-child { border-bottom:0; }
.booking-info span { color:#c69792; font-size:7px; letter-spacing:.2em; text-transform:uppercase; }
.booking-info p { margin:12px 0 0; color:#d8ccc5; font-family:Georgia,serif; font-size:15px; line-height:1.7; }

footer { min-height:150px; padding:30px 4vw; display:flex; align-items:center; justify-content:space-between; gap:30px; background:#171210; color:white; }
.footer-mark { position:relative; font-family:Georgia,serif; font-size:34px; letter-spacing:-.05em; }
.footer-mark em { color:#d06a6d; font-weight:400; }
.footer-mark small { display:block; margin-top:5px; font-family:Arial,sans-serif; font-size:6px; letter-spacing:.3em; text-transform:uppercase; }
footer>p { color:#746761; font-size:7px; letter-spacing:.08em; text-transform:uppercase; }
footer nav { display:flex; gap:25px; color:#aa9b93; font-size:8px; letter-spacing:.1em; text-transform:uppercase; }

.floating-cta { position:fixed; right:24px; bottom:24px; z-index:30; width:82px; height:82px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; border-radius:50%; background:var(--red); color:white; box-shadow:0 10px 35px rgba(83,22,22,.22); font-size:8px; letter-spacing:.15em; text-transform:uppercase; }
.floating-cta svg { width:18px; }

@media (max-width:950px) {
  .hero { grid-template-columns:55px 1fr 48%; } .hero-copy { padding:9vh 5vw; } .vertical-note { display:none; }
  h1 { font-size:clamp(63px,10vw,100px); } .hero-bottom { grid-template-columns:1fr; } .hero-bottom>a { width:100px; height:100px; }
  .treatments-intro { grid-template-columns:1fr; } .treatment-list article { grid-template-columns:55px 1fr 55px; padding:25px 0; }
  .treatment-list article p { grid-column:2/3; } .treatment-list article a { grid-column:3; grid-row:1/3; }
  .editorial { grid-template-columns:1fr; } .editorial-photo { min-height:650px; } .editorial-copy { padding:80px 7vw; }
  .method { grid-template-columns:1fr; gap:60px; } .method-heading .section-label { margin-bottom:50px; }
  .voice-grid { grid-template-columns:80px 1fr; } .voice-author { grid-column:2; }
  .faq { grid-template-columns:1fr; } .booking { grid-template-columns:1fr; } .booking-main { border-right:0; border-bottom:1px solid #493b35; }
}
@media (max-width:650px) {
  .topline { height:38px; grid-template-columns:1fr 1fr; padding:0 18px; font-size:11px; } .topline p { display:none; }
  header { height:80px; padding:0 18px; } .wordmark { font-size:30px; } .wordmark small { top:37px; font-size:9px; }
  .header-cta { width:44px; height:44px; justify-content:center; padding:0; border:0; border-radius:50%; background:var(--red); color:white; font-size:0; }
  .header-cta svg { width:21px; height:21px; flex:0 0 21px; }
  .hero { grid-template-columns:1fr; min-height:auto; } .issue,.vertical-note { display:none; }
  .hero-copy { padding:70px 22px 55px; } .kicker { font-size:12px; } h1 { font-size:64px; white-space:normal; }
  .hero-bottom { margin-top:44px; grid-template-columns:1fr; gap:26px; }
  .hero-bottom>p { font-size:17px; line-height:1.65; }
  .hero-bottom>a { width:100%; height:56px; padding:0 21px; flex-direction:row; align-items:center; justify-content:space-between; border-radius:100px; font-size:12px; }
  .hero-bottom>a:hover { transform:translateY(-2px); }
  .hero-bottom>a svg { align-self:auto; width:22px; height:22px; }
  .hero-image { min-height:520px; } .hero-image figcaption { font-size:11px; }
  .marquee { height:auto; min-height:96px; padding:18px 22px; display:grid; grid-template-columns:1fr 1fr; gap:14px 22px; white-space:normal; font-size:14px; line-height:1.25; }
  .marquee span { min-width:0; }
  .marquee i { display:none; }
  .treatments { padding:80px 22px; } .section-label { margin-bottom:50px; } .section-label span { width:38px; height:38px; font-size:12px; } .section-label p { font-size:11px; } .treatments-intro h2 { font-size:48px; }
  .treatment-list { margin-top:55px; } .treatment-list article { grid-template-columns:38px 1fr 44px; gap:12px; }
  .treatment-list article>span { font-size:12px; } .treatment-list h3 { font-size:22px; } .treatment-list p { font-size:15px; } .treatment-list a { width:44px; height:44px; }
  .editorial-photo { min-height:500px; } .editorial-photo>span { font-size:11px; } .editorial-copy { padding:70px 22px; } .overline { font-size:11px; } .copy-columns { grid-template-columns:1fr; } .copy-columns p { font-size:15px; } .editorial-copy h2 { font-size:46px; } .editorial-signature small { font-size:10px; }
  .method { padding:80px 22px; } .method-steps article { min-height:150px; grid-template-columns:38px 1fr; padding:25px 0; } .method-steps p { grid-column:2; font-size:15px; }
  .manifesto { min-height:560px; padding:70px 22px; grid-template-columns:1fr; } .manifesto-side,.manifesto-number { display:none; } .manifesto-copy>p { font-size:11px; } .manifesto-copy h2 { font-size:62px; } .manifesto-copy a { padding:15px 20px; border:1px solid white; border-radius:100px; font-size:11px; }
  .voices { padding:85px 22px; } .voice-grid { grid-template-columns:1fr; } .quote-symbol { font-size:90px; } .voice-author { grid-column:1; }
  .voice-author span { font-size:11px; } .voice-author i { font-size:12px; }
  .faq { padding:85px 22px; } .faq .section-label { margin-bottom:45px; } .faq h2 { font-size:58px; }
  .faq-list summary { grid-template-columns:32px 1fr 22px; font-size:17px; } .faq-list summary span { font-size:11px; } .faq-list details>p { margin-left:47px; font-size:15px; }
  .booking-main,.booking-info { padding:80px 22px; } .booking-main>p { font-size:11px; } .booking-main h2 { font-size:64px; }
  .booking-main>a { width:100%; min-height:56px; justify-content:space-between; gap:20px; margin-top:45px; padding:16px 20px; font-size:12px; }
  .booking-info span { font-size:11px; } .booking-info p { font-size:16px; }
  footer { align-items:flex-start; flex-direction:column; padding:50px 22px; } .footer-mark small { font-size:9px; } footer>p { font-size:11px; line-height:1.6; } footer nav { flex-wrap:wrap; font-size:12px; }
  .floating-cta { width:72px; height:72px; right:15px; bottom:15px; font-size:11px; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } * { transition:none!important; } }
