:root {
  --navy-950: #101c31;
  --navy-900: #1f3864;
  --navy-800: #2f5496;
  --blue-600: #2e75b6;
  --blue-400: #62aaf9;
  --blue-100: #dcecff;
  --ink: #13223a;
  --muted: #5d6978;
  --mist: #eef2f6;
  --paper: #f7f8fa;
  --white: #ffffff;
  --line: rgba(31, 56, 100, 0.14);
  --line-dark: rgba(255, 255, 255, 0.14);
  --page-pad: clamp(1.25rem, 4vw, 3rem);
  --section-space: clamp(4.75rem, 8vw, 7rem);
  --header-height: 4rem;
  --content-width: 72rem;
  --display: "Geist", "Inter", Arial, sans-serif;
  --body: "Inter", Arial, sans-serif;
  --utility: "Geist Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  --ease: cubic-bezier(0.16, 1, 0.3, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { background: var(--white); color: var(--ink); font-family: var(--body); margin: 0; -webkit-font-smoothing: antialiased; }
body.menu-open { overflow: hidden; }
img, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, textarea { color: inherit; font: inherit; }
button { cursor: pointer; }
h1, h2, h3, p, figure, blockquote { margin: 0; }
ul, ol { margin: 0; }
:focus-visible { outline: 3px solid var(--blue-400); outline-offset: 4px; }

.skip-link { background: var(--white); border: 2px solid var(--navy-900); color: var(--navy-900); font-weight: 700; left: 1rem; padding: .8rem 1rem; position: fixed; top: 1rem; transform: translateY(-180%); z-index: 200; }
.skip-link:focus { transform: translateY(0); }
.shell { margin-inline: auto; max-width: var(--content-width); padding-left: var(--page-pad); padding-right: var(--page-pad); }
.page-summary { color: var(--muted); font-size: clamp(1rem, 1.4vw, 1.15rem); line-height: 1.7; }

/* Header */
.site-header { align-items: center; background: rgba(255,255,255,.9); border-bottom: 1px solid transparent; display: grid; grid-template-columns: 1fr auto 1fr; height: var(--header-height); left: 0; padding: 0 max(var(--page-pad),calc((100vw - var(--content-width)) / 2)); position: fixed; right: 0; top: 0; transition: background-color 220ms ease, border-color 220ms ease, color 220ms ease; width: 100%; z-index: 100; }
.site-header.is-at-top[data-hero-header="true"] { background: transparent; color: var(--white); }
.site-header:not(.is-at-top), .site-header[data-hero-header="false"] { backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); border-color: rgba(31,56,100,.1); color: var(--navy-900); }
.site-logo { align-items: center; display: inline-flex; justify-self: start; width: clamp(8.8rem,13vw,10.5rem); }
.site-logo img { height: auto; transition: filter 260ms ease; width: 100%; }
.site-header.is-at-top[data-hero-header="true"] .site-logo img { filter: brightness(0) invert(1); }
.desktop-nav { align-items: center; display: flex; gap: clamp(1.25rem,2.3vw,2rem); }
.desktop-nav a, .header-cta, .mobile-menu a { font-size: .8rem; font-weight: 600; }
.desktop-nav a { opacity: .84; position: relative; transition: opacity 180ms ease; }
.desktop-nav a::after { background: var(--blue-400); bottom: -.45rem; content: ""; height: 2px; left: 0; position: absolute; transform: scaleX(0); transform-origin: right; transition: transform 240ms var(--ease); width: 100%; }
.desktop-nav a:hover, .desktop-nav a:focus-visible, .desktop-nav a[aria-current="page"] { opacity: 1; }
.desktop-nav a:hover::after, .desktop-nav a:focus-visible::after, .desktop-nav a[aria-current="page"]::after { transform: scaleX(1); transform-origin: left; }
.header-cta { align-items: center; border: 1px solid currentColor; display: inline-flex; gap: .75rem; justify-self: end; padding: .62rem .85rem; transition: background 180ms ease, border-color 180ms ease, color 180ms ease; }
.site-header.is-at-top .header-cta:hover { background: var(--white); border-color: var(--white); color: var(--navy-900); }
.site-header:not(.is-at-top) .header-cta:hover { background: var(--navy-900); color: var(--white); }
.header-cta span, .text-link span, .button-link span, .submit-button span { display: inline-block; transition: transform 220ms var(--ease); }
.header-cta:hover span, .text-link:hover span, .button-link:hover span, .submit-button:hover span { transform: translateX(.3rem); }
.menu-toggle, .mobile-menu { display: none; }

/* Links and buttons */
.text-link, .button-link { align-items: center; display: inline-flex; font-size: .82rem; font-weight: 700; gap: .8rem; }
.text-link { border-bottom: 1px solid currentColor; padding-bottom: .35rem; }
.button-link { background: var(--white); border: 1px solid var(--white); color: var(--navy-900); padding: .9rem 1.15rem; transition: background 180ms ease, border-color 180ms ease, color 180ms ease, transform 180ms ease; }
.button-link:hover { background: var(--blue-400); border-color: var(--blue-400); transform: translateY(-2px); }
.button-link:active { transform: translateY(0); }
.button-link--ghost { background: transparent; border-color: rgba(255,255,255,.48); color: var(--white); }
.button-link--ghost:hover { background: rgba(255,255,255,.1); border-color: var(--white); color: var(--white); }

/* Home hero */
.hero { align-items: center; background-color: var(--navy-900); color: var(--white); display: flex; min-height: max(44rem,100svh); overflow: hidden; padding: calc(var(--header-height) + 3.25rem) var(--page-pad) 11.5rem; position: relative; }
.hero::before { background-image: url("/images/bg-hero.jpg"); background-position: center right; background-repeat: no-repeat; background-size: cover; content: ""; inset: -16% 0; position: absolute; transform: translate3d(0,var(--parallax-y,0),0) scale(1.04); will-change: transform; }
.hero::after { animation: grid-drift 16s linear infinite; background-image: linear-gradient(105deg,rgba(31,56,100,1) 0%,rgba(31,56,100,.95) 50%,rgba(24,42,74,.55) 75%,rgba(16,28,49,.1) 100%), radial-gradient(ellipse at 0% 55%,rgba(46,117,182,.18),transparent 62%), linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px), linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px); background-position: 0 0, 0 0, 0 0, 0 0; background-size: auto, auto, 44px 44px, 44px 44px; content: ""; inset: 0; position: absolute; }
@keyframes grid-drift { to { background-position: 0 0, 0 0, 44px 44px, 44px 44px; } }
.hero-inner { margin-inline: auto; max-width: var(--content-width); position: relative; width: 100%; z-index: 2; }
.hero h1 { font-family: var(--display); font-size: clamp(3rem,5.9vw,5.6rem); font-weight: 600; letter-spacing: -.045em; line-height: 1.02; max-width: 52rem; text-wrap: balance; }
.hero h1 span:nth-child(2) { color: var(--blue-400); }
.hero-aside { margin-top: 2rem; max-width: 39rem; }
.hero-aside p { color: rgba(255,255,255,.72); font-size: clamp(1rem,1.35vw,1.15rem); line-height: 1.7; }
.hero-actions { display: flex; flex-wrap: wrap; gap: .85rem; margin-top: 2.25rem; }
.hero-proof-rail { border-top: 1px solid rgba(255,255,255,.35); bottom: 3.35rem; display: grid; gap: 0; grid-template-columns: repeat(2,minmax(0,1fr)); left: var(--page-pad); margin-inline: auto; max-width: var(--content-width); padding: 1.45rem 0 1.4rem; position: absolute; right: var(--page-pad); text-align: center; z-index: 3; }
.hero-proof-rail > span { padding-inline: 1rem; }
.hero-proof-rail > span + span { border-left: 1px solid rgba(255,255,255,.25); }
.hero-proof-rail span { color: rgba(255,255,255,.78); font-size: .69rem; letter-spacing: .05em; line-height: 1.5; text-transform: uppercase; }
.hero-proof-rail strong { color: #83c0ff; display: block; font-family: var(--display); font-size: 1.55rem; font-weight: 650; letter-spacing: -.02em; margin-bottom: .25rem; text-transform: none; }
.hero-scroll { align-items: center; bottom: 1rem; display: flex; font-family: var(--utility); font-size: .6rem; gap: .7rem; left: 50%; letter-spacing: .08em; position: absolute; text-transform: uppercase; transform: translateX(-50%); z-index: 4; }
.hero-scroll span:last-child { animation: float-arrow 1.7s ease-in-out infinite; color: var(--blue-400); font-size: .9rem; }
@keyframes float-arrow { 0%,100% { transform: translateY(0); } 50% { transform: translateY(.35rem); } }

/* Hero and page-hero entrances: gated behind .motion-ready so content is fully
   visible whenever JavaScript does not run. */
@keyframes rise-in { from { filter: blur(6px); opacity: 0; transform: translateY(18px); } to { filter: none; opacity: 1; transform: none; } }
@keyframes fade-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes bar-in { from { transform: scaleX(0); } to { transform: scaleX(1); } }
.motion-ready .hero h1 { animation: rise-in 1s var(--ease) .12s both; }
.motion-ready .hero-aside { animation: rise-in .9s var(--ease) .28s both; }
.motion-ready .hero-proof-rail { animation: rise-in .9s var(--ease) .44s both; }
.motion-ready .hero-scroll { animation: fade-in .9s ease .62s both; }
.motion-ready .page-hero-content { animation: rise-in .9s var(--ease) .1s both; }

/* Home sections */
.perspective { padding-bottom: var(--section-space); padding-top: var(--section-space); }
.perspective h2, .editorial-heading, .section-heading h2, .why-content h2, .contact-section-title { font-family: var(--display); font-size: clamp(2rem,3.3vw,3.15rem); font-weight: 600; letter-spacing: -.035em; line-height: 1.1; text-wrap: balance; }
.perspective h2 { font-size: clamp(2.15rem,3.8vw,4rem); font-weight: 500; letter-spacing: -.045em; line-height: 1.04; margin-inline: auto; max-width: 50rem; text-align: center; }
.perspective h2 strong { color: var(--blue-600); font-weight: inherit; }
.home-outcomes { display: grid; gap: clamp(1.5rem,3vw,3rem); grid-template-columns: repeat(3,minmax(0,1fr)); margin-top: clamp(2.5rem,5vw,4rem); }
.home-outcomes article { border-top: 1px solid var(--line); padding-top: 1.25rem; }
.home-outcomes h3 { font-family: var(--display); font-size: clamp(1.2rem,1.6vw,1.45rem); font-weight: 600; letter-spacing: -.025em; line-height: 1.2; margin-bottom: .85rem; }
.home-outcomes p { color: var(--muted); font-size: .9rem; line-height: 1.65; }
.solutions-section { max-width: 85rem; padding-bottom: var(--section-space); padding-left: 0; padding-right: 0; width: calc(100% - var(--page-pad) * 2); }
.section-heading { align-items: end; border-top: 1px solid var(--line); display: grid; gap: 2rem; grid-template-columns: 1fr 3fr; padding: 1rem 0 clamp(3.5rem,6vw,6rem); }
.section-heading h2 { grid-column: 2; max-width: 42rem; }
.solution-grid { display: grid; gap: 0 clamp(2rem,4vw,4rem); grid-template-columns: repeat(2,minmax(0,1fr)); }
.solution-card { align-items: start; border-top: 1px solid var(--line); display: grid; gap: clamp(1.25rem,2.4vw,2rem); grid-template-columns: clamp(112px,12vw,164px) minmax(0,1fr); padding: 1.4rem 0 clamp(3.5rem,6vw,5.5rem); }
.solution-visual { align-items: center; aspect-ratio: 1; background: var(--navy-900); display: flex; justify-content: center; overflow: hidden; position: relative; transition: transform 500ms var(--ease); width: 100%; }
.solution-visual::before { content: none; }
.solution-card:hover .solution-visual { transform: rotate(-1.5deg) scale(.97); }
.solution-visual > * { transition: transform 700ms var(--ease); }
.solution-card:nth-child(2) .solution-visual { background: var(--paper); }
.solution-card:nth-child(3) .solution-visual { background: var(--blue-400); }
.solution-card:nth-child(4) .solution-visual { background: var(--navy-950); }
.solution-meta { display: grid; gap: .9rem; }
.solution-meta h3 { font-family: var(--display); font-size: clamp(1.35rem,2vw,1.9rem); font-weight: 520; letter-spacing: -.035em; line-height: 1.08; }
.solution-meta p { color: var(--muted); font-size: .86rem; line-height: 1.58; }
.solution-details { border-top: 1px solid var(--line); display: grid; gap: .55rem; list-style: none; margin: .4rem 0 0; padding: .9rem 0 0; }
.solution-details li { color: var(--navy-800); font-size: .74rem; line-height: 1.45; padding-left: 1rem; position: relative; }
.solution-details li::before { color: var(--blue-600); content: "—"; left: 0; position: absolute; }
.townsquare-grid { aspect-ratio: 1; border: 1px solid rgba(98,170,249,.55); border-radius: 50%; position: relative; width: 62%; z-index: 1; }
.townsquare-grid::before { border: 1px solid rgba(255,255,255,.18); border-radius: 50%; content: ""; inset: .8rem; position: absolute; }
.townsquare-grid span { display: none; }
.townsquare-grid span:nth-child(5) { align-items: center; display: flex; inset: 0; justify-content: center; position: absolute; }
.townsquare-grid img { width: 44%; }
.delivery-lines, .governed-agent, .health-graphic { color: var(--white); display: flex; font-family: var(--utility); font-size: .68rem; position: relative; z-index: 1; }
.delivery-lines { align-items: stretch; color: var(--navy-900); flex-direction: column; gap: .5rem; width: 70%; }
.delivery-lines span { border-bottom: 1px solid rgba(31,56,100,.45); padding: 0 0 .4rem; transition: padding-left 420ms var(--ease); }
.delivery-lines span + span::before { content: none; }
.solution-card:hover .delivery-lines span:nth-child(2) { padding-left: 12%; }
.solution-card:hover .delivery-lines span:nth-child(3) { padding-left: 24%; }
.governed-agent { align-items: center; gap: .85rem; }
.governed-agent strong { align-items: center; border: 1px solid var(--navy-900); color: var(--navy-900); display: flex; height: clamp(3rem,5vw,4.5rem); justify-content: center; width: clamp(3rem,5vw,4.5rem); }
.governed-agent span { background: var(--navy-900); height: .4rem; width: .4rem; }
.governed-agent span { transition: opacity 260ms ease, transform 260ms var(--ease); }
.solution-card:hover .governed-agent span:nth-of-type(1) { transform: translateX(.2rem) scale(1.15); }
.solution-card:hover .governed-agent span:nth-of-type(2) { transform: scale(1.3); }
.solution-card:hover .governed-agent span:nth-of-type(3) { transform: translateX(-.2rem) scale(1.15); }
.health-graphic { border: 1px solid rgba(255,255,255,.3); height: 58%; width: 68%; }
.health-graphic::before, .health-graphic::after { background: rgba(255,255,255,.15); content: ""; position: absolute; }
.health-graphic::before { height: 1px; left: 1rem; right: 1rem; top: 50%; }
.health-graphic::after { bottom: 1rem; left: 50%; top: 1rem; width: 1px; }
.health-graphic span { border: 2px solid var(--blue-400); border-radius: 50%; height: 2.5rem; left: calc(50% - 1.25rem); position: absolute; top: calc(50% - 1.25rem); width: 2.5rem; }
.health-graphic span { transition: transform 400ms var(--ease); }
.solution-card:hover .health-graphic span { transform: scale(1.22); }

.approach-section { background: var(--paper); border-block: 1px solid var(--line); padding-top: var(--section-space); }
.section-intro { margin-bottom: clamp(5rem,9vw,8rem); }
.section-intro h2 { font-family: var(--display); font-size: clamp(2.15rem,3.8vw,4rem); font-weight: 500; letter-spacing: -.045em; line-height: 1.04; margin-inline: auto; max-width: 50rem; text-align: center; }
.process-stack { margin-inline: auto; max-width: var(--content-width); padding: 0 var(--page-pad) var(--section-space); }
.process-step { min-height: 72vh; }
.process-card { align-items: start; background: var(--white); border-top: 1px solid var(--navy-900); display: grid; gap: 2rem; grid-template-columns: minmax(14rem,1.4fr) minmax(16rem,.9fr); padding: clamp(2rem,4vw,3rem); position: sticky; top: 104px; }
.process-step:nth-child(2) .process-card { top: 122px; }
.process-step:nth-child(3) .process-card { top: 140px; }
.process-card h3 { font-family: var(--display); font-size: clamp(1.55rem,2.4vw,2.25rem); font-weight: 600; letter-spacing: -.035em; line-height: 1.12; }
.process-copy > p { color: var(--muted); line-height: 1.65; }
.tag-list { display: flex; flex-wrap: wrap; gap: .45rem; list-style: none; margin-top: 1.4rem; padding: 0; }
.tag-list li { border: 1px solid var(--line); color: var(--muted); font-family: var(--utility); font-size: .57rem; letter-spacing: .06em; padding: .4rem .55rem; text-transform: uppercase; }

.why-section { align-items: start; display: grid; gap: clamp(3rem,7vw,7rem); grid-template-columns: minmax(16rem,.8fr) minmax(0,1.2fr); padding-bottom: var(--section-space); padding-top: var(--section-space); }
.why-visual { align-items: center; background: transparent; display: flex; justify-content: center; min-height: 25rem; overflow: visible; position: relative; }
.why-visual::before, .why-visual::after { content: none; }
.why-visual img { width: clamp(11rem,18vw,15rem); }
.why-visual-label { bottom: 1.25rem; color: rgba(255,255,255,.58); left: 1.25rem; position: absolute; z-index: 1; }
.why-content h2 { margin: 0 0 1.5rem; }
.why-lede { color: var(--muted); font-size: 1.05rem; line-height: 1.7; margin-bottom: 2rem; }
.principle { border-top: 1px solid var(--line); }
.principle:last-child { border-bottom: 1px solid var(--line); }
.principle summary { align-items: center; cursor: pointer; display: grid; gap: 1rem; grid-template-columns: 1fr auto; list-style: none; padding: 1.25rem 0; }
.principle summary::-webkit-details-marker { display: none; }
.principle summary span { color: var(--blue-600); font-family: var(--utility); font-size: .65rem; }
.principle summary strong { font-family: var(--display); font-size: 1.05rem; font-weight: 600; transition: color 180ms ease; }
.principle summary:hover strong { color: var(--blue-600); }
.principle summary i { color: var(--blue-600); font-style: normal; transition: transform 240ms var(--ease); }
.principle summary i::before { content: "+"; }
.principle[open] summary i { transform: rotate(45deg); }
.principle > p { color: var(--muted); line-height: 1.65; padding: 0 0 1.3rem; }

.proof-band { background-color: var(--navy-900); background-image: linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px), linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px); background-size: 44px 44px; color: var(--white); max-width: none; padding-bottom: var(--section-space); padding-top: var(--section-space); }
.proof-band > * { margin-inline: auto; max-width: var(--content-width); padding-inline: var(--page-pad); }
.proof-band .editorial-heading { margin-top: 1.75rem; max-width: 44rem; }
.proof-grid { display: grid; gap: 2rem; grid-template-columns: repeat(4,1fr); margin-top: 3.5rem; }
.proof-item { border-top: 1px solid var(--line-dark); padding-top: 1.4rem; }
.proof-item strong { color: var(--blue-400); display: block; font-family: var(--display); font-size: clamp(2.4rem,3.6vw,3.4rem); font-weight: 700; letter-spacing: -.04em; line-height: 1; }
.proof-item span { color: rgba(255,255,255,.62); display: block; font-size: .74rem; line-height: 1.5; margin-top: .85rem; max-width: 12rem; }

.closing-section { background-color: var(--navy-950); color: var(--white); overflow: hidden; padding: clamp(6rem,10vw,9rem) max(var(--page-pad),calc((100vw - var(--content-width)) / 2)) clamp(4.5rem,8vw,7rem); position: relative; }
.closing-section::before { background-image: linear-gradient(90deg,rgba(16,28,49,.97) 0%,rgba(31,56,100,.82) 58%,rgba(16,28,49,.5) 100%), url("/images/bg.jpg"); background-position: center; background-size: cover; content: ""; inset: -20% 0; position: absolute; transform: translate3d(0,var(--closing-parallax-y,0),0) scale(1.04); will-change: transform; }
.closing-section > * { position: relative; z-index: 1; }
.closing-section h2 { font-family: var(--display); font-size: clamp(3.2rem,6vw,6rem); font-weight: 600; letter-spacing: -.05em; line-height: .98; margin: 0 0 2.5rem; max-width: 58rem; text-wrap: balance; }
.closing-section h2 span { display: block; }
.closing-section h2 span:last-child { color: var(--blue-400); }
.closing-note { color: rgba(255,255,255,.55); font-size: .8rem; line-height: 1.6; margin-top: 1.2rem; }
.closing-section .proof-grid { border-top: 1px solid rgba(255,255,255,.3); margin-top: clamp(4.5rem,8vw,7rem); padding-top: 1.5rem; }
.closing-section .proof-item { border-top: 0; padding-top: 0; }
.closing-section .proof-item strong { color: #83c0ff; }
.closing-section .proof-item span { color: rgba(255,255,255,.76); }

/* Footer */
.site-footer { background-color: #111; color: rgba(255,255,255,.66); overflow: hidden; padding: 9.5rem max(var(--page-pad),calc((100vw - var(--content-width)) / 2 + var(--page-pad))) 1.5rem; position: relative; }
.site-footer::before { background-image: url("/images/bg-sub.jpg"); background-position: top center; background-repeat: no-repeat; content: ""; inset: 0; position: absolute; }
.site-footer > * { position: relative; z-index: 1; }
.footer-grid { display: grid; gap: clamp(2.5rem,5vw,4rem); grid-template-columns: minmax(16rem,1.4fr) minmax(0,.75fr) minmax(0,.75fr); padding-bottom: 3.5rem; }
.footer-brand > p { font-size: .85rem; line-height: 1.7; margin-top: 1.5rem; max-width: 21rem; }
.footer-address { color: rgba(255,255,255,.5); font-size: .78rem; }
.footer-brand > .footer-address { margin-top: 1rem; }
.partner-badge { align-items: center; border: 1px solid rgba(255,255,255,.16); display: inline-flex; gap: .75rem; margin-top: 1.6rem; padding: .6rem .85rem; }
.partner-badge img { height: 1rem; width: 1rem; }
.partner-badge strong { color: rgba(255,255,255,.82); display: block; font-size: .73rem; font-weight: 600; }
.partner-badge em { color: rgba(255,255,255,.5); display: block; font-family: var(--utility); font-size: .55rem; font-style: normal; letter-spacing: .12em; margin-top: .2rem; text-transform: uppercase; }
.footer-heading { color: var(--white); font-family: var(--utility); font-size: .62rem; font-weight: 600; letter-spacing: .13em; margin: 0 0 1.25rem; text-transform: uppercase; }
.footer-col { align-items: flex-start; display: flex; flex-direction: column; gap: .9rem; }
.footer-col a { color: rgba(255,255,255,.68); font-size: .85rem; transition: color 180ms ease; }
.footer-col a:hover, .footer-col a:focus-visible { color: var(--white); }
.footer-bottom { align-items: center; border-top: 1px solid rgba(255,255,255,.1); display: flex; flex-wrap: wrap; gap: 1rem; justify-content: space-between; padding: 1.5rem 0; }
.footer-bottom p, .back-to-top { color: rgba(255,255,255,.58); font-size: .72rem; }
.back-to-top { align-items: center; background: transparent; border: 0; display: inline-flex; gap: .65rem; padding: .5rem 0; transition: color 180ms ease; }
.back-to-top:hover, .back-to-top:focus-visible { color: var(--white); }
.back-to-top span { animation: float-arrow 1.7s ease-in-out infinite; color: var(--blue-400); }

/* Interior page hero */
.page-hero { align-items: end; background-color: var(--navy-900); background-image: radial-gradient(ellipse at 24% 60%,rgba(98,170,249,.14),transparent 64%), linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px), linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px), linear-gradient(135deg,#0d1b2a 0%,#1f3864 100%); background-size: auto, 44px 44px, 44px 44px, auto; color: var(--white); display: flex; min-height: 32rem; padding: calc(var(--header-height) + 5rem) max(var(--page-pad),calc((100vw - var(--content-width)) / 2 + var(--page-pad))) 4.25rem; }
.page-hero-content { max-width: 57rem; }
.page-hero h1 { font-family: var(--display); font-size: clamp(2.7rem,4.8vw,4.4rem); font-weight: 600; letter-spacing: -.04em; line-height: 1.04; margin: 0 0 1.6rem; text-wrap: balance; }
.page-hero .page-summary { color: rgba(255,255,255,.7); max-width: 43rem; }

/* Interior content */
.content-section { padding-bottom: var(--section-space); padding-top: var(--section-space); }
.content-section + .content-section { border-top: 1px solid var(--line); }
.feature-field { background: var(--paper); max-width: none; padding-left: max(var(--page-pad),calc((100vw - var(--content-width)) / 2 + var(--page-pad))); padding-right: max(var(--page-pad),calc((100vw - var(--content-width)) / 2 + var(--page-pad))); }
.split-intro { display: grid; gap: clamp(3rem,8vw,7rem); grid-template-columns: minmax(16rem,.9fr) minmax(0,1.1fr); }
.split-intro .editorial-heading { margin-top: 0; }
.prose { color: var(--muted); font-size: 1rem; line-height: 1.75; }
.prose p + p { margin-top: 1.25rem; }
.prose strong { color: var(--ink); }
.prose .text-link { color: var(--navy-900); margin-top: 1.8rem; }
.card-grid { border: 1px solid var(--line); display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); margin-top: 3.25rem; }
.info-card { background: var(--white); border-bottom: 1px solid var(--line); border-right: 1px solid var(--line); min-height: 14rem; padding: 1.7rem; transition: border-color 220ms ease, box-shadow 220ms var(--ease), transform 220ms var(--ease); }
.info-card::before { background: var(--blue-600); content: ""; display: block; height: 2px; margin-bottom: 1.2rem; transition: width 260ms var(--ease); width: 2rem; }
.info-card:hover::before { width: 3.25rem; }
.info-card:nth-child(3n) { border-right: 0; }
.info-card:nth-last-child(-n + 3) { border-bottom: 0; }
.info-card:hover { border-color: rgba(46,117,182,.32); box-shadow: none; transform: none; z-index: 1; }
.info-card h3 { color: var(--navy-900); font-family: var(--display); font-size: 1.3rem; font-weight: 600; letter-spacing: -.025em; margin-bottom: .9rem; }
.info-card p { color: var(--muted); font-size: .9rem; line-height: 1.7; }
.ledger { border-top: 1px solid var(--navy-900); }
.section-heading + .ledger { margin-top: 1rem; }
.ledger-row { align-items: start; border-bottom: 1px solid var(--line); display: grid; gap: 1.5rem; grid-template-columns: minmax(13rem,.8fr) minmax(16rem,1fr); padding: 1.6rem 0; }
.ledger-row h3 { font-family: var(--display); font-size: 1.2rem; font-weight: 600; letter-spacing: -.02em; }
.ledger-row p { color: var(--muted); font-size: .92rem; line-height: 1.6; }
.timeline { border-top: 1px solid var(--navy-900); list-style: none; padding: 0; }
.timeline li { border-bottom: 1px solid var(--line); color: var(--muted); line-height: 1.65; padding: 1.35rem 0; position: relative; }
.timeline li::before { content: none; }
.leadership-profile { align-items: center; display: grid; gap: clamp(3rem,8vw,7rem); grid-template-columns: minmax(15rem,.85fr) minmax(0,1.15fr); }
.leadership-profile > img { aspect-ratio: 1; filter: saturate(.82); object-fit: cover; object-position: 50% 42%; width: 100%; }
.leadership-profile h2 { font-family: var(--display); font-size: clamp(2.4rem,4vw,3.6rem); font-weight: 600; letter-spacing: -.04em; line-height: 1.02; margin: 0 0 .4rem; }
.leadership-profile .role { color: var(--blue-600); font-weight: 600; margin-bottom: 1.8rem; }
.article-list { border-top: 1px solid var(--navy-900); }
.article-card { border-bottom: 1px solid var(--line); display: grid; grid-template-columns: minmax(0,1fr); padding: 2.5rem 0; }
.article-card > div { max-width: 52rem; }
.article-card h2 { font-family: var(--display); font-size: clamp(1.6rem,2.4vw,2.2rem); font-weight: 600; letter-spacing: -.03em; line-height: 1.12; margin: 0 0 1rem; }
.article-card ul { color: var(--muted); display: grid; font-size: .9rem; gap: .55rem; line-height: 1.65; margin-top: 1.2rem; padding-left: 1.05rem; }
.article-card ul li::marker { color: var(--blue-600); }

/* Contact */
.contact-layout { display: grid; gap: clamp(3rem,7vw,6rem); grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); }
.contact-section-title { margin: 0 0 2rem; }
.booking-panel { background-color: var(--navy-900); background-image: linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px), linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px); background-size: 40px 40px; color: var(--white); padding: 2rem; }
.booking-panel h3 { font-family: var(--display); font-size: 1.75rem; font-weight: 600; letter-spacing: -.03em; margin: 0 0 .8rem; }
.booking-panel p { color: rgba(255,255,255,.68); line-height: 1.65; }
.booking-panel .button-link { margin-top: 1.5rem; }
.booking-fallback { color: var(--muted); font-size: .88rem; line-height: 1.6; margin-top: 1.2rem; }
.booking-fallback .text-link { color: var(--navy-900); }
.field-grid { display: grid; gap: 1rem; grid-template-columns: repeat(2,1fr); }
.field { margin-bottom: 1rem; }
.field label { display: block; font-size: .78rem; font-weight: 700; margin-bottom: .5rem; }
.field input, .field textarea { background: var(--white); border: 1px solid var(--line); border-radius: 0; padding: .85rem .9rem; transition: border-color 160ms ease; width: 100%; }
.field textarea { min-height: 9rem; resize: vertical; }
.field input:hover, .field textarea:hover { border-color: rgba(31,56,100,.32); }
.field input:focus, .field textarea:focus { border-color: var(--blue-600); }
.submit-button { align-items: center; background: var(--navy-900); border: 1px solid var(--navy-900); color: var(--white); display: inline-flex; font-weight: 700; gap: .8rem; padding: .9rem 1.15rem; transition: background 180ms ease, border-color 180ms ease; }
.submit-button:hover { background: var(--blue-600); border-color: var(--blue-600); }
.form-note, .form-status { color: var(--muted); font-size: .76rem; line-height: 1.55; margin-top: .8rem; }
.form-note a { color: var(--navy-900); text-decoration: underline; }
.context-box { background: var(--paper); border: 1px solid var(--line); color: var(--ink); margin-top: 2rem; padding: 1.7rem 2rem; }
.context-box ul { color: var(--muted); line-height: 1.65; margin-top: .8rem; padding-left: 1.1rem; }
.context-box ul li::marker { color: var(--blue-600); }
.address-list { border-top: 1px solid var(--line); display: grid; gap: 1.5rem; grid-template-columns: repeat(2,1fr); margin-top: 2rem; padding-top: 1.5rem; }
.address-list p { color: var(--muted); font-size: .83rem; line-height: 1.6; }
.address-list strong { color: var(--ink); display: block; }
.not-found { align-items: start; background-color: var(--navy-900); background-image: radial-gradient(ellipse at 24% 60%,rgba(98,170,249,.14),transparent 64%), linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px), linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px), linear-gradient(135deg,#0d1b2a 0%,#1f3864 100%); background-size: auto, 44px 44px, 44px 44px, auto; color: var(--white); display: flex; flex-direction: column; justify-content: center; min-height: 100svh; padding: var(--page-pad); }
.not-found h1 { font-family: var(--display); font-size: clamp(3rem,7vw,5.5rem); font-weight: 600; letter-spacing: -.045em; margin: 1.25rem 0; }
.not-found p { color: rgba(255,255,255,.7); line-height: 1.7; max-width: 35rem; }
.not-found .button-link { margin-top: 2rem; }

/* Scroll reveals: progressive enhancement only. Without JavaScript the
   .motion-ready class is never added and everything stays fully visible. */
[data-reveal] { opacity: 1; transform: none; }
.motion-ready [data-reveal] { filter: blur(5px); opacity: .12; transform: translateY(.8rem); transition: filter 750ms var(--ease), opacity 750ms var(--ease), transform 750ms var(--ease); transition-delay: var(--reveal-delay, 0ms); }
.motion-ready [data-reveal].is-visible { filter: none; opacity: 1; transform: none; }
.word-reveal .word { display: inline-block; filter: none; opacity: 1; transform: none; }
.motion-ready .word-reveal .word { filter: blur(5px); opacity: .1; transform: translateY(.45em); transition: filter 100ms linear, opacity 100ms linear, transform 100ms linear; }

@media print {
  [data-reveal] { filter: none !important; opacity: 1 !important; transform: none !important; }
}

@media (max-width: 1080px) {
  .desktop-nav { gap: 1rem; }
  .desktop-nav a, .header-cta { font-size: .72rem; }
}

@media (max-width: 960px) {
  .site-header { grid-template-columns: 1fr auto; }
  .desktop-nav, .header-cta { display: none; }
  .menu-toggle { background: transparent; border: 0; display: grid; gap: .38rem; padding: .75rem 0 .75rem .75rem; }
  .menu-toggle span { background: currentColor; display: block; height: 1px; transition: transform 200ms ease; width: 1.35rem; }
  .menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(.2rem) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-.2rem) rotate(-45deg); }
  .mobile-menu { background: var(--navy-950); color: var(--white); display: flex; flex-direction: column; inset: var(--header-height) 0 0; opacity: 0; overflow-y: auto; padding: 2rem var(--page-pad) 3rem; pointer-events: none; position: fixed; transform: translateY(-.75rem); transition: opacity 240ms ease, transform 240ms var(--ease); }
  .mobile-menu.is-open { opacity: 1; pointer-events: auto; transform: none; }
  .mobile-menu nav { display: grid; }
  .mobile-menu nav a { border-bottom: 1px solid rgba(255,255,255,.12); font-family: var(--display); font-size: clamp(1.45rem,5vw,2.25rem); font-weight: 600; letter-spacing: -.03em; padding: .75rem 0; }
  .mobile-menu nav a[aria-current="page"] { color: var(--blue-400); }
  .mobile-menu .text-link { align-self: start; margin-top: 2rem; }
  .hero::before { background-position: 66% center; }
  .hero h1 { font-size: clamp(2.9rem,7.4vw,4.6rem); max-width: 44rem; }
  .proof-grid, .card-grid { grid-template-columns: repeat(2,1fr); }
  .info-card:nth-child(3n) { border-right: 1px solid var(--line); }
  .info-card:nth-child(2n) { border-right: 0; }
  .info-card:nth-last-child(-n + 3) { border-bottom: 1px solid var(--line); }
  .info-card:nth-last-child(-n + 2) { border-bottom: 0; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-brand { grid-column: 1 / -1; }
}

@media (max-width: 760px) {
  :root { --section-space: 4.25rem; }
  .hero { align-items: end; min-height: 48rem; padding-bottom: 12rem; }
  .hero::before { background-position: 63% center; }
  .hero::after { animation: none; background-image: linear-gradient(180deg,rgba(31,56,100,.78) 0%,rgba(31,56,100,.9) 52%,rgba(16,28,49,.98) 100%), radial-gradient(ellipse at 0% 55%,rgba(46,117,182,.14),transparent 62%), linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px), linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px); background-size: auto, auto, 38px 38px, 38px 38px; }
  .hero h1 { font-size: clamp(2.6rem,11vw,4.2rem); line-height: 1.04; }
  .hero-aside p { font-size: .96rem; }
  .hero-actions { align-items: stretch; flex-direction: column; }
  .hero-actions .button-link { justify-content: space-between; }
  .hero-proof-rail { bottom: 2rem; padding-inline: 0; }
  .hero-proof-rail strong { font-size: 1.15rem; }
  .hero-proof-rail span { font-size: .58rem; }
  .perspective, .section-heading, .section-intro, .split-intro, .why-section, .leadership-profile, .contact-layout, .article-card { grid-template-columns: 1fr; }
  .perspective, .section-heading, .section-intro { gap: 1.5rem; }
  .home-outcomes { gap: 1.75rem; grid-template-columns: 1fr; }
  .split-intro, .article-card { gap: 2rem; }
  .solution-grid { display: block; }
  .solution-card { gap: 1rem; grid-template-columns: 96px minmax(0,1fr); padding: 1.25rem 0 3.5rem; }
  .solution-visual { aspect-ratio: 1; }
  .section-heading h2 { grid-column: 1; }
  .process-step { min-height: 0; }
  .process-card, .process-step:nth-child(2) .process-card, .process-step:nth-child(3) .process-card { gap: 1.5rem; grid-template-columns: 1fr; padding: 2rem 0; position: static; }
  .why-visual { min-height: 18rem; }
  .proof-grid { gap: 2.25rem 1.25rem; margin-top: 2.75rem; }
  .proof-item strong { font-size: 2.3rem; }
  .site-footer { padding-top: 11rem; }
  .hero-scroll { display: none; }
  .page-hero { min-height: 27rem; padding-bottom: 3.25rem; padding-top: calc(var(--header-height) + 4rem); }
  .page-hero h1 { font-size: clamp(2.4rem,9.4vw,3.6rem); }
  .ledger-row { gap: .8rem; grid-template-columns: 1fr; }
  .card-grid { grid-template-columns: 1fr; }
  .info-card, .info-card:nth-child(2n), .info-card:nth-child(3n), .info-card:nth-last-child(-n + 2), .info-card:nth-last-child(-n + 3) { border-bottom: 1px solid var(--line); border-right: 0; }
  .info-card:last-child { border-bottom: 0; }
  .field-grid, .address-list { grid-template-columns: 1fr; }
  .context-box { padding: 1.4rem 1.5rem; }
}

@media (max-width: 460px) {
  .proof-grid, .footer-grid { grid-template-columns: 1fr; }
  .footer-brand { grid-column: auto; }
  .footer-bottom { flex-direction: column; align-items: flex-start; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .001ms !important; }
  .motion-ready [data-reveal] { filter: none; opacity: 1; transform: none; }
}

/* Quiet regional override; the site's header and navigation remain unchanged. */
.footer-bottom { flex-wrap: wrap; }
.footer-region { margin: 0; }
[data-region-selector] { font-size: .75rem; line-height: 1.7; text-decoration: underline; text-underline-offset: .2em; white-space: normal; }
.region-dialog { background: var(--white); border: 1px solid var(--line); color: var(--ink); max-width: min(30rem, calc(100vw - 2.5rem)); padding: clamp(1.25rem, 4vw, 2rem); width: 100%; }
.region-dialog::backdrop { background: rgba(16,28,49,.62); }
.region-dialog h2 { font-family: var(--display); font-size: 1.65rem; letter-spacing: -.04em; margin-bottom: .75rem; }
.region-dialog p { color: var(--muted); font-size: .9rem; line-height: 1.6; margin-bottom: 1.5rem; }
.region-dialog label { display: block; font-size: .82rem; font-weight: 600; margin: 1rem 0 .45rem; }
.region-dialog select { background: var(--white); border: 1px solid var(--line); color: var(--ink); font: inherit; min-height: 2.75rem; padding: .55rem; width: 100%; }
.region-actions { display: flex; gap: .75rem; margin-top: 1.5rem; }
.region-actions button { background: var(--navy-900); border: 1px solid var(--navy-900); color: var(--white); font-size: .85rem; padding: .65rem 1rem; }
.region-actions button[value="cancel"] { background: transparent; color: var(--navy-900); }
.region-reset { background: none; border: 0; color: var(--muted); font-size: .78rem; margin-top: 1.25rem; padding: .25rem 0; text-decoration: underline; }
.perspective-summary { color: var(--muted); font-size: 1rem; line-height: 1.7; margin: 1.5rem auto 0; max-width: 46rem; text-align: center; }
.proof-grid--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 540px) { .proof-grid--two { grid-template-columns: 1fr; } }
.region-announcement { clip-path: inset(50%); height: 1px; overflow: hidden; position: absolute; white-space: nowrap; width: 1px; }
body.region-open { overflow: hidden; }
