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

:root{
  --navy-950:#011031;
  --navy-900:#051A42;
  --navy-700:#012974;
  --steel:#5d8aa6;
  --steel-light:#8fb1c6;
  --mist:#c1cdcb;
  --mist-50:#f3f6f5;
  --white:#ffffff;
  --gold:#c9a35a;
  --shadow-lg: 0 30px 60px -15px rgba(1,16,49,.25);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family:'Inter',system-ui,sans-serif;
  color:var(--navy-950);
  background:var(--white);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
h1,h2,h3,h4,.font-display{
  font-family:'Outfit',system-ui,sans-serif;
  letter-spacing:-0.01em;
}

::selection{background:var(--steel);color:#fff;}

a{ -webkit-tap-highlight-color: transparent; }

/* Scroll reveal */
.reveal{
  opacity:0;
  transform:translateY(28px);
  transition:opacity .7s cubic-bezier(.22,1,.36,1), transform .7s cubic-bezier(.22,1,.36,1);
  will-change:transform,opacity;
}
.reveal.is-visible{opacity:1;transform:translateY(0);}
.reveal-stagger > * { transition-delay: calc(var(--i, 0) * 90ms); }

@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1!important;transform:none!important;transition:none!important;}
  html{scroll-behavior:auto;}
  *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important;}
}

/* Nav */
.nav-shell{
  position:fixed; top:0; left:0; right:0; z-index:60;
  transition:background .35s ease, box-shadow .35s ease, padding .35s ease;
}
.nav-shell.scrolled{
  background:rgba(1,16,49,0.92);
  backdrop-filter:blur(10px);
  box-shadow:0 8px 30px -10px rgba(0,0,0,.35);
}
.nav-link{position:relative;}
.nav-link::after{
  content:'';position:absolute;left:0;bottom:-6px;height:2px;width:0;
  background:var(--steel-light);transition:width .25s ease;
}
.nav-link:hover::after{width:100%;}

.dropdown-panel{
  opacity:0; visibility:hidden; transform:translateY(8px);
  transition:opacity .2s ease, transform .2s ease, visibility .2s;
}
.group:hover .dropdown-panel, .group:focus-within .dropdown-panel{
  opacity:1; visibility:visible; transform:translateY(0);
}

/* Buttons */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  padding:.9rem 1.9rem;border-radius:999px;font-weight:600;font-size:.95rem;
  transition:transform .25s cubic-bezier(.22,1,.36,1), box-shadow .25s ease, background .25s ease, color .25s ease;
  cursor:pointer;
}
.btn-primary{
  background:linear-gradient(135deg,var(--steel),var(--navy-700));
  color:#fff; box-shadow:0 12px 30px -8px rgba(1,41,116,.55);
}
.btn-primary:hover{transform:translateY(-2px) scale(1.015); box-shadow:0 16px 36px -8px rgba(1,41,116,.65);}
.btn-ghost{
  background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.5);
}
.btn-ghost:hover{background:rgba(255,255,255,.12); border-color:#fff; transform:translateY(-2px);}
.btn-ghost-dark{
  background:transparent;color:var(--navy-950);border:1.5px solid rgba(1,16,49,.25);
}
.btn-ghost-dark:hover{background:var(--navy-950); color:#fff; transform:translateY(-2px);}

/* Cards */
.card-hover{transition:transform .35s cubic-bezier(.22,1,.36,1), box-shadow .35s ease, border-color .35s ease;}
.card-hover:hover{transform:translateY(-6px); box-shadow:var(--shadow-lg); border-color:var(--steel);}

.chip{
  display:inline-flex;align-items:center;padding:.4rem 1rem;border-radius:999px;
  font-size:.8rem;font-weight:600;background:var(--mist-50);color:var(--navy-700);
  border:1px solid var(--mist);
}

/* Accordion */
.accordion-item .accordion-icon{transition:transform .3s ease;}
.accordion-item[data-open="true"] .accordion-icon{transform:rotate(45deg);}
.accordion-body{
  max-height:0; overflow:hidden; transition:max-height .4s cubic-bezier(.22,1,.36,1), opacity .3s ease;
  opacity:0;
}
.accordion-item[data-open="true"] .accordion-body{opacity:1;}

/* Hero blob / floating shapes */
.float-slow{animation:floatY 9s ease-in-out infinite;}
.float-slow-delay{animation:floatY 11s ease-in-out infinite; animation-delay:1.2s;}
@keyframes floatY{
  0%,100%{transform:translateY(0px) translateX(0px);}
  50%{transform:translateY(-18px) translateX(8px);}
}

.gradient-navy{background-color:var(--navy-950);background-image:linear-gradient(160deg,var(--navy-950) 0%, var(--navy-900) 55%, var(--navy-700) 100%);}
.gradient-text{
  background:linear-gradient(120deg,var(--steel-light),var(--mist));
  -webkit-background-clip:text;background-clip:text;color:transparent;
}

.bg-noise{position:relative;isolation:isolate;}
.bg-noise::before{
  content:'';position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:radial-gradient(circle at 20% 20%, rgba(143,177,198,.28), transparent 40%), radial-gradient(circle at 80% 70%, rgba(93,138,166,.22), transparent 45%);
}

.text-balance{text-wrap:balance;}

/* Marquee / trust bar */
.trust-bar{display:flex;flex-wrap:wrap;justify-content:center;gap:2.5rem;}

/* image hover zoom */
.img-zoom{overflow:hidden;}
.img-zoom img{transition:transform .6s cubic-bezier(.22,1,.36,1);}
.img-zoom:hover img{transform:scale(1.06);}

/* skip link */
.skip-link{position:absolute;left:-999px;top:0;background:#fff;color:#000;padding:.5rem 1rem;z-index:100;}
.skip-link:focus{left:0.5rem;top:0.5rem;}

/* sticky mobile CTA */
.mobile-cta-bar{position:fixed;left:0;right:0;bottom:0;z-index:55;}

/* focus visibility */
a:focus-visible, button:focus-visible, summary:focus-visible{
  outline:2px solid var(--steel); outline-offset:3px; border-radius:4px;
}

.timeline-line{background:linear-gradient(to bottom, var(--mist), var(--steel));}

@media (max-width: 767px){
  .hide-mobile{display:none;}
}
