:root{--brand:#2a3f54;--brand-dark:#1f2f42;--accent:#00c4b3}
html,body{scroll-behavior:smooth}:root { --nav-h: 52px; } /* adjust to your navbar height */
html, body { height: 100%; }
body { min-height: 100vh; display: flex; flex-direction: column; }
.site-main { flex: 1 0 auto; padding-top: var(--nav-h); }
footer { margin-top: auto; }
.skip-link{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.skip-link:focus{position:static;width:auto;height:auto;padding:.5rem 1rem;background:#fff;color:#000;z-index:1100}
.navbar .nav-link.active,.navbar .nav-link[aria-current="page"]{font-weight:700;}
.btn-brand{background:var(--brand);color:#fff}
.btn-brand:hover{background:var(--brand-dark);color:#fff}
.text-brand{color:var(--brand)!important}
.bg-brand{background-color:var(--brand)!important}
.hero{background:radial-gradient(1200px 600px at 10% 10%,rgba(42,63,84,.15),transparent),radial-gradient(1000px 500px at 90% 20%,rgba(0,196,179,.15),transparent),linear-gradient(180deg,#0f1820,#0b1218);color:#fff}
.card-feature{border:0;box-shadow:0 10px 30px rgba(0,0,0,.08)}
.badge-soft{background:rgba(42,63,84,.1);color:var(--brand)}
footer a{text-decoration:none}
.section-title{font-weight:700;letter-spacing:.3px}
.icon-xxl{font-size:3rem}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.card-feature {
  transition: background-color 0.3s ease, color 0.3s ease;
}

.card-feature:hover {
  background-color: var(--brand);
  color: #fff;
}

.card-feature:hover h5,
.card-feature:hover p,
.card-feature:hover i {
  color: #fff !important;
}
.nav-elevated {
  background-color: #2a3f54;
  transition: background-color 0.3s, box-shadow 0.3s;
}
.nav-elevated .nav-link {
  color: rgba(255,255,255,0.85);
  font-weight: 500;
  transition: color 0.2s, background-color 0.2s;
}
.nav-elevated .nav-link:hover,
.nav-elevated .nav-link:focus {
  color: #fff;
  background-color: rgba(255,255,255,0.08);
  border-radius: 0.25rem;
}
.nav-elevated .nav-link.active {
  color: #0097cb;
}
.nav-elevated .navbar-toggler {
  border: none;
  font-size: 1.25rem;
}
.nav-elevated .navbar-toggler:focus {
  box-shadow: none;
}
.navbar-brand img {
  display: block;
  max-height: 48px; /* fills navbar without increasing its height */
  height: auto;
  width: auto;
}



#terms { --nav-offset: 0px; }

#terms h2[id] { 
  scroll-margin-top: var(--nav-offset);
}

/* TOC styles */
#terms #toc .nav-link { color: rgba(42,63,84,.8); }
#terms #toc .nav-link:hover,
#terms #toc .nav-link.active { color:#2a3f54; text-decoration:underline; }

#terms .terms-sticky {
  position: sticky;
  align-self: flex-start;
  /* The top offset is set by JS to match navbar height */
}

/* Fallback for browsers that ignore scroll-margin in some contexts */
#terms h2[id]:target::before {
  content:"";
  display:block;
  height: var(--nav-offset);
  margin-top: calc(-1 * var(--nav-offset));
}


