/* ==================================================
   Global CSS Variables (Theme Colors)
   Same variable names as base-template for preset compatibility
   ================================================== */
:root {
  --background-body: #f8edfc;
  --background-alt: #2b195f;
  --text-main: #201c30;
  --links: #241a2a;
  --text-on-alt: #ffffff;
  --button-base: #803eea;
  --button-hover: #7028d7;
  --login-btn-bg: #2d1c62;
  --login-btn-color: #fffbff;
  --login-btn-border: none;
  --registr-btn-gradient: linear-gradient(270deg, #8b5ef9 100%, #7a3cef 0%);
  --registr-btn-color: #fffdff;
  --main-btn-gradient: linear-gradient(270deg, #8d5cf8 100%, #7839e9 0%);
  --main-btn-color: #fcffff;
  --transition-speed: 0.3s;
  --text-muted: rgba(0, 0, 0, 0.55);
  --text-accent: #6b28d9;
  --border-color: rgba(0, 0, 0, 0.12);
  --border-accent: #7e3ef1;
  --card-bg: rgba(124, 58, 237, 0.04);
  --card-shadow: 0 4px 20px rgba(0,0,0,0.06);
  --star-empty: #ccbaec;
  --table-scrollbar-color: #a98af9;
  --table-scrollbar-hover: #7837f1;

  /* 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-bdfdc9 {
  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-b020a2 {
  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-4601e9 {
  display: none;
}

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

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

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

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

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

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

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

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

/* ---------- Bonus Button (header CTA) ---------- */
.c-21597b {
  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-21597b: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-616688 {
  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-616688 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-599c4d {
    justify-content: space-between;
    padding-right: 40px;
  }

  .c-ed25f6 {
    display: none;
  }

  .c-616688 {
    display: flex;
  }

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

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

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

  .c-671f71 {
    padding: 20px;
  }

  .c-671f71 .c-21597b {
    width: 100%;
    text-align: center;
  }

  .c-4601e9:checked ~ .c-5e1acf {
    display: flex;
  }

  .c-4601e9:checked ~ .c-599c4d .c-616688 span:nth-child(1) {
    transform: rotate(45deg) translate(5px, 4px);
  }

  .c-4601e9:checked ~ .c-599c4d .c-616688 span:nth-child(2) {
    opacity: 0;
  }

  .c-4601e9:checked ~ .c-599c4d .c-616688 span:nth-child(3) {
    transform: rotate(-45deg) translate(5px, -5px);
  }

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

  .c-5e1acf {
    display: none !important;
  }

  .c-616688 {
    display: none;
  }
}

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

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

  .c-21597b {
    padding: 8px 16px;
    font-size: 14px;
  }
}

/* ==== COUNTRY MENU (multi-geo) ==== */
/* Domain Groups: the composer puts <details class="geo-menu"> into .c-ecf9bc,
   right before .c-e6a475 — a compact "flag + code" toggle that opens the list
   of every country of the domain. No JS: native <details>/<summary>. Lives in the
   TEMPLATE so the obfuscation map knows these classes (rule 105/173); the composer
   copies this exact block into members whose style.css predates it
   (dgReviewGeoMenuCss). On --background-alt only --text-on-alt (rules 58/194/245);
   states change the border/weight, never the text colour. The resets undo
   water.c-48dbc6.css's own <details>/<summary> look (overflow:hidden would clip the list). */
.c-629b42 {
  position: relative;
  display: block;
  margin: 0;
  padding: 0;
  background: none;
  border-radius: 0;
  overflow: visible;
}
.c-629b42[open] { padding: 0; }
.c-eedd38 {
  display: flex;
  align-items: center;
  gap: 6px;
  height: 38px;
  margin: 0;
  padding: 0 10px;
  list-style: none;
  background: transparent;
  border: 1px solid var(--border-color);
  border-radius: 8px;
  color: var(--text-on-alt);
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  user-select: none;
}
.c-629b42[open] > .c-eedd38 { margin-bottom: 0; border-color: var(--border-accent); }
.c-eedd38:hover,
.c-eedd38:focus { text-decoration: none; border-color: var(--border-accent); }
.c-eedd38:focus-visible { outline: 2px solid var(--border-accent); outline-offset: 2px; }
.c-eedd38::-webkit-details-marker { display: none; }
.c-eedd38::marker { content: ""; }
.c-eedd38::after {
  content: "";
  width: 6px;
  height: 6px;
  margin-left: 2px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: translateY(-2px) rotate(45deg);
}
.c-629b42[open] > .c-eedd38::after { transform: translateY(2px) rotate(-135deg); }
.c-eedd38 img,
.c-86d980 img {
  display: block;
  flex: 0 0 auto;
  width: 20px;
  height: 15px;
  object-fit: cover;
  border-radius: 2px;
}
.c-86d980 {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  z-index: 1002;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2px;
  width: 420px;
  max-height: min(70vh, 520px);
  overflow-y: auto;
  margin: 0;
  padding: 8px;
  list-style: none;
  background: var(--background-alt);
  border: 1px solid var(--border-color);
  border-radius: 10px;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.35);
}
.c-67dab9 { margin: 0; padding: 0; }
.c-67dab9::before { content: none; }
.c-67dab9 a {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 10px;
  border: 1px solid transparent;
  border-radius: 6px;
  color: var(--text-on-alt);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.25;
  text-decoration: none;
}
.c-67dab9 a:hover { border-color: var(--border-color); text-decoration: none; }
.c-f14c08 a { border-color: var(--border-accent); font-weight: 700; }
@media (max-width: 767px) {
  .c-eedd38 { height: 34px; padding: 0 8px; gap: 5px; }
  .c-342375 { display: none; }
  /* full-width sheet under the fixed 54px header */
  .c-86d980 {
    position: fixed;
    top: 54px;
    left: 0;
    right: 0;
    width: auto;
    max-height: calc(100vh - 54px);
    border-radius: 0 0 10px 10px;
  }
}
/* ==== /COUNTRY MENU ==== */

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.c-239821 {
  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-b03ea8 {
  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-b03ea8::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-2464bf:hover .c-b03ea8,
.c-2464bf.active .c-b03ea8,
.c-239821:hover .c-b03ea8,
.c-239821:focus .c-b03ea8,
.c-239821.active .c-b03ea8 {
  display: block;
}

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

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

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

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

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

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

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

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

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

.c-2291e4 thead {
  display: none;
}

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

.c-2291e4 tr,
.c-2291e4 .c-14d19a {
  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-2291e4 tr:hover,
.c-2291e4 .c-14d19a:hover {
  transform: translateY(-2px);
  box-shadow: var(--card-shadow);
}

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

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

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

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

.c-2291e4 .c-3d03cc {
  font-size: 14px;
  color: var(--text-muted);
  margin-top: 4px;
}

.c-2291e4 .c-d5912c {
  font-size: 14px;
  color: var(--text-accent);
  margin-top: 4px;
}

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

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

  .c-2291e4 tr::before,
  .c-2291e4 .c-14d19a::before {
    position: absolute;
    top: 12px;
    left: 12px;
    min-width: 28px;
    height: 28px;
    font-size: 12px;
  }

  .c-2291e4 .c-06e1f3 img,
  .c-2291e4 td img {
    width: 140px;
    height: 82px;
  }

  .c-2291e4 .c-0e229e,
  .c-2291e4 .c-7f7424 a.c-0e229e {
    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-d1f964 {
  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-d1f964 table {
  margin: 0 !important;
  box-shadow: none !important;
  min-width: 700px;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  .c-8a2968 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-758f2e {
  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-473e2e {
  max-width: 1110px;
  margin: 30px auto;
}

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

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

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

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

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

.c-e1a842:hover,
.c-add6fd li:hover {
  transform: scale(1.03);
}

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

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

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

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

  .c-e1a842,
  .c-add6fd li {
    padding: 8px;
  }
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

/* Footer Images / Trust Logos */
.c-93e351 .c-c97025 {
  margin-bottom: 20px;
}

.c-93e351 .c-c97025 .c-b5f5bb {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 20px;
}

.c-93e351 .c-c97025 .c-b5f5bb .c-b3216e img {
  max-width: 120px;
  height: auto;
  border-radius: 10px;
  transition: transform 0.3s ease;
}

.c-93e351 .c-c97025 .c-b5f5bb .c-b3216e 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-93e351 .c-ffe8bd {
  font-size: 0.9rem;
}

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

/* ==================================================
   Two-Column Text Blocks
   ================================================== */
.c-b4522d {
  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-73d5f9,
.c-251faf {
  display: flex;
  flex-direction: column;
  gap: 15px;
}

.c-73d5f9 h4,
.c-251faf h4 {
  margin: 0;
  color: var(--button-base);
  font-size: 16px;
  font-weight: 600;
}

.c-73d5f9 p,
.c-251faf p {
  margin: 0;
  line-height: 1.6;
  color: var(--text-main);
}

.c-73d5f9 ul,
.c-251faf ul,
.c-73d5f9 ol,
.c-251faf ol {
  margin: 0;
  padding-left: 0;
  list-style: none;
}

.c-73d5f9 li,
.c-251faf li {
  margin: 8px 0;
  line-height: 1.6;
  color: var(--text-main);
  padding-left: 25px;
  position: relative;
}

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

.c-73d5f9 ol,
.c-251faf ol {
  counter-reset: list-item;
}

.c-73d5f9 ol li,
.c-251faf ol li {
  counter-increment: list-item;
}

.c-73d5f9 ol li::before,
.c-251faf 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-b4522d {
    grid-template-columns: 1fr;
    gap: 20px;
  }
}

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

  .c-73d5f9 h4,
  .c-251faf h4 {
    font-size: 15px;
  }
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.c-a0bbdc .c-21597b {
  animation: none; /* the card is already prominent — avoid double pulse with header */
}

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

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

  .c-ef6a61 img,
  .c-b600ab {
    margin: 0 auto;
  }

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

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

  .c-a0bbdc .c-21597b {
    width: 100%;
  }
}

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

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

.c-97a47c { border-top-color: var(--positive); }
.c-ce86ca { border-top-color: var(--negative); }

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

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

.c-97a47c ul,
.c-ce86ca ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

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

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

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

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

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

.c-b19fc2 { border-left-color: var(--positive); }
.c-4d855b { border-left-color: var(--warning); }
.c-727883 { border-left-color: var(--info); }
.c-4b091a { 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-e41b77 p rules win same-specificity
   ties over .c-cf5297 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-5a0056 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  max-width: 1110px;
  margin: 30px auto;
}

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

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

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

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

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

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

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

.c-1156fe: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-513af1 { display: block; font-weight: 700; color: var(--text-on-alt); }
.c-66b2c5 { display: block; margin-top: 4px; font-size: 12px; color: var(--text-on-alt); opacity: 0.8; }

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

.c-a5d6ab h3 { margin: 0 0 8px; font-size: 16px; color: var(--text-on-alt); }
/* The box is --background-alt, but a bare <a> inside it fell through to the global
   `a { --text-accent }` — a body colour — and measured 2.43:1 live (fails 17/45).
   Underline carries the affordance instead of the hue. */
.c-a5d6ab a { color: var(--text-on-alt); text-decoration: underline; text-underline-offset: 3px; }
.c-a5d6ab p { margin: 6px 0; line-height: 1.6; color: var(--text-on-alt); }
.c-a5d6ab ul { margin: 8px 0 0; padding-left: 22px; }
.c-a5d6ab li { margin: 4px 0; color: var(--text-on-alt); }

/* ---------- Verdict Card (score + best-for / weak-on / avoid-if) ---------- */
.c-99e651 {
  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-af3ed4 {
  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-31a7f6 { font-size: 28px; font-weight: 800; color: var(--text-main); }
.c-6d337c { margin-top: 2px; font-size: 11px; color: var(--text-muted); }

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

.c-47588d { position: relative; padding-left: 24px; }
.c-47588d::before { position: absolute; left: 0; }
.c-95dba3::before { content: "\2714"; color: var(--positive); }
.c-b22c41::before { content: "\26A0"; color: var(--warning); }
.c-de1a58::before { content: "\2716"; color: var(--negative); }

@media (max-width: 767px) {
  .c-99e651 { flex-direction: column; align-items: center; text-align: center; }
  .c-47588d { text-align: left; }
}

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

/* .c-5b1d72 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-772a67 { min-width: 0; }
.c-55abeb { margin-bottom: 6px; font-size: 13px; color: var(--text-muted); }
.c-5b1d72 p { margin: 6px 0; line-height: 1.6; color: var(--text-on-alt); }
.c-a29ea0 { font-size: 12px; font-style: italic; color: var(--text-muted); }

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

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

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

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

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

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

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

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

.c-09c29e {
  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-a7b7eb { 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-a54592 h3 + p) ---------- */
.c-a54592 h3 {
  cursor: pointer;
  position: relative;
  padding-right: 32px;
}

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

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

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

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

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

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

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

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

.c-7efada img,
.c-6af7d1 {
  width: 120px;
  height: 72px;
  border-radius: 8px;
}

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

.c-6af7d1 {
  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-8714d6 { font-weight: 700; color: var(--text-on-alt); }
.c-9dfb14 { flex-grow: 1; font-size: 13px; color: var(--text-muted); }
.c-f74e2f .c-21597b { width: 100%; animation: none; }

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

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

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

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

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

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

.c-ed434c 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-97a47c h3::before, .c-ce86ca h3::before,
.c-97a47c h4::before, .c-ce86ca h4::before,
.c-97a47c li::before, .c-ce86ca li::before,
.c-95dba3::before, .c-b22c41::before, .c-de1a58::before,
.c-b19fc2 .c-a5e51e::before, .c-4d855b .c-a5e51e::before,
.c-727883 .c-a5e51e::before, .c-4b091a .c-a5e51e::before,
.c-3ae11f::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-97a47c h3::before, .c-97a47c h4::before, .c-97a47c li::before, .c-95dba3::before {
  -webkit-mask-image: url(icons/ui/check.svg);
  mask-image: url(icons/ui/check.svg);
  background-color: var(--positive);
}
.c-ce86ca h3::before, .c-ce86ca h4::before, .c-ce86ca li::before, .c-de1a58::before {
  -webkit-mask-image: url(icons/ui/cross.svg);
  mask-image: url(icons/ui/cross.svg);
  background-color: var(--negative);
}
.c-b22c41::before, .c-4d855b .c-a5e51e::before {
  -webkit-mask-image: url(icons/ui/warning.svg);
  mask-image: url(icons/ui/warning.svg);
  background-color: var(--warning);
}
.c-b19fc2 .c-a5e51e::before {
  -webkit-mask-image: url(icons/ui/bulb.svg);
  mask-image: url(icons/ui/bulb.svg);
  background-color: var(--positive);
}
.c-727883 .c-a5e51e::before {
  -webkit-mask-image: url(icons/ui/magnifier.svg);
  mask-image: url(icons/ui/magnifier.svg);
  background-color: var(--info);
}
.c-4b091a .c-a5e51e::before {
  -webkit-mask-image: url(icons/ui/chart.svg);
  mask-image: url(icons/ui/chart.svg);
  background-color: var(--text-accent);
}
.c-3ae11f::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-97a47c h3::before, .c-ce86ca h3::before,
.c-97a47c h4::before, .c-ce86ca h4::before { width: 1em; height: 1em; }
.c-97a47c li::before, .c-ce86ca li::before { width: 1em; height: 1em; top: 0.2em; }
.c-95dba3::before, .c-b22c41::before, .c-de1a58::before {
  width: 1.05em; height: 1.05em; top: 0.15em;
}
.c-b19fc2 .c-a5e51e::before, .c-4d855b .c-a5e51e::before,
.c-727883 .c-a5e51e::before, .c-4b091a .c-a5e51e::before,
.c-3ae11f::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-b5a5bf {
  max-width: 1110px;
  margin: 24px auto;
  display: grid;
  gap: 10px;
}

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

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

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

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

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

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

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

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

.c-2291e4 .c-869f3e { display: block; }

.c-2291e4 .c-527ddb {
  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-2291e4 .c-7f7424 { justify-self: end; }

.c-2291e4 .c-0f3c0f {
  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-2291e4 .c-823a33 {
  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-2291e4 .c-56678f {
  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-2291e4 .c-0c3bf9 {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 16px;
  margin-top: 6px;
}

.c-2291e4 .c-a30f78 {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--text-on-alt);
}

.c-2291e4 .c-a30f78 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-2291e4 .c-9a2f34 {
  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-2291e4 .c-0c3bf9 { justify-content: center; }
}

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

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

.c-2291e4 .c-527ddb {
  min-width: 34px;
  height: 34px;
  font-size: 13px;
  border-width: 2px;
}

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

.c-2291e4 .c-3d03cc {
  font-size: 18px;
  font-weight: 800;
  color: var(--text-on-alt);
  margin-top: 2px;
}

.c-2291e4 .c-3d03cc 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-2291e4 .c-a5fdc2 {
  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-2291e4 .c-7f7424 {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}

.c-2291e4 .c-9a2f34 {
  margin-left: 0;
  font-size: 12px;
}

@media (max-width: 767px) {
  .c-2291e4 .c-869f3e { top: 12px; right: 12px; }
}

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

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

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

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

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

@media (max-width: 767px) {
  .c-2291e4 .c-342bb7 { text-align: center; align-items: center; }
  .c-2291e4 .c-7f7424 { justify-self: stretch; width: 100%; }
  .c-2291e4 .c-0f3c0f { width: 140px; height: 82px; }
}

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

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

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

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

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

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

.c-4163c0,
.c-e2af33 img {
  width: 36px;
  height: 36px;
  font-size: 16px;
}

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

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

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

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

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

/* Author verified badge — file-based mask icon (replaces the base64 <img>) */
.c-03c4de::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-2c8253 {
  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-2c8253 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-2291e4 .c-7f7424 {
  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-2c8253 { display: none; }

  /* mobile breathing room: params spacing + slightly tighter row padding */
  .c-2291e4 .c-0c3bf9 { margin-top: 10px; gap: 8px 18px; }
  .c-2291e4 tr,
  .c-2291e4 .c-14d19a { padding: 18px 14px 16px; }

  /* small text link, not full-width: review link is excluded from a.c-0e229e rules */
  .c-2291e4 .c-9a2f34 { width: auto; }
}

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

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

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

.c-2291e4 .c-19e4c0 {
  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-2291e4 .c-8c0b96 {
  display: block;
  font-size: 10.5px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.3px;
  /* same chip, same rule as the pay chips: --text-accent collapsed to 2.25:1 live
     and failed 19/45 presets. The chip still reads as accented — the featured
     frame and glow below keep using --text-accent, which is decorative. */
  color: var(--text-on-alt);
  opacity: 0.8;
}

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

.c-2291e4 .c-9d68a3 {
  border-color: var(--text-accent);
  box-shadow: 0 0 10px var(--text-accent);
}

.c-2291e4 .c-435108 {
  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-2291e4 .c-492d1c {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
}

.c-2291e4 .c-6885c6 {
  padding: 2px 8px;
  border-radius: 4px;
  border: 1px solid var(--border-color);
  background: var(--card-bg);
  font-size: 11px;
  font-weight: 600;
  /* The chip is --card-bg over the row over the table's --background-alt, so it
     takes the ALT pair. --text-muted is a body colour: on a mixed palette (light
     page + dark band) it measured 1.05:1 live and failed 20/45 presets — the
     payment names were simply not there. De-emphasis via opacity (rule 194c). */
  color: var(--text-on-alt);
  opacity: 0.8;
  white-space: nowrap;
}

/* Rich rows hold more content — a little extra padding */
.c-6caa60 tr,
.c-6caa60 .c-14d19a {
  padding: 20px;
}

@media (max-width: 767px) {
  .c-2291e4 .c-673abc { justify-content: center; }
  .c-2291e4 .c-19e4c0 { width: 100%; max-width: 100%; text-align: center; }
  .c-2291e4 .c-492d1c { justify-content: center; }
}

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

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

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

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

.c-b63fbc {
  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-578921.open .c-b63fbc { display: flex; }

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

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

.c-101f78 {
  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-bd60c0 {
    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-b63fbc {
    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-2291e4 tr,
.c-2291e4 .c-14d19a {
  grid-template-columns: 190px minmax(0, 1fr) auto;
}

.c-2291e4 tr::before,
.c-2291e4 .c-14d19a::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-2291e4 td.c-06e1f3 {
  padding-left: 24px !important;
}

.c-2291e4 .c-2c183a {
  font-size: 16px;
}

/* review link sits a bit lower under the CTA button */
.c-2291e4 .c-7f7424 {
  gap: 6px;
}

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

  .c-2291e4 td.c-06e1f3 {
    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-5e1acf {
    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-4601e9:checked ~ .c-5e1acf {
    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-6d04e9 {
    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-5e1acf ul li a {
    padding: 15px 22px;
    font-size: 16px;
    font-weight: 600;
    color: var(--text-on-alt);
  }

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

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

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

.c-20c8a7 {
  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-e6a475 { 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-08ab79 {
    white-space: normal;
    max-width: min-content;
    text-align: center;
    line-height: 1.12;
  }
  .c-bd60c0 { max-width: none; height: auto; min-height: 36px; }
  .c-20c8a7 { 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-6caa60 .c-673abc {
  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-6caa60 .c-19e4c0 {
  flex: 0 0 clamp(180px, 76%, 270px);
  max-width: none;
  scroll-snap-align: start;
}

.c-6caa60 .c-673abc::-webkit-scrollbar { height: 5px; }
.c-6caa60 .c-673abc::-webkit-scrollbar-track {
  background: var(--border-color);
  border-radius: 3px;
}
.c-6caa60 .c-673abc::-webkit-scrollbar-thumb {
  background: var(--text-accent);
  border-radius: 3px;
}

/* single bonus → no slider, chip keeps its NORMAL width (not stretched full-row) */
.c-6caa60 .c-673abc:has(.c-19e4c0:only-child) {
  overflow-x: visible;
}

@media (max-width: 767px) {
  /* keep the slider left-aligned on phones (centering hides the peek cue) */
  .c-6caa60 .c-673abc { justify-content: flex-start; }
  .c-6caa60 .c-19e4c0 { 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-b03ea8 {
    left: auto;
    right: 0;
    transform: none;
    width: min(280px, calc(100vw - 24px));
  }
  .c-b03ea8::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-599c4d { padding-right: 0; }
}

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

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

/* single bonus → chip at its normal width, NOT stretched to fill the row */
.c-6caa60 .c-673abc:has(.c-19e4c0:only-child) .c-19e4c0 {
  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-28af31 so a
   no-JS / single-chip row shows nothing. */
.c-c24c17 {
  display: none;
  gap: 6px;
  margin-top: 8px;
  justify-content: center;
}

.c-28af31 { display: flex; }

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

@media (max-width: 767px) {
  .c-6caa60 .c-342bb7 { padding-right: 0; }
}

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

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

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

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

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

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

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

@media (max-width: 767px) {
  .c-5b1d72 {
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 20px 16px;
  }
  .c-99341d { justify-content: center; }
  .c-861107 { 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-6caa60 .c-673abc {
  scrollbar-width: none;
  -ms-overflow-style: none;
  cursor: grab;
}
.c-6caa60 .c-673abc::-webkit-scrollbar { height: 0; width: 0; display: none; }

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

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

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

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

.c-f73917 {
  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-d77e88 { position: relative; overflow: hidden; }

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

.c-9dd347 {
  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-f5c637 { 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-a84300 {
  display: flex;
  align-items: center;
  gap: 10px;
}

.c-7254fb {
  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-ef8eb5 {
  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-0d0993 { margin-bottom: 30px; }
.c-d77e88 { margin-top: 0; }


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

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

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

.c-03c7f7 li {
  margin: 0;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  .c-909f35 {
    font-size: 1.8em;
  }
}
