/* A landscape-led direction inspired by the supplied reference. */
:root { --accent: #245c49; --ink: #183c34; --ink-soft: #5a6e67; --line: #e1e8e3; --paper: #f5f8f5; --shell: min(1360px, calc(100% - 112px)); }
body { color: var(--ink); }
.hero-shell:has(.hero-panel-home) { position: relative; isolation: isolate; overflow: hidden; min-height: 100svh; background: #326f95; color: #fff; }
.hero-shell:has(.hero-panel-home)::before { content: ''; position: absolute; inset: 0; z-index: -2; background: url('/landscape-hero.png') center center / cover no-repeat; animation: landscape-arrive 1.5s ease-out both; }
.hero-shell:has(.hero-panel-home)::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(7,37,58,.46), rgba(7,37,58,.17) 58%, rgba(7,37,58,.04)), linear-gradient(0deg, rgba(8,39,36,.14), transparent 55%); }
.topbar { min-height: 92px; border-bottom: 1px solid var(--line); }
.wordmark { font-size: 1.65rem; letter-spacing: -.06em; }
.topnav { gap: 26px; }
.topnav a { color: #566b61; }
.topnav a:last-child { background: #245c49; color: #fff; border-radius: 4px; }
.hero-shell:has(.hero-panel-home) .topbar { border-color: #ffffff26; }
.hero-shell:has(.hero-panel-home) .wordmark, .hero-shell:has(.hero-panel-home) .menu-toggle { color: #fff; }
.hero-shell:has(.hero-panel-home) .topnav a { color: #fff; }
.hero-shell:has(.hero-panel-home) .topnav a:last-child { color: #193c33; background: #f6f9ef; padding: 12px 22px; }
.hero-shell:has(.hero-panel-home) .topnav a:hover { opacity: .8; }
.hero-panel-home { min-height: calc(100svh - 92px); padding: clamp(80px, 12vh, 140px) 0 120px; display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-start; text-align: left; gap: 28px; }
.hero-panel-home .hero-headline h1 { max-width: 850px; font-size: clamp(3.7rem, 6.2vw, 6rem); line-height: 1.06; font-weight: 500; letter-spacing: -.07em; }
.hero-panel-home .hero-headline h1 em { color: #fff; }
.hero-panel-home .hero-aside { max-width: 470px; }
.hero-panel-home .hero-aside-copy { color: #f1f5f5; font-size: 1.0625rem; line-height: 1.7; max-width: 45ch; }
.hero-panel-home .hero-actions { justify-content: flex-start; margin-top: 28px; gap: 16px; }
.hero-panel-home .button-primary { background: #f6f9ef; color: #1e4134; border-color: #f6f9ef; box-shadow: none; }
.hero-panel-home .button-primary:hover { background: white; }
.hero-panel-home .button-secondary { color: #fff; background: transparent; border-color: #ffffff65; }
.hero-panel-home .button-secondary:hover { background: #ffffff15; }
.button { border-radius: 4px; font-size: .875rem; }
.hero-media { display: none; }
.hero-panel:not(.hero-panel-home) { padding-block: 80px; }
.hero-panel:not(.hero-panel-home) .hero-headline h1 { font-weight: 500; }
.section-title, .statement-block h2 { font-weight: 500; letter-spacing: -.045em; }
.overview-grid { padding-block: 88px; }
.stats-grid-horizontal { gap: 24px; }
.stat-item, .stat-item + .stat-item { padding: 20px 0 !important; min-height: 0; border: 0; border-top: 1px solid var(--line); background: transparent; border-radius: 0; }
.stat-value { font-weight: 500; }
.light-section:has(.partner-shell) { background: #f4f7f3; }
.partner-intro, .approach-intro { max-width: none; display: grid; grid-template-columns: 1fr 1fr; text-align: left; gap: 64px; align-items: end; }
.partner-intro .section-intro-copy, .approach-intro .section-intro-copy { margin: 0; }
.platform-grid { gap: 32px; }
.platform-card { border: 0; border-top: 1px solid #bdcfc3; padding: 28px 0 0; border-radius: 0; background: transparent; box-shadow: none; }
.platform-card-link:hover { box-shadow: none; border-color: #245c49; }
.platform-card h3 { font-weight: 500; }
.platform-link-meta, .publication-cta a { color: #245c49; }
.approach-card { background: transparent; border: 0; border-top: 1px solid var(--line); border-radius: 0; padding: 28px 0 0; }
.insight-home-card, .insight-preview-card { border: 0; border-top: 1px solid var(--line); border-radius: 0; padding: 26px 0 0; background: transparent; }
.insight-home-card:hover, .insight-preview-card:hover { border-color: #245c49; }
.contact-panel:not(:has(form)) { background: #eaf1e9; border: 0; border-radius: 6px; }
.contact-panel:not(:has(form)) .button { background: #245c49; border-color: #245c49; }
.site-footer { background: #f4f7f3; }
.contact-form-preview { background: #f4f7f3; border-radius: 6px; }
.footer-nav a, .footer-contact a { color: #53685e; }
@keyframes landscape-arrive { from { transform: scale(1.025); } to { transform: scale(1); } }
@media (min-width: 1001px) { .topnav a[href='/'] { display: none; } }
@media (max-width: 1100px) { :root { --shell: calc(100% - 64px); } .topnav { gap: 18px; } }
@media (max-width: 1000px) {
  .topbar { min-height: 80px; }
  .hero-panel-home { min-height: calc(100svh - 80px); padding: 100px 0 120px; }
  .hero-shell:has(.hero-panel-home) .topnav.is-open { background: #153d36f5; padding: 16px; border-radius: 6px; margin-bottom: 16px; }
  .hero-shell:has(.hero-panel-home)::before { background-position: 58% center; }
  .hero-panel-home .hero-headline h1 { font-size: clamp(3.5rem, 8vw, 5rem); }
}
@media (max-width: 680px) {
  :root { --shell: calc(100% - 40px); }
  .hero-panel-home { padding: 72px 0 150px; min-height: calc(100svh - 80px); gap: 24px; }
  .hero-panel-home .hero-headline h1 { font-size: clamp(3rem, 12vw, 4.5rem); line-height: 1.07; }
  .hero-shell:has(.hero-panel-home)::before { background-position: 54% center; }
  .hero-shell:has(.hero-panel-home)::after { background: linear-gradient(90deg, #102f4b70, #102f4b25), linear-gradient(0deg, transparent, #102f4b18); }
  .hero-panel-home .hero-aside-copy { font-size: 1rem; max-width: 36ch; }
  .hero-panel-home .hero-actions { width: auto; align-items: flex-start; }
  .hero-panel-home .hero-actions .button { width: auto; min-height: 48px; }
  .hero-panel-home .button-secondary { border: 0; padding-inline: 0; }
  .overview-grid { padding-block: 56px; }
  .partner-intro, .approach-intro { grid-template-columns: 1fr; gap: 20px; }
}
@media (prefers-reduced-motion: reduce) { .hero-shell:has(.hero-panel-home)::before { animation: none; } }
