:root{
  --bone:#F5F4EF; --bone-2:#EEEDE6; --ink:#12100E; --ink-2:#2A2825;
  --mute:#6B6862; --mute-2:#9A968E; --hair:#DCDAD3; --gold:#C8A96A;
  --dsp:'Playfair Display',Georgia,serif; --ui:'DM Sans',system-ui,sans-serif;
  --cap:'Cinzel',Georgia,serif;
  --pad:clamp(22px,5vw,84px); --max:1440px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:var(--hdh,150px)}
body{margin:0;background:var(--bone);color:var(--ink-2);font-family:var(--ui);
     font-size:16px;line-height:1.62;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
p{margin:0 0 1.15em}
:focus-visible{outline:1px solid var(--ink);outline-offset:4px}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
.wrap{max-width:var(--max);margin:0 auto;padding-left:var(--pad);padding-right:var(--pad)}
section[id]{scroll-margin-top:var(--hdh,150px)}

/* type */
.d{font-family:var(--dsp);font-weight:400;color:var(--ink);margin:0;line-height:1.03;letter-spacing:-.012em}
.d i{font-style:italic}
.d--xl{font-size:clamp(42px,6.4vw,90px)}
.d--lg{font-size:clamp(34px,5vw,68px)}
.d--md{font-size:clamp(24px,2.6vw,36px);line-height:1.15}
.eyebrow{font-size:11px;font-weight:700;letter-spacing:.19em;text-transform:uppercase;color:var(--ink);margin:0 0 22px}
.num{font-family:var(--dsp);font-style:italic;font-size:clamp(19px,1.8vw,25px);color:var(--ink)}
.body{color:var(--mute);font-size:16px;max-width:52ch}
.small{font-size:14.5px;color:var(--mute);line-height:1.62}
.lede{font-size:clamp(17px,1.5vw,21px);color:var(--mute);max-width:54ch;line-height:1.6}

.btn{display:inline-flex;align-items:center;gap:14px;background:var(--ink);color:var(--bone);
     font-size:15px;font-weight:500;padding:19px 26px;transition:background .25s}
.btn:hover{background:#000}
.btn--out{background:transparent;color:var(--ink);border:1px solid var(--ink)}
.btn--out:hover{background:var(--ink);color:var(--bone)}
.lnk{display:inline-flex;align-items:center;gap:9px;font-size:15px;font-weight:500;color:var(--ink)}
.lnk::after{content:"↗";font-size:12px}

/* header */
.hd{position:sticky;top:0;z-index:60;background:#000;border-bottom:1px solid transparent;transition:border-color .3s}
.hd--min{border-bottom-color:rgba(255,255,255,.16)}
.hd__in{position:relative;display:flex;flex-direction:column;align-items:center;gap:18px;
        padding:24px var(--pad) 18px;transition:padding .35s cubic-bezier(.2,.7,.3,1)}
.hd--min .hd__in{padding-top:11px;padding-bottom:11px;gap:11px}
.hd__logo{width:clamp(206px,24vw,296px);transition:width .35s cubic-bezier(.2,.7,.3,1)}
@media(max-width:600px){.hd__logo{width:172px}.hd--min .hd__logo{width:124px}}
.hd--min .hd__logo{width:clamp(126px,14vw,162px)}
.hd nav{display:flex;align-items:center;justify-content:center;gap:clamp(13px,1.8vw,30px);flex-wrap:nowrap;white-space:nowrap}
.hd nav a{font-size:14px;color:#C9C6BE;padding-bottom:4px;border-bottom:1px solid transparent}
.hd nav a:hover,.hd nav a[aria-current]{color:#fff}
.hd nav a.cta{font-weight:500;color:#fff;border-bottom-color:var(--gold)}
.sheet{display:none}
.burger{display:none;position:absolute;top:50%;right:var(--pad);transform:translateY(-50%);
        background:none;border:0;cursor:pointer;font-size:12px;font-weight:700;
        letter-spacing:.18em;text-transform:uppercase;color:#fff;padding:8px 0}
@media(max-width:1000px){
  .hd nav{display:none}
  .burger{display:block}
  .sheet{position:fixed;inset:0;background:#000;z-index:90;padding:26px var(--pad);
         display:none;flex-direction:column;justify-content:center;overflow-y:auto}
  .sheet.on{display:flex}
  .sheet a{font-family:var(--cap);font-size:22px;letter-spacing:.08em;text-transform:uppercase;
           color:#fff;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.14)}
  .sheet__x{position:absolute;top:20px;right:var(--pad);background:none;border:0;cursor:pointer;
            font-size:12px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#fff}
}

/* logo */
.lg{display:block;height:auto;opacity:0;transition:opacity .4s ease}
.lg.ready{opacity:1}

/* sections */
.sx{padding:clamp(58px,8vw,130px) 0}
.sx--top{padding-top:clamp(44px,6vw,90px)}
.hr{height:1px;background:var(--hair);border:0;margin:0}

/* hero (home) */
.hero__g{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,80px);align-items:center}
@media(max-width:940px){.hero__g{grid-template-columns:1fr;gap:34px}}
.hero__r{position:relative}
.hero__ring{position:absolute;pointer-events:none;top:-56px;right:-28px;width:clamp(210px,25vw,320px);aspect-ratio:1;
            border:1px solid var(--hair);border-radius:50%;z-index:0}
@media(max-width:940px){.hero__ring{top:-38px;right:-6px;width:clamp(150px,44vw,208px)}}
.hero__img{position:relative;z-index:1;aspect-ratio:4/3.35;overflow:hidden;background:var(--bone-2)}
.hero__img img{width:100%;height:100%;object-fit:cover}
.hero__tag{position:absolute;left:0;bottom:-26px;z-index:2;background:var(--bone);
           display:flex;align-items:center;gap:16px;padding:16px 22px 16px 0}
.hero__tag .num{padding-left:22px}
.hero__tag span{font-size:11px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;
                color:var(--ink);line-height:1.45;max-width:17ch}

/* page hero (inner pages) */
.ph{padding:clamp(46px,6vw,96px) 0 clamp(34px,4vw,60px)}
.crumb{font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--mute-2);margin:0 0 22px}
.crumb a:hover{color:var(--ink)}
.ph__g{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.72fr);gap:clamp(26px,4vw,64px);align-items:end}
@media(max-width:940px){.ph__g{grid-template-columns:1fr;gap:20px}}

/* stat strip */
.stats{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}
@media(max-width:820px){.stats{grid-template-columns:repeat(2,1fr)}}
.stats div{padding:26px clamp(12px,1.6vw,22px);border-right:1px solid var(--hair);text-align:center}
.stats div:last-child{border-right:0}
@media(max-width:820px){.stats div:nth-child(2n){border-right:0}.stats div:nth-child(-n+2){border-bottom:1px solid var(--hair)}}
.stats b{display:block;font-family:var(--dsp);font-weight:400;font-size:clamp(24px,2.6vw,34px);color:var(--ink);margin-bottom:6px}
.stats span{font-size:11px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--mute)}

/* two-col grid of cards */
.g2{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--hair)}
@media(max-width:820px){.g2{grid-template-columns:1fr}}
.g2__i{padding:32px clamp(20px,3vw,44px) 38px 0;border-bottom:1px solid var(--hair);position:relative}
.g2__i:nth-child(odd){border-right:1px solid var(--hair);padding-right:clamp(24px,3.4vw,54px)}
.g2__i:nth-child(even){padding-left:clamp(24px,3.4vw,54px)}
@media(max-width:820px){.g2__i,.g2__i:nth-child(odd),.g2__i:nth-child(even){border-right:0;padding-left:0;padding-right:0}}
.g2__i h3{font-family:var(--dsp);font-weight:400;font-size:clamp(21px,2.1vw,29px);color:var(--ink);margin:26px 0 12px}
.g2__i p{margin:0;font-size:14.5px;color:var(--mute);max-width:44ch}
.g2__i .lnk{margin-top:16px}

/* three-col */
.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,3.4vw,54px);
    padding-top:34px;border-top:1px solid var(--hair)}
@media(max-width:820px){.g3{grid-template-columns:1fr;gap:30px}}
.g3__i{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:baseline}
.g3__i h3{font-family:var(--dsp);font-weight:400;font-size:clamp(19px,1.9vw,24px);color:var(--ink);margin:0 0 10px}
.g3__i p{margin:0;font-size:14.5px;color:var(--mute)}

/* rows */
.rows{border-top:1px solid var(--hair)}
.row{display:grid;grid-template-columns:64px minmax(0,1fr) minmax(0,.52fr);gap:clamp(18px,3vw,40px);
     padding:32px 0;border-bottom:1px solid var(--hair);align-items:start}
@media(max-width:820px){.row{grid-template-columns:52px minmax(0,1fr);gap:12px 18px}.row p{grid-column:2}}
.row h3{font-family:var(--dsp);font-weight:400;font-size:clamp(21px,2.2vw,30px);color:var(--ink);margin:0;line-height:1.2}
.row p{margin:0;font-size:14.5px;color:var(--mute)}

/* checklist */
.ticks{list-style:none;margin:30px 0 0;padding:0;columns:2;column-gap:clamp(26px,4vw,64px)}
@media(max-width:700px){.ticks{columns:1}}
.ticks li{break-inside:avoid;padding:11px 0 11px 26px;border-bottom:1px solid var(--hair);
          position:relative;font-size:14.5px;color:var(--mute)}
.ticks li::before{content:"—";position:absolute;left:0;color:var(--gold)}

/* image band */
.band{position:relative;overflow:hidden;background:var(--bone-2);aspect-ratio:16/7}
@media(max-width:820px){.band{aspect-ratio:4/3}}
.band img{width:100%;height:100%;object-fit:cover}
.band__cap{padding:12px var(--pad);font-size:9.5px;letter-spacing:.26em;text-transform:uppercase;
           color:var(--mute-2);border-bottom:1px solid var(--hair)}

/* faq */
.faq{border-top:1px solid var(--hair);margin-top:34px}
.faq details{border-bottom:1px solid var(--hair)}
.faq summary{cursor:pointer;list-style:none;padding:24px 40px 24px 0;position:relative;
             font-family:var(--dsp);font-size:clamp(18px,1.8vw,23px);color:var(--ink)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:6px;top:24px;font-family:var(--ui);
                    font-size:20px;color:var(--mute-2)}
.faq details[open] summary::after{content:"–"}
.faq p{margin:0 0 24px;font-size:15px;color:var(--mute);max-width:62ch}

/* links grid (areas / services) */
.grid-links{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));
            border-top:1px solid var(--hair);border-left:1px solid var(--hair)}
.grid-links a{padding:18px 20px;border-right:1px solid var(--hair);border-bottom:1px solid var(--hair);
              font-size:14.5px;color:var(--ink-2);transition:background .2s}
.grid-links a:hover{background:#fff;color:var(--ink)}

/* editorial sidebar grids (were inline, so never collapsed on phones) */
.sp{display:grid;grid-template-columns:minmax(0,.4fr) minmax(0,1fr);gap:clamp(28px,5vw,72px)}
.sp--n{grid-template-columns:minmax(0,.34fr) minmax(0,1fr);gap:clamp(24px,4vw,64px)}
.sp2{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.6fr);gap:clamp(24px,4vw,60px);align-items:end}
@media(max-width:860px){
  .sp,.sp--n,.sp2{grid-template-columns:1fr;gap:20px;align-items:start}
}

/* cta band */
section.cta{background:#000;color:#C9C6BE;padding:clamp(52px,7vw,104px) var(--pad);text-align:center}
section.cta h2{font-family:var(--dsp);font-weight:400;color:#fff;margin:0 auto 20px;
        font-size:clamp(30px,4vw,54px);line-height:1.08;max-width:18ch}
section.cta h2 i{font-style:italic}
section.cta p{margin:0 auto 32px;max-width:46ch;color:#9A968E}
.cta__b{display:flex;flex-wrap:wrap;gap:14px;justify-content:center}
section.cta .btn{background:var(--bone);color:var(--ink)}
section.cta .btn:hover{background:#fff}
section.cta .btn--out{background:transparent;color:#fff;border-color:rgba(255,255,255,.4)}
section.cta .btn--out:hover{background:#fff;color:var(--ink)}

/* form */
.ct{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(32px,6vw,96px)}
@media(max-width:940px){.ct{grid-template-columns:1fr;gap:36px}}
.ct__hr{margin:36px 0 22px;height:1px;background:var(--hair);max-width:420px}
.ct__pref{font-size:15px;font-weight:500;color:var(--ink);margin:0 0 10px}
.ct__mail{font-size:15px;color:var(--mute);border-bottom:1px solid var(--hair);padding-bottom:3px;display:inline-block;margin-bottom:10px}
.frm{display:grid;grid-template-columns:1fr 1fr;gap:26px 30px}
@media(max-width:640px){.frm{grid-template-columns:1fr}}
.f{display:flex;flex-direction:column}
.f--full{grid-column:1/-1}
.f label{font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);margin-bottom:12px}
.f input,.f textarea,.f select{font-family:var(--ui);font-size:15.5px;color:var(--ink);background:transparent;
  border:0;border-bottom:1px solid var(--hair);padding:8px 0 12px;border-radius:0}
.f input::placeholder,.f textarea::placeholder{color:var(--mute-2)}
.f input:focus,.f textarea:focus,.f select:focus{outline:none;border-bottom-color:var(--ink)}
.f textarea{min-height:96px;resize:vertical}
@media(max-width:860px){.f input,.f textarea,.f select{font-size:16px}}
.ct__note{grid-column:1/-1;font-size:13.5px;color:var(--mute);margin:0}
.sent{padding:30px 0;border-top:1px solid var(--hair)}
.sent h3{font-family:var(--dsp);font-weight:400;font-size:clamp(24px,2.6vw,34px);color:var(--ink);margin:0 0 12px}
.sent p{margin:0;color:var(--mute);max-width:44ch}

/* footer */
.ft{background:#000;color:#C9C6BE;padding:clamp(52px,7vw,96px) var(--pad) clamp(34px,4vw,54px)}
.ft__top{max-width:var(--max);margin:0 auto;text-align:center;padding-bottom:clamp(36px,4vw,56px);
         border-bottom:1px solid rgba(255,255,255,.14)}
.ft__logo{width:clamp(206px,26vw,300px);margin:0 auto 20px}
.ft__tag{font-size:14.5px;color:#8E8B84;margin:0;line-height:1.7}
.ft__tag a{color:#C9C6BE}
.ft__tag a:hover{color:#fff}
.ft__cols{max-width:var(--max);margin:clamp(34px,4vw,54px) auto 0;display:grid;
          grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:30px clamp(20px,3vw,44px)}
.ft__cols h4{font-size:10.5px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;
             color:#fff;margin:0 0 14px}
.ft__cols a{display:block;font-size:13.5px;color:#8E8B84;padding:4px 0}
.ft__cols a:hover{color:#fff}
.ft__legal{max-width:var(--max);margin:clamp(32px,4vw,50px) auto 0;padding-top:22px;
           border-top:1px solid rgba(255,255,255,.14);font-size:11.5px;color:#6E6B65;line-height:2;text-align:center}

.rv{opacity:0;transform:translateY(16px);transition:opacity .9s ease,transform .9s ease}
.rv.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .rv{opacity:1!important;transform:none!important;transition:none!important}
}
