/* ==========================================================================
   USAGamblingSites.com  --  "Stars & Stripes" Design System v3 (gsu-)
   Red / white / blue, flag-true palette (Old Glory Red #B31942, Old Glory
   Blue #0A3161). White-dominant, 1400px wide, bordered section panels,
   gradient headings, self-hosted fonts + icons (assets/fonts, assets/img).
   Scoped under .gsu-page so it cannot leak into the theme.
   ========================================================================== */

/* ---------- Self-hosted fonts (shipped in this plugin, no third-party) --- */
@font-face{ font-family:"Barlow Condensed"; font-style:normal; font-weight:600; font-display:swap;
  src:url("../fonts/barlow-condensed-latin-600-normal.woff2") format("woff2"); }
@font-face{ font-family:"Barlow Condensed"; font-style:normal; font-weight:700; font-display:swap;
  src:url("../fonts/barlow-condensed-latin-700-normal.woff2") format("woff2"); }
@font-face{ font-family:"Barlow Condensed"; font-style:normal; font-weight:800; font-display:swap;
  src:url("../fonts/barlow-condensed-latin-800-normal.woff2") format("woff2"); }
@font-face{ font-family:"Public Sans"; font-style:normal; font-weight:400; font-display:swap;
  src:url("../fonts/public-sans-latin-400-normal.woff2") format("woff2"); }
@font-face{ font-family:"Public Sans"; font-style:italic; font-weight:400; font-display:swap;
  src:url("../fonts/public-sans-latin-400-italic.woff2") format("woff2"); }
@font-face{ font-family:"Public Sans"; font-style:normal; font-weight:600; font-display:swap;
  src:url("../fonts/public-sans-latin-600-normal.woff2") format("woff2"); }
@font-face{ font-family:"Public Sans"; font-style:normal; font-weight:700; font-display:swap;
  src:url("../fonts/public-sans-latin-700-normal.woff2") format("woff2"); }

/* ------------------------------- Tokens --------------------------------- */
.gsu-page{
  --blue:#0A3161; --blue-2:#11447F; --blue-3:#1B5AA5;
  --red:#B31942;  --red-2:#8F1133;  --red-3:#D42755;
  --ink:#161E2A;  --slate:#566274;
  --wash:#F3F6FA; --wash-2:#EAF0F8;
  --line:#D9E0EA; --line-2:#C2CCDA;
  --tint-blue:#E8F0FA; --tint-red:#FBEAEF;
  --green:#1B7A45; --gold:#F2B32A;
  --grad:linear-gradient(92deg,var(--blue) 0%,var(--blue-2) 38%,var(--red) 100%);
  --r:6px; --r-sm:4px;
  --display:"Barlow Condensed","Arial Narrow",sans-serif;
  --body:"Public Sans","Segoe UI",Helvetica,Arial,sans-serif;
  --shadow:0 1px 2px rgba(10,49,97,.06),0 6px 18px -8px rgba(10,49,97,.14);
  font-family:var(--body); color:var(--ink); font-size:17px; line-height:1.7;
  background:#fff; -webkit-text-size-adjust:100%;
}
.gsu-page *,.gsu-page *::before,.gsu-page *::after{ box-sizing:border-box; }
.gsu-page img{ max-width:100%; height:auto; }
.gsu-wrap{ max-width:1400px; margin:0 auto; padding:0 24px; }

.gsu-page h1,.gsu-page h2,.gsu-page h3,.gsu-page h4{
  font-family:var(--display); color:var(--blue); line-height:1.06; margin:0; }
.gsu-page p{ margin:0 0 1.1rem; }
.gsu-page p:last-child{ margin-bottom:0; }
.gsu-page a{ color:var(--blue-3); text-decoration:none; }
.gsu-page a:hover{ text-decoration:underline; }
.gsu-page a:focus-visible,.gsu-page summary:focus-visible{
  outline:3px solid var(--blue-3); outline-offset:2px; border-radius:2px; }
.gsu-page strong{ font-weight:700; }

/* ------------------------- Icon helper (masked) -------------------------- */
.gsu-i{ display:inline-block; width:18px; height:18px; flex:0 0 auto; background:currentColor; vertical-align:-3px; font-size:0; line-height:0; overflow:hidden;
  -webkit-mask:var(--ico) center/contain no-repeat; mask:var(--ico) center/contain no-repeat; }
.gsu-i--star{ --ico:url("../img/star.svg"); }      .gsu-i--chip{ --ico:url("../img/chip.svg"); }
.gsu-i--cards{ --ico:url("../img/cards.svg"); }    .gsu-i--dice{ --ico:url("../img/dice.svg"); }
.gsu-i--slot{ --ico:url("../img/slot.svg"); }      .gsu-i--football{ --ico:url("../img/football.svg"); }
.gsu-i--horseshoe{ --ico:url("../img/horseshoe.svg"); } .gsu-i--ticket{ --ico:url("../img/ticket.svg"); }
.gsu-i--chart{ --ico:url("../img/chart.svg"); }    .gsu-i--coins{ --ico:url("../img/coins.svg"); }
.gsu-i--trophy{ --ico:url("../img/trophy.svg"); }  .gsu-i--shield{ --ico:url("../img/shield.svg"); }
.gsu-i--globe{ --ico:url("../img/globe.svg"); }    .gsu-i--scale{ --ico:url("../img/scale.svg"); }
.gsu-i--bank{ --ico:url("../img/bank.svg"); }      .gsu-i--gift{ --ico:url("../img/gift.svg"); }
.gsu-i--phone{ --ico:url("../img/phone.svg"); }    .gsu-i--pin{ --ico:url("../img/pin.svg"); }
.gsu-i--flag{ --ico:url("../img/flag.svg"); }      .gsu-i--clock{ --ico:url("../img/clock.svg"); }
.gsu-i--magnify{ --ico:url("../img/magnify.svg"); }.gsu-i--idcard{ --ico:url("../img/idcard.svg"); }
.gsu-i--check{ --ico:url("../img/check.svg"); }    .gsu-i--cross{ --ico:url("../img/cross.svg"); }
.gsu-i--arrow{ --ico:url("../img/arrow.svg"); }

/* --------------------------- Flag bar motif ------------------------------ */
.gsu-flagbar{ display:flex; height:8px; border-radius:2px; overflow:hidden; margin:0 0 4px; }
.gsu-flagbar i{ display:block; height:100%; font-size:0; line-height:0; overflow:hidden; }
.gsu-flagbar i:nth-child(1){ flex:0 0 26%; background:var(--blue); }
.gsu-flagbar i:nth-child(2){ flex:1 1 auto;
  background:repeating-linear-gradient(90deg,var(--red) 0 28px,#fff 28px 42px,var(--red) 42px 70px); }

/* =============================== HERO ==================================== */
.gsu-hero{ position:relative; margin:26px 0 0; border-radius:var(--r); overflow:hidden;
  background:linear-gradient(118deg,#082749 0%,var(--blue) 46%,var(--blue-2) 100%);
  border:1px solid var(--blue); box-shadow:var(--shadow);
  display:grid; grid-template-columns:1.55fr 1fr; }
.gsu-hero::before{ content:""; position:absolute; inset:0;
  background:url("../img/stars-tile.svg") 0 0/96px 96px repeat; pointer-events:none; }
.gsu-hero::after{ content:""; position:absolute; left:0; right:0; top:0; height:6px;
  background:repeating-linear-gradient(90deg,var(--red) 0 34px,#fff 34px 50px,var(--red) 50px 84px); }
.gsu-hero-l{ position:relative; padding:54px 50px 44px; }
.gsu-eyebrow{ display:inline-flex; align-items:center; gap:8px; font-family:var(--display); font-weight:700;
  letter-spacing:.22em; text-transform:uppercase; font-size:.82rem; color:#fff;
  background:var(--red); padding:5px 12px 4px; border-radius:var(--r-sm); margin-bottom:18px; }
.gsu-hero-l h1{ color:#fff; font-weight:800; text-transform:uppercase; letter-spacing:.005em;
  font-size:3.4rem; margin-bottom:18px; }
.gsu-hero-l h1 em{ font-style:normal; color:#fff;
  background:linear-gradient(180deg,transparent 58%,var(--red) 58%); padding:0 4px; }
.gsu-hero-l p{ color:#D7E3F4; font-size:1.04rem; max-width:62ch; }
.gsu-hero-l p strong{ color:#fff; }
.gsu-hero-cta{ display:flex; flex-wrap:wrap; gap:12px; margin-top:24px; }
.gsu-hero-note{ margin-top:20px; font-size:.86rem; color:#A9BCD8; }
.gsu-hero-note a{ color:#fff; text-decoration:underline; }

/* Quick-facts panel (hero right) */
.gsu-facts{ position:relative; background:#fff; margin:26px 26px 26px 0; border-radius:var(--r);
  border:1px solid var(--line); padding:22px 24px 12px; align-self:center; }
.gsu-facts-h{ display:flex; align-items:center; gap:10px; font-family:var(--display); font-weight:700;
  text-transform:uppercase; letter-spacing:.14em; font-size:.92rem; color:var(--blue);
  padding-bottom:12px; border-bottom:3px solid var(--blue); }
.gsu-facts-h .gsu-i{ color:var(--red); }
.gsu-fact-row{ display:grid; grid-template-columns:96px 1fr; gap:16px; align-items:center;
  padding:13px 0; border-bottom:1px solid var(--line); }
.gsu-fact-row:last-child{ border-bottom:none; }
.gsu-fact-num{ font-family:var(--display); font-weight:800; font-size:2.15rem; line-height:.95;
  color:var(--blue); position:relative; padding-left:12px; white-space:nowrap; }
.gsu-fact-num::before{ content:""; position:absolute; left:0; top:3px; bottom:3px; width:4px;
  background:var(--red); border-radius:2px; }
.gsu-fact-lbl{ font-size:.9rem; color:var(--slate); line-height:1.4; }

/* ------------------------------- Buttons -------------------------------- */
.gsu-btn{ display:inline-flex; align-items:center; gap:9px; background:var(--red); color:#fff !important;
  font-family:var(--display); font-weight:700; text-transform:uppercase; letter-spacing:.06em;
  font-size:1.02rem; padding:13px 22px 12px; border-radius:var(--r-sm);
  border-bottom:3px solid var(--red-2); transition:background .14s ease,transform .14s ease; }
.gsu-btn:hover{ background:var(--red-2); text-decoration:none !important; transform:translateY(-1px); }
.gsu-btn .gsu-i{ width:15px; height:15px; }
.gsu-btn--blue{ background:var(--blue-2); border-bottom-color:var(--blue); }
.gsu-btn--blue:hover{ background:var(--blue); }
.gsu-btn--ghost{ background:transparent; border:2px solid rgba(255,255,255,.55); border-bottom-width:2px; }
.gsu-btn--ghost:hover{ background:rgba(255,255,255,.12); transform:none; }

/* ============================ TOC ======================================== */
.gsu-toc{ margin:30px 0; border:1px solid var(--line); border-top:4px solid var(--blue);
  border-radius:var(--r); background:#fff; box-shadow:var(--shadow); padding:24px 28px 26px; position:relative; }
.gsu-toc::before{ content:""; position:absolute; top:-4px; left:0; width:110px; height:4px; background:var(--red); }
.gsu-toc-h{ display:flex; align-items:center; gap:10px; font-family:var(--display); font-weight:700;
  text-transform:uppercase; letter-spacing:.14em; font-size:1rem; color:var(--blue); margin-bottom:14px; }
.gsu-toc-h .gsu-i{ color:var(--red); }
.gsu-toc ol{ margin:0; padding:0; list-style:none; column-count:3; column-gap:36px;
  counter-reset:gsu-toc; }
.gsu-toc li{ counter-increment:gsu-toc; break-inside:avoid; border-bottom:1px solid var(--line); }
.gsu-toc a{ display:flex; gap:10px; align-items:baseline; padding:8px 2px; color:var(--ink);
  font-size:.93rem; font-weight:600; }
.gsu-toc a:hover{ color:var(--red); text-decoration:none; }
.gsu-toc a::before{ content:counter(gsu-toc,decimal-leading-zero); font-family:var(--display);
  font-weight:700; color:var(--red); font-size:.85rem; letter-spacing:.04em; }

/* ====================== Section panels & headers ========================= */
.gsu-section{ position:relative; margin:36px 0; padding:34px 38px 36px; background:#fff;
  border:1px solid var(--line); border-top:4px solid var(--blue); border-radius:var(--r); box-shadow:var(--shadow); }
.gsu-section::before{ content:""; position:absolute; top:-4px; left:0; width:110px; height:4px; background:var(--red); }
.gsu-section--wash{ background:linear-gradient(180deg,#fff 0%,var(--wash) 100%); }
.gsu-section > :where(p,ul,ol){ max-width:1100px; }
[id]{ scroll-margin-top:90px; }

.gsu-sh{ display:flex; align-items:center; gap:16px; margin:0 0 6px; }
.gsu-sh-ico{ flex:0 0 auto; width:46px; height:46px; border-radius:var(--r-sm); background:var(--blue);
  display:flex; align-items:center; justify-content:center; position:relative; }
.gsu-sh-ico::after{ content:""; position:absolute; left:0; right:0; bottom:-5px; height:3px;
  background:var(--red); border-radius:2px; }
.gsu-sh-ico .gsu-i{ width:24px; height:24px; color:#fff; }
.gsu-sh h2{ font-weight:800; text-transform:uppercase; font-size:2.1rem; letter-spacing:.01em;
  background:var(--grad); -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:var(--blue); }
.gsu-sh-go{ margin-left:auto; white-space:nowrap; align-self:center; display:inline-flex; align-items:center; gap:7px;
  font-family:var(--display); font-weight:700; text-transform:uppercase; letter-spacing:.08em;
  font-size:.95rem; color:var(--red); }
.gsu-sh-go:hover{ color:var(--red-2); text-decoration:none; }
.gsu-sh-go .gsu-i{ width:13px; height:13px; }
.gsu-rule{ height:3px; margin:10px 0 22px; border:0;
  background:linear-gradient(90deg,var(--red) 0 90px,#fff 90px 104px,var(--blue) 104px 100%); }
.gsu-sub{ color:var(--slate); margin:-6px 0 22px; max-width:900px; font-size:1.02rem; }

.gsu-page h3{ font-weight:700; font-size:1.42rem; text-transform:uppercase; letter-spacing:.015em;
  margin:30px 0 12px; padding-left:14px; position:relative; }
.gsu-page h3::before{ content:""; position:absolute; left:0; top:4px; bottom:4px; width:5px;
  background:linear-gradient(180deg,var(--red) 0 55%,var(--blue) 55%); border-radius:2px; }
.gsu-section > h3:first-of-type{ margin-top:24px; }

/* ============================ Badges ===================================== */
.gsu-badge{ display:inline-flex; align-items:center; gap:6px; font-family:var(--display); font-weight:700;
  text-transform:uppercase; letter-spacing:.08em; font-size:.8rem; line-height:1;
  padding:5px 9px 4px; border-radius:3px; white-space:nowrap; }
.gsu-badge .gsu-i{ width:12px; height:12px; }
.gsu-badge--reg{ color:var(--blue); background:var(--tint-blue); border:1px solid #B9D0EC; }
.gsu-badge--off{ color:var(--red-2); background:var(--tint-red); border:1px solid #EFC2D0; }
.gsu-badge--sweep{ color:#7A5A00; background:#FCF3DB; border:1px solid #EAD79E; }
.gsu-badge--solid-reg{ color:#fff; background:var(--blue); border:1px solid var(--blue); }
.gsu-badge--solid-off{ color:#fff; background:var(--red); border:1px solid var(--red); }

/* ====================== Category cards (nav grid) ======================== */
.gsu-cats{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin:26px 0 6px; }
.gsu-cat{ position:relative; display:flex; flex-direction:column; background:#fff; border:1px solid var(--line);
  border-radius:var(--r); padding:22px 22px 18px; color:inherit; box-shadow:var(--shadow);
  transition:transform .15s ease,border-color .15s ease; overflow:hidden; }
.gsu-cat::before{ content:""; position:absolute; top:0; left:0; right:0; height:4px;
  background:linear-gradient(90deg,var(--blue) 55%,var(--red) 55%); }
a.gsu-cat:hover{ text-decoration:none; transform:translateY(-3px); border-color:var(--line-2); }
.gsu-cat-ico{ width:46px; height:46px; border-radius:50%; background:var(--tint-blue);
  display:flex; align-items:center; justify-content:center; margin-bottom:13px; }
.gsu-cat-ico .gsu-i{ width:24px; height:24px; color:var(--blue); }
.gsu-cat h3{ margin:0 0 8px; padding-left:0; font-size:1.28rem; }
.gsu-cat h3::before{ display:none; }
.gsu-cat p{ font-size:.9rem; color:var(--slate); line-height:1.55; margin:0 0 14px; }
.gsu-cat-meta{ margin-top:auto; display:flex; align-items:center; gap:8px; flex-wrap:wrap;
  padding-top:12px; border-top:1px solid var(--line); }
.gsu-cat-go{ margin-left:auto; display:inline-flex; color:var(--red); }
.gsu-cat-go .gsu-i{ width:14px; height:14px; }

/* ================== Side-by-side comparison (sxs) ======================== */
.gsu-vs{ display:grid; grid-template-columns:1fr 1fr; gap:0; margin:26px 0;
  border:1px solid var(--line); border-radius:var(--r); overflow:hidden; box-shadow:var(--shadow); }
.gsu-vs-col{ background:#fff; padding:0 0 8px; }
.gsu-vs-col + .gsu-vs-col{ border-left:1px solid var(--line); }
.gsu-vs-h{ display:flex; align-items:center; gap:10px; padding:15px 22px; color:#fff;
  font-family:var(--display); font-weight:700; text-transform:uppercase; letter-spacing:.1em; font-size:1.12rem; }
.gsu-vs-col--reg .gsu-vs-h{ background:linear-gradient(92deg,var(--blue),var(--blue-2)); }
.gsu-vs-col--off .gsu-vs-h{ background:linear-gradient(92deg,var(--red-2),var(--red)); }
.gsu-vs-h .gsu-i{ width:19px; height:19px; }
.gsu-vs-col ul{ list-style:none; margin:8px 0; padding:6px 22px; }
.gsu-vs-col li{ position:relative; padding:9px 0 9px 30px; font-size:.95rem; border-bottom:1px dashed var(--line); }
.gsu-vs-col li:last-child{ border-bottom:none; }
.gsu-vs-col li::before{ content:""; position:absolute; left:2px; top:13px; width:15px; height:15px;
  -webkit-mask:url("../img/check.svg") center/contain no-repeat; mask:url("../img/check.svg") center/contain no-repeat; }
.gsu-vs-col--reg li::before{ background:var(--blue-3); }
.gsu-vs-col--off li::before{ background:var(--red); }
.gsu-vs-col li.gsu-con::before{ -webkit-mask-image:url("../img/cross.svg"); mask-image:url("../img/cross.svg");
  background:var(--slate); }
.gsu-vs-foot{ grid-column:1/-1; background:var(--wash); border-top:1px solid var(--line);
  padding:14px 22px; font-size:.94rem; color:var(--ink); display:flex; gap:10px; align-items:flex-start; }
.gsu-vs-foot .gsu-i{ color:var(--red); margin-top:3px; }

/* ====================== Top sites: hero cards ============================ */
.gsu-tgrid{ display:grid; grid-template-columns:repeat(5,1fr); gap:16px; margin:22px 0; }
.gsu-tcard{ position:relative; display:flex; flex-direction:column; background:#fff;
  border:1px solid var(--line); border-radius:var(--r); box-shadow:var(--shadow); overflow:hidden;
  transition:transform .15s ease; }
.gsu-tcard:hover{ transform:translateY(-3px); }
.gsu-tcard-top{ display:flex; align-items:center; justify-content:space-between; gap:8px;
  padding:11px 14px; border-bottom:2px solid var(--blue); background:var(--wash); }
.gsu-tcard--off .gsu-tcard-top{ border-bottom-color:var(--red); }
.gsu-rank{ font-family:var(--display); font-weight:800; font-size:1.05rem; color:#fff; background:var(--blue);
  min-width:30px; height:30px; padding:0 6px; display:flex; align-items:center; justify-content:center; border-radius:3px; }
.gsu-tcard--off .gsu-rank{ background:var(--red); }
.gsu-tcard-body{ padding:16px 16px 18px; display:flex; flex-direction:column; flex:1; }
.gsu-tcard-logo{ font-family:var(--display); font-weight:800; font-size:1.4rem; text-transform:uppercase;
  color:var(--blue); line-height:1; margin-bottom:9px; }
.gsu-tcard p{ font-size:.88rem; color:var(--slate); line-height:1.55; margin:0 0 14px; }
.gsu-tcard .gsu-btn{ margin-top:auto; justify-content:center; font-size:.95rem; padding:11px 12px 10px; }
.gsu-tcard-flat{ margin-top:auto; text-align:center; font-size:.82rem; color:var(--slate);
  border:1px dashed var(--line-2); border-radius:var(--r-sm); padding:10px 8px; }

/* ============================== Tables =================================== */
.gsu-twrap{ margin:22px 0; border:1px solid var(--line); border-radius:var(--r); overflow:auto;
  box-shadow:var(--shadow); background:#fff; max-width:100%; }
table.gsu-table{ width:100%; border-collapse:separate; border-spacing:0; font-size:.95rem; min-width:680px; }
.gsu-table caption{ text-align:left; font-family:var(--display); font-weight:700; text-transform:uppercase;
  letter-spacing:.1em; color:#fff; background:linear-gradient(92deg,var(--blue),var(--blue-2));
  padding:12px 18px; font-size:1.02rem; }
.gsu-table th{ position:sticky; top:0; z-index:2; background:var(--blue); color:#fff; text-align:left;
  font-family:var(--display); font-weight:700; text-transform:uppercase; letter-spacing:.07em;
  font-size:.92rem; padding:12px 16px; border-bottom:3px solid var(--red); white-space:nowrap; }
.gsu-table td{ padding:12px 16px; border-bottom:1px solid var(--line); vertical-align:middle; }
.gsu-table tr:last-child td{ border-bottom:none; }
.gsu-table tbody tr:nth-child(even) td{ background:var(--wash); }
.gsu-table tbody tr:hover td{ background:var(--wash-2); }
.gsu-table td:first-child{ font-weight:700; color:var(--blue); white-space:nowrap; }
.gsu-tbtn{ display:inline-flex; align-items:center; gap:6px; background:var(--red); color:#fff !important;
  font-family:var(--display); font-weight:700; text-transform:uppercase; letter-spacing:.05em;
  font-size:.85rem; padding:7px 13px 6px; border-radius:3px; border-bottom:2px solid var(--red-2);
  white-space:nowrap; }
.gsu-tbtn:hover{ background:var(--red-2); text-decoration:none !important; }
.gsu-tbtn .gsu-i{ width:11px; height:11px; }

/* yes / no / partial cells (50-state table) */
.gsu-yes,.gsu-no,.gsu-part{ display:inline-flex; align-items:center; gap:7px; font-weight:600; font-size:.9rem; }
.gsu-yes::before,.gsu-no::before{ content:""; width:15px; height:15px; flex:0 0 auto; border-radius:50%; }
.gsu-yes{ color:var(--green); }
.gsu-yes::before{ background:var(--green);
  -webkit-mask:url("../img/check.svg") center/11px no-repeat,linear-gradient(#000,#000);
  -webkit-mask-composite:destination-out; mask:url("../img/check.svg") center/11px no-repeat exclude,linear-gradient(#000,#000); }
.gsu-no{ color:#A33; }
.gsu-no::before{ background:#C4485E;
  -webkit-mask:url("../img/cross.svg") center/10px no-repeat,linear-gradient(#000,#000);
  -webkit-mask-composite:destination-out; mask:url("../img/cross.svg") center/10px no-repeat exclude,linear-gradient(#000,#000); }
.gsu-part{ color:#7A5A00; }
.gsu-table--states{ min-width:920px; }
.gsu-table--states td:first-child{ position:sticky; left:0; background:#fff; z-index:1;
  border-right:1px solid var(--line); }
.gsu-table--states tbody tr:nth-child(even) td:first-child{ background:var(--wash); }
.gsu-table--states th:first-child{ position:sticky; left:0; z-index:3; }

/* Timeline table flavor */
.gsu-table--timeline td:first-child{ width:120px; }
.gsu-year{ display:inline-block; font-family:var(--display); font-weight:800; font-size:1.05rem; color:#fff;
  background:linear-gradient(92deg,var(--blue),var(--blue-2)); padding:5px 12px 4px; border-radius:3px;
  border-left:4px solid var(--red); }

/* ===================== Callouts: fact / note ============================= */
.gsu-fact{ display:flex; gap:16px; align-items:flex-start; margin:24px 0; padding:18px 22px;
  background:var(--wash); border:1px solid var(--line); border-left:5px solid var(--blue); border-radius:var(--r-sm); }
.gsu-fact-ico{ flex:0 0 auto; width:38px; height:38px; border-radius:50%; background:var(--blue);
  display:flex; align-items:center; justify-content:center; }
.gsu-fact-ico .gsu-i{ width:20px; height:20px; color:#fff; }
.gsu-fact-k{ display:block; font-family:var(--display); font-weight:700; text-transform:uppercase;
  letter-spacing:.14em; font-size:.8rem; color:var(--red); margin-bottom:3px; }
.gsu-fact-b p{ margin:0; font-size:.96rem; }
.gsu-fact--red{ border-left-color:var(--red); background:var(--tint-red); border-color:#EFC2D0; }
.gsu-fact--red .gsu-fact-ico{ background:var(--red); }
.gsu-fact--red .gsu-fact-k{ color:var(--red-2); }

/* ========================= Icon bullet lists ============================= */
ul.gsu-list{ list-style:none; margin:16px 0 22px; padding:0; max-width:1100px; }
ul.gsu-list li{ position:relative; padding:8px 0 8px 32px; border-bottom:1px dashed var(--line); font-size:.97rem; }
ul.gsu-list li:last-child{ border-bottom:none; }
ul.gsu-list li::before{ content:""; position:absolute; left:2px; top:13px; width:15px; height:15px;
  background:var(--red); -webkit-mask:url("../img/star.svg") center/contain no-repeat;
  mask:url("../img/star.svg") center/contain no-repeat; }
ul.gsu-list--check li::before{ background:var(--green);
  -webkit-mask-image:url("../img/check.svg"); mask-image:url("../img/check.svg"); }
ul.gsu-list--cols{ column-count:2; column-gap:40px; }
ul.gsu-list--cols li{ break-inside:avoid; }

/* ========================== Pros / cons ================================== */
.gsu-pc{ display:grid; grid-template-columns:1fr 1fr; gap:18px; margin:22px 0; }
.gsu-pc-box{ border:1px solid var(--line); border-radius:var(--r); overflow:hidden; background:#fff; box-shadow:var(--shadow); }
.gsu-pc-h{ display:flex; align-items:center; gap:9px; padding:12px 18px; color:#fff;
  font-family:var(--display); font-weight:700; text-transform:uppercase; letter-spacing:.1em; font-size:1rem; }
.gsu-pc-box--pros .gsu-pc-h{ background:linear-gradient(92deg,var(--blue),var(--blue-2)); }
.gsu-pc-box--cons .gsu-pc-h{ background:linear-gradient(92deg,var(--red-2),var(--red)); }
.gsu-pc-box ul{ list-style:none; margin:0; padding:10px 18px 14px; }
.gsu-pc-box li{ position:relative; padding:8px 0 8px 28px; font-size:.94rem; border-bottom:1px dashed var(--line); }
.gsu-pc-box li:last-child{ border-bottom:none; }
.gsu-pc-box li::before{ content:""; position:absolute; left:0; top:12px; width:15px; height:15px; }
.gsu-pc-box--pros li::before{ background:var(--green);
  -webkit-mask:url("../img/check.svg") center/contain no-repeat; mask:url("../img/check.svg") center/contain no-repeat; }
.gsu-pc-box--cons li::before{ background:var(--red);
  -webkit-mask:url("../img/cross.svg") center/contain no-repeat; mask:url("../img/cross.svg") center/contain no-repeat; }

/* ============================ CTA band =================================== */
.gsu-cta{ position:relative; overflow:hidden; margin:36px 0; padding:30px 38px; border-radius:var(--r);
  background:linear-gradient(96deg,var(--blue) 0%,var(--blue-2) 52%,var(--red) 100%);
  color:#fff; display:flex; align-items:center; gap:28px; flex-wrap:wrap; box-shadow:var(--shadow); }
.gsu-cta::before{ content:""; position:absolute; inset:0;
  background:url("../img/stars-tile.svg") 0 0/90px 90px repeat; pointer-events:none; }
.gsu-cta-b{ position:relative; flex:1 1 380px; }
.gsu-cta-b h2,.gsu-cta-b .gsu-cta-t{ display:block; color:#fff; font-family:var(--display); font-weight:800;
  text-transform:uppercase; font-size:1.7rem; line-height:1.1; margin:0 0 6px; }
.gsu-cta-b p{ margin:0; color:#DDE7F5; font-size:.98rem; }
.gsu-cta .gsu-btn{ position:relative; background:#fff; color:var(--blue) !important; border-bottom-color:#C9D6E8; }
.gsu-cta .gsu-btn:hover{ background:var(--wash-2); }

/* =============================== FAQ ===================================== */
.gsu-faq{ border:1px solid var(--line); border-left:5px solid var(--blue); border-radius:var(--r-sm);
  background:#fff; margin:0 0 12px; box-shadow:var(--shadow); }
.gsu-faq summary{ list-style:none; cursor:pointer; position:relative; padding:16px 56px 15px 20px;
  font-family:var(--display); font-weight:700; font-size:1.16rem; color:var(--blue);
  text-transform:uppercase; letter-spacing:.01em; line-height:1.25; }
.gsu-faq summary::-webkit-details-marker{ display:none; }
.gsu-faq summary::after{ content:"+"; position:absolute; right:18px; top:50%; transform:translateY(-54%);
  font-size:1.7rem; font-weight:400; color:var(--red); font-family:var(--body); }
.gsu-faq[open]{ border-left-color:var(--red); }
.gsu-faq[open] summary{ border-bottom:1px solid var(--line); }
.gsu-faq[open] summary::after{ content:"\2212"; }
.gsu-faq-a{ padding:15px 20px 17px; font-size:.97rem; color:#222C3A; }
.gsu-faq-a p{ margin:0 0 .8rem; } .gsu-faq-a p:last-child{ margin:0; }

/* ================== Responsible-gambling / footer band =================== */
.gsu-rg{ display:flex; align-items:center; gap:18px; flex-wrap:wrap; margin:36px 0 30px;
  background:var(--blue); border-radius:var(--r); padding:22px 30px; color:#D7E3F4;
  border-top:5px solid var(--red); }
.gsu-rg-ico{ flex:0 0 auto; width:46px; height:46px; border-radius:50%; background:rgba(255,255,255,.12);
  display:flex; align-items:center; justify-content:center; }
.gsu-rg-ico .gsu-i{ width:24px; height:24px; color:#fff; }
.gsu-rg-b{ flex:1 1 420px; font-size:.92rem; }
.gsu-rg-b strong{ color:#fff; font-size:1.04rem; }
.gsu-rg-num{ font-family:var(--display); font-weight:800; font-size:1.6rem; color:#fff; white-space:nowrap; }
.gsu-rg-num span{ color:var(--gold); }
.gsu-updated{ text-align:center; color:var(--slate); font-size:.86rem; margin:0 0 36px; }

/* ======================= Utility / layout ================================ */
.gsu-grid2{ display:grid; grid-template-columns:1fr 1fr; gap:24px; align-items:start; }
.gsu-grid3{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.gsu-center{ text-align:center; }
.gsu-mt0{ margin-top:0 !important; }

/* Category grid 2-up variant (long-copy cards) */
.gsu-cats--2{ grid-template-columns:repeat(2,1fr); }

/* "More guides" strip */
.gsu-more{ display:flex; flex-wrap:wrap; align-items:center; gap:10px 16px; margin:18px 0 4px;
  padding:14px 18px; background:var(--wash); border:1px solid var(--line); border-radius:var(--r-sm); font-size:.93rem; }
.gsu-more-k{ font-family:var(--display); font-weight:700; text-transform:uppercase; letter-spacing:.1em;
  color:var(--blue); font-size:.86rem; }
.gsu-more a{ font-weight:600; display:inline-flex; align-items:center; gap:6px; }
.gsu-more a .gsu-i{ width:11px; height:11px; color:var(--red); }

/* Breadcrumb (subpages -> homepage) */
.gsu-crumb{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin:14px 0 0;
  font-size:.88rem; color:var(--slate); }
.gsu-crumb a{ display:inline-flex; align-items:center; gap:6px; font-weight:600; color:var(--blue-3); }
.gsu-crumb a .gsu-i{ width:12px; height:12px; color:var(--red); }
.gsu-crumb i{ font-style:normal; color:var(--line-2); }

/* ====================== Review cards (short reviews) ===================== */
.gsu-rev{ margin:22px 0; background:#fff; border:1px solid var(--line); border-radius:var(--r);
  box-shadow:var(--shadow); overflow:hidden; }
.gsu-rev-h{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; padding:14px 22px;
  background:var(--wash); border-bottom:2px solid var(--blue); }
.gsu-rev--off .gsu-rev-h{ border-bottom-color:var(--red); }
.gsu-rev-rank{ flex:0 0 auto; font-family:var(--display); font-weight:800; font-size:1.25rem; color:#fff;
  background:var(--blue); min-width:38px; height:38px; padding:0 8px; display:flex; align-items:center;
  justify-content:center; border-radius:var(--r-sm); }
.gsu-rev--off .gsu-rev-rank{ background:var(--red); }
.gsu-rev-h h3{ margin:0; padding-left:0; font-size:1.5rem; }
.gsu-rev-h h3::before{ display:none; }
.gsu-rev-h .gsu-badge{ margin-left:auto; }
.gsu-rev-b{ padding:18px 22px 20px; }
.gsu-rev-b p{ margin:0; }
.gsu-rev-b p + p{ margin-top:.9rem; }
.gsu-rev-f{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; padding:14px 22px;
  border-top:1px solid var(--line); background:linear-gradient(180deg,#fff,var(--wash)); }
.gsu-rev-f .gsu-btn{ font-size:.95rem; padding:10px 18px 9px; }
.gsu-rev-tag{ font-size:.88rem; color:var(--slate); font-weight:600; }

/* ============================ Responsive ================================= */
@media (max-width:1180px){
  .gsu-cats{ grid-template-columns:repeat(2,1fr); }
  .gsu-tgrid{ grid-template-columns:repeat(3,1fr); }
  .gsu-toc ol{ column-count:2; }
  .gsu-hero-l h1{ font-size:2.7rem; }
}
@media (max-width:900px){
  .gsu-hero{ grid-template-columns:1fr; }
  .gsu-facts{ margin:0 26px 26px; }
  .gsu-vs{ grid-template-columns:1fr; }
  .gsu-vs-col + .gsu-vs-col{ border-left:none; border-top:1px solid var(--line); }
  .gsu-tgrid{ grid-template-columns:repeat(2,1fr); }
  .gsu-grid2{ grid-template-columns:1fr; }
  .gsu-pc{ grid-template-columns:1fr; }
  ul.gsu-list--cols{ column-count:1; }
  .gsu-section{ padding:26px 22px 28px; }
  .gsu-sh h2{ font-size:1.7rem; }
  .gsu-sh-go{ display:none; }
}
@media (max-width:600px){
  .gsu-page{ font-size:16px; }
  .gsu-rev-h h3{ font-size:1.2rem; }
  .gsu-rev-h .gsu-badge{ margin-left:0; }
  .gsu-hero-l{ padding:36px 24px 30px; }
  .gsu-hero-l h1{ font-size:2.15rem; }
  .gsu-cats{ grid-template-columns:1fr; }
  .gsu-tgrid{ grid-template-columns:1fr; }
  .gsu-toc ol{ column-count:1; }
  .gsu-fact{ flex-direction:column; gap:10px; }
  .gsu-table th,.gsu-table td{ padding:10px 12px; }
  .gsu-sh{ flex-wrap:wrap; gap:12px; }
}
@media (prefers-reduced-motion:reduce){
  .gsu-page *{ transition:none !important; }
}
