/* civiccommons.org — US iGaming affiliate design system */
:root{
  --navy:#0f172a; --navy-2:#1e293b; --navy-3:#334155;
  --gold:#d4af37; --gold-2:#b8942e; --green:#16a34a; --red:#dc2626;
  --bg:#f8fafc; --card:#ffffff; --border:#e2e8f0; --text:#1e293b; --muted:#64748b;
  --shadow:0 1px 3px rgba(15,23,42,.08),0 1px 2px rgba(15,23,42,.04);
  --shadow-lg:0 10px 25px rgba(15,23,42,.10);
  --radius:12px; --max:1180px;
  --font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--font);color:var(--text);background:var(--bg);line-height:1.65;font-size:17px}
img{max-width:100%;height:auto}
a{color:var(--gold-2);text-decoration:none}
a:hover{text-decoration:underline}
.container{max-width:var(--max);margin:0 auto;padding:0 20px}

/* ---- Header / nav ---- */
.site-header{background:var(--navy);position:sticky;top:0;z-index:50;box-shadow:var(--shadow)}
.nav{display:flex;align-items:center;justify-content:space-between;height:64px}
.brand{display:flex;align-items:center;gap:10px;color:#fff;font-weight:800;font-size:1.15rem;letter-spacing:-.02em}
.brand:hover{text-decoration:none}
.brand .mark{width:34px;height:34px;border-radius:8px;background:var(--navy-2);display:grid;place-items:center;border:2px solid var(--gold);color:#fff;font-size:.8rem;font-weight:800}
.nav-desktop{display:flex;gap:6px;align-items:center}
.nav-desktop a{color:#cbd5e1;padding:8px 12px;border-radius:8px;font-weight:600;font-size:.95rem}
.nav-desktop a:hover{background:var(--navy-2);color:#fff;text-decoration:none}
.nav-toggle{display:none;background:none;border:0;color:#fff;font-size:1.5rem;cursor:pointer}
@media(max-width:860px){
  .nav-desktop{display:none;position:absolute;top:64px;left:0;right:0;background:var(--navy);flex-direction:column;padding:12px;gap:2px}
  .nav-desktop.open{display:flex}
  .nav-toggle{display:block}
}

/* ---- Disclosure / RG bars ---- */
.disclosure{background:#fef9e7;border-bottom:1px solid #f0e0a8;font-size:.82rem;color:#7a5c00;padding:8px 0;text-align:center}
.age-badge{display:inline-block;background:var(--red);color:#fff;font-weight:800;border-radius:5px;padding:1px 7px;font-size:.78rem;margin-right:6px}

/* ---- Hero ---- */
.hero{background:linear-gradient(160deg,var(--navy) 0%,var(--navy-2) 100%);color:#fff;padding:56px 0}
.hero h1{font-size:2.35rem;line-height:1.15;margin:0 0 14px;letter-spacing:-.02em}
.hero p{font-size:1.12rem;color:#cbd5e1;max-width:720px;margin:0 0 22px}
.hero .updated{font-size:.85rem;color:#94a3b8}
@media(max-width:640px){.hero h1{font-size:1.8rem}}

/* ---- Typography ---- */
main h2{font-size:1.7rem;margin:2.4em 0 .6em;letter-spacing:-.01em;line-height:1.25}
main h3{font-size:1.28rem;margin:1.6em 0 .5em}
main h4{font-size:1.08rem;margin:1.3em 0 .4em}
main{padding:8px 0 40px}
.lead{font-size:1.1rem;color:var(--navy-3)}
.byline{font-size:.9rem;color:var(--muted);border-bottom:1px solid var(--border);padding-bottom:14px;margin-bottom:8px}
.byline a{font-weight:600}

/* ---- Operator comparison table / cards ---- */
.op-table{width:100%;border-collapse:collapse;background:var(--card);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);margin:1.4em 0;font-size:.95rem}
.op-table th{background:var(--navy);color:#fff;text-align:left;padding:12px 14px;font-size:.82rem;text-transform:uppercase;letter-spacing:.04em}
.op-table td{padding:14px;border-top:1px solid var(--border);vertical-align:middle}
.op-table tr:nth-child(even) td{background:#fbfcfe}
.op-logo{width:170px;height:92px;max-width:none;object-fit:contain;background:#fff;border:1px solid var(--border);border-radius:10px;padding:12px}
/* beat .home img{max-width:100%} which otherwise shrinks table logos to the cell width */
.op-table .op-logo,.op-card .op-logo{max-width:none;width:170px;height:92px}
/* desktop: tighten cells + CTA so all columns (incl. Claim Bonus) fit the container */
@media(min-width:901px){
  .op-table th,.op-table td{padding:13px 9px}
  .op-table th:first-child,.op-table td:first-child{padding-left:12px}
  .op-table th:last-child,.op-table td:last-child{padding-right:12px}
  .op-table .btn{padding:10px 15px;font-size:.9rem;white-space:nowrap}
}
.rank-badge{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--gold);color:var(--navy);font-weight:800;font-size:.9rem}
.rating{font-weight:800;color:var(--navy)}
.stars{color:var(--gold);letter-spacing:1px}

/* ===== mobile: turn comparison tables into light cards ===== */
@media(max-width:900px){
  .tbl-scroll{padding-top:22px;overflow:visible}   /* room so the Editor's Pick tag + rank chip aren't clipped */
  .op-table{min-width:0!important;background:transparent;box-shadow:none;overflow:visible;margin:1em 0}
  .op-table thead{display:none}
  .op-table,.op-table tbody{display:block;width:100%}
  .op-table tr{
    display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;
    position:relative;background:#fff;border:1px solid #e6e8ec;border-radius:18px;
    box-shadow:0 8px 22px rgba(15,23,42,.07);padding:46px 18px 20px;margin:0 0 16px}
  .op-table tbody tr td{background:transparent!important;display:none;border:0;padding:0;width:100%}
  /* which cells show, and in what order */
  .op-table td:has(.rank-badge){display:block;order:0;position:absolute;top:0;left:0;width:auto}
  .op-table td:has(.op-logo){display:flex;justify-content:center;order:1}
  .op-table td:has(.rating){display:block;order:2}
  .op-table td:nth-child(3){display:block;order:3}
  .op-table td.op-bonus{display:block;order:4}
  .op-table td:has(.btn){display:block;order:5;width:100%}
  /* rank badge → orange corner chip */
  .op-table .rank-badge{width:36px;height:36px;border-radius:50%;background:#c1502a;color:#fff;
    font-size:1.05rem;margin:14px 0 0 14px;box-shadow:0 4px 12px rgba(193,80,42,.4)}
  /* logo tile — full card width, short */
  .op-table td:has(.op-logo){width:100%}
  .op-table .op-logo{width:100%;max-width:none;height:78px;padding:9px 14px}
  /* star rating (hide the number, show stars) */
  .op-table .rating{font-size:0}
  .op-table .rating::before{content:"★★★★☆";font-size:1.3rem;color:var(--gold);letter-spacing:4px}
  /* operator name */
  .op-table td:nth-child(3){font-size:1.35rem;font-weight:800;color:var(--navy)}
  .op-table td:nth-child(3) span{display:block;font-size:.72rem;font-weight:600;margin-top:4px}
  /* bonus */
  .op-table td.op-bonus{color:#c05a2a;font-weight:800;font-size:1.08rem;line-height:1.35}
  /* full-width claim button, label centered */
  .op-table td .btn{display:flex;justify-content:center;align-items:center;width:100%;
    background:#c1502a;color:#fff;border-radius:11px;padding:15px;font-size:1.08rem;font-weight:800;text-align:center}
  .op-table td .btn:hover{background:#a8431f;transform:none}
  /* Editor's Pick tag on the #1 card */
  .op-table tbody tr:first-child{border-color:#e7bd94}
  .op-table tbody tr:first-child::before{content:"Editor's Pick";position:absolute;top:0;left:50%;
    transform:translate(-50%,-50%);background:#c1502a;color:#fff;font-size:.72rem;font-weight:800;
    padding:5px 15px;border-radius:9px;white-space:nowrap;box-shadow:0 4px 12px rgba(193,80,42,.35)}
  /* plain informational tables: shrink + wrap so they never overflow the viewport */
  table.data{font-size:.8rem;width:100%;table-layout:fixed}
  table.data th,table.data td{padding:8px 9px;word-break:break-word;overflow-wrap:anywhere}
}

/* operator card (stacked, mobile-friendly review blocks) */
.op-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;margin:1.2em 0;display:grid;grid-template-columns:190px 1fr auto;gap:22px;align-items:center}
.op-card .op-logo{width:168px;height:92px}
.op-card .op-body h3{margin:.1em 0 .3em}
.op-card .op-bonus{font-weight:700;color:var(--navy)}
.op-card .op-meta{font-size:.85rem;color:var(--muted);margin-top:4px}
@media(max-width:720px){.op-card{grid-template-columns:1fr;text-align:center}}

/* pros/cons */
.proscons{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:1em 0}
.proscons ul{margin:0;padding-left:20px}
.pros{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:10px;padding:14px}
.cons{background:#fef2f2;border:1px solid #fecaca;border-radius:10px;padding:14px}
.pros h4{color:var(--green);margin:.1em 0 .5em}.cons h4{color:var(--red);margin:.1em 0 .5em}
@media(max-width:600px){.proscons{grid-template-columns:1fr}}
@media(max-width:720px){.op-card .op-logo{justify-self:center;margin-inline:auto}}

/* ---- CTA buttons ---- */
.btn{display:inline-block;background:var(--gold);color:var(--navy);font-weight:800;padding:11px 20px;border-radius:9px;text-align:center;border:0;cursor:pointer;transition:transform .08s,background .15s;white-space:nowrap}
.btn:hover{background:var(--gold-2);text-decoration:none;transform:translateY(-1px)}
.btn-lg{padding:14px 28px;font-size:1.05rem}
.btn-outline{background:transparent;border:2px solid var(--gold);color:var(--gold)}

/* ---- Generic content blocks ---- */
.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow);margin:1.2em 0}
.grid{display:grid;gap:18px}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-2{grid-template-columns:repeat(2,1fr)}
@media(max-width:860px){.grid-3,.grid-2{grid-template-columns:1fr}}
.callout{background:#eff6ff;border-left:4px solid #3b82f6;border-radius:0 8px 8px 0;padding:14px 18px;margin:1.2em 0}
.callout.warn{background:#fffbeb;border-color:var(--gold)}
.callout.tax{background:#f0fdf4;border-color:var(--green)}
.pill{display:inline-block;background:var(--navy-2);color:#fff;border-radius:999px;padding:3px 11px;font-size:.78rem;font-weight:600;margin:2px}
.check{color:var(--green);font-weight:800}.cross{color:var(--red);font-weight:800}

/* data table */
table.data{width:100%;border-collapse:collapse;margin:1.2em 0;font-size:.93rem;background:var(--card);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
table.data th{background:var(--navy-2);color:#fff;text-align:left;padding:11px 13px}
table.data td{padding:11px 13px;border-top:1px solid var(--border)}
table.data tr:nth-child(even) td{background:#fbfcfe}

/* FAQ */
.faq details{background:var(--card);border:1px solid var(--border);border-radius:10px;margin:.5em 0;padding:0 18px;box-shadow:var(--shadow)}
.faq summary{cursor:pointer;font-weight:700;padding:15px 0;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";float:right;color:var(--gold-2);font-weight:800}
.faq details[open] summary::after{content:"–"}
.faq details[open] summary{border-bottom:1px solid var(--border)}
.faq details p{padding:12px 0}

/* TOC */
.toc{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px 20px;margin:1.4em 0;box-shadow:var(--shadow)}
.toc strong{display:block;margin-bottom:8px;color:var(--navy)}
.toc ol{margin:0;padding-left:20px;columns:2}
@media(max-width:640px){.toc ol{columns:1}}

/* RG block */
.rg-block{background:var(--navy);color:#cbd5e1;border-radius:var(--radius);padding:22px;margin:2em 0}
.rg-block h3{color:#fff;margin-top:0}
.rg-block a{color:var(--gold)}

/* ---- Footer ---- */
.site-footer{background:var(--navy);color:#94a3b8;padding:44px 0 26px;font-size:.9rem;margin-top:40px}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:28px}
.site-footer h4{color:#fff;font-size:.95rem;margin:0 0 12px}
.site-footer a{color:#cbd5e1;display:block;padding:3px 0}
.site-footer a:hover{color:var(--gold)}
.footer-bottom{border-top:1px solid var(--navy-3);margin-top:28px;padding-top:18px;font-size:.82rem;line-height:1.6}
.footer-logos{display:flex;gap:12px;align-items:center;margin:10px 0}
.footer-logos span{border:1px solid var(--navy-3);border-radius:6px;padding:3px 8px;font-size:.75rem;font-weight:700;color:#cbd5e1}
@media(max-width:860px){.footer-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.footer-grid{grid-template-columns:1fr}}

/* author photos */
.author-photo{float:right;width:150px;height:150px;object-fit:cover;object-position:top;border-radius:14px;margin:0 0 16px 20px;box-shadow:var(--shadow);border:1px solid var(--border)}
.author-hub-photo{width:72px;height:72px;object-fit:cover;object-position:top;border-radius:50%;float:left;margin:0 14px 6px 0;border:1px solid var(--border)}
@media(max-width:600px){.author-photo{float:none;display:block;margin:0 auto 16px}}

.breadcrumb{font-size:.82rem;color:var(--muted);padding:12px 0 0}
.breadcrumb a{color:var(--muted)}
.updated-tag{font-size:.82rem;color:var(--muted);font-style:italic}
