
:root{ --bg:#ffffff; --text:#1b1b1b; --muted:#666; --border:#eaeaea; --brand:#000470; --cta:#069A5C; }
*{ box-sizing:border-box; }
html,body{ margin:0; padding:0; font-family:Inter, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif; color:var(--text); background:var(--bg); line-height:1.6; }
.container{ max-width:1100px; margin:0 auto; padding:1rem; }
a{ color:inherit; }
.brand{ display:flex; align-items:center; gap:.5rem; flex-shrink:0; }
.nav{ display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.menu{ list-style:none; display:flex; gap:1rem; margin:0; padding:0; }
.menu a{ text-decoration:none; padding:.5rem .75rem; border-radius:.5rem; }
.menu .btn-cta{ border:1px solid var(--cta); }
.menu-btn{ display:none; background:none; border:1px solid var(--border); padding:.35rem .6rem; border-radius:.5rem; font-size:1.2rem; }
.hero{ padding:3.5rem 0 2rem; display:grid; gap:1.5rem; }
.hero-ctas{ display:flex; gap:.75rem; flex-wrap:wrap; }
.hero-media .placeholder{ border:1px dashed var(--border); border-radius:.75rem; padding:4rem; text-align:center; color:var(--muted); }
.section{ padding:2rem 0; border-top:1px solid var(--border); }
.cards{ display:grid; grid-template-columns:repeat(auto-fit, minmax(220px,1fr)); gap:1rem; padding:0; margin:0; list-style:none; }
.card{ border:1px solid var(--border); border-radius:.75rem; padding:1rem; }
.page-hero{ padding:2.5rem 0 1rem; }
.grid{ display:grid; gap:1rem; grid-template-columns:repeat(auto-fit, minmax(240px,1fr)); }
.grid-2{ display:grid; gap:1.25rem; grid-template-columns:repeat(auto-fit, minmax(300px,1fr)); align-items:center; }
.placeholder{ border:1px dashed var(--border); border-radius:.75rem; padding:2rem; text-align:center; color:var(--muted); min-height:140px; }
.placeholder.tall{ min-height:220px; }
input, textarea{ width:100%; padding:.6rem .8rem; border:1px solid var(--border); border-radius:.6rem; }
.btn{ display:inline-block; padding:.75rem 1rem; border-radius:.75rem; border:1px solid var(--brand); text-decoration:none; font-weight:600; }
.btn-cta{ border-color:var(--cta); }
.link{ text-decoration:none; border-bottom:1px solid var(--border); }
.footer{ padding:2rem 0; color:var(--muted); }
.footer-grid{ display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
.footer-links{ list-style:none; display:flex; gap:1rem; margin:0; padding:0; }
.hidden{ position:absolute; left:-9999px; top:auto; width:1px; height:1px; overflow:hidden; }
@media (max-width: 800px){
  .menu{ display:none; flex-direction:column; }
  .menu.show{ display:flex; }
  .menu-btn{ display:inline-block; }
}


/* Brand-specific additions */
.header-white{ padding-top:0.5rem; padding-bottom:0.5rem; background:#ffffff; border-bottom:1px solid var(--border); }
.logo{ width:200px !important; height:auto !important; }
.btn-cta{ background:var(--cta); color:#fff; border-color:var(--cta); }
.btn-cta:hover{ filter:brightness(0.92); }
.footer{ background:var(--brand); color:#fff; padding:3rem 1.25rem; }
.footer a{ color:#fff; }
.footer a:hover{ opacity:.85; }


/* ===== Design Enhancements ===== */
:root{
  --bg:#ffffff;
  --bg-alt:#f7f9fb;
  --text:#1b1b1b;
  --muted:#5b6470;
  --border:#e8edf2;
  --brand:#000470;   /* navy */
  --cta:#069A5C;     /* green */
  --cta-hover:#058a53;
}

body{ font-size:16px; }
h1{ line-height:1.15; letter-spacing:-0.015em; }
h2{ margin-top:0; }

.header-white{ padding-top:0.5rem; padding-bottom:0.5rem; background:#ffffff; border-bottom:1px solid var(--border); position:sticky; top:0; z-index:50; }
.logo{ width:260px !important; height:auto !important; display:block; }
@media (max-width: 800px){ .logo{ width:200px !important; height:auto !important; } }

.nav .menu a{ color:var(--brand); font-weight:600; }
.nav .menu a:hover{ opacity:.85; }

.btn{ display:inline-block; padding:.8rem 1.1rem; border-radius:.8rem; border:1px solid var(--brand); text-decoration:none; font-weight:700; }
.btn-cta{ background:var(--cta); color:#fff; border-color:var(--cta); box-shadow:0 2px 8px rgba(6,154,92,.2); }
.btn-cta:hover{ background:var(--cta-hover); border-color:var(--cta-hover); }
.btn-outline{ background:#fff; color:var(--brand); }
.badge{ display:inline-block; font-size:.85rem; padding:.25rem .5rem; border-radius:.5rem; background:rgba(6,154,92,.12); color:var(--cta); border:1px solid rgba(6,154,92,.3); font-weight:700; }

.hero{ padding:4.5rem 0 2.5rem; gap:1.25rem; }
.hero h1{ font-size:clamp(2rem, 4vw, 3rem); margin:0; }
.hero p{ color:var(--muted); max-width:62ch; }
.hero-ctas{ gap:1rem; }
.hero-media .placeholder{ padding:5rem; }

.section{ padding:2.5rem 0; border-top:1px solid var(--border); }
.section.alt{ background:var(--bg-alt); }
.cards{ gap:1.25rem; }
.card{ border:1px solid var(--border); border-radius:1rem; padding:1.1rem; background:#fff; box-shadow:0 1px 3px rgba(0,0,0,.03); }
.card h3{ margin-top:.25rem; }
.feature-cards .card{ padding:1.25rem 1.4rem; }

.steps{ counter-reset: step; padding-left:0; list-style:none; }
.steps li{ position:relative; padding-left:3rem; margin:1rem 0; }
.steps li::before{
  counter-increment: step;
  content: counter(step);
  position:absolute; left:0; top:0;
  width:2rem; height:2rem; border-radius:999px;
  background:var(--cta); color:#fff; font-weight:700;
  display:grid; place-items:center;
}

.footer{ background:var(--brand); color:#fff; padding:3rem 1.25rem; }
.footer a{ color:#fff; }
.footer a:hover{ opacity:.85; }

/* Forms */
input, textarea{ background:#fff; }
input:focus, textarea:focus{ outline:2px solid rgba(6,154,92,.25); border-color:var(--cta); }

/* Utilities */
.max-w-prose{ max-width: 72ch; }
.center{ text-align:center; }


.hero-img{ width:100%; height:auto; border-radius:1rem; box-shadow:0 8px 30px rgba(0,0,0,.07); }
.trust-list{ list-style:none; padding:0; margin:0 0 1rem 0; display:flex; gap:1rem; flex-wrap:wrap; color:var(--brand); font-weight:600; }
.trust-list li{ background:#eef7f2; border:1px solid rgba(6,154,92,.25); padding:.4rem .6rem; border-radius:.6rem; color:#069A5C; }
.consent{ display:flex; align-items:center; gap:.5rem; margin:.75rem 0 0; }

/* === Consolidated Enhancements (header, responsiveness, padding, footer, animations, menu) === */

/* Container responsive */
.container{ width:min(1200px, 92vw); margin:0 auto; padding:1rem; }

/* Skip link */
.skip-link{ position:absolute; left:-9999px; top:auto; width:1px; height:1px; overflow:hidden; }
.skip-link:focus{ position:static; display:inline-block; padding:.5rem; background:#000; color:#fff; }

/* Header */
.nav{ display:flex; align-items:center; justify-content:space-between; gap:1.25rem; }
.menu li{ display:flex; align-items:center; }
.menu a{ text-decoration:none; padding:.5rem .8rem; border-radius:.6rem; display:inline-flex; align-items:center; height:44px; }
.header-white{ padding:.6rem 0; background:#fff; border-bottom:1px solid var(--border); position:sticky; top:0; z-index:1000; }
.header-white.scrolled{ box-shadow:0 6px 20px rgba(0,0,0,.06); }
.logo{ width: clamp(180px, 22vw, 280px); height:auto; display:block; }

/* Buttons */
.btn{ display:inline-flex; align-items:center; justify-content:center; padding:.85rem 1.1rem; border-radius:.9rem; border:1px solid var(--brand); text-decoration:none; font-weight:700; line-height:1; color:#1b1b1b; }
.btn-cta{ background:var(--cta); border-color:var(--cta); color:#fff !important; box-shadow:0 2px 8px rgba(6,154,92,.2); }
.btn-cta:hover{ filter:brightness(.96); }

/* Sections padding (left/right) */
.section{ padding:2.5rem 0; border-top:1px solid var(--border); padding-left: clamp(1rem, 5vw, 3rem); padding-right: clamp(1rem, 5vw, 3rem); }
.section.alt{ background:var(--bg-alt); padding-left: clamp(1rem, 5vw, 3rem); padding-right: clamp(1rem, 5vw, 3rem); }

/* Footer refresh */
.footer{
  background: linear-gradient(180deg, var(--brand) 0%, #00035c 100%);
  color:#fff;
  padding: 3.25rem min(3rem, 5vw);
  border-top: 4px solid var(--cta);
}
.footer-grid{ display:grid; grid-template-columns: 1fr auto; gap:1.25rem; align-items:center; }
.footer a{ color:#fff; text-decoration:none; border-bottom:1px solid rgba(255,255,255,.18); padding-bottom:2px; }
.footer a:hover{ border-bottom-color: rgba(255,255,255,.5); }
@media (max-width:700px){
  .footer-grid{ grid-template-columns:1fr; gap:.75rem; }
  .footer{ padding:2.5rem 1.25rem; }
}

/* Animations — visible by default (progressive enhancement) */
@media (prefers-reduced-motion: reduce){
  * { animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; transition-duration: 0.001ms !important; scroll-behavior: auto !important; }
}
/* Hero load */

 }
/* Section reveal */

.reveal-visible{ opacity:1; transform:none; }
/* Default visibility when JS missing */
.reveal{ opacity:1; transform:none; }
/* Button hover */
.btn, .btn-cta{ transition: transform .18s ease, box-shadow .18s ease, filter .18s ease; will-change: transform; }
.btn:hover, .btn-cta:hover{ transform: translateY(-1px) scale(1.02); box-shadow: 0 8px 18px rgba(0,0,0,.08); }
/* Logo hover-only zoom */
.brand .logo{ transition: transform .18s ease; transform-origin:center; }
.brand:hover .logo{ transform: scale(1.04); }

/* Mobile menu (CSS-only) */
.nav-toggle{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
@media (max-width: 800px){
  .header-white .nav{ position:relative; }
  .menu-btn{ display:inline-flex; align-items:center; justify-content:center; }
  .menu{ display:none; }
  #menu.menu{
    position:absolute;
    top: calc(100% + 1px);
    left: 0; right: 0;
    flex-direction: column;
    gap:.5rem;
    background:#fff;
    border:1px solid var(--border);
    border-top:none;
    padding:.75rem 1rem 1rem;
    box-shadow: 0 12px 24px rgba(0,0,0,.10);
    z-index: 1001;
  }
  /* Show when checkbox checked */
  .nav-toggle:checked ~ .nav #menu{ display:flex; }
  /* Full-width CTA */
  #menu.menu .btn-cta{ width:100%; text-align:center; }
  /* Lock scroll while open */
  html:has(#nav-toggle:checked){ overflow:hidden; }
}


/* --- Hero & section reveal via transitions (Safari-safe) --- */




/* --- Robust reveal: visible by default; JS uses .reveal-pending to animate --- */
.reveal{ opacity:1; transform:none; }
.reveal-visible{ opacity:1; transform:none; }

.js .reveal.reveal-pending{ opacity:0; transform: translateY(28px); transition: opacity .75s cubic-bezier(.22,.61,.36,1), transform .75s cubic-bezier(.22,.61,.36,1); will-change: opacity, transform; }
.js .reveal.hero.reveal-pending{
  transform: translateY(10px);
}


/* --- Dedicated hero animation (independent of reveal system) --- */
.hero-prepare{ opacity:0; transform: translateY(14px); }
.hero-animate{ opacity:1; transform:none; transition: opacity .6s ease-out, transform .6s ease-out; will-change: opacity, transform; }
