:root{
  --bg:#f1f0f7;
  --bg-soft:#f7f5ef;
  --paper:#fbfaf6;
  --ink:#173c49;
  --ink-2:#345964;
  --blue:#16799b;
  --blue-dark:#0c5875;
  --line:rgba(23,60,73,.18);
  --white:#fff;
  --shadow:0 22px 70px rgba(25,43,50,.08);
  --serif: Georgia, 'Times New Roman', serif;
  --sans: Arial, Helvetica, sans-serif;
  --max:1440px;
  --gutter:clamp(22px,4.2vw,72px);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.5;overflow-x:hidden}
img{display:block;width:100%;height:100%;object-fit:cover}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
main{min-height:70vh}
.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}
.page-shell{width:min(var(--max),100%);margin-inline:auto;padding-inline:var(--gutter)}
.section-pad{padding-top:clamp(90px,10vw,165px);padding-bottom:clamp(90px,10vw,165px)}
.eyebrow,.kicker{font-size:11px;text-transform:uppercase;letter-spacing:.18em;font-weight:600}
.kicker{color:var(--blue);margin:0 0 28px}
.line-link{display:inline-block;margin-top:22px;border-bottom:1px solid currentColor;padding-bottom:4px;font-size:14px}
.text-arrow{font-family:var(--serif);font-size:clamp(21px,2.1vw,30px);border-bottom:1px solid var(--line);padding-bottom:10px;display:inline-flex;gap:18px;align-items:center}
.display-xl{font-family:var(--serif);font-weight:400;font-size:clamp(52px,7.2vw,112px);line-height:.94;letter-spacing:-.045em;margin:0}
.display-md{font-family:var(--serif);font-size:clamp(38px,5vw,72px);line-height:1.02;letter-spacing:-.035em}

.site-header{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--bg) 94%,transparent);backdrop-filter:blur(12px);transition:transform .45s ease,border-color .3s ease;border-bottom:1px solid transparent}
.site-header.scrolled{border-color:var(--line)}
.site-header.is-hidden{transform:translateY(-105%)}
.header-inner{height:82px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 var(--gutter);max-width:var(--max);margin:auto}
.desktop-nav{display:flex;gap:26px;align-items:center}
.nav-link{font-size:12px;position:relative}
.nav-link:after{content:"";position:absolute;left:0;bottom:-6px;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:.25s}
.nav-link:hover:after,.nav-link.is-active:after{transform:scaleX(1)}
.brand{font-family:var(--serif);font-size:21px;letter-spacing:.18em;color:var(--blue);justify-self:center}
.book-button{justify-self:end;background:var(--blue);color:#fff;padding:14px 20px;font-size:12px;transition:.25s}
.book-button:hover{background:var(--blue-dark)}
.menu-toggle{display:none;border:0;background:transparent;width:38px;padding:8px 0;justify-self:end}
.menu-toggle span:not(.sr-only){display:block;height:1px;background:var(--ink);margin:6px 0;transition:.25s}
.mobile-menu{display:none}

.home-hero{padding-top:clamp(64px,8vw,125px);padding-bottom:clamp(80px,10vw,150px)}
.hero-statement{font-family:var(--serif);font-weight:400;font-size:clamp(42px,4.9vw,78px);line-height:1.03;letter-spacing:-.035em;text-align:center;max-width:920px;margin:0 auto clamp(70px,8vw,126px);color:var(--blue)}
.hero-statement em,.subhero h1 em,.about-copy h1 em,.contact-copy h1 em,.booking-intro h1 em,.newsletter-panel h1 em{font-weight:400;font-style:italic}
.hero-collage{display:grid;grid-template-columns:1fr 1fr;min-height:720px;position:relative;gap:clamp(40px,9vw,150px);align-items:center}
.collage-card{display:flex;flex-direction:column;gap:22px}
.collage-left{align-self:start;width:min(100%,490px);padding-top:20px}
.collage-right{justify-self:end;width:min(100%,520px);align-self:end;padding-bottom:10px}
.media-frame{overflow:hidden;background:#dad8df;box-shadow:var(--shadow)}
.portrait-a{aspect-ratio:.72}
.portrait-b{aspect-ratio:.69}
.media-frame img{transition:transform .8s cubic-bezier(.2,.65,.2,1)}
.collage-card:hover img{transform:scale(1.025)}
.collage-link{font-family:var(--serif);font-size:clamp(30px,3vw,48px);line-height:1;display:flex;gap:14px;align-items:center;color:var(--blue)}
.collage-link.top{align-self:center}
.collage-link b{font-weight:400;transition:transform .25s}
.collage-card:hover .collage-link b{transform:translateX(7px)}

.statement-band{background:#e8e6ef;border-block:1px solid rgba(23,60,73,.08)}
.statement-grid{display:grid;grid-template-columns:.7fr 2.7fr;column-gap:8vw;row-gap:50px;align-items:start}
.statement-grid .display-xl{grid-column:2}
.statement-grid .text-arrow{grid-column:2;justify-self:start}

.split-editorial{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.72fr);gap:clamp(50px,8vw,120px);align-items:center}
.editorial-media{aspect-ratio:1.15;overflow:hidden}
.editorial-copy{max-width:530px}
.editorial-copy h2{font-family:var(--serif);font-size:clamp(45px,5.4vw,82px);line-height:.98;font-weight:400;letter-spacing:-.04em;margin:14px 0 30px}
.editorial-copy>p:not(.eyebrow){font-size:17px;line-height:1.7;color:var(--ink-2)}
.service-teasers{display:grid;grid-template-columns:repeat(3,1fr);padding-bottom:clamp(100px,12vw,180px)}
.service-teaser{padding:46px 30px 36px;border-top:1px solid var(--line);border-right:1px solid var(--line)}
.service-teaser:first-child{border-left:1px solid var(--line)}
.service-teaser span{font-size:11px;text-transform:uppercase;letter-spacing:.15em}
.service-teaser h3{font-family:var(--serif);font-size:clamp(30px,3vw,46px);font-weight:400;line-height:1.05;margin:32px 0 18px}
.service-teaser p{color:var(--ink-2);font-size:13px}
.service-teaser a{display:inline-block;margin-top:36px;font-size:13px;border-bottom:1px solid currentColor}
.home-cta{background:var(--blue);color:white}
.home-cta-inner{display:grid;grid-template-columns:.7fr 2.3fr;gap:30px 8vw;align-items:start}
.home-cta h2{font-family:var(--serif);font-size:clamp(50px,7.2vw,108px);line-height:.92;letter-spacing:-.045em;font-weight:400;margin:0;max-width:1100px}
.home-cta .eyebrow{margin-top:8px}
.big-outline{grid-column:2;display:flex;align-items:center;justify-content:space-between;border:1px solid currentColor;width:min(520px,100%);padding:18px 20px;font-size:13px;margin-top:22px;transition:.25s}
.big-outline:hover{background:#fff;color:var(--blue)}
.big-outline.dark:hover{background:var(--ink);color:#fff}

.subhero{padding-top:clamp(95px,11vw,170px);padding-bottom:clamp(80px,8vw,130px)}
.subhero h1{font-family:var(--serif);font-size:clamp(58px,8vw,124px);line-height:.91;font-weight:400;letter-spacing:-.05em;max-width:1120px;margin:0}
.services-group{padding-bottom:clamp(100px,11vw,165px)}
.section-title-row{display:grid;grid-template-columns:.8fr 1.2fr;gap:60px;border-top:1px solid var(--line);padding-top:35px;margin-bottom:70px}
.section-title-row h2{font-family:var(--serif);font-weight:400;font-size:clamp(44px,5vw,76px);margin:0}
.section-title-row p{max-width:530px;font-size:18px;color:var(--ink-2);margin:10px 0 0}
.treatment-row{display:grid;grid-template-columns:.92fr 1.08fr;min-height:490px;border-top:1px solid var(--line)}
.treatment-image{min-height:430px;overflow:hidden}
.treatment-copy{padding:50px clamp(30px,6vw,90px);display:flex;flex-direction:column;justify-content:space-between}
.treatment-copy h3{font-family:var(--serif);font-size:clamp(36px,4vw,62px);font-weight:400;line-height:1;margin:10px 0 14px}
.treatment-copy>p{max-width:600px;font-size:16px;line-height:1.7;color:var(--ink-2)}
.treatment-meta{font-size:13px!important;color:var(--blue)!important}

.about-intro{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(60px,8vw,130px);align-items:end}
.about-copy h1{font-family:var(--serif);font-weight:400;font-size:clamp(52px,6.9vw,106px);line-height:.93;letter-spacing:-.045em;margin:0}
.about-image{aspect-ratio:.84;overflow:hidden}
.quote-band{background:var(--bg-soft)}
.quote-wrap{max-width:1180px;text-align:center}
.quote-wrap p{font-family:var(--serif);font-size:clamp(42px,5.8vw,86px);line-height:1.02;letter-spacing:-.035em;margin:0 0 35px}
.quote-wrap span{font-size:12px;text-transform:uppercase;letter-spacing:.12em}
.values{display:grid;grid-template-columns:repeat(3,1fr);gap:0}
.values article{padding:42px 34px 0;border-top:1px solid var(--line);border-right:1px solid var(--line)}
.values article:first-child{border-left:1px solid var(--line)}
.values article>span{font-size:11px;letter-spacing:.16em}
.values h2{font-family:var(--serif);font-size:clamp(36px,3.4vw,54px);line-height:1.02;font-weight:400;margin:34px 0 24px}
.values p{color:var(--ink-2);line-height:1.7}
.full-bleed-image{height:min(72vw,900px);overflow:hidden}

.team-grid{display:grid;gap:clamp(90px,13vw,190px)}
.team-card{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(45px,8vw,120px);align-items:center}
.team-card.reverse{grid-template-columns:.95fr 1.05fr}
.team-card.reverse .team-photo{order:2}
.team-photo{aspect-ratio:.8;overflow:hidden}
.team-copy h2{font-family:var(--serif);font-size:clamp(52px,6vw,90px);font-weight:400;line-height:.95;letter-spacing:-.04em;margin:20px 0 30px}
.team-copy>p:not(.eyebrow):not(.small){font-size:18px;line-height:1.75;color:var(--ink-2);max-width:580px}
.team-copy .small{font-size:12px;text-transform:uppercase;letter-spacing:.09em;margin-top:30px;color:var(--blue)}

.contact-layout{display:grid;grid-template-columns:1.04fr .96fr;gap:clamp(50px,8vw,120px);align-items:center}
.contact-photo{aspect-ratio:.9;overflow:hidden}
.contact-copy h1{font-family:var(--serif);font-size:clamp(56px,7vw,108px);line-height:.92;font-weight:400;letter-spacing:-.045em;margin:0 0 60px}
.contact-list{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);margin-bottom:42px}
.contact-list div{padding:24px 20px 24px 0;border-bottom:1px solid var(--line)}
.contact-list span{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--blue)}
.contact-list p{margin:12px 0 0;font-family:var(--serif);font-size:20px}
.big-outline.dark{grid-column:auto;color:var(--ink)}
.contact-note{border-top:1px solid var(--line)}
.contact-note .display-md{max-width:1000px;margin:25px 0 0}

.booking{display:grid;grid-template-columns:1fr 1fr;gap:clamp(60px,9vw,140px);align-items:start}
.booking-intro{position:sticky;top:130px}
.booking-intro h1,.newsletter-panel h1{font-family:var(--serif);font-size:clamp(54px,6.2vw,96px);line-height:.94;font-weight:400;letter-spacing:-.045em;margin:0 0 35px}
.booking-intro>p:last-child,.newsletter-panel>p{font-size:16px;color:var(--ink-2);line-height:1.7;max-width:600px}
.booking-form,.newsletter-form{display:grid;gap:24px;border-top:1px solid var(--line);padding-top:35px}
.booking-form label,.newsletter-form label{display:grid;gap:9px;font-size:11px;text-transform:uppercase;letter-spacing:.11em}
input,select,textarea{width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;padding:13px 0;border-radius:0;outline:none;font-size:16px;text-transform:none;letter-spacing:0}
textarea{resize:vertical}
input:focus,select:focus,textarea:focus{border-color:var(--blue)}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.submit-button{border:1px solid var(--ink);background:transparent;padding:17px 18px;display:flex;justify-content:space-between;align-items:center;transition:.25s;margin-top:10px}
.submit-button:hover{background:var(--ink);color:white}
.form-status{min-height:24px;margin:0;color:var(--blue);font-size:13px}

.newsletter-page{display:grid;grid-template-columns:.92fr 1.08fr;gap:clamp(55px,8vw,120px);align-items:center}
.newsletter-media{aspect-ratio:.82;overflow:hidden}
.newsletter-panel{padding-right:min(4vw,60px)}
.newsletter-form{margin-top:50px}
.privacy{font-size:12px!important}

.not-found{min-height:66vh;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}
.not-found h1{font-family:var(--serif);font-size:clamp(60px,10vw,150px);line-height:.85;font-weight:400;max-width:1000px;margin:0 0 55px}

.site-footer{padding:70px var(--gutter) 24px;background:#dfe7e7;color:var(--ink)}
.footer-grid{max-width:var(--max);margin:auto;display:grid;grid-template-columns:1.4fr 1fr .8fr 1.1fr;gap:55px}
.footer-brand{font-family:var(--serif);font-size:28px;letter-spacing:.16em;color:var(--blue)}
.footer-grid p,.footer-grid a{font-size:13px}
.footer-grid>div{display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.footer-grid .eyebrow{font-size:10px;margin:0 0 10px}
.newsletter-link{font-family:var(--serif);font-size:23px!important;border-bottom:1px solid var(--line);padding-bottom:7px;width:100%;display:flex;justify-content:space-between}
.footer-base{max-width:var(--max);margin:60px auto 0;border-top:1px solid var(--line);padding-top:18px;display:flex;justify-content:space-between;font-size:10px;text-transform:uppercase;letter-spacing:.08em;gap:20px}

.reveal{opacity:0;transform:translateY(24px);transition:opacity .75s ease,transform .75s cubic-bezier(.2,.7,.2,1)}
.reveal.is-visible{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.reveal{opacity:1;transform:none;transition:none}.site-header,.media-frame img{transition:none}}

@media(max-width:980px){
  .desktop-nav,.desktop-book{display:none}.menu-toggle{display:block}.header-inner{grid-template-columns:1fr auto 1fr;height:72px}.header-inner:before{content:""}.brand{grid-column:2}.menu-toggle{grid-column:3}
  .mobile-menu{position:fixed;inset:72px 0 auto;background:var(--bg);padding:35px var(--gutter) 42px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:grid;gap:12px;transform:translateY(-130%);transition:.35s;pointer-events:none}
  .mobile-menu.is-open{transform:none;pointer-events:auto}.mobile-menu a{font-family:var(--serif);font-size:36px;line-height:1.1;padding:10px 0}.mobile-menu .mobile-book{margin-top:18px;font-family:var(--sans);font-size:13px;border:1px solid var(--ink);padding:16px}
  .hero-collage{min-height:auto;gap:65px}.collage-left,.collage-right{width:100%}
  .statement-grid{grid-template-columns:1fr}.statement-grid .display-xl,.statement-grid .text-arrow{grid-column:auto}.statement-grid .kicker{margin-bottom:0}
  .split-editorial{grid-template-columns:1fr}.editorial-copy{padding-left:8vw}.service-teasers{grid-template-columns:1fr}.service-teaser{border-left:1px solid var(--line);border-bottom:0}.home-cta-inner{grid-template-columns:1fr}.big-outline{grid-column:auto}.home-cta h2{max-width:900px}
  .about-intro,.team-card,.team-card.reverse,.contact-layout,.booking,.newsletter-page{grid-template-columns:1fr}.about-image{width:68%;justify-self:end}.team-card.reverse .team-photo{order:0}.team-photo{width:70%}.team-card.reverse .team-photo{justify-self:end}.contact-photo{width:75%}.booking-intro{position:static}.newsletter-media{width:75%}
  .values{grid-template-columns:1fr}.values article{border-left:1px solid var(--line);border-bottom:1px solid var(--line);padding-bottom:40px}.values article+article{border-top:0}
  .footer-grid{grid-template-columns:1fr 1fr}.footer-grid>div:first-child{grid-column:1/-1}
}

@media(max-width:680px){
  :root{--gutter:20px}.section-pad{padding-top:82px;padding-bottom:82px}
  .site-header{backdrop-filter:blur(7px)}
  .hero-statement{font-size:43px;margin-bottom:70px}.hero-collage{display:flex;flex-direction:column;gap:55px}.collage-left{width:78%;align-self:flex-start}.collage-right{width:83%;align-self:flex-end}.collage-link{font-size:30px}.collage-link.top{align-self:flex-start;order:2}.collage-right .media-frame{order:1}.collage-right{gap:16px}
  .display-xl{font-size:51px}.statement-grid{row-gap:30px}.text-arrow{font-size:20px}
  .editorial-copy{padding-left:0}.editorial-copy h2{font-size:50px}.service-teaser{padding:35px 20px}
  .home-cta h2{font-size:54px}.big-outline{margin-top:12px}
  .subhero{padding-top:82px;padding-bottom:74px}.subhero h1{font-size:60px}
  .section-title-row{grid-template-columns:1fr;gap:12px;margin-bottom:40px}.section-title-row p{font-size:15px}
  .treatment-row{grid-template-columns:1fr;min-height:auto}.treatment-image{min-height:0;aspect-ratio:1.08}.treatment-copy{padding:34px 10px 52px}.treatment-copy>p{font-size:15px}
  .about-intro{padding-top:92px}.about-copy h1{font-size:54px}.about-image,.team-photo,.contact-photo,.newsletter-media{width:100%}.quote-wrap p{font-size:43px}.full-bleed-image{height:78vh}
  .team-copy h2{font-size:57px}.team-copy>p:not(.eyebrow):not(.small){font-size:16px}.team-grid{gap:100px}
  .contact-copy h1{font-size:58px}.contact-list{grid-template-columns:1fr}.contact-list div{padding-right:0}.contact-list p{font-size:19px}.display-md{font-size:43px}
  .booking-intro h1,.newsletter-panel h1{font-size:56px}.two-col{grid-template-columns:1fr}.newsletter-panel{padding-right:0}
  .footer-grid{grid-template-columns:1fr}.footer-grid>div:first-child{grid-column:auto}.footer-base{flex-direction:column}.site-footer{padding-inline:20px}
}
