/* Shared styles for SP3 sub-pages. Matches the dark-mode hero. */
*,*::before,*::after { box-sizing: border-box; }
html,body { margin:0; padding:0; background:#0B0D10; color:#EDEEF0; }
body {
  font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
a { color:#C8D6FF; text-decoration:none; }
a:hover { color:#EDEEF0; text-decoration:underline; }
a:focus-visible { outline:2px solid #7AA2FF; outline-offset:2px; border-radius:4px; }

.skip {
  position:absolute; left:-10000px; top:auto; width:1px; height:1px; overflow:hidden;
}
.skip:focus {
  left:16px; top:16px; width:auto; height:auto;
  padding:10px 14px; background:#EDEEF0; color:#0B0D10; z-index:1000;
  border-radius:6px; text-decoration:none;
}

.page-nav {
  display:flex;
  align-items:center;
  gap:28px;
  padding:18px 32px;
  border-bottom:1px solid rgba(255,255,255,0.06);
  background:#0B0D10;
}
.page-nav .brand {
  font-weight:600;
  letter-spacing:0.02em;
  color:#EDEEF0;
  margin-right:auto;
}
.page-nav a {
  font-size:14px;
  color:#A7ADBA;
}
.page-nav a:hover { color:#EDEEF0; }
.page-nav .req {
  color:#EDEEF0;
}

main.page {
  max-width:860px;
  margin:0 auto;
  padding:64px 32px 96px;
}
main.page .eyebrow {
  font-size:12px;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:#7AA2FF;
  margin:0 0 18px;
}
main.page h1 {
  font-weight:600;
  font-size:clamp(32px,4vw,52px);
  line-height:1.1;
  letter-spacing:-0.01em;
  margin:0 0 12px;
}
main.page h2 {
  font-size:clamp(20px,2vw,24px);
  font-weight:600;
  margin:42px 0 12px;
  letter-spacing:-0.005em;
}
main.page h3 {
  font-size:16px;
  font-weight:600;
  margin:26px 0 6px;
}
main.page p, main.page li {
  color:#CDD2DB;
  font-size:16px;
}
main.page ul { padding-left:20px; }
main.page li { margin-bottom:6px; }
main.page .lede {
  color:#EDEEF0;
  font-size:18px;
  margin-bottom:32px;
}
main.page .meta {
  font-size:13px;
  color:#7F8594;
  margin-top:42px;
}
main.page .cta {
  display:inline-block;
  padding:10px 18px;
  background:#EDEEF0;
  color:#0B0D10;
  border-radius:999px;
  font-weight:600;
  margin-top:12px;
}
main.page .cta:hover { background:#FFFFFF; text-decoration:none; }

.card {
  border:1px solid rgba(255,255,255,0.08);
  border-radius:14px;
  padding:20px 22px;
  background:#11141A;
  margin:24px 0;
}

dl.stats {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
  gap:20px;
  margin:24px 0;
}
dl.stats > div {
  border:1px solid rgba(255,255,255,0.08);
  border-radius:12px;
  padding:16px;
  background:#11141A;
}
dl.stats dt { font-size:12px; color:#7F8594; letter-spacing:0.1em; text-transform:uppercase; }
dl.stats dd { margin:6px 0 0; font-size:22px; font-weight:600; }

.site-footer {
  border-top:1px solid rgba(255,255,255,0.06);
  padding:56px 32px 28px;
  background:#0B0D10;
}
.site-footer .grid {
  max-width:1080px;
  margin:0 auto;
  display:grid;
  grid-template-columns:1.3fr 1fr 1fr 1fr;
  gap:32px;
}
@media (max-width:720px) {
  .site-footer .grid { grid-template-columns:1fr 1fr; }
}
.site-footer h4 {
  color:#7F8594;
  font-size:11px;
  letter-spacing:0.18em;
  text-transform:uppercase;
  margin:0 0 14px;
  font-weight:600;
}
.site-footer ul { list-style:none; padding:0; margin:0; }
.site-footer li { margin-bottom:8px; }
.site-footer a { color:#CDD2DB; font-size:14px; }
.site-footer a:hover { color:#FFFFFF; }
.site-footer .tagline {
  color:#A7ADBA;
  font-size:15px;
  max-width:260px;
}
.site-footer .baseline {
  max-width:1080px;
  margin:36px auto 0;
  padding-top:20px;
  border-top:1px solid rgba(255,255,255,0.06);
  display:flex;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
  color:#7F8594;
  font-size:12px;
  letter-spacing:0.08em;
}
