@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');

:root {
  --navy: #10283f;
  --navy-2: #173b58;
  --blue: #1f5579;
  --blue-2: #2f6c91;
  --gold: #c9a96e;
  --gold-soft: #e9dcc3;
  --ink: #1b2a36;
  --muted: #64727d;
  --line: #dce3e8;
  --paper: #f5f6f4;
  --white: #fff;
  --pale-blue: #eaf0f3;
  --shadow: 0 22px 55px rgba(16, 40, 63, .09);
  --container: 1180px;
  --radius: 4px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 92px; }
body { margin: 0; color: var(--ink); background: var(--white); font-family: 'Inter', Arial, sans-serif; font-size: 15px; line-height: 1.72; -webkit-font-smoothing: antialiased; }
body.menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
img, svg { max-width: 100%; }
::selection { background: var(--gold-soft); color: var(--navy); }

.container { width: min(var(--container), calc(100% - 48px)); margin-inline: auto; }
.container.narrow { max-width: 850px; }
.eyebrow { display: inline-flex; align-items: center; gap: 11px; color: var(--blue); font-size: 10px; font-weight: 700; letter-spacing: .19em; line-height: 1.4; text-transform: uppercase; }
.eyebrow::before { content: ''; width: 28px; height: 1px; background: var(--gold); }
.eyebrow.light { color: #cbd8e0; }
.eyebrow.light::before { background: var(--gold); }
.kicker { color: var(--muted); font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.display, h1, h2, h3, h4 { font-family: 'Manrope', 'Inter', sans-serif; letter-spacing: -.045em; }
h1, h2, h3, h4, p { margin-top: 0; }
h1 { margin-bottom: 22px; color: var(--navy); font-size: clamp(42px, 5.2vw, 68px); line-height: 1.07; font-weight: 700; }
h2 { margin-bottom: 16px; color: var(--navy); font-size: clamp(30px, 3.7vw, 45px); line-height: 1.14; font-weight: 700; }
h3 { margin-bottom: 10px; color: var(--navy); font-size: 21px; line-height: 1.28; font-weight: 700; }
h4 { margin-bottom: 7px; color: var(--navy); font-size: 15px; line-height: 1.35; font-weight: 700; }
.lead { max-width: 690px; color: #52616d; font-size: clamp(16px, 1.7vw, 19px); line-height: 1.7; }
.section-intro { max-width: 710px; margin-bottom: 42px; }
.section-intro p:last-child { margin-bottom: 0; color: var(--muted); }
.muted { color: var(--muted); }
.small { font-size: 12px; }
.gold-rule { width: 44px; height: 2px; background: var(--gold); margin: 24px 0; }

/* Header */
.site-header { position: sticky; z-index: 100; top: 0; background: rgba(255,255,255,.96); border-bottom: 1px solid rgba(220,227,232,.9); backdrop-filter: blur(14px); }
.header-inner { min-height: 82px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.brand { display: inline-flex; align-items: center; min-width: 210px; }
.brand-logo { display: block; width: 210px; max-height: 64px; object-fit: contain; object-position: left center; }
.main-nav { display: flex; align-items: center; gap: clamp(14px, 2vw, 27px); }
.main-nav a { position: relative; color: #42515d; font-size: 12px; font-weight: 600; white-space: nowrap; transition: color .2s ease; }
.main-nav a::after { content: ''; position: absolute; left: 0; bottom: -9px; width: 0; height: 2px; background: var(--gold); transition: width .22s ease; }
.main-nav a:hover, .main-nav a[aria-current="page"] { color: var(--navy); }
.main-nav a:hover::after, .main-nav a[aria-current="page"]::after { width: 100%; }
.nav-cta { padding: 12px 17px; background: var(--navy); color: white !important; font-size: 11px !important; letter-spacing: .02em; }
.nav-cta::after { display: none; }
.nav-cta:hover { background: var(--blue); }
.menu-toggle { display: none; width: 42px; height: 42px; padding: 0; border: 1px solid var(--line); background: white; color: var(--navy); cursor: pointer; }
.menu-toggle span, .menu-toggle::before, .menu-toggle::after { content: ''; display: block; width: 17px; height: 1px; margin: 5px auto; background: currentColor; transition: transform .2s ease; }

/* Buttons */
.button { display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 49px; padding: 0 19px; border: 1px solid transparent; background: var(--navy); color: white; font-size: 11px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; transition: transform .2s ease, background .2s ease, border-color .2s ease; cursor: pointer; }
.button:hover { transform: translateY(-2px); background: var(--blue); }
.button svg { width: 15px; height: 15px; }
.button.secondary { color: var(--navy); background: transparent; border-color: #aebbc4; }
.button.secondary:hover { border-color: var(--navy); background: white; }
.button.gold { background: var(--gold); color: var(--navy); }
.button.gold:hover { background: #d8bb88; }
.button.small-button { min-height: 40px; padding-inline: 14px; font-size: 10px; }
.text-link { display: inline-flex; align-items: center; gap: 10px; color: var(--blue); font-size: 12px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.text-link span { font-size: 18px; transition: transform .2s ease; }
.text-link:hover span { transform: translateX(4px); }
.button-row { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }

/* Home hero */
.home-hero { position: relative; overflow: hidden; padding: clamp(68px, 7vw, 92px) 0; background: #f7f8f6; }
.home-hero::before { content: ''; position: absolute; top: 0; right: 0; width: 49%; height: 100%; background: linear-gradient(135deg, #eef2f1, #e8eef0); clip-path: polygon(18% 0,100% 0,100% 100%,0 100%); }
.home-hero::after { content: ''; position: absolute; top: -210px; right: -90px; width: 560px; height: 560px; border: 1px solid rgba(201,169,110,.23); border-radius: 50%; }
.hero-grid { position: relative; z-index: 1; display: grid; grid-template-columns: 1.02fr .98fr; align-items: center; gap: clamp(36px, 6vw, 82px); }
.hero-copy { padding: 18px 0; }
.hero-copy h1 { max-width: 650px; margin-top: 23px; letter-spacing: -.055em; }
.hero-copy h1 span { color: var(--blue); }
.hero-copy .lead { max-width: 600px; }
.hero-note { display: flex; align-items: center; gap: 12px; margin-top: 31px; color: #697680; font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.hero-note::before { content: ''; width: 32px; height: 1px; background: var(--gold); }
.hero-visual { position: relative; min-height: 455px; overflow: hidden; padding: 22px; border: 1px solid rgba(255,255,255,.12); background: radial-gradient(circle at 82% 18%, rgba(47,108,145,.42), transparent 36%), linear-gradient(145deg, #173b58, #10283f 72%); box-shadow: 0 24px 58px rgba(16,40,63,.18), 14px 14px 0 rgba(201,169,110,.22); color: white; }
.hero-visual::before { content: ''; position: absolute; z-index: 1; inset: 0; background: linear-gradient(180deg, rgba(16,40,63,.48), rgba(16,40,63,.12) 34%, rgba(16,40,63,.96) 79%); }
.hero-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.visual-top, .visual-bottom { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; }
.visual-top { padding-bottom: 16px; border-bottom: 1px solid rgba(255,255,255,.17); }
.visual-label { color: #d2dbe1; font-size: 9px; letter-spacing: .16em; text-transform: uppercase; }
.visual-status { display: inline-flex; align-items: center; gap: 7px; color: #d9c69f; font-size: 9px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.visual-status::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--gold); }
.visual-main { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr; align-items: end; gap: 17px; min-height: 258px; padding: 28px 4px 22px; }
.visual-main h3 { margin: 7px 0 9px; color: white; font-size: 24px; }
.visual-main p { max-width: 210px; margin-bottom: 0; color: #becbd4; font-size: 11px; line-height: 1.6; }
.visual-orbit { position: relative; width: 190px; height: 190px; margin-inline: auto; border: 1px solid rgba(201,169,110,.5); border-radius: 50%; }
.visual-orbit::before, .visual-orbit::after { content: ''; position: absolute; border: 1px solid rgba(255,255,255,.21); border-radius: 50%; }
.visual-orbit::before { inset: 21px; }
.visual-orbit::after { inset: 47px; }
.orbit-center { position: absolute; inset: 67px; display: grid; place-items: center; border-radius: 50%; background: var(--blue); color: white; font: 700 19px 'Manrope', sans-serif; }
.orbit-dot { position: absolute; width: 8px; height: 8px; border-radius: 50%; background: var(--gold); box-shadow: 0 0 0 5px rgba(201,169,110,.15); }
.orbit-dot.one { top: 25px; left: 82px; }.orbit-dot.two { right: 6px; top: 91px; }.orbit-dot.three { bottom: 20px; left: 49px; }
.visual-metrics { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid rgba(255,255,255,.17); border-bottom: 1px solid rgba(255,255,255,.17); }
.visual-metric { padding: 15px 10px; border-right: 1px solid rgba(255,255,255,.15); }
.visual-metric:last-child { border-right: 0; }
.visual-metric strong { display: block; color: var(--gold); font: 700 23px 'Manrope', sans-serif; }
.visual-metric span { color: #c5d0d7; font-size: 9px; letter-spacing: .04em; }
.visual-bottom { padding-top: 17px; color: #aebec8; font-size: 9px; letter-spacing: .09em; text-transform: uppercase; }
.visual-bottom strong { color: white; font-weight: 600; }

/* General sections */
.section { padding: 90px 0; }
.section.compact { padding: 67px 0; }
.section.tinted { background: var(--paper); }
.section.navy { background: var(--navy); color: white; }
.section.navy h2, .section.navy h3, .section.navy h4 { color: white; }
.section.navy p { color: #c5d1d9; }
.section-head { display: flex; align-items: end; justify-content: space-between; gap: 25px; margin-bottom: 40px; }
.section-head .section-intro { margin-bottom: 0; }
.section-head > p { max-width: 350px; margin-bottom: 5px; color: var(--muted); font-size: 13px; }
.two-col { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(40px, 7vw, 100px); align-items: start; }
.editorial-aside { padding: 26px 0 0 28px; border-left: 1px solid var(--gold); }
.editorial-aside strong { display: block; margin-bottom: 10px; color: var(--navy); font: 700 22px/1.3 'Manrope', sans-serif; }
.editorial-aside p { color: var(--muted); font-size: 13px; }
.cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.card { position: relative; min-height: 216px; padding: 26px; border: 1px solid var(--line); background: white; transition: border-color .22s ease, transform .22s ease, box-shadow .22s ease; }
.card:hover { transform: translateY(-4px); border-color: #b9c6ce; box-shadow: 0 16px 36px rgba(16,40,63,.07); }
.card-index { display: flex; align-items: center; justify-content: space-between; margin-bottom: 28px; color: #9aa5ac; font: 600 11px 'Manrope', sans-serif; letter-spacing: .1em; }
.card-icon { width: 33px; height: 33px; display: grid; place-items: center; border: 1px solid #e5d7bd; color: var(--blue); }
.card-icon svg { width: 17px; height: 17px; }
.card p { margin-bottom: 0; color: var(--muted); font-size: 13px; line-height: 1.65; }
.card .text-link { margin-top: 19px; font-size: 10px; }

/* Proof strip / stats */
.proof-band { display: grid; grid-template-columns: repeat(3,1fr); background: var(--navy); color: white; }
.proof-item { padding: 29px 32px; border-right: 1px solid rgba(255,255,255,.14); }
.proof-item:last-child { border-right: 0; }
.proof-item strong { display: block; color: var(--gold); font: 700 35px/1.1 'Manrope', sans-serif; }
.proof-item span { display: block; margin-top: 8px; color: #d0d9df; font-size: 11px; letter-spacing: .03em; }
.proof-item small { display: block; margin-top: 8px; color: #91a4b1; font-size: 10px; line-height: 1.5; }
.feature-list { display: grid; grid-template-columns: repeat(2,1fr); gap: 17px 28px; padding: 0; margin: 0; list-style: none; }
.feature-list li { position: relative; padding-left: 24px; color: #4f5d68; font-size: 13px; }
.feature-list li::before { content: ''; position: absolute; left: 0; top: 9px; width: 9px; height: 5px; border-left: 1.5px solid var(--gold); border-bottom: 1.5px solid var(--gold); transform: rotate(-45deg); }

/* Page hero */
.page-hero { position: relative; overflow: hidden; padding: 82px 0 72px; background: var(--navy); color: white; }
.page-hero::before { content: ''; position: absolute; top: -190px; right: -40px; width: 570px; height: 570px; border: 1px solid rgba(201,169,110,.24); border-radius: 50%; }
.page-hero::after { content: ''; position: absolute; right: 110px; bottom: -220px; width: 400px; height: 400px; border: 1px solid rgba(255,255,255,.12); border-radius: 50%; }
.page-hero .container { position: relative; z-index: 1; }
.page-hero h1 { max-width: 790px; margin-top: 25px; color: white; font-size: clamp(40px, 5vw, 62px); }
.page-hero .lead { max-width: 710px; margin-bottom: 0; color: #cbd7df; }
.breadcrumb { display: flex; gap: 9px; align-items: center; margin-top: 32px; color: #9fb0bc; font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.breadcrumb a:hover { color: var(--gold); }
.breadcrumb span { color: var(--gold); }
.page-hero-meta { display: flex; flex-wrap: wrap; gap: 22px; margin-top: 27px; color: #c3d0d8; font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.page-hero-meta span { display: inline-flex; align-items: center; gap: 8px; }
.page-hero-meta span::before { content: ''; width: 5px; height: 5px; background: var(--gold); border-radius: 50%; }

/* Page feature bands */
.split-panel { display: grid; grid-template-columns: 1fr 1fr; min-height: 350px; background: var(--paper); }
.split-panel .panel-copy { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: 56px clamp(28px,6vw,80px); }
.split-panel .panel-art { position: relative; overflow: hidden; min-height: 310px; background: var(--navy-2); }
.panel-art .art-grid { position: absolute; inset: 0; opacity: .2; background-image: linear-gradient(rgba(255,255,255,.25) 1px, transparent 1px),linear-gradient(90deg,rgba(255,255,255,.25) 1px,transparent 1px); background-size: 32px 32px; }
.panel-art .art-circle { position: absolute; width: 310px; height: 310px; top: 50%; left: 50%; border: 1px solid rgba(201,169,110,.6); border-radius: 50%; transform: translate(-50%,-50%); }
.panel-art .art-circle::before,.panel-art .art-circle::after { content:''; position:absolute; inset:30px; border:1px solid rgba(255,255,255,.2); border-radius:50%; }
.panel-art .art-circle::after { inset:76px; }
.panel-art .art-label { position:absolute; left:28px; bottom:25px; color:#d5e0e7; font-size:9px; letter-spacing:.14em; text-transform:uppercase; }
.panel-art .art-mark { position:absolute; left:50%; top:50%; display:grid; place-items:center; width:88px; height:88px; border-radius:50%; background:var(--gold); color:var(--navy); font:800 25px 'Manrope',sans-serif; transform:translate(-50%,-50%); }

/* Values / timeline */
.values-grid { display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.value { min-height: 142px; padding: 24px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.value span { display: block; margin-bottom: 17px; color: var(--gold); font: 700 11px 'Manrope',sans-serif; }
.value h3 { margin-bottom: 6px; font-size: 17px; }
.value p { margin-bottom: 0; color: var(--muted); font-size: 12px; }
.timeline { position: relative; display: grid; grid-template-columns: repeat(4,1fr); gap: 0; margin-top: 42px; }
.timeline::before { content:''; position:absolute; top:8px; left:8px; right:8px; height:1px; background:#cdd6dc; }
.timeline-item { position: relative; padding: 31px 24px 0 0; }
.timeline-item::before { content:''; position:absolute; top:2px; left:0; width:13px; height:13px; border:3px solid var(--paper); border-radius:50%; background:var(--gold); box-shadow:0 0 0 1px var(--gold); }
.timeline-item strong { display:block; margin-bottom:8px; color:var(--navy); font:700 15px 'Manrope',sans-serif; }
.timeline-item p { margin-bottom:0; color:var(--muted); font-size:12px; }

/* Research details */
.service-section { padding: 74px 0; border-bottom: 1px solid var(--line); }
.service-section:last-child { border-bottom: 0; }
.service-heading { display:grid; grid-template-columns: 100px 1fr; gap:25px; align-items:start; margin-bottom:30px; }
.service-letter { width:68px; height:68px; display:grid; place-items:center; background:var(--navy); color:var(--gold); font:700 25px 'Manrope',sans-serif; }
.service-heading p { max-width:760px; margin-bottom:0; color:var(--muted); font-size:14px; }
.research-bullets { display:grid; grid-template-columns:repeat(3,1fr); gap:0 24px; padding:0; margin:0; list-style:none; }
.research-bullets li { position:relative; padding:11px 0 11px 18px; border-bottom:1px solid #edf0f2; color:#4d5c67; font-size:12px; }
.research-bullets li::before { content:''; position:absolute; left:0; top:18px; width:5px; height:5px; background:var(--gold); }
.sector-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.sector-card { border:1px solid var(--line); background:white; }
.sector-card summary { display:flex; align-items:center; justify-content:space-between; gap:15px; padding:18px 19px; color:var(--navy); font:700 14px 'Manrope',sans-serif; cursor:pointer; list-style:none; }
.sector-card summary::-webkit-details-marker { display:none; }
.sector-card summary::after { content:'+'; color:var(--gold); font:500 22px 'Inter',sans-serif; }
.sector-card[open] summary::after { content:'−'; }
.sector-card ul { display:grid; grid-template-columns:1fr 1fr; gap:8px 16px; margin:0; padding:0 19px 20px 34px; color:var(--muted); font-size:11px; }
.location-checks { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }
.check-card { padding:17px 16px; background:var(--paper); border-left:2px solid var(--gold); color:#455560; font-size:12px; }
.check-card strong { display:block; margin-bottom:4px; color:var(--navy); font:700 13px 'Manrope',sans-serif; }
.deliverables { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }
.deliverable { min-height:106px; padding:18px; border:1px solid var(--line); background:#fff; }
.deliverable span { display:block; margin-bottom:14px; color:var(--gold); font:700 10px 'Manrope',sans-serif; }
.deliverable strong { display:block; color:var(--navy); font:700 13px 'Manrope',sans-serif; line-height:1.35; }

/* Dashboard */
.demo-shell { overflow:hidden; border:1px solid #d6dfe4; background:#fff; box-shadow:var(--shadow); }
.demo-head { display:flex; align-items:center; justify-content:space-between; gap:22px; padding:22px 25px; background:var(--navy); color:white; }
.demo-head h3 { margin:0; color:white; font-size:17px; }
.demo-head p { margin:5px 0 0; color:#b9c8d1; font-size:10px; }
.demo-tag { padding:7px 9px; border:1px solid rgba(201,169,110,.65); color:#e5d1aa; font-size:9px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; white-space:nowrap; }
.demo-toolbar { display:flex; justify-content:space-between; align-items:center; gap:15px; padding:15px 25px; border-bottom:1px solid var(--line); background:#f9faf9; }
.demo-toolbar label { color:var(--muted); font-size:10px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.demo-toolbar select { min-width:180px; padding:9px 30px 9px 11px; border:1px solid #cbd5db; border-radius:0; background:#fff; color:var(--navy); font-size:11px; }
.demo-metrics { display:grid; grid-template-columns:repeat(4,1fr); border-bottom:1px solid var(--line); }
.demo-metric { padding:20px 22px; border-right:1px solid var(--line); }
.demo-metric:last-child { border-right:0; }
.demo-metric span { display:block; color:var(--muted); font-size:10px; }
.demo-metric strong { display:block; margin-top:4px; color:var(--navy); font:700 27px 'Manrope',sans-serif; }
.demo-metric small { color:#86929a; font-size:9px; }
.demo-charts { display:grid; grid-template-columns:1fr 1fr; gap:0; }
.demo-chart { min-height:245px; padding:23px 25px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
.demo-chart:nth-child(2n) { border-right:0; }
.demo-chart h4 { margin-bottom:4px; }
.demo-chart > p { margin-bottom:20px; color:var(--muted); font-size:10px; }
.bar-list { display:grid; gap:12px; }
.bar-row { display:grid; grid-template-columns:80px 1fr 30px; align-items:center; gap:9px; color:#5b6973; font-size:10px; }
.bar-track { height:7px; background:#edf1f3; }
.bar-fill { height:100%; background:var(--blue); width:var(--v); transform-origin:left; animation:bar-in .7s ease both; }
.bar-row:nth-child(2) .bar-fill { background:#527b91; }.bar-row:nth-child(3) .bar-fill { background:#8198a5; }.bar-row:nth-child(4) .bar-fill { background:#b3c0c7; }.bar-row:nth-child(5) .bar-fill { background:var(--gold); }
.bar-row b { color:var(--navy); font-size:10px; text-align:right; }
@keyframes bar-in { from { transform:scaleX(.15); } to { transform:scaleX(1); } }
.map-panel { position:relative; min-height:175px; overflow:hidden; background:#eef2f1; border:1px solid #e0e7e5; }
.map-panel svg { position:absolute; inset:0; width:100%; height:100%; }
.map-caption { position:absolute; left:12px; bottom:10px; padding:5px 8px; background:rgba(255,255,255,.9); color:#52616a; font-size:8px; letter-spacing:.06em; text-transform:uppercase; }
.map-points { display:flex; flex-wrap:wrap; gap:8px 16px; margin-top:14px; color:var(--muted); font-size:9px; }
.map-points span::before { content:''; display:inline-block; width:6px; height:6px; margin-right:6px; border-radius:50%; background:var(--gold); }
.demo-foot { padding:12px 25px; background:#f8f9f8; color:#76848d; font-size:9px; }
.demo-foot strong { color:var(--navy); }

/* Method steps */
.method-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:0; border-top:1px solid var(--line); border-left:1px solid var(--line); }
.method-step { min-height:180px; padding:22px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
.method-step span { display:block; margin-bottom:28px; color:var(--gold); font:700 20px 'Manrope',sans-serif; }
.method-step h3 { font-size:16px; }
.method-step p { margin-bottom:0; color:var(--muted); font-size:12px; }

/* Project pages */
.project-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.project-stat { padding:23px; background:var(--paper); border-top:2px solid var(--gold); }
.project-stat strong { display:block; margin-bottom:8px; color:var(--navy); font:700 28px 'Manrope',sans-serif; }
.project-stat span { color:var(--muted); font-size:11px; }
.project-gallery { display:grid; grid-template-columns:1.1fr .9fr .9fr; gap:12px; }
.gallery-slot { position:relative; display:flex; flex-direction:column; justify-content:end; min-height:230px; padding:20px; overflow:hidden; background:#e9eef0; border:1px dashed #9aaab4; }
.gallery-slot:first-child { min-height:300px; background:#e2e9eb; }
.gallery-slot::before { content:''; position:absolute; inset:0; opacity:.5; background-image:linear-gradient(135deg,transparent 49.5%,rgba(16,40,63,.08) 50%,transparent 50.5%),linear-gradient(45deg,transparent 49.5%,rgba(16,40,63,.06) 50%,transparent 50.5%); background-size:38px 38px; }
.gallery-slot > * { position:relative; z-index:1; }
.gallery-slot .slot-icon { width:35px; height:35px; display:grid; place-items:center; margin-bottom:auto; border:1px solid #bdc9cf; color:var(--blue); }
.gallery-slot strong { color:var(--navy); font:700 13px 'Manrope',sans-serif; }
.gallery-slot span { color:#71808a; font-size:10px; }
.notice { padding:18px 20px; border-left:3px solid var(--gold); background:#f8f6f1; color:#5c6264; font-size:12px; }
.notice strong { color:var(--navy); }

/* Contact */
.contact-layout { display:grid; grid-template-columns:.8fr 1.2fr; gap:55px; align-items:start; }
.contact-details { padding:30px; background:var(--navy); color:white; }
.contact-details h3 { color:white; }
.contact-details > p { color:#c2d0d8; font-size:13px; }
.contact-line { padding:18px 0; border-top:1px solid rgba(255,255,255,.16); }
.contact-line span { display:block; margin-bottom:5px; color:#aebfc9; font-size:9px; font-weight:700; letter-spacing:.13em; text-transform:uppercase; }
.contact-line strong { color:white; font:600 14px 'Manrope',sans-serif; overflow-wrap:anywhere; }
.contact-line small { display:block; margin-top:4px; color:#9fb0bc; font-size:10px; }
.contact-form { display:grid; grid-template-columns:1fr 1fr; gap:17px 15px; }
.form-field { display:flex; flex-direction:column; gap:7px; }
.form-field.full { grid-column:1/-1; }
.form-field label { color:#3c4b56; font-size:10px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.form-field input, .form-field select, .form-field textarea { width:100%; border:1px solid #cfd8dd; border-radius:0; outline:0; background:white; color:var(--ink); padding:12px 13px; font-size:12px; transition:border .2s ease, box-shadow .2s ease; }
.form-field input:focus, .form-field select:focus, .form-field textarea:focus { border-color:var(--blue); box-shadow:0 0 0 3px rgba(31,85,121,.1); }
.form-field textarea { min-height:132px; resize:vertical; }
.form-note { grid-column:1/-1; margin:0; color:var(--muted); font-size:10px; }
.form-alert { grid-column:1/-1; display:none; padding:12px 14px; border-left:3px solid var(--blue); background:#eff4f6; color:var(--navy); font-size:12px; }
.form-alert.visible { display:block; }
.hp-field { position:absolute !important; left:-9999px !important; width:1px !important; height:1px !important; overflow:hidden !important; }

/* CTA */
.cta-section { padding:72px 0; background:var(--navy); color:white; }
.cta-inner { display:flex; align-items:center; justify-content:space-between; gap:35px; }
.cta-inner h2 { max-width:700px; margin:12px 0 0; color:white; font-size:clamp(29px,3.5vw,42px); }
.cta-inner p { max-width:680px; margin:13px 0 0; color:#c4d1d9; font-size:13px; }

/* Footer */
.site-footer { background:#0c2032; color:white; }
.footer-main { display:grid; grid-template-columns:1.3fr .7fr .9fr; gap:60px; padding:58px 0 45px; }
.footer-brand .brand-logo { padding: 4px 8px; background: white; }
.footer-brand p { max-width:360px; margin:22px 0 0; color:#9eafb9; font-size:12px; }
.footer-heading { margin-bottom:18px; color:#e8edf0; font:700 11px 'Manrope',sans-serif; letter-spacing:.12em; text-transform:uppercase; }
.footer-links { display:grid; gap:10px; }
.footer-links a { color:#aebdc6; font-size:11px; transition:color .2s ease; }
.footer-links a:hover { color:var(--gold); }
.footer-bottom { display:flex; justify-content:space-between; gap:25px; padding:18px 0 22px; border-top:1px solid rgba(255,255,255,.13); color:#899da9; font-size:9px; letter-spacing:.04em; }
.footer-bottom a { color:#b9c6ce; }

/* Reveal motion: subtle, with reduced-motion fallback */
.reveal { opacity:0; transform:translateY(13px); transition:opacity .65s ease, transform .65s ease; }
.reveal.is-visible { opacity:1; transform:none; }
.delay-1 { transition-delay:.08s; }.delay-2 { transition-delay:.16s; }.delay-3 { transition-delay:.24s; }
@media (prefers-reduced-motion: reduce) { *,*::before,*::after { scroll-behavior:auto !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; } .reveal { opacity:1; transform:none; } }

/* Responsive */
@media (max-width: 1020px) {
  .main-nav { gap:14px; }
  .main-nav a { font-size:10px; }
  .brand { min-width:180px; }
  .hero-grid { gap:36px; }
  .hero-visual { min-height:420px; }
  .visual-orbit { width:165px; height:165px; }
  .orbit-center { inset:58px; }
  .cards { grid-template-columns:repeat(2,1fr); }
  .sector-grid { grid-template-columns:repeat(2,1fr); }
  .deliverables { grid-template-columns:repeat(3,1fr); }
}
@media (max-width: 820px) {
  .container { width:min(var(--container),calc(100% - 36px)); }
  .header-inner { min-height:72px; }
  .menu-toggle { display:block; }
  .main-nav { position:fixed; top:72px; left:0; right:auto; bottom:0; width:100%; display:flex; flex-direction:column; align-items:stretch; gap:0; padding:18px 24px 30px; background:white; visibility:hidden; transform:translateX(-100%); transition:transform .25s ease; overflow:auto; }
  .main-nav.open { visibility:visible; transform:translateX(0); }
  .main-nav a { padding:16px 0; border-bottom:1px solid var(--line); font-size:13px; }
  .main-nav a::after { display:none; }
  .main-nav .nav-cta { margin-top:20px; padding:14px 17px; border:0; text-align:center; }
  .hero-grid { grid-template-columns:1fr; }
  .home-hero { padding:57px 0 60px; }
  .home-hero::before { width:100%; clip-path:none; opacity:.6; }
  .hero-copy h1 { max-width:700px; }
  .hero-visual { max-width:620px; width:100%; margin-inline:auto; }
  .section { padding:70px 0; }
  .section-head { display:block; }
  .section-head > p { margin-top:20px; }
  .two-col, .contact-layout { grid-template-columns:1fr; gap:35px; }
  .editorial-aside { max-width:590px; }
  .proof-band { grid-template-columns:1fr 1fr; }
  .proof-item:nth-child(2) { border-right:0; }
  .proof-item:last-child { grid-column:1/-1; border-top:1px solid rgba(255,255,255,.14); }
  .timeline { grid-template-columns:repeat(2,1fr); row-gap:18px; }
  .timeline::before { display:none; }
  .location-checks { grid-template-columns:repeat(2,1fr); }
  .footer-main { grid-template-columns:1fr 1fr; gap:35px; }
  .footer-brand { grid-column:1/-1; }
  .cta-inner { align-items:flex-start; flex-direction:column; }
}
@media (max-width: 580px) {
  body { font-size:14px; }
  .container { width:calc(100% - 30px); }
  .brand { min-width:0; }
  .brand-logo { width:165px; max-height:56px; }
  h1 { font-size:40px; }
  h2 { font-size:31px; }
  .home-hero { padding:46px 0 48px; }
  .hero-visual { min-height:0; padding:15px; box-shadow:10px 10px 0 rgba(201,169,110,.24); }
  .visual-main { grid-template-columns:1fr; text-align:center; padding:23px 0; }
  .visual-main p { margin-inline:auto; }
  .visual-orbit { width:150px; height:150px; }
  .orbit-center { inset:52px; }
  .visual-metric { padding:12px 6px; }
  .visual-metric strong { font-size:19px; }
  .visual-metric span { font-size:8px; }
  .visual-bottom { font-size:8px; }
  .section { padding:58px 0; }
  .section.compact { padding:48px 0; }
  .cards, .sector-grid, .method-grid { grid-template-columns:1fr; }
  .card { min-height:unset; }
  .values-grid { grid-template-columns:repeat(2,1fr); }
  .value { padding:18px; }
  .proof-band { grid-template-columns:1fr; }
  .proof-item, .proof-item:nth-child(2), .proof-item:last-child { grid-column:auto; border-right:0; border-top:1px solid rgba(255,255,255,.14); padding:23px; }
  .proof-item:first-child { border-top:0; }
  .feature-list { grid-template-columns:1fr; gap:10px; }
  .page-hero { padding:60px 0 53px; }
  .page-hero h1 { font-size:39px; }
  .split-panel { grid-template-columns:1fr; }
  .split-panel .panel-copy { padding:42px 24px; }
  .split-panel .panel-art { min-height:250px; }
  .service-heading { grid-template-columns:1fr; gap:15px; }
  .service-letter { width:50px; height:50px; font-size:20px; }
  .research-bullets { grid-template-columns:1fr 1fr; gap:0 15px; }
  .sector-card ul { grid-template-columns:1fr 1fr; }
  .location-checks { grid-template-columns:1fr 1fr; }
  .deliverables { grid-template-columns:1fr 1fr; }
  .demo-head { align-items:flex-start; flex-direction:column; padding:19px; }
  .demo-toolbar { align-items:flex-start; flex-direction:column; padding:14px 19px; }
  .demo-toolbar select { width:100%; }
  .demo-metrics { grid-template-columns:1fr 1fr; }
  .demo-metric { padding:15px 16px; border-bottom:1px solid var(--line); }
  .demo-metric:nth-child(2) { border-right:0; }
  .demo-metric:nth-child(3), .demo-metric:nth-child(4) { border-bottom:0; }
  .demo-metric strong { font-size:23px; }
  .demo-charts { grid-template-columns:1fr; }
  .demo-chart { border-right:0; padding:20px 18px; }
  .project-stats { grid-template-columns:1fr; }
  .project-gallery { grid-template-columns:1fr 1fr; }
  .gallery-slot:first-child { grid-column:1/-1; min-height:220px; }
  .gallery-slot { min-height:180px; padding:15px; }
  .contact-details { padding:23px; }
  .contact-form { grid-template-columns:1fr; }
  .form-field.full, .form-note, .form-alert { grid-column:auto; }
  .footer-main { grid-template-columns:1fr 1fr; gap:28px 20px; padding:45px 0 35px; }
  .footer-brand { grid-column:1/-1; }
  .footer-bottom { flex-direction:column; gap:8px; }
  .button-row .button { width:100%; }
}

.skip-link { position:absolute; z-index:1000; top:10px; left:10px; padding:10px 14px; background:var(--gold); color:var(--navy); font-size:12px; font-weight:700; transform:translateY(-160%); }
.skip-link:focus { transform:translateY(0); }
