:root{
  --plum:#4F264A; --plum-mid:#6B3D65; --plum-light:#EDE0EB;
  --gold:#C49830; --gold-text:#9C7722;
  --ivory:#F6F3EF; --paper:#FBF9F6; --tint:#F0ECE6;
  --ink:#1E1A1D; --muted:#6E6468; --rule:rgba(79,38,74,.14);
  --serif:'Cormorant Garamond',Georgia,serif; --sans:'Instrument Sans',system-ui,sans-serif;
  --pad:clamp(24px,6vw,96px);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:auto}
body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-weight:400;font-size:17px;line-height:1.8;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:inherit}
h1,h2,h3{font-family:var(--serif);font-style:italic;font-weight:300;color:var(--plum);line-height:1.12;letter-spacing:-.005em}
p+p{margin-top:1.1em}

/* header */
.site-header{position:sticky;top:0;z-index:50;background:rgba(251,249,246,.94);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--rule);display:flex;align-items:center;justify-content:space-between;padding:0 var(--pad);height:76px}
.brand{display:flex;align-items:center;gap:14px;text-decoration:none}
.brand img{height:34px;width:auto}
.brand span{font-family:var(--sans);font-weight:500;font-size:12.5px;letter-spacing:.38em;text-transform:uppercase;color:var(--plum)}
nav ul{list-style:none;display:flex;gap:clamp(16px,2.2vw,34px)}
nav a{font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;color:var(--muted);padding:6px 0;border-bottom:1px solid transparent;transition:color .2s,border-color .2s;white-space:nowrap}
nav a:hover{color:var(--plum)}
nav a[aria-current]{color:var(--plum);border-color:var(--gold)}
.menu-btn{display:none;background:none;border:0;width:36px;height:36px;cursor:pointer;position:relative}
.menu-btn span{position:absolute;left:7px;right:7px;height:1px;background:var(--ink);transition:transform .25s}
.menu-btn span:first-child{top:14px}.menu-btn span:last-child{top:21px}
.open .menu-btn span:first-child{transform:translateY(3.5px) rotate(45deg)}
.open .menu-btn span:last-child{transform:translateY(-3.5px) rotate(-45deg)}

/* labels & buttons */
.label{display:block;font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold-text);margin-bottom:22px;font-weight:500}
.btn{display:inline-block;margin-top:28px;padding:15px 30px;background:var(--plum);color:#fff;border:1px solid var(--plum);text-decoration:none;font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;font-weight:500;transition:background .25s,color .25s;line-height:1.5}
.btn:hover{background:var(--plum-mid)}
.btn-light{background:var(--gold);border-color:var(--gold);color:var(--ink)}
.btn-light:hover{background:#d4ab4a}
.link{display:inline-block;margin-top:26px;font-size:12px;letter-spacing:.18em;text-transform:uppercase;text-decoration:none;font-weight:500;color:var(--plum);border-bottom:1px solid var(--gold);padding-bottom:4px}
.link::after,.more::after{content:" \2192";color:var(--gold)}
.small{font-size:14px;color:var(--muted);margin-top:14px;letter-spacing:.04em}

/* home hero */
.hero{display:grid;grid-template-columns:1.05fr 1fr;min-height:calc(100vh - 76px);background:var(--ivory)}
.hero-text{align-self:center;padding:80px var(--pad)}
.hero h1{font-size:clamp(44px,5.6vw,82px);margin-bottom:36px}
.hero-sub{font-size:clamp(17px,1.4vw,20px);color:var(--muted);max-width:30em}
.hero-img img,.phero-img img{width:100%;height:100%;object-fit:cover}

/* page hero */
.phero{display:grid;grid-template-columns:1.1fr 1fr;min-height:62vh;background:var(--ivory)}
.phero-text{align-self:center;padding:96px var(--pad)}
.phero h1{font-size:clamp(40px,4.8vw,70px);margin-bottom:28px;max-width:12em}
.lede{font-size:clamp(17px,1.4vw,20px);color:var(--muted);max-width:30em}
.phero-mark{display:flex;align-items:center;justify-content:center;padding:60px}
.about-hero{min-height:0}
.about-hero .phero-text{padding-top:72px;padding-bottom:72px}
.about-hero .phero-mark{padding:40px}
.about-hero .phero-mark img{width:min(220px,50%)}
.phero-mark img{width:min(300px,60%);opacity:.9}

/* blocks */
.block{padding:clamp(72px,10vw,130px) var(--pad)}
.tint{background:var(--tint)}
.prose{max-width:660px;margin:0 auto}
.prose h2,.where-head h2,.dims-head h2{font-size:clamp(34px,3.6vw,50px);margin-bottom:30px}
.prose p{color:#3A3236}
.big{font-family:var(--serif);font-style:italic;font-size:clamp(26px,2.6vw,34px);line-height:1.3;color:var(--plum)!important;margin:1.4em 0 .9em}
.prose .big:first-child{margin-top:0}
.pull{font-family:var(--sans);font-style:normal;font-weight:500;font-size:inherit;line-height:inherit;color:var(--plum)!important;margin:1.6em 0;padding-top:20px;position:relative}
.pull::before{content:"";position:absolute;left:0;top:0;width:40px;height:1px;background:var(--gold)}
.statement{background:var(--plum);color:#fff;text-align:center;padding:clamp(80px,12vw,150px) var(--pad)}
.statement p{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(34px,4.4vw,60px);line-height:1.15;max-width:16em;margin:0 auto}
.statement p::before{content:"";display:block;width:12px;height:12px;border-radius:50%;background:var(--gold);margin:0 auto 34px}
.small-st{background:var(--plum);color:#fff}
.small-st p{font-size:clamp(28px,3.4vw,44px)}

ul.dots{list-style:none;margin:1.2em 0 1.4em}
ul.dots li{position:relative;padding-left:26px;margin:.55em 0;color:#3A3236}
ul.dots li::before{content:"";position:absolute;left:2px;top:.72em;width:6px;height:6px;border-radius:50%;background:var(--gold)}

/* dimensions */
.dims-head,.where-head{max-width:1180px;margin:0 auto 56px}
.dims-head p,.where-head p{color:var(--muted);max-width:36em;font-size:18px}
.dims{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,3vw,48px);max-width:1180px;margin:0 auto}
.dims{position:relative}
.dims::before{content:"";position:absolute;left:0;right:0;top:6px;height:1px;background:linear-gradient(90deg,var(--gold),var(--plum))}
.dim{position:relative;padding-top:40px}
.dim::before{content:"";position:absolute;left:0;top:0;width:13px;height:13px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 6px var(--paper)}
.num{font-family:var(--serif);font-size:15px;color:var(--gold);letter-spacing:.2em}
.dim h3{font-family:var(--sans);font-style:normal;font-weight:500;font-size:14px;letter-spacing:.3em;text-transform:uppercase;margin:14px 0 18px}
.dim .em{font-family:var(--serif);font-style:italic;font-size:23px;line-height:1.3;color:var(--plum);margin-bottom:14px}
.dim p{color:#3A3236}
.dims-foot{margin-top:64px}
.dims-wrap{padding-bottom:clamp(56px,7vw,90px)}
.band{height:clamp(260px,42vw,520px);overflow:hidden}
.band img{width:100%;height:100%;object-fit:cover}

/* cards */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;max-width:1180px;margin:0 auto}
.cards.two{grid-template-columns:repeat(2,1fr)}
.card{background:var(--paper);padding:44px 38px;text-decoration:none;border:1px solid var(--rule);display:flex;flex-direction:column;transition:border-color .3s,transform .3s}
.tint .card{background:var(--paper)}
a.card:hover{border-color:var(--gold);transform:translateY(-3px)}
.card h3{font-size:clamp(24px,2vw,29px);margin-bottom:18px;line-height:1.2}
.card p{color:var(--muted);font-size:16px}
.card p+p{margin-top:.8em}
.card .btn{margin-top:auto}
.card .more{margin-top:auto}
.card>p:last-of-type{margin-bottom:28px}
.card .btn{align-self:flex-start}
.more{margin-top:28px;font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;font-weight:400}

/* faq */
details{border-top:1px solid var(--rule)}
details:last-of-type{border-bottom:1px solid var(--rule)}
summary{list-style:none;cursor:pointer;padding:24px 40px 24px 0;font-family:var(--serif);font-style:italic;color:var(--plum);font-size:24px;line-height:1.3;position:relative}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";position:absolute;right:4px;top:20px;font-family:var(--sans);font-weight:300;font-size:24px;color:var(--gold);transition:transform .25s}
details[open] summary::after{transform:rotate(45deg)}
details>div{padding:0 0 28px}

/* closing */
.closing{text-align:center;padding:clamp(80px,10vw,120px) var(--pad);background:var(--ivory);border-top:2px solid var(--gold)}
.closing-mark{width:64px;margin:0 auto 6px}

/* connect */
.connect{display:grid;grid-template-columns:1.1fr 1fr;min-height:calc(100vh - 76px);background:var(--ivory)}
.connect-text{align-self:center;padding:96px var(--pad)}
.connect h1{font-size:clamp(40px,4.8vw,70px);margin-bottom:32px;max-width:11em}
.connect-text p{color:#3A3236;max-width:32em}
.contact-list{margin-top:44px;display:grid;grid-template-columns:auto 1fr;gap:14px 32px;align-items:baseline}
.contact-list dt{font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);font-weight:400}
.contact-list dd a{font-family:var(--serif);font-size:26px;font-style:italic;color:var(--plum);text-decoration:none;border-bottom:1px solid var(--rule)}
.contact-list dd a:hover{border-color:var(--gold)}

/* footer */
.site-footer{border-top:1px solid rgba(255,255,255,.1);background:var(--plum);color:rgba(252,250,247,.75);padding:72px var(--pad) 36px;font-size:14px}
.f-top{display:flex;justify-content:space-between;gap:48px;flex-wrap:wrap;padding-bottom:48px;border-bottom:1px solid rgba(252,250,247,.12)}
.f-logo{width:120px}
.f-cols{display:flex;gap:72px;flex-wrap:wrap}
.f-nav{list-style:none;columns:2;column-gap:48px}
.f-nav li{margin-bottom:10px}
.site-footer a{text-decoration:none;color:rgba(252,250,247,.75);transition:color .2s}
.site-footer a:hover{color:#fff}
.f-contact{display:flex;flex-direction:column;gap:10px}
.f-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px;padding-top:28px;font-size:12px;letter-spacing:.12em;color:rgba(252,250,247,.5)}
.f-line{color:var(--gold);letter-spacing:.2em;text-transform:uppercase}

.pull.nr{padding-top:0}
.pull.nr::before{display:none}
.hero-sub.pull{font-size:clamp(17px,1.4vw,20px);line-height:1.7;margin:0 0 1.1em}
.page-h1{font-size:clamp(40px,4.4vw,60px);margin-bottom:10px}
.prose h3{font-size:26px;margin:1.8em 0 .5em}
.prose a{color:var(--plum)}
.f-bottom a{color:rgba(252,250,247,.75);text-decoration:underline;text-underline-offset:3px}
/* split editorial layout */
.split{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(40px,7vw,120px);max-width:1180px;margin:0 auto}
.split-h h2{font-size:clamp(32px,3.3vw,48px);line-height:1.12;position:sticky;top:120px}
.split-h .label{position:sticky;top:96px}
.split-b{max-width:640px}
.split-b p{color:#3A3236}
.split-b .big:first-child{margin-top:0}

/* tiles (replaces bullets) */
ol.tiles{list-style:none;display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin:1.6em 0 1.8em}
ol.tiles li{background:var(--paper);border:1px solid var(--rule);padding:22px 22px 24px;display:flex;flex-direction:column;gap:12px;font-size:15.5px;line-height:1.6;color:var(--ink);transition:border-color .25s}
ol.tiles li:hover{border-color:var(--gold)}
ol.tiles li:last-child:nth-child(odd){grid-column:1/-1}
.block:not(.tint) ol.tiles li{background:var(--ivory)}
.tnum{font-family:var(--serif);font-style:italic;font-size:22px;color:var(--gold);line-height:1}

/* steps (sequence) */
ol.steps{list-style:none;counter-reset:st;margin:1.8em 0;position:relative}
ol.steps::before{content:"";position:absolute;left:19px;top:20px;bottom:20px;width:1px;background:linear-gradient(var(--gold),var(--plum))}
ol.steps li{counter-increment:st;position:relative;padding:8px 0 22px 64px;min-height:40px;color:var(--ink)}
ol.steps li::before{content:counter(st);position:absolute;left:0;top:0;width:39px;height:39px;border-radius:50%;background:var(--plum);color:#fff;font-family:var(--serif);font-style:italic;font-size:20px;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 6px var(--tint)}

/* photo statement */
.statement.photo{position:relative;background-size:cover;background-position:center;isolation:isolate}
.statement.photo::after{content:"";position:absolute;inset:0;background:rgba(79,38,74,.78);z-index:-1}

/* reveal */
.reveal{opacity:0;transform:translateY(14px);transition:opacity .9s ease,transform .9s ease}
.reveal.in{opacity:1;transform:none}

/* responsive */
@media (max-width:1180px){
  .menu-btn{display:block}
  nav{position:absolute;top:76px;left:0;right:0;background:var(--paper);border-bottom:1px solid var(--rule);display:none}
  .open nav{display:block}
  nav ul{flex-direction:column;gap:0;padding:12px var(--pad) 24px}
  nav a{display:block;padding:14px 0;font-size:12.5px;border-bottom:1px solid var(--rule)}
  nav a[aria-current]{border-color:var(--rule);color:var(--plum)}
}
@media (max-width:860px){
  body{font-size:16.5px}
  .hero,.phero,.connect{grid-template-columns:1fr;min-height:0}
  .hero-img,.phero-img{order:-1;height:46vh}
  .hero-text,.phero-text,.connect-text{padding:56px var(--pad) 64px}
  .phero-mark{display:none}
  .dims,.cards,.cards.two,.split{grid-template-columns:1fr}
  .split{gap:20px}
  .split-h h2,.split-h .label{position:static}
  ol.tiles{grid-template-columns:1fr}
  .dims::before{display:none}
  .f-top{flex-direction:column}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}}

.about-hero + .block{padding-top:clamp(48px,6vw,80px)}
