:root{
  --navy:#14284B; --navy-2:#0E1D38; --ink:#14284B; --body:#4A5873; --mute:#8B97AE;
  --line:#DCE1EA; --soft:#F4F6F9; --gold:#AC2119; --gold-ink:#8E1B14; --accent-soft:#E07A73;
  --sans:'Manrope',system-ui,sans-serif; --serif:'Cormorant Garamond',Georgia,serif;
  --max:1360px; --gut:clamp(22px,5vw,72px); --ease:cubic-bezier(.16,1,.3,1);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:#fff;color:var(--ink);font-family:var(--sans);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,video{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
h1,h2,h3,.display{font-family:var(--serif);font-weight:500;letter-spacing:-.015em;margin:0;line-height:1.05}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gut)}
.h2{font-size:clamp(40px,5.2vw,72px);max-width:820px}
.lede{font-size:clamp(17px,1.35vw,20px);color:var(--body);max-width:520px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
:focus-visible{outline:2px solid var(--gold);outline-offset:4px}

/* preloader */
.pre{position:fixed;inset:0;z-index:100;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;overflow:hidden}
.pre__logo{width:min(44vw,300px);opacity:0;transform:scale(.9)}
.pre__num{position:absolute;left:var(--gut);bottom:38px;font:500 14px/1 var(--sans);letter-spacing:.2em;color:rgba(255,255,255,.7)}
.pre__bar{position:absolute;left:0;bottom:0;height:2px;width:100%;background:var(--gold);transform:scaleX(0);transform-origin:left}

/* nav */
.nav{position:fixed;top:0;left:0;right:0;z-index:60;transition:background .5s,box-shadow .5s,transform .6s var(--ease)}
.nav__in{max-width:var(--max);margin:0 auto;padding:0 var(--gut);height:96px;display:flex;align-items:center;justify-content:space-between;transition:height .4s}
.nav__logo img{height:66px;width:auto;transition:height .4s}
.nav__logo .l-w{display:none}
.nav__links{display:flex;align-items:center;gap:40px;font-size:15px;font-weight:600;letter-spacing:.01em}
.nav__links a:not(.btn){position:relative;padding:6px 0;transition:color .4s}
.nav__links a:not(.btn)::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease)}
.nav__links a:not(.btn):hover::after{transform:scaleX(1)}
.nav--dark{color:#fff}
.nav--dark .nav__logo .l-n{display:none}.nav--dark .nav__logo .l-w{display:block}
.nav--dark .btn--solid{background:#fff;color:var(--navy);border-color:#fff}
.nav--solid{background:rgba(255,255,255,.92);backdrop-filter:blur(12px);color:var(--ink);box-shadow:0 1px 0 var(--line)}
.nav--solid .nav__in{height:76px}.nav--solid .nav__logo img{height:52px}
.nav--solid .nav__logo .l-n{display:block}.nav--solid .nav__logo .l-w{display:none}
.nav--solid .btn--solid{background:var(--navy);color:#fff;border-color:var(--navy)}
.nav.is-hidden{transform:translateY(-100%)}

/* buttons */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;white-space:nowrap;padding:18px 32px;border:1px solid var(--navy);border-radius:2px;font:600 15px/1 var(--sans);letter-spacing:.02em;overflow:hidden;cursor:pointer;will-change:transform}
.btn span{position:relative;z-index:1}
.btn::before{content:"";position:absolute;inset:0;background:var(--gold);transform:translateY(101%);transition:transform .5s var(--ease)}
.btn:hover::before{transform:translateY(0)}
.btn--solid{background:var(--navy);color:#fff}
.btn--solid:hover{color:var(--navy)}
.btn--line{background:transparent;color:var(--ink)}
.btn--line:hover{color:var(--navy)}
.btn--ghost{border-color:rgba(255,255,255,.5);color:#fff}
.btn--ghost:hover{color:var(--navy)}
.btn--sm{padding:13px 24px}

/* section rhythm */
.sec{padding:clamp(90px,11vw,160px) 0}
.sec--tight{padding:clamp(60px,7vw,100px) 0}
.eyebrow{font:600 13px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--gold-ink)}

/* statement */
.statement{font-family:var(--serif);font-size:clamp(34px,4.6vw,66px);line-height:1.14;max-width:1120px;margin:0}
.statement .w{opacity:.14;display:inline-block;white-space:pre}

/* partner rows */
.partner{display:grid;grid-template-columns:5fr 7fr;gap:clamp(32px,6vw,96px);align-items:center}
.partner--flip .partner__media{order:2}
.partner__media{position:relative;aspect-ratio:4/5;overflow:hidden;border-radius:2px;background:var(--soft)}
.partner__media img{width:100%;height:100%;object-fit:cover;object-position:top}
.partner__media .mark{position:absolute;right:22px;bottom:18px;width:84px;opacity:.9}
.partner__name{font-size:clamp(44px,5vw,76px)}
.partner__role{margin:10px 0 0;font-weight:600;color:var(--gold-ink);letter-spacing:.04em}
.partner__bio{margin:28px 0 0;font-size:18px;color:var(--body);max-width:52ch}
.partner__contact{margin:34px 0 0;font-size:18px;line-height:2}
.partner__contact a:last-child{font-weight:700}
.band{background:var(--navy);color:#fff;position:relative;overflow:hidden}
.band__q{font-family:var(--serif);font-size:clamp(28px,3.4vw,46px);line-height:1.2;max-width:900px;margin:0}
.band__logo{position:absolute;right:-6%;top:50%;transform:translateY(-50%);width:min(44vw,520px);opacity:.08;pointer-events:none}

/* steps */
.steps{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(28px,4vw,64px);margin-top:84px;padding-top:48px}
.steps__rule{position:absolute;top:0;left:0;right:0;height:1px;background:var(--navy);transform-origin:left;transform:scaleX(0)}
.step{position:relative}
.step__node{position:absolute;top:-55px;left:0;width:14px;height:14px;border-radius:50%;border:1.5px solid var(--navy);background:#fff;transition:background .4s,border-color .4s}
.step.is-on .step__node{background:var(--gold);border-color:var(--gold)}
.step h3{font-size:clamp(28px,2.6vw,38px);margin-bottom:12px}
.step p{margin:0;color:var(--body);font-size:17px;max-width:40ch}

/* contact */
.contact{background:var(--soft)}
.contact__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,7vw,120px);align-items:start}
.contact__addr{font-style:normal;margin-top:40px;font-size:17px;line-height:1.9}
.contact__addr a{font-weight:700}
.form{display:grid;gap:22px}
.contact__cta{display:grid;gap:26px;align-content:start;padding:clamp(28px,4vw,44px);background:var(--soft);border-top:3px solid var(--gold)}
.contact__cta .lede{margin:0}.contact__cta p{margin:0}
.field label{display:block;font-size:14px;font-weight:700;margin-bottom:8px;letter-spacing:.02em}
.field input,.field textarea{width:100%;font:400 16px var(--sans);color:var(--ink);background:#fff;border:1px solid #8B97AE;border-radius:2px;padding:15px 16px;transition:border-color .25s}
.field input:hover,.field textarea:hover{border-color:var(--navy)}
.form .btn{justify-self:start}

/* footer */
.foot{position:relative;overflow:hidden;background:var(--navy);color:rgba(255,255,255,.72);font-size:15px}
.foot__mark{position:absolute;right:-4%;bottom:-12%;width:min(52vw,620px);opacity:.06;pointer-events:none;user-select:none}
.foot__in{position:relative;max-width:var(--max);margin:0 auto;padding:clamp(64px,8vw,110px) var(--gut) 36px}
.foot__top{display:grid;grid-template-columns:1.3fr 2fr;gap:clamp(40px,6vw,110px);align-items:start}
.foot__brand img{width:min(72vw,300px);height:auto}
.foot__brand p{margin:26px 0 0;max-width:34ch;line-height:1.7}
.foot__cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,3vw,48px)}
.foot__cols h4{font:600 13px/1 var(--sans);letter-spacing:.04em;color:var(--accent-soft);margin:0 0 20px}
.foot__cols a,.foot__cols address{display:block;color:rgba(255,255,255,.78);font-style:normal;line-height:1.5;margin-bottom:12px;transition:color .3s}
.foot__cols a:hover{color:#fff}
.foot__cols .foot__tel{margin-bottom:4px;font-weight:600;color:#fff}
.foot__rule{height:1px;background:linear-gradient(90deg,var(--accent-soft),rgba(224,122,115,.15));margin:clamp(48px,6vw,80px) 0 26px}
.foot__bot{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:13px;color:rgba(255,255,255,.55)}

/* inner pages */
.pagehero{position:relative;overflow:hidden;background:var(--navy);color:#fff;padding:clamp(150px,18vw,240px) 0 clamp(70px,9vw,130px)}
.pagehero__mark{position:absolute;right:-6%;top:50%;transform:translateY(-50%);width:min(46vw,560px);opacity:.07;pointer-events:none}
.pagehero__k{display:block;font:600 14px var(--sans);color:var(--gold);margin-bottom:22px}
.pagehero h1{font-size:clamp(42px,6vw,84px);line-height:1.04;font-weight:400;max-width:14ch}
.pagehero h1 em{font-style:italic}
.pagehero .lede{color:rgba(255,255,255,.78);margin-top:26px}
.pagehero__img{position:absolute;inset:0}
.pagehero__img img{width:100%;height:100%;object-fit:cover;opacity:.22;filter:saturate(.4)}
.pagehero__img::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--navy) 30%,rgba(20,40,75,.6))}
.pagehero .wrap{position:relative}
.svc{display:grid;grid-template-columns:5fr 7fr;gap:clamp(32px,6vw,96px);align-items:center;padding:clamp(70px,8vw,120px) 0;border-bottom:1px solid var(--line)}
.svc:last-child{border-bottom:0}
.svc--flip .svc__media{order:2}
.svc__media{position:relative;aspect-ratio:4/5;overflow:hidden;border-radius:2px;background:var(--soft)}
.svc__media img{width:100%;height:100%;object-fit:cover}
.svc__n{font-family:var(--serif);font-style:italic;font-size:22px;color:var(--gold-ink)}
.svc h2{font-size:clamp(34px,4vw,56px);margin-top:14px}
.svc p{color:var(--body);font-size:18px;max-width:50ch;margin:22px 0 0}
.bullets{list-style:none;margin:30px 0 0;padding:0;display:grid;gap:12px;max-width:52ch}
.bullets li{position:relative;padding-left:26px;font-size:17px;color:var(--ink)}
.bullets li::before{content:"";position:absolute;left:0;top:.75em;width:12px;height:1px;background:var(--gold)}
.svc .btn{margin-top:36px}
.cta{background:var(--soft)}
.cta__in{display:grid;grid-template-columns:1fr auto;gap:40px;align-items:center}
.cta__in .h2{font-size:clamp(32px,3.6vw,52px)}
.cta__in p{margin:16px 0 0;color:var(--body);font-size:18px;max-width:48ch}
.cta__btns{display:flex;gap:14px;flex-wrap:wrap}
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,2.5vw,36px);margin-top:clamp(48px,6vw,80px)}
.card{background:#fff;border:1px solid var(--line);border-radius:2px;padding:clamp(28px,3vw,44px)}
.card__n{font-family:var(--serif);font-style:italic;font-size:22px;color:var(--gold-ink)}
.card h3{font-size:clamp(24px,2.2vw,32px);margin-top:12px}
.card p{margin:16px 0 0;color:var(--body);font-size:16px}
.phases{display:grid;grid-template-columns:5fr 7fr;gap:clamp(32px,6vw,96px);align-items:start}
.phases__head{position:sticky;top:110px}
.phase{display:grid;grid-template-columns:120px 1fr;gap:28px;padding:34px 0;border-top:1px solid var(--line)}
.phase:last-child{border-bottom:1px solid var(--line)}
.phase__when{font:600 14px var(--sans);color:var(--gold-ink);padding-top:8px}
.phase h3{font-size:clamp(24px,2.2vw,32px)}
.phase p{margin:12px 0 0;color:var(--body);font-size:17px;max-width:48ch}
.bigsteps{display:grid;gap:0;margin-top:clamp(48px,6vw,80px);border-top:1px solid var(--navy)}
.bigstep{display:grid;grid-template-columns:140px 1fr 1.2fr;gap:clamp(24px,4vw,64px);padding:clamp(40px,5vw,64px) 0;border-bottom:1px solid var(--line);align-items:start}
.bigstep__n{font-family:var(--serif);font-size:clamp(48px,6vw,88px);line-height:1;color:var(--gold);font-weight:400}
.bigstep h2{font-size:clamp(34px,3.6vw,52px)}
.bigstep h2 small{display:block;font:500 15px var(--sans);color:var(--gold-ink);margin-top:12px;letter-spacing:.02em}
.bigstep p{margin:0;color:var(--body);font-size:18px;max-width:50ch}
.bigstep p+p{margin-top:16px}
.contact__people{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:40px}
.person{border-top:1px solid var(--navy);padding-top:18px}
.person h3{font-size:24px}
.person .role{margin:4px 0 12px;color:var(--gold-ink);font-weight:600;font-size:14px}
.person a{display:block;line-height:1.9}
.person a:last-child{font-weight:700}
.map{position:relative;height:clamp(320px,45vw,520px);background:var(--soft)}
.map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(1) contrast(1.05)}
.nav__right{display:flex;align-items:center}
.nav__burger{display:none;width:44px;height:44px;border:0;background:transparent;color:inherit;cursor:pointer;padding:10px;margin-left:12px}
.nav__burger span{display:block;height:1.5px;background:currentColor;margin:6px 0;transition:transform .35s,opacity .35s}
.nav.is-open .nav__burger span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
.nav.is-open .nav__burger span:nth-child(2){opacity:0}
.nav.is-open .nav__burger span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}
.nav__links a.is-current:not(.btn)::after{transform:scaleX(1);background:var(--gold)}

/* reveal helpers */
.clip{clip-path:inset(0 0 100% 0)}
[data-split] .line{display:block}
[data-split] .line-mask{padding:.06em 0 .18em;margin:-.06em 0 -.18em}

@media (max-width:900px){
  .nav__links a:not(.btn){display:none}
  .nav__in{height:76px}.nav__logo img{height:50px}
  .partner,.contact__grid{grid-template-columns:1fr}
  .partner--flip .partner__media{order:0}
  .steps{grid-template-columns:1fr;gap:44px;padding-top:0;padding-left:28px}
  .steps__rule{width:1px;height:100%;right:auto;transform-origin:top}
  .step__node{top:4px;left:-34px}
  .foot__top,.foot__cols,.svc,.phases,.cta__in,.cards,.contact__people{grid-template-columns:1fr}
  .foot__cols{gap:32px}
  .phases__head{position:static}
  .svc--flip .svc__media{order:0}
  .svc{padding:56px 0}
  .bigstep{grid-template-columns:1fr;gap:16px}
  .bigstep__n{font-size:44px}
  .phase{grid-template-columns:1fr;gap:8px}
  .pagehero h1{max-width:none}
  .nav__burger{display:block}
  .nav.is-open .nav__links a:not(.btn){display:block}
  .nav.is-open .nav__links{position:absolute;left:0;right:0;top:76px;background:#fff;color:var(--ink);flex-direction:column;align-items:flex-start;gap:4px;padding:18px var(--gut) 26px;box-shadow:0 12px 30px rgba(14,29,56,.12)}
  .nav.is-open .nav__links a{font-size:18px;padding:10px 0}
  .nav.is-open .nav__links .btn{margin-top:12px}
  .nav.is-open{background:#fff;color:var(--ink)}
  .nav.is-open .nav__logo .l-n{display:block}.nav.is-open .nav__logo .l-w{display:none}
  .nav.is-open .btn--solid{background:var(--navy);color:#fff;border-color:var(--navy)}
}
@media (prefers-reduced-motion:reduce){
  .pre{display:none}
  .statement .w{opacity:1}
  .clip{clip-path:none}
  .steps__rule{transform:none}
  .btn::before{display:none}
}
