/* Light redesign — shared surfaces and responsive layout */
:root { --navy:#f8faf6; --navy-mid:#ffffff; --navy-light:#e9f1e5; --pure:#142e41; --text:#253e4c; --silver:#536773; --muted:#5c707b; --accent:#39772b; --accent-dim:#2b6020; --accent2:#087d9c; --white:#fff; --fog:#e9f0ed; }
body { background:#f8faf6; }
nav { height:84px; background:rgba(255,255,255,.96); border-bottom:1px solid #e1e8df; padding:0 max(5%,calc((100% - 1200px)/2)); }
.nav-brand > span { color:#142e41; }
.nav-logo-icon { width:44px; height:44px; }
.nav-links a { color:#536773; }
.nav-links a.active { color:#39772b; }
.nav-cta,.btn-primary,.form-submit { background:#39772b; color:#fff; border-radius:6px; }
.nav-cta { padding:.7rem 1.15rem; }
.nav-cta:hover,.btn-primary:hover,.form-submit:hover { background:#2b6020; }
.page { padding-top:84px; }
.ticker-wrap { background:#edf3e9; border-bottom:1px solid #dce6d6; }
.ticker-track span { font-size:.68rem; letter-spacing:.13em; }
#home { background:radial-gradient(ellipse at 90% 35%,#e7f0e2,transparent 65%),#f8faf6; padding:5.5rem 0 4.5rem; min-height:660px; }
#home::before { display:none; }
.hero-inner { max-width:1200px; display:grid; grid-template-columns:1.15fr 1fr; gap:4rem; align-items:center; }
.hero-eyebrow { background:transparent; padding:0; font-size:.7rem; letter-spacing:.16em; margin-bottom:1.5rem; }
h1 { font-size:clamp(2.7rem,4.4vw,4.3rem); line-height:1.09; letter-spacing:-.045em; margin-bottom:1.5rem; }
h1 em { color:#142e41; }
h1 .wide { font-size:inherit; color:#39772b; letter-spacing:inherit; }
.hero-sub { font-size:1rem; text-align:left; line-height:1.85; margin-bottom:2rem; max-width:530px; }
.btn-outline { border:1px solid #b8c7b3; color:#253e4c; background:transparent; border-radius:6px; }
.hero-stats { gap:2rem; margin-top:2.5rem; padding-top:1.6rem; border-top:1px solid #dce5d7; }
.stat-num { font-size:1.5rem; }
.stat-label { font-size:.73rem; }
.insight-panel { background:#fff; border:1px solid #dce5d7; border-radius:16px; padding:1.8rem; box-shadow:0 22px 65px #2943210e; transform:rotate(-2deg); }
.insight-top { display:flex; align-items:center; justify-content:space-between; font-size:.72rem; color:#5c707b; border-bottom:1px solid #edf1ea; padding-bottom:1rem; }
.insight-top strong { color:#142e41; font-size:.85rem; }
.insight-heading { font-family:var(--display); font-size:1.65rem; color:#142e41; margin:1.5rem 0 .3rem; font-weight:600; }
.insight-description { color:#5c707b; font-size:.8rem; }
.insight-chart { width:100%; height:auto; margin:1.3rem 0; }
.insight-bottom { display:grid; grid-template-columns:repeat(3,1fr); gap:.6rem; }
.insight-bottom div { border-radius:7px; background:#f3f7ef; padding:1rem .7rem; font-size:.69rem; color:#536773; }
.insight-bottom strong { display:block; color:#39772b; font-size:.95rem; margin-bottom:.3rem; }
section { max-width:1200px; padding-top:5rem; padding-bottom:5rem; }
h2 { font-size:clamp(1.8rem,3.3vw,2.7rem); }
.service-card,.team-card,.vision-card,.value-card,.market-pill,.contact-form { border-color:#dce5d7; box-shadow:0 5px 20px #29432104; }
.service-card { padding:2.1rem; }
.service-card::after { border-radius:14px 14px 0 0; }
.team-avatar { color:#fff; background:#39772b; }
.faq-item,.team-section,.markets-section { border-color:#dce5d7; }
.form-group input,.form-group select,.form-group textarea { background:#f8faf6; border-color:#d8e2d3; color:#253e4c; }
.form-group input::placeholder,.form-group textarea::placeholder { color:#687a82; }
.form-error { color:#b33131; }
footer { background:#edf2e9; border-top:1px solid #dce5d7; }
.footer-inner { max-width:1080px; }
.footer-brand > span { color:#142e41; }
.footer-copy { border-color:#d4dfcf; }
:focus-visible { outline:3px solid #087d9c; outline-offset:4px; }
@media(max-width:1000px) { .hero-inner { gap:2rem; } .hero-stats { gap:1rem; } }
@media(max-width:760px) { .hero-inner { grid-template-columns:1fr; } #home { padding:3.5rem 0; } .insight-panel { transform:none; max-width:540px; } nav { flex-wrap:wrap; height:110px; padding-top:10px; padding-bottom:10px; } .nav-links { display:flex; order:3; width:100%; justify-content:center; gap:1.5rem; } .nav-links a { font-size:.78rem; } .page { padding-top:110px; } .nav-brand { font-size:1.2rem; } .nav-logo-icon { width:34px; height:34px; } .nav-cta { font-size:.75rem; } .contact-form { padding:1.5rem; } .footer-links { flex-wrap:wrap; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation:none!important; transition:none!important; } }

/* Shared fixed navigation and ticker; content scrolls beneath this header. */
:root { --site-header-height:120px; }
.site-header { position:fixed; inset:0 0 auto; z-index:100; background:#fff; }
.site-header nav { position:relative; top:auto; left:auto; z-index:auto; }
.site-header .ticker-wrap { height:36px; display:flex; align-items:center; padding:0; }
.site-header .ticker-track { flex-shrink:0; }
.page { padding-top:var(--site-header-height); }
html { scroll-padding-top:var(--site-header-height); }
@media(max-width:760px) {
  :root { --site-header-height:146px; }
  .site-header nav { height:auto; min-height:110px; row-gap:8px; }
  .site-header .nav-links { flex-wrap:wrap; column-gap:1.5rem; row-gap:.3rem; }
  .page { padding-top:var(--site-header-height); }
}

/* Service information in place of growth statistics. */
.hero-stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.stat-num { font-size:.9rem; line-height:1.5; font-weight:600; }
.stat-label { font-size:.71rem; line-height:1.7; margin-top:.3rem; }
@media(max-width:400px) { .hero-stats { grid-template-columns:1fr; } }

/* Restored satellite and spatial analysis illustration. */
.insight-panel { transform:none; padding:1.6rem; }
.insight-heading { font-size:1.85rem; line-height:1.2; letter-spacing:-.03em; }
.spatial-visual { margin:1.4rem 0; }
.spatial-visual svg { display:block; width:100%; height:auto; }
.visual-caption { display:block; margin-top:.6rem; font-size:.65rem; color:#5c707b; }
.insight-bottom div { font-size:.66rem; line-height:1.6; }
.insight-bottom strong { font-size:.84rem; }
@media(max-width:400px) { .insight-top { gap:.5rem; } .insight-top span { font-size:.6rem; } }

/* Services banner follows the shared fixed ticker. */
.services-banner { width:100%; max-width:1200px; margin:0 auto; padding:0 5%; background:#f8faf6; }
.services-banner img { display:block; width:100%; height:auto; }
