/* ==========================================================================
   Utah Online Casinos — design system (uaahq.org repurpose)
   UAA NoviAMS reskin: white bg, UAA blue (#007FB0) + gold (#edca5a/#FFBC42),
   slate (#373f51) + near-black (#1b1b1e), Montserrat, 5-colour gold strip.
   CSS-only reskin — variable NAMES preserved (community/author inline styles
   reference --navy/--emerald/--amber/etc.), values remapped to the UAA palette.
   Layout/markup unchanged; mobile toplist still reflows to cards at <=768px.
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800&display=swap');

:root{
  /* legacy dark tokens -> UAA slate / near-black */
  --navy:#1b1b1e; --navy-2:#373f51; --navy-3:#4a5468;
  --ink:#1b1b1e; --paper:#ffffff; --card:#ffffff; --line:#e3e7ec;
  --muted:#6a7180; --text:#333333;
  /* gold / amber accent (the UAA colour-strip + blurb amber) */
  --amber:#edca5a; --amber-2:#c79a1f; --amber-soft:#fff6e0;
  /* primary action -> UAA blue (legacy "emerald" hooks remap to blue) */
  --emerald:#007FB0; --emerald-2:#0a6a92;
  --blue:#007FB0; --blue-2:#0a6a92; --slate:#373f51; --gold:#edca5a;
  --red:#c23b3b; --red-soft:#f7e6e6;
  --green:#37b34a;
  --radius:8px; --radius-sm:6px;
  --shadow:0 6px 22px rgba(27,27,30,.10); --shadow-sm:0 1px 5px rgba(27,27,30,.10);
  --wrap:1170px;
  --font:'Montserrat',-apple-system,'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(--paper);
  line-height:1.55;font-size:16px;border-top:4px solid var(--gold);-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:var(--blue)}
a:hover{color:var(--blue-2)}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 18px}
h1,h2,h3,h4,h5{font-family:var(--font);color:var(--ink);line-height:1.25;margin:0 0 .5em;font-weight:700}
h2{font-size:1.65rem;margin-top:1.6em}
h3{font-size:1.2rem;margin-top:1.3em;font-weight:600}
p{margin:0 0 1em}
.small{font-size:.85rem;color:var(--muted)}
.verify{display:inline-block;font-size:.62rem;font-weight:700;letter-spacing:.04em;color:var(--red);
  background:var(--red-soft);border:1px solid #e6b9b9;border-radius:4px;padding:1px 5px;vertical-align:middle;text-transform:uppercase}

/* ---- top utility / 21+ bar ---- */
.agebar{background:var(--navy);color:#d4d8df;font-size:.82rem;text-align:center;padding:8px 14px}
.agebar strong{color:#fff}
.agebar a{color:var(--amber)}

/* ---- navbar (white, UAA gold strip underneath) ---- */
.nav{position:sticky;top:0;z-index:1000;background:#fff;border-bottom:4px solid var(--gold);box-shadow:0 1px 6px rgba(27,27,30,.10)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;height:64px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none}
.brand img{height:46px;width:auto;display:block}
.brand .mark{width:38px;height:38px;border-radius:7px;background:var(--blue);
  display:grid;place-items:center;color:#fff;font-weight:800;font-size:1.02rem}
.brand b{color:var(--ink);font-size:1.12rem;font-weight:800;letter-spacing:.2px}
.brand b span{color:var(--blue)}
.navlinks{display:flex;gap:2px;align-items:center}
.navlinks a{color:var(--slate);text-decoration:none;font-size:.9rem;font-weight:600;padding:9px 11px;border-radius:5px;transition:.15s}
.navlinks a:hover{background:#f1f1f1;color:var(--blue)}
.navlinks a.cta{background:var(--blue);color:#fff;margin-left:8px}
.navlinks a.cta:hover{background:var(--blue-2);color:#fff}
.hamb{display:none;background:none;border:0;width:44px;height:44px;cursor:pointer;flex-direction:column;gap:5px;justify-content:center;align-items:center}
.hamb span{width:24px;height:3px;background:var(--slate);border-radius:2px;transition:.2s}
.navpanel-overlay{display:none}

/* ---- buttons (UAA: blue primary, squared) ---- */
.btn{display:inline-block;text-align:center;border:0;border-radius:6px;font-weight:700;cursor:pointer;
  text-decoration:none;padding:13px 24px;font-size:1rem;line-height:1.1;transition:.15s}
.btn-cta{background:linear-gradient(180deg,#0a96cf,var(--blue));color:#fff;border:0;font-weight:800;
  box-shadow:0 4px 14px rgba(0,127,176,.40),0 0 16px rgba(0,127,176,.30)}
.btn-cta:hover{background:linear-gradient(180deg,#10a6e0,var(--blue-2));color:#fff;transform:translateY(-1px);
  box-shadow:0 7px 22px rgba(0,127,176,.55),0 0 30px rgba(0,127,176,.55)}
.btn-cta:active{transform:translateY(0)}
@keyframes ctaGlow{0%,100%{box-shadow:0 4px 14px rgba(0,127,176,.38),0 0 14px rgba(0,127,176,.28)}
  50%{box-shadow:0 4px 18px rgba(0,127,176,.60),0 0 30px rgba(0,127,176,.55)}}
/* draw the eye to the top pick */
.toplist tr.row:nth-child(1) .btn-cta{animation:ctaGlow 2.4s ease-in-out infinite}
@media (prefers-reduced-motion:reduce){.btn-cta{animation:none}}
.btn-ghost{background:#fff;color:var(--slate);border:2px solid var(--slate)}
.btn-ghost:hover{background:var(--slate);color:#fff}
.btn-sm{padding:10px 18px;font-size:.9rem}

/* ---- hero (light, UAA feel) ---- */
.hero{background:#f1f1f1;border-bottom:1px solid var(--line);color:var(--text);padding:38px 0 32px}
.hero h1{color:var(--ink);font-size:2.15rem;font-weight:800;margin-bottom:.35em;max-width:20ch}
.hero .sub{font-size:1.08rem;color:#54606e;max-width:60ch;margin-bottom:18px}
.hero .heroflex{display:flex;gap:34px;align-items:center;flex-wrap:wrap}
.hero .herocol{flex:1 1 440px}
.hero .herobtns{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.trust{display:flex;gap:18px;flex-wrap:wrap;font-size:.82rem;color:var(--muted);margin-top:6px}
.trust span{display:flex;align-items:center;gap:6px}
.trust b{color:var(--blue)}
.herovisual{flex:0 1 310px;background:#fff;border:3px solid var(--blue);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow-sm)}
.herovisual h4{color:var(--ink);margin:0 0 12px;font-size:1.05rem;font-weight:700}
.herovisual ul{margin:0;padding-left:18px;color:var(--text);font-size:.92rem}
.herovisual li{margin:.35em 0}
/* Hero = centred H1 + description (+ author byline). Drop CTA buttons, trust strip,
   and quick-facts panel; keep the author portrait (only .herovisual with no <ul>). */
.hero .herobtns,.hero .trust{display:none}
.herovisual:has(ul){display:none}
.hero .heroflex{justify-content:center}
.hero .herocol{text-align:center}
.hero h1,.hero .sub{margin-left:auto;margin-right:auto}
/* author-in-hero byline pill */
.hero-byline{display:inline-flex;align-items:center;gap:10px;margin-top:4px;text-decoration:none;
  background:#fff;border:1px solid var(--line);border-radius:999px;padding:6px 16px 6px 6px;box-shadow:var(--shadow-sm)}
.hero-byline img{width:44px;height:44px;border-radius:50%;object-fit:cover;flex:0 0 44px}
.hero-byline span{text-align:left}
.hero-byline .hb-by{display:block;font-weight:700;color:var(--ink);font-size:.9rem;line-height:1.2}
.hero-byline .hb-role{display:block;font-size:.76rem;color:var(--muted);line-height:1.2}
.hero-byline:hover .hb-by{color:var(--blue)}
.hero-meta{display:inline-flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;margin-top:4px}
.hero-updated{font-size:.8rem;font-weight:600;color:var(--muted)}

/* Remove the top 21+ utility bar above the navbar (RG notice remains in the footer). */
.agebar{display:none}

/* ---- banners ---- */
.banner{border-radius:var(--radius);padding:14px 18px;margin:18px 0;font-size:.92rem}
.banner-warn{background:var(--amber-soft);border:1px solid #ecd79a;border-left:4px solid var(--amber);color:#6b551c}
.banner-warn b{color:#8a6d1f}
.banner-disc{background:#f1f1f1;border:1px solid var(--line);color:var(--muted);font-size:.83rem}
.banner-disc strong{color:var(--slate)}

/* ---- toplist (desktop horizontal table) ---- */
.toplist-head{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-top:6px}
.toplist{width:100%;border-collapse:separate;border-spacing:0 10px;margin:6px 0}
.toplist tr.row{background:var(--card);box-shadow:var(--shadow-sm)}
.toplist td{padding:16px 14px;vertical-align:middle;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.toplist td:first-child{border-left:1px solid var(--line);border-radius:var(--radius) 0 0 var(--radius)}
.toplist td:last-child{border-right:1px solid var(--line);border-radius:0 var(--radius) var(--radius) 0}
.toplist tr.row:nth-child(1) td{border-color:var(--amber);background:#fffdf5;box-shadow:inset 4px 0 0 var(--amber)}
.rank{font-size:1.5rem;font-weight:800;color:var(--blue);width:42px;text-align:center}
.rank .badge{display:block;font-size:.56rem;color:var(--amber-2);font-weight:700;letter-spacing:.05em;text-transform:uppercase}
.logo-box{width:140px}
.logo-chip{width:84px;height:54px;border-radius:7px;display:grid;place-items:center;font-weight:800;color:#fff;font-size:1.1rem;letter-spacing:.5px;box-shadow:var(--shadow-sm)}
.logo-img{width:124px;height:72px;object-fit:contain;background:#fff;border:1px solid var(--line);border-radius:8px;padding:6px 8px;box-shadow:var(--shadow-sm)}
/* ---- comparison table (nicer) ---- */
table.matrix.cmp{border-spacing:0}
table.matrix.cmp th{background:var(--slate)}
table.matrix.cmp td{vertical-align:middle;padding:10px 14px}
table.matrix.cmp tbody tr:nth-child(even){background:#f6f8fc}
table.matrix.cmp tbody tr:hover{background:#eef4fb}
table.matrix.cmp .col-rank{width:34px;color:var(--blue);font-weight:800;text-align:center}
.cmp-casino{display:inline-flex;align-items:center;gap:10px;font-weight:800;color:var(--ink)}
.cmp-logo{height:36px;width:auto;max-width:108px;object-fit:contain;background:#fff;border:1px solid var(--line);border-radius:6px;padding:3px 6px}
.cmp-bonus{font-weight:800;color:var(--blue)}
.cmp-num{font-weight:600;color:var(--text);white-space:nowrap}
table.matrix.cmp .cmp-cta{text-align:center;white-space:nowrap;width:120px}
table.matrix.cmp .cmp-cta .btn{padding:8px 14px;font-size:.85rem}
.brandcell{min-width:150px}
.brandcell .bn{font-weight:800;font-size:1.08rem;color:var(--ink)}
.brandcell .desc{font-size:.83rem;color:var(--muted)}
.avail{font-size:.74rem;font-weight:700;color:var(--red);margin-top:3px}
.bonuscell{min-width:150px}
.bonus-hl{background:var(--amber-soft);border:1px dashed var(--amber-2);border-radius:7px;padding:8px 10px;text-align:center}
.bonus-hl .big{font-weight:800;color:#8a6d1f;font-size:1.02rem;line-height:1.2}
.bonus-hl .lbl{font-size:.66rem;color:#9c7d2a;text-transform:uppercase;letter-spacing:.04em}
.metric{font-size:.86rem;color:var(--text);min-width:104px}
.metric b{display:block;font-size:1.15rem;color:var(--blue)}
.ctacell{min-width:150px;text-align:center}
.ctacell .terms{font-size:.66rem;color:var(--muted);margin-top:5px}

/* ---- generic content ---- */
.section{padding:8px 0}
.lead{font-size:1.12rem;color:#444}
.answer{background:#fff;border:1px solid var(--line);border-left:5px solid var(--blue);border-radius:0 var(--radius) var(--radius) 0;padding:16px 20px;box-shadow:var(--shadow-sm);margin:14px 0}
.answer .q{font-weight:800;color:var(--ink);margin-bottom:4px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.box{background:#fff;border:1px solid var(--line);border-top:3px solid var(--blue);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow-sm)}
.box h3{margin-top:0}
table.matrix{width:100%;border-collapse:collapse;margin:12px 0;font-size:.92rem;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm)}
table.matrix th,table.matrix td{padding:11px 13px;text-align:left;border-bottom:1px solid var(--line)}
table.matrix th{background:var(--slate);color:#fff;font-size:.82rem;text-transform:uppercase;letter-spacing:.03em}
table.matrix tr:last-child td{border-bottom:0}
.tag{display:inline-block;font-weight:700;font-size:.8rem;padding:2px 9px;border-radius:20px}
.tag.no{background:var(--red-soft);color:var(--red)}
.tag.maybe{background:var(--amber-soft);color:#8a6d1f}
.tag.yes{background:#e6f4ea;color:#2f7d3a}

/* ---- FAQ ---- */
.faq details{background:#fff;border:1px solid var(--line);border-radius:var(--radius-sm);margin:9px 0;box-shadow:var(--shadow-sm);overflow:hidden}
.faq summary{cursor:pointer;padding:15px 18px;font-weight:700;color:var(--ink);list-style:none;display:flex;justify-content:space-between;gap:12px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--blue);font-weight:800;font-size:1.3rem;line-height:1}
.faq details[open] summary{border-bottom:1px solid var(--line)}
.faq details[open] summary::after{content:"–"}
.faq .ans{padding:14px 18px 16px;color:var(--text)}

/* ---- author / methodology ---- */
.author{display:flex;gap:16px;align-items:center;background:#fff;border:1px solid var(--line);border-top:3px solid var(--blue);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow-sm);margin:12px 0}
.author .avatar{width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,var(--blue),var(--slate));color:#fff;display:grid;place-items:center;font-weight:800;font-size:1.3rem;flex:0 0 64px}
.author .meta b{color:var(--ink)}
.author .meta .role{font-size:.85rem;color:var(--blue);font-weight:700}

/* ---- footer (UAA dark, gold strip) ---- */
.foot{background:var(--navy);color:#aeb6c2;margin-top:34px;padding:30px 0 14px;font-size:.9rem;border-top:4px solid var(--gold)}
.foot a{color:#cfd4dc;text-decoration:none}
.foot a:hover{color:#fff}
.footgrid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:22px;margin-bottom:18px}
.foot h5{color:var(--amber);font-size:.92rem;margin:0 0 10px;font-weight:700}
.foot-logo{height:50px;width:auto;background:#fff;padding:6px 10px;border-radius:8px;margin-bottom:12px;display:block}
.foot ul{list-style:none;margin:0;padding:0}
.foot li{margin:.4em 0}
.rg-sticky{background:var(--red);color:#fff;text-align:center;padding:9px;font-size:.86rem;font-weight:600}
.rg-sticky a{color:#fff;text-decoration:underline}
.footbottom{border-top:1px solid #3a4150;padding-top:14px;font-size:.8rem;color:#8b93a2}

/* ==========================================================================
   MOBILE  (<=768px) — toplist reflows to vertical cards
   ========================================================================== */
@media (max-width:768px){
  body{font-size:16px}
  .hero{padding:14px 0 10px}
  .hero h1{font-size:1.32rem;line-height:1.2;margin-bottom:.25em}
  .hero .sub{font-size:.9rem;margin-bottom:8px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
  .herovisual{display:none}
  .hero-meta{gap:6px;margin-top:2px}
  .hero-byline{padding:4px 12px 4px 4px}
  .hero-byline img{width:34px;height:34px;flex:0 0 34px}
  .hero-updated{font-size:.72rem}
  .banner-disc{margin:12px 0;font-size:.78rem}
  h2{font-size:1.4rem;margin-top:1.2em}
  /* trim everything above the first toplist card so card #1 + its CTA fit the fold */
  .toplist-head .small{display:none}
  .toplist-lead{display:none}
  #toplist .toplist-head h2{font-size:1.18rem;margin:.1em 0 .3em}
  .navlinks{position:fixed;top:0;right:0;height:100vh;width:78%;max-width:320px;background:#fff;
    flex-direction:column;align-items:stretch;gap:2px;padding:74px 16px 20px;transform:translateX(100%);
    transition:transform .25s ease;box-shadow:-8px 0 30px rgba(27,27,30,.25);overflow-y:auto;z-index:1001;border-left:4px solid var(--gold)}
  .navlinks a{padding:13px 12px;font-size:1rem;color:var(--slate)}
  .navlinks a.cta{margin:8px 0 0;color:#fff}
  body.nav-open .navlinks{transform:translateX(0)}
  body.nav-open .navpanel-overlay{display:block;position:fixed;inset:0;background:rgba(27,27,30,.5);z-index:1000}
  body.nav-open{overflow:hidden}
  .hamb{display:flex;z-index:1002}
  .grid2,.grid3{grid-template-columns:1fr}

  .toplist,.toplist tbody,.toplist tr.row,.toplist td{display:block;width:100%}
  .toplist{border-spacing:0}
  .toplist tr.row{margin:0 0 12px;border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px 12px}
  .toplist tr.row:nth-child(1){border-color:var(--amber)}
  .toplist tr.row:nth-child(1) td{box-shadow:none;border-color:transparent;background:transparent}
  .toplist td{border:0 !important;padding:4px 0;text-align:center}
  .toplist td:first-child,.toplist td:last-child{border-radius:0}
  /* rank sits in normal flow, centred at the top of the card (no overlap with the logo) */
  .rank{position:static;width:auto;font-size:1.15rem;margin:0 auto 2px;text-align:center;display:flex;align-items:center;justify-content:center;gap:8px}
  .rank .badge{display:inline-block;font-size:.58rem;margin:0}
  /* card #1 on mobile: show only "TOP PICK", hide the "1" */
  .toplist tr.row:nth-child(1) .rank{font-size:0;gap:0}
  .toplist tr.row:nth-child(1) .rank .badge{font-size:.72rem}
  .logo-box{width:auto;margin:4px auto 2px}
  .logo-chip{margin:0 auto;width:104px;height:56px}
  .logo-img{margin:0 auto;width:120px;height:62px}
  .brandcell .bn{font-size:1.12rem}
  .bonus-hl{margin:6px auto;max-width:300px;padding:6px 10px}
  .bonus-hl .big{font-size:1.1rem}
  .metric{display:inline-block;margin:4px 10px}
  .metric b{display:inline;font-size:1rem}
  .ctacell .btn{display:block;width:100%}
  table.matrix{font-size:.82rem}
  table.matrix th,table.matrix td{padding:8px 9px}

  /* comparison table -> stacked cards on mobile (fully visible, with CTA) */
  table.matrix.cmp{border:0;box-shadow:none;background:transparent;font-size:.92rem}
  .matrix.cmp thead{display:none}
  .matrix.cmp tbody,.matrix.cmp tr,.matrix.cmp td{display:block;width:100%}
  .matrix.cmp tr{border:1px solid var(--line);border-radius:var(--radius);margin:0 0 12px;padding:12px 14px;background:#fff!important;box-shadow:var(--shadow-sm)}
  .matrix.cmp td{border:0!important;padding:6px 0;text-align:right;display:flex;justify-content:space-between;align-items:center;gap:12px}
  .matrix.cmp td::before{content:attr(data-label);font-weight:700;color:var(--slate);text-align:left}
  .matrix.cmp td.cmp-casinocell{display:block;text-align:center;padding:0 0 8px;border-bottom:1px solid var(--line);margin-bottom:6px}
  .matrix.cmp td.cmp-casinocell::before{display:none}
  .matrix.cmp .cmp-casino{display:inline-flex;flex-direction:column;align-items:center;gap:6px;font-size:1.1rem}
  .matrix.cmp .cmp-logo{height:44px;max-width:140px}
  .matrix.cmp td.col-rank{text-align:right}
  .matrix.cmp td.cmp-cta{display:block;padding-top:10px}
  .matrix.cmp td.cmp-cta::before{display:none}
  .matrix.cmp td.cmp-cta .btn{display:block;width:100%}
}
