:root {
  --bg: #f4f6f9;
  --surface: #ffffff;
  --surface-2: #e8eaef;
  --text: #1a202c;
  --muted: #64748b;
  --border: #cbd5e1;
  --primary: #1257b8;
  --primary-dark: #0e4593;
  --accent: #fb5b00;
  --accent-dark: #d94e00;
  --radius: 12px;
  --shadow: 0 18px 40px rgba(18, 87, 184, 0.08);
  --font-display: "General Sans", sans-serif;
  --font-body: "General Sans", sans-serif;
}

* { 
  box-sizing: border-box; 
}

html { 
  scroll-behavior: smooth; 
}

body { 
  margin: 0; 
  font-family: var(--font-body); 
  background: var(--bg); 
  color: var(--text); 
  line-height: 1.6; 
}

img { 
  max-width: 100%; 
  display: block; 
}

a { 
  text-decoration: none; 
  color: inherit; 
}

button { 
  font: inherit; 
}

table { 
  width: 100%; 
  border-collapse: collapse; 
}

.container { 
  width: min(1120px, calc(100% - 32px)); 
  margin: 0 auto; 
}

.section { 
  padding: 72px 0; 
}

.section-sm { 
  padding: 24px 0 8px; 
}

.alt { 
  background: linear-gradient(180deg, #ffffff, #f4f6f9); 
}

.skip-link { 
  position: absolute; 
  left: -9999px; 
}

.skip-link:focus { 
  left: 12px; 
  top: 12px; 
  background: #fff; 
  padding: 10px 14px; 
  z-index: 99; 
}

.site-header { 
  position: sticky; 
  top: 0; 
  z-index: 50; 
  background: rgba(0, 0, 0, 0.92);
  backdrop-filter: blur(10px); 
  border-bottom: 1px solid rgba(255, 255, 255, 0.1); 
}

.header-row { 
  display: flex; 
  align-items: center; 
  justify-content: space-between; 
  gap: 16px; 
  min-height: 76px; 
}

.desktop-nav, .header-cta, .toc-box, .trust-list, .hero-actions, .feature-list, .footer-grid nav, .tags { 
  display: flex; 
  gap: 12px; 
  flex-wrap: wrap; 
}

.desktop-nav a, .mobile-nav a, .footer-grid a { 
  padding: 10px 12px; 
  color: rgba(255, 255, 255, 0.7);
  transition: color 0.2s ease;
}

.desktop-nav a:hover, .mobile-nav a:hover, .footer-grid a:hover { 
  color: #ffffff;
}

.menu-toggle { 
  display: none; 
  border: 1px solid rgba(255, 255, 255, 0.2); 
  background: rgba(255, 255, 255, 0.05); 
  color: #ffffff;
  padding: 10px 14px; 
  border-radius: 999px; 
  cursor: pointer;
}

.mobile-nav { 
  display: none; 
  padding: 0 16px 16px; 
}

.promo-bar { 
  background: var(--primary); 
  color: #ffffff; 
}

.promo-inner { 
  display: flex; 
  align-items: center; 
  justify-content: space-between; 
  gap: 18px; 
  padding: 14px 0; 
}

.btn { 
  display: inline-flex; 
  align-items: center; 
  justify-content: center; 
  min-height: 44px; 
  padding: 0 18px; 
  border-radius: 999px; 
  border: 1px solid transparent; 
  font-weight: 600; 
  transition: background 0.2s; 
}

.btn-primary { 
  background: var(--accent); 
  color: #fff; 
}

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

.btn-secondary { 
  background: #fff; 
  border-color: var(--border); 
}

.btn-ghost { 
  background: transparent; 
  border-color: var(--border); 
  color: var(--primary); 
}

.hero { 
  padding: 56px 0 32px; 
}

.hero-grid, .two-col, .final-box, .footer-grid { 
  display: grid; 
  gap: 28px; 
}

.hero-grid { 
  grid-template-columns: 1.5fr 0.9fr; 
  align-items: start; 
}

.eyebrow, .section-kicker, .rating-label { 
  letter-spacing: 0.12em; 
  text-transform: uppercase; 
  color: var(--accent); 
  font-size: 0.8rem; 
  font-weight: 700; 
}

.lead { 
  font-size: 1.1rem; 
  max-width: 62ch; 
  color: var(--muted); 
}

.trust-list { 
  list-style: none; 
  padding: 0; 
  margin: 22px 0 0; 
}

.trust-list li, .tags span { 
  background: #f0f5ff; 
  border: 1px solid #cce0ff; 
  padding: 10px 12px; 
  border-radius: 999px; 
  color: var(--primary-dark); 
}

.rating-card, .card, .toc-box, .final-box { 
  background: var(--surface); 
  border: 1px solid var(--border); 
  border-radius: var(--radius); 
  box-shadow: var(--shadow); 
}

.rating-card { 
  padding: 24px; 
}

.rating-card strong { 
  font: 700 clamp(2rem, 4vw, 3rem) var(--font-display); 
  display: block; 
  margin: 8px 0 12px; 
  color: var(--primary); 
}

.muted, .table-note { 
  color: var(--muted); 
}

.toc-box { 
  padding: 18px; 
}

.toc-box a { 
  padding: 10px 12px; 
  border-radius: 999px; 
  background: var(--bg); 
  transition: background 0.2s; 
}

.toc-box a:hover { 
  background: #e2e8f0; 
}

.two-col { 
  grid-template-columns: 1fr 1fr; 
}

.cards-grid { 
  display: grid; 
  grid-template-columns: repeat(2, minmax(0, 1fr)); 
  gap: 18px; 
  margin-top: 22px; 
}

.card { 
  padding: 22px; 
}

.card h3, .faq summary { 
  font-size: 1.12rem; 
}

.feature-list { 
  list-style: none; 
  padding: 0; 
  margin: 0; 
  flex-direction: column; 
}

.feature-list li { 
  padding: 14px 16px; 
  background: var(--surface); 
  border: 1px solid var(--border); 
  border-radius: 14px; 
}

.table-wrap { 
  overflow: auto; 
  background: var(--surface); 
  border: 1px solid var(--border); 
  border-radius: var(--radius); 
  box-shadow: var(--shadow); 
}

th, td { 
  padding: 14px 16px; 
  text-align: left; 
  border-bottom: 1px solid var(--border); 
}

th { 
  background: #f8fafc; 
  font-weight: 600; 
  color: var(--primary-dark); 
}

.faq { 
  display: grid; 
  gap: 12px; 
}

.faq details { 
  background: var(--surface); 
  border: 1px solid var(--border); 
  border-radius: 16px; 
  padding: 16px 18px; 
}

.faq summary { 
  cursor: pointer; 
  font-weight: 600; 
  color: var(--primary-dark); 
}

.final-box { 
  grid-template-columns: 1fr auto; 
  align-items: center; 
  padding: 28px; 
}

.site-footer { 
  padding: 40px 0 64px; 
  border-top: 1px solid var(--border); 
  background: #ffffff; 
}

.footer-grid { 
  grid-template-columns: 1.1fr 1fr auto; 
  align-items: start; 
}

h1, h2 { 
  font-family: var(--font-display); 
  line-height: 1.08; 
  margin: 0 0 14px; 
  color: var(--text); 
}

h1 { 
  font-size: clamp(2.3rem, 5.4vw, 4.8rem); 
}

h2 { 
  font-size: clamp(1.8rem, 4vw, 3rem); 
}

h3 { 
  margin: 0 0 10px; 
  color: var(--text); 
}

p { 
  margin: 0 0 14px; 
  max-width: 72ch; 
}

details p:last-child { 
  margin-bottom: 0; 
}

@media (max-width: 1024px) { 
  .desktop-nav, .header-cta { 
    display: none; 
  } 
  .menu-toggle { 
    display: inline-flex; 
  } 
  .hero-grid, .two-col, .footer-grid, .final-box { 
    grid-template-columns: 1fr; 
  } 
  .cards-grid { 
    grid-template-columns: 1fr 1fr; 
  } 
  .mobile-nav.open { 
    display: flex; 
    flex-direction: column; 
  } 
}

@media (max-width: 768px) { 
  .section { 
    padding: 56px 0; 
  } 
  .cards-grid { 
    grid-template-columns: 1fr; 
  } 
  .promo-inner { 
    flex-direction: column; 
    align-items: flex-start; 
  } 
  .container { 
    width: min(100% - 24px, 1120px); 
  } 
  .toc-box { 
    gap: 8px; 
  } 
}

@media (max-width: 390px) { 
  body { 
    font-size: 15px; 
  } 
  .desktop-nav a, .mobile-nav a, .footer-grid a, .btn { 
    font-size: 0.95rem; 
  } 
  th, td { 
    padding: 12px 10px; 
  } 
}