/* ============================================================
   ESS NJ — Award-Tier Institutional Design System
   Palette: Red #D42027 / Navy / White — matched to reference
   Typography: Playfair Display (headlines) + Inter (body)
   ============================================================ */

/* --- CSS Custom Properties --- */
:root {
  --color-black: #0a0a0a;
  --color-charcoal: #141418;
  --color-dark: #1a1a20;
  --color-steel: #2a2a32;
  --color-navy: #14233f;
  --color-navy-light: #1a2b4a;
  --color-gray-700: #3a3a44;
  --color-gray-500: #6b6b78;
  --color-gray-400: #8a8a96;
  --color-gray-300: #a8a8b4;
  --color-gray-200: #d0d0d8;
  --color-gray-100: #e8e8ec;
  --color-white: #f8f8fa;
  --color-pure-white: #ffffff;
  --color-red: #D42027;
  --color-red-light: #E02D34;
  --color-red-dim: rgba(212,32,39,0.10);
  --color-red-dark: #B71C22;
  /* Legacy aliases for broad compatibility */
  --color-blue: #D42027;
  --color-blue-light: #E02D34;
  --color-blue-dim: rgba(212,32,39,0.10);
  --color-metallic: #9ca3af;
  --color-metallic-dim: rgba(156,163,175,0.15);
  --color-success: #4a8a6a;
  --color-error: #c44a4a;

  --font-display: 'Playfair Display', Georgia, 'Times New Roman', serif;
  --font-body: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;

  --container-max: 1280px;
  --container-narrow: 960px;
  --section-padding: 120px;
  --section-padding-mobile: 72px;

  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 16px;
  --radius-xl: 24px;

  --shadow-sm: 0 1px 3px rgba(0,0,0,0.12);
  --shadow-md: 0 4px 20px rgba(0,0,0,0.15);
  --shadow-lg: 0 8px 40px rgba(0,0,0,0.2);
  --shadow-card: 0 2px 12px rgba(0,0,0,0.08);

  --transition-fast: 0.2s cubic-bezier(0.4,0,0.2,1);
  --transition-med: 0.4s cubic-bezier(0.4,0,0.2,1);
  --transition-slow: 0.6s cubic-bezier(0.4,0,0.2,1);

  --header-height: 72px;
}

/* --- Reset & Base --- */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; overflow-x: hidden; }
body { font-family: var(--font-body); background: var(--color-white); color: var(--color-charcoal); line-height: 1.6; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; overflow-x: hidden; }
html, body { max-width: 100vw; overflow-x: hidden; }
@supports (overflow: clip) { html, body { overflow-x: clip; } }

img { max-width: 100%; height: auto; display: block; }
a { text-decoration: none; color: inherit; transition: color var(--transition-fast); }
ul { list-style: none; }
button { border: none; background: none; cursor: pointer; font-family: inherit; }
input, select, textarea { font-family: inherit; font-size: 1rem; }

.container { max-width: var(--container-max); margin: 0 auto; padding: 0 24px; }

/* --- Utility Bar (above header) --- */
.utility-bar { background: var(--color-charcoal); color: var(--color-gray-300); font-size: 0.75rem; letter-spacing: 0.04em; padding: 6px 0; position: relative; z-index: 100; }
.utility-inner { display: flex; align-items: center; justify-content: flex-end; gap: 20px; }
.utility-bar a { color: var(--color-gray-300); transition: color var(--transition-fast); }
.utility-bar a:hover { color: var(--color-pure-white); }
.utility-phone { font-weight: 600; letter-spacing: 0.06em; }
.utility-divider { width: 1px; height: 12px; background: rgba(255,255,255,0.15); }
@media (max-width: 767px) { .utility-bar { display: none; } }

/* --- Header / Navigation --- */
.site-header { position: fixed; top: 0; left: 0; right: 0; z-index: 90; background: rgba(255,255,255,0.98); backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px); border-bottom: 1px solid rgba(0,0,0,0.06); box-shadow: 0 1px 3px rgba(0,0,0,0.03); height: var(--header-height); transition: background var(--transition-med), transform var(--transition-med), box-shadow var(--transition-med); }
.site-header.scrolled { background: rgba(255,255,255,0.99); box-shadow: 0 2px 16px rgba(0,0,0,0.08); }
.site-header.has-utility { top: 30px; }
@media (max-width: 767px) { .site-header.has-utility { top: 0; } }
.nav-container { display: flex; align-items: center; justify-content: space-between; height: var(--header-height); }

.logo { display: flex; align-items: center; gap: 10px; color: var(--color-charcoal); flex-shrink: 0; }
.logo-img { height: 44px; width: auto; object-fit: contain; max-width: 140px; }
.logo-mark { font-family: var(--font-display); font-size: 1.75rem; font-weight: 700; letter-spacing: 0.04em; color: var(--color-charcoal); }
.logo-sub { font-size: 0.625rem; color: var(--color-gray-400); letter-spacing: 0.1em; text-transform: uppercase; display: none; font-weight: 500; }
@media (min-width: 1024px) { .logo-sub { display: inline; } }

/* Desktop Nav */
.main-nav { display: none; }
@media (min-width: 1024px) { .main-nav { display: flex; align-items: center; } }
.nav-list { display: flex; align-items: center; gap: 4px; }
.nav-list > li { position: relative; }
.nav-list > li > a { display: flex; align-items: center; gap: 4px; color: var(--color-charcoal); font-size: 0.8125rem; font-weight: 500; letter-spacing: 0.02em; padding: 8px 14px; border-radius: var(--radius-sm); transition: color var(--transition-fast), background var(--transition-fast); }
.nav-list > li > a:hover { color: var(--color-red); background: var(--color-red-dim); }
.nav-list > li.active > a { color: var(--color-red); }

.nav-actions { display: flex; align-items: center; gap: 12px; flex-shrink: 0; }
.nav-phone { color: var(--color-charcoal); font-size: 0.8125rem; font-weight: 600; letter-spacing: 0.04em; display: none; }
@media (min-width: 1024px) { .nav-phone { display: inline-flex; align-items: center; gap: 6px; } }
.nav-phone:hover { color: var(--color-red); }
.nav-phone svg { flex-shrink: 0; }

/* Mobile Toggle — animated hamburger */
.mobile-toggle { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; padding: 0; position: relative; z-index: 101; }
.mobile-toggle-bars { width: 22px; height: 16px; position: relative; }
.mobile-toggle-bars span { display: block; position: absolute; left: 0; width: 100%; height: 2px; background: var(--color-charcoal); border-radius: 2px; transition: transform 0.35s cubic-bezier(0.77,0.2,0.05,1), opacity 0.25s ease, top 0.35s cubic-bezier(0.77,0.2,0.05,1); }
.mobile-toggle-bars span:nth-child(1) { top: 0; }
.mobile-toggle-bars span:nth-child(2) { top: 7px; }
.mobile-toggle-bars span:nth-child(3) { top: 14px; }
.mobile-toggle[aria-expanded="true"] .mobile-toggle-bars span:nth-child(1) { top: 7px; transform: rotate(45deg); }
.mobile-toggle[aria-expanded="true"] .mobile-toggle-bars span:nth-child(2) { opacity: 0; transform: scaleX(0); }
.mobile-toggle[aria-expanded="true"] .mobile-toggle-bars span:nth-child(3) { top: 7px; transform: rotate(-45deg); }
@media (min-width: 1024px) { .mobile-toggle { display: none; } }

/* --- Mobile Slide-In Panel --- */
.mobile-menu-backdrop { position: fixed; inset: 0; background: rgba(0,0,0,0.5); z-index: 95; opacity: 0; visibility: hidden; transition: opacity 0.3s ease, visibility 0.3s ease; -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.mobile-menu-backdrop.active { opacity: 1; visibility: visible; }
.mobile-menu-panel { position: fixed; top: 0; right: 0; bottom: 0; width: min(380px, 90vw); background: var(--color-pure-white); z-index: 96; transform: translateX(100%); transition: transform 0.4s cubic-bezier(0.16,1,0.3,1); overflow-y: auto; -webkit-overflow-scrolling: touch; display: flex; flex-direction: column; box-shadow: -8px 0 40px rgba(0,0,0,0.15); }
.mobile-menu-panel.active { transform: translateX(0); }
.mobile-menu-header { display: flex; align-items: center; justify-content: space-between; padding: 16px 24px; border-bottom: 1px solid var(--color-gray-100); flex-shrink: 0; }
.mobile-menu-header .logo-img { height: 34px; width: auto; object-fit: contain; max-width: 110px; }
@media (max-width: 767px) { .logo-img { height: 34px; max-width: 110px; } .footer-logo-chip .logo-img { height: 30px; max-width: 100px; } }
.mobile-menu-close { width: 36px; height: 36px; display: flex; align-items: center; justify-content: center; border-radius: 50%; background: var(--color-gray-100); color: var(--color-charcoal); transition: background var(--transition-fast), color var(--transition-fast); }
.mobile-menu-close:hover { background: var(--color-red); color: var(--color-pure-white); }
.mobile-menu-body { flex: 1; padding: 8px 0; overflow-y: auto; }
.mobile-menu-list { list-style: none; padding: 0; margin: 0; }
.mobile-menu-list > li { border-bottom: 1px solid var(--color-gray-100); }
.mobile-menu-list > li > a,
.mobile-menu-list > li > .mobile-menu-trigger { display: flex; align-items: center; justify-content: space-between; padding: 16px 24px; font-size: 1rem; font-weight: 500; color: var(--color-charcoal); transition: color var(--transition-fast), background var(--transition-fast); width: 100%; text-align: left; }
.mobile-menu-list > li > a:hover,
.mobile-menu-list > li > .mobile-menu-trigger:hover { color: var(--color-red); background: var(--color-red-dim); }
.mobile-menu-trigger svg { transition: transform 0.3s ease; color: var(--color-gray-400); flex-shrink: 0; }
.mobile-menu-trigger[aria-expanded="true"] svg { transform: rotate(180deg); color: var(--color-red); }
.mobile-submenu { max-height: 0; overflow: hidden; transition: max-height 0.35s cubic-bezier(0.4,0,0.2,1); background: var(--color-gray-100); }
.mobile-submenu.open { max-height: 600px; }
.mobile-submenu a { display: block; padding: 12px 24px 12px 40px; font-size: 0.9375rem; color: var(--color-gray-500); transition: color var(--transition-fast), background var(--transition-fast); border-top: 1px solid rgba(0,0,0,0.04); }
.mobile-submenu a:hover { color: var(--color-red); background: rgba(212,32,39,0.06); }
.mobile-menu-ctas { padding: 20px 24px; border-top: 1px solid var(--color-gray-100); flex-shrink: 0; display: flex; flex-direction: column; gap: 12px; }
.mobile-menu-ctas .btn { width: 100%; justify-content: center; }
.mobile-menu-cta-call { display: flex; align-items: center; justify-content: center; gap: 8px; padding: 14px 20px; background: var(--color-charcoal); color: var(--color-pure-white); border-radius: var(--radius-sm); font-size: 0.9375rem; font-weight: 600; letter-spacing: 0.04em; transition: background var(--transition-fast); text-transform: uppercase; }
.mobile-menu-cta-call:hover { background: var(--color-black); }
body.mobile-menu-open { overflow: hidden; }

/* --- Buttons --- */
.btn { display: inline-flex; align-items: center; justify-content: center; padding: 12px 28px; font-size: 0.875rem; font-weight: 600; letter-spacing: 0.04em; border-radius: var(--radius-sm); transition: all var(--transition-fast); white-space: nowrap; cursor: pointer; text-transform: uppercase; }
.btn-primary { background: var(--color-red); color: var(--color-pure-white); border: 1px solid var(--color-red); }
.btn-primary:hover { background: var(--color-red-light); border-color: var(--color-red-light); transform: translateY(-1px); box-shadow: 0 4px 16px rgba(212,32,39,0.3); }
.btn-outline { background: transparent; color: var(--color-pure-white); border: 1px solid rgba(255,255,255,0.25); }
.btn-outline:hover { border-color: var(--color-pure-white); background: rgba(255,255,255,0.06); }
.btn-ghost { background: transparent; color: var(--color-gray-400); border: 1px solid transparent; }
.btn-ghost:hover { color: var(--color-charcoal); }
.btn-lg { padding: 16px 36px; font-size: 0.9375rem; }
.btn-nav { padding: 8px 20px; font-size: 0.75rem; display: none; }
@media (min-width: 1024px) { .btn-nav { display: inline-flex; } }

/* --- Hero --- */
.hero { position: relative; min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: calc(var(--header-height) + 16px) 0 48px; overflow: hidden; }
.hero-bg { position: absolute; inset: 0; background: var(--color-black); }
.hero-bg-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 30%; animation: heroKenBurns 25s ease-in-out infinite alternate; will-change: transform; }
@keyframes heroKenBurns { 0% { transform: scale(1); } 100% { transform: scale(1.06); } }
@media (prefers-reduced-motion: reduce) { .hero-bg-img { animation: none; } }
.hero-overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,10,15,0.58) 0%, rgba(13,11,12,0.52) 45%, rgba(18,14,12,0.60) 100%); z-index: 1; }
/* Warm amber glow at bottom for golden-hour feel */
.hero-overlay::after { content: ''; position: absolute; bottom: 0; left: 0; width: 100%; height: 50%; background: radial-gradient(ellipse at bottom center, rgba(180,120,40,0.10) 0%, transparent 70%); pointer-events: none; }
.hero-grid-pattern { position: absolute; inset: 0; opacity: 0.03; z-index: 1;
  background-image: linear-gradient(rgba(255,255,255,0.5) 1px, transparent 1px),
                    linear-gradient(90deg, rgba(255,255,255,0.5) 1px, transparent 1px);
  background-size: 60px 60px;
}
@media (max-width: 768px) {
  .hero { padding-top: calc(var(--header-height) + 8px); padding-bottom: 32px; }
  .hero-bg-img { object-position: center center; }
  .hero-overlay { background: linear-gradient(180deg, rgba(10,10,15,0.60) 0%, rgba(13,11,12,0.54) 50%, rgba(18,14,12,0.62) 100%); }
}

.hero-content { position: relative; z-index: 2; text-align: center; max-width: 900px; margin: 0 auto; }
.hero-badge { display: inline-flex; align-items: center; gap: 12px; font-size: 0.6875rem; letter-spacing: 0.16em; text-transform: uppercase; color: rgba(255,255,255,0.85); padding: 8px 0; margin-bottom: 20px; opacity: 0; animation: fadeUp 0.8s 0.2s forwards; }
.hero-badge .badge-icon { color: var(--color-red); flex-shrink: 0; }
.hero-badge .badge-rule { width: 32px; height: 2px; background: var(--color-red); flex-shrink: 0; }
@media (max-width: 640px) { .hero-badge .badge-rule { width: 20px; } .hero-badge { font-size: 0.5625rem; gap: 8px; } }
.hero-headline { font-family: var(--font-display); font-size: clamp(2.5rem, 6vw, 5rem); font-weight: 700; color: var(--color-pure-white); line-height: 1.08; margin-bottom: 12px; letter-spacing: -0.02em; text-shadow: 0 2px 24px rgba(0,0,0,0.6), 0 1px 4px rgba(0,0,0,0.4); opacity: 0; animation: fadeUp 0.8s 0.4s forwards; }
.hero-sub { font-size: clamp(1.0625rem, 2vw, 1.4375rem); color: #ffffff; font-weight: 400; letter-spacing: 0.03em; margin-bottom: 16px; text-shadow: 0 2px 22px rgba(0,0,0,0.92), 0 1px 4px rgba(0,0,0,0.75); opacity: 0; animation: fadeUp 0.8s 0.6s forwards; }
.hero-desc { font-size: 1rem; color: var(--color-gray-300); max-width: 640px; margin: 0 auto 24px; line-height: 1.7; opacity: 0; animation: fadeUp 0.8s 0.7s forwards; }
.hero-ctas { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; margin-bottom: 16px; opacity: 0; animation: fadeUp 0.8s 0.8s forwards; }
.hero-trust-line { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; align-items: center; font-size: 0.8125rem; color: var(--color-gray-300); opacity: 0; animation: fadeUp 0.8s 1s forwards; }
.hero-trust-line .dot { width: 3px; height: 3px; border-radius: 50%; background: var(--color-gray-300); display: none; }
@media (min-width: 640px) { .hero-trust-line .dot { display: block; } }

.hero-scroll-indicator { position: absolute; bottom: 40px; left: 50%; transform: translateX(-50%); }
.scroll-line { width: 1px; height: 48px; background: linear-gradient(to bottom, var(--color-gray-500), transparent); animation: scrollPulse 2s infinite; }

.hero-headline .accent { color: var(--color-red); font-style: italic; }

/* --- Hero 4-Icon Step Row --- */
.hero-steps { display: flex; justify-content: center; gap: 28px; margin-bottom: 20px; opacity: 0; animation: fadeUp 0.8s 0.7s forwards; flex-wrap: wrap; }
.hero-step-item { display: flex; flex-direction: column; align-items: center; gap: 8px; text-align: center; max-width: 140px; }
.hero-step-icon { width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; color: var(--color-pure-white); opacity: 0.9; }
.hero-step-icon svg { width: 28px; height: 28px; }
.hero-step-label { font-size: 0.8125rem; font-weight: 600; color: var(--color-pure-white); letter-spacing: 0.02em; }
.hero-step-desc { font-size: 0.6875rem; color: var(--color-gray-300); line-height: 1.4; }
@media (max-width: 640px) { .hero-steps { display: grid; grid-template-columns: repeat(4, 1fr); flex-wrap: nowrap; gap: 8px; align-items: start; } .hero-step-item { max-width: none; width: 100%; gap: 6px; } .hero-step-icon { width: 32px; height: 32px; } .hero-step-icon svg { width: 20px; height: 20px; } .hero-step-label { font-size: 0.625rem; } .hero-step-desc { font-size: 0.5rem; line-height: 1.3; } }
@media (max-width: 360px) { .hero-steps { gap: 5px; } .hero-step-desc { font-size: 0.46875rem; } }

/* --- Hero Micro-line --- */
.hero-micro-line { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; align-items: center; font-size: 0.75rem; color: var(--color-gray-300); letter-spacing: 0.04em; margin-bottom: 16px; opacity: 0; animation: fadeUp 0.8s 0.95s forwards; }
.hero-micro-line .micro-check { color: var(--color-red); font-weight: 700; margin-right: 2px; }
.hero-micro-line .micro-sep { color: var(--color-gray-500); margin: 0 2px; }

/* --- Hero Trusted Partner Card --- */
.hero-trusted-card { background: rgba(10,10,15,0.75); border: 1px solid rgba(255,255,255,0.08); border-radius: var(--radius-lg); padding: 20px 24px; max-width: 560px; margin: 0 auto 20px; display: flex; align-items: flex-start; gap: 14px; text-align: left; opacity: 0; animation: fadeUp 0.8s 1.05s forwards; }
.hero-trusted-icon { flex-shrink: 0; width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; color: var(--color-red); }
.hero-trusted-content h3 { font-family: var(--font-display); font-size: 1rem; font-weight: 700; color: var(--color-pure-white); margin-bottom: 6px; }
.hero-trusted-content p { font-size: 0.8125rem; color: var(--color-gray-300); line-height: 1.5; margin: 0; }
@media (max-width: 640px) { .hero-trusted-card { padding: 18px 20px; gap: 12px; } }

/* --- Hero Bottom Button Pair --- */
.hero-bottom-btns { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; opacity: 0; animation: fadeUp 0.8s 1.15s forwards; }
.hero-btn-dark { display: inline-flex; flex-direction: column; align-items: center; gap: 2px; padding: 14px 28px; background: var(--color-charcoal); border: 1px solid rgba(255,255,255,0.12); border-radius: var(--radius-md); color: var(--color-pure-white); font-size: 0.875rem; font-weight: 600; letter-spacing: 0.02em; transition: all var(--transition-fast); text-align: center; }
.hero-btn-dark:hover { background: var(--color-dark); border-color: rgba(255,255,255,0.2); }
.hero-btn-dark .hero-btn-sub { font-size: 0.6875rem; font-weight: 400; color: var(--color-gray-400); }
.hero-btn-red { display: inline-flex; flex-direction: column; align-items: center; gap: 2px; padding: 14px 28px; background: var(--color-red); border: 1px solid var(--color-red); border-radius: var(--radius-md); color: var(--color-pure-white); font-size: 0.875rem; font-weight: 600; letter-spacing: 0.02em; transition: all var(--transition-fast); text-align: center; }
.hero-btn-red:hover { background: var(--color-red-light); border-color: var(--color-red-light); transform: translateY(-1px); box-shadow: 0 4px 16px rgba(212,32,39,0.3); }
.hero-btn-red .hero-btn-sub { font-size: 0.6875rem; font-weight: 400; color: rgba(255,255,255,0.8); }

@keyframes fadeUp { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: translateY(0); } }
@keyframes scrollPulse { 0%,100% { opacity: 0.3; } 50% { opacity: 0.8; } }

/* --- Section Base --- */
.section { padding: var(--section-padding) 0; }
@media (max-width: 768px) { .section { padding: var(--section-padding-mobile) 0; } }
.section-dark { background: var(--color-charcoal); color: var(--color-gray-200); }
.section-header { text-align: center; max-width: 720px; margin: 0 auto 64px; }
.section-tag { display: inline-block; font-size: 0.6875rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--color-red); margin-bottom: 16px; font-weight: 600; }
.section-dark .section-tag { color: var(--color-red); }
.section-title { font-family: var(--font-display); font-size: clamp(2rem, 4vw, 3.25rem); font-weight: 600; line-height: 1.15; margin-bottom: 20px; letter-spacing: -0.01em; color: var(--color-navy); }
.section-dark .section-title { color: var(--color-pure-white); }
.section-desc { font-size: 1.0625rem; color: var(--color-gray-500); line-height: 1.7; }
.section-dark .section-desc { color: var(--color-gray-400); }
.section-cta-wrap { text-align: center; margin-top: 48px; }

/* --- Grant Funding Grid --- */
.grant-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 16px; margin-bottom: 48px; }
.grant-item { background: var(--color-steel); border: 1px solid rgba(255,255,255,0.06); border-radius: var(--radius-md); padding: 24px 20px; display: flex; align-items: center; gap: 14px; transition: border-color var(--transition-fast), transform var(--transition-fast); }
.grant-item:hover { border-color: rgba(212,32,39,0.2); transform: translateY(-2px); }
.grant-icon { color: var(--color-red); flex-shrink: 0; }
.grant-item h3 { font-size: 0.875rem; font-weight: 500; color: var(--color-gray-200); }

.grant-opportunities { text-align: center; margin: 32px 0; padding: 32px; border: 1px solid rgba(255,255,255,0.08); border-radius: var(--radius-lg); }
.grant-opportunities h3 { font-family: var(--font-display); font-size: 1.25rem; color: var(--color-pure-white); margin-bottom: 12px; }
.grant-opp-note { font-size: 0.875rem; color: var(--color-gray-400); }

/* --- Wizard --- */
.section-wizard { background: linear-gradient(180deg, var(--color-white) 0%, var(--color-gray-100) 100%); }
.wizard-header { text-align: center; max-width: 600px; margin: 0 auto 40px; }
.wizard-container { max-width: 680px; margin: 0 auto; background: var(--color-pure-white); border-radius: var(--radius-xl); padding: 40px; box-shadow: var(--shadow-lg), 0 0 0 1px rgba(0,0,0,0.04); }

/* --- New Reference-Matching Wizard Progress --- */
.wizard-progress { margin-bottom: 36px; }
.wizard-progress-bar { display: none; }
.wizard-steps-indicator { display: flex; justify-content: space-between; align-items: flex-start; position: relative; }
.wizard-steps-indicator::before { content: ''; position: absolute; top: 18px; left: 18px; right: 18px; height: 2px; background: var(--color-gray-200); z-index: 0; }
.step-dot-wrap { display: flex; flex-direction: column; align-items: center; gap: 6px; position: relative; z-index: 1; }
.step-dot { width: 36px; height: 36px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 0.8125rem; font-weight: 700; background: var(--color-pure-white); color: var(--color-gray-400); border: 2px solid var(--color-gray-200); transition: all var(--transition-fast); }
.step-dot.active { background: var(--color-red); color: var(--color-pure-white); border-color: var(--color-red); }
.step-dot.completed { background: var(--color-red-dim); color: var(--color-red); border-color: var(--color-red); }
.step-dot-label { font-size: 0.625rem; font-weight: 500; color: var(--color-gray-500); text-align: center; max-width: 80px; line-height: 1.3; }
.step-dot-wrap.active .step-dot-label { color: var(--color-red); font-weight: 600; }
@media (max-width: 640px) { .step-dot-label { font-size: 0.5625rem; max-width: 60px; } .step-dot { width: 30px; height: 30px; font-size: 0.75rem; } }

.wizard-step { display: none; animation: fadeUp 0.4s forwards; }
.wizard-step.active { display: block; }

/* --- Wizard Step Header (icon + title + desc) --- */
.wizard-step-header { display: flex; align-items: flex-start; gap: 16px; margin-bottom: 28px; }
.wizard-step-header-icon { width: 52px; height: 52px; border-radius: 50%; background: var(--color-red-dim); display: flex; align-items: center; justify-content: center; flex-shrink: 0; color: var(--color-red); }
.wizard-step-header-icon svg { width: 24px; height: 24px; }
.wizard-step-header-text h3 { font-family: var(--font-display); font-size: 1.375rem; font-weight: 700; margin-bottom: 4px; color: var(--color-navy); }
.wizard-step-header-text p { font-size: 0.875rem; color: var(--color-gray-500); line-height: 1.5; margin: 0; }

/* Legacy wizard-step-title/desc (for non-header steps) */
.wizard-step-title { font-family: var(--font-display); font-size: 1.375rem; font-weight: 700; margin-bottom: 8px; color: var(--color-navy); }
.wizard-step-desc { font-size: 0.9375rem; color: var(--color-gray-500); margin-bottom: 24px; }

.form-group { margin-bottom: 24px; }
/* --- Form Label with Icon-Chip --- */
.form-label-row { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.form-icon-chip { width: 32px; height: 32px; border-radius: var(--radius-md); background: var(--color-red-dim); display: flex; align-items: center; justify-content: center; flex-shrink: 0; color: var(--color-red); }
.form-icon-chip svg { width: 16px; height: 16px; }
.form-group label { display: block; font-size: 0.875rem; font-weight: 700; color: var(--color-navy); margin-bottom: 6px; letter-spacing: 0.02em; }
.required { color: var(--color-red); }
.form-group input, .form-group select, .form-group textarea { width: 100%; padding: 12px 16px; border: 1px solid var(--color-gray-200); border-radius: var(--radius-md); font-size: 0.9375rem; color: var(--color-charcoal); background: var(--color-pure-white); transition: border-color var(--transition-fast), box-shadow var(--transition-fast); }
.form-group input:focus, .form-group select:focus, .form-group textarea:focus { outline: none; border-color: var(--color-red); box-shadow: 0 0 0 3px var(--color-red-dim); }
.form-group input.error, .form-group select.error { border-color: var(--color-error); }
.field-error { display: block; font-size: 0.75rem; color: var(--color-error); margin-top: 4px; min-height: 1em; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 640px) { .form-row { grid-template-columns: 1fr; } }
.form-group-sm { max-width: 120px; }
@media (max-width: 640px) { .form-group-sm { max-width: none; } }

/* Step 3: 3-col for city/state/zip on desktop */
@media (min-width: 641px) {
  .wizard-step[data-step="3"] .form-row { grid-template-columns: 1fr 100px 100px; }
}

/* --- 3-Card Selector (Yes / No / Not Sure) --- */
.radio-group { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
@media (min-width: 641px) { .radio-group.radio-group-3col { grid-template-columns: 1fr 1fr 1fr; } }
.radio-card { display: flex; align-items: flex-start; gap: 10px; padding: 16px 18px; border: 1.5px solid var(--color-gray-200); border-radius: var(--radius-lg); cursor: pointer; transition: all var(--transition-fast); font-size: 0.9375rem; color: var(--color-navy); position: relative; }
.radio-card:hover { border-color: var(--color-red); }
.radio-card input[type="radio"] { margin-top: 3px; accent-color: var(--color-red); flex-shrink: 0; }
.radio-card-body { display: flex; flex-direction: column; gap: 2px; flex: 1; }
.radio-card-title { font-weight: 700; font-size: 0.9375rem; color: var(--color-navy); }
.radio-card-desc { font-size: 0.75rem; color: var(--color-gray-500); line-height: 1.4; }
.radio-card-icon { flex-shrink: 0; width: 28px; height: 28px; display: flex; align-items: center; justify-content: center; color: var(--color-gray-400); opacity: 0.6; }
.radio-card:has(input:checked) { border-color: var(--color-red); background: var(--color-red-dim); }
.radio-card:has(input:checked) .radio-card-icon { color: var(--color-red); opacity: 1; }
.radio-card:has(input:checked) .radio-card-title { color: var(--color-red); }
/* Span fallback for browsers without :has */
.radio-card input:checked ~ .radio-card-body .radio-card-title { color: var(--color-red); font-weight: 700; }

.checkbox-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 12px; }
.checkbox-card { display: flex; align-items: center; gap: 10px; padding: 14px 18px; border: 1px solid var(--color-gray-200); border-radius: var(--radius-md); cursor: pointer; transition: all var(--transition-fast); font-size: 0.9375rem; color: var(--color-charcoal); }
.checkbox-card:hover { border-color: var(--color-red); }
.checkbox-card:has(input:checked) { border-color: var(--color-red); background: var(--color-red-dim); }
.checkbox-card input { accent-color: var(--color-red); }

/* --- Wizard Secure Info Box --- */
.wizard-secure-box { display: flex; align-items: flex-start; gap: 12px; padding: 16px 20px; background: #eef4fb; border: 1px solid #d0e0f0; border-radius: var(--radius-md); margin-top: 24px; }
.wizard-secure-icon { flex-shrink: 0; width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; color: var(--color-navy); }
.wizard-secure-box h4 { font-size: 0.8125rem; font-weight: 700; color: var(--color-navy); margin-bottom: 2px; }
.wizard-secure-box p { font-size: 0.75rem; color: var(--color-gray-500); line-height: 1.4; margin: 0; }

.wizard-nav { display: flex; justify-content: space-between; margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--color-gray-100); }

/* Wizard Success */
.wizard-success { text-align: center; padding: 40px 0; }
.success-icon { color: var(--color-success); margin-bottom: 24px; }
.success-icon svg { display: inline-block; }
.wizard-success .wizard-step-title { font-size: 1.5rem; color: var(--color-navy); margin-bottom: 16px; }
.wizard-success .wizard-step-desc { color: var(--color-gray-500); margin-bottom: 16px; }

/* --- Trust Bar --- */
.trust-bar { background: var(--color-pure-white); border-top: 1px solid var(--color-gray-100); border-bottom: 1px solid var(--color-gray-100); padding: 32px 0; }
.trust-items { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 24px; }
.trust-item { text-align: center; }
.trust-label { font-size: 0.8125rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--color-gray-500); }
.trust-divider { width: 1px; height: 20px; background: var(--color-gray-200); display: none; }
@media (min-width: 768px) { .trust-divider { display: block; } }

/* --- Who We Protect Cards --- */
.protect-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); gap: 24px; }
@media (max-width: 768px) { .protect-grid { grid-template-columns: 1fr; } }
.protect-card { background: var(--color-pure-white); border: 1px solid var(--color-gray-100); border-radius: var(--radius-lg); overflow: hidden; transition: transform var(--transition-fast), box-shadow var(--transition-fast); display: block; }
.protect-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }
.protect-card-img { height: 200px; overflow: hidden; background: var(--color-gray-100); }
.protect-card-img img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--transition-slow); }
.protect-card:hover .protect-card-img img { transform: scale(1.04); }
.protect-card-content { padding: 24px; }
.protect-card-content h3 { font-family: var(--font-display); font-size: 1.125rem; font-weight: 600; margin-bottom: 8px; color: var(--color-navy); }
.protect-card-content p { font-size: 0.875rem; color: var(--color-gray-500); line-height: 1.6; }

/* --- Process / How It Works --- */
.process-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 40px; }
.process-step { text-align: center; }
.process-number { display: block; font-family: var(--font-display); font-size: 3.5rem; font-weight: 700; color: var(--color-red); opacity: 0.3; line-height: 1; margin-bottom: 16px; }
.process-step h3 { font-family: var(--font-display); font-size: 1.125rem; font-weight: 600; color: var(--color-pure-white); margin-bottom: 12px; }
.process-step p { font-size: 0.9375rem; color: var(--color-gray-400); line-height: 1.6; }

/* --- Capabilities Grid --- */
.capabilities-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 24px; }
@media (max-width: 768px) { .capabilities-grid { grid-template-columns: 1fr; } }
.capability-card { display: block; background: var(--color-pure-white); border: 1px solid var(--color-gray-100); border-radius: var(--radius-lg); padding: 32px; transition: transform var(--transition-fast), box-shadow var(--transition-fast); color: inherit; }
.capability-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); }
.capability-card-full { grid-column: 1 / -1; text-align: center; }
.capability-icon { color: var(--color-red); margin-bottom: 16px; }
.capability-card h3 { font-family: var(--font-display); font-size: 1.125rem; font-weight: 600; color: var(--color-navy); margin-bottom: 10px; }
.capability-card p { font-size: 0.9375rem; color: var(--color-gray-500); line-height: 1.6; }

/* --- Case Study --- */
.case-study-card { background: var(--color-steel); border: 1px solid rgba(255,255,255,0.06); border-radius: var(--radius-xl); padding: 48px; max-width: var(--container-narrow); margin: 0 auto; }
.case-study-badge { display: inline-block; font-size: 0.6875rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--color-gray-400); border: 1px solid rgba(255,255,255,0.1); padding: 6px 14px; border-radius: 100px; margin-bottom: 32px; }
.case-study-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 32px; margin-bottom: 32px; }
.case-study-detail h4 { font-size: 0.75rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--color-red); margin-bottom: 8px; }
.case-study-detail p { font-size: 0.9375rem; color: var(--color-gray-300); line-height: 1.6; }

/* --- Resource Grid --- */
.resource-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 20px; }
@media (max-width: 768px) { .resource-grid { grid-template-columns: 1fr; } }
.resource-card { background: var(--color-pure-white); border: 1px solid var(--color-gray-100); border-radius: var(--radius-lg); padding: 28px; transition: transform var(--transition-fast), box-shadow var(--transition-fast); }
.resource-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); }
.resource-card h3 { font-family: var(--font-display); font-size: 1.0625rem; font-weight: 600; color: var(--color-navy); margin-bottom: 8px; }
.resource-card p { font-size: 0.875rem; color: var(--color-gray-500); line-height: 1.6; margin-bottom: 12px; }
.resource-coming { display: inline-block; font-size: 0.6875rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--color-red); font-weight: 600; }

/* --- About Section --- */
.about-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: start; }
@media (max-width: 768px) { .about-grid { grid-template-columns: 1fr; gap: 40px; } }
.about-content .section-tag { text-align: left; }
.about-content .section-title { text-align: left; }
.about-content p { font-size: 1rem; color: var(--color-gray-400); line-height: 1.7; margin-bottom: 16px; }
.about-content strong { color: var(--color-gray-200); }
.about-stats { display: flex; gap: 32px; margin-top: 32px; }
.about-stat { text-align: center; }
.stat-number { display: block; font-family: var(--font-display); font-size: 2rem; font-weight: 700; color: var(--color-pure-white); }
.stat-label { font-size: 0.75rem; color: var(--color-gray-400); text-transform: uppercase; letter-spacing: 0.06em; }
.about-values { display: flex; flex-direction: column; gap: 20px; }
.value-card { background: var(--color-steel); border: 1px solid rgba(255,255,255,0.06); border-radius: var(--radius-lg); padding: 28px; }
.value-card h3 { font-size: 1rem; font-weight: 600; color: var(--color-pure-white); margin-bottom: 8px; }
.value-card p { font-size: 0.875rem; color: var(--color-gray-400); line-height: 1.6; }

/* --- FAQ --- */
.faq-list { max-width: var(--container-narrow); margin: 0 auto; }
.faq-item { border-bottom: 1px solid var(--color-gray-100); }
.faq-item summary { padding: 20px 0; font-size: 1.0625rem; font-weight: 600; color: var(--color-navy); cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after { content: '+'; font-size: 1.5rem; color: var(--color-gray-400); font-weight: 300; transition: transform var(--transition-fast); flex-shrink: 0; margin-left: 16px; }
.faq-item[open] summary::after { content: '-'; }
.faq-item p { padding: 0 0 20px; font-size: 0.9375rem; color: var(--color-gray-500); line-height: 1.7; }

/* --- Final CTA --- */
.section-cta { background: var(--color-charcoal); text-align: center; padding: var(--section-padding) 0; }
.cta-headline { font-family: var(--font-display); font-size: clamp(2rem, 4vw, 3rem); font-weight: 700; color: var(--color-pure-white); line-height: 1.15; margin-bottom: 20px; }
.cta-desc { font-size: 1.0625rem; color: var(--color-gray-400); max-width: 600px; margin: 0 auto 36px; line-height: 1.7; }
.cta-actions { display: flex; flex-wrap: wrap; gap: 16px; justify-content: center; margin-bottom: 24px; }
.cta-phone { margin-top: 8px; }
.cta-phone a { font-family: var(--font-display); font-size: 1.5rem; color: var(--color-red); font-weight: 600; letter-spacing: 0.04em; }
.cta-phone a:hover { color: var(--color-pure-white); }

/* --- Footer --- */
.site-footer { background: var(--color-black); color: var(--color-gray-400); padding: 64px 0 32px; }
.footer-grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 40px; margin-bottom: 48px; }
@media (max-width: 768px) { .footer-grid { grid-template-columns: 1fr 1fr; gap: 28px 20px; } .footer-brand { grid-column: 1 / -1; } }
@media (max-width: 480px) { .footer-grid { grid-template-columns: 1fr 1fr; gap: 24px 16px; } }
.footer-brand .logo-mark { font-family: var(--font-display); font-size: 1.5rem; font-weight: 700; color: var(--color-pure-white); }
.footer-tagline { font-size: 0.8125rem; color: var(--color-gray-500); margin-top: 4px; margin-bottom: 16px; }
.footer-addr { font-size: 0.8125rem; line-height: 1.6; margin-bottom: 8px; }
.footer-phone { font-size: 0.9375rem; font-weight: 600; color: var(--color-gray-300); }
.footer-phone:hover { color: var(--color-pure-white); }
.footer-nav h4 { font-size: 0.75rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--color-gray-300); margin-bottom: 16px; }
.footer-nav ul li { margin-bottom: 10px; }
.footer-nav ul a { font-size: 0.8125rem; color: var(--color-gray-500); }
.footer-nav ul a:hover { color: var(--color-gray-200); }
.footer-bottom { border-top: 1px solid rgba(255,255,255,0.06); padding-top: 24px; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 16px; }
.footer-bottom p { font-size: 0.6875rem; color: var(--color-gray-500); }
.footer-social { display: flex; gap: 16px; }
.footer-social a { color: var(--color-gray-500); transition: color var(--transition-fast); }
.footer-social a:hover { color: var(--color-gray-200); }

/* --- Persistent Mobile Actions --- */
.mobile-actions { position: fixed; bottom: 0; left: 0; right: 0; z-index: 80; display: none; background: var(--color-black); border-top: 1px solid rgba(255,255,255,0.1); padding: 12px 16px; gap: 12px; }
@media (max-width: 768px) { .mobile-actions { display: flex; } }
.mobile-action-btn { flex: 1; display: flex; align-items: center; justify-content: center; gap: 8px; padding: 14px 16px; border-radius: var(--radius-md); font-size: 0.875rem; font-weight: 600; text-align: center; }
.mobile-action-call { background: transparent; border: 1px solid rgba(255,255,255,0.2); color: var(--color-pure-white); }
.mobile-action-cta { background: var(--color-red); color: var(--color-pure-white); }

/* Add padding to body for mobile sticky bar */
@media (max-width: 768px) { body { padding-bottom: 72px; } }

/* --- Scroll Reveal Animation --- */
[data-reveal] { opacity: 0; transform: translateY(20px); transition: opacity var(--transition-slow), transform var(--transition-slow); }
[data-reveal].revealed { opacity: 1; transform: translateY(0); }

/* --- Interior Page Hero --- */
.page-hero { position: relative; padding: calc(var(--header-height) + 64px) 0 64px; overflow: hidden; }
.page-hero .hero-bg { position: absolute; inset: 0; background: var(--color-charcoal); }
.page-hero .hero-bg-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 30%; }
.page-hero .hero-overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(8,11,18,0.88) 0%, rgba(8,11,18,0.62) 55%, rgba(8,11,18,0.42) 100%), linear-gradient(180deg, rgba(8,11,18,0.55) 0%, rgba(8,11,18,0.5) 40%, rgba(8,11,18,0.72) 100%); z-index: 1; }
.page-hero .hero-grid-pattern { position: absolute; inset: 0; opacity: 0.03; z-index: 1; background-image: linear-gradient(rgba(255,255,255,0.5) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.5) 1px, transparent 1px); background-size: 60px 60px; }
.page-hero-content { position: relative; z-index: 2; max-width: 800px; }
.page-hero .hero-badge { display: inline-block; font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: #fff; background: var(--color-red); border: 1px solid rgba(255,255,255,0.18); padding: 8px 20px; border-radius: 100px; margin-bottom: 24px; box-shadow: 0 4px 16px rgba(212,32,39,0.35); }
.page-hero h1 { font-family: var(--font-display); font-size: clamp(2rem, 5vw, 3.5rem); font-weight: 700; color: var(--color-pure-white); line-height: 1.1; margin-bottom: 20px; letter-spacing: -0.02em; text-shadow: 0 2px 28px rgba(0,0,0,0.85), 0 1px 4px rgba(0,0,0,0.6); }
.page-hero .hero-desc { font-size: 1.0625rem; color: #f0f2f5; line-height: 1.7; max-width: 640px; margin-bottom: 32px; text-shadow: 0 1px 12px rgba(0,0,0,0.75); }
.page-hero .breadcrumb { color: rgba(255,255,255,0.9); text-shadow: 0 1px 8px rgba(0,0,0,0.7); }
.page-hero .breadcrumb a { color: rgba(255,255,255,0.9); }
.page-hero .breadcrumb a:hover { color: var(--color-red); }
.page-hero .breadcrumb .sep { color: rgba(255,255,255,0.5); }
.page-hero .hero-ctas { display: flex; flex-wrap: wrap; gap: 16px; }
@media (max-width: 768px) { .page-hero { padding: calc(var(--header-height) + 40px) 0 48px; } }

/* --- Breadcrumb --- */
.breadcrumb { display: flex; align-items: center; gap: 8px; font-size: 0.8125rem; color: var(--color-gray-400); margin-bottom: 24px; flex-wrap: wrap; }
.breadcrumb a { color: var(--color-gray-400); transition: color var(--transition-fast); }
.breadcrumb a:hover { color: var(--color-pure-white); }
.breadcrumb .sep { color: var(--color-gray-500); }

/* --- Interior Content Sections --- */
.content-section { padding: 80px 0; }
@media (max-width: 768px) { .content-section { padding: 56px 0; } }
.content-section-alt { background: var(--color-gray-100); }
.content-section-dark { background: var(--color-charcoal); color: var(--color-gray-200); }

.content-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: start; }
@media (max-width: 768px) { .content-grid { grid-template-columns: 1fr; gap: 40px; } }

.content-block h2 { font-family: var(--font-display); font-size: clamp(1.5rem, 3vw, 2.25rem); font-weight: 600; line-height: 1.2; margin-bottom: 20px; color: var(--color-navy); }
.content-section-dark .content-block h2 { color: var(--color-pure-white); }
.content-block h3 { font-family: var(--font-display); font-size: 1.25rem; font-weight: 600; margin-bottom: 12px; color: var(--color-navy); }
.content-section-dark .content-block h3 { color: var(--color-pure-white); }
.content-block p { font-size: 1rem; color: var(--color-gray-500); line-height: 1.7; margin-bottom: 16px; }
.content-section-dark .content-block p { color: var(--color-gray-400); }
.content-block ul { margin-bottom: 20px; padding-left: 0; }
.content-block ul li { font-size: 0.9375rem; color: var(--color-gray-500); line-height: 1.7; padding: 6px 0 6px 24px; position: relative; }
.content-section-dark .content-block ul li { color: var(--color-gray-400); }
.content-block ul li::before { content: ''; position: absolute; left: 0; top: 14px; width: 8px; height: 8px; border: 1.5px solid var(--color-red); border-radius: 50%; }

/* --- Feature List (for capabilities) --- */
.feature-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 20px; margin: 32px 0; }
.feature-item { display: block; background: var(--color-pure-white); border: 1px solid var(--color-gray-100); border-radius: var(--radius-lg); padding: 24px; transition: transform var(--transition-fast), box-shadow var(--transition-fast); color: inherit; }
.feature-item:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); }
.content-section-dark .feature-item { background: var(--color-steel); border-color: rgba(255,255,255,0.06); }
.feature-item h4 { font-size: 0.9375rem; font-weight: 600; color: var(--color-navy); margin-bottom: 6px; }
.content-section-dark .feature-item h4 { color: var(--color-pure-white); }
.feature-item p { font-size: 0.875rem; color: var(--color-gray-500); line-height: 1.6; margin-bottom: 0; }
.content-section-dark .feature-item p { color: var(--color-gray-400); }

/* --- Challenge Cards --- */
.challenge-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 20px; margin: 32px 0; }
.challenge-card { background: var(--color-steel); border: 1px solid rgba(255,255,255,0.06); border-radius: var(--radius-lg); padding: 24px; }
.challenge-card h4 { font-size: 0.9375rem; font-weight: 600; color: var(--color-pure-white); margin-bottom: 8px; }
.challenge-card p { font-size: 0.875rem; color: var(--color-gray-400); line-height: 1.6; margin-bottom: 0; }

/* --- Grant Highlight Box --- */
.grant-highlight { background: var(--color-red-dim); border: 1px solid rgba(212,32,39,0.15); border-radius: var(--radius-lg); padding: 32px; margin: 32px 0; }
.grant-highlight h3 { font-family: var(--font-display); font-size: 1.25rem; font-weight: 600; color: var(--color-navy); margin-bottom: 12px; }
.content-section-dark .grant-highlight { background: rgba(212,32,39,0.08); border-color: rgba(212,32,39,0.12); }
.content-section-dark .grant-highlight h3 { color: var(--color-pure-white); }
.grant-highlight p { font-size: 0.9375rem; color: var(--color-gray-500); line-height: 1.7; margin-bottom: 12px; }
.grant-highlight p:last-child { margin-bottom: 0; }
.content-section-dark .grant-highlight p { color: var(--color-gray-300); }

/* --- Related Links Grid --- */
.related-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; margin-top: 32px; }
.related-card { display: block; background: var(--color-pure-white); border: 1px solid var(--color-gray-100); border-radius: var(--radius-md); padding: 20px; transition: transform var(--transition-fast), box-shadow var(--transition-fast), border-color var(--transition-fast); }
.related-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-sm); border-color: var(--color-red); }
.content-section-dark .related-card { background: var(--color-steel); border-color: rgba(255,255,255,0.06); }
.content-section-dark .related-card:hover { border-color: var(--color-red); }
.related-card h4 { font-size: 0.875rem; font-weight: 600; color: var(--color-navy); margin-bottom: 4px; }
.content-section-dark .related-card h4 { color: var(--color-pure-white); }
.related-card p { font-size: 0.8125rem; color: var(--color-gray-500); line-height: 1.5; margin-bottom: 0; }
.content-section-dark .related-card p { color: var(--color-gray-400); }

/* --- Interior FAQ --- */
.interior-faq { max-width: 800px; }
.interior-faq .faq-item summary { color: var(--color-navy); }
.content-section-dark .interior-faq .faq-item summary { color: var(--color-gray-200); }
.content-section-dark .interior-faq .faq-item { border-color: rgba(255,255,255,0.08); }
.content-section-dark .interior-faq .faq-item p { color: var(--color-gray-400); }

/* --- Dual CTA Banner --- */
.dual-cta { text-align: center; padding: 80px 0; background: var(--color-charcoal); }
.dual-cta h2 { font-family: var(--font-display); font-size: clamp(1.75rem, 3.5vw, 2.5rem); font-weight: 700; color: var(--color-pure-white); margin-bottom: 16px; }
.dual-cta p { font-size: 1.0625rem; color: var(--color-gray-400); max-width: 560px; margin: 0 auto 32px; line-height: 1.7; }
.dual-cta .cta-actions { display: flex; flex-wrap: wrap; gap: 16px; justify-content: center; }

/* --- Premium Nav Dropdown --- */
.nav-dropdown { position: relative; }
.nav-dropdown > a::after { content: ''; width: 0; height: 0; border-left: 3.5px solid transparent; border-right: 3.5px solid transparent; border-top: 3.5px solid currentColor; transition: transform 0.3s cubic-bezier(0.4,0,0.2,1); margin-left: 2px; }
.nav-dropdown.open > a::after,
.nav-dropdown:hover > a::after { transform: rotate(180deg); }
.nav-dropdown-menu { position: absolute; top: calc(100% + 12px); left: 50%; transform: translateX(-50%) translateY(8px); min-width: 280px; background: var(--color-pure-white); border: 1px solid rgba(0,0,0,0.06); border-radius: var(--radius-lg); padding: 12px 0; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity 0.25s ease, visibility 0.25s ease, transform 0.25s cubic-bezier(0.16,1,0.3,1); z-index: 95; box-shadow: 0 12px 48px rgba(0,0,0,0.12), 0 2px 8px rgba(0,0,0,0.04); }
.nav-dropdown-menu::before { content: ''; position: absolute; top: -8px; left: 50%; transform: translateX(-50%); width: 16px; height: 8px; background: var(--color-pure-white); clip-path: polygon(50% 0, 100% 100%, 0 100%); }
.nav-dropdown.open .nav-dropdown-menu,
.nav-dropdown:hover .nav-dropdown-menu { opacity: 1; visibility: visible; pointer-events: auto; transform: translateX(-50%) translateY(0); }
.nav-dropdown-menu a { display: flex; align-items: center; gap: 10px; padding: 11px 20px; font-size: 0.8125rem; font-weight: 450; color: var(--color-gray-500); transition: all var(--transition-fast); white-space: nowrap; border-left: 2px solid transparent; }
.nav-dropdown-menu a:hover { color: var(--color-red); background: var(--color-red-dim); border-left-color: var(--color-red); padding-left: 22px; }
.nav-dropdown-menu a svg { flex-shrink: 0; color: var(--color-gray-300); transition: color var(--transition-fast); width: 16px; height: 16px; }
.nav-dropdown-menu a:hover svg { color: var(--color-red); }
.nav-dropdown-label { display: block; padding: 8px 20px 4px; font-size: 0.625rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--color-gray-300); pointer-events: none; }
.nav-dropdown-divider { height: 1px; background: var(--color-gray-100); margin: 6px 0; }

/* --- Red accent line under header --- */
.site-header::after { content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 2px; background: linear-gradient(90deg, var(--color-red) 0%, var(--color-red) 30%, rgba(212,32,39,0.3) 70%, transparent 100%); }

/* --- Active page state for nav --- */
.nav-list > li.active > a { color: var(--color-red); }
.nav-list > li.active > a::after { border-top-color: var(--color-red); }

/* --- Footer logo on dark bg — white chip for legibility --- */
.footer-logo-wrap { display: flex; align-items: center; gap: 10px; margin-bottom: 4px; }
.footer-logo-chip { display: inline-block; background: transparent; padding: 0; border: none; box-shadow: none; line-height: 0; }
.footer-disclosure { max-width: var(--container-max) !important; margin: 16px auto 0 !important; padding: 0 24px !important; box-sizing: border-box; }
.footer-logo-chip .logo-img { height: 40px; width: auto; max-width: 150px; object-fit: contain; filter: brightness(0) invert(1); }
.site-footer .logo-img { height: 40px; width: auto; object-fit: contain; filter: brightness(0) invert(1); }
.footer-logo-text { font-family: var(--font-display); font-size: 1.375rem; font-weight: 700; color: var(--color-pure-white); letter-spacing: 0.02em; }

/* --- Print --- */
@media print {
  .site-header, .mobile-actions, .hero-scroll-indicator { display: none; }
  .section { padding: 24px 0; }
  body { color: #000; background: #fff; }
}

/* Eligibility wizard — better mobile padding (2026-08-22): the flat 40px card
   padding squeezed the 5-step indicator + fields on phones. Give content room. */
@media (max-width: 768px) {
  .wizard-container { padding: 32px 22px; }
}
@media (max-width: 480px) {
  .wizard-container { padding: 26px 15px; }
  .step-dot-label { font-size: 0.5rem; max-width: 56px; letter-spacing: 0; }
  .wizard-steps-indicator::before { left: 15px; right: 15px; }
}
