/* =========================================================
   DegenStake — global stylesheet
   Dark, data-dense ratings UI. Mobile-first, no frameworks.
========================================================= */

/* Mona Sans — self-hosted (OFL-1.1, via @fontsource/mona-sans), latin subset only */
@font-face{ font-family:'Mona Sans'; font-style:normal; font-weight:400; font-display:swap; src:url('/fonts/mona-sans-latin-400-normal.woff2') format('woff2'); }
@font-face{ font-family:'Mona Sans'; font-style:normal; font-weight:600; font-display:swap; src:url('/fonts/mona-sans-latin-600-normal.woff2') format('woff2'); }
@font-face{ font-family:'Mona Sans'; font-style:normal; font-weight:700; font-display:swap; src:url('/fonts/mona-sans-latin-700-normal.woff2') format('woff2'); }
@font-face{ font-family:'Mona Sans'; font-style:normal; font-weight:800; font-display:swap; src:url('/fonts/mona-sans-latin-800-normal.woff2') format('woff2'); }

:root{
  /* neutral near-black base — gold reads far richer against neutral than brown */
  --bg:            #0a0a0c;
  --bg-alt:        #0d0d10;
  --surface:       #131317;
  --surface-2:     #1a1a1f;
  --surface-3:     #22222a;
  --border:        #26262e;
  --border-2:      #33333d;
  --header-bg:     #0d0d11;

  --text:          #f4f4f6;
  --text-dim:      #a4a4b1;
  --text-faint:    #8a8a99;

  --accent:        #e8b93c;   /* gold */
  --accent-bright: #f7d971;
  --accent-dim:    #8a6c1c;
  --accent-soft:   rgba(232,185,60,.12);
  --accent-2:      #35c88a;   /* green — trust / positive only */
  --accent-2-soft: rgba(53,200,138,.13);
  --danger:        #ff5a72;
  --danger-soft:   rgba(255,90,114,.12);

  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 18px;
  --maxw: 1200px;
  --shadow-sm: 0 1px 2px rgba(0,0,0,.4);
  --shadow: 0 10px 30px rgba(0,0,0,.45);
  --font: 'Mona Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  --mono: ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace;
}

*,*::before,*::after{ box-sizing: border-box; }
/* the sticky header is ~98px — keep anchor targets clear of it */
[id]{ scroll-margin-top: 110px; }
/* components below set an explicit display, which would otherwise beat [hidden] */
[hidden]{ display: none !important; }
html{ scroll-behavior: smooth; }
body{
  margin:0;
  background: var(--bg);
  color: var(--text);
  font-family: var(--font);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
img{ max-width:100%; display:block; }
a{ color: var(--accent); text-decoration: none; }
a:hover{ text-decoration: underline; }
h1,h2,h3,h4{ line-height:1.18; margin:0 0 .5em; font-weight:700; letter-spacing:-.021em; }
p{ margin:0 0 1em; color: var(--text-dim); }
ul,ol{ color: var(--text-dim); }
hr{ border:none; border-top:1px solid var(--border); margin:32px 0; }

.container{ max-width: var(--maxw); margin:0 auto; padding:0 20px; }
.container-narrow{ max-width: 860px; margin:0 auto; padding:0 20px; }
section{ padding: 56px 0; }
section.tight{ padding: 34px 0; }

.eyebrow{
  display:inline-block; font-size:.72rem; font-weight:800; letter-spacing:.13em;
  text-transform:uppercase; color: var(--accent); margin-bottom: 10px;
}
.section-head{ max-width: 700px; margin: 0 auto 32px; text-align:center; }
.section-head p{ margin:0; }
.section-head h2{ font-size: clamp(1.5rem, 3vw, 2rem); }

/* section header with an action on the right */
.head-row{
  display:flex; align-items:flex-end; justify-content:space-between; gap:20px;
  margin-bottom: 22px; flex-wrap:wrap;
}
.head-row h2{ margin:0; font-size: clamp(1.35rem, 2.6vw, 1.8rem); }
.head-row p{ margin:6px 0 0; font-size:.92rem; max-width:620px; }
.head-row .link-more{ font-size:.88rem; font-weight:700; white-space:nowrap; }

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding: 11px 20px; border-radius: var(--radius-sm); font-weight:700; font-size:.92rem;
  border: 1px solid transparent; cursor:pointer; text-decoration:none; white-space:nowrap;
  transition: background .15s ease, border-color .15s ease, color .15s ease;
  font-family: var(--font);
}
.btn:hover{ text-decoration:none; }
.btn-primary{ background: var(--accent); color:#17130a; }
.btn-primary:hover{ background: var(--accent-bright); }
.btn-outline{ background: transparent; border-color: var(--border-2); color: var(--text); }
.btn-outline:hover{ border-color: var(--accent); color: var(--accent); }
.btn-ghost{ background: var(--surface-2); border-color: var(--border); color: var(--text); }
.btn-ghost:hover{ background: var(--surface-3); border-color: var(--border-2); }
.btn-sm{ padding: 7px 14px; font-size:.83rem; }
.btn-lg{ padding: 14px 26px; font-size:1rem; }
.btn-block{ width:100%; }

/* ---------- top disclaimer bar ---------- */
.disclaimer-bar{
  background: var(--bg-alt); border-bottom:1px solid var(--border);
  color: var(--text-faint); font-size:.75rem; text-align:center; padding: 7px 16px;
}
.disclaimer-bar a{ color: var(--text-dim); text-decoration: underline; }

/* ---------- header ---------- */
.site-header{
  position: sticky; top:0; z-index: 50;
  background: rgba(13,13,17,.92);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--border);
}
.nav{ display:flex; align-items:center; justify-content:space-between; padding: 13px 0; gap: 20px; }
.brand{ display:flex; align-items:center; gap:9px; font-weight:800; font-size:1.12rem; color:var(--text); letter-spacing:-.022em; }
.brand:hover{ text-decoration:none; }
.brand .logo{ width:30px; height:30px; flex:none; }
.brand .brand-text{ white-space:nowrap; }
.brand .brand-accent{ color: var(--accent); }
.nav-links{ display:flex; align-items:center; gap: 22px; list-style:none; margin:0; padding:0; }
.nav-links a{ color: var(--text-dim); font-weight:600; font-size:.9rem; }
.nav-links a:hover{ color: var(--text); text-decoration:none; }
.nav-links a.is-active{ color: var(--accent); }
.nav-cta{ display:flex; align-items:center; gap:12px; }
.nav-toggle{ display:none; background:none; border:1px solid var(--border-2); border-radius:var(--radius-sm); padding:7px 10px; color:var(--text); cursor:pointer; font-size:1rem; }

@media (max-width: 900px){
  .nav-links{
    position:absolute; top:100%; left:0; right:0; flex-direction:column; align-items:flex-start;
    background: var(--surface); border-bottom: 1px solid var(--border-2); box-shadow: var(--shadow); padding: 14px 20px; gap:14px;
  }
  /* collapse only when JS is there to reopen it */
  .js .nav-links{ display:none; }
  .js .nav-links.open{ display:flex; }
  .nav-links a{ padding: 6px 0; }
  .js .nav-toggle{ display:inline-flex; }
}
/* below tablet the header CTA crowds the burger — the ranking is on the page anyway */
@media (max-width: 680px){
  .nav-cta .btn{ display:none; }
  .rank-item .btn-sm{ padding: 11px 14px; }
}

/* ---------- compact hero ---------- */
.hero{
  padding: 30px 0 24px;
  border-bottom: 1px solid var(--border);
  background:
    radial-gradient(760px 300px at 50% -50%, rgba(232,185,60,.10), transparent 70%),
    var(--bg-alt);
}
.hero-inner{ max-width: 730px; }
.hero h1{ font-size: clamp(1.7rem, 3.3vw, 2.35rem); margin-bottom:.35em; }
.hero h1 .hl{ color: var(--accent); }
.hero .lead{ font-size:.98rem; color: var(--text-dim); margin:0 0 18px; max-width: 620px; }
.hero-actions{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom: 22px; }

/* proof strip under the hero */
.proof-row{ display:flex; gap: 34px; flex-wrap:wrap; }
.proof-item .n{ font-size:1.35rem; font-weight:800; color: var(--text); line-height:1.1; letter-spacing:-.02em; }
.proof-item .n .accent{ color: var(--accent); }
.proof-item .l{ font-size:.76rem; color: var(--text-faint); text-transform:uppercase; letter-spacing:.07em; font-weight:600; margin-top:2px; }
@media (max-width:560px){ .proof-row{ gap:22px; } .proof-item .n{ font-size:1.15rem; } }

/* ---------- ranking tabs ---------- */
.rank-tabs{
  display:flex; gap:6px; overflow-x:auto; padding-bottom:2px; margin-bottom: 18px;
  scrollbar-width:none;
}
.rank-tabs::-webkit-scrollbar{ display:none; }
@media (max-width: 560px){
  .rank-tabs{ -webkit-mask-image: linear-gradient(90deg, #000 86%, transparent);
              mask-image: linear-gradient(90deg, #000 86%, transparent); }
}
.rank-tab{
  flex:none; padding: 8px 15px; border-radius: 999px; font-size:.85rem; font-weight:700;
  background: var(--surface); border:1px solid var(--border); color: var(--text-dim);
  cursor:pointer; white-space:nowrap; font-family: var(--font);
  transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.rank-tab:hover{ color: var(--text); border-color: var(--border-2); }
.rank-tab[aria-pressed="true"]{ background: var(--accent); border-color: var(--accent); color:#17130a; }

/* ---------- ranking rows ---------- */
.rank-list{ display:flex; flex-direction:column; gap:8px; }
.rank-item{
  display:grid;
  grid-template-columns: 30px 190px minmax(0,1fr) 84px 130px;
  gap:15px; align-items:center;
  background: var(--surface); border:1px solid var(--border); border-radius: var(--radius-md);
  padding: 14px 16px;
  transition: border-color .15s ease, background .15s ease;
}
.rank-item:hover{ border-color: var(--border-2); background: var(--surface-2); }
.rank-item.featured{
  border-color: rgba(232,185,60,.5);
  background: linear-gradient(90deg, rgba(232,185,60,.07), transparent 45%), var(--surface);
}
.rank-num{
  font-size:1rem; font-weight:800; color: var(--text-faint);
  width:28px; height:28px; border-radius:8px; background: var(--surface-2);
  display:flex; align-items:center; justify-content:center; border:1px solid var(--border);
}
.rank-item.featured .rank-num{ background: var(--accent); color:#17130a; border-color: var(--accent); }

.rank-brand{ min-width:0; }
.rank-name{ font-weight:700; font-size:1rem; margin-bottom:5px; color: var(--text); letter-spacing:-.015em; }
.rank-name a{ color:inherit; }
.rank-name a:hover{ color: var(--accent); text-decoration:none; }
.rank-tags{ display:flex; gap:5px; flex-wrap:wrap; }

.rank-why{ min-width:0; font-size:.88rem; color: var(--text-dim); }
.rank-why strong{ color: var(--text); font-weight:600; }

/* numeric score — replaces star ratings everywhere */
.score{ text-align:center; }
.score .val{
  font-size:1.5rem; font-weight:800; letter-spacing:-.03em; line-height:1;
  color: var(--accent); font-variant-numeric: tabular-nums;
}
.score .val small{ font-size:.62em; font-weight:700; color: var(--text-faint); letter-spacing:0; }
.score .bar{ height:3px; border-radius:2px; background: var(--surface-3); margin-top:7px; overflow:hidden; }
.score .bar i{ display:block; height:100%; background: var(--accent); border-radius:2px; }
.score .lbl{ font-size:.66rem; text-transform:uppercase; letter-spacing:.08em; color: var(--text-faint); font-weight:700; margin-top:6px; }

@media (max-width: 940px){
  .rank-item{ grid-template-columns: 30px 1fr 84px; grid-template-areas: "n b s" "w w w" "c c c"; gap:12px 14px; }
  .rank-num{ grid-area:n; } .rank-brand{ grid-area:b; } .score{ grid-area:s; }
  .rank-why{ grid-area:w; padding-top:2px; }
  .rank-item > .btn, .rank-actions{ grid-area:c; width:100%; }
  .rank-actions{ flex-direction:row; }
  .rank-actions .btn{ flex:1; }
  .score .lbl{ display:none; }
}

/* ---------- tags / pills ---------- */
.tag{
  font-size:.66rem; font-weight:700; text-transform:uppercase; letter-spacing:.05em;
  padding:3px 7px; border-radius:5px; background: var(--surface-2); color: var(--text-dim);
  border:1px solid var(--border); display:inline-block; white-space:nowrap;
}
.tag.gold{ color: var(--accent); background: var(--accent-soft); border-color: rgba(232,185,60,.3); }
.tag.green{ color: var(--accent-2); background: var(--accent-2-soft); border-color: rgba(53,200,138,.3); }
.tag.solid{ color:#17130a; background: var(--accent); border-color: var(--accent); }

/* ---------- award / "best for" strip ---------- */
.award-grid{ display:grid; grid-template-columns: repeat(4, 1fr); gap:12px; }
@media (max-width: 900px){ .award-grid{ grid-template-columns: repeat(2,1fr); } }
@media (max-width: 520px){ .award-grid{ grid-template-columns: 1fr; } }
.award{
  background: var(--surface); border:1px solid var(--border); border-radius: var(--radius-md);
  padding: 16px 17px; transition: border-color .15s ease;
}
.award:hover{ border-color: rgba(232,185,60,.45); }
.award .cat{ font-size:.7rem; text-transform:uppercase; letter-spacing:.09em; font-weight:800; color: var(--accent); margin-bottom:9px; display:flex; align-items:center; gap:6px; }
.award .who{ font-size:1.08rem; font-weight:700; color: var(--text); margin-bottom:5px; letter-spacing:-.015em; }
.award .who a{ color:inherit; }
.award .who a:hover{ color: var(--accent); text-decoration:none; }
.award p{ margin:0; font-size:.84rem; color: var(--text-faint); line-height:1.5; }

/* ---------- cards / grid ---------- */
.grid{ display:grid; gap: 16px; }
.grid-4{ grid-template-columns: repeat(4, 1fr); }
.grid-3{ grid-template-columns: repeat(3, 1fr); }
.grid-2{ grid-template-columns: repeat(2, 1fr); }
@media (max-width: 940px){ .grid-4{ grid-template-columns: repeat(2,1fr); } .grid-3{ grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px){ .grid-4, .grid-3, .grid-2{ grid-template-columns: 1fr; } }

.card{
  background: var(--surface); border:1px solid var(--border); border-radius: var(--radius-md);
  padding: 20px; transition: border-color .15s ease;
}
.card:hover{ border-color: var(--border-2); }
.card h3{ font-size:1.02rem; margin-bottom:.45em; }
.card h3 a{ color:inherit; }
.card h3 a:hover{ color: var(--accent); text-decoration:none; }
.card p{ margin:0; font-size:.89rem; line-height:1.55; }

/* SVG icon tile — replaces the old emoji icons */
.icon-tile{
  width:34px; height:34px; border-radius:9px; display:inline-flex; align-items:center; justify-content:center;
  background: var(--accent-soft); color: var(--accent); margin-bottom:13px; border:1px solid rgba(232,185,60,.22);
}
.icon-tile svg{ width:17px; height:17px; stroke:currentColor; fill:none; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; }

/* ---------- methodology block ---------- */
.method{
  background: var(--surface); border:1px solid var(--border); border-radius: var(--radius-lg);
  padding: 30px;
}
.method-grid{ display:grid; grid-template-columns: repeat(4,1fr); gap:14px; margin-top:22px; }
@media (max-width: 900px){ .method-grid{ grid-template-columns: repeat(2,1fr); } }
@media (max-width: 520px){ .method-grid{ grid-template-columns: 1fr; } }
.crit{ background: var(--bg-alt); border:1px solid var(--border); border-radius: var(--radius-md); padding:16px; }
.crit .w{ font-size:1.4rem; font-weight:800; color: var(--accent); letter-spacing:-.03em; line-height:1; }
.crit .t{ font-weight:700; font-size:.93rem; margin:8px 0 5px; color: var(--text); }
.crit p{ margin:0; font-size:.82rem; line-height:1.5; color: var(--text-faint); }

/* ---------- comparison table ---------- */
.table-wrap{ overflow-x:auto; border:1px solid var(--border); border-radius: var(--radius-md); background: var(--surface); }
table.compare{ width:100%; border-collapse: collapse; min-width: 680px; }
table.compare th, table.compare td{ padding: 13px 16px; text-align:left; border-bottom: 1px solid var(--border); font-size:.88rem; }
table.compare th{ background: var(--surface-2); color: var(--text-faint); text-transform:uppercase; font-size:.7rem; letter-spacing:.08em; font-weight:700; }
table.compare tr:last-child td{ border-bottom:none; }
table.compare tbody tr:hover{ background: var(--surface-2); }
table.compare td{ color: var(--text-dim); }
table.compare td.name{ color: var(--text); font-weight:700; }
table.compare td.name a{ color:inherit; }
table.compare td.name a:hover{ color: var(--accent); }

/* ---------- CTA banner ---------- */
.cta-banner{
  background: linear-gradient(135deg, rgba(232,185,60,.10), rgba(53,200,138,.06));
  border: 1px solid var(--border-2); border-radius: var(--radius-lg); padding: 40px; text-align:center;
}
.cta-banner h2{ margin-bottom:.3em; }
.cta-banner p{ max-width:540px; margin:0 auto 22px; }

/* ---------- article / content pages ---------- */
.content-hero{
  padding: 40px 0 26px; border-bottom: 1px solid var(--border);
  background: linear-gradient(180deg, var(--bg-alt), var(--bg));
}
.breadcrumbs{ font-size:.78rem; color: var(--text-faint); margin-bottom: 14px; }
.breadcrumbs a{ color: var(--text-faint); }
.breadcrumbs a:hover{ color: var(--accent); }
.content-hero h1{ font-size: clamp(1.7rem, 3.6vw, 2.4rem); max-width: 860px; }
.meta-row{ display:flex; gap:14px; flex-wrap:wrap; color: var(--text-faint); font-size:.8rem; margin-top: 12px; }
/* affiliate disclosure, sitting with the link it discloses */
.aff-note{ margin: 14px 0 0; font-size:.79rem; color: var(--text-faint); max-width: 720px; }
.meta-row span{ display:inline-flex; align-items:center; gap:6px; }
.prose{ max-width: 760px; margin: 0 auto; padding: 44px 20px; }
.prose h2{ font-size:1.42rem; margin-top:1.7em; }
.prose h3{ font-size:1.1rem; margin-top:1.4em; }
.prose ul, .prose ol{ padding-left: 22px; }
.prose li{ margin-bottom:.4em; }
.callout{
  background: var(--surface); border:1px solid var(--border); border-left:3px solid var(--accent);
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0; padding: 15px 18px; margin: 24px 0; font-size:.9rem;
}
.callout.warn{ border-left-color: var(--danger); }
.callout p{ margin:0; }

/* ---------- review page ---------- */
.review-head{
  display:grid; grid-template-columns: 88px 1fr auto; gap: 22px; align-items:center;
  background: var(--surface); border:1px solid var(--border); border-radius: var(--radius-lg); padding: 22px;
}
.review-logo{
  width:88px; height:88px; border-radius: var(--radius-md); background:#fff;
  display:flex; align-items:center; justify-content:center; font-weight:800; font-size:1.3rem; color:#17130a;
  overflow:hidden; min-width:0; min-height:0; padding:10px;
}
.review-logo img{ display:block; width:auto; height:auto; max-width:100%; max-height:100%; object-fit:contain; min-width:0; min-height:0; }
/* platforms we don't have a logo file for yet — name carries the header on its own */
.review-head.no-logo{ grid-template-columns: 1fr auto; }
@media (max-width: 700px){
  .review-head, .review-head.no-logo{ grid-template-columns: 1fr; text-align:left; }
  .review-head .review-logo{ margin:0; }
}

.pros-cons{ display:grid; grid-template-columns: 1fr 1fr; gap:14px; margin: 24px 0; }
@media (max-width:640px){ .pros-cons{ grid-template-columns: 1fr; } }
.pros-cons .box{ background: var(--surface); border:1px solid var(--border); border-radius: var(--radius-md); padding:18px; }
.pros-cons h3{ margin:0 0 10px; font-size:.78rem; text-transform:uppercase; letter-spacing:.08em; }
.pros-cons .pros h3{ color: var(--accent-2); }
.pros-cons .cons h3{ color: var(--danger); }
.pros-cons ul{ margin:0; padding-left:18px; font-size:.89rem; }

/* logo badge (white tile for third-party logos drawn for light backgrounds) */
.logo-badge{
  display:inline-flex; align-items:center; justify-content:center; flex:none;
  background:#fff; border-radius: var(--radius-sm); padding:6px; width:38px; height:38px;
  overflow:hidden; min-width:0; min-height:0;
}
.logo-badge img{ display:block; width:auto; height:auto; max-width:100%; max-height:100%; object-fit:contain; min-width:0; min-height:0; }

/* wordmark fallback tile when we have no logo file for a platform */
.logo-word{
  display:inline-flex; align-items:center; justify-content:center; flex:none;
  width:38px; height:38px; border-radius: var(--radius-sm);
  background: var(--surface-2); border:1px solid var(--border-2);
  font-weight:800; font-size:.82rem; color: var(--accent); letter-spacing:-.02em;
}
.rank-brand-row{ display:flex; align-items:center; gap:10px; min-width:0; }

/* ---------- FAQ ---------- */
.faq-item{ border-bottom:1px solid var(--border); padding: 16px 0; }
.faq-item summary{ cursor:pointer; font-weight:700; list-style:none; display:flex; justify-content:space-between; align-items:center; gap:16px; font-size:.98rem; }
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary::after{ content:'+'; font-size:1.25rem; color: var(--text-faint); flex:none; }
.faq-item[open] summary::after{ content:'\2212'; color: var(--accent); }
.faq-item p{ margin-top:11px; font-size:.92rem; }

/* ---------- form ---------- */
.form-field{ margin-bottom: 16px; text-align:left; }
.form-field label{ display:block; font-size:.83rem; font-weight:700; margin-bottom:6px; color: var(--text-dim); }
.form-field input, .form-field textarea, .form-field select{
  width:100%; padding: 11px 13px; border-radius: var(--radius-sm); border:1px solid var(--border);
  background: var(--surface-2); color: var(--text); font-family: var(--font); font-size:.93rem;
}
.form-field textarea{ min-height: 140px; resize:vertical; }
.form-field input:focus, .form-field textarea:focus, .form-field select:focus{ outline: 2px solid var(--accent); outline-offset:1px; }

/* ---------- footer ---------- */
.site-footer{ border-top:1px solid var(--border); padding: 48px 0 24px; margin-top: 32px; background: var(--bg-alt); }
.footer-grid{ display:grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 30px; margin-bottom: 34px; }
@media (max-width: 760px){ .footer-grid{ grid-template-columns: 1fr 1fr; } }
@media (max-width: 480px){ .footer-grid{ grid-template-columns: 1fr; } }
.footer-grid .footer-head{ font-size:.76rem; margin:0 0 13px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color: var(--text-faint); margin-bottom:13px; }
.footer-grid ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:9px; }
.footer-grid a{ color: var(--text-dim); font-size:.88rem; }
.footer-grid a:hover{ color: var(--accent); }
.footer-brand p{ font-size:.86rem; max-width: 330px; }
.footer-legal{ border-top:1px solid var(--border); padding-top: 20px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; color: var(--text-faint); font-size:.76rem; }
.footer-age{ display:inline-flex; align-items:center; justify-content:center; width:24px; height:24px; border:1px solid var(--text-faint); border-radius:5px; font-size:.66rem; font-weight:800; margin-right:6px; }

/* ---------- utils ---------- */
.text-center{ text-align:center; }
.mt-0{ margin-top:0; }

/* inline score chip — used on review headers, cards and comparison tables */
.score-chip{
  display:inline-flex; align-items:baseline; gap:1px;
  background: var(--accent-soft); border:1px solid rgba(232,185,60,.32);
  border-radius:7px; padding:3px 9px; color: var(--accent);
  font-variant-numeric: tabular-nums; line-height:1.25;
}
.score-chip b{ font-size:1.05rem; font-weight:800; letter-spacing:-.02em; }
.score-chip small{ font-size:.72rem; font-weight:700; opacity:.8; }
.score-chip.lg b{ font-size:1.6rem; }
.score-chip.lg small{ font-size:.85rem; }
.score-chip.lg{ padding:5px 13px; }
td .score-chip{ padding:2px 7px; }
td .score-chip b{ font-size:.94rem; }
.stat-label{ font-size:.7rem; text-transform:uppercase; letter-spacing:.07em; color: var(--text-faint); margin-bottom:2px; font-weight:600; }
.stat-value{ font-weight:700; color: var(--text); font-size:.92rem; }
.badge-hot{ background: var(--danger); color:#17130a; font-size:.63rem; font-weight:800; text-transform:uppercase; padding:3px 7px; border-radius:5px; margin-left:8px; vertical-align:middle; letter-spacing:.04em; }
.skip-link{ position:absolute; left:-999px; top:0; background:var(--accent); color:#17130a; padding:10px 16px; border-radius:0 0 8px 0; z-index:100; font-weight:700; }
.skip-link:focus{ left:0; }
/* visually hidden but announced — used for the new-tab cue on outbound links */
.sr-only{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden;
          clip:rect(0,0,0,0); white-space:nowrap; border:0; }

@media (prefers-reduced-motion: reduce){
  *{ animation-duration:.01ms !important; transition-duration:.01ms !important; }
  html{ scroll-behavior:auto; }
}

/* ---------- review page: score breakdown ---------- */
.score-breakdown{
  border:1px solid var(--border); border-radius: var(--radius-md); overflow:hidden;
  background: var(--surface); margin: 18px 0 8px;
}
.sb-row{
  display:grid; grid-template-columns: 190px 1fr 46px; gap:14px; align-items:center;
  padding: 11px 16px; border-top:1px solid var(--border);
}
.sb-row:first-child{ border-top:none; }
.sb-k{ font-size:.86rem; color: var(--text-dim); font-weight:600; }
.sb-k i{ font-style:normal; color: var(--text-faint); font-weight:700; font-size:.76rem; margin-left:4px; }
.sb-bar{ height:5px; border-radius:3px; background: var(--surface-3); overflow:hidden; }
.sb-bar i{ display:block; height:100%; background: var(--accent); border-radius:3px; }
.sb-v{
  text-align:right; font-weight:800; color: var(--accent); font-size:1rem;
  font-variant-numeric: tabular-nums; letter-spacing:-.02em;
}
.sb-total{ background: var(--surface-2); }
.sb-total .sb-k{ color: var(--text); font-weight:700; }
.sb-total .sb-v{ font-size:1.3rem; }
@media (max-width:620px){
  .sb-row{ grid-template-columns: 1fr 46px; grid-template-areas:"k v" "b b"; gap:6px 12px; }
  .sb-k{ grid-area:k; } .sb-v{ grid-area:v; } .sb-bar{ grid-area:b; }
}

/* ---------- review page: key facts ---------- */
.facts-wrap{ margin: 16px 0 10px; }
table.compare.facts{ min-width:0; }
table.compare.facts th[scope="row"]{
  width: 208px; background: var(--surface-2); color: var(--text-faint);
  text-transform:none; font-size:.82rem; letter-spacing:0; font-weight:600; vertical-align:top;
}
table.compare.facts td{ color: var(--text); }
.facts-note{ font-size:.82rem; color: var(--text-faint); margin: 0 0 8px; }
@media (max-width:560px){ table.compare.facts th[scope="row"]{ width:130px; } }

/* ---------- review page: alternatives + closing CTA ---------- */
.alt-grid{ margin: 16px 0 8px; }
.alt-top{ display:flex; align-items:center; gap:8px; margin-bottom:10px; flex-wrap:wrap; }
.end-cta{
  display:grid; grid-template-columns: auto 1fr auto; gap: 20px; align-items:center;
  background: linear-gradient(135deg, rgba(232,185,60,.10), rgba(53,200,138,.05));
  border:1px solid var(--border-2); border-radius: var(--radius-lg);
  padding: 22px 24px; margin: 30px 0 10px;
}
.end-cta-body h2{ font-size:1.15rem; }
.end-cta-body p{ margin:0; font-size:.93rem; }
@media (max-width:760px){
  .end-cta{ grid-template-columns: 1fr; gap:14px; text-align:left; }
  .end-cta .btn{ width:100%; }
}

/* ---------- sticky mobile CTA on review pages ---------- */
.sticky-cta{ display:none; }
@media (max-width: 760px){
  body.has-sticky-cta{ padding-bottom: 74px; }
  .sticky-cta{
    display:flex; position:fixed; left:0; right:0; bottom:0; z-index:60;
    align-items:center; gap:12px; padding: 10px 14px;
    background: rgba(13,13,17,.96); backdrop-filter: blur(12px);
    border-top:1px solid var(--border-2);
  }
  .sticky-cta .sc-name{ font-weight:700; font-size:.92rem; line-height:1.2; min-width:0; }
  .sticky-cta .sc-name span{ display:block; font-size:.74rem; color:var(--text-faint); font-weight:600; }
  .sticky-cta .btn{ margin-left:auto; flex:none; }
}

/* ---------- ranking row: dual action (review + outbound) ---------- */
.rank-actions{ display:flex; flex-direction:column; gap:6px; }
.rank-actions .btn{ width:100%; }

/* ---------- reviews directory cards ---------- */
.rev-card .rev-top{ display:flex; align-items:flex-start; gap:11px; margin-bottom:12px; }
.rev-card .rev-top h3{ font-size:1.02rem; margin:0 0 6px; }
.rev-card .rev-top .score-chip{ margin-left:auto; flex:none; }
.rev-card p{ font-size:.88rem; }
.rev-meta{ margin:10px 0 0 !important; font-size:.78rem !important; color:var(--text-faint); }

/* ---------- author card ---------- */
.author-card{
  display:flex; gap:18px; align-items:flex-start;
  background: var(--surface); border:1px solid var(--border); border-radius: var(--radius-lg);
  padding: 20px 22px; margin: 0 0 28px;
}
.author-photo{ width:88px; height:88px; border-radius:50%; flex:none; }
.author-role{
  font-size:.78rem; text-transform:uppercase; letter-spacing:.08em; font-weight:700;
  color: var(--accent); margin:0 0 9px;
}
.author-card p{ font-size:.92rem; }
@media (max-width:560px){ .author-card{ flex-direction:column; gap:14px; } }

/* ---------- cookie consent bar ---------- */
.cookie-bar{
  position:fixed; left:14px; right:14px; bottom:14px; z-index:70;
  display:flex; align-items:center; gap:16px; flex-wrap:wrap;
  max-width: 720px; margin:0 auto;
  background: var(--surface); border:1px solid var(--border-2);
  border-radius: var(--radius-md); box-shadow: var(--shadow); padding: 14px 16px;
}
.cookie-bar p{ margin:0; font-size:.84rem; flex:1 1 320px; color: var(--text-dim); }
.cookie-actions{ display:flex; gap:8px; margin-left:auto; }
body.has-sticky-cta .cookie-bar{ bottom: 82px; }
@media (max-width:520px){
  .cookie-actions{ width:100%; }
  .cookie-actions .btn{ flex:1; }
}
