/* ==================================================
   Global CSS Variables (Theme Colors)
   Same variable names as base-template for preset compatibility
   ================================================== */
:root {
  --background-body: #0A1628;
  --background-alt: #132744;
  --text-main: #FFFFFF;
  --links: #E2E8F0;
  --text-on-alt: #FFFFFF;
  --button-base: #2563EB;
  --button-hover: #1D4ED8;
  --login-btn-bg: #1E3A5F;
  --login-btn-color: #FFFFFF;
  --login-btn-border: 1px solid #3B82F6;
  --registr-btn-gradient: linear-gradient(270deg, #3B82F6 100%, #1D4ED8 0%);
  --registr-btn-color: #FFFFFF;
  --main-btn-gradient: linear-gradient(270deg, #3B82F6 100%, #1D4ED8 0%);
  --main-btn-color: #FFFFFF;
  --transition-speed: 0.3s;
  --text-muted: rgba(255, 255, 255, 0.6);
  --text-accent: #60A5FA;
  --border-color: rgba(255, 255, 255, 0.15);
  --border-accent: #3B82F6;
  --card-bg: rgba(19, 39, 68, 0.5);
  --card-shadow: 0 4px 20px rgba(0,0,0,0.35);
  --star-empty: #dddddd;
  --table-scrollbar-color: #60A5FA;
  --table-scrollbar-hover: #2563EB;

  /* 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-5844e6 {
  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-849774 {
  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-674f5a {
  display: none;
}

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

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

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

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

.c-6170a7 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-6170a7 ul li a:hover {
  text-decoration: underline;
}

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

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

/* ---------- Bonus Button (header CTA) ---------- */
.c-4cd081 {
  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-4cd081: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-1b5f7c {
  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-1b5f7c 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-1c5042 {
    justify-content: space-between;
    padding-right: 40px;
  }

  .c-6170a7 {
    display: none;
  }

  .c-1b5f7c {
    display: flex;
  }

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

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

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

  .c-710a68 {
    padding: 20px;
  }

  .c-710a68 .c-4cd081 {
    width: 100%;
    text-align: center;
  }

  .c-674f5a:checked ~ .c-e27687 {
    display: flex;
  }

  .c-674f5a:checked ~ .c-1c5042 .c-1b5f7c span:nth-child(1) {
    transform: rotate(45deg) translate(5px, 4px);
  }

  .c-674f5a:checked ~ .c-1c5042 .c-1b5f7c span:nth-child(2) {
    opacity: 0;
  }

  .c-674f5a:checked ~ .c-1c5042 .c-1b5f7c span:nth-child(3) {
    transform: rotate(-45deg) translate(5px, -5px);
  }

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

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

  .c-1b5f7c {
    display: none;
  }
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.c-e09eed {
  margin: 0;
  flex-shrink: 0;
}

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

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

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

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

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

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

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

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

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

.c-4e8f2f {
  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-498518 {
  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-498518::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-faa6a1:hover .c-498518,
.c-faa6a1.active .c-498518,
.c-4e8f2f:hover .c-498518,
.c-4e8f2f:focus .c-498518,
.c-4e8f2f.active .c-498518 {
  display: block;
}

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

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

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

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

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

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

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

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

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

.c-d03cbc thead {
  display: none;
}

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

.c-d03cbc tr,
.c-d03cbc .c-02a0e4 {
  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-d03cbc tr:hover,
.c-d03cbc .c-02a0e4:hover {
  transform: translateY(-2px);
  box-shadow: var(--card-shadow);
}

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

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

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

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

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

.c-d03cbc .c-8faec1 {
  font-size: 14px;
  color: var(--text-accent);
  margin-top: 4px;
}

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

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

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

  .c-d03cbc .c-a7c0ec img,
  .c-d03cbc td img {
    width: 140px;
    height: 82px;
  }

  .c-d03cbc .c-730184,
  .c-d03cbc .c-cc107e a.c-730184 {
    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-680def {
  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-680def table {
  margin: 0 !important;
  box-shadow: none !important;
  min-width: 700px;
}

.c-680def::-webkit-scrollbar {
  height: 8px;
}

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

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

.c-680def::-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-8a3e90.css paints buttons (incl.
   :hover) with --button-base/--button-hover (rule 194a).
   ================================================== */
.c-911a04 {
  max-width: 1110px;
  margin: 30px auto;
}

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

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

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

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

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

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

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

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

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

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

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

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

  .c-127cff 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-eeff9c {
  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-2d0bef {
  max-width: 1110px;
  margin: 30px auto;
}

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

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

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

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

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

.c-1a5a73:hover,
.c-8033c4 li:hover {
  transform: scale(1.03);
}

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

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

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

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

  .c-1a5a73,
  .c-8033c4 li {
    padding: 8px;
  }
}

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

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

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

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

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

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

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

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

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

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

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

.c-09dbc0 li {
  margin: 0;
  padding: 0;
}

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

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

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

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

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

/* Footer Images / Trust Logos */
.c-41e0f3 .c-355ad8 {
  margin-bottom: 20px;
}

.c-41e0f3 .c-355ad8 .c-4b653a {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 20px;
}

.c-41e0f3 .c-355ad8 .c-4b653a .c-5607ef img {
  max-width: 120px;
  height: auto;
  border-radius: 10px;
  transition: transform 0.3s ease;
}

.c-41e0f3 .c-355ad8 .c-4b653a .c-5607ef 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-41e0f3 .c-38654d {
  font-size: 0.9rem;
}

.c-41e0f3 .c-3b6e47 {
  /* 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-34e429 {
  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-69d313,
.c-34d99a {
  display: flex;
  flex-direction: column;
  gap: 15px;
}

.c-69d313 h4,
.c-34d99a h4 {
  margin: 0;
  color: var(--button-base);
  font-size: 16px;
  font-weight: 600;
}

.c-69d313 p,
.c-34d99a p {
  margin: 0;
  line-height: 1.6;
  color: var(--text-main);
}

.c-69d313 ul,
.c-34d99a ul,
.c-69d313 ol,
.c-34d99a ol {
  margin: 0;
  padding-left: 0;
  list-style: none;
}

.c-69d313 li,
.c-34d99a li {
  margin: 8px 0;
  line-height: 1.6;
  color: var(--text-main);
  padding-left: 25px;
  position: relative;
}

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

.c-69d313 ol,
.c-34d99a ol {
  counter-reset: list-item;
}

.c-69d313 ol li,
.c-34d99a ol li {
  counter-increment: list-item;
}

.c-69d313 ol li::before,
.c-34d99a 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-34e429 {
    grid-template-columns: 1fr;
    gap: 20px;
  }
}

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

  .c-69d313 h4,
  .c-34d99a h4 {
    font-size: 15px;
  }
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  .c-cf446a img,
  .c-aa1c61 {
    margin: 0 auto;
  }

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

  .c-e0c537 {
    justify-content: center;
  }

  .c-a54a74 .c-4cd081 {
    width: 100%;
  }
}

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

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

.c-eaf1b9 { border-top-color: var(--positive); }
.c-397713 { border-top-color: var(--negative); }

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

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

.c-eaf1b9 ul,
.c-397713 ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

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

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

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

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

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

.c-eecf01 { border-left-color: var(--positive); }
.c-271874 { border-left-color: var(--warning); }
.c-e823d0 { border-left-color: var(--info); }
.c-3d65cf { 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-c203db p rules win same-specificity
   ties over .c-8a5fcd 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-0e2e02 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  max-width: 1110px;
  margin: 30px auto;
}

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

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

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

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

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

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

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

.c-818401: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-7f784e { display: block; font-weight: 700; color: var(--text-on-alt); }
.c-90d521 { display: block; margin-top: 4px; font-size: 12px; color: var(--text-muted); }

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

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

/* ---------- Verdict Card (score + best-for / weak-on / avoid-if) ---------- */
.c-c534d1 {
  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-eaf4a2 {
  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);
}

.c-ed9e62 { font-size: 28px; font-weight: 800; color: var(--text-on-alt); }
.c-96c324 { margin-top: 2px; font-size: 11px; color: var(--text-muted); }

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

.c-0b0c92 { position: relative; padding-left: 24px; }
.c-0b0c92::before { position: absolute; left: 0; }
.c-d2a451::before { content: "\2714"; color: var(--positive); }
.c-099cc8::before { content: "\26A0"; color: var(--warning); }
.c-f4e73c::before { content: "\2716"; color: var(--negative); }

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

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

/* .c-65e20c 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-1668c2 { min-width: 0; }
.c-b28db1 { margin-bottom: 6px; font-size: 13px; color: var(--text-muted); }
.c-65e20c p { margin: 6px 0; line-height: 1.6; color: var(--text-on-alt); }
.c-07573d { font-size: 12px; font-style: italic; color: var(--text-muted); }

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

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

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

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

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

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

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

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

.c-96c7c0 {
  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-89a80f { 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-cb1217 h3 + p) ---------- */
.c-cb1217 h3 {
  cursor: pointer;
  position: relative;
  padding-right: 32px;
}

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

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

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

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

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

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

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

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

.c-e16781 img,
.c-f1bf48 {
  width: 120px;
  height: 72px;
  border-radius: 8px;
}

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

.c-f1bf48 {
  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-770ec5 { font-weight: 700; color: var(--text-on-alt); }
.c-3e27e1 { flex-grow: 1; font-size: 13px; color: var(--text-muted); }
.c-1fb342 .c-4cd081 { width: 100%; animation: none; }

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

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

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

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

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

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

.c-35b7bd 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-eaf1b9 h3::before, .c-397713 h3::before,
.c-eaf1b9 h4::before, .c-397713 h4::before,
.c-eaf1b9 li::before, .c-397713 li::before,
.c-d2a451::before, .c-099cc8::before, .c-f4e73c::before,
.c-eecf01 .c-c3420c::before, .c-271874 .c-c3420c::before,
.c-e823d0 .c-c3420c::before, .c-3d65cf .c-c3420c::before,
.c-8c9833::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-eaf1b9 h3::before, .c-eaf1b9 h4::before, .c-eaf1b9 li::before, .c-d2a451::before {
  -webkit-mask-image: url(icons/ui/check.svg);
  mask-image: url(icons/ui/check.svg);
  background-color: var(--positive);
}
.c-397713 h3::before, .c-397713 h4::before, .c-397713 li::before, .c-f4e73c::before {
  -webkit-mask-image: url(icons/ui/cross.svg);
  mask-image: url(icons/ui/cross.svg);
  background-color: var(--negative);
}
.c-099cc8::before, .c-271874 .c-c3420c::before {
  -webkit-mask-image: url(icons/ui/warning.svg);
  mask-image: url(icons/ui/warning.svg);
  background-color: var(--warning);
}
.c-eecf01 .c-c3420c::before {
  -webkit-mask-image: url(icons/ui/bulb.svg);
  mask-image: url(icons/ui/bulb.svg);
  background-color: var(--positive);
}
.c-e823d0 .c-c3420c::before {
  -webkit-mask-image: url(icons/ui/magnifier.svg);
  mask-image: url(icons/ui/magnifier.svg);
  background-color: var(--info);
}
.c-3d65cf .c-c3420c::before {
  -webkit-mask-image: url(icons/ui/chart.svg);
  mask-image: url(icons/ui/chart.svg);
  background-color: var(--text-accent);
}
.c-8c9833::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-eaf1b9 h3::before, .c-397713 h3::before,
.c-eaf1b9 h4::before, .c-397713 h4::before { width: 1em; height: 1em; }
.c-eaf1b9 li::before, .c-397713 li::before { width: 1em; height: 1em; top: 0.2em; }
.c-d2a451::before, .c-099cc8::before, .c-f4e73c::before {
  width: 1.05em; height: 1.05em; top: 0.15em;
}
.c-eecf01 .c-c3420c::before, .c-271874 .c-c3420c::before,
.c-e823d0 .c-c3420c::before, .c-3d65cf .c-c3420c::before,
.c-8c9833::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-57941e {
  max-width: 1110px;
  margin: 24px auto;
  display: grid;
  gap: 10px;
}

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

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

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

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

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

@media (max-width: 767px) {
  .c-54aa7c { grid-template-columns: 104px 1fr auto; gap: 8px; }
  .c-10ef80 { font-size: 12.5px; }
}

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

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

.c-d03cbc .c-b92ce3 { display: block; }

.c-d03cbc .c-7cf06d {
  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);
  color: var(--text-on-alt);
  font-weight: 800;
  font-size: 15px;
}

.c-d03cbc .c-cc107e { justify-self: end; }

.c-d03cbc .c-9c1b8f {
  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-d03cbc .c-1a840d {
  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-d03cbc .c-aa503b {
  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-d03cbc .c-6256a9 {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 16px;
  margin-top: 6px;
}

.c-d03cbc .c-551d19 {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--text-on-alt);
}

.c-d03cbc .c-551d19 b {
  display: block;
  font-size: 10.5px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.3px;
  color: var(--text-muted);
}

.c-d03cbc .c-bd93ee {
  margin-left: 8px;
  font-size: 12px;
  font-weight: 400;
  color: var(--text-accent);
  text-decoration: underline;
  vertical-align: middle;
}

@media (max-width: 767px) {
  .c-d03cbc .c-6256a9 { justify-content: center; }
}

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

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

.c-d03cbc .c-7cf06d {
  min-width: 34px;
  height: 34px;
  font-size: 13px;
  border-width: 2px;
}

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

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

.c-d03cbc .c-acea7f small {
  font-size: 12.5px;
  font-weight: 400;
  color: var(--text-muted);
}

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

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

.c-d03cbc .c-bd93ee {
  margin-left: 0;
  font-size: 12px;
}

@media (max-width: 767px) {
  .c-d03cbc .c-b92ce3 { top: 12px; right: 12px; }
}

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

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

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

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

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

@media (max-width: 767px) {
  .c-d03cbc .c-158759 { text-align: center; align-items: center; }
  .c-d03cbc .c-cc107e { justify-self: stretch; width: 100%; }
  .c-d03cbc .c-9c1b8f { width: 140px; height: 82px; }
}

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

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

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

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

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

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

.c-f51daa,
.c-e09eed img {
  width: 36px;
  height: 36px;
  font-size: 16px;
}

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

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

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

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

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

/* Author verified badge — file-based mask icon (replaces the base64 <img>) */
.c-df3486::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-26b1fa {
  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-26b1fa 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-d03cbc .c-cc107e {
  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-26b1fa { display: none; }

  /* mobile breathing room: params spacing + slightly tighter row padding */
  .c-d03cbc .c-6256a9 { margin-top: 10px; gap: 8px 18px; }
  .c-d03cbc tr,
  .c-d03cbc .c-02a0e4 { padding: 18px 14px 16px; }

  /* small text link, not full-width: review link is excluded from a.c-730184 rules */
  .c-d03cbc .c-bd93ee { width: auto; }
}

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

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

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

.c-d03cbc .c-06ecd3 {
  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-d03cbc .c-fb2faa {
  display: block;
  font-size: 10.5px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.3px;
  color: var(--text-accent);
}

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

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

.c-d03cbc .c-28d1c2 {
  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-d03cbc .c-e8b8af {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
}

.c-d03cbc .c-0aefe8 {
  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-8de87d tr,
.c-8de87d .c-02a0e4 {
  padding: 20px;
}

@media (max-width: 767px) {
  .c-d03cbc .c-fd878d { justify-content: center; }
  .c-d03cbc .c-06ecd3 { width: 100%; max-width: 100%; text-align: center; }
  .c-d03cbc .c-e8b8af { justify-content: center; }
}

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

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

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

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

.c-a04115 {
  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-38d339.open .c-a04115 { display: flex; }

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

.c-42d9a5 {
  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-27a27a {
  display: block;
  font-size: 12px;
  font-weight: 600;
  color: var(--text-muted);
}

.c-d3b36f {
  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-dce64e {
    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-a04115 {
    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-d03cbc tr,
.c-d03cbc .c-02a0e4 {
  grid-template-columns: 190px minmax(0, 1fr) auto;
}

.c-d03cbc tr::before,
.c-d03cbc .c-02a0e4::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-d03cbc td.c-a7c0ec {
  padding-left: 24px !important;
}

.c-d03cbc .c-a6ce77 {
  font-size: 16px;
}

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

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

  .c-d03cbc td.c-a7c0ec {
    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-e27687 {
    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-674f5a:checked ~ .c-e27687 {
    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-09572f {
    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-e27687 ul li a {
    padding: 15px 22px;
    font-size: 16px;
    font-weight: 600;
    color: var(--text-on-alt);
  }

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

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

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

.c-b22580 {
  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-afff55 { 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-eedc06 {
    white-space: normal;
    max-width: min-content;
    text-align: center;
    line-height: 1.12;
  }
  .c-dce64e { max-width: none; height: auto; min-height: 36px; }
  .c-b22580 { 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-8de87d .c-fd878d {
  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-8de87d .c-06ecd3 {
  flex: 0 0 clamp(180px, 76%, 270px);
  max-width: none;
  scroll-snap-align: start;
}

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

/* single bonus → no slider, chip keeps its NORMAL width (not stretched full-row) */
.c-8de87d .c-fd878d:has(.c-06ecd3:only-child) {
  overflow-x: visible;
}

@media (max-width: 767px) {
  /* keep the slider left-aligned on phones (centering hides the peek cue) */
  .c-8de87d .c-fd878d { justify-content: flex-start; }
  .c-8de87d .c-06ecd3 { 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-498518 {
    left: auto;
    right: 0;
    transform: none;
    width: min(280px, calc(100vw - 24px));
  }
  .c-498518::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-1c5042 { padding-right: 0; }
}

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

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

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

.c-33ff02 { display: flex; }

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

@media (max-width: 767px) {
  .c-8de87d .c-158759 { padding-right: 0; }
}

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

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

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

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

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

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

.c-8d44b4 svg { width: 17px; height: 17px; flex-shrink: 0; }

@media (max-width: 767px) {
  .c-65e20c {
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 20px 16px;
  }
  .c-a5d0b5 { justify-content: center; }
  .c-546804 { 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-8de87d .c-fd878d {
  scrollbar-width: none;
  -ms-overflow-style: none;
  cursor: grab;
}
.c-8de87d .c-fd878d::-webkit-scrollbar { height: 0; width: 0; display: none; }

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

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

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

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

.c-a15df0 {
  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-6e4432 { position: relative; overflow: hidden; }

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

.c-28644e {
  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-52a6f4 { 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-8080ca {
  display: flex;
  align-items: center;
  gap: 10px;
}

.c-1e8594 {
  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-b78d1e {
  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-15712f { margin-bottom: 30px; }
.c-6e4432 { margin-top: 0; }


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

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

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

.c-d5f32f li {
  margin: 0;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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