:root {
  --header-offset: 6rem;
  color-scheme: light;
  --bg: #F8FAFC;
  --surface: #FFFFFF;
  --border: #DBE3EE;
  --text: #111827;
  --heading: #0B1220;
  --accent: #4338CA;
  --accent-hover: #3730A3;
  --radius-control: 0.5rem;
  --radius-card: 0.5rem;
  --shadow-lift: 0 18px 45px -32px rgba(15, 23, 42, 0.55);
}

body {
  background-color: var(--bg);
  color: var(--text);
}

h1,
h2,
h3,
h4,
h5,
h6 {
  color: var(--heading);
}

a {
  color: var(--accent);
  text-decoration: none;
  transition: color 0.2s ease, text-decoration-color 0.2s ease;
}

a:hover {
  text-decoration: underline;
}

a:visited {
  color: var(--accent);
}

a.text-white:visited,
a.hero-cta:visited,
a.site-header-cta:visited {
  color: #FFFFFF;
}

.bg-primary {
  background-color: var(--accent);
}

.bg-primary-dark {
  background-color: var(--accent-hover);
}

.text-primary {
  color: var(--accent);
}

.border-primary {
  border-color: var(--accent);
}

.ring-primary {
  --tw-ring-color: var(--accent);
}

.metric-value {
  color: var(--accent);
}

.trust-strip {
  background-color: inherit;
}

.shadow-soft {
  box-shadow: var(--shadow-lift);
}

.focus-outline:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 2px;
}

.hover\:bg-primary-dark:hover {
  background-color: var(--accent-hover);
}

.hover\:text-primary:hover {
  color: var(--accent);
}

.hover\:border-primary:hover {
  border-color: var(--accent);
}

.focus\:border-primary:focus {
  border-color: var(--accent);
}

.focus\:ring-primary:focus {
  --tw-ring-color: var(--accent);
}

.focus-within\:ring-primary:focus-within {
  --tw-ring-color: var(--accent);
}

.bg-white\/95 {
  background-color: rgba(255, 255, 255, 0.95);
}

.bg-white\/80 {
  background-color: rgba(255, 255, 255, 0.8);
}

.bg-white\/10 {
  background-color: rgba(255, 255, 255, 0.1);
}

/* Tailwind v3 color aliases (site uses slate palette classnames). */
.bg-slate-50 {
  --tw-bg-opacity: 1;
  background-color: rgba(248, 250, 252, var(--tw-bg-opacity));
}

.text-slate-500 {
  --tw-text-opacity: 1;
  color: rgba(100, 116, 139, var(--tw-text-opacity));
}

.text-slate-600 {
  --tw-text-opacity: 1;
  color: rgba(71, 85, 105, var(--tw-text-opacity));
}

.text-slate-700 {
  --tw-text-opacity: 1;
  color: rgba(51, 65, 85, var(--tw-text-opacity));
}

.text-slate-900 {
  --tw-text-opacity: 1;
  color: rgba(15, 23, 42, var(--tw-text-opacity));
}

.border-slate-200 {
  --tw-border-opacity: 1;
  border-color: rgba(226, 232, 240, var(--tw-border-opacity));
}

.border-slate-200\/60 {
  border-color: rgba(226, 232, 240, 0.6);
}

.section--surface {
  background-color: var(--surface);
}

.section--muted {
  background-color: var(--bg);
}

.section--divider {
  border-bottom: 1px solid rgba(226, 232, 240, 0.6);
}

.section-inner {
  max-width: 80rem;
  margin: 0 auto;
  padding: 0 1rem;
}

@media (min-width: 640px) {
  .section-inner {
    padding: 0 1.5rem;
  }
}

@media (min-width: 1024px) {
  .section-inner {
    padding: 0 2rem;
  }
}

.card {
  background-color: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-card);
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06);
}

.card--on-white {
  background-color: var(--bg);
  border-color: rgba(226, 232, 240, 0.9);
}

.border-slate-300 {
  --tw-border-opacity: 1;
  border-color: rgba(203, 213, 225, var(--tw-border-opacity));
}

.border-slate-400 {
  --tw-border-opacity: 1;
  border-color: rgba(148, 163, 184, var(--tw-border-opacity));
}

.chip {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.75rem 1rem;
  border-radius: var(--radius-control);
  background-color: #F1F5F9;
  color: #374151;
  font-size: 0.875rem;
  font-weight: 500;
}

.chip-dot {
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 9999px;
  background-color: #D1D5DB;
}

.chip.is-active {
  background-color: #FFFFFF;
  border: 1px solid var(--accent);
  color: var(--accent);
}

.site-header-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}

.site-header-bar > * {
  min-width: 0;
}

.site-header-brand {
  flex-shrink: 0;
}

.site-nav {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.hidden.site-nav {
  display: none;
}

@media (min-width: 768px) {
  .hidden.site-nav {
    display: flex;
  }
}

.site-nav a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.site-header-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-control);
}

@media (min-width: 768px) {
  .site-header-bar {
    flex-wrap: nowrap;
  }

  .site-nav {
    flex-wrap: nowrap;
    gap: 1.5rem;
  }
}

@media (max-width: 767px) {
  .site-header-bar {
    align-items: flex-start;
  }

  .site-nav-full {
    width: 100%;
    justify-content: flex-start;
  }

  .site-header-cta {
    width: 100%;
  }
}

.hero-actions .hero-cta {
  width: 100%;
}

@media (min-width: 640px) {
  .hero-actions .hero-cta {
    width: auto;
  }
}

.hero-chips {
  width: 100%;
}

.hero-chips .chip {
  width: 100%;
  justify-content: flex-start;
  text-align: left;
}

@media (min-width: 480px) {
  .hero-chips {
    width: auto;
  }

  .hero-chips .chip {
    width: auto;
  }
}

.section {
  scroll-margin-top: var(--header-offset);
}

@media (max-width: 767px) {
  .section {
    padding-top: 3.5rem;
    padding-bottom: 3.5rem;
  }
}

h1,
h2,
h3,
h4,
h5,
h6 {
  text-wrap: balance;
}

p,
li {
  text-wrap: pretty;
}

img {
  max-width: 100%;
  height: auto;
}

body.score-modal-open {
  overflow: hidden;
  overscroll-behavior: contain;
}

.score-modal-container {
  align-items: flex-start;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

@media (min-width: 640px) {
  .score-modal-container {
    align-items: center;
  }
}

.score-modal-panel {
  max-height: calc(100vh - 2rem);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

@media (min-width: 640px) {
  .score-modal-panel {
    max-height: calc(100vh - 4rem);
  }
}
