/* ==========================================================================
   site.css — the design language shared by every page.
   Loaded after custom.css, before home.css. The homepage layers its own
   section work on top; everything here applies site-wide so About, Contact,
   Privacy, Terms and 404 read as the same product as the homepage.
   ========================================================================== */
:root {
  --ink:#101f38;
  --muted:#53627a;
  --line:#e7edf9;
  --brand:#2563eb;
  --radius:22px;
  --shadow:0 20px 46px -30px #1c336e3d, 0 2px 6px #1c336e0a;
  --shadow-lift:0 26px 54px -28px #1c336e4d, 0 3px 8px #1c336e12;
  --page-wash:
    radial-gradient(120% 70% at 50% -10%, #c9b8ff45 0%, #c9b8ff00 55%),
    radial-gradient(80% 52% at 84% 4%, #9fc4ff4d 0%, #9fc4ff00 62%),
    linear-gradient(180deg,#eef3ff 0%,#f6f9ff 46%,#ffffff 100%);
}

/* --------------------------------------------------------------------------
   Floating navigation, on every page
   -------------------------------------------------------------------------- */
#site-header { background:transparent; }
#nav-shell { background:transparent; border-bottom:0; backdrop-filter:none; }
#nav-shell > div:first-child { max-width:1224px; margin-top:14px; padding-inline:14px; }
#nav-shell > div:first-child > div {
  height:66px; padding-inline:22px; border-radius:999px;
  background:#fffffff2; backdrop-filter:blur(14px);
  border:1px solid #ffffff; box-shadow:0 10px 34px -12px #1e347e26, 0 2px 6px #1e347e0d;
}
#nav-shell.is-stuck { background:transparent; box-shadow:none; }
#nav-shell.is-stuck > div:first-child > div { box-shadow:0 16px 40px -16px #1e347e3d, 0 2px 6px #1e347e14; }
#nav-shell > div:last-child { display:none; }
.nav-link { font-size:12.5px; padding:9px 13px; font-weight:600; color:#41506a; border-radius:999px; }
.nav-link:hover { background:#eef4ff; color:var(--brand); }
.nav-link.is-active { background:#e8f0ff; color:var(--brand); }
#nav-shell a.bg-slate-900 { background:var(--brand); border-radius:999px; box-shadow:0 8px 20px -8px #2563eb99; }
#mobile-menu { margin:8px 10px 0; border:1px solid var(--line); border-radius:20px; box-shadow:0 18px 44px -20px #1e347e40; }

/* --------------------------------------------------------------------------
   Sub-page shell: hero wash under the floating pill, softer section rhythm
   -------------------------------------------------------------------------- */
body:not(.home-page) #main-content > section:first-child {
  margin-top:-86px; padding:150px 0 60px;
  background:var(--page-wash); border-bottom:0;
}
body:not(.home-page) #main-content > section:first-child h1 {
  letter-spacing:-.035em; color:var(--ink);
}
body:not(.home-page) #main-content > section:first-child > div > p {
  color:var(--muted);
}

/* Grey slabs and hairline dividers give way to the same wash used on the home
   page, so the pages stop reading as two different sites. */
body:not(.home-page) #main-content > section {
  border-top:0; border-bottom:0; background:#fff;
}
body:not(.home-page) #main-content > section:nth-of-type(even) {
  background:
    radial-gradient(80% 46% at 78% 0%, #c6d8ff3d 0%, #c6d8ff00 62%),
    radial-gradient(64% 40% at 10% 4%, #cec4ff33 0%, #cec4ff00 64%),
    linear-gradient(180deg,#f8fbff 0%,#f2f6fe 55%,#f6f9ff 100%);
}
body:not(.home-page) #main-content > section:first-child { background:var(--page-wash); }

body:not(.home-page) #main-content h2 { letter-spacing:-.035em; color:var(--ink); }

/* Panels inside sub-pages pick up the shared surface treatment. */
body:not(.home-page) #main-content :is(.rounded-2xl,.rounded-xl):not(a):not(button):not(span) {
  border-radius:var(--radius); border-color:var(--line);
}
body:not(.home-page) #main-content .border.border-slate-200,
body:not(.home-page) #main-content .border.border-slate-200\/80 {
  border-color:var(--line); box-shadow:var(--shadow);
}

/* Solid blue closing bands become inset panels, matching the homepage CTA. */
body:not(.home-page) #main-content > section.bg-blue-600 {
  background:#fff; padding-block:24px 96px;
}
body:not(.home-page) #main-content > section.bg-blue-600 > div {
  padding:56px 40px; border-radius:30px; border:1px solid #dfe9fc; color:var(--ink);
  background:
    radial-gradient(90% 70% at 50% 0%, #cdbcff4d 0%, #cdbcff00 60%),
    linear-gradient(180deg,#eef4ff 0%,#f6f9ff 100%);
  box-shadow:var(--shadow);
}
body:not(.home-page) #main-content > section.bg-blue-600 :is(h2,h3) { color:var(--ink); }
body:not(.home-page) #main-content > section.bg-blue-600 p { color:var(--muted); }
body:not(.home-page) #main-content > section.bg-blue-600 a.bg-white,
body:not(.home-page) #main-content > section.bg-blue-600 a.bg-slate-900 {
  border-radius:999px; background:var(--brand); color:#fff;
  box-shadow:0 16px 32px -14px #2563ebb3;
}

/* Breadcrumbs read as a pill, the way the hero eyebrow does. */
body:not(.home-page) #main-content > section:first-child nav[aria-label="Breadcrumb"] ol {
  display:inline-flex; align-items:center; gap:8px;
  padding:7px 14px; border-radius:999px;
  background:#ffffffcc; border:1px solid #dbe6ff; color:#4a5d7c; font-size:12px;
}

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */
.site-footer {
  border-top:1px solid var(--line); color:var(--muted);
  background:
    radial-gradient(70% 60% at 50% 0%, #dfe9ff59 0%, #dfe9ff00 70%),
    linear-gradient(180deg,#fbfcff 0%,#f4f7fe 100%);
}
.footer-inner { max-width:1224px; margin-inline:auto; padding-inline:32px; }

.footer-cta {
  display:grid; grid-template-columns:1.4fr 1fr; gap:28px; align-items:center;
  margin-top:56px; padding:38px 40px;
  border:1px solid #dfe9fc; border-radius:26px;
  background:
    radial-gradient(90% 80% at 12% 0%, #cdbcff40 0%, #cdbcff00 62%),
    linear-gradient(120deg,#eef4ff 0%,#f7faff 100%);
  box-shadow:var(--shadow);
}
.home-page .footer-cta { display:none; }
.footer-cta h3 { font-family:var(--font-display); font-size:26px; font-weight:800; letter-spacing:-.035em; color:var(--ink); }
.footer-cta p { max-width:56ch; margin-top:10px; font-size:14px; line-height:1.7; color:var(--muted); }
.footer-cta-actions { display:flex; flex-wrap:wrap; gap:12px; justify-content:flex-end; }

.btn-primary {
  display:inline-flex; align-items:center; gap:9px; padding:14px 26px; border-radius:999px;
  background:var(--brand); color:#fff; font-size:14px; font-weight:700;
  box-shadow:0 14px 28px -14px #2563ebb3; transition:background .15s, transform .15s;
}
.btn-primary:hover { background:#1d4fd8; transform:translateY(-1px); }
.btn-primary svg { width:16px; height:16px; }
.btn-ghost {
  display:inline-flex; align-items:center; padding:14px 24px; border-radius:999px;
  background:#fff; border:1px solid #dbe6ff; color:#33456a; font-size:14px; font-weight:700;
  transition:border-color .15s, color .15s;
}
.btn-ghost:hover { border-color:#b9d2fb; color:var(--brand); }

.footer-grid {
  display:grid; grid-template-columns:1.6fr repeat(4,1fr); gap:32px;
  padding:56px 0;
}
.footer-brand > p { max-width:40ch; margin-top:16px; font-size:13px; line-height:1.75; color:var(--muted); }
.footer-brand em { font-style:normal; font-weight:600; color:#2c3f5e; }
.footer-logo { display:inline-flex; align-items:center; gap:10px; font-family:var(--font-display); font-size:20px; font-weight:800; letter-spacing:-.02em; color:var(--ink); }
.footer-logo-mark { display:grid; place-items:center; width:36px; height:36px; border-radius:12px; overflow:hidden; }


.footer-col h3 {
  font-family:var(--font-display); font-size:10.5px; font-weight:700;
  letter-spacing:.14em; text-transform:uppercase; color:#8494ad;
}
.footer-col ul { margin-top:16px; display:grid; gap:11px; }
.footer-col li { font-size:13px; }
.footer-link { color:#4c5b74; transition:color .15s; }
.footer-link:hover { color:var(--brand); }

.footer-legal {
  display:flex; align-items:center; justify-content:space-between; gap:18px; flex-wrap:wrap;
  padding:22px 0 30px; border-top:1px solid var(--line); font-size:12px; color:#8494ad;
}
.footer-legal p span[aria-hidden] { color:#c3ccdc; margin-inline:4px; }
.footer-legal-links { display:flex; flex-wrap:wrap; gap:22px; font-weight:600; }

#back-to-top { border-radius:999px; background:var(--brand); box-shadow:0 14px 30px -12px #2563ebb3; }
#back-to-top:hover { background:#1d4fd8; }

@media (max-width:1024px) {
  .footer-grid { grid-template-columns:repeat(2,1fr); gap:30px 24px; }
  .footer-brand { grid-column:1/-1; }
  .footer-cta { grid-template-columns:1fr; }
  .footer-cta-actions { justify-content:flex-start; }
}
@media (max-width:767px) {
  #nav-shell > div:first-child { margin-top:10px; padding-inline:10px; }
  #nav-shell > div:first-child > div { height:58px; padding-inline:14px; border-radius:20px; }
  body:not(.home-page) #main-content > section:first-child { margin-top:-78px; padding:112px 0 40px; }
  body:not(.home-page) #main-content > section.bg-blue-600 > div { padding:36px 22px; border-radius:22px; }
  .footer-inner { padding-inline:20px; }
  .footer-cta { margin-top:36px; padding:26px 22px; border-radius:20px; }
  .footer-cta h3 { font-size:21px; }
  .footer-cta-actions a { width:100%; justify-content:center; }
  .footer-grid { grid-template-columns:1fr; gap:26px; padding:36px 0; }
  .footer-legal { flex-direction:column-reverse; align-items:flex-start; }
}

/* custom.css draws a sliding underline under each nav item; the pill state
   replaces it. */
.nav-link::after { display:none; }
