/* ==================================================
   Global CSS Variables (Theme Colors)
   Same variable names as base-template for preset compatibility
   ================================================== */
:root {
  --background-body: #f3f9fd;
  --background-alt: #203863;
  --text-main: #172034;
  --links: #1d222f;
  --text-on-alt: #fffdfd;
  --button-base: #2165ed;
  --button-hover: #1b4dda;
  --login-btn-bg: #203661;
  --login-btn-color: #ffffff;
  --login-btn-border: none;
  --registr-btn-gradient: linear-gradient(270deg, #3b86f3 100%, #2366ed 0%);
  --registr-btn-color: #fdffff;
  --main-btn-gradient: linear-gradient(270deg, #3e7ef5 100%, #2865ed 0%);
  --main-btn-color: #fffffe;
  --transition-speed: 0.3s;
  --text-muted: rgba(0, 0, 0, 0.55);
  --text-accent: #194ad9;
  --border-color: rgba(0, 0, 0, 0.12);
  --border-accent: #2266e7;
  --card-bg: rgba(37, 99, 235, 0.05);
  --card-shadow: 0 4px 20px rgba(0,0,0,0.06);
  --star-empty: #c0d3ed;
  --table-scrollbar-color: #5ea5f7;
  --table-scrollbar-hover: #2263ec;

  /* Semantic status colors — NOT repainted by Theme Colors / palette engine
     (applyCssVariables only rewrites known palette keys, leaves these intact).
     Used by review content blocks: pros/cons, expert-tip callouts, score badge,
     and later traffic-light tables. Picked to read on both dark and light themes. */
  --positive: #27c281;
  --negative: #ef4b4b;
  --warning: #f0b429;
  --info: #3b9ae1;
}

/* ==================================================
   Water.css Overrides
   ================================================== */
header, main, footer, .c-c35946 {
  max-width: 100% !important;
  margin: 0 !important;
}

/* ==================================================
   Global Reset & Base Styles
   ================================================== */
html {
  max-width: 100vw;
  overflow-x: hidden;
}

*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

body {
  background: var(--background-body);
  color: var(--text-main);
  font-family: Arial, sans-serif;
  line-height: 1.6;
  overflow-x: hidden;
}

a {
  text-decoration: none;
  cursor: pointer;
  color: var(--text-accent);
}

a:hover {
  text-decoration: underline;
}

p {
  margin: 10px 0;
}

img {
  max-width: 100%;
  height: auto;
}

ul, ol {
  margin: 20px 30px;
}

/* ==================================================
   Entry Content Wrapper
   ================================================== */
.c-abd5d6 {
  max-width: 1110px;
  margin: 0 auto;
  padding: 0 20px;
}

/* ==================================================
   HEADER
   ================================================== */
header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  background: var(--background-alt);
  z-index: 1000;
  height: 66px;
  padding: 0 20px;
}

.c-0a617f {
  display: none;
}

.c-40627c {
  max-width: 1310px;
  margin: 0 auto;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-right: 80px;
}

.c-b1be55 img {
  max-height: 50px;
  width: auto;
}

.c-582981 {
  flex: 1;
  display: flex;
  justify-content: center;
  align-items: center;
}

.c-582981 ul {
  list-style: none;
  display: flex;
  gap: 20px;
  margin: 0;
  padding: 0;
}

.c-582981 ul li a {
  /* the header is filled with --background-alt, and only --text-on-alt stays
     readable there in mixed palettes (light page + dark band) — see rule 194c */
  color: var(--text-on-alt);
  font-weight: 600;
  transition: color var(--transition-speed);
}

.c-582981 ul li a:hover {
  text-decoration: underline;
}

.c-4f6f31 {
  display: flex;
  align-items: center;
  gap: 8px;
}

.c-76d5aa {
  display: flex;
  align-items: center;
  gap: 8px;
}

/* ---------- Bonus Button (header CTA) ---------- */
.c-7e123c {
  background: var(--registr-btn-gradient);
  color: var(--registr-btn-color);
  padding: 12px 24px;
  font-size: 16px;
  font-weight: 700;
  border-radius: 8px;
  text-transform: uppercase;
  animation: pulse-main 2s infinite;
  transition: background var(--transition-speed);
  white-space: nowrap;
  text-decoration: none;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: none;
}

.c-7e123c:hover {
  background: var(--button-hover);
  text-decoration: none;
}

/* Pulse Animation */
@keyframes pulse-main {
  0% {
    transform: scale(0.95);
    box-shadow: 0 0 0 0 var(--button-base);
  }
  70% {
    transform: scale(1);
    box-shadow: 0 4px 24px 0 var(--button-hover);
  }
  100% {
    transform: scale(0.95);
    box-shadow: 0 0 0 0 transparent;
  }
}

/* Burger Icon */
.c-40e7cc {
  display: none;
  flex-direction: column;
  justify-content: space-between;
  width: 38px;
  height: 38px;
  cursor: pointer;
  background: var(--login-btn-bg);
  padding: 8px;
  gap: 8px;
  border-radius: 6px;
  position: absolute;
  top: 50%;
  right: 20px;
  transform: translateY(-50%);
}

.c-40e7cc span {
  display: block;
  height: 3px;
  width: 100%;
  background: var(--login-btn-color);
  border-radius: 2px;
  transition: transform var(--transition-speed), opacity var(--transition-speed);
}

/* ==================================================
   Mobile & Tablet (max-width: 1023px)
   ================================================== */
@media (max-width: 1023px) {
  .c-40627c {
    justify-content: space-between;
    padding-right: 40px;
  }

  .c-582981 {
    display: none;
  }

  .c-40e7cc {
    display: flex;
  }

  .c-28ea91 {
    display: none;
    position: fixed;
    top: 0;
    right: 0;
    width: 280px;
    height: 100vh;
    background: var(--background-alt);
    flex-direction: column;
    padding-top: 60px;
    transition: transform 0.3s ease;
    z-index: 999;
  }

  .c-28ea91 ul {
    list-style: none;
    display: flex;
    flex-direction: column;
    margin: 0;
    padding: 0;
  }

  .c-28ea91 ul li {
    border-bottom: 1px solid var(--border-color);
  }

  .c-28ea91 ul li a {
    padding: 18px 20px;
    font-size: 18px;
    color: var(--text-on-alt);
    text-align: left;
    display: flex;
    align-items: center;
    justify-content: space-between;
  }

  .c-28ea91 ul li a::after {
    content: "";
    border: 5px solid transparent;
    border-left: 5px solid var(--text-on-alt);
  }

  .c-9ba120 {
    padding: 20px;
  }

  .c-9ba120 .c-7e123c {
    width: 100%;
    text-align: center;
  }

  .c-0a617f:checked ~ .c-28ea91 {
    display: flex;
  }

  .c-0a617f:checked ~ .c-40627c .c-40e7cc span:nth-child(1) {
    transform: rotate(45deg) translate(5px, 4px);
  }

  .c-0a617f:checked ~ .c-40627c .c-40e7cc span:nth-child(2) {
    opacity: 0;
  }

  .c-0a617f:checked ~ .c-40627c .c-40e7cc span:nth-child(3) {
    transform: rotate(-45deg) translate(5px, -5px);
  }

  .c-ed142b {
    position: absolute;
    top: 10px;
    right: 20px;
    font-size: 28px;
    color: var(--text-on-alt);
    cursor: pointer;
    z-index: 1001;
  }
}

/* ==================================================
   Desktop (min-width: 1024px)
   ================================================== */
@media (min-width: 1024px) {
  .c-582981 {
    display: flex !important;
    position: static;
    height: auto;
    background: none;
    padding: 0;
  }

  .c-28ea91 {
    display: none !important;
  }

  .c-40e7cc {
    display: none;
  }
}

/* ==================================================
   Small Devices (max-width: 767px)
   ================================================== */
@media (max-width: 767px) {
  header {
    height: 54px;
  }

  .c-b1be55 img {
    max-height: 40px;
  }

  .c-7e123c {
    padding: 8px 16px;
    font-size: 14px;
  }
}

/* ==================================================
   Main Content Padding (fixed header offset)
   ================================================== */
main {
  padding-top: 80px;
}

@media (max-width: 767px) {
  main {
    padding-top: 64px;
  }
}

/* ==================================================
   Breadcrumb Navigation
   ================================================== */
.c-824c9d {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  list-style: none;
  margin: 0 0 20px 0;
  padding: 10px 0;
  font-size: 14px;
}

.c-824c9d li {
  display: flex;
  align-items: center;
  margin: 0;
  padding: 0;
}

.c-824c9d li a {
  color: var(--links);
  opacity: 0.8;
  transition: opacity var(--transition-speed);
  text-decoration: none;
}

.c-824c9d li a:hover {
  opacity: 1;
  text-decoration: underline;
}

.c-824c9d li:not(:last-child)::after {
  content: "-";
  margin: 0 8px;
  color: var(--links);
  opacity: 0.6;
}

.c-824c9d li:last-child span {
  color: var(--text-accent);
}

@media (max-width: 767px) {
  .c-824c9d {
    padding: 8px 0;
    font-size: 12px;
  }

  .c-824c9d li:not(:last-child)::after {
    margin: 0 5px;
  }
}

/* ==================================================
   Review Hero Section
   ================================================== */
.c-73ca15 {
  margin-bottom: 40px;
}

.c-768780 {
  font-size: 60px;
  font-weight: 800;
  line-height: 1.1;
  text-align: center;
  margin: 0 0 30px 0;
  color: var(--text-main);
}

@media (max-width: 1023px) {
  .c-768780 {
    font-size: 40px;
  }
}

@media (max-width: 767px) {
  .c-768780 {
    font-size: 26px;
    margin-bottom: 20px;
  }
}

/* Author Block */
.c-31be7b {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
}

.c-1ac288 {
  margin: 0;
  flex-shrink: 0;
}

.c-1fd107 {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: var(--registr-btn-gradient);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  font-weight: 700;
  color: var(--registr-btn-color);
}

.c-1ac288 img {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  object-fit: cover;
}

.c-a7e1ba {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.c-6bf6f6 {
  font-size: 15px;
  font-weight: 600;
  color: var(--text-main);
  display: flex;
  align-items: center;
  gap: 4px;
}

.c-0593bd {
  display: inline-flex;
  margin: 0;
  flex-shrink: 0;
}

.c-0593bd img {
  width: 16px;
  height: 16px;
  vertical-align: middle;
}

.c-eba872 {
  font-size: 13px;
  color: var(--text-muted);
}

/* Hero Text */
.c-cfed2f {
  margin-top: 20px;
  font-size: 16px;
  line-height: 1.7;
}

.c-cfed2f p {
  margin: 10px 0;
}

/* ==================================================
   Affiliate Disclosure
   ================================================== */
.c-79aae7 {
  display: inline-block;
  background: var(--card-bg);
  border: 1px solid var(--border-color);
  border-radius: 6px;
  padding: 6px 12px;
  margin-top: 12px;
}

/* The whole chip is the trigger, not just the 20px "i" circle: a reader hovers the
   WORD. The icon keeps its own hover/focus/active rules below for the keyboard and
   for older builds. */
.c-5d2067 {
  font-size: 13px;
  color: var(--text-muted);
  display: flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
  position: relative;
}

.c-a25735 {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  border: 1px solid var(--border-color);
  font-size: 12px;
  cursor: pointer;
  position: relative;
  color: var(--text-muted);
  user-select: none;
  flex-shrink: 0;
}

.c-13941d {
  display: none;
  position: absolute;
  top: calc(100% + 8px);
  left: 50%;
  transform: translateX(-50%);
  width: 280px;
  padding: 12px 14px;
  background: var(--background-alt);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  font-size: 12px;
  line-height: 1.5;
  color: var(--text-on-alt);
  box-shadow: var(--card-shadow);
  z-index: 100;
  text-align: left;
  font-weight: 400;
}

.c-13941d::before {
  content: '';
  position: absolute;
  top: -6px;
  left: 50%;
  transform: translateX(-50%);
  width: 10px;
  height: 10px;
  background: var(--background-alt);
  border-left: 1px solid var(--border-color);
  border-top: 1px solid var(--border-color);
  transform: translateX(-50%) rotate(45deg);
}

.c-5d2067:hover .c-13941d,
.c-5d2067.active .c-13941d,
.c-a25735:hover .c-13941d,
.c-a25735:focus .c-13941d,
.c-a25735.active .c-13941d {
  display: block;
}

@media (max-width: 767px) {
  .c-13941d {
    left: auto;
    right: -10px;
    transform: none;
    width: 250px;
  }

  .c-13941d::before {
    left: auto;
    right: 14px;
    transform: rotate(45deg);
  }
}

/* ==================================================
   Content Section
   ================================================== */
.c-d1742b {
  max-width: 1110px;
  margin: 30px auto;
  padding: 0;
}

.c-d1742b h2 {
  margin: 30px 0 15px;
  font-size: 28px;
}

.c-d1742b h3 {
  margin: 25px 0 12px;
  font-size: 22px;
}

.c-d1742b p {
  margin: 10px 0;
  line-height: 1.7;
}

.c-d1742b img {
  border-radius: 8px;
  margin: 15px 0;
}

/* ==================================================
   Table Rate (Casino Ratings)
   ================================================== */
.c-b7bfd4 {
  counter-reset: table-row;
  max-width: 1110px;
  margin: 30px auto;
}

/* Support <table> rendered as flex rows */
.c-b7bfd4 table {
  width: 100%;
  border-spacing: 0;
  border-collapse: separate;
  margin: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.c-b7bfd4 thead {
  display: none;
}

.c-b7bfd4 tbody {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.c-b7bfd4 tr,
.c-b7bfd4 .c-662485 {
  display: grid;
  /* counter | logo | name+bonus | CTA (score is an absolute top-right badge) */
  grid-template-columns: 32px 166px minmax(0, 1fr) auto;
  align-items: center;
  gap: 16px;
  padding: 16px 20px;
  border-radius: 10px;
  background: var(--background-alt);
  border: 1px solid var(--border-color); /* rows merge into the body bg on dark palettes without this */
  cursor: pointer;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  counter-increment: table-row;
  position: relative;
}

.c-b7bfd4 tr:hover,
.c-b7bfd4 .c-662485:hover {
  transform: translateY(-2px);
  box-shadow: var(--card-shadow);
}

.c-b7bfd4 td {
  display: block;
  border: none !important;
  padding: 0 !important;
  background: transparent !important;
  color: var(--text-on-alt) !important;
}

/* Position counter (::before) */
.c-b7bfd4 tr::before,
.c-b7bfd4 .c-662485::before {
  content: counter(table-row);
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--login-btn-bg);
  color: var(--login-btn-color);
  font-weight: 700;
  font-size: 14px;
  flex-shrink: 0;
}

/* Top 3 rows: gradient counter */
.c-b7bfd4 tr:nth-child(-n+3)::before,
.c-b7bfd4 .c-662485:nth-child(-n+3)::before {
  background: var(--registr-btn-gradient);
  color: var(--registr-btn-color);
}

/* First row: gradient border via background-clip trick */
.c-b7bfd4 tr:first-child,
.c-b7bfd4 .c-662485:first-child {
  background:
    linear-gradient(var(--background-alt), var(--background-alt)) padding-box,
    var(--registr-btn-gradient) border-box;
  border: 2px solid transparent;
}

/* Logo cell */
.c-b7bfd4 .c-324552 img,
.c-b7bfd4 td img {
  width: 166px;
  height: 98px;
  object-fit: contain;
  border-radius: 10px;
  border: 1px solid var(--border-color);
  background: #fff;
}

/* Info area */
.c-b7bfd4 .c-95bd4e {
  font-size: 18px;
  font-weight: 700;
  color: var(--text-on-alt);
}

.c-b7bfd4 .c-7c2363 {
  font-size: 14px;
  color: var(--text-muted);
  margin-top: 4px;
}

.c-b7bfd4 .c-6cc1e0 {
  font-size: 14px;
  color: var(--text-accent);
  margin-top: 4px;
}

/* CTA button inside table-rate (scoped to .c-1939da — the small review link is NOT a button) */
.c-b7bfd4 .c-1939da,
.c-b7bfd4 .c-f03984 a.c-1939da {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 181px;
  height: 46px;
  padding: 0 24px;
  border-radius: 6px;
  background: var(--registr-btn-gradient);
  color: var(--registr-btn-color);
  font-size: 15px;
  font-weight: 700;
  text-decoration: none;
  text-transform: uppercase;
  transition: transform 0.2s ease;
  white-space: nowrap;
  flex-shrink: 0;
  cursor: pointer;
  border: none;
}

.c-b7bfd4 .c-1939da:hover,
.c-b7bfd4 .c-f03984 a.c-1939da:hover {
  transform: scale(1.03);
  text-decoration: none;
}

/* Table-rate mobile */
@media (max-width: 767px) {
  .c-b7bfd4 tr,
  .c-b7bfd4 .c-662485 {
    grid-template-columns: 1fr;
    justify-items: center;
    text-align: center;
    padding: 20px 16px;
    gap: 12px;
  }

  .c-b7bfd4 tr::before,
  .c-b7bfd4 .c-662485::before {
    position: absolute;
    top: 12px;
    left: 12px;
    min-width: 28px;
    height: 28px;
    font-size: 12px;
  }

  .c-b7bfd4 .c-324552 img,
  .c-b7bfd4 td img {
    width: 140px;
    height: 82px;
  }

  .c-b7bfd4 .c-1939da,
  .c-b7bfd4 .c-f03984 a.c-1939da {
    width: 100%;
    min-width: unset;
  }
}

/* ==================================================
   Table Styles - Override Water.css (generic tables)
   ================================================== */
table {
  border-collapse: collapse !important;
  width: 100% !important;
  margin: 30px auto !important;
  background: var(--background-alt) !important;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

th {
  background: var(--registr-btn-gradient) !important;
  color: var(--registr-btn-color) !important;
  font-weight: 600 !important;
  padding: 12px 15px !important;
  text-align: left !important;
}

td {
  padding: 12px 15px !important;
  border-bottom: 1px solid var(--border-color) !important;
  color: var(--text-on-alt) !important;
  background: transparent !important;
}

tbody tr:nth-child(2n) {
  background: rgba(255,255,255,0.03) !important;
}

tbody tr:hover {
  background: rgba(255,255,255,0.06) !important;
  transition: background var(--transition-speed) !important;
}

/* Table Wrapper (responsive scrolling) */
.c-590b14 {
  overflow-x: auto;
  margin: 30px auto;
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
  -webkit-overflow-scrolling: touch;
  max-width: 100%;
}

.c-590b14 table {
  margin: 0 !important;
  box-shadow: none !important;
  min-width: 700px;
}

.c-590b14::-webkit-scrollbar {
  height: 8px;
}

.c-590b14::-webkit-scrollbar-track {
  background: rgba(255, 255, 255, 0.1);
  border-radius: 4px;
}

.c-590b14::-webkit-scrollbar-thumb {
  background: var(--table-scrollbar-color);
  border-radius: 4px;
}

.c-590b14::-webkit-scrollbar-thumb:hover {
  background: var(--table-scrollbar-hover);
}

/* ==================================================
   Table of Contents — minimalist text-level block (operator 2026-08-27:
   no card background, must NOT read as another big panel next to the
   casino table). Sits on the page background → body-pair vars only
   (--links / --text-accent); --text-on-alt belongs to alt-background
   surfaces (rule 58) and left this block together with the card.
   Classes/attributes (toc-wrapper/toc-container/toc-toggle/.toc[hidden])
   unchanged — the pages.js #4/#5 contract is untouched. The <button>
   resets every box prop explicitly: water.c-da3940.css paints buttons (incl.
   :hover) with --button-base/--button-hover (rule 194a).
   ================================================== */
.c-4c27fc {
  max-width: 1110px;
  margin: 30px auto;
}

.c-b3a3c5 {
  background: none;
  border: none;
  border-radius: 0;
  padding: 0;
  box-shadow: none;
}

.c-4d20bd {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  width: auto;
  margin: 0 0 12px;
  padding: 0;
  background: none;
  border: none;
  border-radius: 0;
  box-shadow: none;
  color: var(--links);
  font-weight: 600;
  font-size: 15px;
  text-decoration: underline;
  text-underline-offset: 4px;
  cursor: pointer;
}

.c-4d20bd:hover {
  background: none;
  box-shadow: none;
  transform: none;
  color: var(--text-accent);
}

.c-e95c9c {
  background: none;
  border: none;
  border-radius: 0;
  padding: 0;
}

.c-e95c9c[hidden] {
  display: none;
}

.c-e95c9c ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 2px 36px;
}

@media (min-width: 768px) {
  .c-e95c9c ul {
    grid-template-columns: 1fr 1fr;
  }
}

.c-e95c9c ul li {
  position: relative;
  padding-left: 16px;
}

/* small accent tick instead of a bullet (no default list/box props) */
.c-e95c9c ul li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.85em;
  width: 7px;
  height: 2px;
  background: var(--text-accent);
}

.c-e95c9c ul li a {
  display: inline-block;
  padding: 3px 0;
  background: none;
  border: none;
  color: var(--links);
  text-decoration: none;
  font-size: 15px;
}

.c-e95c9c ul li a:hover {
  color: var(--text-accent);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.c-e95c9c ul ul {
  margin: 2px 0 0;
  padding-left: 14px;
  grid-template-columns: 1fr;
  gap: 2px;
}

.c-e95c9c ul ul li a {
  font-size: 14px;
  padding: 2px 0;
}

@media (max-width: 767px) {
  .c-4c27fc {
    margin: 20px auto;
  }

  .c-e95c9c ul {
    grid-template-columns: 1fr;
    gap: 2px;
  }
}

/* ==================================================
   In-article images (Image plan / rendered infographics). The review template had
   NO rule for these — an authored <figure><img class="article-img" width="1536">
   then overflowed the 1110px column and pushed a horizontal scrollbar. Mirror of
   the base/prestige rule (CLAUDE.md 215): width/height stay in the markup so the
   box is reserved (CLS), CSS scales it down to the column.
   ================================================== */
figure {
  margin: 30px 0;
}

figure img,
.c-f93a98 {
  width: 100%;
  height: auto;
  border-radius: 10px;
}

figcaption {
  margin-top: 8px;
  font-size: 14px;
  line-height: 1.55;
  color: var(--text-muted);
  text-align: center;
}

/* ==================================================
   Lead photo (Review Settings → Lead image): below the TOC, before the article
   ================================================== */
.c-36ced0 {
  max-width: 1110px;
  margin: 30px auto;
}

.c-36ced0 img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 15px;
}

/* ==================================================
   Best Games / Providers Grid
   ================================================== */
.c-cfd6e9 {
  max-width: 1110px;
  margin: 40px auto;
}

.c-cfd6e9 h2 {
  text-align: center;
  margin-bottom: 24px;
  font-size: 28px;
}

.c-4dfedd,
.c-cfd6e9 ul {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.c-d9c51d,
.c-cfd6e9 li {
  background: var(--background-alt);
  border-radius: 12px;
  overflow: hidden;
  transition: transform 0.3s ease;
  text-align: center;
  padding: 12px;
}

.c-d9c51d:hover,
.c-cfd6e9 li:hover {
  transform: scale(1.03);
}

.c-78583e img,
.c-cfd6e9 li img {
  width: 100%;
  height: auto;
  border-radius: 8px;
  aspect-ratio: 1;
  object-fit: cover;
}

.c-1b78c2,
.c-cfd6e9 li span {
  display: block;
  margin-top: 8px;
  font-size: 14px;
  color: var(--text-muted);
  font-weight: 600;
}

@media (max-width: 1023px) {
  .c-4dfedd,
  .c-cfd6e9 ul {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (max-width: 767px) {
  .c-4dfedd,
  .c-cfd6e9 ul {
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
  }

  .c-d9c51d,
  .c-cfd6e9 li {
    padding: 8px;
  }
}

/* ==================================================
   FAQ Section
   ================================================== */
.c-397f80 {
  max-width: 1110px;
  margin: 40px auto;
}

.c-397f80 h2 {
  font-size: 28px;
  margin-bottom: 20px;
}

.c-397f80 h3 {
  font-size: 18px;
  padding: 16px 0;
  border-bottom: 1px solid var(--border-color);
  cursor: default;
}

.c-397f80 h3 + p,
.c-397f80 h3 + div {
  padding: 12px 0;
  line-height: 1.7;
  color: var(--text-muted);
}

/* ==================================================
   Main Button (CTA in content)
   ================================================== */
.c-90b700 {
  display: flex;
  align-items: center;
  justify-content: center;
  max-width: 320px;
  width: 100%;
  height: 70px;
  margin: 20px auto;
  border-radius: 10px;
  background: var(--main-btn-gradient);
  color: var(--main-btn-color);
  font-size: 20px;
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
  border: none;
  transition: transform 0.3s ease-in-out, box-shadow 0.3s ease-in-out;
  animation: pulse-main 2s infinite;
}

.c-90b700:hover {
  transform: scale(1.02);
  text-decoration: none;
}

/* ==================================================
   Last Updated
   ================================================== */
.c-9a5ae5 {
  margin: 40px 0 20px;
  font-size: 14px;
  color: var(--text-muted);
}

.c-9a5ae5 strong {
  color: var(--text-main);
}

/* ==================================================
   Footer
   ================================================== */
.c-c35946 {
  max-width: 100% !important;
}

.c-50bda7 {
  background: var(--background-alt);
  color: var(--text-on-alt);
  padding: 30px 0 20px;
  text-align: center;
  margin-top: 30px;
}

/* Footer Nav (ul-based) */
.c-258c84 {
  margin-bottom: 20px;
  padding: 0 15px;
}

.c-ae1538 {
  list-style: none;
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0;
  margin: 0;
  padding: 0;
}

.c-ae1538 li {
  margin: 0;
  padding: 0;
}

.c-ae1538 li a {
  /* .c-50bda7 is --background-alt (rule 194c) — de-emphasis via opacity, not
     a second colour; --button-base on hover was unreadable on 32/45 palettes */
  color: var(--text-on-alt);
  opacity: 0.85;
  padding: 8px 15px;
  transition: opacity var(--transition-speed);
  font-size: 0.9rem;
  text-decoration: none;
  position: relative;
}

.c-ae1538 li a:hover {
  opacity: 1;
  text-decoration: underline;
}

.c-ae1538 li:not(:last-child) a::after {
  content: "|";
  position: absolute;
  right: -3px;
  color: var(--text-on-alt);
  opacity: 0.4;
}

@media (max-width: 767px) {
  .c-ae1538 {
    flex-direction: column;
    align-items: center;
    gap: 0;
  }

  .c-ae1538 li a {
    padding: 6px 10px;
    display: block;
  }

  .c-ae1538 li:not(:last-child) a::after {
    display: none;
  }
}

/* Footer Images / Trust Logos */
.c-50bda7 .c-5a148a {
  margin-bottom: 20px;
}

.c-50bda7 .c-5a148a .c-96458e {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 20px;
}

.c-50bda7 .c-5a148a .c-96458e .c-e333c8 img {
  max-width: 120px;
  height: auto;
  border-radius: 10px;
  transition: transform 0.3s ease;
}

.c-50bda7 .c-5a148a .c-96458e .c-e333c8 img:hover {
  transform: scale(1.05);
}

/* Per-file nudge: these regulator PNGs carry baked-in bottom whitespace and ride up
   in the flex row — same fix as the base template (attribute selectors, so the CSS
   obfuscator never touches them) */
img[src*="gioco-responsabile"] { margin-top: 15px; }
img[src*="spielsuchthilfe"] { margin-top: 10px; }

/* Copyright */
.c-50bda7 .c-009910 {
  font-size: 0.9rem;
}

.c-50bda7 .c-a5cb22 {
  /* footer is filled with --background-alt, and --text-muted equals that band on the four light
     presets whose --text-main IS --background-alt (rule 194c) */
  color: var(--text-on-alt);
  opacity: 0.75;
}

/* ==================================================
   Two-Column Text Blocks
   ================================================== */
.c-ceab4b {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 30px;
  margin: 30px 0;
  padding: 20px;
  background: rgba(255, 255, 255, 0.02);
  border-radius: 8px;
  border-left: 4px solid var(--button-base);
}

.c-1c7fe6,
.c-d1b8fb {
  display: flex;
  flex-direction: column;
  gap: 15px;
}

.c-1c7fe6 h4,
.c-d1b8fb h4 {
  margin: 0;
  color: var(--button-base);
  font-size: 16px;
  font-weight: 600;
}

.c-1c7fe6 p,
.c-d1b8fb p {
  margin: 0;
  line-height: 1.6;
  color: var(--text-main);
}

.c-1c7fe6 ul,
.c-d1b8fb ul,
.c-1c7fe6 ol,
.c-d1b8fb ol {
  margin: 0;
  padding-left: 0;
  list-style: none;
}

.c-1c7fe6 li,
.c-d1b8fb li {
  margin: 8px 0;
  line-height: 1.6;
  color: var(--text-main);
  padding-left: 25px;
  position: relative;
}

.c-1c7fe6 ul li::before,
.c-d1b8fb ul li::before {
  content: "\2713";
  position: absolute;
  left: 0;
  color: var(--button-base);
  font-weight: bold;
  font-size: 16px;
}

.c-1c7fe6 ol,
.c-d1b8fb ol {
  counter-reset: list-item;
}

.c-1c7fe6 ol li,
.c-d1b8fb ol li {
  counter-increment: list-item;
}

.c-1c7fe6 ol li::before,
.c-d1b8fb ol li::before {
  content: counter(list-item);
  position: absolute;
  left: 0;
  color: var(--button-base);
  font-weight: bold;
  font-size: 16px;
}

@media (max-width: 1023px) {
  .c-ceab4b {
    grid-template-columns: 1fr;
    gap: 20px;
  }
}

@media (max-width: 767px) {
  .c-ceab4b {
    padding: 15px;
    gap: 15px;
    border-left-width: 3px;
  }

  .c-1c7fe6 h4,
  .c-d1b8fb h4 {
    font-size: 15px;
  }
}

/* ==================================================
   Signup Image
   ================================================== */
.c-e00299 {
  display: block;
  margin: 30px auto;
  max-width: 100%;
  height: auto;
}

/* ==================================================
   Additional Responsive (max-width: 420px)
   ================================================== */
@media (max-width: 420px) {
  .c-768780 {
    font-size: 22px;
  }

  .c-abd5d6 {
    padding: 0 12px;
  }

  .c-d1742b h2 {
    font-size: 22px;
  }

  .c-d1742b h3 {
    font-size: 18px;
  }
}

/* ==================================================
   REVIEW CONTENT BLOCKS (Chunk 3a)
   Appended after content-section rules on purpose: blocks authored inside
   ARTICLE_TEXT live in .c-d1742b, so their <p>/text rules must come
   later in source order to win same-specificity ties (e.g. .c-d1742b p).
   All colors use existing palette vars + the 4 semantic status vars.
   ================================================== */

/* ---------- Hero-CTA Card (single-brand review — featured casino) ----------
   Classes emitted by build_site.py generate_hero_cta(). Logo is a manual slot:
   real <img> when the operator uploaded it, else .c-b8b06f. */
.c-197158 {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 24px;
  max-width: 1110px;
  margin: 0 auto 40px;
  padding: 24px 28px;
  border-radius: 14px;
  background:
    linear-gradient(var(--background-alt), var(--background-alt)) padding-box,
    var(--registr-btn-gradient) border-box;
  border: 2px solid transparent;
  box-shadow: var(--card-shadow);
}

.c-cb17bd img {
  width: 180px;
  height: 110px;
  object-fit: contain;
  border-radius: 10px;
  border: 1px solid var(--border-color);
  background: #fff;
}

.c-b8b06f {
  width: 180px;
  height: 110px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  border: 1px dashed var(--border-color);
  background: var(--card-bg);
  font-size: 48px;
  font-weight: 800;
  color: var(--text-on-alt);
}

.c-86543b {
  min-width: 0;
  display: flow-root; /* contain the floated score badge */
}

.c-436547 {
  margin-bottom: 6px;
  font-size: 22px;
  font-weight: 800;
  color: var(--text-on-alt);
}

.c-da66c2 {
  float: right;
  margin: 0 0 8px 16px;
  width: 62px;
  height: 62px;
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  line-height: 1;
  background: var(--background-body);
  border: 2px solid var(--positive);
}

.c-ef676b {
  font-size: 20px;
  font-weight: 800;
  color: var(--text-on-alt);
}

.c-3a336c {
  margin-top: 2px;
  font-size: 10px;
  color: var(--text-muted);
}

.c-e6974f {
  margin-bottom: 4px;
  font-size: 18px;
  font-weight: 700;
  color: var(--text-accent);
}

.c-928016 {
  margin-bottom: 10px;
  font-size: 13px;
  color: var(--text-muted);
}

.c-0766e0 {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.c-0e39ff {
  padding: 2px 8px;
  font-size: 12px;
  color: var(--text-muted);
  border: 1px solid var(--border-color);
  border-radius: 4px;
}

.c-4b3e50 {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}

.c-4b3e50 .c-7e123c {
  animation: none; /* the card is already prominent — avoid double pulse with header */
}

.c-2c69f3 {
  margin: 0;
  font-size: 11px;
  color: var(--text-muted);
  text-align: center;
}

@media (max-width: 767px) {
  .c-197158 {
    grid-template-columns: 1fr;
    text-align: center;
    gap: 16px;
    padding: 20px;
  }

  .c-cb17bd img,
  .c-b8b06f {
    margin: 0 auto;
  }

  .c-da66c2 {
    float: none;
    margin: 8px auto;
  }

  .c-0766e0 {
    justify-content: center;
  }

  .c-4b3e50 .c-7e123c {
    width: 100%;
  }
}

/* ---------- Pros & Cons (two-column, semantic colors) ---------- */
.c-b41bb5 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  max-width: 1110px;
  margin: 30px auto;
}

.c-c97a25,
.c-7b5835 {
  padding: 20px 22px;
  background: var(--background-alt);
  border-radius: 12px;
  border-top: 4px solid var(--border-color);
}

.c-c97a25 { border-top-color: var(--positive); }
.c-7b5835 { border-top-color: var(--negative); }

.c-c97a25 h3, .c-c97a25 h4,
.c-7b5835 h3, .c-7b5835 h4 {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 12px;
  font-size: 18px;
  color: var(--text-on-alt);
}

.c-c97a25 h3::before { content: "\2714"; color: var(--positive); }
.c-7b5835 h3::before { content: "\2716"; color: var(--negative); }

.c-c97a25 ul,
.c-7b5835 ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.c-c97a25 li,
.c-7b5835 li {
  position: relative;
  margin: 8px 0;
  padding-left: 26px;
  line-height: 1.6;
  color: var(--text-on-alt);
}

.c-c97a25 li::before {
  content: "\2714";
  position: absolute;
  left: 0;
  color: var(--positive);
  font-weight: 700;
}

.c-7b5835 li::before {
  content: "\2716";
  position: absolute;
  left: 0;
  color: var(--negative);
  font-weight: 700;
}

@media (max-width: 767px) {
  .c-b41bb5 {
    grid-template-columns: 1fr;
    gap: 14px;
  }
}

/* ---------- Expert-Tip Callouts (4 variants via modifier class) ----------
   <div class="expert-tip tip-pro"><span class="expert-tip__label">PRO Tip</span><p>..</p></div>
   Variants: tip-pro / tip-caution / tip-insider / tip-data. Emoji lives in the label text. */
.c-56c41b {
  max-width: 1110px;
  margin: 24px auto;
  padding: 16px 18px;
  background: var(--card-bg);
  border-left: 4px solid var(--info);
  border-radius: 0 10px 10px 0;
}

.c-2c3189 {
  display: block;
  margin-bottom: 6px;
  font-size: 14px;
  font-weight: 700;
  color: var(--text-main);
}

.c-56c41b p {
  margin: 0;
  line-height: 1.6;
  color: var(--text-muted);
}

.c-3e1f5e { border-left-color: var(--positive); }
.c-6f3dd8 { border-left-color: var(--warning); }
.c-3b5435 { border-left-color: var(--info); }
.c-3cfdf3 { border-left-color: var(--text-accent); }

/* ==================================================
   REVIEW CONTENT BLOCKS (Chunk 3b-1) — quick-facts, comparison, payout
   timeline, methodology, verdict, author box, RG notice, references, steps.
   Still appended after content-section so .c-28ed28 p rules win same-specificity
   ties over .c-d1742b p. Bonus-terms / payment tables reuse the generic
   <table> styling (the 🟢🟡🔴 traffic-light is emoji in the content).
   ================================================== */

/* ---------- Quick Facts (two data tables side by side) ---------- */
.c-43f42e {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  max-width: 1110px;
  margin: 30px auto;
}

.c-43f42e table {
  margin: 0 !important; /* the grid cell is the spacer; cancel generic table margin */
}

@media (max-width: 767px) {
  .c-43f42e { grid-template-columns: 1fr; gap: 14px; }
}

/* ---------- Comparison Table (reviewed casino = column 2, highlighted) ---------- */
.c-f9378b th:nth-child(2) {
  box-shadow: inset 0 -3px 0 var(--text-accent);
}

.c-f9378b td:nth-child(2) {
  /* this cell is filled with the PAGE colour, so it must switch to the body pair:
     the generic `td` rule paints --text-on-alt for the alt-filled table, which
     here is white text on a light card (1.00:1 on the light presets) */
  background: var(--background-body) !important;
  color: var(--text-main) !important;
  font-weight: 700;
}

/* ---------- Payout Timeline (steps with arrow connectors) ---------- */
.c-39df15 {
  display: flex;
  flex-wrap: wrap;
  max-width: 1110px;
  margin: 24px auto;
}

.c-a561d4 {
  flex: 1;
  min-width: 120px;
  position: relative;
  padding: 14px 12px;
  text-align: center;
  background: var(--background-alt);
  border-radius: 10px;
}

.c-a561d4:not(:last-child) { margin-right: 28px; }

.c-a561d4:not(:last-child)::after {
  content: "\2192"; /* arrow right */
  position: absolute;
  right: -22px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--text-accent);
  font-size: 18px;
}

.c-6934eb { display: block; font-weight: 700; color: var(--text-on-alt); }
.c-41c878 { display: block; margin-top: 4px; font-size: 12px; color: var(--text-on-alt); opacity: 0.8; }

@media (max-width: 767px) {
  .c-39df15 { flex-direction: column; }
  .c-a561d4:not(:last-child) { margin-right: 0; margin-bottom: 28px; }
  .c-a561d4:not(:last-child)::after {
    content: "\2193"; /* arrow down */
    right: auto; left: 50%; top: auto; bottom: -22px;
    transform: translateX(-50%);
  }
}

/* ---------- Methodology Box (how we scored) ---------- */
.c-7ab03f {
  max-width: 1110px;
  margin: 24px auto;
  padding: 18px 20px;
  background: var(--background-alt);
  border-radius: 12px;
  border-left: 4px solid var(--text-accent);
}

.c-7ab03f h3 { margin: 0 0 8px; font-size: 16px; color: var(--text-on-alt); }
.c-7ab03f p { margin: 6px 0; line-height: 1.6; color: var(--text-on-alt); }
.c-7ab03f ul { margin: 8px 0 0; padding-left: 22px; }
.c-7ab03f li { margin: 4px 0; color: var(--text-on-alt); }

/* ---------- Verdict Card (score + best-for / weak-on / avoid-if) ---------- */
.c-e31d3c {
  display: flex;
  gap: 20px;
  align-items: flex-start;
  max-width: 1110px;
  margin: 30px auto;
  padding: 24px;
  border-radius: 14px;
  background:
    linear-gradient(var(--background-alt), var(--background-alt)) padding-box,
    var(--registr-btn-gradient) border-box;
  border: 2px solid transparent;
  box-shadow: var(--card-shadow);
}

.c-f50ae7 {
  flex-shrink: 0;
  width: 84px;
  height: 84px;
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  line-height: 1;
  background: var(--background-body);
  border: 3px solid var(--positive);
}

/* the score circle is filled with --background-body, so both figures take the
   body pair; --text-on-alt was white-on-white on every light palette */
.c-bf1831 { font-size: 28px; font-weight: 800; color: var(--text-main); }
.c-411684 { margin-top: 2px; font-size: 11px; color: var(--text-muted); }

.c-f266aa { min-width: 0; }
.c-f266aa h3 { margin: 0 0 10px; font-size: 20px; color: var(--text-on-alt); }
.c-e31d3c p { margin: 6px 0; line-height: 1.6; color: var(--text-on-alt); }

.c-1a721a { position: relative; padding-left: 24px; }
.c-1a721a::before { position: absolute; left: 0; }
.c-c4fac6::before { content: "\2714"; color: var(--positive); }
.c-55b9e6::before { content: "\26A0"; color: var(--warning); }
.c-6f9d0c::before { content: "\2716"; color: var(--negative); }

@media (max-width: 767px) {
  .c-e31d3c { flex-direction: column; align-items: center; text-align: center; }
  .c-1a721a { text-align: left; }
}

/* ---------- Author Box (E-E-A-T) ---------- */
.c-ba01d0 {
  display: flex;
  gap: 16px;
  max-width: 1110px;
  margin: 30px auto;
  padding: 20px 22px;
  background: var(--background-alt);
  border-radius: 12px;
}

/* .c-ba01d0 visuals are unified in the w12/w13 END block (covers both the authored
   block — __avatar/__info/__role/__editorial — and the generated one — __body/__bio/
   __socials). Kept here: nothing, to avoid the old 64px-circle vs 84px conflict. */
.c-175dbb { min-width: 0; }
.c-ae7b36 { margin-bottom: 6px; font-size: 13px; color: var(--text-muted); }
.c-ba01d0 p { margin: 6px 0; line-height: 1.6; color: var(--text-on-alt); }
.c-deaf0a { font-size: 12px; font-style: italic; color: var(--text-muted); }

/* ---------- Responsible Gambling Notice (in-body) ---------- */
.c-86a261 {
  max-width: 1110px;
  margin: 24px auto;
  padding: 14px 18px;
  background: var(--card-bg);
  border: 1px solid var(--border-color);
  border-radius: 10px;
}

.c-a1c24e { display: block; margin-bottom: 4px; font-size: 14px; font-weight: 700; color: var(--text-main); }
.c-86a261 p { margin: 0; font-size: 13px; line-height: 1.6; color: var(--text-muted); }

/* ---------- References List ---------- */
.c-1959d5 {
  max-width: 1110px;
  margin: 16px auto;
  padding: 0;
  list-style: none;
}

.c-1959d5 li {
  position: relative;
  margin: 6px 0;
  padding-left: 20px;
  font-size: 14px;
  color: var(--text-muted);
}

.c-1959d5 li::before { content: "\2197"; position: absolute; left: 0; color: var(--text-accent); }

/* ---------- Registration / How-to Steps (numbered) ---------- */
.c-ce7ea2 {
  max-width: 1110px;
  margin: 24px auto;
}

.c-ca1763 {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  padding: 12px 0;
  border-bottom: 1px solid var(--border-color);
}

.c-ca1763:last-child { border-bottom: none; }

.c-290b1d {
  flex-shrink: 0;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--registr-btn-gradient);
  color: var(--registr-btn-color);
  font-weight: 700;
}

.c-6fb94a { padding-top: 4px; line-height: 1.6; color: var(--text-main); }

/* ==================================================
   REVIEW CONTENT BLOCKS (Chunk 3b-2) — FAQ accordion, similar casinos,
   screenshot slot. The FAQ keeps its h3+p markup (build_site.py split_faq /
   FAQ JSON-LD rely on it); the accordion is layered via the 'active' state
   class toggled in pages.js ('active' is obfuscation-excluded -> stays stable).
   ================================================== */

/* ---------- FAQ accordion (layered over existing .c-397f80 h3 + p) ---------- */
.c-397f80 h3 {
  cursor: pointer;
  position: relative;
  padding-right: 32px;
}

.c-397f80 h3::after {
  content: "+";
  position: absolute;
  right: 6px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 20px;
  line-height: 1;
  color: var(--text-accent);
}

.c-397f80 h3.active::after { content: "\2212"; } /* minus sign */

.c-397f80 h3 + p,
.c-397f80 h3 + div { display: none; }

.c-397f80 h3.active + p,
.c-397f80 h3.active + div { display: block; }

/* ---------- Similar Casinos (tail of single-brand reviews) ---------- */
.c-1fda5f {
  max-width: 1110px;
  margin: 40px auto;
}

.c-1fda5f h2 {
  margin-bottom: 20px;
  font-size: 28px;
  text-align: center;
}

.c-2f52dd {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}

.c-fe6e65 {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 18px 16px;
  text-align: center;
  background: var(--background-alt);
  border-radius: 12px;
}

.c-1fa571 img,
.c-2be074 {
  width: 120px;
  height: 72px;
  border-radius: 8px;
}

.c-1fa571 img {
  object-fit: contain;
  border: 1px solid var(--border-color);
  background: #fff;
}

.c-2be074 {
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px dashed var(--border-color);
  background: var(--card-bg);
  font-size: 30px;
  font-weight: 800;
  color: var(--text-on-alt);
}

.c-aafb53 { font-weight: 700; color: var(--text-on-alt); }
.c-c2807f { flex-grow: 1; font-size: 13px; color: var(--text-muted); }
.c-fe6e65 .c-7e123c { width: 100%; animation: none; }

@media (max-width: 1023px) {
  .c-2f52dd { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 767px) {
  .c-2f52dd { grid-template-columns: 1fr; }
}

/* ---------- Main Illustration (generated, listicle pages) ---------- */
.c-7b1a3d {
  max-width: 1110px;
  margin: 0 auto 30px;
}

.c-7b1a3d img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 14px;
}

/* ---------- Casino Screenshot (manual slot) ---------- */
.c-64f785 {
  max-width: 1110px;
  margin: 24px auto;
}

.c-64f785 img {
  display: block;
  width: 100%;
  border-radius: 12px;
  border: 1px solid var(--border-color);
}

.c-64f785 figcaption {
  margin-top: 8px;
  font-size: 13px;
  color: var(--text-muted);
  text-align: center;
}

/* ==================================================
   REVIEW BLOCK ICON-SET (Step 2) — CSS-mask SVG markers.
   Replaces the unicode/emoji glyphs in fixed marker positions with crisp,
   palette/status-colored SVG icons (consistent across OS). Authored HTML is
   unchanged; tip/RG labels carry NO emoji — the icon is added here by class
   (see REVIEW-BLOCKS-GUIDE.md). -webkit-mask-* included for Safari/iOS.
   Icons live in assets/images/content/icons/ui/ (url is relative to this file).
   ================================================== */

/* Shared mask geometry for every icon marker */
.c-c97a25 h3::before, .c-7b5835 h3::before,
.c-c97a25 h4::before, .c-7b5835 h4::before,
.c-c97a25 li::before, .c-7b5835 li::before,
.c-c4fac6::before, .c-55b9e6::before, .c-6f9d0c::before,
.c-3e1f5e .c-2c3189::before, .c-6f3dd8 .c-2c3189::before,
.c-3b5435 .c-2c3189::before, .c-3cfdf3 .c-2c3189::before,
.c-a1c24e::before {
  content: "";
  display: inline-block;
  -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
  -webkit-mask-position: center; mask-position: center;
  -webkit-mask-size: contain; mask-size: contain;
}

/* Icon image + color per marker */
.c-c97a25 h3::before, .c-c97a25 h4::before, .c-c97a25 li::before, .c-c4fac6::before {
  -webkit-mask-image: url(icons/ui/check.svg);
  mask-image: url(icons/ui/check.svg);
  background-color: var(--positive);
}
.c-7b5835 h3::before, .c-7b5835 h4::before, .c-7b5835 li::before, .c-6f9d0c::before {
  -webkit-mask-image: url(icons/ui/cross.svg);
  mask-image: url(icons/ui/cross.svg);
  background-color: var(--negative);
}
.c-55b9e6::before, .c-6f3dd8 .c-2c3189::before {
  -webkit-mask-image: url(icons/ui/warning.svg);
  mask-image: url(icons/ui/warning.svg);
  background-color: var(--warning);
}
.c-3e1f5e .c-2c3189::before {
  -webkit-mask-image: url(icons/ui/bulb.svg);
  mask-image: url(icons/ui/bulb.svg);
  background-color: var(--positive);
}
.c-3b5435 .c-2c3189::before {
  -webkit-mask-image: url(icons/ui/magnifier.svg);
  mask-image: url(icons/ui/magnifier.svg);
  background-color: var(--info);
}
.c-3cfdf3 .c-2c3189::before {
  -webkit-mask-image: url(icons/ui/chart.svg);
  mask-image: url(icons/ui/chart.svg);
  background-color: var(--text-accent);
}
.c-a1c24e::before {
  -webkit-mask-image: url(icons/ui/shield.svg);
  mask-image: url(icons/ui/shield.svg);
  background-color: var(--text-accent);
}

/* Sizing / positioning per context (1em → scales with the text) */
.c-c97a25 h3::before, .c-7b5835 h3::before,
.c-c97a25 h4::before, .c-7b5835 h4::before { width: 1em; height: 1em; }
.c-c97a25 li::before, .c-7b5835 li::before { width: 1em; height: 1em; top: 0.2em; }
.c-c4fac6::before, .c-55b9e6::before, .c-6f9d0c::before {
  width: 1.05em; height: 1.05em; top: 0.15em;
}
.c-3e1f5e .c-2c3189::before, .c-6f3dd8 .c-2c3189::before,
.c-3b5435 .c-2c3189::before, .c-3cfdf3 .c-2c3189::before,
.c-a1c24e::before {
  width: 1.1em; height: 1.1em; margin-right: 6px; vertical-align: -0.18em;
}

/* ==================================================
   SCORE BARS (OPTIONAL block) — section scores / stats as CSS bars.
   The value rides on an inline custom property (style="--score: 9.2", optional
   --max, default 10) — safe with deploy obfuscation: custom properties are never
   renamed and style attributes pass through untouched. Decorative reinforcement
   only: scores in H2 headings stay the source of truth, articles must read
   complete without this block.
   ================================================== */
.c-acba43 {
  max-width: 1110px;
  margin: 24px auto;
  display: grid;
  gap: 10px;
}

.c-88680e {
  display: grid;
  grid-template-columns: 160px 1fr auto;
  align-items: center;
  gap: 12px;
}

.c-0d0f95 {
  font-size: 14px;
  font-weight: 600;
  color: var(--text-main);
}

.c-b83d95 {
  display: block;
  height: 10px;
  border-radius: 5px;
  background: var(--card-bg);
  border: 1px solid var(--border-color);
  overflow: hidden;
}

.c-775bd8 {
  display: block;
  height: 100%;
  width: calc(var(--score, 0) / var(--max, 10) * 100%);
  border-radius: 5px;
  background: var(--registr-btn-gradient);
}

.c-9d08e3 {
  min-width: 44px;
  font-size: 13px;
  font-weight: 700;
  color: var(--text-accent);
  text-align: right;
  white-space: nowrap;
}

@media (max-width: 767px) {
  .c-88680e { grid-template-columns: 104px 1fr auto; gap: 8px; }
  .c-0d0f95 { font-size: 12.5px; }
}

/* ==================================================
   STAGE A REFINEMENTS (post-e2e operator feedback)
   ================================================== */

/* table-rate v1.1 — info stack, score badge, logo placeholder, highlight glow */
.c-b7bfd4 .c-55c46e {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
  text-align: left;
}

.c-b7bfd4 .c-789c29 { display: block; }

.c-b7bfd4 .c-216384 {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 46px;
  height: 46px;
  border-radius: 50%;
  border: 2px solid var(--positive);
  background: var(--background-body);
  /* the badge is filled with the PAGE colour, so it needs the body pair —
     --text-on-alt is white on every light palette (rule 194c, both directions) */
  color: var(--text-main);
  font-weight: 800;
  font-size: 15px;
}

.c-b7bfd4 .c-f03984 { justify-self: end; }

.c-b7bfd4 .c-ff41f6 {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 166px;
  height: 98px;
  border-radius: 10px;
  border: 1px dashed var(--border-color);
  background: var(--card-bg);
  font-size: 34px;
  font-weight: 800;
  color: var(--text-on-alt);
}

.c-b7bfd4 .c-3a32f2 {
  border-color: var(--text-accent);
  box-shadow: 0 0 14px var(--text-accent);
}

/* Table extras v1.2 — label badge, params row, internal review link */
.c-b7bfd4 .c-71adc8 {
  display: inline-block;
  margin-left: 8px;
  padding: 2px 8px;
  border-radius: 4px;
  background: var(--registr-btn-gradient);
  color: var(--registr-btn-color);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  vertical-align: middle;
}

.c-b7bfd4 .c-378807 {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 16px;
  margin-top: 6px;
}

.c-b7bfd4 .c-2b1a71 {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--text-on-alt);
}

.c-b7bfd4 .c-2b1a71 b {
  display: block;
  font-size: 10.5px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.3px;
  color: var(--text-on-alt);
  opacity: 0.75;
}

.c-b7bfd4 .c-94472d {
  margin-left: 8px;
  font-size: 12px;
  font-weight: 400;
  color: var(--text-on-alt);
  opacity: 0.85;
  text-decoration: underline;
  vertical-align: middle;
}

@media (max-width: 767px) {
  .c-b7bfd4 .c-378807 { justify-content: center; }
}

/* ==================================================
   TABLE v1.3 + chrome polish (operator feedback round 2, bonus.c-95a506)
   ================================================== */

/* Score — compact numeric badge pinned top-right of the row (bonus.ca pattern) */
.c-b7bfd4 .c-789c29 {
  position: absolute;
  top: 10px;
  right: 14px;
}

.c-b7bfd4 .c-216384 {
  min-width: 34px;
  height: 34px;
  font-size: 13px;
  border-width: 2px;
}

/* Emphasis swap: the BONUS is the loud line, the name is secondary */
.c-b7bfd4 .c-95bd4e {
  font-size: 15px;
  font-weight: 600;
}

.c-b7bfd4 .c-7c2363 {
  font-size: 18px;
  font-weight: 800;
  color: var(--text-on-alt);
  margin-top: 2px;
}

.c-b7bfd4 .c-7c2363 small {
  font-size: 12.5px;
  font-weight: 400;
  color: var(--text-on-alt);
  opacity: 0.8;
}

/* Founded — tiny muted note next to the name (not a params bullet) */
.c-b7bfd4 .c-daa5f2 {
  display: inline-block;
  margin-left: 8px;
  font-size: 11px;
  font-weight: 400;
  color: var(--text-on-alt);
  opacity: 0.75;
  vertical-align: middle;
}

/* CTA column: review link sits small + centered UNDER the button */
.c-b7bfd4 .c-f03984 {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}

.c-b7bfd4 .c-94472d {
  margin-left: 0;
  font-size: 12px;
}

@media (max-width: 767px) {
  .c-b7bfd4 .c-789c29 { top: 12px; right: 12px; }
}

/* Disclosure (desktop): right side of the meta row, frameless, link-like */
@media (min-width: 768px) {
  .c-79aae7 {
    float: right;
    background: none;
    border: none;
    padding: 0;
  }

  .c-5d2067 { text-decoration: underline; cursor: pointer; }

  /* anchored at the far right now — open the tooltip leftwards */
  .c-13941d { left: auto; right: -8px; }
  .c-13941d::before { left: auto; right: 16px; }
}

/* Back to top — bonus.c-95a506 panel button; desktop only */
.c-23e9b7 {
  width: 46px;
  height: 46px;
  border-radius: 8px;
  background: var(--card-bg);
  border: 1px solid var(--border-color);
  color: var(--text-main);
  box-shadow: var(--card-shadow);
}

.c-23e9b7 svg { width: 22px; height: 22px; }

@media (max-width: 767px) {
  .c-23e9b7 { display: none; }
}

@media (max-width: 767px) {
  .c-b7bfd4 .c-55c46e { text-align: center; align-items: center; }
  .c-b7bfd4 .c-f03984 { justify-self: stretch; width: 100%; }
  .c-b7bfd4 .c-ff41f6 { width: 140px; height: 82px; }
}

/* Header bonus button — wrap instead of overflowing past the logo on phones */
@media (max-width: 767px) {
  .c-76d5aa .c-7e123c {
    white-space: normal;
    max-width: 52vw;
    font-size: 12px;
    line-height: 1.25;
    padding: 6px 10px;
    text-align: center;
  }
}

/* Disclosure tooltip — anchor left (centered version clipped at the viewport edge) */
.c-13941d {
  left: -8px;
  transform: none;
  width: min(280px, calc(100vw - 40px));
}

.c-13941d::before {
  left: 16px;
  right: auto;
  transform: rotate(45deg);
}

@media (max-width: 767px) {
  .c-13941d { left: -8px; right: auto; }
  .c-13941d::before { left: 16px; right: auto; }
}

/* Hero compaction — first screen was too tall (operator feedback): smaller H1,
   author + disclosure share ONE row, tighter margins, intro paragraph spacing.
   The big author block with photo/bio belongs at the tail (author-box block). */
.c-73ca15 { margin-bottom: 20px; }

.c-768780 {
  font-size: 42px;
  margin-bottom: 18px;
}

@media (max-width: 1023px) { .c-768780 { font-size: 32px; } }
@media (max-width: 767px)  { .c-768780 { font-size: 23px; margin-bottom: 12px; } }

.c-31be7b {
  display: inline-flex;
  vertical-align: middle;
  margin: 0 14px 8px 0;
}

.c-1fd107,
.c-1ac288 img {
  width: 36px;
  height: 36px;
  font-size: 16px;
}

.c-79aae7 {
  display: inline-flex;
  vertical-align: middle;
  margin-top: 0;
}

.c-cfed2f { margin-top: 10px; }
.c-cfed2f p + p { margin-top: 14px; }

/* Hero-CTA score badge — top-right of the card (was inline above the button) */
.c-197158 { position: relative; }

.c-da66c2 {
  float: none;
  position: absolute;
  top: 14px;
  right: 14px;
  margin: 0;
}

@media (max-width: 767px) {
  .c-da66c2 { position: absolute; top: 12px; right: 12px; margin: 0; width: 54px; height: 54px; }
}

/* Back to top (button is created by pages.js; 'show' is the visibility state) */
.c-23e9b7 {
  position: fixed;
  bottom: 22px;
  right: 22px;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--registr-btn-gradient);
  color: var(--registr-btn-color);
  font-size: 20px;
  font-weight: 700;
  border: none;
  cursor: pointer;
  z-index: 900;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s ease;
  box-shadow: var(--card-shadow);
}

.c-23e9b7.show {
  opacity: 1;
  pointer-events: auto;
}

/* Author verified badge — file-based mask icon (replaces the base64 <img>) */
.c-0593bd::after {
  content: "";
  display: inline-block;
  width: 16px;
  height: 16px;
  -webkit-mask-image: url(icons/ui/verified.svg);
  mask-image: url(icons/ui/verified.svg);
  -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
  -webkit-mask-size: contain; mask-size: contain;
  background-color: var(--positive);
}

/* v1.3 order-fix — these MUST be last: earlier same-specificity rules above
   (round back-to-top, left-anchored tooltip) would win otherwise */
.c-23e9b7 {
  width: 46px;
  height: 46px;
  padding: 0; /* water.css button padding (10px 30px) squeezed the svg to 0 width */
  border-radius: 8px;
  background: var(--background-alt); /* solid — card-bg rgba looked transparent */
  border: 1px solid var(--border-color);
  color: var(--text-on-alt);
}

.c-23e9b7 svg {
  width: 22px;
  height: 22px;
  flex-shrink: 0;
}

/* CTA column: fixed slots — the button keeps the SAME vertical spot in every row,
   with or without the review link / params (the link row is always reserved) */
.c-b7bfd4 .c-f03984 {
  display: grid;
  grid-template-rows: 46px 20px;
  align-content: center;
  justify-items: center;
  gap: 2px;
  margin-top: 12px; /* keep clear air below the absolute top-right score badge */
}

@media (max-width: 767px) {
  .c-23e9b7 { display: none; }

  /* mobile breathing room: params spacing + slightly tighter row padding */
  .c-b7bfd4 .c-378807 { margin-top: 10px; gap: 8px 18px; }
  .c-b7bfd4 tr,
  .c-b7bfd4 .c-662485 { padding: 18px 14px 16px; }

  /* small text link, not full-width: review link is excluded from a.c-1939da rules */
  .c-b7bfd4 .c-94472d { width: auto; }
}

@media (min-width: 768px) {
  .c-13941d { left: auto; right: -8px; }
  .c-13941d::before { left: auto; right: 16px; }

  /* params (Min. dep / Wager / Payout) — more air between items on desktop */
  .c-b7bfd4 .c-378807 { gap: 6px 28px; }
}

/* ==================================================
   table-rate RICH variant (v3, premiumtimesng anatomy):
   bonus chips (label over title, featured frame, optional shake) + payment chips
   ================================================== */
.c-b7bfd4 .c-34cfa6 {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 8px;
}

.c-b7bfd4 .c-4caa10 {
  position: relative;
  display: inline-block;
  padding: 8px 12px;
  border-radius: 6px;
  border: 1px solid var(--border-color);
  background: var(--card-bg);
  text-align: left;
  max-width: 300px;
}

.c-b7bfd4 .c-f53477 {
  display: block;
  font-size: 10.5px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.3px;
  color: var(--text-accent);
}

.c-b7bfd4 .c-f7e2cf {
  display: block;
  font-size: 15px;
  font-weight: 800;
  line-height: 1.3;
  color: var(--text-on-alt);
}

.c-b7bfd4 .c-c5d621 {
  border-color: var(--text-accent);
  box-shadow: 0 0 10px var(--text-accent);
}

.c-b7bfd4 .c-85696d {
  animation: tilt-shake 2.4s ease-in-out infinite;
}

/* shared attention nudge (bonus chips + header gift button) — short rotate burst,
   then rest for the remainder of the period (override via animation-duration) */
@keyframes tilt-shake {
  0% { transform: rotate(0); }
  2% { transform: rotate(1.5deg); }
  4% { transform: rotate(-1.5deg); }
  6% { transform: rotate(1.5deg); }
  8% { transform: rotate(-1.5deg); }
  10%, 100% { transform: rotate(0); }
}

/* Payment chips row (rich rows; text chips — brand payment ICONS are a later phase) */
.c-b7bfd4 .c-035dcc {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
}

.c-b7bfd4 .c-48def1 {
  padding: 2px 8px;
  border-radius: 4px;
  border: 1px solid var(--border-color);
  background: var(--card-bg);
  font-size: 11px;
  font-weight: 600;
  color: var(--text-muted);
  white-space: nowrap;
}

/* Rich rows hold more content — a little extra padding */
.c-5fdfa0 tr,
.c-5fdfa0 .c-662485 {
  padding: 20px;
}

@media (max-width: 767px) {
  .c-b7bfd4 .c-34cfa6 { justify-content: center; }
  .c-b7bfd4 .c-4caa10 { width: 100%; max-width: 100%; text-align: center; }
  .c-b7bfd4 .c-035dcc { justify-content: center; }
}

/* ==================================================
   Header gift / Extra-Bonus button (Review Settings → header_gift)
   build_site.py injects .c-76d757 into .header-buttons; pages.js #9 toggles 'open'
   ================================================== */
.c-76d757 {
  position: relative;
  display: inline-flex;
  flex-shrink: 0;
}

.c-9817a2 {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  height: 40px;
  padding: 6px 12px;
  border-radius: 8px;
  border: 1px solid var(--text-accent);
  background: var(--registr-btn-gradient);
  color: var(--registr-btn-color);
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  white-space: nowrap;
  cursor: pointer;
  text-decoration: none;
  transition: transform 0.2s ease;
}

.c-9817a2:hover {
  text-decoration: none;
  transform: scale(1.03);
}

.c-465318 {
  width: 26px;
  height: 26px;
  flex-shrink: 0;
}

.c-7bee3c {
  animation: tilt-shake 2.5s ease-in-out infinite;
}

.c-17c173 {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  min-width: 280px;
  max-width: min(320px, calc(100vw - 24px));
  padding: 8px;
  border-radius: 10px;
  border: 1px solid var(--border-color);
  background: var(--background-alt);
  box-shadow: var(--card-shadow);
  display: none;
  flex-direction: column;
  gap: 6px;
  z-index: 950;
}

.c-76d757.open .c-17c173 { display: flex; }

.c-aa974a {
  display: block;
  padding: 10px 12px;
  border-radius: 8px;
  border: 1px solid var(--border-color);
  background: var(--card-bg);
  text-align: left;
  text-decoration: none;
  cursor: pointer;
}

.c-aa974a:hover {
  border-color: var(--text-accent);
  text-decoration: none;
}

.c-31115a {
  display: inline-block;
  margin-bottom: 2px;
  padding: 1px 6px;
  border-radius: 4px;
  background: var(--registr-btn-gradient);
  color: var(--registr-btn-color);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
}

.c-6249c5 {
  display: block;
  font-size: 12px;
  font-weight: 600;
  color: var(--text-on-alt);
  opacity: 0.8;
}

.c-bcdd7d {
  display: block;
  font-size: 14px;
  font-weight: 800;
  color: var(--text-on-alt);
}

@media (max-width: 767px) {
  /* the gift button REPLACES the header bonus button (one CTA) — keep the text,
     wrap it within the same width cap as the old bonus button (A1 rule) */
  .c-9817a2 {
    height: auto;
    min-height: 36px;
    padding: 6px 10px;
    white-space: normal;
    max-width: 52vw;
    line-height: 1.2;
    text-align: center;
  }

  /* right-anchored absolute drop overflows the left viewport edge on phones —
     pin it to the viewport just under the fixed 54px header instead */
  .c-17c173 {
    position: fixed;
    top: 62px;
    left: 12px;
    right: 12px;
    min-width: 0;
    max-width: none;
  }
}

/* ==================================================
   w10 — operator feedback round 5:
   rank badge in the row's top-left corner (frees the 32px counter column),
   brand name 16px, review link a bit lower, mobile drawer restyle
   ================================================== */

/* Desktop rows: counter column dropped, rank pinned top-left like the score badge */
.c-b7bfd4 tr,
.c-b7bfd4 .c-662485 {
  grid-template-columns: 190px minmax(0, 1fr) auto;
}

.c-b7bfd4 tr::before,
.c-b7bfd4 .c-662485::before {
  position: absolute;
  top: 10px;
  left: 12px;
  min-width: 26px;
  height: 26px;
  font-size: 12px;
}

/* logo slides right out of the rank badge's corner (td padding:0 is the base rule) */
.c-b7bfd4 td.c-324552 {
  padding-left: 24px !important;
}

.c-b7bfd4 .c-95bd4e {
  font-size: 16px;
}

/* review link sits a bit lower under the CTA button */
.c-b7bfd4 .c-f03984 {
  gap: 6px;
}

@media (max-width: 767px) {
  /* phones keep the stacked single-column card (rank is already absolute there) */
  .c-b7bfd4 tr,
  .c-b7bfd4 .c-662485 {
    grid-template-columns: 1fr;
  }

  .c-b7bfd4 td.c-324552 {
    padding-left: 0 !important;
  }
}

/* Mobile drawer — slide-in panel with dim overlay (kings/bonus.ca pattern);
   same checkbox mechanics, pure CSS restyle */
@media (max-width: 1023px) {
  .c-28ea91 {
    display: flex;
    width: min(320px, 86vw);
    height: 100vh;
    height: 100dvh;
    padding: 0 0 20px;
    border-left: 1px solid var(--border-color);
    transform: translateX(105%);
    visibility: hidden;
    transition: transform 0.28s ease, visibility 0.28s;
    overflow-y: auto;
    z-index: 1100;
  }

  .c-0a617f:checked ~ .c-28ea91 {
    transform: translateX(0);
    visibility: visible;
    /* spread-shadow doubles as a full-screen dim overlay (no extra element) */
    box-shadow: 0 0 0 100vmax rgba(0, 0, 0, 0.55), -10px 0 28px rgba(0, 0, 0, 0.3);
  }

  .c-ed142b {
    position: static;
    align-self: flex-end;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    margin: 14px 16px 6px;
    border: 1px solid var(--border-color);
    border-radius: 8px;
    font-size: 16px;
    color: var(--text-on-alt);
  }

  .c-28ea91 ul li a {
    padding: 15px 22px;
    font-size: 16px;
    font-weight: 600;
    color: var(--text-on-alt);
  }

  .c-28ea91 ul li a::after {
    /* --text-accent collapses on --background-alt in 17/45 palettes (rule 194c) */
    border-left-color: var(--text-on-alt);
  }

  .c-28ea91 ul li:first-child {
    border-top: 1px solid var(--border-color);
  }

  /* CTA pinned to the drawer bottom */
  .c-9ba120 {
    margin-top: auto;
    padding: 20px 20px 4px;
  }
}

/* ==================================================
   w11 — operator feedback round 6:
   gift count badge + 2-line mobile text + no burger overlap,
   bonus chips as a horizontal slider, mobile disclosure tooltip fix
   ================================================== */

/* count badge — number of bonuses the gift button holds, in the corner */
.c-9817a2 { position: relative; overflow: visible; }

.c-ac6b8a {
  position: absolute;
  top: -7px;
  right: -7px;
  min-width: 18px;
  height: 18px;
  padding: 0 4px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 9px;
  background: #E63946;
  color: #fff;
  font-size: 11px;
  font-weight: 800;
  line-height: 1;
  border: 1.5px solid var(--background-body);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
}

@media (max-width: 1023px) {
  /* burger is absolute (out of flow) at right:20 — reserve room so the gift button
     sits just LEFT of it instead of overlapping (it's the only header CTA now) */
  .c-76d5aa { margin-right: 44px; }
}

@media (max-width: 767px) {
  /* two-word CTA wraps one word per line (Extra / Bonus): min-content makes the
     text box only as wide as its longest word, so spaces break */
  .c-56a53e {
    white-space: normal;
    max-width: min-content;
    text-align: center;
    line-height: 1.12;
  }
  .c-9817a2 { max-width: none; height: auto; min-height: 36px; }
  .c-ac6b8a { top: -6px; right: -6px; }
}

/* Bonus chips → horizontal slider: one row, next chip peeks (cue to swipe),
   slim scrollbar track below. Falls back to a single full chip when only one. */
.c-5fdfa0 .c-34cfa6 {
  flex-wrap: nowrap;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  gap: 8px;
  padding-bottom: 8px;
  scrollbar-width: thin;
  scrollbar-color: var(--text-accent) var(--border-color);
  -webkit-overflow-scrolling: touch;
}

.c-5fdfa0 .c-4caa10 {
  flex: 0 0 clamp(180px, 76%, 270px);
  max-width: none;
  scroll-snap-align: start;
}

.c-5fdfa0 .c-34cfa6::-webkit-scrollbar { height: 5px; }
.c-5fdfa0 .c-34cfa6::-webkit-scrollbar-track {
  background: var(--border-color);
  border-radius: 3px;
}
.c-5fdfa0 .c-34cfa6::-webkit-scrollbar-thumb {
  background: var(--text-accent);
  border-radius: 3px;
}

/* single bonus → no slider, chip keeps its NORMAL width (not stretched full-row) */
.c-5fdfa0 .c-34cfa6:has(.c-4caa10:only-child) {
  overflow-x: visible;
}

@media (max-width: 767px) {
  /* keep the slider left-aligned on phones (centering hides the peek cue) */
  .c-5fdfa0 .c-34cfa6 { justify-content: flex-start; }
  .c-5fdfa0 .c-4caa10 { flex: 0 0 80%; text-align: left; }
}

/* Mobile disclosure tooltip — anchor to the icon's RIGHT edge so a right-side icon
   doesn't push the 280px box off-screen (earlier left:-8 override sent it right-off) */
@media (max-width: 767px) {
  .c-13941d {
    left: auto;
    right: 0;
    transform: none;
    width: min(280px, calc(100vw - 24px));
  }
  .c-13941d::before { left: auto; right: 14px; transform: rotate(45deg); }
}

/* ==================================================
   w12 — operator feedback round 7:
   header CTA flush-right (symmetric to the logo), bonus pagination slider,
   single-bonus normal width, gap before the CTA column
   ================================================== */

/* Desktop: the legacy 80px right padding pushed the CTA 100px off the edge while the
   logo sits ~20px in — drop it so the gift button mirrors the logo at the edge */
@media (min-width: 1024px) {
  .c-40627c { padding-right: 0; }
}

/* Mobile: w11 gave .c-76d5aa a 44px margin (too big a gap from the burger) —
   tighten it so the single header CTA sits just left of the burger */
@media (max-width: 1023px) {
  .c-76d5aa { margin-right: 8px; }
}

/* Bonus chips don't butt against the CTA button (peek chip kept clear of the gap) */
.c-5fdfa0 .c-55c46e { padding-right: 14px; }

/* single bonus → chip at its normal width, NOT stretched to fill the row */
.c-5fdfa0 .c-34cfa6:has(.c-4caa10:only-child) .c-4caa10 {
  flex: 0 0 clamp(180px, 76%, 270px);
}

/* Pagination dots under the bonus slider (pages.js #10 builds & syncs them;
   'active' is obfuscation-excluded). Hidden until JS adds .c-248eb0 so a
   no-JS / single-chip row shows nothing. */
.c-35bf13 {
  display: none;
  gap: 6px;
  margin-top: 8px;
  justify-content: center;
}

.c-248eb0 { display: flex; }

.c-866594 {
  width: 8px;
  height: 8px;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: var(--border-color);
  cursor: pointer;
  transition: background 0.2s ease, transform 0.2s ease;
}

.c-866594.active {
  background: var(--text-accent);
  transform: scale(1.25);
}

@media (max-width: 767px) {
  .c-5fdfa0 .c-55c46e { padding-right: 0; }
}

/* ==================================================
   Author box — optional bio card before the FAQ (build_site generate_author_box)
   ================================================== */
.c-ba01d0 {
  display: flex;
  gap: 18px;
  align-items: flex-start;
  max-width: 1110px;
  margin: 30px auto;
  padding: 22px;
  border-radius: 12px;
  background: var(--background-alt);
  border: 1px solid var(--border-color);
}

/* Avatar = rounded SQUARE (operator preference). One element holds either the <img>
   or the initial on the gradient — works for the generated AND the authored block. */
.c-187a0f {
  margin: 0;
  flex-shrink: 0;
  width: 84px;
  height: 84px;
  border-radius: 14px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--registr-btn-gradient);
  color: var(--registr-btn-color);
  font-size: 34px;
  font-weight: 800;
  border: 2px solid var(--text-accent);
}

.c-187a0f img {
  width: 100%;
  height: 100%;
  border-radius: 12px;
  object-fit: cover;
}

.c-d6adbb { min-width: 0; }

.c-5e487e {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 18px;
  font-weight: 800;
  color: var(--text-on-alt);
}

.c-3210d0 {
  margin: 8px 0 0;
  font-size: 14px;
  line-height: 1.6;
  color: var(--text-muted);
}

.c-552c62 {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 12px;
}

.c-373cc4 {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--card-bg);
  border: 1px solid var(--border-color);
  color: var(--text-on-alt);
  text-decoration: none;
  transition: transform 0.2s ease, border-color 0.2s ease;
}

.c-373cc4:hover {
  transform: translateY(-2px);
  border-color: var(--text-accent);
  text-decoration: none;
}

.c-373cc4 svg { width: 17px; height: 17px; flex-shrink: 0; }

@media (max-width: 767px) {
  .c-ba01d0 {
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 20px 16px;
  }
  .c-5e487e { justify-content: center; }
  .c-552c62 { justify-content: center; }
}

/* ==================================================
   w13 — operator feedback round 8:
   bonus slider = drag + dash indicators + no native scrollbar; filled disclosure dot
   ================================================== */

/* hide the native horizontal scrollbar — the dash indicators replace it */
.c-5fdfa0 .c-34cfa6 {
  scrollbar-width: none;
  -ms-overflow-style: none;
  cursor: grab;
}
.c-5fdfa0 .c-34cfa6::-webkit-scrollbar { height: 0; width: 0; display: none; }

/* pagination = dashes (premiumtimesng style), not round dots */
.c-866594 {
  width: 20px;
  height: 4px;
  border-radius: 2px;
  transform: none;
}
.c-866594.active {
  background: var(--text-accent);
  transform: none;
  width: 28px;
}

/* Disclosure trigger — FILLED accent dot with a contrasting glyph (the outline
   ⓘ glyph was hard to read on the page background) */
.c-a25735 {
  background: var(--text-accent);
  border: none;
  color: var(--background-body);
}

.c-6c9e84 {
  font-family: Georgia, "Times New Roman", serif;
  font-style: italic;
  font-weight: 700;
  font-size: 13px;
  line-height: 1;
}

/* ==================================================
   w14 — operator feedback round 9:
   mobile disclosure to the right + frameless (was inline next to the author)
   ================================================== */
@media (max-width: 767px) {
  .c-79aae7 {
    float: right;
    background: none;
    border: none;
    padding: 0;
    margin-top: 4px;
  }
}

/* ==================================================
   w15 — kill water.css's broken mailto pseudo-icon:
   water.c-da3940.css has  a[href^=mailto]:before{content:"=� "}  (a mojibaked envelope
   emoji) — it prepended a "?"/"=�" glyph before every email link, incl. the author
   email icon. Remove it everywhere in the review template.
   ================================================== */
a[href^="mailto:"]::before { content: none !important; }

/* ==================================================
   w18 — operator feedback round 13:
   hero author = emphasized NAME (no avatar circle, saves first-screen space);
   intro collapses to ~3 lines with a localized Read all / Hide toggle (premiumtimesng)
   ================================================== */

/* drop the 48px avatar circle in the hero (the photo lives in the author-box before
   FAQ) — keep just the name + date. Works on existing baked backups via CSS. */
.c-1ac288 { display: none !important; }

.c-31be7b {
  gap: 10px;
  margin-bottom: 12px;
}

.c-6bf6f6 {
  font-size: 17px;
  font-weight: 700;
}

/* Intro Read all / Hide — the '--clamp' class IS the collapsed state (JS toggles it:
   remove = expand, add = collapse). Simpler/robust vs a separate 'expanded' class that
   lost the cascade to the base max-height. '--clamp' is in template CSS (obfuscated
   consistently); 'review-hero__readmore--ready' shows the button only when it overflows. */
/* Read all / Hide: the '--clamp' class clips to exactly 3 lines; JS toggles it
   instantly. (A max-height transition was unreliable here — animating to/from a huge
   or class-overridden value stuck mid-way and read as a jerk; instant toggle keeps the
   top anchored and just reveals the rest downward, which is what was asked.) */
/* overflow:hidden on BOTH states (not just --clamp) so the block is always a BFC —
   otherwise the <p>'s top margin collapses out only when expanded and nudges the text
   down ~10px on toggle. Expanded has no max-height, so nothing is actually clipped. */
.c-cfed2f { position: relative; overflow: hidden; }

.c-32a6a7 {
  max-height: 6.8em; /* 4 lines (4 × 1.7em); the fade below covers the 4th → 3 fully
                        visible + 4th a faded teaser */
}

/* fade-out hint over the 4th line while collapsed (~1 line tall) */
.c-32a6a7::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 1.7em;
  background: linear-gradient(transparent, var(--background-body));
  pointer-events: none;
}

.c-ece914 {
  display: none;
  margin-top: 8px;
  padding: 0;
  background: none;
  border: none;
  color: var(--text-accent);
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  text-decoration: underline;
}

.c-a3a159 { display: inline-block; }

/* ==================================================
   w19 — operator feedback round 14:
   gift dropdown items get a Get Bonus affordance button (whole item still opens the
   ref); hero spacing — 30px under h1, intro hugs the author
   ================================================== */

/* dropdown item = info (left) + CTA button (right); the <a> stays fully clickable */
.c-aa974a {
  display: flex;
  align-items: center;
  gap: 10px;
}

.c-1964db {
  display: flex;
  flex-direction: column;
  align-items: flex-start; /* badge/name/bonus sized to content — not stretched full-width */
  min-width: 0;
  flex: 1 1 auto;
}

.c-f02add {
  flex-shrink: 0;
  align-self: center;
  padding: 7px 14px;
  border-radius: 6px;
  background: var(--registr-btn-gradient);
  color: var(--registr-btn-color);
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  white-space: nowrap;
  pointer-events: none; /* clicks fall through to the item link */
}

/* hero spacing (operator): 30px below the H1, intro sits right under the author/disclosure */
.c-768780 { margin-bottom: 30px; }
.c-cfed2f { margin-top: 0; }


/* ---------- Related Pages (cluster interlinking block) ---------- */
.c-c77463 {
  max-width: 1110px;
  margin: 40px auto;
}

.c-c77463 h2 {
  margin-bottom: 20px;
  font-size: 28px;
  text-align: center;
}

.c-363011 {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  margin: 0;
  padding: 0;
}

.c-363011 li {
  margin: 0;
}

.c-363011 a {
  display: inline-block;
  padding: 10px 18px;
  border: 1px solid var(--border-color);
  border-radius: 999px;
  background: var(--background-alt);
  color: var(--text-on-alt);
  font-size: 15px;
  font-weight: 600;
  line-height: 1.3;
  text-decoration: none;
  transition: border-color .2s ease, transform .2s ease;
}

.c-363011 a:hover {
  border-color: var(--border-accent);
  transform: translateY(-1px);
  text-decoration: none;
}

/* ==================================================
   Contact page (service page, review sites)
   Mirrors the base template block. Palette rules that apply here:
   the card is filled with --background-alt, so EVERY text on it is
   --text-on-alt (rule 58/194c) — --links/--text-accent are unreadable
   on alt in mixed palettes. Inputs sit on --background-body, so they
   use the body pair (--text-main). The submit button re-declares its
   own background on :hover because water.c-da3940.css repaints any
   <button>:hover with --button-hover (rule 194a), which would drop the
   gradient its text colour is paired with.
   ================================================== */
.c-ff42c1 {
  max-width: 800px;
  margin: 40px auto 60px;
  padding: 0 20px;
}

.c-a6e25f {
  background: var(--background-alt);
  border-radius: 15px;
  padding: 30px;
  box-shadow: 0 5px 25px rgba(0, 0, 0, 0.2);
}

.c-a7711d {
  font-size: 2.2em;
  margin: 0 0 15px;
  text-align: center;
  color: var(--text-on-alt);
}

.c-8c3106 {
  text-align: center;
  margin-bottom: 30px;
  color: var(--text-on-alt);
  opacity: 0.85;
}

.c-b942bb {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.c-2d5a80 {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.c-2d5a80 label {
  font-weight: 600;
  color: var(--text-on-alt);
}

.c-2d5a80 input,
.c-2d5a80 textarea {
  padding: 12px 15px;
  border-radius: 8px;
  border: 1px solid var(--border-color);
  background: var(--background-body);
  color: var(--text-main);
  font-size: 16px;
  transition: border-color var(--transition-speed);
}

.c-2d5a80 input:focus,
.c-2d5a80 textarea:focus {
  outline: none;
  border-color: var(--border-accent);
}

.c-2d5a80 textarea {
  resize: vertical;
  min-height: 150px;
}

.c-e341bd {
  background: var(--registr-btn-gradient);
  color: var(--registr-btn-color);
  border: none;
  padding: 12px 24px;
  font-size: 18px;
  font-weight: 600;
  border-radius: 8px;
  cursor: pointer;
  transition: transform 0.3s ease;
  text-align: center;
  margin-top: 10px;
}

.c-e341bd:hover {
  background: var(--registr-btn-gradient);
  color: var(--registr-btn-color);
  box-shadow: none;
  transform: scale(1.02);
}

.c-e341bd:disabled {
  opacity: 0.7;
  cursor: not-allowed;
}

.c-807c0b {
  text-align: center;
  background: none;
  border: 1px solid var(--border-accent);
  border-radius: 8px;
  padding: 20px;
  margin: 20px 0;
}

.c-807c0b p {
  color: var(--text-on-alt);
  font-size: 18px;
  font-weight: 600;
  margin: 0;
}

@media (max-width: 767px) {
  .c-a6e25f {
    padding: 20px;
  }

  .c-a7711d {
    font-size: 1.8em;
  }
}
