/* ==================================================
   Global CSS Variables (Theme Colors)
   Same variable names as base-template for preset compatibility
   ================================================== */
:root {
  --background-body: #edfaff;
  --background-alt: #213660;
  --text-main: #1a2236;
  --links: #182131;
  --text-on-alt: #fdfbff;
  --button-base: #2960e7;
  --button-hover: #1d4bd9;
  --login-btn-bg: #223860;
  --login-btn-color: #fbfdfd;
  --login-btn-border: none;
  --registr-btn-gradient: linear-gradient(270deg, #3a7ff7 100%, #255fe7 0%);
  --registr-btn-color: #fffffb;
  --main-btn-gradient: linear-gradient(270deg, #3e86f3 100%, #2464ef 0%);
  --main-btn-color: #fdfffd;
  --transition-speed: 0.3s;
  --text-muted: rgba(0, 0, 0, 0.55);
  --text-accent: #214dd9;
  --border-color: rgba(0, 0, 0, 0.12);
  --border-accent: #2660ea;
  --card-bg: rgba(37, 99, 235, 0.05);
  --card-shadow: 0 4px 20px rgba(0,0,0,0.06);
  --star-empty: #c1d4ed;
  --table-scrollbar-color: #63a3f8;
  --table-scrollbar-hover: #245fe7;

  /* 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-ea2be6 {
  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-062d21 {
  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-f4baff {
  display: none;
}

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

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

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

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

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

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

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

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

/* ---------- Bonus Button (header CTA) ---------- */
.c-d990e7 {
  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-d990e7: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-76c4b6 {
  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-76c4b6 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-82c77c {
    justify-content: space-between;
    padding-right: 40px;
  }

  .c-7bbdf3 {
    display: none;
  }

  .c-76c4b6 {
    display: flex;
  }

  .c-a3fa6b {
    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-a3fa6b ul {
    list-style: none;
    display: flex;
    flex-direction: column;
    margin: 0;
    padding: 0;
  }

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

  .c-a3fa6b 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-a3fa6b ul li a::after {
    content: "";
    border: 5px solid transparent;
    border-left: 5px solid var(--text-on-alt);
  }

  .c-2be840 {
    padding: 20px;
  }

  .c-2be840 .c-d990e7 {
    width: 100%;
    text-align: center;
  }

  .c-f4baff:checked ~ .c-a3fa6b {
    display: flex;
  }

  .c-f4baff:checked ~ .c-82c77c .c-76c4b6 span:nth-child(1) {
    transform: rotate(45deg) translate(5px, 4px);
  }

  .c-f4baff:checked ~ .c-82c77c .c-76c4b6 span:nth-child(2) {
    opacity: 0;
  }

  .c-f4baff:checked ~ .c-82c77c .c-76c4b6 span:nth-child(3) {
    transform: rotate(-45deg) translate(5px, -5px);
  }

  .c-bfb9b1 {
    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-7bbdf3 {
    display: flex !important;
    position: static;
    height: auto;
    background: none;
    padding: 0;
  }

  .c-a3fa6b {
    display: none !important;
  }

  .c-76c4b6 {
    display: none;
  }
}

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

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

  .c-d990e7 {
    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-82d6da {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  list-style: none;
  margin: 0 0 20px 0;
  padding: 10px 0;
  font-size: 14px;
}

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

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

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

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

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

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

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

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

.c-9421a9 {
  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-9421a9 {
    font-size: 40px;
  }
}

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

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

.c-253bd5 {
  margin: 0;
  flex-shrink: 0;
}

.c-2591b5 {
  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-253bd5 img {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  object-fit: cover;
}

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

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

.c-87113f {
  display: inline-flex;
  margin: 0;
  flex-shrink: 0;
}

.c-87113f img {
  width: 16px;
  height: 16px;
  vertical-align: middle;
}

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

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

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

/* ==================================================
   Affiliate Disclosure
   ================================================== */
.c-a48134 {
  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-f5af58 {
  font-size: 13px;
  color: var(--text-muted);
  display: flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
  position: relative;
}

.c-973640 {
  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-b76d47 {
  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-b76d47::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-f5af58:hover .c-b76d47,
.c-f5af58.active .c-b76d47,
.c-973640:hover .c-b76d47,
.c-973640:focus .c-b76d47,
.c-973640.active .c-b76d47 {
  display: block;
}

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

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

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

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

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

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

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

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

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

.c-521f42 thead {
  display: none;
}

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

.c-521f42 tr,
.c-521f42 .c-1de368 {
  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-521f42 tr:hover,
.c-521f42 .c-1de368:hover {
  transform: translateY(-2px);
  box-shadow: var(--card-shadow);
}

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

/* Position counter (::before) */
.c-521f42 tr::before,
.c-521f42 .c-1de368::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-521f42 tr:nth-child(-n+3)::before,
.c-521f42 .c-1de368:nth-child(-n+3)::before {
  background: var(--registr-btn-gradient);
  color: var(--registr-btn-color);
}

/* First row: gradient border via background-clip trick */
.c-521f42 tr:first-child,
.c-521f42 .c-1de368: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-521f42 .c-01100c img,
.c-521f42 td img {
  width: 166px;
  height: 98px;
  object-fit: contain;
  border-radius: 10px;
  border: 1px solid var(--border-color);
  background: #fff;
}

/* Info area */
.c-521f42 .c-4b0ff6 {
  font-size: 18px;
  font-weight: 700;
  color: var(--text-on-alt);
}

.c-521f42 .c-e72bb4 {
  font-size: 14px;
  color: var(--text-muted);
  margin-top: 4px;
}

.c-521f42 .c-71d2e3 {
  font-size: 14px;
  color: var(--text-accent);
  margin-top: 4px;
}

/* CTA button inside table-rate (scoped to .c-b3bb67 — the small review link is NOT a button) */
.c-521f42 .c-b3bb67,
.c-521f42 .c-8f4efc a.c-b3bb67 {
  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-521f42 .c-b3bb67:hover,
.c-521f42 .c-8f4efc a.c-b3bb67:hover {
  transform: scale(1.03);
  text-decoration: none;
}

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

  .c-521f42 tr::before,
  .c-521f42 .c-1de368::before {
    position: absolute;
    top: 12px;
    left: 12px;
    min-width: 28px;
    height: 28px;
    font-size: 12px;
  }

  .c-521f42 .c-01100c img,
  .c-521f42 td img {
    width: 140px;
    height: 82px;
  }

  .c-521f42 .c-b3bb67,
  .c-521f42 .c-8f4efc a.c-b3bb67 {
    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-46976a {
  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-46976a table {
  margin: 0 !important;
  box-shadow: none !important;
  min-width: 700px;
}

.c-46976a::-webkit-scrollbar {
  height: 8px;
}

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

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

.c-46976a::-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-2886a5.css paints buttons (incl.
   :hover) with --button-base/--button-hover (rule 194a).
   ================================================== */
.c-432c26 {
  max-width: 1110px;
  margin: 30px auto;
}

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

.c-c5529c {
  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-c5529c:hover {
  background: none;
  box-shadow: none;
  transform: none;
  color: var(--text-accent);
}

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

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

.c-3f3a87 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-3f3a87 ul {
    grid-template-columns: 1fr 1fr;
  }
}

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

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

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

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

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

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

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

  .c-3f3a87 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-1b7f66 {
  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-588be5 {
  max-width: 1110px;
  margin: 30px auto;
}

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

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

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

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

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

.c-10e6f6:hover,
.c-ab35d2 li:hover {
  transform: scale(1.03);
}

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

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

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

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

  .c-10e6f6,
  .c-ab35d2 li {
    padding: 8px;
  }
}

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

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

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

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

/* ==================================================
   Main Button (CTA in content)
   ================================================== */
.c-9e54b9 {
  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-9e54b9:hover {
  transform: scale(1.02);
  text-decoration: none;
}

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

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

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

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

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

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

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

.c-759986 li a {
  /* .c-f25dee 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-759986 li a:hover {
  opacity: 1;
  text-decoration: underline;
}

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

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

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

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

/* Footer Images / Trust Logos */
.c-f25dee .c-558b49 {
  margin-bottom: 20px;
}

.c-f25dee .c-558b49 .c-dbe2eb {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 20px;
}

.c-f25dee .c-558b49 .c-dbe2eb .c-b0e0f3 img {
  max-width: 120px;
  height: auto;
  border-radius: 10px;
  transition: transform 0.3s ease;
}

.c-f25dee .c-558b49 .c-dbe2eb .c-b0e0f3 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-f25dee .c-9aa21b {
  font-size: 0.9rem;
}

.c-f25dee .c-828b08 {
  /* footer is --background-alt: --text-muted equals the 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-58d7c7 {
  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-b77057,
.c-894dd3 {
  display: flex;
  flex-direction: column;
  gap: 15px;
}

.c-b77057 h4,
.c-894dd3 h4 {
  margin: 0;
  color: var(--button-base);
  font-size: 16px;
  font-weight: 600;
}

.c-b77057 p,
.c-894dd3 p {
  margin: 0;
  line-height: 1.6;
  color: var(--text-main);
}

.c-b77057 ul,
.c-894dd3 ul,
.c-b77057 ol,
.c-894dd3 ol {
  margin: 0;
  padding-left: 0;
  list-style: none;
}

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

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

.c-b77057 ol,
.c-894dd3 ol {
  counter-reset: list-item;
}

.c-b77057 ol li,
.c-894dd3 ol li {
  counter-increment: list-item;
}

.c-b77057 ol li::before,
.c-894dd3 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-58d7c7 {
    grid-template-columns: 1fr;
    gap: 20px;
  }
}

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

  .c-b77057 h4,
  .c-894dd3 h4 {
    font-size: 15px;
  }
}

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

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

  .c-062d21 {
    padding: 0 12px;
  }

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

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

/* ==================================================
   REVIEW CONTENT BLOCKS (Chunk 3a)
   Appended after content-section rules on purpose: blocks authored inside
   ARTICLE_TEXT live in .c-9da135, so their <p>/text rules must come
   later in source order to win same-specificity ties (e.g. .c-9da135 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-92a446. */
.c-fb37fa {
  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-385f3b img {
  width: 180px;
  height: 110px;
  object-fit: contain;
  border-radius: 10px;
  border: 1px solid var(--border-color);
  background: #fff;
}

.c-92a446 {
  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-a5cadf {
  min-width: 0;
  display: flow-root; /* contain the floated score badge */
}

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

.c-e851a9 {
  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-77683f {
  font-size: 20px;
  font-weight: 800;
  color: var(--text-on-alt);
}

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

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

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

.c-7806ad {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

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

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

.c-77a301 .c-d990e7 {
  animation: none; /* the card is already prominent — avoid double pulse with header */
}

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

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

  .c-385f3b img,
  .c-92a446 {
    margin: 0 auto;
  }

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

  .c-7806ad {
    justify-content: center;
  }

  .c-77a301 .c-d990e7 {
    width: 100%;
  }
}

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

.c-01ad7e,
.c-2be6cf {
  padding: 20px 22px;
  background: var(--background-alt);
  border-radius: 12px;
  border-top: 4px solid var(--border-color);
}

.c-01ad7e { border-top-color: var(--positive); }
.c-2be6cf { border-top-color: var(--negative); }

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

.c-01ad7e h3::before { content: "\2714"; color: var(--positive); }
.c-2be6cf h3::before { content: "\2716"; color: var(--negative); }

.c-01ad7e ul,
.c-2be6cf ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

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

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

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

@media (max-width: 767px) {
  .c-a2c3d6 {
    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-3310e2 {
  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-7df433 {
  display: block;
  margin-bottom: 6px;
  font-size: 14px;
  font-weight: 700;
  color: var(--text-main);
}

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

.c-f63d55 { border-left-color: var(--positive); }
.c-d265f5 { border-left-color: var(--warning); }
.c-ec4686 { border-left-color: var(--info); }
.c-36914c { 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-4d6827 p rules win same-specificity
   ties over .c-9da135 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-94c257 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  max-width: 1110px;
  margin: 30px auto;
}

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

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

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

.c-918d9b td:nth-child(2) {
  background: var(--background-body) !important;
  font-weight: 700;
}

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

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

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

.c-3db2e9: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-f5d2af { display: block; font-weight: 700; color: var(--text-on-alt); }
.c-02e4df { display: block; margin-top: 4px; font-size: 12px; color: var(--text-on-alt); opacity: 0.8; }

@media (max-width: 767px) {
  .c-9f80fd { flex-direction: column; }
  .c-3db2e9:not(:last-child) { margin-right: 0; margin-bottom: 28px; }
  .c-3db2e9: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-c0b79d {
  max-width: 1110px;
  margin: 24px auto;
  padding: 18px 20px;
  background: var(--background-alt);
  border-radius: 12px;
  border-left: 4px solid var(--text-accent);
}

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

/* ---------- Verdict Card (score + best-for / weak-on / avoid-if) ---------- */
.c-f3305d {
  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-ec3240 {
  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-d59825 { font-size: 28px; font-weight: 800; color: var(--text-main); }
.c-dfe414 { margin-top: 2px; font-size: 11px; color: var(--text-muted); }

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

.c-045312 { position: relative; padding-left: 24px; }
.c-045312::before { position: absolute; left: 0; }
.c-21b444::before { content: "\2714"; color: var(--positive); }
.c-7d363c::before { content: "\26A0"; color: var(--warning); }
.c-40620a::before { content: "\2716"; color: var(--negative); }

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

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

/* .c-3baafd 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-04e412 { min-width: 0; }
.c-eb9344 { margin-bottom: 6px; font-size: 13px; color: var(--text-muted); }
.c-3baafd p { margin: 6px 0; line-height: 1.6; color: var(--text-on-alt); }
.c-0384b9 { font-size: 12px; font-style: italic; color: var(--text-muted); }

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

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

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

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

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

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

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

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

.c-83dfd8 {
  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-9fde68 { 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-fa96fa h3 + p) ---------- */
.c-fa96fa h3 {
  cursor: pointer;
  position: relative;
  padding-right: 32px;
}

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

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

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

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

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

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

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

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

.c-f1e30e img,
.c-69a282 {
  width: 120px;
  height: 72px;
  border-radius: 8px;
}

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

.c-69a282 {
  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-b0685d { font-weight: 700; color: var(--text-on-alt); }
.c-0cc63f { flex-grow: 1; font-size: 13px; color: var(--text-muted); }
.c-50c173 .c-d990e7 { width: 100%; animation: none; }

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

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

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

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

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

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

.c-e3a12e 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-01ad7e h3::before, .c-2be6cf h3::before,
.c-01ad7e h4::before, .c-2be6cf h4::before,
.c-01ad7e li::before, .c-2be6cf li::before,
.c-21b444::before, .c-7d363c::before, .c-40620a::before,
.c-f63d55 .c-7df433::before, .c-d265f5 .c-7df433::before,
.c-ec4686 .c-7df433::before, .c-36914c .c-7df433::before,
.c-b547bf::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-01ad7e h3::before, .c-01ad7e h4::before, .c-01ad7e li::before, .c-21b444::before {
  -webkit-mask-image: url(icons/ui/check.svg);
  mask-image: url(icons/ui/check.svg);
  background-color: var(--positive);
}
.c-2be6cf h3::before, .c-2be6cf h4::before, .c-2be6cf li::before, .c-40620a::before {
  -webkit-mask-image: url(icons/ui/cross.svg);
  mask-image: url(icons/ui/cross.svg);
  background-color: var(--negative);
}
.c-7d363c::before, .c-d265f5 .c-7df433::before {
  -webkit-mask-image: url(icons/ui/warning.svg);
  mask-image: url(icons/ui/warning.svg);
  background-color: var(--warning);
}
.c-f63d55 .c-7df433::before {
  -webkit-mask-image: url(icons/ui/bulb.svg);
  mask-image: url(icons/ui/bulb.svg);
  background-color: var(--positive);
}
.c-ec4686 .c-7df433::before {
  -webkit-mask-image: url(icons/ui/magnifier.svg);
  mask-image: url(icons/ui/magnifier.svg);
  background-color: var(--info);
}
.c-36914c .c-7df433::before {
  -webkit-mask-image: url(icons/ui/chart.svg);
  mask-image: url(icons/ui/chart.svg);
  background-color: var(--text-accent);
}
.c-b547bf::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-01ad7e h3::before, .c-2be6cf h3::before,
.c-01ad7e h4::before, .c-2be6cf h4::before { width: 1em; height: 1em; }
.c-01ad7e li::before, .c-2be6cf li::before { width: 1em; height: 1em; top: 0.2em; }
.c-21b444::before, .c-7d363c::before, .c-40620a::before {
  width: 1.05em; height: 1.05em; top: 0.15em;
}
.c-f63d55 .c-7df433::before, .c-d265f5 .c-7df433::before,
.c-ec4686 .c-7df433::before, .c-36914c .c-7df433::before,
.c-b547bf::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-28a64e {
  max-width: 1110px;
  margin: 24px auto;
  display: grid;
  gap: 10px;
}

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

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

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

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

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

@media (max-width: 767px) {
  .c-2bf475 { grid-template-columns: 104px 1fr auto; gap: 8px; }
  .c-f41ac5 { font-size: 12.5px; }
}

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

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

.c-521f42 .c-a7ecca { display: block; }

.c-521f42 .c-1e5470 {
  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-521f42 .c-8f4efc { justify-self: end; }

.c-521f42 .c-fc135d {
  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-521f42 .c-8daacb {
  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-521f42 .c-e1a0f0 {
  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-521f42 .c-aecf99 {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 16px;
  margin-top: 6px;
}

.c-521f42 .c-0c0303 {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--text-on-alt);
}

.c-521f42 .c-0c0303 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-521f42 .c-721f70 {
  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-521f42 .c-aecf99 { justify-content: center; }
}

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

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

.c-521f42 .c-1e5470 {
  min-width: 34px;
  height: 34px;
  font-size: 13px;
  border-width: 2px;
}

/* Emphasis swap: the BONUS is the loud line, the name is secondary */
.c-521f42 .c-4b0ff6 {
  font-size: 15px;
  font-weight: 600;
}

.c-521f42 .c-e72bb4 {
  font-size: 18px;
  font-weight: 800;
  color: var(--text-on-alt);
  margin-top: 2px;
}

.c-521f42 .c-e72bb4 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-521f42 .c-9d5837 {
  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-521f42 .c-8f4efc {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}

.c-521f42 .c-721f70 {
  margin-left: 0;
  font-size: 12px;
}

@media (max-width: 767px) {
  .c-521f42 .c-a7ecca { top: 12px; right: 12px; }
}

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

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

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

/* Back to top — bonus.c-f7e4df panel button; desktop only */
.c-9a2967 {
  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-9a2967 svg { width: 22px; height: 22px; }

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

@media (max-width: 767px) {
  .c-521f42 .c-1e23a3 { text-align: center; align-items: center; }
  .c-521f42 .c-8f4efc { justify-self: stretch; width: 100%; }
  .c-521f42 .c-fc135d { width: 140px; height: 82px; }
}

/* Header bonus button — wrap instead of overflowing past the logo on phones */
@media (max-width: 767px) {
  .c-af4cb0 .c-d990e7 {
    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-b76d47 {
  left: -8px;
  transform: none;
  width: min(280px, calc(100vw - 40px));
}

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

@media (max-width: 767px) {
  .c-b76d47 { left: -8px; right: auto; }
  .c-b76d47::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-5280a2 { margin-bottom: 20px; }

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

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

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

.c-2591b5,
.c-253bd5 img {
  width: 36px;
  height: 36px;
  font-size: 16px;
}

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

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

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

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

@media (max-width: 767px) {
  .c-e851a9 { 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-9a2967 {
  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-9a2967.show {
  opacity: 1;
  pointer-events: auto;
}

/* Author verified badge — file-based mask icon (replaces the base64 <img>) */
.c-87113f::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-9a2967 {
  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-9a2967 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-521f42 .c-8f4efc {
  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-9a2967 { display: none; }

  /* mobile breathing room: params spacing + slightly tighter row padding */
  .c-521f42 .c-aecf99 { margin-top: 10px; gap: 8px 18px; }
  .c-521f42 tr,
  .c-521f42 .c-1de368 { padding: 18px 14px 16px; }

  /* small text link, not full-width: review link is excluded from a.c-b3bb67 rules */
  .c-521f42 .c-721f70 { width: auto; }
}

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

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

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

.c-521f42 .c-67dded {
  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-521f42 .c-a5640e {
  display: block;
  font-size: 10.5px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.3px;
  color: var(--text-accent);
}

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

.c-521f42 .c-3a914e {
  border-color: var(--text-accent);
  box-shadow: 0 0 10px var(--text-accent);
}

.c-521f42 .c-62a951 {
  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-521f42 .c-6e1cef {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
}

.c-521f42 .c-b3ef04 {
  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-7f12b0 tr,
.c-7f12b0 .c-1de368 {
  padding: 20px;
}

@media (max-width: 767px) {
  .c-521f42 .c-dc2550 { justify-content: center; }
  .c-521f42 .c-67dded { width: 100%; max-width: 100%; text-align: center; }
  .c-521f42 .c-6e1cef { justify-content: center; }
}

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

.c-dde77b {
  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-dde77b:hover {
  text-decoration: none;
  transform: scale(1.03);
}

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

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

.c-1496da {
  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-09780e.open .c-1496da { display: flex; }

.c-6132a5 {
  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-6132a5:hover {
  border-color: var(--text-accent);
  text-decoration: none;
}

.c-c472ce {
  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-55f88b {
  display: block;
  font-size: 12px;
  font-weight: 600;
  color: var(--text-on-alt);
  opacity: 0.8;
}

.c-3b4899 {
  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-dde77b {
    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-1496da {
    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-521f42 tr,
.c-521f42 .c-1de368 {
  grid-template-columns: 190px minmax(0, 1fr) auto;
}

.c-521f42 tr::before,
.c-521f42 .c-1de368::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-521f42 td.c-01100c {
  padding-left: 24px !important;
}

.c-521f42 .c-4b0ff6 {
  font-size: 16px;
}

/* review link sits a bit lower under the CTA button */
.c-521f42 .c-8f4efc {
  gap: 6px;
}

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

  .c-521f42 td.c-01100c {
    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-a3fa6b {
    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-f4baff:checked ~ .c-a3fa6b {
    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-bfb9b1 {
    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-a3fa6b ul li a {
    padding: 15px 22px;
    font-size: 16px;
    font-weight: 600;
    color: var(--text-on-alt);
  }

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

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

  /* CTA pinned to the drawer bottom */
  .c-2be840 {
    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-dde77b { position: relative; overflow: visible; }

.c-3905d1 {
  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-af4cb0 { 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-962292 {
    white-space: normal;
    max-width: min-content;
    text-align: center;
    line-height: 1.12;
  }
  .c-dde77b { max-width: none; height: auto; min-height: 36px; }
  .c-3905d1 { 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-7f12b0 .c-dc2550 {
  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-7f12b0 .c-67dded {
  flex: 0 0 clamp(180px, 76%, 270px);
  max-width: none;
  scroll-snap-align: start;
}

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

/* single bonus → no slider, chip keeps its NORMAL width (not stretched full-row) */
.c-7f12b0 .c-dc2550:has(.c-67dded:only-child) {
  overflow-x: visible;
}

@media (max-width: 767px) {
  /* keep the slider left-aligned on phones (centering hides the peek cue) */
  .c-7f12b0 .c-dc2550 { justify-content: flex-start; }
  .c-7f12b0 .c-67dded { 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-b76d47 {
    left: auto;
    right: 0;
    transform: none;
    width: min(280px, calc(100vw - 24px));
  }
  .c-b76d47::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-82c77c { padding-right: 0; }
}

/* Mobile: w11 gave .c-af4cb0 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-af4cb0 { margin-right: 8px; }
}

/* Bonus chips don't butt against the CTA button (peek chip kept clear of the gap) */
.c-7f12b0 .c-1e23a3 { padding-right: 14px; }

/* single bonus → chip at its normal width, NOT stretched to fill the row */
.c-7f12b0 .c-dc2550:has(.c-67dded:only-child) .c-67dded {
  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-6c4987 so a
   no-JS / single-chip row shows nothing. */
.c-8b243a {
  display: none;
  gap: 6px;
  margin-top: 8px;
  justify-content: center;
}

.c-6c4987 { display: flex; }

.c-c3d892 {
  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-c3d892.active {
  background: var(--text-accent);
  transform: scale(1.25);
}

@media (max-width: 767px) {
  .c-7f12b0 .c-1e23a3 { padding-right: 0; }
}

/* ==================================================
   Author box — optional bio card before the FAQ (build_site generate_author_box)
   ================================================== */
.c-3baafd {
  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-7a3343 {
  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-7a3343 img {
  width: 100%;
  height: 100%;
  border-radius: 12px;
  object-fit: cover;
}

.c-10fd03 { min-width: 0; }

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

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

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

.c-2f524c {
  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-2f524c:hover {
  transform: translateY(-2px);
  border-color: var(--text-accent);
  text-decoration: none;
}

.c-2f524c svg { width: 17px; height: 17px; flex-shrink: 0; }

@media (max-width: 767px) {
  .c-3baafd {
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 20px 16px;
  }
  .c-2ff130 { justify-content: center; }
  .c-ba2a08 { 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-7f12b0 .c-dc2550 {
  scrollbar-width: none;
  -ms-overflow-style: none;
  cursor: grab;
}
.c-7f12b0 .c-dc2550::-webkit-scrollbar { height: 0; width: 0; display: none; }

/* pagination = dashes (premiumtimesng style), not round dots */
.c-c3d892 {
  width: 20px;
  height: 4px;
  border-radius: 2px;
  transform: none;
}
.c-c3d892.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-973640 {
  background: var(--text-accent);
  border: none;
  color: var(--background-body);
}

.c-cf9f6d {
  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-a48134 {
    float: right;
    background: none;
    border: none;
    padding: 0;
    margin-top: 4px;
  }
}

/* ==================================================
   w15 — kill water.css's broken mailto pseudo-icon:
   water.c-2886a5.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-253bd5 { display: none !important; }

.c-180f6e {
  gap: 10px;
  margin-bottom: 12px;
}

.c-9c75a2 {
  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-2ab4ae { position: relative; overflow: hidden; }

.c-99d4eb {
  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-99d4eb::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 1.7em;
  background: linear-gradient(transparent, var(--background-body));
  pointer-events: none;
}

.c-eb2f99 {
  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-ab6d6a { 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-6132a5 {
  display: flex;
  align-items: center;
  gap: 10px;
}

.c-05399b {
  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-1795fa {
  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-9421a9 { margin-bottom: 30px; }
.c-2ab4ae { margin-top: 0; }


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

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

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

.c-e0109a li {
  margin: 0;
}

.c-e0109a 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-e0109a 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-2886a5.css repaints any
   <button>:hover with --button-hover (rule 194a), which would drop the
   gradient its text colour is paired with.
   ================================================== */
.c-bbcae9 {
  max-width: 800px;
  margin: 40px auto 60px;
  padding: 0 20px;
}

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

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

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

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

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

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

.c-c5c53a input,
.c-c5c53a 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-c5c53a input:focus,
.c-c5c53a textarea:focus {
  outline: none;
  border-color: var(--border-accent);
}

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

.c-b0bd00 {
  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-b0bd00:hover {
  background: var(--registr-btn-gradient);
  color: var(--registr-btn-color);
  box-shadow: none;
  transform: scale(1.02);
}

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

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

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

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

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