/* ============================================================
   BestCreditCardsHQ — style.css
   Single shared stylesheet for all pages.

   Required in every page <head> before this file:
   <link rel="preconnect" href="https://fonts.googleapis.com">
   <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
   <link href="https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,600;0,9..144,700;0,9..144,800;1,9..144,400&family=JetBrains+Mono:wght@400;600&display=swap" rel="stylesheet">

   Contents
   ─────────────────────────────────────────────────────────
   1.  Design tokens (:root)
   2.  Reset
   3.  Header
   4.  Footer
   5.  Hero
   6.  Breadcrumb
   7.  Content layout & headings
   8.  Table of contents
   9.  Info grid
   10. Callout banners
   11. Quick pick cards
   12. Methodology grid
   13. Review cards
   14. Score bars
   15. Pros / cons
   16. Apply row & buttons
   17. Comparison table
   18. FAQ
   19. Author box
   20. Page footer disclaimer
   21. Responsive
   ============================================================ */


/* ── 1. DESIGN TOKENS ─────────────────────────────────────── */
:root {
  /* Backgrounds */
  --white:        #FFFFFF;
  --bg:           #F7F8FA;
  --bg-alt:       #EEF0F4;
  --surface:      #FFFFFF;

  /* Borders */
  --border:       #E4E7EC;
  --border-md:    #C8D0DC;

  /* Text */
  --ink:          #101828;
  --ink-2:        #344054;
  --ink-3:        #667085;
  --ink-4:        #98A2B3;

  /* Blue */
  --blue:         #1D4ED8;
  --blue-hover:   #1E40AF;
  --blue-lt:      #EFF6FF;
  --blue-rim:     #BFDBFE;

  /* Orange */
  --orange:       #EA580C;
  --orange-hover: #C2410C;
  --orange-lt:    #FFF7ED;
  --orange-rim:   #FED7AA;

  /* Green */
  --green:        #15803D;
  --green-lt:     #F0FDF4;
  --green-rim:    #86EFAC;

  /* Red */
  --red:          #B91C1C;
  --red-lt:       #FEF2F2;
  --red-rim:      #FECACA;

  /* Amber */
  --amber:        #92400E;
  --amber-lt:     #FFFBEB;
  --amber-rim:    #FDE68A;

  /* Shadows */
  --shadow-xs:    0 1px 2px rgba(16,24,40,.05);
  --shadow-sm:    0 1px 3px rgba(16,24,40,.08), 0 1px 2px rgba(16,24,40,.04);
  --shadow-md:    0 4px 8px -2px rgba(16,24,40,.1), 0 2px 4px -2px rgba(16,24,40,.05);

  /* Border radius */
  --r-sm:         6px;
  --r-md:         10px;
  --r-lg:         14px;
  --r-xl:         18px;

  /* Typography */
  --serif:        'Fraunces', Georgia, serif;
  --sans:         'DM Sans', system-ui, sans-serif;
  --mono:         'JetBrains Mono', monospace;

  /* Header height */
  --hdr-h:        64px;
}


/* ── 2. RESET ─────────────────────────────────────────────── */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html { scroll-behavior: smooth; }

body {
  background: var(--bg);
  color: var(--ink);
  font-family: var(--sans);
  font-size: 17px;
  line-height: 1.75;
  -webkit-font-smoothing: antialiased;
}


/* ── 3. HEADER ────────────────────────────────────────────── */
.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: var(--white);
  border-bottom: 1px solid var(--border);
  font-family: var(--sans);
  -webkit-font-smoothing: antialiased;
}

.hdr-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px;
  height: var(--hdr-h);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

/* Logo */
.hdr-logo {
  display: flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  flex-shrink: 0;
}

.hdr-logo-mark {
  width: 34px;
  height: 24px;
  background: var(--blue);
  border-radius: 4px;
  position: relative;
  flex-shrink: 0;
}
.hdr-logo-mark::before {
  content: '';
  position: absolute;
  top: 6px; left: 0; right: 0;
  height: 6px;
  background: rgba(255,255,255,0.25);
}
.hdr-logo-mark::after {
  content: '';
  position: absolute;
  bottom: 5px; left: 5px;
  width: 9px; height: 6px;
  border-radius: 2px;
  background: rgba(255,220,60,0.85);
}

.hdr-logo-text {
  font-size: 16px;
  font-weight: 700;
  color: var(--ink);
  letter-spacing: -0.02em;
  line-height: 1;
}
.hdr-logo-text span { color: var(--blue); }

/* Desktop nav */
.hdr-nav {
  display: flex;
  align-items: center;
  gap: 2px;
  flex: 1;
}

.hdr-nav a {
  display: flex;
  align-items: center;
  height: var(--hdr-h);
  padding: 0 13px;
  font-size: 14px;
  font-weight: 500;
  color: var(--ink-2);
  text-decoration: none;
  white-space: nowrap;
  border-bottom: 2px solid transparent;
  transition: color .15s, border-color .15s, background .15s;
}
.hdr-nav a:hover,
.hdr-nav a.active {
  color: var(--blue);
  border-bottom-color: var(--blue);
  background: var(--bg);
}
.hdr-nav a.active { font-weight: 600; }

/* Right side */
.hdr-right {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-shrink: 0;
}

.hdr-cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--orange);
  color: #fff;
  font-family: var(--sans);
  font-size: 14px;
  font-weight: 700;
  padding: 9px 18px;
  border-radius: var(--r-sm);
  text-decoration: none;
  white-space: nowrap;
  transition: background .15s, transform .1s;
}
.hdr-cta:hover { background: var(--orange-hover); transform: translateY(-1px); }

/* Hamburger checkbox */
.hdr-toggle-check {
  display: none;
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.hdr-burger {
  display: none;
  flex-direction: column;
  justify-content: space-between;
  width: 22px;
  height: 16px;
  cursor: pointer;
  flex-shrink: 0;
}

.hdr-burger-bar {
  display: block;
  width: 22px;
  height: 2px;
  background: var(--ink);
  border-radius: 2px;
  transition: transform .25s, opacity .2s;
}

.hdr-toggle-check:checked ~ .hdr-inner .hdr-burger .hdr-burger-bar:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}
.hdr-toggle-check:checked ~ .hdr-inner .hdr-burger .hdr-burger-bar:nth-child(2) {
  opacity: 0;
  transform: scaleX(0);
}
.hdr-toggle-check:checked ~ .hdr-inner .hdr-burger .hdr-burger-bar:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

/* Mobile nav drawer */
.hdr-mobile-nav { display: none; }

@media (max-width: 900px) {
  .hdr-burger { display: flex; }
  .hdr-cta    { display: none; }
  .hdr-nav    { display: none; }

  .hdr-mobile-nav {
    display: none;
    flex-direction: column;
    background: var(--white);
    border-top: 1px solid var(--border);
    padding: 8px 0 16px;
  }
  .hdr-toggle-check:checked ~ .hdr-mobile-nav { display: flex; }

  .hdr-mobile-nav a {
    display: block;
    padding: 12px 24px;
    font-size: 15px;
    font-weight: 500;
    color: var(--ink-2);
    text-decoration: none;
    border-left: 3px solid transparent;
    transition: color .15s, border-color .15s, background .15s;
  }
  .hdr-mobile-nav a:hover {
    color: var(--blue);
    border-left-color: var(--blue);
    background: var(--bg);
  }

  .hdr-mobile-nav .hdr-mobile-cta {
    margin: 10px 24px 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--orange);
    color: #fff;
    font-size: 14px;
    font-weight: 700;
    padding: 11px 20px;
    border-radius: var(--r-sm);
    text-decoration: none;
    border-left: none;
  }
  .hdr-mobile-nav .hdr-mobile-cta:hover { background: var(--orange-hover); border-left-color: transparent; }

  .hdr-mob-label {
    display: block;
    padding: 14px 24px 6px;
    font-family: var(--mono);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--ink-4);
  }
}

@media (min-width: 901px) and (max-width: 1100px) {
  .hdr-nav a { padding: 0 9px; font-size: 13px; }
}


/* ── 4. FOOTER ────────────────────────────────────────────── */
.site-footer {
  background: var(--bg);
  border-top: 1px solid var(--border);
  font-family: var(--sans);
  -webkit-font-smoothing: antialiased;
  margin-top: 80px;
}

/* Top CTA band */
.ftr-top {
  background: var(--white);
  border-bottom: 1px solid var(--border);
  padding: 36px 24px;
}

.ftr-top-inner {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
}

.ftr-top-copy h2 {
  font-family: var(--serif);
  font-size: 20px;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: 4px;
  letter-spacing: -0.015em;
}
.ftr-top-copy p { font-size: 14px; color: var(--ink-3); line-height: 1.5; }

.ftr-top-cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--orange);
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  padding: 11px 22px;
  border-radius: var(--r-sm);
  text-decoration: none;
  white-space: nowrap;
  flex-shrink: 0;
  transition: background .15s, transform .1s;
}
.ftr-top-cta:hover { background: var(--orange-hover); transform: translateY(-1px); }

/* Main columns */
.ftr-main {
  max-width: 1200px;
  margin: 0 auto;
  padding: 48px 24px 40px;
  display: grid;
  grid-template-columns: 1.6fr repeat(4, 1fr);
  gap: 40px;
}

/* Brand column */
.ftr-brand { padding-right: 16px; }

.ftr-logo {
  display: flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  margin-bottom: 16px;
}

.ftr-logo-mark {
  width: 34px;
  height: 24px;
  background: var(--blue);
  border-radius: 4px;
  position: relative;
  flex-shrink: 0;
}
.ftr-logo-mark::before {
  content: '';
  position: absolute;
  top: 6px; left: 0; right: 0;
  height: 6px;
  background: rgba(255,255,255,0.25);
}
.ftr-logo-mark::after {
  content: '';
  position: absolute;
  bottom: 5px; left: 5px;
  width: 9px; height: 6px;
  border-radius: 2px;
  background: rgba(255,220,60,0.85);
}

.ftr-logo-text {
  font-size: 15px;
  font-weight: 700;
  color: var(--ink);
  letter-spacing: -0.02em;
}
.ftr-logo-text span { color: var(--blue); }

.ftr-brand-desc {
  font-size: 13px;
  color: var(--ink-3);
  line-height: 1.65;
  margin-bottom: 20px;
}

.ftr-editorial-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--blue-lt);
  border: 1px solid var(--blue-rim);
  border-radius: 999px;
  padding: 4px 12px;
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 600;
  color: var(--blue);
  letter-spacing: 0.06em;
}
.ftr-editorial-badge::before {
  content: '';
  display: inline-block;
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--blue);
}

/* Link columns */
.ftr-col h3 {
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-4);
  margin-bottom: 16px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--border);
}
.ftr-col ul { list-style: none; }
.ftr-col li { margin-bottom: 10px; }
.ftr-col a {
  font-size: 13px;
  color: var(--ink-3);
  text-decoration: none;
  line-height: 1.4;
  display: block;
  transition: color .15s;
}
.ftr-col a:hover { color: var(--blue); }
.ftr-col a.ftr-highlight { color: var(--ink-2); font-weight: 600; }
.ftr-col a.ftr-highlight:hover { color: var(--blue); }

/* Offer badges */
.ftr-badge {
  display: inline-block;
  font-family: var(--mono);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.06em;
  padding: 1px 6px;
  border-radius: 4px;
  vertical-align: middle;
  margin-left: 5px;
  line-height: 1.6;
}
.ftr-badge-orange { background: var(--orange-lt); color: var(--orange); border: 1px solid var(--orange-rim); }
.ftr-badge-blue   { background: var(--blue-lt);   color: var(--blue);   border: 1px solid var(--blue-rim); }

/* Bottom bar */
.ftr-bottom {
  border-top: 1px solid var(--border);
  background: var(--bg);
}
.ftr-bottom-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 20px 24px;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
}
.ftr-bottom-links {
  display: flex;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
}
.ftr-bottom-links a { font-size: 12px; color: var(--ink-4); text-decoration: none; transition: color .15s; }
.ftr-bottom-links a:hover { color: var(--blue); }
.ftr-copyright { font-size: 12px; color: var(--ink-4); line-height: 1.5; }

/* Advertiser disclaimer strip */
.ftr-disclaimer {
  background: var(--white);
  border-top: 1px solid var(--border);
  padding: 16px 24px;
}
.ftr-disclaimer-inner { max-width: 1200px; margin: 0 auto; }
.ftr-disclaimer p { font-size: 12px; color: var(--ink-4); line-height: 1.7; }
.ftr-disclaimer a { color: var(--ink-3); text-decoration: underline; }


/* ── 5. HERO ──────────────────────────────────────────────── */
.hero {
  background: var(--white);
  border-bottom: 1px solid var(--border);
  padding: 60px 24px 56px;
  text-align: center;
}
.hero-inner { max-width: 780px; margin: 0 auto; }

.hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--green-lt);
  border: 1px solid var(--green-rim);
  padding: 5px 15px;
  border-radius: 999px;
  font-family: var(--mono);
  font-size: 12px;
  font-weight: 600;
  color: var(--green);
  letter-spacing: 0.05em;
  margin-bottom: 24px;
}

.badge-dot {
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--green);
  animation: pulse 2s ease-in-out infinite;
}

@keyframes pulse { 0%,100%{opacity:1} 50%{opacity:.3} }

.hero h1 {
  font-family: var(--serif);
  font-size: clamp(28px, 5vw, 48px);
  font-weight: 800;
  color: var(--ink);
  line-height: 1.13;
  letter-spacing: -0.03em;
  margin-bottom: 20px;
}
.hero h1 em { color: var(--blue); font-style: italic; }

.hero-sub {
  font-size: 18px;
  color: var(--ink-3);
  line-height: 1.65;
  max-width: 580px;
  margin: 0 auto 40px;
}

.hero-stats {
  display: inline-flex;
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--r-xl);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
}
.hero-stat {
  padding: 18px 28px;
  border-right: 1px solid var(--border);
  text-align: center;
}
.hero-stat:last-child { border-right: none; }

.hero-stat-value {
  font-family: var(--serif);
  font-size: 24px;
  font-weight: 700;
  color: var(--ink);
  display: block;
  line-height: 1;
  margin-bottom: 5px;
}
.hero-stat-label {
  font-family: var(--mono);
  font-size: 10px;
  color: var(--ink-4);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  white-space: nowrap;
}


/* ── 6. BREADCRUMB ────────────────────────────────────────── */
.breadcrumb {
  max-width: 940px;
  margin: 0 auto;
  padding: 14px 24px 0;
  font-size: 13px;
  font-weight: 500;
  color: var(--ink-4);
}
.breadcrumb a { color: var(--blue); text-decoration: none; }
.breadcrumb a:hover { text-decoration: underline; }
.breadcrumb span { margin: 0 6px; color: var(--border-md); }


/* ── 7. CONTENT LAYOUT & HEADINGS ─────────────────────────── */
.content-wrap {
  max-width: 940px;
  margin: 0 auto;
  padding: 36px 24px 0;
}

.content-wrap h2 {
  font-family: var(--serif);
  font-size: 28px;
  font-weight: 700;
  color: var(--ink);
  margin: 60px 0 16px;
  letter-spacing: -0.02em;
  line-height: 1.22;
  position: relative;
  padding-bottom: 16px;
}
.content-wrap h2:first-child { margin-top: 0; }
.content-wrap h2::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0;
  width: 36px; height: 3px;
  background: var(--blue);
  border-radius: 2px;
}

.content-wrap h3 {
  font-family: var(--sans);
  font-size: 19px;
  font-weight: 700;
  color: var(--ink);
  margin: 32px 0 10px;
}

.content-wrap p { margin-bottom: 18px; color: var(--ink-2); }
.content-wrap p strong { color: var(--ink); font-weight: 600; }
.content-wrap a { color: var(--blue); text-decoration: underline; text-decoration-color: var(--blue-rim); text-underline-offset: 3px; }
.content-wrap a:hover { text-decoration-color: var(--blue); }


/* ── 8. TABLE OF CONTENTS ─────────────────────────────────── */
.toc-box {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  padding: 22px 26px;
  margin: 28px 0;
  box-shadow: var(--shadow-xs);
}
.toc-title {
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ink-4);
  margin-bottom: 14px;
}
.toc-list { list-style: none; counter-reset: toc; }
.toc-list li {
  counter-increment: toc;
  display: flex;
  align-items: baseline;
  gap: 12px;
  padding: 7px 0;
  border-bottom: 1px solid var(--border);
}
.toc-list li:last-child { border-bottom: none; padding-bottom: 0; }
.toc-list li::before {
  content: counter(toc, decimal-leading-zero);
  font-family: var(--mono);
  font-size: 11px;
  color: var(--ink-4);
  min-width: 22px;
  flex-shrink: 0;
}
.toc-list a { color: var(--ink-2); text-decoration: none; font-size: 14px; font-weight: 500; transition: color .15s; }
.toc-list a:hover { color: var(--blue); }


/* ── 9. INFO GRID ─────────────────────────────────────────── */
.info-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 14px;
  margin: 20px 0 28px;
}
.info-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  padding: 18px 20px;
  box-shadow: var(--shadow-xs);
}
.info-card-title { font-size: 14px; font-weight: 700; color: var(--ink); margin-bottom: 5px; }
.info-card-text  { font-size: 13px; color: var(--ink-3); line-height: 1.6; }


/* ── 10. CALLOUT BANNERS ──────────────────────────────────── */
.callout {
  display: flex;
  align-items: flex-start;
  gap: 13px;
  border-radius: var(--r-sm);
  padding: 14px 18px;
  margin: 24px 0;
  font-size: 14px;
  line-height: 1.6;
}
.callout-icon { font-size: 16px; flex-shrink: 0; margin-top: 2px; }
.callout-blue  { background: var(--blue-lt);  border: 1px solid var(--blue-rim);  color: #1e3a8a; }
.callout-amber { background: var(--amber-lt); border: 1px solid var(--amber-rim); color: var(--amber); }
.callout-green { background: var(--green-lt); border: 1px solid var(--green-rim); color: var(--green); }


/* ── 11. QUICK PICK CARDS ─────────────────────────────────── */
.pick-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-xl);
  padding: 26px 28px;
  margin-bottom: 14px;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 20px;
  align-items: start;
  box-shadow: var(--shadow-sm);
  transition: border-color .2s, box-shadow .2s;
}
.pick-card:hover { border-color: var(--blue-rim); box-shadow: var(--shadow-md); }
.pick-card.featured { border-color: var(--blue-rim); border-width: 2px; }

.pick-badge {
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 4px 12px;
  border-radius: 999px;
  margin-bottom: 12px;
  display: inline-block;
}
.badge-blue   { background: var(--blue-lt);   color: var(--blue);   border: 1px solid var(--blue-rim); }
.badge-slate  { background: var(--bg-alt);     color: var(--ink-3);  border: 1px solid var(--border-md); }
.badge-orange { background: var(--orange-lt);  color: var(--orange); border: 1px solid var(--orange-rim); }

.pick-card h3 {
  font-family: var(--serif);
  font-size: 21px;
  color: var(--ink);
  margin-bottom: 6px;
  line-height: 1.25;
}
.pick-tagline { font-size: 14px; color: var(--ink-3); margin-bottom: 18px; line-height: 1.55; }
.pick-stats   { display: flex; gap: 28px; flex-wrap: wrap; }

.psi-label {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--ink-4);
  display: block;
  margin-bottom: 2px;
}
.psi-val { font-size: 14px; font-weight: 700; color: var(--ink); }

/* Score rings */
.score-ring {
  width: 70px; height: 70px;
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.score-ring.blue-ring   { background: var(--blue-lt);   border: 2px solid var(--blue-rim); }
.score-ring.slate-ring  { background: var(--bg-alt);    border: 2px solid var(--border-md); }
.score-ring.orange-ring { background: var(--orange-lt); border: 2px solid var(--orange-rim); }

.score-num { font-family: var(--mono); font-size: 20px; font-weight: 700; color: var(--ink); line-height: 1; }
.score-max { font-family: var(--mono); font-size: 9px; color: var(--ink-4); }


/* ── 12. METHODOLOGY GRID ─────────────────────────────────── */
.method-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 14px;
  margin-top: 24px;
}
.method-item {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  padding: 20px 22px;
  box-shadow: var(--shadow-xs);
}
.method-name { font-size: 15px; font-weight: 700; color: var(--ink); margin-bottom: 6px; }
.method-weight {
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 700;
  color: var(--blue);
  letter-spacing: 0.08em;
  background: var(--blue-lt);
  display: inline-block;
  padding: 2px 9px;
  border-radius: var(--r-sm);
  margin-bottom: 10px;
}
.method-desc { font-size: 13px; color: var(--ink-3); line-height: 1.6; }


/* ── 13. REVIEW CARDS ─────────────────────────────────────── */
.review-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-xl);
  margin-bottom: 24px;
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  transition: box-shadow .2s;
}
.review-card:hover { box-shadow: var(--shadow-md); }

.review-header {
  padding: 28px 28px 0;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 20px;
  align-items: start;
}

.review-rank {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  color: var(--ink-4);
  margin-bottom: 8px;
  text-transform: uppercase;
}
.review-card h3 {
  font-family: var(--serif);
  font-size: 26px;
  color: var(--ink);
  margin-bottom: 5px;
  line-height: 1.2;
}
.review-issuer {
  font-family: var(--mono);
  font-size: 12px;
  color: var(--ink-4);
  margin-bottom: 14px;
}
.verdict-badge {
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.06em;
  padding: 5px 13px;
  border-radius: 999px;
  border: 1px solid var(--blue-rim);
  background: var(--blue-lt);
  color: var(--blue);
  display: inline-block;
  margin-bottom: 20px;
}

.review-body { padding: 0 28px 24px; }
.review-body p { font-size: 16px; color: var(--ink-2); margin-bottom: 18px; line-height: 1.78; }
.review-body p strong { color: var(--ink); font-weight: 600; }


/* ── 14. SCORE BARS ───────────────────────────────────────── */
.score-bars { margin: 22px 0; }
.score-bar-row {
  display: grid;
  grid-template-columns: 178px 1fr 38px;
  align-items: center;
  gap: 12px;
  margin-bottom: 10px;
}
.sbar-label { font-size: 12px; font-family: var(--mono); color: var(--ink-3); text-align: right; }
.sbar-track { height: 6px; background: var(--bg-alt); border-radius: 999px; overflow: hidden; border: 1px solid var(--border); }
.sbar-fill   { height: 100%; border-radius: 999px; background: var(--blue); }
.sbar-fill.g { background: var(--green); }
.sbar-fill.o { background: var(--orange); }
.sbar-val    { font-family: var(--mono); font-size: 12px; font-weight: 700; color: var(--ink); }


/* ── 15. PROS / CONS ──────────────────────────────────────── */
.pros-cons { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 22px 0; }
.pros-box  { background: var(--green-lt); border: 1px solid var(--green-rim); border-radius: var(--r-md); padding: 16px 18px; }
.cons-box  { background: var(--red-lt);   border: 1px solid var(--red-rim);   border-radius: var(--r-md); padding: 16px 18px; }

.pc-title {
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-bottom: 12px;
}
.pros-box .pc-title { color: var(--green); }
.cons-box .pc-title { color: var(--red); }

.pc-list { list-style: none; font-size: 13px; color: var(--ink-2); }
.pc-list li { padding: 3px 0; display: flex; gap: 8px; align-items: flex-start; line-height: 1.5; }
.pc-list li::before { flex-shrink: 0; margin-top: 1px; font-size: 12px; font-weight: 700; font-family: var(--mono); }
.pros-box .pc-list li::before { content: '+'; color: var(--green); }
.cons-box .pc-list li::before { content: '–'; color: var(--red); }


/* ── 16. APPLY ROW & BUTTONS ──────────────────────────────── */
.apply-row {
  padding: 18px 28px;
  background: var(--bg);
  border-top: 1px solid var(--border);
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
}
.apply-note { font-family: var(--mono); font-size: 12px; color: var(--ink-4); }

.btn-apply {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--orange);
  color: #fff;
  font-family: var(--sans);
  font-size: 14px;
  font-weight: 700;
  padding: 11px 22px;
  border-radius: var(--r-sm);
  text-decoration: none;
  transition: background .15s, transform .15s;
}
.btn-apply:hover { background: var(--orange-hover); transform: translateY(-1px); color: #fff; text-decoration: none; }


/* ── 17. COMPARISON TABLE ─────────────────────────────────── */
.compare-table-wrap {
  overflow-x: auto;
  border-radius: var(--r-lg);
  border: 1px solid var(--border);
  margin-top: 28px;
  box-shadow: var(--shadow-sm);
}
.compare-table { width: 100%; border-collapse: collapse; font-size: 13px; background: var(--surface); }
.compare-table th {
  background: var(--bg-alt);
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ink-3);
  padding: 13px 16px;
  text-align: left;
  white-space: nowrap;
  border-bottom: 1px solid var(--border);
}
.compare-table td { padding: 13px 16px; color: var(--ink-2); border-top: 1px solid var(--border); vertical-align: middle; }
.compare-table td:first-child { color: var(--ink); font-weight: 600; }
.compare-table tr:hover td { background: var(--blue-lt); }
.compare-table tr.winner-row td { background: #EFF6FF; }
.compare-table tr.winner-row td:first-child { color: var(--blue); }

.score-pill {
  display: inline-block;
  font-family: var(--mono);
  font-size: 12px;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: 999px;
}
.pill-top  { background: var(--blue-lt);  color: var(--blue);  border: 1px solid var(--blue-rim); }
.pill-high { background: var(--green-lt); color: var(--green); border: 1px solid var(--green-rim); }
.pill-mid  { background: var(--amber-lt); color: var(--amber); border: 1px solid var(--amber-rim); }


/* ── 18. FAQ ──────────────────────────────────────────────── */
.faq-section { margin: 56px 0 32px; }
.faq-item {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  margin-bottom: 10px;
  padding: 20px 24px;
  box-shadow: var(--shadow-xs);
  transition: border-color .15s;
}
.faq-item:hover { border-color: var(--blue-rim); }
.faq-item h3 { font-family: var(--sans); font-weight: 700; font-size: 16px; color: var(--ink); margin: 0 0 10px; }
.faq-item p  { font-size: 15px; color: var(--ink-2); line-height: 1.72; margin: 0; }


/* ── 19. AUTHOR BOX ───────────────────────────────────────── */
.author-box {
  display: flex;
  gap: 20px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-xl);
  padding: 28px;
  margin: 56px 0 32px;
  box-shadow: var(--shadow-sm);
}

.author-avatar {
  width: 60px; height: 60px;
  border-radius: var(--r-md);
  background: var(--blue);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

/* CSS credit card icon inside author avatar */
.cc-icon {
  width: 38px; height: 27px;
  border-radius: 3px;
  background: rgba(255,255,255,0.18);
  border: 1.5px solid rgba(255,255,255,0.55);
  position: relative;
  overflow: hidden;
}
.cc-icon::before {
  content: '';
  position: absolute;
  top: 7px; left: 0; right: 0;
  height: 7px;
  background: rgba(255,255,255,0.3);
}
.cc-icon::after {
  content: '';
  position: absolute;
  bottom: 5px; left: 5px;
  width: 11px; height: 7px;
  border-radius: 2px;
  background: rgba(255,220,60,0.9);
}

.author-label {
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ink-4);
  margin-bottom: 4px;
}
.author-name { font-size: 18px; font-weight: 700; color: var(--ink); margin-bottom: 10px; }
.author-name a { color: var(--ink); text-decoration: none; }
.author-name a:hover { color: var(--blue); }
.author-bio { font-size: 14px; color: var(--ink-3); line-height: 1.7; margin-bottom: 12px; }
.author-meta { display: flex; flex-wrap: wrap; gap: 16px; font-family: var(--mono); font-size: 12px; color: var(--ink-4); }


/* ── 20. PAGE FOOTER DISCLAIMER ───────────────────────────── */
.page-footer { border-top: 1px solid var(--border); padding-top: 24px; margin-bottom: 56px; }
.page-footer p { font-size: 13px; color: var(--ink-4); line-height: 1.7; margin-bottom: 8px; }
.page-footer a { color: var(--ink-4); text-decoration: underline; }


/* ── 21. RESPONSIVE ───────────────────────────────────────── */
@media (max-width: 1024px) {
  .ftr-main { grid-template-columns: 1fr 1fr; gap: 32px; }
  .ftr-brand { grid-column: 1 / -1; padding-right: 0; }
  .ftr-brand-desc { max-width: 520px; }
}

@media (max-width: 720px) {
  /* Hero */
  .hero { padding: 40px 20px 36px; }
  .hero-stats { display: grid; grid-template-columns: 1fr 1fr; border-radius: var(--r-lg); }
  .hero-stat { border-right: none; border-bottom: 1px solid var(--border); }
  .hero-stat:nth-child(odd)  { border-right: 1px solid var(--border); }
  .hero-stat:last-child,
  .hero-stat:nth-last-child(2):nth-child(odd) { border-bottom: none; }

  /* Content */
  .content-wrap { padding: 24px 16px 0; }
  .content-wrap h2 { font-size: 23px; margin-top: 44px; }
  .breadcrumb { padding: 12px 16px 0; }

  /* Components */
  .pros-cons    { grid-template-columns: 1fr; }
  .method-grid  { grid-template-columns: 1fr; }
  .pick-card    { grid-template-columns: 1fr; padding: 22px; }
  .pick-card .score-ring   { display: none; }
  .review-header { grid-template-columns: 1fr; padding: 22px 22px 0; }
  .review-header .score-ring { display: none; }
  .review-body  { padding: 0 22px 20px; }
  .apply-row    { padding: 16px 22px; flex-direction: column; align-items: flex-start; }
  .score-bar-row { grid-template-columns: 108px 1fr 34px; }
  .author-box   { flex-direction: column; padding: 22px; }
  .author-meta  { flex-direction: column; gap: 4px; }
}

@media (max-width: 640px) {
  .ftr-top-inner { flex-direction: column; align-items: flex-start; }
  .ftr-main { grid-template-columns: 1fr 1fr; gap: 24px 20px; padding: 36px 20px 32px; }
  .ftr-bottom-inner { flex-direction: column; gap: 12px; }
  .ftr-bottom-links { gap: 12px; }
  .ftr-top { padding: 24px 20px; }
  .ftr-disclaimer { padding: 16px 20px; }
}

@media (max-width: 420px) {
  .ftr-main { grid-template-columns: 1fr; }
  .ftr-brand { grid-column: auto; }
}
