/* =========================================================
   Capital Projects Management SPC — design system
   ========================================================= */
:root{
  --navy-950:#07111F; --navy-900:#0B1728; --navy-850:#111827; --navy-800:#16223A;
  --gold:#C8A45D; --gold-light:#D6B66B; --platinum:#D9DCE1; --white:#FFFFFF;
  --text:#EEF0F3; --muted:#A7B0BD; --subtle:#7E8998;
  --line:rgba(217,220,225,.12); --line-strong:rgba(217,220,225,.22); --line-gold:rgba(200,164,93,.45);
  --sans:'IBM Plex Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;
  --serif:'IBM Plex Serif',Georgia,'Times New Roman',serif;
  --container:1320px; --gutter:clamp(20px,5vw,64px);
  --section:clamp(88px,11vw,168px);
  --header:84px;
  --ease:cubic-bezier(.22,.61,.36,1); --ease-out:cubic-bezier(.16,1,.3,1);
  --t-fast:300ms; --t-mid:500ms; --t-slow:700ms;
}
@media (min-width:2200px){ :root{ --container:1480px } html{ font-size:112.5% } }

*,*::before,*::after{ box-sizing:border-box }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; scroll-padding-top:var(--header) }
body{ margin:0; background:var(--navy-950); color:var(--text); font-family:var(--sans); font-size:1.0625rem; line-height:1.7; font-weight:400; -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; overflow-x:hidden; text-rendering:optimizeLegibility }
img,svg,picture{ display:block; max-width:100% }
img{ height:auto }
a{ color:inherit; text-decoration-thickness:1px; text-underline-offset:.2em }
button,input,select,textarea{ font:inherit; color:inherit }
:focus-visible{ outline:2px solid var(--gold-light); outline-offset:3px }
::selection{ background:var(--gold); color:var(--navy-950) }
.skip-link{ position:absolute; left:16px; top:-100px; z-index:200; background:var(--gold); color:var(--navy-950); padding:12px 18px; font-weight:600; text-decoration:none; transition:top var(--t-fast) var(--ease) }
.skip-link:focus{ top:16px }
.visually-hidden{ position:absolute!important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0 }

/* ---------- layout ---------- */
.container{ width:100%; max-width:calc(var(--container) + var(--gutter)*2); margin-inline:auto; padding-inline:var(--gutter) }
.section{ padding-block:var(--section); position:relative }
.section--tint{ background:var(--navy-900) }
.section--deep{ background:var(--navy-850) }
.section + .section--flush{ padding-top:0 }
.grid-12{ display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); column-gap:clamp(20px,2.4vw,40px) }

/* ---------- type ---------- */
h1,h2,h3,h4{ margin:0; font-weight:400; color:var(--white) }
.display{ font-family:var(--serif); font-weight:300; text-transform:uppercase; letter-spacing:.015em; line-height:1.04; font-size:clamp(2.35rem,6.2vw,5.9rem) }
.h2{ font-family:var(--serif); font-weight:300; text-transform:uppercase; letter-spacing:.02em; line-height:1.12; font-size:clamp(1.9rem,3.6vw,3.2rem); max-width:22ch }
.h3{ font-family:var(--sans); font-weight:600; text-transform:uppercase; letter-spacing:.1em; font-size:.95rem; line-height:1.45 }
.h4{ font-family:var(--serif); font-weight:300; text-transform:uppercase; letter-spacing:.03em; font-size:clamp(1.5rem,2.4vw,2.1rem); line-height:1.15 }
.lead{ font-size:clamp(1.12rem,1.5vw,1.3rem); line-height:1.65; font-weight:300; color:var(--platinum); max-width:58ch }
.slogan{ font-family:var(--serif); font-style:italic; font-weight:300; color:var(--gold-light); letter-spacing:.01em }
.prose p{ margin:0 0 1.2em; max-width:66ch; color:var(--muted) }
.prose p:last-child{ margin-bottom:0 }
.muted{ color:var(--muted) }
.label{ display:inline-flex; align-items:center; gap:14px; font-size:.76rem; font-weight:500; letter-spacing:.2em; text-transform:uppercase; color:var(--gold) }
.label::before{ content:""; width:36px; height:1px; background:currentColor }

/* gold rule that draws in */
.rule{ display:block; width:72px; height:1px; background:linear-gradient(90deg,var(--gold),var(--gold-light)); transform-origin:left; margin-bottom:28px }
.js .rule[data-reveal]{ transform:scaleX(0); opacity:1; transition:transform 900ms var(--ease-out) }
.js .rule[data-reveal].is-visible{ transform:scaleX(1) }

/* ---------- buttons ---------- */
.btn{ --b:var(--gold); display:inline-flex; align-items:center; justify-content:center; gap:12px; min-height:54px; padding:0 30px; border:1px solid var(--b); background:transparent; color:var(--white); font-size:.78rem; font-weight:500; letter-spacing:.18em; text-transform:uppercase; text-decoration:none; cursor:pointer; position:relative; overflow:hidden; transition:color var(--t-mid) var(--ease), border-color var(--t-mid) var(--ease), background-color var(--t-mid) var(--ease); isolation:isolate; white-space:nowrap }
.btn::after{ content:""; position:absolute; inset:0; background:var(--gold); transform:scaleX(0); transform-origin:right; transition:transform var(--t-mid) var(--ease-out); z-index:-1 }
.btn:hover::after,.btn:focus-visible::after{ transform:scaleX(1); transform-origin:left }
.btn:hover,.btn:focus-visible{ color:var(--navy-950) }
.btn--solid{ background:var(--gold); color:var(--navy-950) }
.btn--solid::after{ background:var(--gold-light) }
.btn--sm{ min-height:44px; padding:0 22px; font-size:.72rem }
.btn[disabled]{ opacity:.55; cursor:progress }
.btn-row{ display:flex; flex-wrap:wrap; gap:14px }
.text-link{ display:inline-flex; align-items:center; gap:10px; color:var(--gold-light); font-size:.8rem; font-weight:500; letter-spacing:.16em; text-transform:uppercase; text-decoration:none; padding-block:6px; background:linear-gradient(var(--gold),var(--gold)) left bottom/0 1px no-repeat; transition:background-size var(--t-mid) var(--ease-out) }
.text-link:hover,.text-link:focus-visible{ background-size:100% 1px }

/* ---------- header ---------- */
.site-header{ position:fixed; inset:0 0 auto; z-index:100; height:var(--header); transition:background-color var(--t-mid) var(--ease), backdrop-filter var(--t-mid) var(--ease), border-color var(--t-mid) var(--ease); border-bottom:1px solid transparent }
.site-header.is-scrolled{ background:rgba(7,17,31,.86); -webkit-backdrop-filter:blur(14px) saturate(1.2); backdrop-filter:blur(14px) saturate(1.2); border-bottom-color:var(--line) }
.site-header .container{ height:100%; display:flex; align-items:center; justify-content:space-between; gap:24px }
.brand{ display:inline-flex; align-items:center; gap:14px; text-decoration:none; color:var(--white); flex:none }
.brand svg{ width:38px; height:38px }
.brand__text{ display:flex; flex-direction:column; line-height:1 }
.brand__name{ font-weight:600; font-size:1.18rem; letter-spacing:.3em; margin-right:-.3em }
.brand__sub{ font-size:.54rem; font-weight:500; letter-spacing:.235em; color:var(--platinum); margin-top:6px; white-space:nowrap }
.nav{ display:flex; align-items:center; gap:clamp(18px,1.9vw,32px) }
.nav__list{ display:flex; gap:clamp(16px,1.7vw,30px); list-style:none; margin:0; padding:0 }
.nav__link{ position:relative; font-size:.8rem; font-weight:500; letter-spacing:.12em; text-transform:uppercase; text-decoration:none; color:var(--platinum); padding:8px 0; transition:color var(--t-fast) var(--ease) }
.nav__link::after{ content:""; position:absolute; left:0; right:0; bottom:0; height:1px; background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform var(--t-mid) var(--ease-out) }
.nav__link:hover,.nav__link[aria-current="page"]{ color:var(--white) }
.nav__link:hover::after,.nav__link[aria-current="page"]::after{ transform:scaleX(1) }
.nav-toggle{ display:none; width:48px; height:48px; border:1px solid var(--line-strong); background:transparent; cursor:pointer; position:relative }
.nav-toggle span{ position:absolute; left:13px; right:13px; height:1px; background:var(--white); transition:transform var(--t-mid) var(--ease), opacity var(--t-fast) }
.nav-toggle span:nth-child(1){ top:18px } .nav-toggle span:nth-child(2){ top:23px } .nav-toggle span:nth-child(3){ top:28px; left:21px }
.nav-toggle[aria-expanded="true"] span:nth-child(1){ transform:translateY(5px) rotate(45deg) }
.nav-toggle[aria-expanded="true"] span:nth-child(2){ opacity:0 }
.nav-toggle[aria-expanded="true"] span:nth-child(3){ left:13px; transform:translateY(-5px) rotate(-45deg) }

.mobile-nav{ position:fixed; inset:0; z-index:90; background:var(--navy-950); padding:calc(var(--header) + 24px) var(--gutter) 40px; display:flex; flex-direction:column; overflow-y:auto; visibility:hidden; opacity:0; transition:opacity var(--t-mid) var(--ease), visibility 0s linear var(--t-mid) }
.mobile-nav.is-open{ visibility:visible; opacity:1; transition:opacity var(--t-mid) var(--ease) }
.mobile-nav ul{ list-style:none; margin:0; padding:0; border-top:1px solid var(--line) }
.mobile-nav li{ border-bottom:1px solid var(--line); transform:translateY(12px); opacity:0; transition:transform var(--t-mid) var(--ease-out), opacity var(--t-mid) var(--ease) }
.mobile-nav.is-open li{ transform:none; opacity:1 }
.mobile-nav.is-open li:nth-child(2){ transition-delay:40ms } .mobile-nav.is-open li:nth-child(3){ transition-delay:80ms } .mobile-nav.is-open li:nth-child(4){ transition-delay:120ms } .mobile-nav.is-open li:nth-child(5){ transition-delay:160ms } .mobile-nav.is-open li:nth-child(6){ transition-delay:200ms } .mobile-nav.is-open li:nth-child(7){ transition-delay:240ms } .mobile-nav.is-open li:nth-child(8){ transition-delay:280ms }
.mobile-nav a{ display:flex; justify-content:space-between; align-items:center; padding:18px 0; font-family:var(--serif); font-weight:300; font-size:clamp(1.5rem,6vw,2rem); text-transform:uppercase; letter-spacing:.03em; text-decoration:none; color:var(--white) }
.mobile-nav a[aria-current="page"]{ color:var(--gold-light) }
.mobile-nav__foot{ margin-top:auto; padding-top:32px; display:grid; gap:18px }
.mobile-nav__foot a.mail{ font-family:var(--sans); font-size:.95rem; text-transform:none; letter-spacing:0; color:var(--platinum); padding:0 }
body.nav-open{ overflow:hidden }

@media (max-width:1199px){
  .nav__list,.nav .btn{ display:none }
  .nav-toggle{ display:block }
}

/* ---------- hero ---------- */
.hero{ position:relative; min-height:100vh; min-height:100svh; display:flex; align-items:flex-end; overflow:hidden; background:var(--navy-950) }
.hero__media{ position:absolute; inset:-6% 0 0; will-change:transform }
.hero__media picture,.hero__media img{ width:100%; height:100%; object-fit:cover; object-position:60% 70% }
.hero__media img{ animation:heroDrift 28s ease-in-out infinite alternate; transform-origin:65% 70% }
@keyframes heroDrift{ from{ transform:scale(1.04) translate3d(0,0,0) } to{ transform:scale(1.12) translate3d(-1.2%,-1%,0) } }
.hero::before{ content:""; position:absolute; inset:0; z-index:1; background:
  linear-gradient(180deg, rgba(7,17,31,.72) 0%, rgba(7,17,31,.1) 30%, rgba(7,17,31,.12) 58%, rgba(7,17,31,.92) 100%),
  linear-gradient(90deg, rgba(7,17,31,.86) 0%, rgba(7,17,31,.3) 50%, rgba(7,17,31,0) 100%) }
.hero__content{ position:relative; z-index:2; width:100%; padding-top:calc(var(--header) + 48px); padding-bottom:clamp(64px,10vh,120px) }
.hero__eyebrow{ margin-bottom:28px }
.hero .display .line{ display:block; overflow:hidden; padding-bottom:.04em }
.hero .display .line > span:not(.w){ display:block; animation:lineUp 1.1s var(--ease-out) both }
.hero .display .line:nth-child(2) > span:not(.w){ animation-delay:.12s }
@keyframes lineUp{ from{ transform:translateY(105%) } to{ transform:none } }
.hero__slogan{ display:flex; align-items:center; gap:20px; margin:30px 0 22px; font-size:clamp(1.25rem,2.2vw,1.9rem) }
.hero__slogan::before{ content:""; height:1px; width:clamp(48px,7vw,110px); background:linear-gradient(90deg,var(--gold),var(--gold-light)); transform-origin:left; animation:drawLine 1.2s var(--ease-out) .55s both }
@keyframes drawLine{ from{ transform:scaleX(0) } to{ transform:scaleX(1) } }
.hero__text{ max-width:52ch; color:var(--platinum); font-weight:300; font-size:clamp(1.02rem,1.35vw,1.2rem); margin:0 0 40px }
.fade-in{ animation:fadeUp .9s var(--ease-out) both }
.d1{ animation-delay:.35s } .d2{ animation-delay:.55s } .d3{ animation-delay:.75s } .d4{ animation-delay:.95s }
@keyframes fadeUp{ from{ opacity:0; transform:translateY(18px) } to{ opacity:1; transform:none } }
.hero__scroll{ position:absolute; z-index:2; right:var(--gutter); bottom:clamp(64px,10vh,120px); display:flex; flex-direction:column; align-items:center; gap:14px; font-size:.68rem; letter-spacing:.24em; text-transform:uppercase; color:var(--muted); writing-mode:vertical-rl; text-decoration:none }
.hero__scroll::after{ content:""; width:1px; height:72px; background:linear-gradient(var(--gold),transparent); animation:scrollCue 2.6s var(--ease) infinite }
@keyframes scrollCue{ 0%{ transform:scaleY(0); transform-origin:top } 50%{ transform:scaleY(1); transform-origin:top } 51%{ transform-origin:bottom } 100%{ transform:scaleY(0); transform-origin:bottom } }
@media (max-width:767px){ .hero__scroll{ display:none } }

/* inner page hero */
.page-hero{ position:relative; min-height:clamp(460px,68vh,760px); display:flex; align-items:flex-end; overflow:hidden; background:var(--navy-950) }
.page-hero .hero__media img{ animation-duration:34s }
.page-hero::before{ content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(180deg,rgba(7,17,31,.82) 0%,rgba(7,17,31,.45) 40%,rgba(7,17,31,.96) 100%), linear-gradient(90deg,rgba(7,17,31,.85),rgba(7,17,31,.2)) }
.page-hero__content{ position:relative; z-index:2; width:100%; padding-top:calc(var(--header) + 64px); padding-bottom:clamp(56px,8vw,96px) }
.page-hero .display{ font-size:clamp(2.1rem,5.2vw,4.8rem); max-width:18ch; animation:fadeUp .9s var(--ease-out) .1s both }
.page-hero .label{ margin-bottom:24px; animation:fadeUp .9s var(--ease-out) both }
.page-hero .lead{ margin-top:26px; animation:fadeUp .9s var(--ease-out) .25s both }
.breadcrumb{ list-style:none; display:flex; gap:10px; padding:0; margin:0 0 22px; font-size:.74rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); animation:fadeUp .9s var(--ease-out) both }
.breadcrumb a{ text-decoration:none; color:var(--platinum) }
.breadcrumb a:hover{ color:var(--gold-light) }
.breadcrumb li + li::before{ content:"/"; margin-right:10px; color:var(--subtle) }

/* ---------- reveal ---------- */
.js [data-reveal]{ opacity:0; transform:translateY(24px); transition:opacity var(--t-slow) var(--ease), transform var(--t-slow) var(--ease-out); transition-delay:var(--delay,0ms) }
.js [data-reveal].is-visible{ opacity:1; transform:none }

/* ---------- section head ---------- */
.section-head{ display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); column-gap:clamp(20px,2.4vw,40px); row-gap:28px; align-items:end; margin-bottom:clamp(48px,6vw,88px) }
.section-head__title{ grid-column:1 / span 7 }
.section-head__aside{ grid-column:8 / span 5 }
.section-head__aside p{ margin:0; color:var(--muted); max-width:48ch }
@media (max-width:899px){ .section-head__title,.section-head__aside{ grid-column:1 / -1 } }

/* ---------- intro split ---------- */
.split{ display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); column-gap:clamp(20px,2.4vw,40px); row-gap:56px; align-items:center }
.split__text{ grid-column:1 / span 5 }
.split__media{ grid-column:7 / span 6; position:relative }
.split--reverse .split__text{ grid-column:8 / span 5; grid-row:1 }
.split--reverse .split__media{ grid-column:1 / span 6; grid-row:1 }
.split__text .prose{ margin:28px 0 36px }
.frame{ position:relative; overflow:hidden; aspect-ratio:4/5 }
.frame picture{ position:absolute; inset:0; width:100%; height:100% }
.frame img{ width:100%; height:100%; object-fit:cover; transition:transform 1.2s var(--ease-out) }
.frame::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(7,17,31,0) 40%,rgba(7,17,31,.55)); pointer-events:none }
.frame-wrap{ position:relative }
.frame-wrap::before{ content:""; position:absolute; inset:24px -24px -24px 24px; border:1px solid var(--line-gold); pointer-events:none }
.frame-wrap:hover .frame img{ transform:scale(1.04) }
.frame--wide{ aspect-ratio:16/10 }
@media (max-width:899px){
  .split__text,.split__media,.split--reverse .split__text,.split--reverse .split__media{ grid-column:1 / -1; grid-row:auto }
  .frame-wrap::before{ inset:14px -10px -14px 10px }
}

/* ---------- capability cards ---------- */
.cards{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid var(--line); border-left:1px solid var(--line) }
.card{ position:relative; padding:clamp(32px,3.4vw,52px); border-right:1px solid var(--line); border-bottom:1px solid var(--line); min-height:340px; display:flex; flex-direction:column; transition:background-color var(--t-mid) var(--ease) }
.card::before{ content:""; position:absolute; inset:-1px; border:1px solid var(--gold); opacity:0; transition:opacity var(--t-mid) var(--ease); pointer-events:none; z-index:1 }
.card:hover{ background:rgba(22,34,58,.55) }
.card:hover::before,.card:focus-within::before{ opacity:1 }
.card__top{ display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:auto; padding-bottom:48px }
.card__icon{ width:44px; height:44px; color:var(--gold) }
.card__num{ font-family:var(--serif); font-weight:300; font-size:1rem; color:var(--subtle); letter-spacing:.08em; transition:color var(--t-mid) }
.card:hover .card__num{ color:var(--gold-light) }
.card .h3{ margin-bottom:14px }
.card p{ margin:0; color:var(--muted); font-size:1rem; line-height:1.65 }
.card a.stretched{ text-decoration:none }
.card a.stretched::after{ content:""; position:absolute; inset:0; z-index:2 }
@media (max-width:1023px){ .cards{ grid-template-columns:repeat(2,minmax(0,1fr)) } }
@media (max-width:639px){ .cards{ grid-template-columns:1fr } .card{ min-height:0 } .card__top{ padding-bottom:32px } }

/* ---------- sector tiles ---------- */
.sectors{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:clamp(12px,1.2vw,20px) }
.sector{ position:relative; overflow:hidden; aspect-ratio:3/4; background:var(--navy-900); isolation:isolate; text-decoration:none; color:var(--white) }
.sector picture,.sector img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform 1.1s var(--ease-out) }
.sector::before{ content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(180deg,rgba(7,17,31,.15) 0%,rgba(7,17,31,.35) 45%,rgba(7,17,31,.94) 100%); transition:background var(--t-mid) }
.sector::after{ content:""; position:absolute; inset:0; z-index:2; border:1px solid transparent; transition:border-color var(--t-mid) var(--ease) }
.sector:hover img{ transform:scale(1.07) }
.sector:hover::after,.sector:focus-visible::after{ border-color:var(--line-gold) }
.sector__body{ position:absolute; z-index:3; left:0; right:0; bottom:0; padding:clamp(20px,2vw,30px) }
.sector__body .h3{ font-size:.9rem }
.sector__body p{ margin:10px 0 0; font-size:.92rem; line-height:1.55; color:var(--platinum); max-height:0; opacity:0; overflow:hidden; transition:max-height var(--t-slow) var(--ease-out), opacity var(--t-mid) var(--ease) }
.sector:hover .sector__body p,.sector:focus-visible .sector__body p{ max-height:8em; opacity:1 }
.sector__bar{ display:block; width:32px; height:1px; background:var(--gold); margin-bottom:16px; transition:width var(--t-slow) var(--ease-out) }
.sector:hover .sector__bar{ width:64px }
.pos-left img{ object-position:25% 50% } .pos-right img{ object-position:75% 50% } .pos-center img{ object-position:50% 50% }
@media (max-width:1023px){ .sectors{ grid-template-columns:repeat(2,minmax(0,1fr)) } }
@media (max-width:479px){ .sectors{ grid-template-columns:1fr } .sector{ aspect-ratio:4/3 } .sector__body p{ max-height:none; opacity:1 } }
@media (hover:none){ .sector__body p{ max-height:none; opacity:1 } }
.note{ margin-top:28px; font-size:.9rem; color:var(--subtle) }

/* sectors page detail list */
.sector-list{ display:grid; gap:clamp(56px,7vw,112px) }
.sector-row{ display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); column-gap:clamp(20px,2.4vw,40px); row-gap:28px; align-items:center }
.sector-row .frame-wrap{ grid-column:1 / span 6 }
.sector-row .sector-row__text{ grid-column:8 / span 5 }
.sector-row:nth-child(even) .frame-wrap{ grid-column:7 / span 6; grid-row:1 }
.sector-row:nth-child(even) .sector-row__text{ grid-column:1 / span 5; grid-row:1 }
.sector-row .h4{ margin:0 0 18px }
.sector-row ul{ list-style:none; margin:24px 0 0; padding:0; border-top:1px solid var(--line) }
.sector-row li{ padding:12px 0; border-bottom:1px solid var(--line); color:var(--platinum); font-size:.98rem }
@media (max-width:899px){ .sector-row .frame-wrap,.sector-row .sector-row__text,.sector-row:nth-child(even) .frame-wrap,.sector-row:nth-child(even) .sector-row__text{ grid-column:1 / -1; grid-row:auto } }

/* ---------- pillars ---------- */
.pillars{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(20px,2.4vw,40px) }
.pillar{ position:relative; padding-top:34px }
.pillar::before{ content:""; position:absolute; top:0; left:0; right:0; height:1px; background:var(--line-strong) }
.pillar::after{ content:""; position:absolute; top:0; left:0; width:100%; height:1px; background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform 1.1s var(--ease-out); transition-delay:var(--delay,0ms) }
.pillar.is-visible::after,.no-js .pillar::after{ transform:scaleX(1) }
.pillar .h4{ margin-bottom:16px }
.pillar p{ margin:0; color:var(--muted); max-width:34ch }
@media (max-width:767px){ .pillars{ grid-template-columns:1fr; gap:44px } }

.invest{ display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); column-gap:clamp(20px,2.4vw,40px); row-gap:56px }
.invest__intro{ grid-column:1 / span 5 }
.invest__intro .lead{ margin:28px 0 40px }
.invest__pillars{ grid-column:7 / span 6; align-self:end }
.invest__pillars .pillars{ grid-template-columns:1fr; gap:40px }
@media (max-width:1023px){ .invest__intro,.invest__pillars{ grid-column:1 / -1 } .invest__pillars .pillars{ grid-template-columns:repeat(3,minmax(0,1fr)) } }
@media (max-width:767px){ .invest__pillars .pillars{ grid-template-columns:1fr } }

/* ---------- process ---------- */
.process{ position:relative; margin-top:clamp(40px,5vw,72px) }
.process__track{ position:absolute; left:0; right:0; top:0; height:1px; background:var(--line-strong) }
.process__fill{ position:absolute; inset:0; background:linear-gradient(90deg,var(--gold),var(--gold-light)); transform:scaleX(0); transform-origin:left; transition:transform 2.2s var(--ease-out) }
.process.is-visible .process__fill{ transform:scaleX(1) }
.process__list{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:clamp(12px,1.4vw,24px) }
.step{ position:relative; padding-top:40px }
.step::before{ content:""; position:absolute; top:-5px; left:0; width:11px; height:11px; background:var(--navy-900); border:1px solid var(--gold); transform:rotate(45deg) scale(.4); opacity:0; transition:transform var(--t-mid) var(--ease-out), opacity var(--t-mid), background-color var(--t-mid); transition-delay:var(--delay,0ms) }
.step:last-child::before{ background:var(--gold) }
.step__num{ font-family:var(--serif); font-weight:300; color:var(--gold-light); font-size:.95rem; letter-spacing:.08em }
.step__bar{ display:block; height:6px; background:rgba(217,220,225,.1); margin:16px 0 20px; position:relative; overflow:hidden }
.step__bar::after{ content:""; position:absolute; inset:0; background:var(--platinum); opacity:.8; transform:scaleX(0); transform-origin:left; transition:transform 900ms var(--ease-out); transition-delay:calc(var(--delay,0ms) + 150ms) }
.step:last-child .step__bar::after{ background:var(--gold) }
.step .h3{ font-size:.86rem; margin-bottom:10px }
.step p{ margin:0; font-size:.9rem; line-height:1.6; color:var(--muted) }
.step > *{ opacity:.25; transition:opacity var(--t-slow) var(--ease); transition-delay:var(--delay,0ms) }
.process.is-visible .step > *,.no-js .step > *{ opacity:1 }
.process.is-visible .step::before{ opacity:1; transform:rotate(45deg) scale(1) }
.process.is-visible .step__bar::after,.no-js .step__bar::after{ transform:scaleX(1) }
@media (max-width:1100px){
  .process__track{ top:0; bottom:0; left:5px; right:auto; width:1px; height:auto }
  .process__fill{ transform:scaleY(0); transform-origin:top }
  .process.is-visible .process__fill{ transform:scaleY(1) }
  .process__list{ grid-template-columns:1fr; gap:0 }
  .step{ padding:0 0 36px 44px }
  .step::before{ top:6px; left:0 }
  .step__bar{ max-width:220px; margin:10px 0 14px }
}

/* ---------- global map ---------- */
.global{ position:relative; overflow:hidden; background:var(--navy-850) }
.global__map{ position:absolute; inset:50% -10% auto 20%; transform:translateY(-50%); opacity:.28; pointer-events:none;
  -webkit-mask-image:linear-gradient(100deg, rgba(0,0,0,.35) 0%, #000 45%, rgba(0,0,0,.35) 60%);
  mask-image:linear-gradient(100deg, rgba(0,0,0,.35) 0%, #000 45%, rgba(0,0,0,.35) 60%);
  -webkit-mask-size:250% 100%; mask-size:250% 100%; animation:mapSweep 16s linear infinite }
.global__map img{ width:100%; height:auto }
@keyframes mapSweep{ from{ -webkit-mask-position:100% 0; mask-position:100% 0 } to{ -webkit-mask-position:-150% 0; mask-position:-150% 0 } }
.global__inner{ position:relative; z-index:1 }
.global .display{ font-size:clamp(2.2rem,5.4vw,5rem); max-width:14ch }
.global .lead{ margin-top:32px }
@media (max-width:767px){ .global__map{ inset:auto -40% 0 -10%; transform:none; opacity:.2 } }

/* ---------- principles ---------- */
.principles{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); border-top:1px solid var(--line) }
.principle{ padding:36px clamp(16px,1.6vw,28px) 8px 0; position:relative }
.principle + .principle{ padding-left:clamp(16px,1.6vw,28px); border-left:1px solid var(--line) }
.principle__mark{ width:9px; height:9px; background:var(--gold); transform:rotate(45deg); margin:0 0 26px 2px }
.principle .h3{ font-size:.86rem; margin-bottom:12px }
.principle p{ margin:0; color:var(--muted); font-size:.95rem; line-height:1.6 }
@media (max-width:1100px){ .principles{ grid-template-columns:repeat(2,minmax(0,1fr)) } .principle,.principle + .principle{ padding:32px 24px 32px 0; border-left:0; border-bottom:1px solid var(--line) } .principle:nth-child(even){ padding-left:24px; border-left:1px solid var(--line) } }
@media (max-width:599px){ .principles{ grid-template-columns:1fr } .principle:nth-child(even){ padding-left:0; border-left:0 } }

/* ---------- partners ---------- */
.partner-types{ list-style:none; margin:0; padding:0; border-top:1px solid var(--line) }
.partner-types li{ display:grid; grid-template-columns:minmax(0,1fr) auto; gap:20px; align-items:center; padding:20px 0; border-bottom:1px solid var(--line); font-family:var(--serif); font-weight:300; text-transform:uppercase; letter-spacing:.03em; font-size:clamp(1.1rem,1.6vw,1.45rem); color:var(--white); transition:padding var(--t-mid) var(--ease-out), color var(--t-mid) }
.partner-types li::after{ content:""; width:8px; height:8px; border:1px solid var(--gold); transform:rotate(45deg); transition:background-color var(--t-mid) }
.partner-types li:hover{ padding-left:14px; color:var(--gold-light) }
.partner-types li:hover::after{ background:var(--gold) }
.partner-types--detail li{ grid-template-columns:minmax(0,5fr) minmax(0,7fr); align-items:baseline; font-size:inherit; text-transform:none; letter-spacing:0; font-family:var(--sans) }
.partner-types--detail li::after{ display:none }
.partner-types--detail li:hover{ padding-left:0; color:inherit }
.partner-types--detail strong{ font-family:var(--serif); font-weight:300; text-transform:uppercase; letter-spacing:.03em; font-size:clamp(1.1rem,1.6vw,1.4rem); color:var(--white) }
.partner-types--detail span{ color:var(--muted) }
@media (max-width:767px){ .partner-types--detail li{ grid-template-columns:1fr; gap:6px } }

/* ---------- CTA band ---------- */
.cta{ position:relative; overflow:hidden; border-top:1px solid var(--line) }
.cta::before{ content:""; position:absolute; width:900px; height:900px; right:-300px; top:-400px; background:radial-gradient(closest-side, rgba(200,164,93,.14), transparent); pointer-events:none }
.cta__inner{ display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); column-gap:clamp(20px,2.4vw,40px); row-gap:36px; align-items:end; position:relative }
.cta__inner > div:first-child{ grid-column:1 / span 8 }
.cta__inner > div:last-child{ grid-column:9 / span 4; justify-self:end }
.cta .display{ font-size:clamp(2.1rem,4.8vw,4.4rem) }
.cta .lead{ margin-top:22px }
@media (max-width:899px){ .cta__inner > div:first-child,.cta__inner > div:last-child{ grid-column:1 / -1; justify-self:start } }

/* ---------- values / statements ---------- */
.statements{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(20px,2.4vw,40px) }
.statement{ border:1px solid var(--line); padding:clamp(32px,4vw,64px); position:relative }
.statement::before{ content:""; position:absolute; top:-1px; left:-1px; width:64px; height:1px; background:var(--gold) }
.statement .label{ margin-bottom:28px }
.statement p{ margin:0; font-family:var(--serif); font-weight:300; font-size:clamp(1.3rem,2.1vw,1.85rem); line-height:1.4; color:var(--white) }
@media (max-width:767px){ .statements{ grid-template-columns:1fr } }
.values{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid var(--line) }
.value{ padding:36px 28px 40px 0; border-bottom:1px solid var(--line) }
.value:not(:nth-child(3n+1)){ padding-left:28px; border-left:1px solid var(--line) }
.value .h4{ margin-bottom:12px; font-size:clamp(1.3rem,1.9vw,1.7rem) }
.value p{ margin:0; color:var(--muted) }
@media (max-width:899px){ .values{ grid-template-columns:repeat(2,minmax(0,1fr)) } .value,.value:not(:nth-child(3n+1)){ padding:32px 20px 32px 0; border-left:0 } .value:nth-child(even){ padding-left:20px; border-left:1px solid var(--line) } }
@media (max-width:559px){ .values{ grid-template-columns:1fr } .value:nth-child(even){ padding-left:0; border-left:0 } }

/* ---------- services detail ---------- */
.service{ display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); column-gap:clamp(20px,2.4vw,40px); row-gap:24px; padding-block:clamp(48px,6vw,88px); border-top:1px solid var(--line) }
.service:last-child{ border-bottom:1px solid var(--line) }
.service__num{ grid-column:1 / span 1; font-family:var(--serif); font-weight:300; color:var(--gold-light); font-size:1.1rem; padding-top:6px }
.service__head{ grid-column:2 / span 5 }
.service__head .card__icon{ margin-bottom:28px }
.service__head .h4{ margin-bottom:18px }
.service__head p{ margin:0; color:var(--muted); max-width:44ch }
.service__list{ grid-column:8 / span 5; list-style:none; margin:0; padding:0; align-self:start }
.service__list li{ display:flex; gap:16px; padding:14px 0; border-bottom:1px solid var(--line); color:var(--platinum) }
.service__list li:first-child{ border-top:1px solid var(--line) }
.service__list li::before{ content:""; flex:none; width:6px; height:6px; margin-top:.7em; background:var(--gold); transform:rotate(45deg) }
@media (max-width:899px){ .service__num{ grid-column:1 / -1 } .service__head,.service__list{ grid-column:1 / -1 } }

/* ---------- projects ---------- */
.toolbar{ display:flex; flex-wrap:wrap; gap:14px 24px; align-items:end; margin-bottom:48px; padding-bottom:28px; border-bottom:1px solid var(--line) }
.toolbar[hidden]{ display:none }
.toolbar .field{ min-width:220px; margin:0 }
.project-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(24px,3vw,48px) }
.project-grid:empty{ display:none }
.project{ border:1px solid var(--line); background:var(--navy-900); display:flex; flex-direction:column; transition:border-color var(--t-mid) }
.project:hover{ border-color:var(--line-gold) }
.project .frame{ aspect-ratio:16/10 }
.project:hover .frame img{ transform:scale(1.04) }
.project__body{ padding:clamp(24px,3vw,40px) }
.project__meta{ display:flex; flex-wrap:wrap; gap:8px 20px; margin:0 0 18px; font-size:.74rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-light) }
.project__meta dt{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0) }
.project__meta dd{ margin:0 }
.project .h4{ margin-bottom:14px }
.project p{ color:var(--muted); margin:0 0 12px }
.project__scope{ color:var(--platinum)!important; font-size:.95rem }
.status{ display:inline-flex; align-items:center; gap:8px }
.status::before{ content:""; width:6px; height:6px; background:currentColor; transform:rotate(45deg) }
.empty{ border:1px solid var(--line); padding:clamp(48px,8vw,120px) clamp(24px,6vw,96px); text-align:left; position:relative; overflow:hidden }
.empty::before{ content:""; position:absolute; top:-1px; left:-1px; width:96px; height:1px; background:var(--gold) }
.empty__mark{ width:56px; margin-bottom:36px; opacity:.9 }
.empty p.h4{ max-width:30ch; margin:0 0 20px; line-height:1.3 }
.empty .muted{ max-width:56ch; margin:0 0 36px }
@media (max-width:767px){ .project-grid{ grid-template-columns:1fr } }

/* ---------- leadership ---------- */
.leader{ display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); column-gap:clamp(20px,2.4vw,40px); row-gap:40px; align-items:start }
.leader__portrait{ grid-column:1 / span 5 }
.leader__body{ grid-column:7 / span 6; padding-top:clamp(0px,2vw,24px) }
.portrait{ aspect-ratio:4/5; background:linear-gradient(160deg,var(--navy-800),var(--navy-900) 55%,var(--navy-950)); border:1px solid var(--line); position:relative; display:grid; place-items:center; overflow:hidden }
.portrait::after{ content:""; position:absolute; inset:18px; border:1px solid rgba(200,164,93,.22); pointer-events:none }
.portrait__initials{ font-family:var(--serif); font-weight:300; font-size:clamp(4rem,9vw,7.5rem); letter-spacing:.08em; color:rgba(214,182,107,.55) }
.portrait img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover }
.leader__role{ font-size:.8rem; letter-spacing:.18em; text-transform:uppercase; color:var(--gold-light); margin:16px 0 36px }
.leader__bio{ border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:28px 0; margin-bottom:32px; color:var(--muted); font-style:italic }
.leader__contact dt{ font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; color:var(--subtle) }
.leader__contact dd{ margin:6px 0 0 }
.leader__contact a{ color:var(--white); text-decoration:none; background:linear-gradient(var(--gold),var(--gold)) left bottom/100% 1px no-repeat; padding-bottom:3px; word-break:break-word }
.leader__contact a:hover{ color:var(--gold-light) }
.leader-strip{ display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:clamp(20px,3vw,48px); align-items:center; border:1px solid var(--line); padding:clamp(24px,3vw,40px) }
.leader-strip .portrait{ width:clamp(88px,10vw,128px); aspect-ratio:1 }
.leader-strip .portrait::after{ inset:8px }
.leader-strip .portrait__initials{ font-size:clamp(1.8rem,3vw,2.4rem) }
.leader-strip .leader__role{ margin:10px 0 0 }
@media (max-width:899px){ .leader__portrait,.leader__body{ grid-column:1 / -1 } .leader__portrait{ max-width:440px } }
@media (max-width:639px){ .leader-strip{ grid-template-columns:auto minmax(0,1fr) } .leader-strip .text-link{ grid-column:1 / -1 } }

/* ---------- contact ---------- */
.contact{ display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); column-gap:clamp(20px,2.4vw,40px); row-gap:64px }
.contact__info{ grid-column:1 / span 4 }
.contact__form{ grid-column:6 / span 7 }
.contact-list{ margin:0; display:grid; gap:0; border-top:1px solid var(--line) }
.contact-list div{ padding:20px 0; border-bottom:1px solid var(--line) }
.contact-list dt{ font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; color:var(--subtle); margin-bottom:6px }
.contact-list dd{ margin:0 }
.contact-list a{ color:var(--white); text-decoration:none; word-break:break-word; transition:color var(--t-fast) }
.contact-list a:hover{ color:var(--gold-light) }
@media (max-width:1023px){ .contact__info,.contact__form{ grid-column:1 / -1 } }

.form{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px 24px }
.field{ display:flex; flex-direction:column; gap:10px; margin:0; min-width:0 }
.field--full{ grid-column:1 / -1 }
.field label,.field .field__label{ font-size:.74rem; font-weight:500; letter-spacing:.14em; text-transform:uppercase; color:var(--platinum) }
.req{ color:var(--gold-light) }
.input{ width:100%; min-width:0; max-width:100%; min-height:54px; padding:14px 16px; background:rgba(11,23,40,.7); border:1px solid var(--line-strong); border-radius:0; color:var(--white); font-size:1rem; transition:border-color var(--t-fast) var(--ease), background-color var(--t-fast) var(--ease); -webkit-appearance:none; appearance:none }
.input::placeholder{ color:var(--subtle) }
.input:hover{ border-color:rgba(217,220,225,.38) }
.input:focus{ outline:none; border-color:var(--gold); background:rgba(11,23,40,.95); box-shadow:0 0 0 1px var(--gold) }
textarea.input{ min-height:180px; resize:vertical; line-height:1.6 }
select.input{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23C8A45D' stroke-width='1.5'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 16px center; padding-right:44px }
select.input option{ background:var(--navy-900); color:var(--white) }
.input[aria-invalid="true"]{ border-color:#E58F7A }
.field__error{ font-size:.86rem; color:#F0A898; min-height:0 }
.field__error:empty{ display:none }
.check{ display:flex; gap:14px; align-items:flex-start; font-size:.95rem; color:var(--platinum); cursor:pointer }
.check input{ -webkit-appearance:none; appearance:none; flex:none; width:22px; height:22px; margin:2px 0 0; border:1px solid var(--line-strong); background:rgba(11,23,40,.7); display:grid; place-items:center; cursor:pointer; transition:border-color var(--t-fast), background-color var(--t-fast) }
.check input::after{ content:""; width:10px; height:10px; background:var(--gold); transform:rotate(45deg) scale(0); transition:transform var(--t-fast) var(--ease-out) }
.check input:checked{ border-color:var(--gold) }
.check input:checked::after{ transform:rotate(45deg) scale(1) }
.check input:focus-visible{ outline:2px solid var(--gold-light); outline-offset:2px }
.check a{ color:var(--gold-light) }
.hp{ position:absolute!important; left:-10000px!important; width:1px; height:1px; overflow:hidden }
.form__foot{ grid-column:1 / -1; display:flex; flex-wrap:wrap; gap:20px 32px; align-items:center; justify-content:space-between; padding-top:8px }
.form__status{ grid-column:1 / -1; padding:18px 20px; border:1px solid var(--line-strong); font-size:.98rem }
.form__status:empty{ display:none }
.form__status.is-success{ border-color:rgba(200,164,93,.6); background:rgba(200,164,93,.08); color:var(--white) }
.form__status.is-error{ border-color:rgba(229,143,122,.6); background:rgba(229,143,122,.08); color:#F6C9BE }
.form__small{ font-size:.85rem; color:var(--subtle); margin:0 }
@media (max-width:639px){ .form{ grid-template-columns:minmax(0,1fr) } .form__foot .btn{ width:100% } }

/* ---------- legal ---------- */
.legal{ max-width:78ch }
.legal h2{ font-family:var(--serif); font-weight:300; text-transform:uppercase; letter-spacing:.03em; font-size:clamp(1.25rem,2vw,1.6rem); margin:56px 0 16px; color:var(--white) }
.legal p,.legal li{ color:var(--muted) }
.legal ul{ padding-left:1.2em }
.legal li{ margin-bottom:.5em }
.legal strong{ color:var(--platinum); font-weight:500 }
.draft-notice{ border:1px solid rgba(200,164,93,.5); background:rgba(200,164,93,.08); padding:20px 24px; color:var(--platinum); margin-bottom:40px }
.draft-notice strong{ color:var(--gold-light) }
.placeholder{ color:var(--gold-light) }

/* ---------- 404 ---------- */
.error-page{ min-height:100vh; min-height:100svh; display:flex; align-items:center; position:relative; overflow:hidden }
.error-page .display{ font-size:clamp(2.2rem,6vw,5rem) }
.error-page .lead{ margin:24px 0 40px }
.error-code{ font-family:var(--serif); font-weight:300; color:var(--gold-light); letter-spacing:.2em; margin-bottom:24px }

/* ---------- footer ---------- */
.site-footer{ background:#050C17; border-top:1px solid var(--line); padding-top:clamp(64px,8vw,112px) }
.footer__top{ display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); column-gap:clamp(20px,2.4vw,40px); row-gap:48px; padding-bottom:clamp(48px,6vw,80px) }
.footer__brand{ grid-column:1 / span 5 }
.footer__brand .slogan{ font-size:1.35rem; margin:28px 0 8px }
.footer__brand .positioning{ font-size:.76rem; letter-spacing:.24em; text-transform:uppercase; color:var(--muted); margin:0 }
.footer__col{ grid-column:span 2 }
.footer__col--wide{ grid-column:span 3 }
.footer__title{ font-size:.72rem; font-weight:500; letter-spacing:.2em; text-transform:uppercase; color:var(--gold); margin:0 0 20px }
.footer__links{ list-style:none; margin:0; padding:0; display:grid; gap:10px }
.footer__links a{ color:var(--platinum); text-decoration:none; font-size:.95rem; transition:color var(--t-fast) }
.footer__links a:hover{ color:var(--gold-light) }
.footer__links a.mail{ word-break:break-word }
.footer__bottom{ border-top:1px solid var(--line); padding-block:28px; display:flex; flex-wrap:wrap; gap:12px 32px; justify-content:space-between; font-size:.85rem; color:var(--subtle) }
.footer__bottom ul{ list-style:none; display:flex; flex-wrap:wrap; gap:8px 24px; margin:0; padding:0 }
.footer__bottom a{ color:var(--muted); text-decoration:none }
.footer__bottom a:hover{ color:var(--gold-light) }
@media (max-width:1023px){ .footer__brand{ grid-column:1 / -1 } .footer__col,.footer__col--wide{ grid-column:span 4 } }
@media (max-width:639px){ .footer__col,.footer__col--wide{ grid-column:span 6 } .footer__col--wide{ grid-column:1 / -1 } }

/* ---------- utilities ---------- */
.mt-0{ margin-top:0 } .mb-lg{ margin-bottom:clamp(32px,4vw,56px) } .mt-lg{ margin-top:clamp(40px,5vw,72px) }
.center-row{ display:flex; justify-content:space-between; align-items:end; flex-wrap:wrap; gap:24px }
.disclaimer{ font-size:.88rem; color:var(--subtle); max-width:80ch; border-top:1px solid var(--line); padding-top:24px; margin-top:clamp(48px,6vw,80px) }

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto }
  *,*::before,*::after{ animation-duration:1ms!important; animation-iteration-count:1!important; transition-duration:1ms!important; transition-delay:0ms!important }
  .hero__media img,.page-hero .hero__media img{ animation:none!important; transform:none!important }
  .global__map{ animation:none!important; -webkit-mask-image:none; mask-image:none }
  .js [data-reveal]{ opacity:1; transform:none }
  .process .step > *{ opacity:1 }
  .process__fill,.step__bar::after,.pillar::after{ transform:none!important }
  .process .step::before{ opacity:1; transform:rotate(45deg) }
}

/* ---------- print ---------- */
@media print{
  .site-header,.mobile-nav,.hero__media,.page-hero .hero__media,.global__map,.hero__scroll{ display:none!important }
  body{ background:#fff; color:#000 } h1,h2,h3,h4,.lead,.display{ color:#000 }
  .hero,.page-hero{ min-height:0 }
}

/* ---------- additions ---------- */
.page-hero--plain{ min-height:0; border-bottom:1px solid var(--line) }
.page-hero--plain::before{ background:radial-gradient(60% 120% at 85% 0%, rgba(200,164,93,.10), transparent 60%) }
.page-hero--plain .page-hero__content{ padding-top:calc(var(--header) + 72px) }
.page-hero--plain .lead{ font-size:.95rem; color:var(--muted) }
.principles--4{ grid-template-columns:repeat(4,minmax(0,1fr)) }
@media (max-width:1100px){ .principles--4{ grid-template-columns:repeat(2,minmax(0,1fr)) } }
@media (max-width:599px){ .principles--4{ grid-template-columns:1fr } }
.section-head__aside .text-link{ margin-top:18px }
.error-page .rule{ margin-bottom:28px }
.line-block{ display:block }
.global .display{ max-width:none }
.cta::before{ background:radial-gradient(closest-side, rgba(200,164,93,.09), transparent) }

@media (max-width:479px){ .hero__eyebrow{ letter-spacing:.12em; gap:10px } .hero__eyebrow::before{ width:22px } }
