/*
Theme Name: Casino Monkey Child
Template: twentytwentyfive
Version: 1.1.5
*/

/* ============================================================
   TT25 GLOBAL-STYLES BLEED FIX
   WordPress core always injects global-styles-inline-css for
   block themes, which overrides body font, h1-h6 sizes, link
   decoration, and margin-block flow even when no block template
   is rendered. These rules reset those overrides inside
   .cm-layout so our own typography is authoritative.
   ============================================================ */
body.cm-layout {
  font-family: -apple-system, BlinkMacSystemFont, “Segoe UI”, Roboto, sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: normal;
  background: var(--cm-bg);
  color: var(--cm-text);
  overflow-x: hidden;
  max-width: 100%;
  /* Undo TT25 site-wide padding gutters */
  --wp--style--root--padding-right: 0px;
  --wp--style--root--padding-left:  0px;
  /* Archive + card preview strip height (bonus/slot/payment/casino/news/guides). Taller = less “zoomed” crop. */
  --cm-arch-preview-h: 172px;
}
@media (max-width: 767px) {
  body.cm-layout {
    --cm-arch-preview-h: 200px;
  }
}
/* Undo block-gap margin-block cascade on direct children of site wrapper */
body.cm-layout .wp-site-blocks > * {
  margin-block-start: 0;
  margin-block-end: 0;
}
body.cm-layout :where(.is-layout-flow) > * {
  margin-block-start: 0;
  margin-block-end: 0;
}
/* Reset TT25 heading sizes to sensible defaults */
body.cm-layout h1 { font-size: clamp(1.75rem, 4vw, 2.25rem); font-weight: 700; line-height: 1.2; letter-spacing: -.01em; }
body.cm-layout h2 { font-size: clamp(1.25rem, 3vw, 1.625rem); font-weight: 600; line-height: 1.25; }
body.cm-layout h3 { font-size: 1.125rem; font-weight: 600; line-height: 1.3; }
body.cm-layout h4, body.cm-layout h5, body.cm-layout h6 { font-size: 1rem; font-weight: 600; }
/* Reset TT25 link style — we control this per-component */
body.cm-layout a:where(:not(.wp-element-button)) {
  color: inherit;
  text-decoration: none;
}
body.cm-layout a:where(:not(.wp-element-button)):hover {
  text-decoration: underline;
}
/* body.cm-layout: --wp--style--root--padding merged into first declaration above */

/* STABILIZATION: safe media guard — content/prose areas only, prevents oversized images */
.cm-archive-support img,
.cm-hub-intro img,
.entry-content img,
.cm-single__content img,
.cm-feature-card img,
.cm-card__body img {
  max-width: 100%;
  height: auto;
  display: block;
}

/* STABILIZATION: horizontal scroll on tablet / narrow viewports (wide tables, 100vw, etc.) */
html {
  overflow-x: hidden;
  max-width: 100%;
  scroll-behavior: smooth;
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}
.cm-site {
  overflow-x: hidden;
  max-width: 100%;
  min-width: 0;
}
/* Main + containers: cap width to parent (avoids vw/scrollbar mismatch; flex children need min-width:0) */
.cm-main {
  box-sizing: border-box;
  max-width: 100%;
  min-width: 0;
}

/* ── TT25 drop-cap / first-letter bleed fix ─────────────────────────────────
   WP global-styles injects has-drop-cap and ::first-letter rules that inflate
   the first character of post content. Hard-reset inside .cm-layout so our
   own typography is authoritative everywhere.
   ──────────────────────────────────────────────────────────────────────────── */
body.cm-layout .has-drop-cap:not(:focus)::first-letter,
body.cm-layout p::first-letter,
body.cm-layout .entry-content p::first-letter,
body.cm-layout .cm-card p::first-letter,
body.cm-layout .cm-container p::first-letter {
  font-size: inherit !important;
  font-weight: inherit !important;
  line-height: inherit !important;
  float: none !important;
  margin: 0 !important;
  text-transform: none !important;
}

/* ── TT25 form-control bleed fix ────────────────────────────────────────────
   Block-theme global styles set custom --wp--preset--font-size on inputs/
   selects which overrides our filter UI. Reset to theme defaults.
   ──────────────────────────────────────────────────────────────────────────── */
body.cm-layout input:not([type="submit"]):not([type="button"]):not([type="reset"]),
body.cm-layout select,
body.cm-layout textarea {
  font-family: inherit;
  font-size: 14px;
  line-height: 1.5;
  color: inherit;
  box-sizing: border-box;
}
/* Kill TT25 outline; use theme token for focus ring (Sprint 1 foundation) */
body.cm-layout input:focus,
body.cm-layout select:focus,
body.cm-layout textarea:focus {
  outline: 2px solid var(--cm-border-focus);
  outline-offset: 1px;
}

/* ── TT25 entry-content margin-block bleed ──────────────────────────────────
   Prevents TT25's is-layout-flow > * from adding margin-block-start on our
   card children when hub content blocks are rendered.
   ──────────────────────────────────────────────────────────────────────────── */
body.cm-layout .cm-card :where(.is-layout-flow) > *,
body.cm-layout .cm-container :where(.is-layout-flow) > *,
body.cm-layout .cm-hub-intro :where(.is-layout-flow) > * {
  margin-block-start: 0;
  margin-block-end: 0;
}
/* But allow sensible paragraph spacing inside hub content prose */
body.cm-layout .cm-hub-intro p + p,
body.cm-layout .cm-term-intro p + p {
  margin-top: 0.75em;
}

/* ── Screen-reader utility ──────────────────────────────────────────────────
   .u-sr-only: visually hidden but accessible to screen readers.
   ──────────────────────────────────────────────────────────────────────────── */
.u-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}

/* Skip-to-content: hidden until focused (WCAG 2.1 AA) */
.cm-skip-link {
  position: absolute;
  top: -100%;
  left: 16px;
  z-index: var(--z-top);
  padding: 12px 24px;
  background: var(--cm-surface);
  color: var(--cm-text);
  font-size: 14px;
  font-weight: 600;
  border: 2px solid var(--cm-border-focus);
  border-radius: var(--cm-radius-sm);
  box-shadow: var(--cm-shadow-card);
  text-decoration: none;
  transition: top .15s ease;
}
.cm-skip-link:focus {
  top: 12px;
  outline: none;
}

/* ── Casino Monkey: UI Token System (launch-ready, neutral-first) ─────────────
   70% light neutrals | 18% dark neutrals | 8% orange accent | 4% blue support
   Orange (#F2A846) = accent/highlight/active only. Blue (#62A9F9) = focus/support.
   Orange = accent/CTA. Blue = focus/trust. Neutral-first. Calm, premium.
   ──────────────────────────────────────────────────────────────────────────── */

:root {
  /* ── Background & surfaces ───────────────────────────────────────────────── */
  --cm-bg:           #FAF7F2;   /* warm off-white page background */
  --cm-surface:      #FFFFFF;   /* white card surfaces */
  --cm-surface-soft: #F5EFE8;   /* soft beige: tables, panels */
  --cm-overlay:      rgba(47, 36, 29, .4);  /* modal overlay */

  /* ── Borders ───────────────────────────────────────────────────────────── */
  --cm-border:       #E9E0D6;   /* soft beige — slightly lighter for premium edge */
  --cm-border-soft:  #E9E0D6;
  --cm-border-subtle: rgba(47, 36, 29, .055);
  --cm-border-strong: rgba(47, 36, 29, .082);

  /* ── Text ───────────────────────────────────────────────────────────────── */
  --cm-text:         #2F241D;   /* dark warm text */
  --cm-text-muted:   #6E645C;   /* secondary, meta */
  --cm-color-text:   var(--cm-text);
  --cm-color-bg:     var(--cm-surface);

  /* ── Accents: orange = primary, blue = support/trust ─────────────────────── */
  --cm-accent:       #F2A846;   /* orange: accent, CTA, active, emphasis */
  --cm-accent-hover: #E39A38;   /* darker orange on hover */
  --cm-accent-soft:  #FEF6EB;   /* very light orange tint */
  --cm-accent-blue:  #62A9F9;   /* blue: focus rings, trust signal — restrained */
  --cm-accent-blue-soft: rgba(98, 169, 249, .08);
  --cm-accent-soft-rgba: rgba(242, 168, 70, .08);   /* subtle orange tint for active states */

  /* ── CTA: orange primary (replaces brown) ────────────────────────────────── */
  --cm-cta:          #F2A846;   /* orange: primary buttons, active states */
  --cm-cta-hover:    #E39A38;
  --cm-cta-text:     #2F241D;   /* dark text on orange for contrast */
  --cm-warm:         #9A7B5C;   /* soft warm — minimal usage only */
  --cm-brown:        var(--cm-warm);
  --cm-brown-dark:   #5C4033;   /* legacy; prefer --cm-accent for emphasis */

  /* ── Chips, badges, meta pills ───────────────────────────────────────────── */
  --cm-chip-bg:      #EBE4DC;   /* soft warm neutral */
  --cm-chip-border:  #E4D9CD;
  --cm-cool:         var(--cm-chip-bg);
  /* Filter / directory pills — warm neutrals, selected = quiet emphasis (not loud orange fill) */
  --cm-filter-pill-surface:       rgba(250, 247, 242, 0.78);
  --cm-filter-pill-border:        rgba(216, 203, 189, 0.72);
  --cm-filter-pill-hover:         rgba(255, 252, 248, 0.95);
  --cm-filter-pill-selected-bg:   rgba(122, 95, 72, 0.09);
  --cm-filter-pill-selected-bd:   rgba(110, 86, 66, 0.42);
  --cm-filter-pill-selected-ring: rgba(110, 86, 66, 0.14);
  /* Meta / directory chips (badges, card pills, tax labels) — lighter than body text */
  --cm-meta-chip-bg:     rgba(250, 247, 242, 0.92);
  --cm-meta-chip-border: rgba(208, 194, 180, 0.42);
  --cm-meta-chip-text:   var(--cm-text-muted);
  --cm-meta-label-size:  9.5px;
  --cm-meta-label-track: 0.08em;

  /* ── Links & interactive ────────────────────────────────────────────────── */
  --cm-link:         var(--cm-text);
  --cm-link-hover:   var(--cm-accent);
  --cm-border-focus: var(--cm-accent-blue);   /* blue: focus rings, trust */

  /* ── Buttons ─────────────────────────────────────────────────────────────── */
  --cm-btn-primary-bg:    var(--cm-cta);
  --cm-btn-primary-text:  var(--cm-cta-text);
  --cm-btn-secondary-border: var(--cm-border);
  --cm-btn-secondary-hover: var(--cm-surface-soft);
  --cm-btn-soft-bg:       var(--cm-surface);
  --cm-btn-soft-border:   var(--cm-border);

  /* ── Subtle fills ───────────────────────────────────────────────────────── */
  --cm-soft:         rgba(47, 36, 29, .04);
  --cm-soft-hover:   rgba(47, 36, 29, .06);

  /* ── Header/footer ──────────────────────────────────────────────────────── */
  --cm-header-bg:    rgba(255, 255, 255, .97);
  --cm-footer-bg:    var(--cm-surface-soft);
  --cm-footer-border: var(--cm-border-soft);

  /* ── Spacing & shape ───────────────────────────────────────────────────── */
  --cm-space-xs:    4px;
  --cm-space-sm:    8px;
  --cm-space-md:    16px;
  --cm-space-lg:    24px;
  --cm-space-xl:    40px;
  --cm-space-2xl:   64px;
  /* Product rhythm: archives + singles (keep in sync across templates) */
  --cm-archive-hub-stack-gap: var(--cm-space-lg, 24px);
  --cm-archive-hub-tight-gap: var(--cm-space-md, 16px);
  --cm-single-hero-pad-y:     18px;
  --cm-single-hero-pad-x:     16px;
  --cm-single-hero-margin-bottom: 20px;
  --cm-single-body-gap:           22px;
  --cm-single-body-margin-bottom: 28px;
  --cm-related-grid-gap:          16px 20px;
  --cm-radius:       12px;
  --cm-radius-sm:    8px;
  --cm-radius-pill:  999px;
  --cm-pad:          16px;
  --cm-shadow-card:    0 1px 2px rgba(47, 36, 29, .035), 0 8px 28px rgba(47, 36, 29, .042);
  --cm-shadow-section:  0 2px 6px rgba(47, 36, 29, .038), 0 12px 40px rgba(47, 36, 29, .048);
  --cm-shadow-overlay:  0 -2px 14px rgba(47, 36, 29, .05);
  --cm-shadow-drawer:   -4px 0 28px rgba(47, 36, 29, .09);

  /* Single casino: hero + mobile sticky (shared “decision” UI) */
  --cm-casino-decision-radius: 14px;
  --cm-casino-decision-radius-sm: 10px;
  /* Product-style rating chip: flat, low ornament */
  --cm-decision-rating-bg: rgba(250, 247, 242, 0.88);
  --cm-decision-rating-bd: rgba(47, 36, 29, 0.075);
  --cm-decision-rating-num: #5c4a38;
  --cm-decision-rating-star-muted: rgba(154, 114, 48, 0.88);

  /* ── Semantic status colors (active / warning / error) ─────────────────── */
  --cm-status-active-bg:   #eaf6ed;
  --cm-status-active-bd:   #cfe8d6;
  --cm-status-active-text: #2e7d32;
  --cm-status-warn-bg:   rgba(184, 134, 11, 0.08);
  --cm-status-warn-bd:   rgba(184, 134, 11, 0.22);
  --cm-status-warn-text: #8b6914;
  --cm-status-error-bg:  rgba(160, 0, 0, 0.06);
  --cm-status-error-bd:  rgba(160, 0, 0, 0.18);
  --cm-status-error-text: #8b2020;

  /* ── Pros / cons panel ───────────────────────────────────────────────────── */
  --cm-procon-pros-bg:   #f6faf6;
  --cm-procon-pros-bd:   rgba(76, 175, 80, .2);
  --cm-procon-pros-text: #4a7c4a;
  --cm-procon-cons-bg:   #faf6f6;
  --cm-procon-cons-bd:   rgba(198, 70, 70, .2);
  --cm-procon-cons-text: #8c5a5a;

  /* ── Z-index scale ───────────────────────────────────────────────────────── */
  --z-base:       1;   /* local stacking (cards, thumbs) */
  --z-sticky:    50;   /* sticky header */
  --z-filter-bar: 96;  /* filter pill bar — above sticky, below sheet */
  --z-sheet:     100;  /* bottom sheet + overlay */
  --z-modal:     101;  /* modal dialogs */
  --z-overlay:   102;  /* drawer backdrop */
  --z-drawer:    103;  /* mobile drawer panel */
  --z-top:       200;  /* skip-to-content link */
}

/* === Casino Monkey: Hub UI (minimal) === */
.cm-container{margin:0 auto;padding:24px 16px;box-sizing:border-box;max-width:min(1100px,100%)}

/* ── Sprint 2: Reusable Hub UI System ────────────────────────────────────────
   Lightweight reusable components for archive/hub pages.
   Applied first to /casinos/, then reusable for other archives.
   ──────────────────────────────────────────────────────────────────────────── */

/* ─── Premium Archive System (Layers A–E) ────────────────────────────────────
   Layer A: Hero | B: Featured | C: Filters | D: Listing | E: Support
   Editorial, commercial, trustworthy. Consistent across all archive types.
──────────────────────────────────────────────────────────────────────────── */

/* Layer A — Archive hero: strong hierarchy, premium spacing */
.cm-archive-hero.cm-page-header {
  margin-bottom: var(--cm-space-xl, 32px);
  padding-bottom: var(--cm-space-lg, 24px);
  border-bottom: 1px solid var(--cm-border-subtle);
}
.cm-archive-hero .cm-breadcrumbs {
  margin-bottom: var(--cm-space-sm, 8px);
  font-size: 13px;
  opacity: .85;
}
.cm-archive-hero .cm-archive-title {
  margin: 0 0 10px;
  font-size: clamp(1.625rem, 4vw, 2rem);
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: -.02em;
  color: var(--cm-color-text);
}
.cm-archive-hero .cm-archive-subtitle {
  margin: 0;
  font-size: 1rem;
  line-height: 1.62;
  opacity: .85;
  color: var(--cm-color-text);
  max-width: 52ch;
}

/* Generic in-card hero (label + title + sub + chips). Chips scoped so archive filter .cm-chip is unchanged. */
.cm-hero {
  padding: 32px 20px;
  background: var(--cm-surface);
  border-radius: var(--cm-radius, 16px);
  border: 1px solid var(--cm-border-soft);
  box-sizing: border-box;
}
.cm-hero__label {
  display: block;
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--cm-text-muted);
  margin: 0;
}
.cm-hero h1,
.cm-hero .cm-hero__title {
  font-size: 28px;
  font-weight: 700;
  margin: 8px 0;
  line-height: 1.2;
  letter-spacing: -0.02em;
  color: var(--cm-color-text);
}
.cm-hero__sub,
.cm-hero .cm-hero__subtitle {
  font-size: 16px;
  line-height: 1.55;
  color: var(--cm-text-muted);
  margin: 0;
  max-width: 52ch;
}
.cm-hero__chips {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 16px;
}
.cm-hero__chips .cm-chip {
  padding: 4px 10px;
  border-radius: 999px;
  background: var(--cm-meta-chip-bg);
  border: 1px solid var(--cm-meta-chip-border);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--cm-color-text);
}

/* /casinos/ — editorial hero: light weight, hierarchy, no “boxed card” */
.cm-archive-casino .cm-archive-hero.cm-archive-hero--casinos-editorial {
  margin-bottom: var(--cm-space-xl, 32px);
  padding: var(--cm-space-md, 16px) 0 var(--cm-space-lg, 28px);
  background: transparent;
  border: none;
  border-radius: 0;
  box-shadow: none;
  border-bottom: 1px solid rgba(47, 36, 29, 0.06);
  max-width: min(42rem, 100%);
}
.cm-archive-casino .cm-archive-hero--casinos-editorial .cm-breadcrumbs {
  opacity: 0.82;
  margin-bottom: var(--cm-space-sm, 10px);
}
.cm-archive-hero__eyebrow {
  margin: 0 0 var(--cm-space-xs, 8px);
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--cm-text-muted);
  line-height: 1.35;
}
.cm-archive-casino .cm-archive-hero--casinos-editorial .cm-archive-hero__eyebrow {
  color: var(--cm-text-muted);
  opacity: 0.95;
}
.cm-archive-casino .cm-archive-hero--casinos-editorial .cm-archive-title {
  margin: 0 0 var(--cm-space-sm, 12px);
  font-size: clamp(2rem, 4.5vw, 2.75rem);
  font-weight: 800;
  line-height: 1.08;
  letter-spacing: -0.03em;
  color: var(--cm-color-text);
}
.cm-archive-casino .cm-archive-hero__deck {
  margin: 0 0 var(--cm-space-sm, 10px);
  font-size: 1.0625rem;
  line-height: 1.45;
  font-weight: 500;
  color: var(--cm-color-text);
  opacity: 0.88;
  max-width: 38ch;
}
.cm-archive-casino .cm-archive-hero__intro {
  margin: 0 0 var(--cm-space-md, 18px);
  font-size: 0.9375rem;
  line-height: 1.58;
  color: var(--cm-text-muted);
  max-width: 48ch;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
}
.cm-archive-casino .cm-archive-hero__quick {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 10px;
  margin: 0 0 var(--cm-space-sm, 12px);
  padding: 0;
}
.cm-archive-casino .cm-archive-hero__pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 6px 13px;
  min-height: 34px;
  box-sizing: border-box;
  border-radius: 999px;
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  text-decoration: none;
  color: var(--cm-color-text);
  background: var(--cm-filter-pill-surface);
  border: 1px solid var(--cm-filter-pill-border);
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.cm-archive-casino .cm-archive-hero__pill:hover {
  background: var(--cm-filter-pill-hover);
  border-color: rgba(200, 186, 172, 0.95);
  color: var(--cm-text);
  text-decoration: none;
}
.cm-archive-casino .cm-archive-hero__pill:focus-visible {
  outline: 2px solid var(--cm-border-focus);
  outline-offset: 2px;
}
.cm-archive-casino .cm-archive-hero__trust {
  margin: 0;
  font-size: 0.6875rem;
  line-height: 1.45;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--cm-text-muted);
  opacity: 0.72;
  max-width: 52ch;
}
.cm-archive-editorial {
  margin-bottom: var(--cm-space-lg, 24px);
}
.cm-archive-editorial .cm-hub-intro--archive-top {
  margin-top: 0;
  padding: var(--cm-space-md, 16px) var(--cm-space-lg, 20px);
  border-radius: var(--cm-radius);
  background: var(--cm-surface);
  border: 1px solid var(--cm-border-soft);
  box-shadow: none;
}
.cm-archive-editorial .cm-hub-intro--archive-top p {
  margin: 0 0 0.65em;
  font-size: 0.9375rem;
  line-height: 1.62;
  color: var(--cm-color-text);
}
.cm-archive-editorial .cm-hub-intro--archive-top p:last-child {
  margin-bottom: 0;
}
.cm-archive-casino .cm-archive-featured {
  margin-top: 0;
}
.cm-archive-editorial + .cm-archive-featured {
  margin-top: 2px;
}
.cm-archive-casino .cm-archive-filters + .cm-browse-block {
  margin-top: var(--cm-space-md, 16px);
}
.cm-archive-casino .cm-browse-block + .cm-archive-listing {
  margin-top: var(--cm-space-sm, 10px);
}

/* Layer B — Featured area: visually connected to listing */
.cm-archive-featured {
  margin-top: 0;
  margin-bottom: var(--cm-space-lg, 24px);
}
.cm-archive-featured + .cm-archive-filters {
  margin-top: 0;
}
/* Casinos: featured table + listing cards = same product system */
.cm-archive-casino .cm-archive-top {
  border-radius: var(--cm-radius);
  border: 1px solid var(--cm-border-subtle);
  box-shadow: var(--cm-shadow-card);
}
.cm-archive-casino .cm-archive-top { background: var(--cm-surface-soft); }

/* Layer C — Filters: refined container */
.cm-archive-filters {
  margin-bottom: var(--cm-space-lg, 24px);
}
.cm-archive-filters .cm-filterbar--desktop {
  margin-bottom: var(--cm-space-sm, 8px);
}
.cm-archive-filters .cm-filters--desktop {
  padding: var(--cm-space-md, 16px) var(--cm-space-lg, 20px);
  border-radius: var(--cm-radius);
  background: var(--cm-surface-soft);
  border: 1px solid var(--cm-border-soft);
}

/* Layer D — Listing: results bar + grid */
.cm-archive-listing {
  margin-top: 0;
}
.cm-archive-listing .cm-resultsbar {
  margin-bottom: var(--cm-space-md, 16px);
  padding: var(--cm-space-sm, 8px) 0;
}
.cm-archive-grid {
  gap: var(--cm-space-lg, 20px);
  /* Preview height: body.cm-layout --cm-arch-preview-h */
  --cm-arch-preview-radius: 12px;
  --cm-arch-preview-border: 1px solid var(--cm-border-subtle);
  --cm-arch-preview-bg: var(--cm-surface-soft);
}
@media (max-width: 600px) {
  .cm-archive-grid { gap: var(--cm-space-md, 16px); }
}

/* Layer E — Support: hub intro + FAQ, calm separation */
.cm-archive-support {
  margin-top: var(--cm-space-xl, 40px);
  padding-top: var(--cm-space-lg, 24px);
  border-top: 1px solid var(--cm-border-subtle);
  overflow: hidden;
}
.cm-archive-support .cm-hub-intro,
.cm-archive-support .cm-hub-faq {
  margin-top: var(--cm-space-md, 16px);
}
.cm-archive-support .cm-hub-intro:first-child,
.cm-archive-support .cm-hub-faq:first-child {
  margin-top: 0;
}
.cm-archive-support .cm-hub-intro {
  padding: var(--cm-space-lg, 24px);
}
.cm-archive-support .cm-hub-intro p {
  margin: 0 0 0.75em;
  line-height: 1.65;
}
.cm-archive-support .cm-hub-intro p:last-child {
  margin-bottom: 0;
}

/* Archive support: constrain images/media — prevent giant unbounded content */
.cm-archive-support img,
.cm-hub-intro img,
.cm-archive-support .wp-block-image img,
.cm-hub-intro .wp-block-image img {
  max-width: 100%;
  height: auto;
  display: block;
}
.cm-archive-support figure,
.cm-hub-intro figure,
.cm-archive-support .wp-block-image,
.cm-hub-intro .wp-block-image {
  max-width: 100%;
  margin: 1em 0;
}
.cm-archive-support .wp-block-image img,
.cm-hub-intro .wp-block-image img {
  width: 100%;
}

/* Archive mobile: premium hero, clean stack */
@media (max-width: 767px) {
  .cm-archive-hero.cm-page-header {
    margin-bottom: var(--cm-space-sm, 12px);
    padding-bottom: var(--cm-space-sm, 12px);
    border-bottom-color: var(--cm-border-subtle);
  }
  .cm-archive-hero .cm-breadcrumbs {
    margin-bottom: 5px;
    font-size: 11px;
  }
  .cm-archive-hero .cm-archive-title {
    margin: 0 0 6px;
    font-size: clamp(1.375rem, 5vw, 1.75rem);
    font-weight: 700;
    line-height: 1.2;
  }
  .cm-archive-hero .cm-archive-subtitle {
    font-size: 14px;
    line-height: 1.5;
    opacity: .8;
    max-width: 100%;
  }
  .cm-archive-casino .cm-archive-hero.cm-archive-hero--casinos-editorial {
    margin-bottom: var(--cm-space-md, 16px);
    padding: 6px 0 16px;
    max-width: 100%;
    text-align: start;
  }
  .cm-archive-hero__eyebrow {
    font-size: 0.625rem;
    letter-spacing: 0.1em;
    margin-bottom: 6px;
  }
  .cm-archive-casino .cm-archive-hero--casinos-editorial .cm-archive-title {
    max-width: none;
    font-size: clamp(1.625rem, 6vw, 2.125rem);
    margin-bottom: 8px;
  }
  .cm-archive-casino .cm-archive-hero__deck {
    font-size: 15px;
    line-height: 1.45;
    max-width: 100%;
    margin-bottom: 8px;
  }
  .cm-archive-casino .cm-archive-hero__intro {
    font-size: 14px;
    line-height: 1.55;
    margin-bottom: 14px;
    max-width: 100%;
    -webkit-line-clamp: 3;
  }
  .cm-archive-casino .cm-archive-hero__quick {
    gap: 8px 9px;
    margin-bottom: 10px;
  }
  .cm-archive-casino .cm-archive-hero__pill {
    padding: 8px 14px;
    min-height: 40px;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.2;
  }
  .cm-archive-casino .cm-archive-hero__trust {
    font-size: 0.625rem;
    letter-spacing: 0.035em;
    line-height: 1.4;
  }
  .cm-archive-editorial {
    margin-bottom: var(--cm-space-md, 18px);
  }
  .cm-archive-editorial .cm-hub-intro--archive-top {
    padding: var(--cm-space-sm, 12px) var(--cm-space-md, 14px);
  }
  .cm-archive-featured {
    margin-bottom: var(--cm-space-md, 18px);
  }
  .cm-archive-filters .cm-filters--desktop {
    padding: var(--cm-space-md, 16px);
  }
  .cm-archive-listing .cm-resultsbar {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--cm-space-sm, 8px);
  }
  .cm-archive-support {
    margin-top: var(--cm-space-md, 20px);
    padding-top: var(--cm-space-sm, 12px);
  }
  .cm-section {
    margin-top: var(--cm-space-sm, 14px);
  }
  .cm-archive-filters {
    margin-bottom: var(--cm-space-sm, 12px);
  }
  .cm-archive-grid {
    gap: var(--cm-space-sm, 10px);
  }
  /* Hub archives: same listing rhythm as casino (global .cm-archive-grid gap wins for casino) */
  .cm-archive-bonus .cm-archive-grid,
  .cm-archive-slots .cm-archive-grid,
  .cm-archive-payment-methods .cm-archive-grid {
    gap: var(--cm-space-sm, 10px);
  }
}

/* Page header fallback (non-hero) */
.cm-page-header {
  margin-bottom: var(--cm-space-lg, 24px);
  padding-bottom: var(--cm-space-md, 16px);
  border-bottom: 1px solid var(--cm-border-subtle);
}
.cm-page-header .cm-breadcrumbs {
  margin-bottom: var(--cm-space-sm, 8px);
  font-size: 13px;
}
.cm-page-header .cm-archive-title {
  margin: 0 0 var(--cm-space-xs, 4px);
  font-size: clamp(1.5rem, 3.5vw, 1.875rem);
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: -.02em;
  color: var(--cm-color-text);
}
.cm-page-header .cm-archive-subtitle {
  margin: 0;
  font-size: 0.9375rem;
  line-height: 1.5;
  opacity: .8;
  color: var(--cm-color-text);
}

/* Section wrapper: consistent spacing */
.cm-section {
  margin-top: var(--cm-space-xl, 40px);
}
.cm-section:first-of-type {
  margin-top: 0;
}

/* Archive top table wrapper: premium card shell — unified */
.cm-archive-top {
  margin-top: 0;
  margin-bottom: var(--cm-space-md, 16px);
  padding: var(--cm-space-md, 18px);
  background: var(--cm-surface-soft);
  border: 1px solid var(--cm-border-soft);
  border-radius: var(--cm-radius);
  box-shadow: var(--cm-shadow-card);
}
@media (min-width:600px){
  .cm-archive-top{padding: var(--cm-space-lg, 20px);}
}
.cm-archive-top .cm-compare__title {
  margin: 0 0 var(--cm-space-sm, 12px);
  font-size: 1.0625rem;
  font-weight: 700;
  color: var(--cm-color-text);
}

/* Results bar: count + active filter chips — unified */
.cm-resultsbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  margin: 0 0 var(--cm-space-sm, 12px);
  padding: var(--cm-space-xs, 4px) 0;
}
.cm-resultsbar__count {
  font-size: 13px;
  font-weight: 500;
  opacity: .85;
  color: var(--cm-color-text);
}

.cm-chip {
  font-size: 11px;
  padding: 4px 8px;
  border-radius: 999px;
  border: 1px solid var(--cm-border);
  background: var(--cm-bg);
  color: var(--cm-text-muted);
}
.cm-chip--active {
  background: var(--cm-status-active-bg);
  border-color: var(--cm-status-active-bd);
  color: var(--cm-status-active-text);
  font-weight: 600;
}
.cm-chip--country {
  opacity: 0.8;
}
.cm-chip--type {
  font-weight: 500;
}

/* Active filter chips (removable) — same warm language as filter sheet */
.cm-resultsbar .cm-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 5px 7px;
  align-items: center;
  margin: 0;
}
.cm-resultsbar .cm-chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 10px;
  min-height: 30px;
  box-sizing: border-box;
  background: var(--cm-filter-pill-selected-bg);
  border: 1px solid var(--cm-filter-pill-selected-bd);
  border-radius: 999px;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: 0.015em;
  color: var(--cm-text);
  text-decoration: none;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
  box-shadow: inset 0 0 0 1px var(--cm-filter-pill-selected-ring);
}
.cm-resultsbar .cm-chip--link:hover {
  background: rgba(122, 95, 72, 0.12);
  border-color: rgba(110, 86, 66, 0.5);
  color: var(--cm-text);
}
.cm-resultsbar .cm-chip__x {
  opacity: 0.55;
  font-size: 15px;
  line-height: 1;
  margin-left: 1px;
  font-weight: 500;
}

/* Badge: rating, country, license tags — compact editorial meta */
.cm-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 5px 6px;
  align-items: center;
  margin-top: 4px;
}
.cm-badge {
  display: inline-flex;
  align-items: center;
  padding: 2px 7px;
  background: var(--cm-meta-chip-bg);
  border: 1px solid var(--cm-meta-chip-border);
  border-radius: 999px;
  font-size: var(--cm-meta-label-size);
  font-weight: 600;
  letter-spacing: var(--cm-meta-label-track);
  text-transform: uppercase;
  color: var(--cm-meta-chip-text);
  line-height: 1.35;
  white-space: nowrap;
}

/* Card: reusable base */
.cm-card {
  background: var(--cm-surface);
  border: 1px solid var(--cm-border-soft);
  border-radius: var(--cm-radius);
  box-shadow: var(--cm-shadow-card);
  padding: var(--cm-space-md, 16px);
  transition: box-shadow .15s, border-color .15s;
}
.cm-card:hover {
  box-shadow: var(--cm-shadow-section);
  border-color: var(--cm-border);
}

/* Directory card: compact pill sections */
.cm-dir {
  padding: var(--cm-space-md, 16px);
}
.cm-dir__title {
  margin: 0 0 var(--cm-space-sm, 8px);
  font-size: 15px;
  font-weight: 600;
  color: var(--cm-color-text);
}
/* ── Sprint 3: Bonus & Payment Method Cards ────────────────────────────────────
   Premium card styling aligned with casinos hub pattern.
   Reusable for other archive card types.
──────────────────────────────────────────────────────────────────────────── */

/* Bonus listing: signals in stacked rows (primary vs secondary facts) */
.cm-archive-bonus .cm-bonus-card .cm-bonus-card__signals {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 5px;
  margin-top: 4px;
  overflow-wrap: anywhere;
}
.cm-archive-bonus .cm-bonus-card .cm-bonus-card__signals-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 5px 7px;
  row-gap: 5px;
  min-width: 0;
  max-width: 100%;
}
.cm-archive-bonus .cm-bonus-card .cm-bonus-card__signals-row--secondary {
  opacity: 0.92;
}
.cm-archive-bonus .cm-bonus-card .cm-bonus-card__status,
.cm-archive-bonus .cm-bonus-card .cm-bonus-card__verified {
  font-size: var(--cm-meta-label-size);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: var(--cm-meta-label-track);
  padding: 3px 8px;
  line-height: 1.35;
  border-radius: 999px;
  border: 1px solid transparent;
}
.cm-archive-bonus .cm-bonus-card .cm-bonus-card__status--active {
  background: var(--cm-status-active-bg);
  color: var(--cm-status-active-text);
  border-color: var(--cm-status-active-bd);
}
.cm-archive-bonus .cm-bonus-card .cm-bonus-card__status--expiring_soon {
  background: var(--cm-status-warn-bg);
  color: var(--cm-status-warn-text);
  border-color: var(--cm-status-warn-bd);
}
.cm-archive-bonus .cm-bonus-card .cm-bonus-card__status--expired {
  background: var(--cm-meta-chip-bg);
  color: var(--cm-meta-chip-text);
  border-color: var(--cm-meta-chip-border);
}
.cm-archive-bonus .cm-bonus-card .cm-bonus-card__status--restricted {
  background: var(--cm-status-error-bg);
  color: var(--cm-status-error-text);
  border-color: var(--cm-status-error-bd);
}
.cm-archive-bonus .cm-bonus-card .cm-bonus-card__verified {
  background: var(--cm-status-active-bg);
  color: var(--cm-status-active-text);
  border-color: var(--cm-status-active-bd);
}
.cm-archive-bonus .cm-bonus-card .cm-bonus-card__pill {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: none;
  padding: 2px 8px;
  line-height: 1.35;
  border-radius: 999px;
  background: var(--cm-meta-chip-bg);
  border: 1px solid var(--cm-meta-chip-border);
  color: var(--cm-meta-chip-text);
  max-width: 100%;
}
.cm-archive-bonus .cm-bonus-card .cm-bonus-card__pill--expired {
  background: rgba(47, 36, 29, 0.04);
  color: var(--cm-text-muted);
  border-color: var(--cm-meta-chip-border);
  text-transform: uppercase;
  letter-spacing: var(--cm-meta-label-track);
  font-size: var(--cm-meta-label-size);
}
.cm-archive-bonus .cm-bonus-card .cm-bonus-card__signals-row--secondary .cm-bonus-card__pill {
  font-size: 9.5px;
  font-weight: 500;
  letter-spacing: 0.025em;
  padding: 2px 7px;
  color: rgba(47, 36, 29, 0.52);
  background: rgba(47, 36, 29, 0.035);
  border-color: rgba(47, 36, 29, 0.09);
}
.cm-archive-bonus .cm-bonus-card .cm-bonus-card__signals-row--secondary .cm-bonus-card__pill--expired {
  font-size: var(--cm-meta-label-size);
  font-weight: 600;
  letter-spacing: var(--cm-meta-label-track);
}
@media (max-width: 767px) {
  .cm-archive-bonus .cm-bonus-card .cm-bonus-card__signals {
    gap: 4px;
    margin-top: 3px;
  }
  .cm-archive-bonus .cm-bonus-card .cm-bonus-card__signals-row {
    gap: 4px 6px;
    row-gap: 4px;
  }
}

/* ── Standard hubs (/bonuses, /slots, /payment-methods) — Layer A–D (inherits global archive hero) ── */
.cm-archive-bonus .cm-archive-crosslinks,
.cm-archive-slots .cm-archive-crosslinks,
.cm-archive-payment-methods .cm-archive-crosslinks {
  margin-bottom: var(--cm-space-sm, 12px);
}
.cm-archive-bonus .cm-archive-featured.cm-section.cm-archive-top,
.cm-archive-slots .cm-archive-featured.cm-section.cm-archive-top,
.cm-archive-payment-methods .cm-archive-featured.cm-section.cm-archive-top {
  margin-top: 0;
}
.cm-archive-bonus .cm-archive-filters,
.cm-archive-slots .cm-archive-filters,
.cm-archive-payment-methods .cm-archive-filters {
  margin-bottom: var(--cm-archive-hub-stack-gap);
  overflow-x: hidden;
  max-width: 100%;
}
.cm-archive-bonus .cm-archive-filters .cm-filters--desktop,
.cm-archive-slots .cm-archive-filters .cm-filters--desktop,
.cm-archive-payment-methods .cm-archive-filters .cm-filters--desktop {
  gap: 10px 12px;
}
.cm-archive-bonus .cm-filters--desktop .cm-filters__section,
.cm-archive-slots .cm-filters--desktop .cm-filters__section,
.cm-archive-payment-methods .cm-filters--desktop .cm-filters__section {
  min-width: 0;
}
.cm-archive-bonus .cm-filterbar--desktop,
.cm-archive-slots .cm-filterbar--desktop,
.cm-archive-payment-methods .cm-filterbar--desktop {
  min-width: 0;
  max-width: 100%;
}
.cm-archive-bonus .cm-filters--desktop .cm-filters__actions,
.cm-archive-slots .cm-filters--desktop .cm-filters__actions,
.cm-archive-payment-methods .cm-filters--desktop .cm-filters__actions {
  flex-shrink: 0;
}
.cm-archive-bonus .cm-filters-bottom,
.cm-archive-slots .cm-filters-bottom,
.cm-archive-payment-methods .cm-filters-bottom {
  max-width: 100%;
  box-sizing: border-box;
}
.cm-archive-bonus .cm-browse-block.cm-section,
.cm-archive-slots .cm-browse-block.cm-section,
.cm-archive-payment-methods .cm-browse-block.cm-section {
  margin-bottom: var(--cm-archive-hub-tight-gap);
}
.cm-archive-bonus .cm-archive-listing .cm-resultsbar,
.cm-archive-slots .cm-archive-listing .cm-resultsbar,
.cm-archive-payment-methods .cm-archive-listing .cm-resultsbar {
  padding-top: 0;
  margin-bottom: var(--cm-archive-hub-tight-gap);
}
.cm-archive-bonus .cm-archive-grid,
.cm-archive-slots .cm-archive-grid,
.cm-archive-payment-methods .cm-archive-grid {
  gap: var(--cm-archive-hub-tight-gap);
}
.cm-archive-bonus .cm-archive-hero .cm-archive-title,
.cm-archive-slots .cm-archive-hero .cm-archive-title,
.cm-archive-payment-methods .cm-archive-hero .cm-archive-title {
  letter-spacing: -0.02em;
}
.cm-archive-bonus .cm-archive-hero .cm-archive-subtitle,
.cm-archive-slots .cm-archive-hero .cm-archive-subtitle {
  max-width: 46ch;
  line-height: 1.5;
}
.cm-archive-payment-methods .cm-archive-hero .cm-archive-subtitle {
  max-width: 48ch;
  line-height: 1.5;
}
.cm-archive-bonus .cm-resultsbar__count,
.cm-archive-slots .cm-resultsbar__count,
.cm-archive-payment-methods .cm-resultsbar__count {
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 0.01em;
  color: var(--cm-color-text);
}
/* Clamp on h2 only — nested -webkit-box on the link clips/breaks layout in WebKit */
.cm-archive-bonus .cm-bonus-card .cm-archive-card__title a {
  white-space: normal;
  display: inline;
  color: inherit;
  text-decoration: none;
  max-width: 100%;
  line-height: inherit;
  overflow-wrap: anywhere;
}
.cm-archive-bonus .cm-bonus-card .cm-bonus-card__status,
.cm-archive-bonus .cm-bonus-card .cm-bonus-card__verified {
  flex-shrink: 0;
}

/* Payment archive: meta pills aligned with bonus/casino chip language */
.cm-archive-payment-methods .cm-archive-card--payment .cm-payment-card__pill {
  font-size: var(--cm-meta-label-size);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: var(--cm-meta-label-track);
  padding: 3px 8px;
  line-height: 1.35;
  border-radius: 999px;
  background: var(--cm-meta-chip-bg);
  border: 1px solid var(--cm-meta-chip-border);
  color: var(--cm-meta-chip-text);
}
.cm-archive-payment-methods .cm-archive-card--payment .cm-archive-card__excerpt {
  -webkit-line-clamp: 2;
  font-size: 11px;
  line-height: 1.45;
}
@media (max-width: 767px) {
  .cm-archive-payment-methods .cm-archive-card--payment .cm-payment-card__pill {
    padding: 2px 7px;
  }
}


/* Empty state: premium card styling */
.cm-empty-state {
  margin: var(--cm-space-lg, 24px) 0;
  padding: var(--cm-space-xl, 32px) var(--cm-space-lg, 24px);
  text-align: center;
  background: var(--cm-surface-soft);
  border-radius: var(--cm-radius);
  border: 1px solid var(--cm-border-soft);
  padding: var(--cm-space-lg, 24px);
  text-align: center;
  opacity: .75;
  color: var(--cm-color-text);
}
.cm-card.cm-empty-state {
  opacity: 1;
  background: var(--cm-surface-soft);
  border: 1px solid var(--cm-border-subtle);
  border-radius: var(--cm-radius);
}
.cm-empty-state__title {
  margin: 0 0 8px;
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: -0.01em;
  color: var(--cm-color-text);
}
.cm-empty-state__hint {
  margin: 0 0 14px;
  font-size: 13px;
  line-height: 1.45;
  color: var(--cm-color-text);
  opacity: 0.82;
  max-width: 38ch;
  margin-left: auto;
  margin-right: auto;
}
.cm-empty-state__actions {
  margin: 0;
}
.cm-empty-state__reset {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  padding: 0 14px;
  font-size: 12px;
  font-weight: 600;
  text-decoration: none;
  color: var(--cm-cta);
  border: 1px solid var(--cm-border-subtle);
  border-radius: var(--cm-radius-sm, 8px);
  background: var(--cm-surface);
  transition: background 0.15s, border-color 0.15s, color 0.15s;
  box-shadow: none;
}
.cm-empty-state__reset:hover {
  background: var(--cm-soft);
  border-color: var(--cm-border);
  color: var(--cm-cta-hover);
}
.cm-empty-state__reset:focus-visible {
  outline: 2px solid var(--cm-cta);
  outline-offset: 2px;
}
/* Legacy empty blocks: plain paragraph (optionally followed by form, etc.) */
.cm-card.cm-empty-state > p:not([class]) {
  margin: 0 0 12px;
  opacity: 0.85;
  font-size: 14px;
}
.cm-card.cm-empty-state > p:not([class]):last-child {
  margin-bottom: 0;
}

/* ─── 404 PAGE ─────────────────────────────────────────────────────────────── */
.cm-404 {
  padding-top: var(--cm-space-xl);
  padding-bottom: var(--cm-space-2xl);
}
.cm-404__header {
  text-align: center;
  margin-bottom: var(--cm-space-lg);
}
.cm-404__code {
  display: block;
  font-size: clamp(4rem, 12vw, 7rem);
  font-weight: 800;
  line-height: 1;
  letter-spacing: -0.04em;
  color: var(--cm-border);
  margin-bottom: var(--cm-space-sm);
}
.cm-404__search {
  max-width: 480px;
  margin: 0 auto var(--cm-space-lg);
}
.cm-404__search .cm-search--inline {
  display: flex;
  gap: 8px;
}
.cm-404__search .cm-search__input {
  flex: 1;
}
.cm-404__nav {
  text-align: center;
}
.cm-404__nav-title {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--cm-text-muted);
  margin: 0 0 var(--cm-space-md);
}
.cm-404__links {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
}
.cm-404__home {
  margin-top: var(--cm-space-lg);
}

/* ─── FILTER SYSTEM ───────────────────────────────────────────────────────── */

/* Shared filter internals (chips, sections, selects) */
.cm-filters__section{margin:0}
.cm-filters__section-title{display:block;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;opacity:.8;margin:0 0 8px}
.cm-filters__chips-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:7px}
.cm-filter-chip{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  min-height:40px;
  padding:7px 13px;
  box-sizing:border-box;
  border:1px solid var(--cm-filter-pill-border);
  border-radius:10px;
  background:var(--cm-filter-pill-surface);
  font-size:14px;
  font-weight:500;
  line-height:1.25;
  color:var(--cm-text);
  cursor:pointer;
  text-align:center;
  transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,color .15s ease;
}
.cm-filter-chip:hover{background:var(--cm-filter-pill-hover);border-color:rgba(200,186,172,.92)}
.cm-filter-chip input{position:absolute;opacity:0;pointer-events:none;width:0;height:0}
.cm-filter-chip:has(input:checked){
  border-color:var(--cm-filter-pill-selected-bd);
  background:var(--cm-filter-pill-selected-bg);
  color:var(--cm-text);
  font-weight:600;
  box-shadow:inset 0 0 0 1px var(--cm-filter-pill-selected-ring);
}
.cm-filter-chip:has(input:focus-visible){
  outline:2px solid var(--cm-border-focus);
  outline-offset:2px;
}
.cm-filters__select{width:100%;min-width:160px;height:40px;padding:0 12px;border:1px solid var(--cm-border-soft);border-radius:10px;background:var(--cm-surface);font-size:14px}
.cm-filters__chips{display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center}
.cm-filters__chips .cm-chip{margin:0}
.cm-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;background:transparent;cursor:pointer;font-size:18px;line-height:1;padding:0;border-radius:8px;color:inherit}
.cm-icon-btn:hover{background:var(--cm-soft-hover)}

/* Desktop filters: compact toolbar. Only visible on desktop via @media. */
.cm-filterbar--desktop{margin-bottom:16px;}
.cm-filters--desktop{display:grid;grid-template-columns:repeat(4,1fr) auto;gap:12px;align-items:end;padding:12px 16px;border:1px solid var(--cm-border-soft);border-radius:var(--cm-radius);background:var(--cm-surface-soft)}
/* Casino archive: 2 selects + actions = single-row toolbar */
.cm-filters--desktop.cm-filters-toolbar{grid-template-columns:1fr 1fr auto;gap:12px;align-items:end}
.cm-filters--desktop .cm-filters__section{min-width:0;display:flex;flex-direction:column}
.cm-filters--desktop .cm-filters__section-title{display:block;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;opacity:.72;margin:0 0 4px}
.cm-filters--desktop select,.cm-filters--desktop .cm-filters__select{height:36px;padding:0 11px;border:1px solid var(--cm-filter-pill-border);border-radius:10px;background:var(--cm-surface);font-size:12px;width:100%;box-sizing:border-box}
.cm-filters--desktop .cm-filters__actions{display:flex;gap:8px;align-items:center;flex-wrap:nowrap;grid-column:span 1}
.cm-filters--desktop button[type="submit"],.cm-filters--desktop a.cm-btn{height:36px;padding:0 14px;border-radius:10px;font-size:12px;font-weight:600;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}
.cm-filters--desktop button[type="submit"]{background:var(--cm-cta);color:var(--cm-btn-primary-text);border:1px solid var(--cm-cta)}
.cm-filters--desktop button[type="submit"]:hover{background:var(--cm-cta-hover);border-color:var(--cm-cta-hover)}
.cm-filters--desktop a.cm-btn{background:var(--cm-surface);color:var(--cm-link);border:1px solid var(--cm-border-soft)}
.cm-filters--desktop a.cm-btn:hover{background:var(--cm-surface-soft);border-color:var(--cm-border)}
/* Responsive grid: fewer columns on smaller desktop screens */
@media (min-width:901px) and (max-width:1200px){
  .cm-filters--desktop{grid-template-columns:repeat(3,1fr) auto}
  .cm-filters--desktop.cm-filters-toolbar{grid-template-columns:1fr 1fr auto}
}
@media (min-width:901px) and (max-width:1000px){
  .cm-filters--desktop{grid-template-columns:repeat(2,1fr) auto}
  .cm-filters--desktop.cm-filters-toolbar{grid-template-columns:1fr 1fr auto}
}

/* Mobile: fixed bottom filter trigger — above sticky bars, always tappable */
.cm-filters-bottom{
  display:none;
  position:fixed;
  bottom:calc(8px + env(safe-area-inset-bottom, 0px));
  left:14px;
  right:14px;
  z-index:var(--z-filter-bar);
  padding:0;
  max-width:100%;
  box-sizing:border-box;
  background:transparent;
  border:none;
  box-shadow:none;
}
.cm-filters-bottom button{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:46px;
  padding:0 18px;
  border:1px solid var(--cm-filter-pill-border);
  border-radius:12px;
  background:var(--cm-surface);
  box-shadow:0 4px 14px rgba(47,36,29,.07);
  font-size:14px;
  font-weight:600;
  letter-spacing:0.015em;
  color:var(--cm-text);
  cursor:pointer;
  white-space:nowrap;
  transition:background .15s ease, border-color .15s ease, color .15s ease, box-shadow .15s ease, transform .12s ease;
}
.cm-filters-bottom button:hover{
  transform:scale(.99);
  border-color:rgba(200,186,172,.95);
  background:var(--cm-filter-pill-hover);
  box-shadow:0 3px 12px rgba(47,36,29,.06);
}
.cm-filters-bottom button:active{
  transform:scale(.99);
  border-color:rgba(180,166,152,.95);
  box-shadow:0 2px 8px rgba(47,36,29,.05);
}
.cm-filters-bottom button:focus-visible{
  outline:2px solid var(--cm-border-focus);
  outline-offset:2px;
}
.cm-filters-bottom button[aria-expanded="true"]{
  border-color:var(--cm-filter-pill-selected-bd);
  background:var(--cm-filter-pill-selected-bg);
  color:var(--cm-text);
  box-shadow:inset 0 0 0 1px var(--cm-filter-pill-selected-ring), 0 3px 12px rgba(47,36,29,.06);
}
.cm-filters-bottom button[aria-expanded="true"]:hover{
  transform:scale(.99);
  background:rgba(122,95,72,.11);
  border-color:rgba(110,86,66,.48);
  color:var(--cm-text);
  box-shadow:inset 0 0 0 1px var(--cm-filter-pill-selected-ring), 0 2px 10px rgba(47,36,29,.05);
}
.cm-filters-bottom button[aria-expanded="true"]:active{
  transform:scale(.99);
  border-color:rgba(110,86,66,.52);
}
/* Active filter count — readable (N) chip; hidden when zero (JS + :empty) */
.cm-filters-bottom .cm-filters__count{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:1.35em;
  padding:2px 7px;
  border-radius:999px;
  background:rgba(47,36,29,.06);
  border:1px solid rgba(216,203,189,.65);
  font-size:10px;
  font-weight:700;
  font-variant-numeric:tabular-nums;
  line-height:1.2;
  color:var(--cm-text-muted);
}
.cm-filters-bottom button[aria-expanded="true"] .cm-filters__count{
  background:var(--cm-surface);
  border-color:var(--cm-filter-pill-border);
  color:var(--cm-text);
}
.cm-filters-bottom .cm-filters__count:empty,
.cm-filters-bottom .cm-filters__count[data-cm-filters-count="0"]{
  display:none;
}

/* Legacy mobile pill (kept for backward compat, hidden) */
.cm-filters__pill{display:none}

/* ─── cm-sheet: filter bottom-sheet (above fixed filter pill, below drawer) ── */
.cm-sheet{opacity:0;visibility:hidden;pointer-events:none;position:fixed;inset:0;z-index:var(--z-sheet)}
.cm-sheet[aria-hidden="true"]{opacity:0 !important;visibility:hidden !important;pointer-events:none !important}

.cm-sheet__overlay{position:fixed;inset:0;background:var(--cm-overlay);z-index:var(--z-sheet);opacity:0;pointer-events:none;transition:opacity .22s ease}
.cm-sheet__panel{
  position:fixed;left:0;right:0;bottom:0;max-height:85vh;display:flex;flex-direction:column;
  background:var(--cm-surface);
  border-radius:18px 18px 0 0;
  border-top:1px solid rgba(230,217,203,.55);
  box-shadow:0 -10px 40px rgba(47,36,29,.09);
  z-index:var(--z-modal);
  transform:translateY(100%);
  transition:transform .28s cubic-bezier(.32,.72,0,1);
  padding-left:max(18px,env(safe-area-inset-left));
  padding-right:max(18px,env(safe-area-inset-right));
  overflow:hidden;
  pointer-events:none;
}
.cm-sheet.is-open,.cm-sheet[aria-hidden="false"]{opacity:1;visibility:visible;pointer-events:auto}
.cm-sheet.is-open .cm-sheet__overlay,.cm-sheet[aria-hidden="false"] .cm-sheet__overlay{opacity:1;pointer-events:auto}
.cm-sheet.is-open .cm-sheet__panel,.cm-sheet[aria-hidden="false"] .cm-sheet__panel{transform:translateY(0);pointer-events:auto}

.cm-sheet__handle{width:40px;height:5px;margin:12px auto 4px;border-radius:4px;background:rgba(47,36,29,.1);flex-shrink:0}
.cm-sheet__top{
  display:flex;align-items:center;justify-content:space-between;
  gap:12px;
  padding:6px 2px 14px;
  flex-shrink:0;
  border-bottom:1px solid var(--cm-border-subtle);
}
.cm-sheet__title{font-size:1.0625rem;font-weight:800;flex:1;letter-spacing:-.02em;line-height:1.25;color:var(--cm-text)}
.cm-sheet .cm-icon-btn{width:40px;height:40px;font-size:17px;color:var(--cm-text-muted);border-radius:10px;flex-shrink:0}
.cm-sheet .cm-icon-btn:hover{color:var(--cm-text);background:var(--cm-soft)}

.cm-filters--sheet{
  flex:1;
  min-height:0;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  padding:6px 0 18px;
  display:flex;
  flex-direction:column;
  gap:20px;
}
.cm-filters--sheet .cm-filters__section{margin:0}
.cm-filters--sheet .cm-filters__section-title{
  font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--cm-text-muted);
  margin:0 0 10px;opacity:.78;
}
/* Wrapping chip flow — scales with many options (no rigid 2-col blocks) */
.cm-filters--sheet .cm-filters__chips-grid{
  display:flex;flex-wrap:wrap;gap:7px 8px;align-items:flex-start;
}
.cm-filters--sheet .cm-filter-chip{
  position:relative;
  display:inline-flex;align-items:center;justify-content:center;
  flex:0 1 auto;
  max-width:100%;
  min-height:40px;
  padding:8px 15px;
  font-size:15px;font-weight:500;line-height:1.25;
  border-radius:999px;
  border:1px solid var(--cm-filter-pill-border);
  background:var(--cm-filter-pill-surface);
  color:var(--cm-text);
  cursor:pointer;
  transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease;
  box-shadow:none;
}
.cm-filters--sheet .cm-filter-chip:hover{
  background:var(--cm-filter-pill-hover);
  border-color:rgba(200,186,172,.92);
}
.cm-filters--sheet .cm-filter-chip:has(input:checked){
  border-color:var(--cm-filter-pill-selected-bd);
  background:var(--cm-filter-pill-selected-bg);
  color:var(--cm-text);
  font-weight:600;
  box-shadow:inset 0 0 0 1px var(--cm-filter-pill-selected-ring);
}
.cm-filters--sheet .cm-filter-chip:has(input:focus-visible){
  outline:2px solid var(--cm-border-focus);
  outline-offset:2px;
}
.cm-filters--sheet .cm-filters__select,.cm-filters--sheet select{
  min-height:44px;height:auto;font-size:14px;width:100%;max-width:100%;
  border:1px solid var(--cm-border-subtle);border-radius:12px;background:var(--cm-surface);
  padding:10px 12px;box-sizing:border-box;color:var(--cm-text);
}

.cm-sheet__actions{
  display:flex;flex-direction:row;align-items:stretch;gap:12px;
  padding:14px 0;
  padding-bottom:max(16px,env(safe-area-inset-bottom));
  border-top:1px solid var(--cm-border-subtle);
  background:linear-gradient(180deg,rgba(255,255,255,0) 0%,var(--cm-surface) 18%);
  flex-shrink:0;
}
.cm-sheet__actions .cm-sheet__clear{
  flex:0 0 auto;
  min-width:108px;
  min-height:48px;
  height:auto;
  padding:0 16px;
  font-size:14px;font-weight:600;
  border-radius:12px;
  border-color:var(--cm-border-soft);
  color:var(--cm-text-muted) !important;
}
.cm-sheet__actions .cm-sheet__clear:hover{
  color:var(--cm-text) !important;
  background:var(--cm-surface-soft);
  border-color:var(--cm-border);
}
.cm-sheet__actions .cm-sheet__apply{
  flex:1;
  min-width:0;
  min-height:48px;
  height:auto;
  border-radius:12px;
  font-size:15px;font-weight:700;
  justify-content:center;
  background:var(--cm-cta);
  border:1.5px solid var(--cm-cta);
  color:var(--cm-btn-primary-text) !important;
}
.cm-sheet__actions .cm-sheet__apply:hover{background:var(--cm-cta-hover);border-color:var(--cm-cta-hover)}

body.cm-sheet-open{overflow:hidden}

/* ─── Responsive visibility: desktop = inline bar only; mobile = Filters (N) pill + sheet ── */
@media (min-width:768px){
  /* Desktop: show filterbar/toolbar only; hide mobile pill and sheet */
  .cm-filterbar--desktop{display:block !important}
  .cm-filters--desktop{display:grid !important}
  .cm-filters-bottom{display:none !important}
  .cm-sheet{display:none !important}
  .cm-container,.cm-main{padding-bottom:0 !important}
}
@media (max-width:767px){
  /* Mobile: hide desktop filterbar; show only fixed bottom pill (opens sheet) */
  .cm-filterbar--desktop,
  .cm-filters--desktop{display:none !important}
  .cm-filters-bottom{display:block !important}
  /* Pages with a bottom filter pill need extra room for it */
  body:not(.home):not(.post-type-archive-guide):not(.post-type-archive-slot):not(.single-guide) .cm-container,
  body:not(.home):not(.post-type-archive-guide):not(.post-type-archive-slot):not(.single-guide) .cm-main{padding-bottom:calc(78px + env(safe-area-inset-bottom))}
  /* Pages without filter pill: normal bottom padding */
  body.post-type-archive-guide .cm-container,
  body.post-type-archive-guide .cm-main,
  body.single-guide .cm-container,
  body.single-guide .cm-main{padding-bottom:32px}
  body.home .cm-container,
  body.home .cm-main,
  .cm-page .cm-container{padding-bottom:24px !important}
}

/* ─── Legacy filter classes (kept for backward-compat, visually hidden on mobile) ── */
.cm-filters__bar{display:none}
.cm-filters__toggle{display:none}
.cm-filters__overlay{display:none}
.cm-filters__drawer.cm-filter-sheet{display:none}
.cm-filters__actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.cm-filters__close{background:transparent;border:1px solid var(--cm-border);border-radius:10px;padding:0 14px;height:40px;font-size:14px;font-weight:600;cursor:pointer}
.cm-filters__sheet-handle,.cm-filters__title,.cm-filters__sheet-header{display:none}

/* Legacy: chip styling lives under .cm-resultsbar + filter tokens (see results bar section). */
.cm-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
@media (max-width:900px){.cm-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.cm-grid{grid-template-columns:1fr}.cm-filters__form{flex-direction:column;align-items:stretch}}
.cm-card{border:1px solid var(--cm-border-subtle);border-radius:16px;padding:14px;background:var(--cm-surface);box-shadow:var(--cm-shadow-card)}
.cm-card h2{font-size:16px;margin:0 0 8px}
.cm-card p{margin:0;opacity:.75;font-size:14px}
/* STEP 3: Pagination uses tokens, no default WP list styling */
.cm-pagination { margin: var(--cm-space-lg, 24px) 0; display: flex; gap: 6px; flex-wrap: wrap; justify-content: center; list-style: none; padding: 0; }
.cm-pagination a, .cm-pagination span, .cm-pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 36px; height: 36px; padding: 0 10px; border: 1px solid var(--cm-border); border-radius: var(--cm-radius-sm); font-size: 14px; font-weight: 500; text-decoration: none; color: inherit; transition: background .15s ease, border-color .15s ease, color .15s ease; }
.cm-pagination a:hover, .cm-pagination .page-numbers:hover { background: var(--cm-soft); border-color: var(--cm-border-strong); }
.cm-pagination a:focus-visible { outline: 2px solid var(--cm-border-focus); outline-offset: 2px; }
.cm-pagination .current, .cm-pagination .page-numbers.current { background: var(--cm-accent); color: var(--cm-cta-text); border-color: var(--cm-accent); font-weight: 600; }
.cm-pagination .dots, .cm-pagination .page-numbers.dots { border: none; background: none; pointer-events: none; min-width: 24px; padding: 0; }

/* === Casino Monkey: Comparison Tables (data from plugin card layer) === */
/* Sprint 3: Comparison table — sticky header, row density, CTA alignment, overflow */
.cm-compare__wrap {
  overflow: auto;
  max-width: 100%;
  box-sizing: border-box;
  border: 1px solid var(--cm-border);
  border-radius: var(--cm-radius);
  background: var(--cm-surface);
  -webkit-overflow-scrolling: touch;
}
.cm-compare__table {
  width: 100%;
  border-collapse: collapse;
  min-width: 640px;
}
.cm-compare__table th,
.cm-compare__table td {
  padding: 8px 12px;
  border-bottom: 1px solid var(--cm-border-subtle);
  text-align: left;
  white-space: nowrap;
  vertical-align: middle;
}
.cm-compare__table th {
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .04em;
  opacity: .85;
}
.cm-compare__table tbody tr:last-child td { border-bottom: none; }
.cm-compare__cta-cell {
  text-align: right;
  vertical-align: middle;
  white-space: nowrap;
}
.cm-compare__cta-cell .cm-compare__cta { margin-left: 8px; }
.cm-compare__cta-cell .cm-compare__cta:first-child { margin-left: 0; }
.cm-compare__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 36px;
  padding: 0 14px;
  border-radius: var(--cm-radius-pill);
  border: 1px solid var(--cm-border);
  text-decoration: none;
  font-size: 13px;
  font-weight: 600;
}
/* Sticky header (when .cm-compare--sticky) */
.cm-compare--sticky .cm-compare__wrap { position: relative; }
.cm-compare--sticky .cm-compare__table thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  background: var(--cm-surface);
  box-shadow: 0 1px 0 var(--cm-border-subtle);
  padding: 8px 12px;
}
.cm-compare--sticky .cm-compare__table thead tr { border-bottom: 1px solid var(--cm-border-subtle); }

.cm-card{border:1px solid var(--cm-border-subtle);border-radius:var(--cm-radius);background:var(--cm-surface);box-shadow:var(--cm-shadow-card)}
.cm-compare__cta{border:1px solid var(--cm-border);border-radius:var(--cm-radius-pill);background:var(--cm-soft)}
.cm-compare__cta:hover{background:var(--cm-soft-hover)}

/* === STEP 1: CM Header — sticky, one row; clean premium spacing === */
.cm-site{min-height:0}
.cm-header{
  position:sticky;top:0;z-index:var(--z-sticky);
  width:100%;
  max-width:100%;
  box-sizing:border-box;
  background:var(--cm-header-bg);
  backdrop-filter:saturate(180%) blur(10px);
  border-bottom:1px solid var(--cm-border-soft);
}
.cm-header__inner{
  max-width:1100px;margin:0 auto;
  display:flex;align-items:center;justify-content:space-between;gap:20px;
  padding:14px 20px;
  min-width:0; /* flex row: allows shrinking on tablet, reduces horizontal overflow */
}
.cm-brand{
  display:flex !important;
  align-items:center;
  gap:12px;
  text-decoration:none;
  color:inherit;
  flex-shrink:0;
  visibility:visible !important;
  opacity:1 !important;
}
.cm-brand:hover{opacity:.9}
.cm-brand:focus-visible{outline:2px solid var(--cm-border-focus);outline-offset:3px;border-radius:6px}
.cm-brand__logo{font-size:18px;flex-shrink:0}
.cm-brand__logo-svg{display:block;width:32px;height:32px;flex-shrink:0;border-radius:50%}
.cm-brand__logo-img{
  display:block !important;
  height:auto;
  max-height:38px;
  width:auto;
  max-width:200px;
  object-fit:contain;
  flex-shrink:0;
  visibility:visible !important;
  opacity:1 !important;
}
.cm-brand__name{
  font-weight:700;
  letter-spacing:-.02em;
  white-space:nowrap;
  font-size:1rem;
}
.cm-nav{display:flex;gap:16px;align-items:center}
.cm-nav a{opacity:.9;text-decoration:none;font-size:14px;color:inherit}
.cm-nav a:hover{opacity:1;text-decoration:underline;color:var(--cm-accent)}
.cm-nav a:focus-visible{outline:2px solid var(--cm-border-focus);outline-offset:2px;border-radius:4px}

.cm-header__right{display:flex;gap:12px;align-items:center}
.cm-search{display:flex;gap:8px;align-items:center}
.cm-search__input{
  height:40px;min-width:200px;
  padding:0 14px;border:1px solid var(--cm-border-soft);
  border-radius:var(--cm-radius);background:var(--cm-surface);
  font-size:14px;
}
.cm-search__btn{
  height:40px;width:40px;padding:0;
  border:1px solid var(--cm-border-soft);
  border-radius:var(--cm-radius);
  background:var(--cm-soft);cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;
}
.cm-search__btn > span{display:inline-flex;align-items:center;justify-content:center;line-height:1;}
.cm-search__btn:hover{background:var(--cm-surface-soft)}

/* Burger: no global display — desktop hides via @media (min-width:768px), mobile shows via @media (max-width:767px) */
.cm-burger{
  height:40px;min-width:40px;padding:0;
  border:1px solid var(--cm-border-soft);
  border-radius:var(--cm-radius);
  background:var(--cm-surface);cursor:pointer;
  align-items:center;justify-content:center;
}

@media (min-width: 921px){
  .cm-header__search--desktop .cm-search__input{min-width:220px}
}

/* Logo responsive on mobile */
@media (max-width: 767px){
  .cm-brand{
    gap:8px;
    flex-shrink:0;
    min-width:0;
  }
  .cm-brand__logo-img{
    display:block !important;
    max-height:32px;
    max-width:140px;
    width:auto;
    height:auto;
    object-fit:contain;
    visibility:visible !important;
    opacity:1 !important;
  }
  .cm-brand__name{
    font-size:0.9rem;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
}

/* === Hub UX upgrades === */
.cm-resultsbar{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:12px 0 6px}
.cm-resultsbar__count{opacity:.75;font-size:14px}

.cm-chip--link{display:inline-flex;align-items:center;gap:8px;text-decoration:none}
.cm-chip__x{opacity:.6}

.cm-card--row{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;padding:16px}
.cm-card__title{margin:0 0 8px;font-size:16px}
.cm-card__type{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;opacity:.7;margin:0 0 4px}
.cm-card__excerpt{margin:8px 0 0;opacity:.75}
.cm-card__cta{display:flex;align-items:center}

.cm-badges{display:flex;gap:5px 6px;flex-wrap:wrap;margin-top:4px}
.cm-badge{
  display:inline-flex;align-items:center;
  border:1px solid var(--cm-meta-chip-border);
  background:var(--cm-meta-chip-bg);
  border-radius:999px;
  padding:2px 7px;
  font-size:var(--cm-meta-label-size);
  font-weight:600;
  letter-spacing:var(--cm-meta-label-track);
  text-transform:uppercase;
  color:var(--cm-meta-chip-text);
  line-height:1.35;
}

/* Card CTA layout */
.cm-card__cta{
  display:flex;
  gap:10px;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
}

.cm-card__cta .cm-compare__cta{
  height:40px;
  padding:0 14px;
  font-weight:600;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:120px;
  white-space:nowrap;
}

.cm-compare__cta--secondary{
  border:1px solid var(--cm-border);
  background:transparent;
}

/* Make card excerpt look tighter */
.cm-card__excerpt{
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}

/* Mobile: stack CTAs full width */
@media (max-width: 640px){
  .cm-card__cta{
    justify-content:stretch;
  }
  .cm-card__cta .cm-compare__cta{
    width:100%;
    min-width:0;
  }
}

/* CTA buttons (shared) */
.cm-compare__cta--btn{
  height:40px !important;
  padding:0 14px !important;
  font-weight:600 !important;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:12px;
  white-space:nowrap;
}

/* Spacing between CTAs inside cards + tables */
.cm-card__cta{
  display:flex;
  gap:10px;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
}

.cm-compare__table td:last-child{
  white-space:nowrap;
}
.cm-compare__table td:last-child .cm-compare__cta--btn{
  margin-left:10px;
}
.cm-compare__table td:last-child .cm-compare__cta--btn:first-child{
  margin-left:0;
}

/* CTA cell alignment */
.cm-compare__cell--right {
  text-align: right;
}
@media (max-width: 767px) {
  .cm-compare__cell--right {
    text-align: left;
  }
}

/* External icon via CSS only (no markup changes besides class) */
.cm-compare__cta--external::after{
  content:"";
  width:14px;
  height:14px;
  display:inline-block;
  margin-left:8px;
  background-repeat:no-repeat;
  background-size:14px 14px;
  opacity:.9;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 3h7v7'/%3E%3Cpath d='M10 14L21 3'/%3E%3Cpath d='M21 14v7H3V3h7'/%3E%3C/svg%3E");
}

/* If your primary CTA is dark, keep icon readable */
.cm-compare__cta:not(.cm-compare__cta--secondary).cm-compare__cta--external::after{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 3h7v7'/%3E%3Cpath d='M10 14L21 3'/%3E%3Cpath d='M21 14v7H3V3h7'/%3E%3C/svg%3E");
}

/* Casino card rank and logo */
.cm-card--row{
  position:relative;
}

.cm-rank{
  position:absolute;
  top:12px;
  left:12px;
  font-size:11px;
  font-weight:600;
  opacity:.6;
  z-index:1;
}

.cm-logo{
  position:absolute;
  top:12px;
  right:12px;
  width:44px;
  height:44px;
  border-radius:10px;
  border:1px solid var(--cm-border);
  background:var(--cm-surface);
  overflow:hidden;
  z-index:1;
}

.cm-logo img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
}

.cm-card__main{
  flex:1;
}

.cm-empty{
  margin-top:18px;
  opacity:.75;
}

/* Hub intro + FAQ — unified for all archives, calm premium */
.cm-hub-intro{
  padding: var(--cm-space-lg, 24px);
  margin-top: 0;
  margin-bottom: 0;
  background: var(--cm-surface);
  border: 1px solid var(--cm-border-subtle);
  border-radius: var(--cm-radius);
}
@media (min-width:600px){
  .cm-hub-intro{padding: var(--cm-space-lg, 24px) var(--cm-space-xl, 28px);}
}
.cm-hub-faq{
  padding: var(--cm-space-lg, 24px);
  margin-top: 0;
  margin-bottom: 0;
  background: var(--cm-surface);
  border: 1px solid var(--cm-border-subtle);
  border-radius: var(--cm-radius);
}
@media (min-width:600px){
  .cm-hub-faq{padding: var(--cm-space-lg, 24px) var(--cm-space-xl, 28px);}
}


/* Archive header spacing (no inline styles) */
.cm-archive-header{margin-bottom:14px;}
.cm-archive-title{margin:0 0 6px;}
.cm-archive-subtitle{margin:0;opacity:.75;}
/* Archive spacing rhythm — one stack token across all post-type archives */
.cm-archive-casino .cm-section,
.cm-archive-guides .cm-section,
.cm-archive-news .cm-section,
.cm-archive-slots .cm-section,
.cm-archive-bonus .cm-section,
.cm-archive-payment-methods .cm-section {
  margin-bottom: var(--cm-archive-hub-stack-gap);
}
.cm-archive-casino .cm-grid,
.cm-archive-slots .cm-grid,
.cm-archive-guides .cm-grid,
.cm-archive-news .cm-news-grid,
.cm-archive-bonus .cm-grid,
.cm-archive-payment-methods .cm-grid { gap: 16px; }
@media (max-width:600px){
  .cm-archive-casino .cm-grid,
  .cm-archive-slots .cm-grid,
  .cm-archive-guides .cm-grid,
  .cm-archive-news .cm-news-grid,
  .cm-archive-bonus .cm-grid,
  .cm-archive-payment-methods .cm-grid { gap: 12px; }
}

/* Money hubs (/bonuses, /slots, /payment-methods): clip overflow, dense cross-links, flatter top table */
.cm-archive-bonus,
.cm-archive-slots,
.cm-archive-payment-methods {
  overflow-x: hidden;
  max-width: 100%;
}
.cm-archive-crosslinks {
  margin: 0 0 12px;
  padding: 8px 11px;
  border: 1px solid var(--cm-border-soft);
  border-radius: var(--cm-radius);
  background: var(--cm-surface);
  box-sizing: border-box;
}
.cm-archive-crosslinks__label {
  margin: 0 0 5px;
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--cm-text-muted, #6b6560);
}
.cm-archive-crosslinks__row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  row-gap: 4px;
  line-height: 1.35;
}
.cm-archive-crosslinks__sep {
  margin: 0 7px;
  color: var(--cm-text-muted, #9e8e82);
  font-size: 11px;
  user-select: none;
}
.cm-archive-crosslinks__a {
  font-size: 12px;
  font-weight: 500;
  color: var(--cm-color-text);
  text-decoration: none;
}
.cm-archive-crosslinks__a:hover {
  color: var(--cm-cta);
  text-decoration: underline;
}
/* Mobile: hide "Browse" hub crosslinks bar (cleaner UX; drawer/footer still reach hubs) */
@media (max-width: 767px) {
  .cm-archive-crosslinks {
    display: none !important;
  }
}
.cm-archive-bonus .cm-archive-top,
.cm-archive-slots .cm-archive-top,
.cm-archive-payment-methods .cm-archive-top {
  border-radius: var(--cm-radius);
  border: 1px solid var(--cm-border-subtle);
  box-shadow: var(--cm-shadow-card);
  background: var(--cm-surface-soft);
  padding: var(--cm-space-md) var(--cm-space-md);
  margin-bottom: var(--cm-archive-hub-stack-gap);
}
@media (min-width: 600px) {
  .cm-archive-bonus .cm-archive-top,
  .cm-archive-slots .cm-archive-top,
  .cm-archive-payment-methods .cm-archive-top {
    padding: var(--cm-space-md) var(--cm-space-lg);
  }
}
@media (max-width: 767px) {
  .cm-archive-bonus .cm-archive-top,
  .cm-archive-slots .cm-archive-top,
  .cm-archive-payment-methods .cm-archive-top {
    padding: 12px 14px;
    margin-bottom: var(--cm-archive-hub-tight-gap);
  }
}
.cm-archive-bonus .cm-archive-grid > *,
.cm-archive-slots .cm-archive-grid > *,
.cm-archive-payment-methods .cm-archive-grid > * {
  min-width: 0;
}

/* Page header (breadcrumb + H1 + subtitle) — premium compact */
/* ─── Page wrapper ───────────────────────────────────────────────────────── */
.cm-page{display:block}
.cm-page .cm-container{display:block}

/* ─── Homepage (legacy section wrapper) ─────────────────────────────────── */
.cm-home-sections{margin-top:28px;}
/* Homepage directory: .cm-home-directory .cm-home-grid (see block below) */

/* Mixed layout: 4-col for hub/directory links, 3-col for editorial/cards */
.cm-grid--hub{display:grid;gap:10px}
.cm-grid--cards{display:grid;gap:14px}
@media (max-width:767px){
  .cm-grid--hub,.cm-grid--cards{grid-template-columns:1fr}
}
@media (min-width:768px) and (max-width:1023px){
  .cm-grid--hub,.cm-grid--cards{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (min-width:1024px) and (max-width:1279px){
  .cm-grid--hub,.cm-grid--cards{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (min-width:1280px){
  .cm-grid--hub{grid-template-columns:repeat(4,minmax(0,1fr))}
  .cm-grid--cards{grid-template-columns:repeat(3,minmax(0,1fr))}
}
.cm-hub-box__links.cm-grid--hub{display:grid}
.cm-hub-box__list.cm-grid--cards{display:grid;list-style:none;margin:0;padding:0}
.cm-hub-box__list.cm-grid--cards li{margin:0}

/* Hub box: premium card with title, subtitle, body, CTA */
.cm-hub-box{display:flex;flex-direction:column;gap:18px;padding:22px}
.cm-hub-box--pillar{padding:24px}
@media (min-width:980px){
  .cm-hub-box--pillar{padding:26px 24px}
}
.cm-hub-box__header{margin-bottom:2px}
.cm-hub-box__title{margin:0 0 6px;font-size:1.25rem;font-weight:700;line-height:1.25}
.cm-hub-box__subtitle{margin:0;font-size:0.875rem;opacity:.78;line-height:1.45}
.cm-hub-box__body{display:flex;flex-direction:column;gap:14px;min-height:0}
.cm-hub-box__label{margin:0 0 8px;font-size:0.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;opacity:.65}
.cm-hub-box__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.cm-hub-box__list li{margin:0}

/* Two-column layout inside box (desktop) */
.cm-hub-box__cols{display:grid;grid-template-columns:1fr;gap:18px}
@media (min-width:980px){
  .cm-hub-box__cols{grid-template-columns:repeat(2,1fr);gap:22px}
}
.cm-hub-box__col-title{margin:0 0 10px;font-size:0.8125rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;opacity:.7}

/* Quick links: compact pill-style or list */
.cm-hub-box__links,.cm-hub-links{display:flex;flex-wrap:wrap;gap:8px}
.cm-hub-box__link{display:inline-flex;align-items:center;padding:6px 12px;border:1px solid var(--cm-border);border-radius:999px;background:var(--cm-soft);color:inherit;text-decoration:none;font-size:0.8125rem;font-weight:500;transition:background .15s,border-color .15s}
.cm-hub-box__link:hover{background:var(--cm-soft-hover);border-color:var(--cm-border);text-decoration:none}
.cm-hub-box__link--block{display:block;padding:6px 0;border:none;border-radius:0;background:transparent;font-size:0.9375rem}
.cm-hub-box__link--block:hover{background:transparent;opacity:.85}

/* CTA button at bottom of box */
.cm-hub-box__cta{margin-top:auto;padding-top:14px;border-top:1px solid var(--cm-border-subtle)}
.cm-hub-box__cta .cm-btn{width:100%;justify-content:center}
@media (min-width:980px){
  .cm-hub-box__cta .cm-btn{width:auto;min-width:160px}
}

/* Section spacing — consistent vertical rhythm */
.cm-section{margin-top:24px;}
.cm-section:first-of-type{margin-top:20px;}

/* Casino/Slots/Guides/News archives: single filter block, warm premium styling */
.cm-filterbar {
  margin-bottom: var(--cm-space-lg, 24px);
}
.cm-filterbar--desktop .cm-filters--desktop {
  display: grid;
  grid-template-columns: 1fr 1fr auto;
  gap: var(--cm-space-md, 16px);
  align-items: end;
  padding: var(--cm-space-md, 16px);
  border: 1px solid var(--cm-border-subtle);
  border-radius: var(--cm-radius);
  background: var(--cm-surface-soft);
  box-shadow: var(--cm-shadow-card);
}
.cm-filterbar--desktop .cm-filters__section-title {
  display: block;
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .06em;
  opacity: .58;
  margin: 0 0 var(--cm-space-xs, 4px);
  color: var(--cm-color-text);
}
.cm-filterbar--desktop .cm-filters__select,
.cm-filterbar--desktop select {
  height: 36px;
  padding: 0 11px;
  border: 1px solid var(--cm-filter-pill-border);
  border-radius: 10px;
  background: var(--cm-surface);
  font-size: 12px;
  width: 100%;
  box-sizing: border-box;
  transition: border-color .15s;
}
.cm-filterbar--desktop .cm-filters__select:focus,
.cm-filterbar--desktop select:focus {
  outline: 2px solid var(--cm-border-focus);
  outline-offset: 1px;
  border-color: var(--cm-border-focus);
}
.cm-filterbar--desktop .cm-filters__actions {
  display: flex;
  gap: var(--cm-space-sm, 8px);
  align-items: center;
}
.cm-filterbar--desktop button[type="submit"],
.cm-filterbar--desktop a.cm-btn {
  height: 36px;
  padding: 0 14px;
  border-radius: 10px;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
  transition: background .15s, border-color .15s, color .15s;
}
.cm-filterbar--desktop button[type="submit"] {
  background: var(--cm-cta);
  color: var(--cm-btn-primary-text);
  border: 1px solid var(--cm-cta);
}
.cm-filterbar--desktop button[type="submit"]:hover {
  background: var(--cm-cta-hover);
  border-color: var(--cm-cta-hover);
}
.cm-filterbar--desktop a.cm-btn {
  background: var(--cm-surface);
  color: var(--cm-cta);
  border: 1px solid var(--cm-border-subtle);
}
.cm-filterbar--desktop a.cm-btn:hover {
  background: var(--cm-surface-soft);
  border-color: var(--cm-border);
}
/* Single filter column (e.g. News Topic) */
.cm-filterbar--desktop .cm-filters--desktop.cm-filters-toolbar--1col{grid-template-columns:1fr auto}
/* Three filter columns (e.g. Payment methods) */
.cm-filterbar--desktop .cm-filters--desktop.cm-filters-toolbar--3col{grid-template-columns:1fr 1fr 1fr auto}

/* 2-column grid (e.g. Popular by Country + Popular by License) */
.cm-grid--2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;}

/* ── cm-browse-block: single source of truth for archive browse chips ──
   Desktop: comfortable. Mobile: compact, smaller pills, lighter count, tighter rhythm.
──────────────────────────────────────────────────────────────────────────── */
.cm-browse-block {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  padding: 12px 14px;
  background: var(--cm-surface-soft, #f9f6f3);
  border: 1px solid var(--cm-border-subtle, rgba(0,0,0,.07));
  border-radius: var(--cm-radius, 12px);
}
.cm-browse-block .cm-link-group {
  flex: 1 1 130px;
  min-width: 0;
}
.cm-browse-block .cm-link-group__label {
  margin: 0 0 5px;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--cm-text-muted, #9e8e82);
}
.cm-browse-block .cm-link-group__items {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}
.cm-browse-block .cm-link-pill {
  padding: 4px 8px;
  font-size: 11px;
  font-weight: 500;
  background: var(--cm-surface, #fff);
  border: 1px solid var(--cm-border-subtle, rgba(0,0,0,.08));
  border-radius: 999px;
  color: var(--cm-color-text, #2d2419);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 2px;
  white-space: nowrap;
  transition: background .13s, border-color .13s;
}
.cm-browse-block .cm-link-pill:hover {
  background: var(--cm-soft, rgba(0,0,0,.04));
  border-color: var(--cm-border, rgba(0,0,0,.14));
  text-decoration: none;
}
.cm-browse-block .cm-link-pill__count {
  font-size: 8px;
  font-weight: 600;
  color: var(--cm-text-muted, #9e8e82);
  background: rgba(0,0,0,.05);
  border-radius: 999px;
  padding: 0 3px;
  line-height: 1.3;
}
@media (max-width:767px) {
  .cm-browse-block {
    padding: 4px 6px;
    gap: 4px;
  }
  .cm-browse-block .cm-link-group {
    flex: 1 1 90px;
  }
  .cm-browse-block .cm-link-group__label {
    font-size: 7px;
    margin: 0 0 2px;
    letter-spacing: .05em;
  }
  .cm-browse-block .cm-link-group__items {
    gap: 2px;
  }
  .cm-browse-block .cm-link-pill {
    padding: 2px 4px;
    font-size: 8px;
    gap: 1px;
  }
  .cm-browse-block .cm-link-pill__count {
    font-size: 6px;
    padding: 0 2px;
    background: rgba(0,0,0,.04);
  }
}

/* Bonuses hub — desktop: lighter “By type / country” browse chips (editorial, less heavy) */
@media (min-width: 768px) {
  .cm-archive-bonus .cm-browse-block {
    padding: 10px 12px;
    gap: 10px;
    background: rgba(249, 246, 243, 0.5);
    border-color: rgba(47, 36, 29, 0.065);
  }
  .cm-archive-bonus .cm-browse-block .cm-link-group__label {
    margin: 0 0 4px;
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 0.085em;
    color: rgba(47, 36, 29, 0.4);
  }
  .cm-archive-bonus .cm-browse-block .cm-link-group__items {
    gap: 5px;
  }
  .cm-archive-bonus .cm-browse-block .cm-link-pill {
    padding: 3px 9px;
    font-size: 10.5px;
    font-weight: 500;
    border-color: rgba(47, 36, 29, 0.085);
    background: rgba(255, 255, 255, 0.88);
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.65);
  }
  .cm-archive-bonus .cm-browse-block .cm-link-pill:hover {
    background: #fff;
    border-color: rgba(47, 36, 29, 0.12);
  }
  .cm-archive-bonus .cm-browse-block .cm-link-pill__count {
    font-size: 8px;
    font-weight: 600;
    color: rgba(47, 36, 29, 0.38);
    background: rgba(47, 36, 29, 0.05);
  }
}

/* Compact table (Top Casinos table on archive) — Sprint 2 polish */
.cm-archive-top .cm-compare__table,
.cm-archive-top table {
  font-size: 14px;
  width: 100%;
  border-collapse: collapse;
}
.cm-archive-top .cm-compare__table th,
.cm-archive-top .cm-compare__table td,
.cm-archive-top th,
.cm-archive-top td {
  padding: 10px 14px;
  text-align: left;
  border-bottom: 1px solid var(--cm-border-subtle);
}
.cm-archive-top .cm-compare__table tbody tr:last-child td {
  border-bottom: none;
}
.cm-archive-top .cm-compare__table thead th {
  padding: 10px 14px;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .05em;
  opacity: .8;
  color: var(--cm-color-text);
  border-bottom: 1px solid var(--cm-border-subtle);
}
.cm-archive-top .cm-compare__table tbody tr:hover {
  background: var(--cm-soft);
}
/* Featured casinos table: readable names (short label in cell; full title on link title=), no nowrap truncation on country/license */
.cm-archive-top .cm-compare__td--name,
.cm-archive-top .cm-compare__td--country,
.cm-archive-top .cm-compare__td--license {
  white-space: normal;
  vertical-align: middle;
  line-height: 1.45;
}
.cm-archive-top .cm-compare__td--name {
  min-width: 12rem;
  max-width: min(32rem, 40vw);
}
.cm-archive-top .cm-compare__td--country {
  max-width: 11rem;
}
.cm-archive-top .cm-compare__td--license {
  max-width: 13rem;
}
.cm-archive-top .cm-tbl-name--casino {
  align-items: flex-start;
  gap: 12px;
}
.cm-archive-top .cm-tbl-name--casino .cm-tbl-name__link {
  font-weight: 650;
  letter-spacing: -0.01em;
  color: var(--cm-text);
  text-decoration: none;
}
.cm-archive-top .cm-tbl-name--casino .cm-tbl-name__link:hover {
  color: var(--cm-cta);
  text-decoration: underline;
}
.cm-hub-block{padding:18px;margin-top:22px;}

/* Single bonus (no inline styles) */
.cm-single-card{padding:28px;background:var(--cm-surface-soft);border:1px solid var(--cm-border);border-radius:var(--cm-radius);box-shadow:var(--cm-shadow-card);}
.cm-single__header{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;flex-wrap:wrap;margin-bottom:24px;}
.cm-single__title{margin:0;font-size:clamp(1.5rem,4vw,2rem);font-weight:700;line-height:1.2;color:var(--cm-text);letter-spacing:-.02em;}
.cm-single__lead{margin:12px 0 0;color:var(--cm-text-muted);font-size:15px;line-height:1.6;}
.cm-single__meta{display:flex;gap:10px;flex-wrap:wrap;opacity:.9;margin-top:12px;}
/* .cm-single__cta-row desktop: inline row; mobile stacking via .cm-btn-row--mobile-stack */
.cm-single__cta-row{display:flex;flex-direction:row;gap:10px;align-items:center;flex-shrink:0;}
/* .cm-single__cta--primary/.cm-single__cta--secondary are now aliased to .cm-btn foundation above */
.cm-single__cta--primary{background:var(--cm-cta);color:var(--cm-btn-primary-text) !important;border-color:var(--cm-cta);}
.cm-single__cta--primary:hover{background:var(--cm-cta-hover);border-color:var(--cm-cta-hover);}
.cm-single__cta--secondary{background:transparent;color:var(--cm-text) !important;border-color:var(--cm-border);}
.cm-single__cta--secondary:hover{background:var(--cm-soft);border-color:var(--cm-border);}
.cm-single__related{margin:40px 0 0;}
.cm-single__cta-wrap{margin-top:24px;display:flex;justify-content:flex-start;}
.cm-next-steps{margin-top:24px;padding-top:20px;border-top:1px solid var(--cm-border-subtle);}
.cm-next-steps__title{margin:0 0 14px;font-size:15px;font-weight:600;}
.cm-next-steps__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px 20px;}
.cm-next-steps__item{font-size:14px;}
.cm-next-steps__item a{text-decoration:none;color:inherit;font-weight:500;}
.cm-next-steps__item a:hover{text-decoration:underline;}
@media (max-width: 767px) {
  .cm-next-steps__grid{grid-template-columns:1fr;}
}
.cm-single-section{margin-top:32px;padding:24px;background:var(--cm-surface-soft);border:1px solid var(--cm-border-soft);border-radius:var(--cm-radius,16px);box-shadow:var(--cm-shadow-card,0 2px 8px rgba(17,17,17,.04));}
.cm-single-section__title{margin:0 0 16px;font-size:20px;font-weight:700;color:var(--cm-text);line-height:1.3;}
.cm-single-section__meta{margin-top:16px;display:flex;gap:10px;flex-wrap:wrap;}
.cm-single-section__text{margin-top:20px;line-height:1.7;color:var(--cm-text);font-size:15px;}
.cm-single-section__text:first-child{margin-top:0;}
.cm-single-section__cta{margin-top:24px;}
.cm-single__content{margin-top:28px;line-height:1.7;font-size:16px;color:var(--cm-text);}
.cm-single__content p{margin:0 0 18px;}
.cm-single__content p:last-child{margin-bottom:0;}
.cm-single__content h2{margin:32px 0 16px;font-size:1.5rem;font-weight:700;color:var(--cm-text);line-height:1.3;}
.cm-single__content h3{margin:24px 0 12px;font-size:1.25rem;font-weight:600;color:var(--cm-text);line-height:1.4;}
.cm-single__content ul,.cm-single__content ol{margin:16px 0;padding-left:24px;line-height:1.7;}
.cm-single__content li{margin-bottom:8px;}
.cm-single__content--fallback{text-align:center;padding:var(--cm-space-xl) var(--cm-space-lg);color:var(--cm-text-muted);}
.cm-single__content--fallback p{margin-bottom:var(--cm-space-md);}
.cm-single__grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:32px;}
.cm-single__box{padding:20px;background:var(--cm-surface-soft);border:1px solid var(--cm-border-soft);border-radius:var(--cm-radius,16px);}
.cm-single__box h2{margin:0 0 14px;font-size:18px;font-weight:700;color:var(--cm-text);}
@media (min-width:768px){
  .cm-single__accordion{border:1px solid rgba(0,0,0,.12);border-radius:16px;padding:16px;}
  .cm-single__accordion-summary{cursor:default;padding:0 0 10px;margin:0;font-size:16px;}
  .cm-single__accordion-summary::after{display:none;}
  .cm-single__accordion-body{border-top:none;padding:0;}
  .cm-single__accordion-body ul{margin:0;padding-left:18px;}
}
.cm-single__box ul{margin:0;padding-left:18px;}
.cm-single__box p{margin:0;opacity:.75;}
.cm-single__section{margin-top:22px;}
.cm-single__section h2{margin:0 0 10px;}
.cm-related-card{padding:16px;}
.cm-related-card h3{margin:0 0 8px;font-size:16px;}
.cm-related-card p{margin:0;opacity:.75;}
.cm-single__section-title{margin:0 0 10px;}
.cm-single__muted{opacity:.7;font-style:italic;color:var(--cm-text-muted);font-size:14px;}
@media (max-width:767px){
  .cm-single__grid{grid-template-columns:1fr;}
  .cm-single-card{padding:20px;}
  .cm-single__header{margin-bottom:20px;}
  .cm-single__title{font-size:1.5rem;}
  .cm-single__content{margin-top:20px;font-size:15px;}
  .cm-single__content h2{font-size:1.25rem;margin-top:24px;}
  .cm-single__content h3{font-size:1.125rem;margin-top:20px;}
  .cm-single-section{padding:20px;margin-top:24px;}
  .cm-single-section__title{font-size:18px;}
  .cm-single__pros-cons{margin-top:24px;gap:16px;}
  .cm-single__accordion-summary{padding:16px 18px;font-size:15px;}
  .cm-single__accordion-body{padding:0 18px 18px;}
  .cm-single-faq{padding:24px 20px 20px;margin-top:32px;}
  .cm-single-faq__title{font-size:1.25rem;}
  .cm-single__related{margin-top:32px;}
  .cm-related{padding:24px 20px !important;}
  .cm-explore{padding:24px 20px;margin-top:32px;}
  .cm-explore h2{font-size:1.25rem;}
}

/* Single casino: mobile-first hero, CTA row, accordions, related cards */
@media (max-width:767px){
  .cm-single__hero{display:flex;flex-direction:column;gap:14px;}
  .cm-single__hero .cm-single__hero-inner{order:1;}
  .cm-single__hero .cm-single__cta-row{order:2;}
  .cm-single__title{font-size:clamp(1.25rem,4.5vw,1.5rem);line-height:1.25;margin:0 0 8px;}
  .cm-single__chips{display:flex;flex-wrap:wrap;gap:6px;margin:0;font-size:12px;opacity:.9;}
  .cm-single__chips .cm-chip{padding:4px 10px;font-size:12px;}
  /* CTA row: stacks via .cm-btn-row--mobile-stack; keep width + margin */
  .cm-single__cta-row{width:100%;margin-top:4px;}
  .cm-single__pros-cons{display:flex;flex-direction:column;gap:20px;margin-top:32px;}
  .cm-single__accordion{margin:0;padding:0;border:1px solid var(--cm-border-soft);border-radius:var(--cm-radius,16px);overflow:hidden;background:var(--cm-surface-soft);box-shadow:var(--cm-shadow-card,0 2px 8px rgba(17,17,17,.04));}
  .cm-single__accordion .cm-single__box{padding:0;border:none;box-shadow:none;background:transparent;}
  .cm-single__accordion-summary{list-style:none;padding:18px 20px;font-size:16px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:space-between;color:var(--cm-text);}
  .cm-single__accordion-summary::-webkit-details-marker{display:none;}
  .cm-single__accordion-summary::after{content:'';width:20px;height:20px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23111'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M19 9l-7 7-7-7'/%3E%3C/svg%3E") no-repeat center;flex-shrink:0;transition:transform .2s;opacity:.7;}
  .cm-single__accordion[open] .cm-single__accordion-summary::after{transform:rotate(180deg);}
  .cm-single__accordion-body{padding:0 20px 20px;border-top:1px solid var(--cm-border-soft);margin-top:0;}
  .cm-single__accordion-body ul{margin:0;padding:16px 0 0 22px;line-height:1.7;}
  .cm-single__accordion-body li{margin-bottom:10px;color:var(--cm-text);}
  .cm-single__accordion-body p{margin:0;padding:16px 0 0;color:var(--cm-text);line-height:1.7;}
  .cm-related-card{padding:12px 14px;}
  .cm-related-card h3{font-size:15px;margin:0 0 6px;}
  .cm-related-card p{font-size:13px;}
}

/* ─── Single Casino: Premium Money Page ─────────────────────────────────────────────────────── */

/* ── Shared: casino “decision” UI (single hero + mobile sticky) ── */
.cm-decision-rating{
  display:inline-flex;
  align-items:center;
  gap:4px;
  flex-shrink:0;
  padding:5px 10px 5px 8px;
  font-weight:700;
  line-height:1.2;
  color:var(--cm-text-muted);
  background:var(--cm-decision-rating-bg);
  border:1px solid var(--cm-decision-rating-bd);
  border-radius:var(--cm-casino-decision-radius-sm);
  box-shadow:none;
  font-variant-numeric:tabular-nums;
}
.cm-decision-rating--compact{
  padding:2px 6px 2px 5px;
  gap:2px;
  border-radius:var(--cm-radius-pill);
  font-weight:600;
  box-shadow:none;
}
.cm-decision-rating__star{
  color:var(--cm-decision-rating-star-muted);
  font-size:13px;
  line-height:1;
  filter:none;
}
.cm-decision-rating--compact .cm-decision-rating__star{font-size:9px;}
.cm-decision-rating__score{display:inline-flex;align-items:baseline;gap:0;}
.cm-decision-rating__num{
  font-weight:700;
  font-size:14px;
  letter-spacing:-.02em;
  color:var(--cm-decision-rating-num);
}
.cm-decision-rating--compact .cm-decision-rating__num{font-size:11px;}
.cm-decision-rating__scale{
  font-size:10px;
  font-weight:600;
  opacity:.55;
  margin-left:1px;
  color:var(--cm-text-muted);
}
.cm-decision-rating--compact .cm-decision-rating__scale{font-size:8px;opacity:.6;}
.cm-decision-meta-chip{
  font-size:10px;
  font-weight:600;
  letter-spacing:.02em;
  color:var(--cm-text-muted);
}

/* Shared label: hero + sticky summary */
.cm-casino-decision__eyebrow{
  margin:0 0 4px;
  font-size:10px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.1em;
  color:var(--cm-text-muted);
  opacity:.88;
}

/* Sticky summary rating — same system as hero */
.cm-decision-rating--sticky-summary{
  padding:3px 8px 3px 6px;
  gap:2px;
  border-radius:var(--cm-radius-pill);
  box-shadow:none;
}
.cm-decision-rating--sticky-summary .cm-decision-rating__star{font-size:11px;}
.cm-decision-rating--sticky-summary .cm-decision-rating__num{font-size:12px;font-weight:700;}
.cm-decision-rating--sticky-summary .cm-decision-rating__scale{font-size:9px;opacity:.55;}

/* ── Hero panel (conversion: brand + headline stack + CTA column) ── */
.cm-casino-hero{
  display:flex;
  flex-direction:column;
  gap:10px;
  align-items:stretch;
  padding:var(--cm-single-hero-pad-y) var(--cm-single-hero-pad-x);
  background:var(--cm-surface);
  border:1px solid var(--cm-decision-rating-bd);
  border-radius:var(--cm-casino-decision-radius);
  box-shadow:0 1px 0 rgba(255,255,255,.9) inset,0 1px 2px rgba(47,36,29,.04);
  margin-bottom:var(--cm-single-hero-margin-bottom);
}
.cm-casino-hero__top{
  display:flex;
  flex-direction:row;
  align-items:flex-start;
  gap:12px;
  min-width:0;
}
@media (max-width:767px){
  .cm-casino-hero{
    padding:10px 14px 0;
    gap:0;
    margin-bottom:18px;
    border:1px solid var(--cm-decision-rating-bd);
    border-radius:var(--cm-casino-decision-radius);
    background:var(--cm-surface);
    box-shadow:0 1px 0 rgba(255,255,255,.92) inset,0 1px 2px rgba(47,36,29,.035);
    overflow:hidden;
  }
  .cm-casino-hero__top{
    gap:10px;
    align-items:flex-start;
    padding-bottom:4px;
  }
  .cm-casino-hero__logo-wrap{
    width:50px;
    height:50px;
    border-radius:var(--cm-casino-decision-radius-sm);
    border:1px solid var(--cm-decision-rating-bd);
    background:rgba(250,247,242,.55);
    box-shadow:none;
  }
  .cm-casino-hero__logo-wrap .cm-brand-thumb img{padding:5px;}
  .cm-casino-decision__eyebrow{
    margin:0 0 3px;
    font-size:9px;
    font-weight:600;
    letter-spacing:.12em;
    opacity:.85;
  }
  .cm-casino-hero__title{
    font-size:clamp(1.2rem,4.5vw,1.48rem);
    font-weight:800;
    line-height:1.12;
    letter-spacing:-.038em;
    margin:0 0 8px;
    color:var(--cm-text);
  }
  .cm-casino-hero__rating-wrap{margin:0 0 6px;}
  .cm-casino-hero .cm-decision-rating{
    padding:3px 9px 3px 7px;
    gap:2px;
    border-radius:var(--cm-radius-pill);
    box-shadow:none;
  }
  .cm-casino-hero .cm-decision-rating__star{font-size:11px;}
  .cm-casino-hero .cm-decision-rating__num{font-size:12px;}
  .cm-casino-hero .cm-decision-rating__scale{font-size:9px;}
  /* License / markets: editorial meta chips */
  .cm-casino-hero__trust{
    margin-top:4px;
  }
  .cm-casino-hero__market-chips{
    gap:4px 6px;
  }
  .cm-casino-hero .cm-market-chip{
    padding:3px 8px 3px 7px;
    font-size:11px;
    font-weight:600;
    gap:4px;
    border-radius:var(--cm-radius-pill);
    background:rgba(250,247,242,.65);
    border:1px solid var(--cm-decision-rating-bd);
    color:var(--cm-text);
    box-shadow:none;
  }
  .cm-casino-hero .cm-market-chip--license,
  .cm-casino-hero .cm-market-chip--country{
    background:rgba(250,247,242,.65);
    border-color:var(--cm-decision-rating-bd);
  }
  .cm-casino-hero .cm-market-chip--license .cm-market-chip__icon,
  .cm-casino-hero .cm-market-chip--country .cm-market-chip__icon{
    color:var(--cm-text-muted);
    opacity:.88;
  }
  .cm-casino-hero .cm-market-chip:hover{
    transform:none;
    border-color:var(--cm-border-strong);
    background:var(--cm-surface-soft);
    box-shadow:none;
  }
  .cm-casino-hero .cm-market-chip__icon svg{
    width:13px;
    height:13px;
    opacity:.88;
  }
  /* Facts: full-width rows so long withdrawal lines are readable (not squeezed in 2 cols) */
  .cm-casino-hero__facts{
    display:grid;
    grid-template-columns:1fr;
    gap:6px 0;
    margin-top:6px;
    align-items:start;
  }
  .cm-casino-hero__trust + .cm-casino-hero__facts{
    margin-top:6px;
    padding-top:6px;
    border-top:1px solid var(--cm-decision-rating-bd);
  }
  .cm-casino-hero__fact{
    flex-direction:column;
    align-items:flex-start;
    flex-wrap:nowrap;
    gap:0;
    padding:4px 0 2px;
    border-radius:0;
    background:transparent;
    border:none;
    min-width:0;
  }
  .cm-casino-hero__fact dt{
    white-space:normal;
    line-height:1.15;
    font-size:8px;
    font-weight:600;
    letter-spacing:.07em;
    color:var(--cm-text-muted);
    opacity:.82;
    text-transform:uppercase;
  }
  .cm-casino-hero__fact dd{
    font-size:11px;
    font-weight:500;
    margin-top:1px;
    color:var(--cm-text);
    line-height:1.3;
  }
  .cm-casino-hero__ctas{
    display:flex !important;
    flex-direction:column !important;
    flex-wrap:nowrap !important;
    align-items:stretch !important;
    gap:6px;
    margin:8px -14px 0;
    padding:10px 14px 12px;
    border-top:1px solid var(--cm-decision-rating-bd);
    background:var(--cm-surface-soft);
    border-radius:0 0 var(--cm-casino-decision-radius) var(--cm-casino-decision-radius);
    width:auto;
    max-width:none;
    box-sizing:border-box;
  }
  .cm-casino-hero__rating-wrap + .cm-casino-hero__trust{
    margin-top:6px;
  }
  .cm-casino-hero__ctas .cm-btn{
    width:100% !important;
    max-width:100% !important;
    flex:0 0 auto !important;
    justify-content:center;
    border-radius:var(--cm-casino-decision-radius-sm);
    white-space:normal;
  }
  .cm-casino-hero__ctas .cm-casino-hero__cta-primary{
    height:auto;
    min-height:44px;
    padding:10px 14px;
    font-size:14px;
    font-weight:700;
    box-shadow:0 1px 2px rgba(47,36,29,.06);
  }
  .cm-casino-hero__ctas .cm-casino-hero__cta-primary:hover{
    box-shadow:0 2px 6px rgba(47,36,29,.08);
  }
  .cm-casino-hero__ctas .cm-casino-hero__cta-read{
    height:auto;
    min-height:40px;
    padding:8px 12px;
    font-size:13px;
    font-weight:600;
    border:1px solid var(--cm-decision-rating-bd);
    background:var(--cm-surface);
    box-shadow:none;
    color:var(--cm-text);
  }
  .cm-casino-hero__ctas .cm-casino-hero__cta-read:hover{
    background:rgba(255,255,255,.92);
    border-color:rgba(47,36,29,.1);
  }
  .cm-casino-hero__related-skip{
    margin-top:6px;
  }
  .cm-casino-hero__related-skip-link{
    font-size:11px;
  }
  .cm-casino-hero__disclaimer{margin-top:4px;font-size:9px;opacity:.82;line-height:1.35;}
}
@media (min-width:768px){
  .cm-casino-hero{
    flex-direction:row;
    flex-wrap:nowrap;
    align-items:stretch;
    gap:16px 20px;
    padding:16px 18px;
  }
  .cm-casino-hero__top{
    flex:1;
    min-width:0;
    display:grid;
    grid-template-columns:68px minmax(0,1fr);
    gap:0 16px;
    align-items:start;
    padding-bottom:0;
  }
  .cm-casino-hero__ctas{
    flex:0 0 auto;
    width:auto;
    min-width:176px;
    max-width:220px;
    margin:0;
    padding:10px 10px;
    border-top:none;
    gap:6px;
    align-self:center;
    background:var(--cm-surface-soft);
    border:1px solid var(--cm-decision-rating-bd);
    border-radius:var(--cm-casino-decision-radius-sm);
    box-shadow:none;
  }
}
@media (min-width:900px){
  .cm-casino-hero{padding:18px 22px 20px;gap:18px 24px;}
  .cm-casino-hero__ctas{min-width:184px;max-width:228px;padding:11px 12px;}
}

/* Logo / abbrev */
.cm-casino-hero__logo-wrap{
  display:flex;
  align-items:center;
  justify-content:center;
  width:56px;
  height:56px;
  border-radius:var(--cm-casino-decision-radius-sm);
  background:rgba(250,247,242,.55);
  border:1px solid var(--cm-decision-rating-bd);
  box-shadow:none;
  overflow:hidden;
  flex-shrink:0;
}
@media (min-width:768px){
  .cm-casino-hero__logo-wrap{width:68px;height:68px;border-radius:var(--cm-casino-decision-radius-sm);}
}
.cm-casino-hero__logo-wrap .cm-brand-thumb{
  width:100%;height:100%;border:none;border-radius:inherit;
}
.cm-casino-hero__logo-wrap .cm-brand-thumb img{
  padding:8px;object-fit:contain;
}
.cm-casino-hero__logo{
  width:100%;height:100%;object-fit:contain;padding:8px;image-rendering:crisp-edges;
}
.cm-casino-hero__logo-abbr{
  font-size:18px;font-weight:800;color:var(--cm-text-muted);opacity:.65;text-transform:uppercase;line-height:1;
}
@media (min-width:768px){
  .cm-casino-hero__logo-abbr{font-size:22px;}
}

/* Info: headline stack + facts */
.cm-casino-hero__info{
  min-width:0;
  flex:1;
}
.cm-casino-hero__title{
  margin:0 0 6px;
  min-width:0;
  font-size:clamp(1.28rem,2.5vw,1.68rem);
  font-weight:800;
  line-height:1.1;
  letter-spacing:-.035em;
  color:var(--cm-text);
  overflow-wrap:anywhere;
}
.cm-casino-hero__rating-wrap{
  margin:0 0 10px;
}
.cm-casino-hero__rating.cm-decision-rating{
  padding:4px 10px 4px 8px;
}
.cm-casino-hero__rating.cm-decision-rating .cm-decision-rating__star{font-size:12px;}
.cm-casino-hero__rating.cm-decision-rating .cm-decision-rating__num{font-size:14px;}
.cm-casino-hero__rating.cm-decision-rating .cm-decision-rating__scale{font-size:10px;}
.cm-casino-hero__facts{
  display:flex;
  flex-wrap:wrap;
  gap:3px 16px;
  margin:0;
}
.cm-casino-hero__fact{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:4px 8px;
  max-width:100%;
}
@media (min-width:768px){
  /* Long withdrawal copy: allow label + value to wrap instead of one cramped line */
  .cm-casino-hero__fact{
    align-items:flex-start;
    flex-wrap:wrap;
    gap:4px 10px;
  }
  .cm-casino-hero__fact dd{
    flex:1 1 12rem;
    min-width:0;
    line-height:1.4;
  }
}
.cm-casino-hero__fact dt{
  font-size:9px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.07em;
  color:var(--cm-text-muted);
  white-space:nowrap;
  opacity:.85;
}
.cm-casino-hero__fact dd{
  margin:0;
  font-size:11px;
  font-weight:500;
  color:var(--cm-text);
  max-width:100%;
  word-break:break-word;
}

/* CTAs column */
.cm-casino-hero__ctas{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.cm-casino-hero__ctas .cm-btn{
  width:100%;
  justify-content:center;
  text-align:center;
  font-size:14px;
  font-weight:700;
  padding:10px 14px;
  border-radius:var(--cm-casino-decision-radius-sm);
  transition:transform .12s ease, box-shadow .12s ease;
}
.cm-casino-hero__ctas .cm-btn:active{
  transform:translateY(1px);
}
.cm-casino-hero__cta-primary{
  box-shadow:0 1px 2px rgba(47,36,29,.06);
}
.cm-casino-hero__cta-primary:hover{
  box-shadow:0 2px 6px rgba(47,36,29,.08);
}
.cm-casino-hero__cta-read{
  border-width:1px;
  border-color:var(--cm-decision-rating-bd);
  background:var(--cm-surface);
}
.cm-casino-hero__disclaimer{
  margin:2px 0 0;
  font-size:10px;
  color:var(--cm-text-muted);
  text-align:center;
  line-height:1.35;
}
.cm-casino-hero__related-skip{
  margin:10px 0 0;
  text-align:center;
  line-height:1.35;
}
.cm-casino-hero__related-skip-link{
  font-size:12px;
  font-weight:600;
  color:var(--cm-cta);
  text-decoration:none;
  border-bottom:1px solid transparent;
  transition:color .15s ease, border-color .15s ease;
}
.cm-casino-hero__related-skip-link:hover{
  color:var(--cm-cta-hover);
  border-bottom-color:rgba(0,0,0,.12);
}
.cm-casino-hero__related-skip + .cm-casino-hero__disclaimer{
  margin-top:10px;
}
@media (min-width:768px){
  .cm-casino-hero__related-skip{
    text-align:left;
  }
}

.cm-casino-hero__trust{
  margin-top:8px;
}
.cm-casino-hero__market-chips{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:6px 8px;
  list-style:none;
  margin:0;
  padding:0;
}
.cm-casino-hero .cm-market-chip{
  padding:4px 10px 4px 9px;
  font-size:12px;
  font-weight:600;
  gap:5px;
  border-radius:var(--cm-radius-pill);
  background:rgba(250,247,242,.65);
  border:1px solid var(--cm-decision-rating-bd);
  box-shadow:none;
}
.cm-casino-hero .cm-market-chip:hover{
  transform:none;
  box-shadow:none;
  border-color:rgba(47,36,29,.11);
  background:rgba(250,247,242,.9);
}
.cm-casino-hero .cm-market-chip--license,
.cm-casino-hero .cm-market-chip--country{
  border-color:var(--cm-decision-rating-bd);
  background:rgba(250,247,242,.65);
}
.cm-casino-hero .cm-market-chip--license .cm-market-chip__icon,
.cm-casino-hero .cm-market-chip--country .cm-market-chip__icon{
  color:var(--cm-text-muted);
  opacity:.88;
}
.cm-market-chip{
  display:inline-flex;
  align-items:center;
  gap:8px;
  max-width:100%;
  padding:8px 14px;
  border-radius:999px;
  text-decoration:none;
  color:var(--cm-text);
  font-size:13px;
  font-weight:600;
  line-height:1.3;
  background:var(--cm-surface-soft);
  border:1px solid var(--cm-border-soft);
  box-shadow:0 1px 0 rgba(0,0,0,.04);
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.cm-market-chip:hover{
  transform:translateY(-1px);
  box-shadow:0 4px 16px rgba(47,36,29,.085);
  border-color:var(--cm-border-strong);
}
.cm-market-chip:focus-visible{
  outline:2px solid var(--cm-cta);
  outline-offset:2px;
}
.cm-market-chip--license{
  border-color:rgba(45,90,160,.22);
  background:rgba(45,90,160,.07);
}
.cm-market-chip--license:hover{
  border-color:rgba(45,90,160,.38);
}
.cm-market-chip--country{
  border-color:rgba(22,120,90,.2);
  background:rgba(22,120,90,.06);
}
.cm-market-chip--country:hover{
  border-color:rgba(22,120,90,.34);
}
.cm-market-chip--markets .cm-market-chip__text{
  white-space:normal;
}
.cm-market-chip__flags{
  display:inline-flex;
  flex-direction:row;
  flex-wrap:wrap;
  align-items:center;
  gap:3px 5px;
  max-width:11.5rem;
  line-height:1;
}
.cm-market-chip__flag{
  display:inline-block;
  font-size:1.05rem;
  line-height:1;
  letter-spacing:0;
}
@media (max-width:767px){
  .cm-market-chip__flags{
    max-width:9.5rem;
    gap:2px 4px;
  }
  .cm-market-chip__flag{
    font-size:0.95rem;
  }
}
.cm-market-chip__icon{
  display:inline-flex;
  flex-shrink:0;
  line-height:0;
  color:var(--cm-text-muted);
}
.cm-market-chip--license .cm-market-chip__icon{
  color:rgba(45,90,160,.9);
}
.cm-market-chip--country .cm-market-chip__icon{
  color:rgba(22,100,78,.9);
}
.cm-market-chip__icon svg{
  display:block;
  width:16px;
  height:16px;
}
.cm-market-chip__text{
  word-break:break-word;
}
.cm-casino-hero__trust + .cm-casino-hero__facts{
  margin-top:12px;
}
.cm-casino-hero__rating-wrap + .cm-casino-hero__facts{
  margin-top:10px;
}
.cm-casino-hero__rating-wrap + .cm-casino-hero__trust{
  margin-top:10px;
}

/* Single casino: mobile — filter-style pill opens bottom sheet (quick actions) */
.cm-casino-sticky-cta{
  display:none;
}
.cm-filters-bottom--casino-actions button{
  justify-content:space-between;
  gap:10px;
}
.cm-filters-bottom--casino-actions .cm-filters-bottom__casino-name{
  flex:1 1 auto;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  text-align:left;
}
.cm-filters-bottom--casino-actions .cm-filters-bottom__casino-rating{
  display:inline-flex;
  align-items:center;
  flex-shrink:0;
  padding:2px 8px;
  border-radius:999px;
  font-size:11px;
  font-weight:700;
  font-variant-numeric:tabular-nums;
  background:rgba(47,36,29,.06);
  border:1px solid rgba(216,203,189,.65);
  color:var(--cm-text-muted);
}
.cm-casino-actions-sheet .cm-sheet__panel{
  max-height:min(88vh,820px);
}
.cm-casino-actions-sheet .cm-sheet__handle,
.cm-casino-actions-sheet .cm-sheet__top{
  flex-shrink:0;
}
.cm-casino-actions-sheet__body{
  flex:1;
  min-height:0;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  padding:4px 0 max(12px, env(safe-area-inset-bottom));
}
@media (max-width:767px){
  .cm-casino-actions-sheet .cm-casino-sticky-cta__inner{
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    padding:0 2px 4px;
    box-sizing:border-box;
    max-width:100%;
    margin:0;
  }
  .cm-casino-actions-sheet .cm-casino-sticky-cta__summary{
    display:flex;
    flex-direction:row;
    align-items:flex-start;
    gap:10px;
    min-width:0;
    padding-bottom:6px;
  }
  .cm-casino-actions-sheet .cm-casino-sticky-cta__brand{
    flex-shrink:0;
    align-self:flex-start;
    margin-top:1px;
  }
  .cm-casino-actions-sheet .cm-brand-thumb.cm-casino-sticky-cta__thumb{
    width:36px !important;
    height:36px !important;
    min-width:36px !important;
    min-height:36px !important;
    max-width:36px !important;
    max-height:36px !important;
    border-radius:var(--cm-casino-decision-radius-sm);
    border:1px solid var(--cm-decision-rating-bd);
    background:rgba(250,247,242,.55);
    box-shadow:none;
  }
  .cm-casino-actions-sheet .cm-brand-thumb.cm-casino-sticky-cta__thumb img{
    padding:4px;
  }
  .cm-casino-actions-sheet .cm-brand-thumb.cm-casino-sticky-cta__thumb .cm-brand-thumb__initials{
    font-size:10px;
  }
  .cm-casino-actions-sheet .cm-casino-sticky-cta__info{
    flex:1;
    min-width:0;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:0;
  }
  .cm-casino-actions-sheet .cm-casino-sticky-cta__eyebrow.cm-casino-decision__eyebrow{
    margin:0 0 3px;
    font-size:9px;
    font-weight:600;
    letter-spacing:.11em;
    line-height:1.2;
    opacity:.9;
  }
  .cm-casino-actions-sheet .cm-casino-sticky-cta__headline{
    width:100%;
    min-width:0;
    margin:0 0 4px;
  }
  .cm-casino-actions-sheet .cm-casino-sticky-cta__name{
    display:block;
    font-size:clamp(1rem,3.9vw,1.08rem);
    font-weight:800;
    line-height:1.12;
    letter-spacing:-.035em;
    color:var(--cm-text);
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    max-width:100%;
  }
  .cm-casino-actions-sheet .cm-casino-sticky-cta__rating-wrap{
    margin:0 0 5px;
    width:100%;
    min-width:0;
  }
  .cm-casino-actions-sheet .cm-casino-sticky-cta__meta-chips{
    display:flex;
    flex-direction:column;
    flex-wrap:nowrap;
    align-items:stretch;
    gap:5px;
    list-style:none;
    margin:0;
    padding:0;
    width:100%;
    min-width:0;
  }
  .cm-casino-actions-sheet .cm-casino-sticky-cta__meta-chips > li{
    margin:0;
    padding:0;
    max-width:100%;
  }
  .cm-casino-actions-sheet .cm-market-chip.cm-market-chip--sticky{
    display:flex;
    align-items:flex-start;
    justify-content:flex-start;
    width:100%;
    box-sizing:border-box;
    padding:5px 8px 5px 7px;
    font-size:10px;
    font-weight:600;
    line-height:1.35;
    border-radius:var(--cm-radius-pill);
    background:rgba(250,247,242,.65);
    border:1px solid var(--cm-decision-rating-bd);
    color:var(--cm-text);
    box-shadow:none;
    white-space:normal;
    word-break:break-word;
    overflow-wrap:anywhere;
  }
  .cm-casino-actions-sheet .cm-casino-sticky-cta__actions{
    display:flex !important;
    flex-direction:column !important;
    flex-wrap:nowrap !important;
    align-items:stretch !important;
    gap:8px;
    width:100%;
    max-width:100%;
    margin:10px 0 0;
    padding:12px 0 4px;
    border-top:1px solid rgba(47,36,29,.08);
    background:rgba(245,239,232,.35);
    border-radius:var(--cm-casino-decision-radius-sm);
    box-sizing:border-box;
  }
  .cm-casino-actions-sheet .cm-casino-sticky-cta__visit.cm-btn{
    height:auto;
    min-height:42px;
    padding:10px 12px;
    font-size:13px;
    font-weight:700;
    border-radius:var(--cm-casino-decision-radius-sm);
    line-height:1.25;
    border-width:1px;
    width:100% !important;
    max-width:100% !important;
    flex:0 0 auto !important;
    white-space:normal;
  }
  .cm-casino-actions-sheet .cm-casino-sticky-cta__visit{
    flex:0 0 auto;
    min-width:0;
    justify-content:center;
    text-align:center;
    box-shadow:0 1px 2px rgba(47,36,29,.05);
  }
  .cm-casino-actions-sheet .cm-casino-sticky-cta__read.cm-btn{
    flex:0 0 auto !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0;
    height:auto;
    min-height:40px;
    padding:9px 12px;
    font-size:13px;
    font-weight:600;
    white-space:normal;
    border-radius:var(--cm-casino-decision-radius-sm);
  }
  .cm-casino-actions-sheet .cm-casino-sticky-cta__actions .cm-casino-sticky-cta__visit:only-child{
    width:100%;
  }
}
@media print {
  .cm-header, .cm-footer, .cm-burger, .cm-drawer, .cm-sheet,
  .cm-filters-bottom--casino-actions, .cm-casino-sticky-cta, .cm-filters, .cm-filterbar--desktop,
  .cm-pagination, .cm-skip-link, .cm-search,
  .cm-home-hero__cta-group, .cm-card__actions,
  [data-cm-drawer-open] { display: none !important; }

  body.cm-layout { background: #fff; color: #000; font-size: 12pt; }
  .cm-container { max-width: 100%; padding: 0; }
  main.cm-casino-single { padding-bottom: 0 !important; }
  .cm-card { box-shadow: none; border: 1px solid #ccc; break-inside: avoid; }
  a { color: #000; text-decoration: underline; }
  h1, h2, h3 { break-after: avoid; }
  img { max-width: 100% !important; }
}

/* ── Global featured preview (.cm-feat-prev) — singles, archives, related, search ── */
.cm-feat-prev {
  margin: 0;
  padding: 0;
  max-width: 100%;
  box-sizing: border-box;
  position: relative;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.cm-feat-prev__frame {
  position: relative;
  flex: 0 0 auto;
  width: 100%;
  max-width: 100%;
  overflow: hidden;
  line-height: 0;
  border-radius: inherit;
  background: var(--cm-surface-soft);
}
.cm-feat-prev__frame .cm-feat-prev__img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: 100%;
  object-fit: cover;
  object-position: center;
  vertical-align: middle;
}
.cm-feat-prev__scroll {
  position: relative;
  flex: 0 0 auto;
  width: 100%;
  max-width: 100%;
  max-height: 240px;
  overflow-x: hidden;
  overflow-y: auto;
  border-radius: 12px;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-y: contain;
  overscroll-behavior-x: none;
  touch-action: pan-y;
  box-sizing: border-box;
  line-height: 0;
  scrollbar-width: thin;
  scrollbar-color: rgba(47, 36, 29, 0.22) transparent;
}
.cm-feat-prev__scroll::-webkit-scrollbar {
  width: 5px;
}
.cm-feat-prev__scroll::-webkit-scrollbar-track {
  background: transparent;
}
.cm-feat-prev__scroll::-webkit-scrollbar-thumb {
  background: rgba(47, 36, 29, 0.2);
  border-radius: 5px;
}
.cm-feat-prev__scroll:focus-visible {
  outline: 2px solid var(--cm-border-focus);
  outline-offset: 2px;
}
.cm-feat-prev__scroll::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 40px;
  pointer-events: none;
  z-index: 1;
  border-bottom-left-radius: inherit;
  border-bottom-right-radius: inherit;
  background: linear-gradient(to bottom, transparent, var(--cm-surface, #fff));
}
.cm-feat-prev__scroll .cm-feat-prev__img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  vertical-align: middle;
  position: relative;
  z-index: 0;
}
.cm-feat-prev__full-link {
  flex: 0 0 auto;
  display: block;
  margin: 0;
  padding: 6px 10px 8px;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.02em;
  text-align: center;
  text-decoration: none;
  color: var(--cm-text-muted);
  border-top: 1px solid var(--cm-border-subtle);
  background: var(--cm-surface-soft);
}
.cm-feat-prev__full-link:hover {
  color: var(--cm-cta);
}
.cm-feat-prev__full-link:focus-visible {
  outline: 2px solid var(--cm-border-focus);
  outline-offset: -2px;
}
/* Editorial block on singles */
.cm-single-feat.cm-feat-prev.cm-feat-prev--editorial {
  margin: 18px 0 22px;
  border: 1px solid var(--cm-border-subtle);
  border-radius: var(--cm-radius);
  background: var(--cm-surface-soft);
  box-shadow: 0 1px 3px rgba(47, 36, 29, 0.04);
}
.cm-single-feat.cm-feat-prev--editorial:not(.cm-feat-prev--scroll) .cm-feat-prev__frame {
  max-height: min(52vw, 300px);
}
.cm-feat-prev--mini {
  border-radius: 8px;
  border: 1px solid var(--cm-border-subtle);
  background: var(--cm-surface-soft);
  box-shadow: 0 1px 2px rgba(47, 36, 29, 0.04);
  align-self: flex-start;
}
.cm-feat-prev--mini .cm-feat-prev__frame {
  width: 72px;
  max-width: 100%;
  aspect-ratio: 3 / 2;
  max-height: 52px;
}
.cm-feat-prev--mini .cm-feat-prev__frame .cm-feat-prev__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.cm-sidebar-card__mini-feat.cm-feat-prev--mini {
  width: 100%;
  max-width: 100%;
  margin: 0 0 10px;
}
/* Related bonuses: cover crop so promo banners fill the strip without letterboxing. */
.cm-sidebar-card--bonus .cm-sidebar-card__mini-feat.cm-feat-prev--mini .cm-feat-prev__frame .cm-feat-prev__img {
  object-fit: cover;
}
.cm-sidebar-card__mini-feat.cm-feat-prev--mini .cm-feat-prev__frame {
  width: 100%;
  max-height: 120px;
  aspect-ratio: 16 / 9;
}
@media (min-width: 768px) {
  .cm-sidebar-card__mini-feat.cm-feat-prev--mini .cm-feat-prev__frame {
    max-height: 108px;
  }
}

/* Related bonuses (sidebar): vertical scroll only — image fills full width */
.cm-sidebar-card__mini-feat.cm-sidebar-card__mini-feat--scroll.cm-feat-prev--mini .cm-feat-prev__scroll {
  width: 100%;
  max-width: 100%;
  max-height: 120px;
  aspect-ratio: 16 / 9;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  touch-action: pan-y;
  box-sizing: border-box;
  line-height: 0;
  border-radius: inherit;
  scrollbar-width: thin;
  scrollbar-color: rgba(47, 36, 29, 0.22) transparent;
  display: block;
}
.cm-sidebar-card__mini-feat.cm-sidebar-card__mini-feat--scroll.cm-feat-prev--mini .cm-feat-prev__scroll::-webkit-scrollbar {
  width: 5px;
  height: 5px;
}
.cm-sidebar-card__mini-feat.cm-sidebar-card__mini-feat--scroll.cm-feat-prev--mini .cm-feat-prev__scroll::-webkit-scrollbar-thumb {
  background: rgba(47, 36, 29, 0.2);
  border-radius: 5px;
}
.cm-sidebar-card__mini-feat.cm-sidebar-card__mini-feat--scroll.cm-feat-prev--mini .cm-feat-prev__scroll::after {
  content: '';
  display: block;
  position: sticky;
  bottom: 0;
  height: 24px;
  margin-top: -24px;
  pointer-events: none;
  background: linear-gradient(to bottom, transparent 0%, var(--cm-surface-soft) 100%);
}
.cm-sidebar-card__mini-feat.cm-sidebar-card__mini-feat--scroll.cm-feat-prev--mini .cm-feat-prev__img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  vertical-align: top;
}
@media (min-width: 768px) {
  .cm-sidebar-card__mini-feat.cm-sidebar-card__mini-feat--scroll.cm-feat-prev--mini .cm-feat-prev__scroll {
    max-height: 108px;
  }
}
@media (min-width: 768px) {
  .cm-single-feat.cm-feat-prev--editorial {
    margin: 20px 0 26px;
    box-shadow: 0 2px 12px rgba(47, 36, 29, 0.055);
  }
  .cm-single-feat.cm-feat-prev--editorial:not(.cm-feat-prev--scroll) .cm-feat-prev__frame {
    max-height: 280px;
  }
  .cm-single-feat.cm-feat-prev--editorial.cm-feat-prev--scroll .cm-feat-prev__scroll,
  .cm-feat-prev.cm-feat-prev--editorial.cm-feat-prev--scroll .cm-feat-prev__scroll {
    height: 288px;
    max-height: 288px;
    border-radius: inherit;
  }
  .cm-feat-prev.cm-feat-prev--editorial.cm-feat-prev--scroll .cm-feat-prev__scroll::after {
    height: 22%;
    background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, rgba(250, 247, 242, 0.06) 60%, rgba(250, 247, 242, 0.16) 100%);
  }
}
@media (max-width: 767px) {
  .cm-single-feat.cm-feat-prev.cm-feat-prev--editorial {
    margin: 12px 0 18px;
    border-radius: 12px;
  }
  .cm-single-feat.cm-feat-prev--editorial.cm-feat-prev--scroll .cm-feat-prev__scroll {
    height: clamp(160px, 48vw, 200px);
    max-height: clamp(160px, 48vw, 200px);
    border-radius: inherit;
    scrollbar-width: none;
    -ms-overflow-style: none;
  }
  .cm-single-feat.cm-feat-prev--editorial.cm-feat-prev--scroll .cm-feat-prev__scroll::-webkit-scrollbar {
    display: none;
    width: 0;
    height: 0;
  }
  .cm-single-feat.cm-feat-prev--editorial.cm-feat-prev--scroll .cm-feat-prev__scroll::after {
    height: 30%;
    background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, rgba(250, 247, 242, 0.08) 62%, rgba(250, 247, 242, 0.22) 100%);
  }
}

/*
 * Single casino review — featured preview (scroll inside strip + full-size link).
 * Mobile: compact height. Desktop: full content width + taller viewport (reads as a real preview).
 */
.cm-casino-featured-teaser.cm-single-feat.cm-feat-prev {
  margin: 14px 0 18px;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid var(--cm-border-subtle);
  background: linear-gradient(165deg, var(--cm-surface-soft) 0%, rgba(250, 247, 242, 0.92) 100%);
  box-shadow:
    0 1px 2px rgba(47, 36, 29, 0.05),
    0 6px 18px rgba(47, 36, 29, 0.055),
    inset 0 1px 0 rgba(255, 255, 255, 0.55);
  /* Thin inset so screenshots stay large — thick padding reads as “borders” around the preview */
  padding: 2px;
}
.cm-casino-featured-teaser.cm-feat-prev.cm-feat-prev--scroll .cm-feat-prev__scroll {
  position: relative;
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-y: contain;
  overscroll-behavior-x: none;
  touch-action: pan-y;
  box-sizing: border-box;
  line-height: 0;
  /* Gentler radius = less clipping of game/site chrome in the corners */
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.35);
  scrollbar-width: thin;
  scrollbar-color: rgba(47, 36, 29, 0.22) transparent;
}
@media (max-width: 767px) {
  /* Slightly taller strip on phones so more of the screenshot reads at a glance (still compact). */
  .cm-casino-featured-teaser.cm-feat-prev.cm-feat-prev--scroll .cm-feat-prev__scroll {
    height: min(var(--cm-arch-preview-h, 200px), 54vw);
    max-height: min(var(--cm-arch-preview-h, 200px), 54vw);
  }
}
.cm-casino-featured-teaser.cm-feat-prev.cm-feat-prev--scroll .cm-feat-prev__scroll::-webkit-scrollbar {
  width: 5px;
}
.cm-casino-featured-teaser.cm-feat-prev.cm-feat-prev--scroll .cm-feat-prev__scroll::-webkit-scrollbar-track {
  background: transparent;
}
.cm-casino-featured-teaser.cm-feat-prev.cm-feat-prev--scroll .cm-feat-prev__scroll::-webkit-scrollbar-thumb {
  background: rgba(47, 36, 29, 0.2);
  border-radius: 5px;
}
.cm-casino-featured-teaser.cm-feat-prev.cm-feat-prev--scroll .cm-feat-prev__scroll:focus-visible {
  outline: 2px solid var(--cm-border-focus);
  outline-offset: 2px;
}
.cm-casino-featured-teaser.cm-feat-prev.cm-feat-prev--scroll .cm-feat-prev__scroll::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 26%;
  pointer-events: none;
  z-index: 1;
  border-bottom-left-radius: inherit;
  border-bottom-right-radius: inherit;
  background: linear-gradient(
    to bottom,
    rgba(255, 255, 255, 0) 0%,
    rgba(250, 247, 242, 0.1) 65%,
    rgba(250, 247, 242, 0.22) 100%
  );
}
.cm-casino-featured-teaser.cm-feat-prev .cm-feat-prev__img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  vertical-align: middle;
}
.cm-casino-featured-teaser.cm-feat-prev .cm-feat-prev__full-link {
  padding: 5px 10px 7px;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--cm-text-muted);
  border-top-color: rgba(47, 36, 29, 0.08);
  background: transparent;
}
.cm-casino-featured-teaser.cm-feat-prev .cm-feat-prev__full-link:hover {
  color: var(--cm-cta);
}
@media (min-width: 768px) {
  .cm-casino-featured-teaser.cm-single-feat.cm-feat-prev {
    margin: 18px 0 26px;
    max-width: 100%;
    padding: 3px 4px 4px;
    border-radius: var(--cm-radius);
    box-shadow:
      0 1px 0 rgba(255, 255, 255, 0.65) inset,
      0 2px 14px rgba(47, 36, 29, 0.06),
      0 8px 28px rgba(47, 36, 29, 0.05);
  }
  .cm-casino-featured-teaser.cm-feat-prev.cm-feat-prev--scroll .cm-feat-prev__scroll {
    height: clamp(268px, 36vw, 440px);
    max-height: clamp(268px, 36vw, 440px);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.5);
  }
  .cm-casino-featured-teaser.cm-feat-prev.cm-feat-prev--scroll .cm-feat-prev__scroll::after {
    height: 20%;
    background: linear-gradient(
      to bottom,
      rgba(255, 255, 255, 0) 0%,
      rgba(250, 247, 242, 0.12) 55%,
      rgba(250, 247, 242, 0.28) 100%
    );
  }
  .cm-casino-featured-teaser.cm-feat-prev .cm-feat-prev__full-link {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 11px 16px 12px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.05em;
    border-top-color: rgba(47, 36, 29, 0.1);
    background: rgba(255, 255, 255, 0.45);
  }
  .cm-casino-featured-teaser.cm-feat-prev .cm-feat-prev__full-link:hover {
    background: rgba(255, 255, 255, 0.72);
  }
}

/*
 * Single slot — featured game screenshot (was: only generic .cm-feat-prev__scroll max-height 240px + no card).
 * Align with casino teaser: taller viewport, minimal padding, softer corners so UI/title are not clipped.
 */
.cm-slot-featured-teaser.cm-single-feat.cm-feat-prev {
  margin: 14px 0 18px;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid var(--cm-border-subtle);
  background: linear-gradient(165deg, var(--cm-surface-soft) 0%, rgba(250, 247, 242, 0.92) 100%);
  box-shadow:
    0 1px 2px rgba(47, 36, 29, 0.05),
    0 6px 18px rgba(47, 36, 29, 0.055),
    inset 0 1px 0 rgba(255, 255, 255, 0.55);
  padding: 2px;
}
.cm-slot-featured-teaser.cm-feat-prev.cm-feat-prev--scroll .cm-feat-prev__scroll {
  max-height: none;
  height: min(var(--cm-arch-preview-h, 200px), 54vw);
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.35);
}
.cm-slot-featured-teaser.cm-feat-prev.cm-feat-prev--scroll .cm-feat-prev__scroll::after {
  height: 22%;
  background: linear-gradient(
    to bottom,
    rgba(255, 255, 255, 0) 0%,
    rgba(250, 247, 242, 0.1) 65%,
    rgba(250, 247, 242, 0.22) 100%
  );
}
.cm-slot-featured-teaser.cm-feat-prev .cm-feat-prev__img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  vertical-align: middle;
}
@media (min-width: 768px) {
  .cm-slot-featured-teaser.cm-single-feat.cm-feat-prev {
    margin: 18px 0 26px;
    padding: 3px 4px 4px;
    border-radius: var(--cm-radius);
    box-shadow:
      0 1px 0 rgba(255, 255, 255, 0.65) inset,
      0 2px 14px rgba(47, 36, 29, 0.06),
      0 8px 28px rgba(47, 36, 29, 0.05);
  }
  .cm-slot-featured-teaser.cm-feat-prev.cm-feat-prev--scroll .cm-feat-prev__scroll {
    height: clamp(268px, 36vw, 440px);
    max-height: clamp(268px, 36vw, 440px);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.5);
  }
  .cm-slot-featured-teaser.cm-feat-prev.cm-feat-prev--scroll .cm-feat-prev__scroll::after {
    height: 20%;
    background: linear-gradient(
      to bottom,
      rgba(255, 255, 255, 0) 0%,
      rgba(250, 247, 242, 0.12) 55%,
      rgba(250, 247, 242, 0.28) 100%
    );
  }
}

/* Editorial lede + compact key points */
.cm-casino-lede{
  margin:0 0 24px;
  padding:18px 20px;
  background:var(--cm-surface-soft);
  border:1px solid var(--cm-border-soft);
  border-radius:var(--cm-radius);
  box-shadow:0 1px 0 rgba(0,0,0,.03);
}
@media (max-width:767px){
  .cm-casino-lede{
    margin-bottom:22px;
    padding:14px 14px 14px 16px;
    border:none;
    border-left:3px solid var(--cm-cta);
    border-radius:0 12px 12px 0;
    background:rgba(0,0,0,.02);
    box-shadow:none;
  }
}
.cm-casino-lede__intro{
  margin:0;
  font-size:15px;
  line-height:1.65;
  color:var(--cm-text);
}
.cm-casino-lede__intro p{
  margin:0 0 12px;
}
.cm-casino-lede__intro p:last-child{
  margin-bottom:0;
}
.cm-casino-lede__keypoints-heading{
  margin:16px 0 0;
  font-size:11px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.07em;
  color:var(--cm-text-muted);
}
.cm-casino-lede > .cm-casino-lede__keypoints-heading:first-child{
  margin-top:0;
}
.cm-casino-keypoints{
  margin:10px 0 0;
  padding:0;
  list-style:none;
  display:flex;
  flex-direction:column;
  gap:9px;
}
@media (min-width:768px){
  .cm-casino-keypoints{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px 20px;
  }
}
.cm-casino-keypoints li{
  position:relative;
  margin:0;
  padding:0 0 0 26px;
  font-size:14px;
  line-height:1.5;
  color:var(--cm-text);
}
.cm-casino-keypoints li::before{
  content:"\2713";
  position:absolute;
  left:0;
  top:0;
  width:20px;
  text-align:center;
  font-size:12px;
  font-weight:800;
  color:#3d6b3d;
  line-height:1.5;
}

/* ── Body: review content + pros/cons + FAQ ── */
.cm-casino-body{
  display:flex;
  flex-direction:column;
  gap:var(--cm-single-body-gap);
  margin-bottom:var(--cm-single-body-margin-bottom);
}
.cm-casino-body__article{
  display:flex;
  flex-direction:column;
  gap:0;
  min-width:0;
}
.cm-casino-single .cm-casino-body#cm-casino-review{
  scroll-margin-top:max(5.5rem, 88px);
}
/* Mobile: scroll-first flow — pros before longform, Visit strip after FAQ */
@media (max-width:767px){
  .cm-casino-body{
    gap:26px;
    margin-bottom:32px;
  }
  .cm-casino-body > *{
    order:100;
  }
  .cm-casino-body > .cm-casino-mid-cta--lead{
    order:10;
  }
  .cm-casino-body > .cm-casino-body__pros-cons{
    order:20;
  }
  .cm-casino-body > .cm-casino-body__article{
    order:30;
  }
  .cm-casino-body > .cm-single-faq{
    order:40;
  }
  .cm-casino-body > .cm-casino-mid-cta--after-article{
    order:50;
    margin-top:0;
  }
}
.cm-casino-body__content{margin:0;line-height:1.7;}
/* Reading column: one centered block for heading + longform + mid CTA (avoids narrow left-aligned column vs full-width hero) */
.cm-casino-single .cm-casino-body__article{
  width:100%;
  max-width:min(76ch,100%);
  margin-left:auto;
  margin-right:auto;
}
.cm-casino-single .cm-casino-body__content{
  overflow-wrap:anywhere;
  word-break:break-word;
  max-width:none;
}
.cm-casino-single .cm-casino-body__content.cm-single__content > *:first-child{
  margin-top:0;
}
.cm-casino-single .cm-casino-body__content.cm-single__content p{
  margin-bottom:20px;
}
.cm-casino-single .cm-casino-body__content.cm-single__content p:last-child{
  margin-bottom:0;
}
@media (max-width:767px){
  .cm-casino-single .cm-casino-body__content.cm-single__content{
    line-height:1.72;
  }
}
.cm-casino-single .cm-casino-body__review-heading{
  margin:0 0 14px;
  font-size:1.25rem;
  font-weight:800;
  letter-spacing:-.02em;
  line-height:1.25;
  color:var(--cm-text);
}
.cm-casino-single .cm-casino-body__review-heading + .cm-casino-body__content.cm-single__content{
  margin-top:0;
}
@media (max-width:767px){
  .cm-casino-single .cm-casino-body__review-heading{
    font-size:1.125rem;
    margin-bottom:12px;
  }
}

/* Inline conversion strip after main article (no modal) */
.cm-casino-mid-cta{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:12px 18px;
  margin-top:28px;
  padding:14px 18px;
  box-sizing:border-box;
  border:1px solid var(--cm-border-soft);
  border-radius:var(--cm-radius);
  background:var(--cm-surface);
  box-shadow:0 1px 2px rgba(0,0,0,.04);
}
/* Match Visit strip width to the centered review column (strip is a sibling of .cm-casino-body__article in the DOM). */
.cm-casino-single .cm-casino-body > .cm-casino-mid-cta{
  max-width:min(76ch,100%);
  width:100%;
  margin-left:auto;
  margin-right:auto;
}
.cm-casino-mid-cta--lead{
  margin-top:0;
  margin-bottom:6px;
}
.cm-casino-mid-cta__label{
  margin:0;
  font-size:14px;
  font-weight:600;
  line-height:1.4;
  color:var(--cm-text);
  flex:1 1 11rem;
  min-width:0;
}
.cm-casino-mid-cta__btn{
  flex:0 0 auto;
  padding:10px 20px;
  font-size:14px;
  font-weight:700;
  white-space:nowrap;
  text-decoration:none;
}
@media (max-width:767px){
  .cm-casino-mid-cta{
    flex-direction:column;
    align-items:stretch;
    justify-content:flex-start;
    gap:10px;
    padding:16px;
    margin-top:22px;
  }
  /* Row layout uses 11rem as width basis; in column that becomes height and blows up the strip */
  .cm-casino-mid-cta__label{
    flex:0 1 auto;
  }
  .cm-casino-mid-cta--lead,
  .cm-casino-mid-cta--after-article{
    margin-top:0;
  }
  .cm-casino-mid-cta__btn{
    width:100%;
    justify-content:center;
    text-align:center;
    min-height:48px;
  }
  .cm-casino-single .cm-single-faq{
    margin-top:0;
  }
}
/* Sticky bar already provides Visit on small viewports — hide duplicate in-flow strip */
@media (max-width:767px){
  .cm-casino-mid-cta.cm-casino-mid-cta--after-article{
    display:none !important;
  }
}

/* Pros / cons side-by-side */
.cm-casino-body__pros-cons{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}
@media (max-width:767px){
  .cm-casino-body__pros-cons{grid-template-columns:1fr;gap:16px;}
}
.cm-procon{
  padding:16px 18px;
  border-radius:var(--cm-radius);
  border:1px solid var(--cm-border-soft);
}
@media (max-width:767px){
  .cm-casino-single .cm-procon{
    padding:15px 14px;
    box-shadow:none;
    border-color:var(--cm-border-subtle);
  }
  .cm-casino-single .cm-procon.cm-procon--pros{
    background:rgba(76,175,80,.05);
    border-color:rgba(76,175,80,.14);
  }
  .cm-casino-single .cm-procon.cm-procon--cons{
    background:rgba(198,70,70,.05);
    border-color:rgba(198,70,70,.14);
  }
}
.cm-procon--pros{background:var(--cm-procon-pros-bg);border-color:var(--cm-procon-pros-bd);}
.cm-procon--pros .cm-procon__title{color:var(--cm-procon-pros-text);}
.cm-procon--cons{background:var(--cm-procon-cons-bg);border-color:var(--cm-procon-cons-bd);}
.cm-procon--cons .cm-procon__title{color:var(--cm-procon-cons-text);}
.cm-procon__title{
  margin:0 0 12px;
  font-size:14px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.cm-procon__list{
  margin:0;
  padding:0 0 0 18px;
  line-height:1.65;
  font-size:14px;
  color:var(--cm-text);
}
.cm-procon__list li{margin-bottom:6px;}
.cm-procon__list li:last-child{margin-bottom:0;}

/* Single casino — desktop: balanced column, pros before longform in DOM, calmer stack */
@media (min-width:768px){
  main.cm-casino-single.cm-container{
    max-width:min(1180px,100%);
    padding-left:max(20px,env(safe-area-inset-left,0px));
    padding-right:max(20px,env(safe-area-inset-right,0px));
  }
  .cm-casino-single{
    --cm-single-body-gap:26px;
    --cm-single-body-margin-bottom:36px;
  }
  .cm-casino-lede{
    margin-bottom:28px;
    padding:20px 22px;
  }
  .cm-casino-body__pros-cons{
    gap:18px;
  }
  .cm-casino-single .cm-casino-body__article{
    max-width:min(78ch,100%);
  }
  .cm-casino-single .cm-casino-body > .cm-casino-mid-cta{
    max-width:min(78ch,100%);
    margin-top:22px;
  }
  .cm-casino-single .cm-casino-body__review-heading{
    margin-bottom:16px;
  }
  .cm-casino-single .cm-single-faq{
    margin-top:28px;
    padding-top:22px;
  }
  .cm-casino-single .cm-casino-related{
    margin-top:36px;
    padding-top:32px;
  }
  .cm-casino-single .cm-explore{
    margin-top:28px;
  }
}

/* ── Related resources (calm spacing after FAQ) ── */
.cm-casino-related,
.cm-bonus-related,
.cm-payment-related,
.cm-slot-related,
.cm-guide-related{
  margin-top:var(--cm-space-lg, 24px);
  padding-top:var(--cm-space-lg, 24px);
  border-top:1px solid var(--cm-border-subtle);
}
.cm-casino-related__title{
  margin:0 0 12px;
  font-size:1.05rem;
  font-weight:800;
  color:var(--cm-text);
  letter-spacing:-.01em;
}
.cm-casino-single #cm-related-heading{
  scroll-margin-top:max(5.5rem, 88px);
}
@media (max-width:767px){
  .cm-casino-single .cm-casino-related{
    margin-top:28px;
    padding-top:28px;
  }
  .cm-casino-single .cm-explore{
    margin-top:22px;
  }
}
.cm-casino-related__lede{
  margin:0 0 14px;
  font-size:12px;
  line-height:1.45;
  color:var(--cm-text-muted);
  max-width:52ch;
}

/* Casino single: lightweight internal link columns (bonuses / payments / guides) */
.cm-casino-internal-links {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--cm-space-md, 16px);
}
@media (min-width: 768px) {
  .cm-casino-internal-links {
    grid-template-columns: repeat(3, 1fr);
    gap: var(--cm-space-lg, 20px);
  }
}
.cm-casino-internal-links__nav {
  min-width: 0;
  padding: 14px 16px;
  background: var(--cm-surface-soft);
  border: 1px solid var(--cm-border-subtle);
  border-radius: var(--cm-radius-sm, 8px);
  box-sizing: border-box;
}
.cm-casino-internal-links__nav-title {
  margin: 0 0 12px;
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--cm-text-muted);
  line-height: 1.3;
}
.cm-casino-internal-links__note {
  margin: -6px 0 10px;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.45;
  letter-spacing: 0.01em;
  color: var(--cm-text-muted);
}
.cm-casino-internal-links__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.cm-casino-internal-links__list li {
  margin: 0;
}
.cm-casino-internal-links__list a {
  display: block;
  padding: 10px 10px;
  margin: 0 -4px;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.35;
  text-decoration: none;
  color: var(--cm-color-text);
  transition: background 0.18s ease, color 0.18s ease;
  overflow-wrap: anywhere;
}
.cm-casino-internal-links__list a:hover {
  background: var(--cm-soft);
  color: var(--cm-cta);
}
.cm-casino-internal-links__list a:active {
  background: var(--cm-soft-hover);
}
.cm-casino-internal-links__archive {
  margin: 12px 0 0;
  padding-top: 12px;
  border-top: 1px solid var(--cm-border-subtle);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.3;
}
.cm-casino-internal-links__archive a {
  color: var(--cm-cta);
  text-decoration: none;
  transition: opacity 0.15s ease;
}
.cm-casino-internal-links__archive a:hover {
  text-decoration: underline;
  opacity: 0.92;
}

.cm-casino-related__grid{
  display:grid;
  grid-template-columns:1fr;
  gap:var(--cm-related-grid-gap);
}
.cm-casino-related__grid--blocks-1{grid-template-columns:1fr;}
.cm-casino-related__grid--blocks-2{grid-template-columns:1fr;}
@media (min-width:768px){
  .cm-casino-related__grid--blocks-2{grid-template-columns:repeat(2,1fr);}
}
.cm-casino-related__grid--blocks-3{grid-template-columns:1fr;}
@media (min-width:768px){
  .cm-casino-related__grid--blocks-3{grid-template-columns:repeat(2,1fr);}
}
@media (min-width:900px){
  .cm-casino-related__grid--blocks-3{grid-template-columns:repeat(3,1fr);}
}
.cm-casino-related__grid .cm-sidebar__section{display:flex;flex-direction:column;gap:0;}
.cm-casino-related__grid .cm-sidebar__title{
  margin:0 0 10px;
  font-size:12px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:var(--cm-text-muted);
}
.cm-casino-related__grid .cm-sidebar__list{gap:6px;}
.cm-casino-related__grid .cm-sidebar-card{
  padding:12px 14px;
  border-radius:10px;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.cm-casino-related__grid .cm-sidebar-card__title{
  font-size:13px;
  margin-bottom:2px;
  min-width:0;
  overflow-wrap:anywhere;
}
.cm-casino-related__grid .cm-sidebar-card__title a{
  overflow-wrap:inherit;
}
.cm-casino-related__grid .cm-sidebar-card__excerpt{
  font-size:12px;
  min-width:0;
  overflow-wrap:anywhere;
}
.cm-casino-related__grid .cm-sidebar-card__cta{
  margin-top:4px;
  align-self:flex-start;
  font-size:12px;
  padding:6px 12px;
}

/* ── Explore more: inline link lists ── */
.cm-casino-single .cm-explore{
  margin:20px 0 0;
  padding:18px 20px;
  background:var(--cm-surface-soft);
  border:1px solid var(--cm-border-soft);
  border-radius:var(--cm-radius);
  min-width:0;
}
.cm-casino-single .cm-explore__title{
  margin:0 0 12px;
  font-size:1.0625rem;
  font-weight:700;
  line-height:1.25;
  color:var(--cm-text);
}
/* Mobile-first: one column; two only from tablet width (was 2-col by default → cramped on phones). */
.cm-explore__cols{display:grid;grid-template-columns:1fr;gap:14px;}
@media (min-width:768px){
  .cm-explore__cols{grid-template-columns:1fr 1fr;gap:18px 24px;}
}
@media (max-width:767px){
  .cm-casino-single .cm-explore{padding:18px 20px;}
}
.cm-explore__block h3{margin:0 0 6px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--cm-text-muted);}
.cm-explore__list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:2px;}
.cm-explore__item{display:flex;align-items:center;gap:8px;min-width:0;}
.cm-explore__item .cm-brand-thumb{flex-shrink:0;}
.cm-explore__item a{
  flex:1 1 auto;
  min-width:0;
  font-size:13px;
  color:var(--cm-text);
  text-decoration:none;
  font-weight:500;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.cm-casino-single .cm-explore .cm-explore__item a{
  display:block;
  flex:1 1 auto;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:13px;
  line-height:1.35;
  font-weight:500;
}
.cm-explore__item a:hover{text-decoration:underline;color:var(--cm-link-hover);}

/* Legacy .cm-review-* kept for other single templates that may reuse them */
.cm-review-layout{display:block;}
@media (min-width:901px){
  .cm-review-layout{display:grid;grid-template-columns:360px 1fr;gap:32px;align-items:start;}
}
.cm-review-aside{display:flex;flex-direction:column;gap:24px;}
@media (min-width:901px){
  .cm-review-aside{position:sticky;top:100px;align-self:start;}
}
.cm-review-media{display:flex;align-items:center;justify-content:center;padding:24px;background:var(--cm-surface-soft);border:1px solid var(--cm-border-soft);border-radius:var(--cm-radius,12px);box-shadow:var(--cm-shadow-card,0 2px 8px rgba(0,0,0,.04));}
.cm-review-logo{max-width:100%;height:auto;max-height:120px;object-fit:contain;image-rendering:crisp-edges;}
.cm-review-logo--placeholder{display:flex;align-items:center;justify-content:center;width:100%;height:100px;font-size:32px;font-weight:700;color:rgba(0,0,0,.25);text-transform:uppercase;}
.cm-review-ctas{display:flex;flex-direction:column;gap:10px;}
.cm-review-ctas .cm-btn{width:100%;justify-content:center;font-size:15px;font-weight:600;padding:13px 20px;}
.cm-review-note{margin:0;padding:10px 14px;border:1px solid var(--cm-border-soft);border-radius:10px;background:var(--cm-surface);font-size:12px;line-height:1.5;color:var(--cm-text-muted);}
.cm-review-meta{display:flex;flex-direction:column;gap:14px;padding:18px;background:var(--cm-surface-soft);border:1px solid var(--cm-border-soft);border-radius:var(--cm-radius,12px);}
.cm-review-meta__item{display:flex;flex-direction:column;gap:4px;}
.cm-review-meta__label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;opacity:.6;color:var(--cm-text);}
.cm-review-meta__value{font-size:14px;font-weight:600;color:var(--cm-text);line-height:1.4;}
.cm-review-content{min-width:0;}
.cm-review-sidebar{margin-top:40px;padding-top:32px;border-top:1px solid var(--cm-border-soft);display:flex;flex-direction:column;gap:32px;}
.cm-review-sidebar__title{margin:0 0 2px;font-size:18px;font-weight:700;line-height:1.3;color:var(--cm-text);}
@media (min-width:901px){
  .cm-review-sidebar{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
  .cm-review-sidebar__title{grid-column:1/-1;}
}
@media (max-width:900px){
  .cm-review-aside{margin-bottom:28px;padding-bottom:20px;border-bottom:1px solid var(--cm-border-soft);position:relative;top:auto;}
  .cm-review-sidebar{display:flex;flex-direction:column;margin-top:28px;padding-top:20px;gap:24px;}
}

/* ─── Shared single hero (bonus, payment): casino-aligned ───────────────────────────────────── */
.cm-single-hero{
  display:grid;
  grid-template-columns:1fr;
  grid-template-rows:auto auto;
  gap:0 16px;
  align-items:start;
  padding:var(--cm-single-hero-pad-y) var(--cm-single-hero-pad-x);
  background:var(--cm-surface);
  border:1px solid var(--cm-border-soft);
  border-radius:var(--cm-radius);
  box-shadow:var(--cm-shadow-card);
  margin-bottom:var(--cm-single-hero-margin-bottom);
}
@media (min-width:560px){
  .cm-single-hero{
    grid-template-columns:1fr auto;
    grid-template-rows:auto;
    align-items:center;
    padding:20px 22px;
  }
}
.cm-single-hero__info{min-width:0;}
.cm-single-hero__title{
  margin:0 0 8px;
  font-size:clamp(1.15rem,2.6vw,1.45rem);
  font-weight:800;
  line-height:1.2;
  letter-spacing:-.02em;
  color:var(--cm-text);
}
.cm-single-hero__meta{display:flex;flex-wrap:wrap;gap:5px 8px;margin:0;}
.cm-single-hero__meta .cm-chip{
  font-size:10px;
  font-weight:600;
  letter-spacing:.04em;
  padding:2px 8px;
  border-radius:999px;
  border:1px solid var(--cm-meta-chip-border);
  background:var(--cm-meta-chip-bg);
  color:var(--cm-meta-chip-text);
}
.cm-single-hero__meta .cm-chip--link{text-decoration:none;color:inherit;}
.cm-single-hero__meta .cm-chip--link:hover{text-decoration:underline;color:var(--cm-cta);}
.cm-single-hero__ctas{
  display:flex;
  flex-direction:column;
  gap:8px;
  margin-top:12px;
}
@media (min-width:560px){
  .cm-single-hero__ctas{margin-top:0;min-width:140px;max-width:180px;}
}
.cm-single-hero__ctas .cm-btn{width:100%;justify-content:center;font-size:14px;font-weight:700;padding:10px 16px;}
.cm-single-hero__disclaimer{margin:0;font-size:10px;color:var(--cm-text-muted);line-height:1.4;}

/* Slot hero — provider brand recognition, aligned with payment hero */
.cm-slot-hero{
  display:grid;
  grid-template-columns:1fr;
  grid-template-rows:auto auto;
  gap:12px 14px;
  align-items:start;
  padding:var(--cm-single-hero-pad-y) var(--cm-single-hero-pad-x);
  background:var(--cm-surface);
  border:1px solid var(--cm-border-soft);
  border-radius:var(--cm-radius);
  box-shadow:var(--cm-shadow-card);
  margin-bottom:var(--cm-single-hero-margin-bottom);
}
.cm-slot-hero--with-art{
  grid-template-columns:56px 1fr;
}
.cm-slot-hero__thumb{
  grid-column:1;
  grid-row:1/-1;
}
.cm-slot-hero__thumb .cm-brand-thumb{
  width:56px;
  height:56px;
  border-radius:var(--cm-radius-sm,8px);
  border:1px solid var(--cm-border-subtle);
  background:var(--cm-surface-soft);
}
.cm-slot-hero__thumb .cm-brand-thumb--slot-art img{
  width:100%;
  height:100%;
  object-fit:contain;
  padding:3px !important;
}
.cm-slot-hero__info{grid-column:2;grid-row:1;min-width:0;}
.cm-slot-hero--with-art .cm-slot-hero__info{grid-column:2;}
.cm-slot-hero:not(.cm-slot-hero--with-art) .cm-slot-hero__info{grid-column:1;}
.cm-slot-hero__title{
  margin:0 0 4px;
  font-size:clamp(1.15rem,2.6vw,1.45rem);
  font-weight:800;
  line-height:1.2;
  letter-spacing:-.02em;
  color:var(--cm-text);
}
.cm-slot-hero__provider{
  margin:0 0 6px;
  font-size:12px;
  font-weight:600;
  color:var(--cm-text-muted);
  line-height:1.3;
}
.cm-slot-hero__provider-link{
  text-decoration:none;
  color:inherit;
}
.cm-slot-hero__provider-link:hover{
  color:var(--cm-cta);
  text-decoration:underline;
}
.cm-slot-hero__meta{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:4px 8px;
  margin:0;
}
.cm-slot-hero__chip{
  display:inline-flex;
  align-items:center;
  gap:4px;
  font-size:11px;
  font-weight:600;
  padding:3px 8px;
  border-radius:6px;
  background:var(--cm-surface-soft);
  border:1px solid var(--cm-border-subtle);
  color:var(--cm-text-muted);
}
.cm-slot-hero__chip--provider .cm-brand-thumb{flex-shrink:0;}
.cm-slot-hero__chip-label{text-decoration:none;color:inherit;}
.cm-slot-hero__chip a.cm-slot-hero__chip-label:hover{text-decoration:underline;color:var(--cm-cta);}
.cm-slot-hero__ctas{
  grid-column:1/-1;
  grid-row:2;
}
.cm-slot-hero__ctas .cm-btn{width:100%;justify-content:center;}
@media (max-width:767px){
  .cm-slot-hero{
    gap:10px 12px;
    padding:14px 14px 16px;
  }
  .cm-slot-hero__title{
    margin:0 0 3px;
  }
  .cm-slot-hero__provider{
    margin:0 0 4px;
  }
  .cm-slot-hero__meta{
    gap:6px 8px;
    margin-top:2px;
  }
  .cm-slot-hero__chip{
    padding:6px 10px;
    border-radius:999px;
    font-size:13px;
    font-weight:600;
    background:#f4efe9;
    border:1px solid rgba(0,0,0,.08);
    color:var(--cm-text);
  }
  .cm-slot-hero__ctas{
    margin-top:4px;
    padding-top:10px;
    border-top:1px solid var(--cm-border-subtle);
  }
  .cm-slot-hero__ctas .cm-btn.cm-btn--primary{
    height:auto;
    min-height:54px;
    padding:14px 18px;
    font-size:15px;
    font-weight:700;
    border-radius:14px;
    box-shadow:0 8px 26px rgba(47,36,29,.22),0 2px 8px rgba(242,168,70,.25),0 1px 0 rgba(255,255,255,.2) inset;
  }
  .cm-slot-hero__ctas .cm-btn.cm-btn--primary:hover{
    box-shadow:0 10px 30px rgba(47,36,29,.26),0 2px 10px rgba(242,168,70,.28),0 1px 0 rgba(255,255,255,.25) inset;
  }
}
@media (min-width:560px){
  .cm-slot-hero--with-art{
    grid-template-columns:64px 1fr auto;
    grid-template-rows:auto;
  }
  .cm-slot-hero__thumb .cm-brand-thumb{width:64px;height:64px;}
  .cm-slot-hero__ctas{
    grid-column:3;
    grid-row:1;
    align-self:center;
    min-width:140px;
  }
  .cm-slot-hero--with-art .cm-slot-hero__ctas{grid-column:3;}
}
@media (max-width:520px){
  .cm-slot-hero{padding:12px;gap:10px 12px;}
  .cm-slot-hero__thumb .cm-brand-thumb{width:48px;height:48px;}
  .cm-slot-hero__title{font-size:1.15rem;}
  .cm-slot-hero__provider{font-size:11px;}
}

/* Payment method hero — premium, trustworthy, utility-first
   Grid: [thumb 72px] [info 1fr] [ctas auto]. Meta as labeled key:value.
──────────────────────────────────────────────────────────────────────────── */
.cm-payment-hero{
  display:grid;
  grid-template-columns:64px 1fr;
  grid-template-rows:auto auto;
  gap:14px 18px;
  align-items:start;
  padding:18px 16px;
  background:var(--cm-surface);
  border:1px solid var(--cm-border-soft);
  border-radius:var(--cm-radius);
  box-shadow:var(--cm-shadow-card);
  margin-bottom:24px;
}
.cm-payment-hero__thumb{
  grid-column:1;
  grid-row:1/-1;
}
.cm-payment-hero__thumb .cm-brand-thumb{
  width:72px;
  height:72px;
  min-width:72px;
  min-height:72px;
  border-radius:var(--cm-brand-radius,8px);
}
.cm-payment-hero__thumb .cm-brand-thumb img{padding:6px;}
.cm-payment-hero__info{grid-column:2;grid-row:1;min-width:0;}
.cm-payment-hero__title{
  margin:0 0 8px;
  font-size:clamp(1.35rem,3vw,1.65rem);
  font-weight:800;
  line-height:1.2;
  letter-spacing:-.02em;
  color:var(--cm-text);
}
.cm-payment-hero__meta{
  display:flex;
  flex-wrap:wrap;
  gap:12px 20px;
  margin:0 0 10px;
}
.cm-payment-hero__meta-item{
  display:flex;
  flex-direction:column;
  gap:1px;
  margin:0;
}
.cm-payment-hero__meta-item dt{
  font-size:9px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:var(--cm-text-muted);
  margin:0;
}
.cm-payment-hero__meta-item dd{
  font-size:13px;
  font-weight:600;
  color:var(--cm-text);
  margin:0;
}
.cm-payment-hero__subtitle{
  margin:0;
  font-size:14px;
  line-height:1.55;
  color:var(--cm-text-muted);
  opacity:.95;
}
.cm-payment-hero__ctas{
  grid-column:1/-1;
  grid-row:2;
  display:flex;
  flex-direction:column;
  gap:10px;
  align-items:flex-start;
}
.cm-payment-hero__disclaimer{
  margin:0;
  font-size:10px;
  color:var(--cm-text-muted);
  line-height:1.4;
  opacity:.9;
}
@media (max-width:767px){
  .cm-payment-hero{
    gap:10px 14px;
    padding:14px 14px 16px;
    margin-bottom:18px;
  }
  .cm-payment-hero__title{
    margin:0 0 4px;
    font-size:clamp(1.2rem,4vw,1.45rem);
  }
  .cm-payment-hero__meta{
    gap:6px 8px;
    margin:0 0 6px;
  }
  .cm-payment-hero__meta-item{
    flex-direction:column;
    gap:0;
    padding:6px 10px;
    border-radius:999px;
    background:#f4efe9;
    border:1px solid rgba(0,0,0,.08);
  }
  .cm-payment-hero__meta-item dt{
    font-size:8px;
    letter-spacing:.05em;
    line-height:1.2;
  }
  .cm-payment-hero__meta-item dd{
    font-size:13px;
    line-height:1.25;
  }
  .cm-payment-hero__subtitle{
    margin-top:2px;
    font-size:13px;
    line-height:1.45;
  }
  .cm-payment-hero__ctas{
    align-items:stretch;
    width:100%;
    margin-top:2px;
    padding-top:10px;
    border-top:1px solid var(--cm-border-subtle);
    gap:8px;
  }
  .cm-payment-hero__ctas .cm-btn{
    width:100%;
    justify-content:center;
    height:auto;
    min-height:44px;
    padding:10px 14px;
    font-size:13px;
    font-weight:600;
    border-radius:12px;
    border:1px solid rgba(0,0,0,.14);
    background:transparent;
    box-shadow:none;
    color:var(--cm-text);
  }
  .cm-payment-hero__ctas .cm-btn:hover{
    background:rgba(255,255,255,.6);
    border-color:rgba(0,0,0,.2);
  }
}
@media (min-width:560px){
  .cm-payment-hero{
    grid-template-columns:80px 1fr auto;
    grid-template-rows:auto;
    padding:22px 24px;
    gap:20px 24px;
  }
  .cm-payment-hero__thumb .cm-brand-thumb{
    width:80px;
    height:80px;
    min-width:80px;
    min-height:80px;
  }
  .cm-payment-hero__thumb .cm-brand-thumb img{padding:8px;}
  .cm-payment-hero__ctas{
    grid-column:3;
    grid-row:1;
    align-self:center;
    min-width:160px;
    align-items:flex-end;
  }
}
@media (max-width:520px){
  .cm-payment-hero{
    grid-template-columns:56px 1fr;
    padding:12px 12px 14px;
    gap:10px 12px;
    margin-bottom:18px;
  }
  .cm-payment-hero__thumb .cm-brand-thumb{
    width:56px;
    height:56px;
    min-width:56px;
    min-height:56px;
  }
  .cm-payment-hero__thumb .cm-brand-thumb img{padding:4px;}
  .cm-payment-hero__title{font-size:1.2rem;}
  .cm-payment-hero__subtitle{font-size:12px;}
}

/* ─── Single Bonus: Premium layout (Bonus Logic v1) ───────────────────────────────────────────── */
.cm-bonus-hero{
  display:grid;
  grid-template-columns:1fr;
  grid-template-rows:auto auto;
  gap:12px 14px;
  align-items:start;
  padding:var(--cm-single-hero-pad-y) var(--cm-single-hero-pad-x);
  background:var(--cm-surface);
  border:1px solid var(--cm-border-soft);
  border-radius:var(--cm-radius);
  box-shadow:var(--cm-shadow-card);
  margin-bottom:var(--cm-single-hero-margin-bottom);
}
.cm-bonus-hero__info{min-width:0;}
.cm-bonus-hero__title{
  margin:0 0 8px;
  font-size:clamp(1.15rem,2.6vw,1.45rem);
  font-weight:800;
  line-height:1.2;
  letter-spacing:-.02em;
  color:var(--cm-text);
}
.cm-bonus-hero__meta{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:6px 8px;
  margin:0;
}
.cm-bonus-hero__status{
  font-size:10px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.05em;
  padding:2px 6px;
  border-radius:4px;
}
.cm-bonus-hero__status--active{background:var(--cm-status-active-bg);color:var(--cm-status-active-text);}
.cm-bonus-hero__status--expiring_soon{background:var(--cm-status-warn-bg);color:var(--cm-status-warn-text);}
.cm-bonus-hero__status--expired{background:rgba(0,0,0,.08);color:var(--cm-text-muted);}
.cm-bonus-hero__status--restricted{background:var(--cm-status-error-bg);color:var(--cm-status-error-text);}
.cm-bonus-hero__verified{
  font-size:10px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.05em;
  padding:2px 6px;
  border-radius:4px;
  background:var(--cm-status-active-bg);
  color:var(--cm-status-active-text);
}
.cm-bonus-hero__chip{
  font-size:11px;
  font-weight:600;
  padding:2px 6px;
  border-radius:4px;
  background:var(--cm-surface-soft);
  border:1px solid var(--cm-border-subtle);
  color:var(--cm-text-muted);
}
.cm-bonus-hero__chip--link{text-decoration:none;color:inherit;}
.cm-bonus-hero__chip--link:hover{color:var(--cm-cta);text-decoration:underline;}
.cm-bonus-hero__ctas{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.cm-bonus-hero__ctas .cm-btn{width:100%;justify-content:center;}
.cm-bonus-hero__disclaimer{margin:0;font-size:10px;color:var(--cm-text-muted);line-height:1.4;}
@media (min-width:560px){
  .cm-bonus-hero{grid-template-columns:1fr auto;grid-template-rows:auto;align-items:center;padding:18px 20px;}
  .cm-bonus-hero__ctas{min-width:140px;max-width:180px;}
}
@media (max-width:520px){
  .cm-bonus-hero{padding:12px;gap:10px;}
  .cm-bonus-hero__title{font-size:1.15rem;}
  .cm-bonus-hero__chip{font-size:10px;padding:2px 5px;}
}

.cm-bonus-body{
  display:flex;
  flex-direction:column;
  gap:var(--cm-single-body-gap);
  margin-bottom:var(--cm-single-body-margin-bottom);
}
.cm-bonus-details{
  padding:16px 18px;
  background:var(--cm-surface-soft);
  border:1px solid var(--cm-border-soft);
  border-radius:var(--cm-radius);
}
.cm-bonus-details__header{
  display:flex;
  flex-direction:row;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:10px 14px;
  margin:0 0 14px;
  padding-bottom:12px;
  border-bottom:1px solid rgba(47,36,29,.07);
}
.cm-bonus-details__title{
  margin:0;
  font-size:11px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:var(--cm-text-muted);
}
.cm-bonus-details__brand{
  flex-shrink:0;
  line-height:0;
}
.cm-bonus-details__brand-hit{
  display:inline-flex;
  text-decoration:none;
  border-radius:10px;
  transition:box-shadow .15s ease,transform .12s ease;
  -webkit-tap-highlight-color:transparent;
}
.cm-bonus-details__brand-hit:hover{
  box-shadow:0 2px 10px rgba(47,36,29,.1);
}
.cm-bonus-details__brand-hit:focus-visible{
  outline:2px solid var(--cm-cta);
  outline-offset:2px;
}
.cm-bonus-details__brand .cm-brand-thumb--bonus-keyfacts.cm-brand-thumb--xs{
  width:36px !important;
  height:36px !important;
  min-width:36px !important;
  min-height:36px !important;
  max-width:36px !important;
  max-height:36px !important;
  border-radius:9px;
}
.cm-bonus-details__brand .cm-brand-thumb--bonus-keyfacts.cm-brand-thumb--xs img{
  width:28px !important;
  height:28px !important;
  max-width:28px !important;
  max-height:28px !important;
  padding:2px !important;
  object-fit:contain;
}
.cm-bonus-details__brand .cm-brand-thumb--bonus-keyfacts.cm-brand-thumb--xs.cm-brand-thumb--initials .cm-brand-thumb__initials{
  font-size:11px;
}
.cm-bonus-details__grid{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.cm-bonus-details__row{
  display:grid;
  grid-template-columns:minmax(100px,120px) 1fr;
  gap:10px 14px;
  align-items:start;
  padding:8px 0;
  border-bottom:1px solid rgba(47,36,29,.055);
}
.cm-bonus-details__grid .cm-bonus-details__row:last-of-type{
  border-bottom:none;
  padding-bottom:0;
}
.cm-bonus-details__row--code{margin-top:2px;align-items:center;}
@media (min-width:420px){
  .cm-bonus-details__row{grid-template-columns:minmax(108px,132px) 1fr;}
}
@media (max-width:419px){
  .cm-bonus-details__row--code{grid-template-columns:1fr;}
  .cm-bonus-details__row--code .cm-bonus-details__label{grid-column:1;}
  .cm-bonus-details__row--code .cm-bonus-details__code{grid-column:1;}
}
.cm-bonus-details__label{font-size:11px;font-weight:600;opacity:.8;color:var(--cm-text-muted);padding-top:2px;}
.cm-bonus-details__value{
  font-size:13px;
  font-weight:500;
  color:var(--cm-text);
  line-height:1.45;
  word-break:break-word;
}
.cm-bonus-details__code{
  font-size:13px;
  font-weight:700;
  padding:4px 8px;
  border-radius:4px;
  background:var(--cm-surface);
  border:1px solid var(--cm-border-subtle);
  color:var(--cm-text);
  font-family:ui-monospace,monospace;
}
@media (min-width:768px){
  .cm-bonus-details{
    padding:20px 24px 18px;
  }
  .cm-bonus-details__header{
    flex-wrap:nowrap;
    margin-bottom:16px;
    padding-bottom:14px;
  }
  .cm-bonus-details__brand .cm-brand-thumb--bonus-keyfacts.cm-brand-thumb--xs{
    width:42px !important;
    height:42px !important;
    min-width:42px !important;
    min-height:42px !important;
    max-width:42px !important;
    max-height:42px !important;
    border-radius:10px;
  }
  .cm-bonus-details__brand .cm-brand-thumb--bonus-keyfacts.cm-brand-thumb--xs img{
    width:32px !important;
    height:32px !important;
    max-width:32px !important;
    max-height:32px !important;
  }
  .cm-bonus-details__brand .cm-brand-thumb--bonus-keyfacts.cm-brand-thumb--xs.cm-brand-thumb--initials .cm-brand-thumb__initials{
    font-size:12px;
  }
  .cm-bonus-details__grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    column-gap:32px;
    row-gap:2px;
  }
  .cm-bonus-details__row{
    border-bottom:none;
    padding:8px 0 10px;
    grid-template-columns:minmax(96px,34%) 1fr;
    gap:8px 14px;
  }
  .cm-bonus-details__row--code{
    grid-column:1 / -1;
    grid-template-columns:minmax(96px,150px) minmax(0,1fr);
    margin-top:6px;
    padding-top:14px;
    padding-bottom:4px;
    border-top:1px solid rgba(47,36,29,.09);
    align-items:center;
  }
  .cm-bonus-details__grid .cm-bonus-details__row:last-of-type{
    padding-bottom:0;
  }
  .cm-bonus-details__value{font-size:14px;}
  .cm-bonus-details__trust{margin-top:14px;}
}
.cm-bonus-details__trust{margin:10px 0 0;font-size:11px;opacity:.85;color:var(--cm-text-muted);}
.cm-bonus-details__claim-steps{margin-top:14px;}
.cm-bonus-details__claim-steps-title{margin:0 0 6px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--cm-text-muted);}
.cm-bonus-details__claim-steps-body{font-size:13px;line-height:1.7;}
/* Numbered list lives outside .cm-single__content — restore visible markers + spacing */
.cm-bonus-details__claim-steps-body .cm-bonus-claim-steps__list{
  margin:6px 0 0;
  padding-left:1.35rem;
  list-style:decimal;
}
.cm-bonus-details__claim-steps-body .cm-bonus-claim-steps__list li{margin-bottom:6px;padding-left:4px;}
.cm-bonus-details__terms{margin:10px 0 0;font-size:13px;line-height:1.6;color:var(--cm-text-muted);}
.cm-bonus-details__terms .cm-bonus-terms__list{
  margin:8px 0 0;
  padding-left:1.25rem;
  list-style:disc;
}
.cm-bonus-details__terms .cm-bonus-terms__list li{margin-bottom:6px;}
.cm-bonus-details__terms .cm-bonus-terms__list a{color:var(--cm-accent, #2563eb);text-decoration:underline;}

.cm-bonus-single__content{margin:0;padding:0;line-height:1.7;}

.cm-bonus-single__faq{margin-top:2px;padding-top:var(--cm-space-lg);border-top:1px solid var(--cm-border-soft);}
/*.cm-bonus-related{*/
.cm-bonus-related__title{margin:0 0 12px;font-size:1.05rem;font-weight:800;color:var(--cm-text);}
.cm-bonus-related__grid{display:grid;gap:var(--cm-related-grid-gap);}
.cm-bonus-related__grid--blocks-1{grid-template-columns:1fr;}
.cm-bonus-related__grid--blocks-2{grid-template-columns:1fr;}
@media (min-width:768px){
  .cm-bonus-related__grid--blocks-2{grid-template-columns:repeat(2,1fr);}
}
.cm-bonus-related__grid--blocks-3{grid-template-columns:1fr;}
@media (min-width:768px){
  .cm-bonus-related__grid--blocks-3{grid-template-columns:repeat(2,1fr);}
}
@media (min-width:860px){
  .cm-bonus-related__grid--blocks-3{grid-template-columns:repeat(3,1fr);}
}
.cm-bonus-related__grid .cm-sidebar__section{margin:0;}
.cm-bonus-related__grid .cm-sidebar__title{margin:0 0 8px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--cm-text-muted);}
.cm-bonus-related__grid .cm-sidebar__list{gap:6px;}
.cm-bonus-related__grid .cm-sidebar-card{padding:10px 12px;border-radius:8px;}
.cm-bonus-related__grid .cm-sidebar-card__title{font-size:13px;margin:0 0 2px;}
.cm-bonus-related__grid .cm-sidebar-card__excerpt{font-size:12px;line-height:1.5;}

@media (max-width:520px){
  .cm-bonus-body{gap:var(--cm-archive-hub-tight-gap);}
  .cm-bonus-details{padding:12px 14px;}
  .cm-bonus-details__row{grid-template-columns:minmax(90px,110px) 1fr;gap:8px;font-size:12px;}
  .cm-bonus-details__row--code .cm-bonus-details__code{font-size:12px;padding:3px 6px;}
  .cm-bonus-related__grid{gap:14px;}
}

/* ─── Single Slot: Editorial layout (aligned with casino/bonus) ───────────────────────────────── */
.cm-slot-body{
  display:flex;
  flex-direction:column;
  gap:var(--cm-single-body-gap);
  margin-bottom:var(--cm-single-body-margin-bottom);
}
.cm-slot-single__content{margin:0;line-height:1.7;}
.cm-slot-single__fallback{
  padding:18px 20px;
  background:var(--cm-surface-soft);
  border:1px solid var(--cm-border-soft);
  border-radius:var(--cm-radius);
}
.cm-slot-single__fallback-intro{margin:0 0 12px !important;font-size:1rem;line-height:1.65;color:var(--cm-text);font-weight:500;}
.cm-slot-single__fallback p{margin:0 0 14px;font-size:0.9375rem;line-height:1.65;color:var(--cm-text-muted);}
.cm-slot-single__fallback p:last-of-type{margin-bottom:16px;}
.cm-slot-single__fallback .cm-btn{font-size:14px;font-weight:600;padding:10px 18px;margin-top:4px;}

.cm-slot-related__title{margin:0 0 12px;font-size:1.05rem;font-weight:800;color:var(--cm-text);}
.cm-slot-related__cols{display:grid;grid-template-columns:1fr;gap:18px 24px;}
@media (min-width:768px){
  .cm-slot-related__cols{grid-template-columns:repeat(2,1fr);}
}
.cm-slot-related__block-title{margin:0 0 8px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--cm-text-muted);}
.cm-slot-related__list{margin:0;padding:0;list-style:none;}
.cm-slot-related__list li{margin-bottom:6px;}
.cm-slot-related__list li:last-child{margin-bottom:0;}
.cm-slot-related__list a{font-size:14px;color:var(--cm-text);text-decoration:none;font-weight:500;}
.cm-slot-related__list a:hover{text-decoration:underline;color:var(--cm-link-hover);}

.cm-slot-casinos{
  margin-top:4px;
  padding-top:20px;
  border-top:1px solid var(--cm-border-soft);
}
.cm-slot-casinos .cm-sidebar__section{margin:0;}
.cm-slot-casinos .cm-sidebar-card{padding:10px 12px;}

.cm-slot-guides{
  margin-top:4px;
  padding-top:20px;
  border-top:1px solid var(--cm-border-soft);
}
.cm-slot-guides .cm-sidebar__section{margin:0;}
.cm-slot-guides .cm-sidebar-card{padding:10px 12px;}
.cm-slot-guides__link{display:inline-block;margin-top:12px;font-size:14px;font-weight:600;color:var(--cm-link);text-decoration:none;}
.cm-slot-guides__link:hover{text-decoration:underline;color:var(--cm-link-hover);}
.cm-slot-guides__cta{margin-top:20px;padding-top:18px;border-top:1px solid var(--cm-border-soft);}

@media (max-width:520px){
  .cm-slot-body{gap:16px;}
  .cm-slot-single__fallback{padding:16px 18px;}
  .cm-slot-related__cols{gap:16px;}
}

/* ─── Single Guide: Editorial layout (aligned with casino/bonus) ─────────────────────────────── */
.cm-guide-hero .cm-guide-hero__meta{margin:0 0 6px;font-size:12px;color:var(--cm-text-muted);}
.cm-guide-hero .cm-guide-hero__excerpt{margin:0;font-size:0.9375rem;line-height:1.6;color:var(--cm-text);opacity:.9;}
.cm-news-hero .cm-news-hero__meta{margin:0 0 6px;font-size:12px;color:var(--cm-text-muted);}
.cm-news-hero .cm-news-hero__sep{opacity:.45;margin:0 .25rem;}
.cm-news-hero .cm-news-hero__topic{font-weight:600;opacity:.88;}
.cm-news-hero .cm-news-hero__excerpt{margin:10px 0 0;font-size:0.9375rem;line-height:1.65;color:var(--cm-text);opacity:.92;max-width:62ch;}

.cm-news-body{
  display:flex;
  flex-direction:column;
  gap:22px;
  margin-bottom:28px;
}
.cm-news-single .cm-single-feat--news{margin-bottom:0;}
.cm-news-single__content{margin:0;font-size:1rem;line-height:1.75;}
.cm-news-single .cm-single__content a{color:var(--cm-cta);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;}
.cm-news-single .cm-single__content a:hover{color:var(--cm-link-hover, var(--cm-cta));}
.cm-news-body__figure{
  margin:0;
  padding:0;
  border-radius:var(--cm-radius);
  overflow:hidden;
  border:1px solid var(--cm-border-soft);
  background:var(--cm-surface-soft);
  text-align:center;
}
.cm-news-body__inline-img{
  display:block;
  width:100%;
  height:auto;
  vertical-align:middle;
}
.cm-news-source{
  margin:8px 0 0;
  padding-top:18px;
  border-top:1px solid var(--cm-border-soft);
  font-size:0.875rem;
  line-height:1.5;
  color:var(--cm-text-muted);
}
.cm-news-source__label{font-weight:600;margin-right:6px;color:var(--cm-text);}
.cm-news-source__link{font-weight:600;color:var(--cm-cta);text-decoration:none;}
.cm-news-source__link:hover{text-decoration:underline;}

@media (max-width:520px){
  .cm-news-body{gap:18px;margin-bottom:22px;}
}

.cm-guide-body{
  display:flex;
  flex-direction:column;
  gap:20px;
  margin-bottom:24px;
}
.cm-guide-single__content{margin:0;font-size:1rem;line-height:1.75;}
.cm-guide-single__fallback{
  padding:20px 22px;
  background:var(--cm-surface-soft);
  border:1px solid var(--cm-border-soft);
  border-radius:var(--cm-radius);
}
.cm-guide-single__fallback-lead{margin:0 0 12px !important;font-size:1rem;line-height:1.65;color:var(--cm-text);font-weight:500;}
.cm-guide-single__fallback p{margin:0 0 12px;font-size:0.9375rem;line-height:1.65;color:var(--cm-text-muted);}
.cm-guide-single__fallback p:last-of-type{margin-bottom:16px;}
.cm-guide-single__fallback .cm-btn{font-size:14px;font-weight:600;padding:10px 18px;margin-top:4px;}

.cm-guide-related__title{margin:0 0 12px;font-size:1.05rem;font-weight:800;color:var(--cm-text);}
.cm-guide-related__grid{display:grid;grid-template-columns:1fr;gap:var(--cm-related-grid-gap);}
@media (min-width:768px){
  .cm-guide-related__grid{grid-template-columns:repeat(2,1fr);}
}
.cm-guide-related__grid .cm-sidebar__section{margin:0;}
.cm-guide-related__grid .cm-sidebar__title{margin:0 0 8px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--cm-text-muted);}
.cm-guide-related__grid .cm-sidebar-card{padding:10px 12px;}
/* Related guide cards: taller, sharper preview band (cm_single + room to breathe vs. 88px cap). */
.cm-guide-related__grid .cm-sidebar-card__mini-feat--guide.cm-feat-prev--mini .cm-feat-prev__frame {
  max-height: 148px;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 1px 0 rgba(47, 36, 29, 0.06);
}
.cm-guide-related__grid .cm-sidebar-card__mini-feat--guide.cm-feat-prev--mini .cm-feat-prev__frame .cm-feat-prev__img {
  object-fit: cover;
  object-position: center;
}
@media (min-width: 768px) {
  .cm-guide-related__grid .cm-sidebar-card__mini-feat--guide.cm-feat-prev--mini .cm-feat-prev__frame {
    max-height: 132px;
  }
}
.cm-guide-related__cta{margin-top:20px;padding-top:18px;border-top:1px solid var(--cm-border-soft);}

@media (max-width:520px){
  .cm-guide-body{gap:16px;}
  .cm-guide-single__fallback{padding:16px 18px;}
}

/* ─── Single Payment Method: Premium layout ───────────────────────────────────────────────────── */
.cm-payment-body{
  display:flex;
  flex-direction:column;
  gap:var(--cm-single-body-gap);
  margin-bottom:var(--cm-single-body-margin-bottom);
}
.cm-payment-single__content{
  margin:0;
  line-height:1.7;
  font-size:15px;
  color:var(--cm-text);
}
.cm-payment-single__content p:first-child{margin-top:0;}
.cm-payment-single__content p{margin:0 0 1em;}
.cm-payment-single__content p:last-child{margin-bottom:0;}
.cm-payment-single__content h2{margin:1.5em 0 .5em;font-size:1.125rem;font-weight:700;}
.cm-payment-single__content h3{margin:1.25em 0 .4em;font-size:1rem;font-weight:600;}
.cm-payment-single__faq{
  margin-top:4px;
  padding-top:var(--cm-space-lg);
  border-top:1px solid var(--cm-border-soft);
}
/* .cm-payment-related{
*/
.cm-payment-related__title{margin:0 0 12px;font-size:1.05rem;font-weight:800;color:var(--cm-text);letter-spacing:-.01em;}
.cm-payment-related__lede{margin:-4px 0 16px;font-size:13px;line-height:1.5;color:var(--cm-text-muted);}
.cm-payment-related__grid{display:grid;gap:var(--cm-related-grid-gap);}
.cm-payment-related__grid--blocks-1{grid-template-columns:1fr;}
.cm-payment-related__grid--blocks-2{grid-template-columns:1fr;}
@media (min-width:768px){
  .cm-payment-related__grid--blocks-2{grid-template-columns:repeat(2,1fr);}
}
.cm-payment-related__grid--blocks-3{grid-template-columns:1fr;}
@media (min-width:768px){
  .cm-payment-related__grid--blocks-3{grid-template-columns:repeat(2,1fr);}
}
@media (min-width:860px){
  .cm-payment-related__grid--blocks-3{grid-template-columns:repeat(3,1fr);}
}
.cm-payment-related__grid .cm-sidebar__section{margin:0;}
.cm-payment-related__grid .cm-sidebar__title{margin:0 0 10px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--cm-text-muted);}
.cm-payment-related__grid .cm-sidebar__list{gap:8px;}
.cm-payment-related__grid .cm-sidebar-card{padding:12px 14px;border-radius:var(--cm-radius-sm,8px);border:1px solid var(--cm-border-subtle);}
.cm-payment-related__grid .cm-sidebar-card__title{font-size:13px;margin:0 0 3px;}
.cm-payment-related__grid .cm-sidebar-card__excerpt{font-size:12px;line-height:1.45;}

/* ── Payment related: refined card layout ────────────────────────────────── */

/* Casino cards: clean logo-left / body-right row */
.cm-payment-related__grid .cm-sidebar-card--with-brand {
  display: grid;
  grid-template-columns: 40px 1fr;
  grid-template-rows: auto auto;
  grid-template-areas:
    "logo body"
    "cta  cta";
  gap: 0 10px;
  align-items: start;
  padding: 14px;
}
.cm-payment-related__grid .cm-sidebar-card--with-brand .cm-sidebar-card__thumb {
  grid-area: logo;
  margin-top: 2px;
}
.cm-payment-related__grid .cm-sidebar-card--with-brand .cm-brand-thumb {
  width: 40px;
  height: 40px;
  min-width: 40px;
  min-height: 40px;
}
.cm-payment-related__grid .cm-sidebar-card--with-brand .cm-sidebar-card__body {
  grid-area: body;
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
}
.cm-payment-related__grid .cm-sidebar-card--with-brand .cm-sidebar-card__cta {
  grid-area: cta;
  margin-top: 10px;
  align-self: end;
  justify-self: start;
}
/* Clamp casino card excerpt */
.cm-payment-related__grid .cm-sidebar-card--with-brand .cm-sidebar-card__excerpt {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  font-size: 11.5px;
  line-height: 1.45;
  color: var(--cm-text-muted);
}

/* Bonus cards: flex column, image edge-to-edge at top */
.cm-payment-related__grid .cm-sidebar-card--bonus {
  display: flex;
  flex-direction: column;
  padding: 0;
  overflow: hidden;
  gap: 0;
}
.cm-payment-related__grid .cm-sidebar-card--bonus .cm-sidebar-card__mini-feat.cm-feat-prev--mini {
  margin: 0 0 0;
  width: 100%;
  border-radius: 0;
  flex-shrink: 0;
}
.cm-payment-related__grid .cm-sidebar-card--bonus .cm-sidebar-card__mini-feat.cm-feat-prev--mini .cm-feat-prev__frame {
  border-radius: 0;
  max-height: 130px;
  aspect-ratio: unset;
  height: 130px;
}
.cm-payment-related__grid .cm-sidebar-card--bonus .cm-sidebar-card__meta-row {
  margin: 10px 14px 4px;
}
.cm-payment-related__grid .cm-sidebar-card--bonus .cm-sidebar-card__title {
  margin: 0 14px 4px;
  font-size: 13px;
  line-height: 1.3;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
.cm-payment-related__grid .cm-sidebar-card--bonus .cm-sidebar-card__bonus-meta {
  margin: 0 14px 4px;
  font-size: 11.5px;
  line-height: 1.4;
  opacity: 0.75;
}
.cm-payment-related__grid .cm-sidebar-card--bonus .cm-sidebar-card__excerpt {
  margin: 0 14px 0;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  font-size: 11.5px;
  line-height: 1.45;
  color: var(--cm-text-muted);
}
.cm-payment-related__grid .cm-sidebar-card--bonus .cm-sidebar-card__cta {
  margin: 10px 14px 12px;
  align-self: flex-start;
}

/* Bonus card without image: add padding at top */
.cm-payment-related__grid .cm-sidebar-card--bonus:not(.cm-sidebar-card--has-mini-feat) {
  padding: 14px;
}
.cm-payment-related__grid .cm-sidebar-card--bonus:not(.cm-sidebar-card--has-mini-feat) .cm-sidebar-card__meta-row,
.cm-payment-related__grid .cm-sidebar-card--bonus:not(.cm-sidebar-card--has-mini-feat) .cm-sidebar-card__title,
.cm-payment-related__grid .cm-sidebar-card--bonus:not(.cm-sidebar-card--has-mini-feat) .cm-sidebar-card__bonus-meta,
.cm-payment-related__grid .cm-sidebar-card--bonus:not(.cm-sidebar-card--has-mini-feat) .cm-sidebar-card__excerpt,
.cm-payment-related__grid .cm-sidebar-card--bonus:not(.cm-sidebar-card--has-mini-feat) .cm-sidebar-card__cta {
  margin-left: 0;
  margin-right: 0;
}

@media (max-width:520px){
  .cm-payment-body{gap:var(--cm-archive-hub-tight-gap);}
  .cm-payment-single__content{font-size:14px;}
  .cm-payment-single__faq{padding-top:18px;}
  .cm-payment-related{padding-top:18px;}
  .cm-payment-related__grid{gap:14px;}
}

/* Legacy layout support (for other single pages) */
.cm-layout-2col{display:block;}
@media (min-width:901px){
  .cm-layout-2col{display:grid;grid-template-columns:1fr 300px;gap:28px;align-items:start;}
  .cm-main{min-width:0;}
}
.cm-sidebar{display:flex;flex-direction:column;gap:20px;}
@media (max-width:900px){
  .cm-sidebar{margin-top:28px;padding-top:20px;border-top:1px solid rgba(0,0,0,.08);}
}
.cm-sidebar__section{margin:0;}
.cm-sidebar__title{margin:0 0 16px;font-size:18px;font-weight:700;color:var(--cm-text);line-height:1.3;}
.cm-sidebar__list{display:flex;flex-direction:column;gap:16px;}
.cm-sidebar-card{padding:18px;background:var(--cm-surface-soft);border:1px solid var(--cm-border-soft);border-radius:var(--cm-radius,16px);box-shadow:var(--cm-shadow-card,0 2px 8px rgba(17,17,17,.04));transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;}
@media (hover: hover) and (pointer: fine) {
  .cm-sidebar-card:hover{transform:translateY(-1px);box-shadow:var(--cm-shadow-section,0 4px 12px rgba(17,17,17,.08));border-color:var(--cm-border-strong);}
}
.cm-sidebar-card--with-brand{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-start;}
.cm-sidebar-card--with-brand .cm-sidebar-card__thumb{flex-shrink:0;}
.cm-sidebar-card--with-brand .cm-sidebar-card__body{flex:1;min-width:0;}
.cm-sidebar-card__meta{margin:0 0 6px;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--cm-text-muted);}
.cm-sidebar-card__meta-row{display:flex;flex-wrap:wrap;gap:0 10px;align-items:center;margin:0 0 6px;}
.cm-sidebar-card__meta-row .cm-sidebar-card__meta{margin:0;}
.cm-sidebar-card__status{font-size:11px;font-weight:600;opacity:.9;}
.cm-sidebar-card__bonus-meta{margin:0 0 8px;font-size:12px;opacity:.85;}
.cm-sidebar-card__title{margin:0 0 10px;font-size:15px;font-weight:700;line-height:1.35;color:var(--cm-text);}
.cm-sidebar-card__title a{text-decoration:none;color:inherit;}
.cm-sidebar-card__title a:hover{text-decoration:underline;color:var(--cm-link-hover);}
.cm-sidebar-card__excerpt{margin:0;font-size:14px;opacity:.8;line-height:1.6;color:var(--cm-text);}

/* ============================================================
   SEARCH PAGE — hero, result count, search cards
   ============================================================ */

/* Hero */
/* STEP 2: Search results — CM layout only, single breadcrumb, no TT5 bleed */
.cm-search-page .cm-page-header {
  margin-bottom: var(--cm-space-xl, 32px);
  padding-bottom: var(--cm-space-lg, 24px);
  border-bottom: 1px solid var(--cm-border-subtle);
}
.cm-search-page .cm-page-header .cm-breadcrumbs {
  margin-bottom: var(--cm-space-sm, 8px);
}
.cm-search-hero { margin-bottom: 0; }
.cm-search-hero__title { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px; }
.cm-search-hero__query {
  font-weight: 700;
  color: var(--cm-text);
  font-style: normal;
}
.cm-search-hero__count { margin-top: 4px; }

/* Search grid — same responsive steps as cm-grid but 2-col max for readability */
.cm-search-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--cm-archive-hub-tight-gap);
  align-items: stretch;
}
@media (max-width: 680px) {
  .cm-search-grid { grid-template-columns: 1fr; gap: var(--cm-space-md); }
}

/* Search card — clear hierarchy: type → title → excerpt → CTA (equal row height via grid stretch) */
.cm-search-card {
  display: flex;
  flex-direction: column;
  gap: 10px;
  height: 100%;
  min-height: 0;
  padding: 18px 18px 16px;
  box-sizing: border-box;
  transition: box-shadow 0.2s ease, border-color 0.2s ease;
}
.cm-search-card--has-preview .cm-search-card__preview.cm-feat-prev--mini {
  margin: -6px -4px 4px;
  width: calc(100% + 8px);
  max-width: none;
  align-self: stretch;
}
.cm-search-card--has-preview .cm-search-card__preview .cm-feat-prev__frame {
  width: 100%;
  max-height: 118px;
  aspect-ratio: 16 / 9;
}
.cm-search-card:hover {
  box-shadow: 0 6px 20px rgba(17, 17, 17, 0.07);
  border-color: var(--cm-border-subtle);
}
.cm-search-card__type {
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--cm-text-muted);
  opacity: 0.62;
  margin: 0;
}
.cm-search-card__title { margin: 0; font-size: 1.0625rem; font-weight: 700; line-height: 1.35; letter-spacing: -0.01em; }
.cm-search-card__title a { text-decoration: none; color: inherit; }
.cm-search-card__title a:hover { text-decoration: underline; color: var(--cm-link-hover, var(--cm-cta)); }
.cm-search-card__excerpt {
  margin: 0;
  font-size: 14px;
  opacity: 0.84;
  line-height: 1.55;
  flex: 1 1 auto;
  min-height: 0;
  /* Clamp to 2 lines */
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.cm-search-card__cta {
  align-self: flex-start;
  margin-top: auto;
  padding: 6px 12px !important;
  min-height: 0 !important;
  height: auto !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  line-height: 1.3;
  border-radius: 8px !important;
}

/* Empty state inline search form */
.cm-search--inline {
  display: flex;
  gap: 8px;
  margin-top: 14px;
  flex-wrap: wrap;
}
.cm-search--inline .cm-search__input {
  flex: 1;
  min-width: 0;
  height: 40px;
  padding: 0 12px;
  border: 1px solid var(--cm-border);
  border-radius: var(--cm-radius-sm);
  font-size: 15px;
  background: var(--cm-color-bg);
}
.cm-search--inline .cm-search__btn { flex-shrink: 0; }

@media (max-width: 480px) {
  .cm-search--inline { flex-direction: column; }
  .cm-search--inline .cm-search__input,
  .cm-search--inline .cm-search__btn { width: 100%; }
}

/* ============================================================
   NEWS ARCHIVE — compact hero, filter bar, news cards
   ============================================================ */

/* Compact hero (breadcrumb + H1 + subtitle) */
.cm-hero.cm-news-hero {
  margin-bottom: 20px;
  padding: 0 0 16px;
  border-bottom: 1px solid var(--cm-border-subtle);
}
.cm-hero.cm-news-hero .cm-hero__title,
.cm-hero.cm-news-hero .cm-archive-title {
  margin: 0 0 6px;
  font-size: clamp(1.5rem, 4vw, 1.75rem);
  font-weight: 700;
}
.cm-hero.cm-news-hero .cm-hero__subtitle,
.cm-hero.cm-news-hero .cm-archive-subtitle {
  margin: 0;
  font-size: 0.9375rem;
  opacity: .75;
  line-height: 1.4;
}

/* Archive grids — unified responsive */
.cm-archive-casino .cm-grid,
  .cm-archive-bonus .cm-grid{grid-template-columns:1fr;}
@media (min-width:768px){
  .cm-archive-casino .cm-grid,
  .cm-archive-bonus .cm-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
/* Bonus cards need width for title + chips + CTAs — keep 2 columns (matches casino archive cap). */
/* Casino cards need horizontal room (title + meta + CTAs); cap at 2 columns */
@media (min-width:1100px){
  .cm-archive-casino .cm-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
.cm-archive-payment-methods .cm-grid,
.cm-archive-guides .cm-grid{grid-template-columns:1fr;}
@media (min-width:768px){
  .cm-archive-payment-methods .cm-grid,
  .cm-archive-guides .cm-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (min-width:860px){
  .cm-archive-payment-methods .cm-grid,
  .cm-archive-guides .cm-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
}
/* Slots archive listing: fluid columns — min card width before wrapping (avoids 3 skinny cols on laptop). */
.cm-archive-slots .cm-archive-listing .cm-grid.cm-archive-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr));
  gap: 18px;
}
@media (min-width: 900px) {
  .cm-archive-slots .cm-archive-listing .cm-grid.cm-archive-grid {
    gap: 22px;
  }
}
@media (min-width: 1200px) {
  .cm-archive-slots .cm-archive-listing .cm-grid.cm-archive-grid {
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr));
  }
}
.cm-news-grid{display:grid;gap:16px;grid-template-columns:1fr;}
@media (min-width:768px){
  .cm-news-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (min-width:860px){
  .cm-news-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
}

/* News card: topic badge, date, title, excerpt, CTA */
/* ── Sprint 4: News Cards ─────────────────────────────────────────────────────
   Premium editorial card styling for news archive.
──────────────────────────────────────────────────────────────────────────── */
/* News archive intro — editorial */
.cm-archive-news .cm-archive-intro {
  margin-top: 0;
  margin-bottom: var(--cm-space-lg, 24px);
  padding: var(--cm-space-lg, 24px);
  background: var(--cm-surface-soft);
  border: 1px solid var(--cm-border-soft);
  border-radius: var(--cm-radius);
}
.cm-archive-news .cm-archive-intro__text {
  margin: 0;
  font-size: 1.0625rem;
  line-height: 1.7;
  opacity: .92;
  max-width: 56ch;
  color: var(--cm-color-text);
}

.cm-archive-news .cm-news-card,
.cm-news-grid .cm-news-card {
  display: flex;
  flex-direction: column;
  gap: var(--cm-space-sm, 8px);
  padding: var(--cm-space-lg, 22px);
  background: var(--cm-color-bg);
  border: 1px solid var(--cm-border-subtle);
  border-radius: var(--cm-radius);
  box-shadow: var(--cm-shadow-card);
  transition: box-shadow .18s ease, border-color .18s ease;
}
.cm-archive-news .cm-news-card:hover,
.cm-news-grid .cm-news-card:hover {
  box-shadow: var(--cm-shadow-section);
  border-color: var(--cm-border-strong);
}
.cm-archive-news .cm-news-card__media,
.cm-news-grid .cm-news-card__media {
  margin: calc(-1 * var(--cm-space-lg, 22px)) calc(-1 * var(--cm-space-lg, 22px)) var(--cm-space-sm, 8px);
  width: calc(100% + 2 * var(--cm-space-lg, 22px));
  max-width: none;
  border-radius: var(--cm-radius) var(--cm-radius) 0 0;
  overflow: hidden;
  border-bottom: 1px solid var(--cm-border-subtle);
  background: var(--cm-surface-soft);
}
.cm-archive-news .cm-news-card__preview.cm-feat-prev,
.cm-news-grid .cm-news-card__preview.cm-feat-prev {
  height: var(--cm-arch-preview-h, 172px);
  max-height: var(--cm-arch-preview-h, 172px);
  border: none;
  box-shadow: none;
  border-radius: 0;
  margin: 0;
}
.cm-archive-news .cm-news-card__preview .cm-feat-prev__frame,
.cm-news-grid .cm-news-card__preview .cm-feat-prev__frame {
  height: 100%;
  min-height: 100%;
}
.cm-archive-news .cm-news-card__thumb-fallback,
.cm-news-grid .cm-news-card__thumb-fallback {
  display: block;
  height: var(--cm-arch-preview-h, 172px);
  min-height: var(--cm-arch-preview-h, 172px);
  background: linear-gradient(135deg, var(--cm-surface-soft) 0%, var(--cm-soft, rgba(47, 36, 29, 0.06)) 100%);
}
.cm-archive-news .cm-news-card__meta,
.cm-news-grid .cm-news-card__meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--cm-space-sm, 8px);
  flex-wrap: wrap;
  margin-bottom: var(--cm-space-xs, 4px);
}
.cm-archive-news .cm-news-card__badge,
.cm-news-grid .cm-news-card__badge {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .05em;
  padding: 4px 10px;
  border-radius: var(--cm-radius-pill);
  border: 1px solid var(--cm-border-subtle);
  background: var(--cm-surface-soft);
  color: var(--cm-color-text);
  text-decoration: none;
  transition: background .15s, border-color .15s;
}
.cm-archive-news .cm-news-card__badge:hover,
.cm-news-grid .cm-news-card__badge:hover {
  background: var(--cm-soft);
  border-color: var(--cm-border);
}
.cm-archive-news .cm-news-card__date,
.cm-news-grid .cm-news-card__date {
  font-size: 12px;
  opacity: .7;
  white-space: nowrap;
  color: var(--cm-color-text);
}
.cm-archive-news .cm-news-card__title,
.cm-news-grid .cm-news-card__title {
  margin: 0 0 var(--cm-space-xs, 4px);
  font-size: 18px;
  line-height: 1.35;
  font-weight: 700;
  color: var(--cm-color-text);
}
.cm-archive-news .cm-news-card__title a,
.cm-news-grid .cm-news-card__title a {
  text-decoration: none;
  color: inherit;
  transition: color .15s;
}
.cm-archive-news .cm-news-card__title a:hover,
.cm-news-grid .cm-news-card__title a:hover {
  color: var(--cm-cta);
}
.cm-archive-news .cm-news-card__excerpt,
.cm-news-grid .cm-news-card__excerpt {
  margin: var(--cm-space-xs, 4px) 0 0;
  font-size: 14px;
  opacity: .8;
  line-height: 1.6;
  flex: 1;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.cm-archive-news .cm-news-card__cta,
.cm-news-grid .cm-news-card__cta {
  margin-top: var(--cm-space-sm, 8px);
  align-self: flex-start;
  height: 38px;
  padding: 0 16px;
  border-radius: var(--cm-radius);
  font-size: 13px;
  font-weight: 600;
  background: var(--cm-surface-soft);
  border: 1px solid var(--cm-border-subtle);
  color: var(--cm-cta);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background .15s, border-color .15s, color .15s;
}
.cm-archive-news .cm-news-card__cta:hover,
.cm-news-grid .cm-news-card__cta:hover {
  background: var(--cm-soft);
  border-color: var(--cm-border);
  color: var(--cm-cta);
}

/* ── Sprint 4: Slot & Guide Cards ─────────────────────────────────────────────
   Premium card styling aligned with casinos/bonuses/payment-methods pattern.
──────────────────────────────────────────────────────────────────────────── */

/* Slot archive: slot art in media; provider + game type as lightweight metadata (shell: .cm-archive-card--slot) */
.cm-slot-card__provider {
  margin: 4px 0 0;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--cm-meta-chip-text);
  line-height: 1.35;
}
.cm-archive-slots .cm-slot-card__provider {
  overflow-wrap: anywhere;
  max-width: 100%;
}
.cm-slot-card__provider-link {
  text-decoration: none;
  color: inherit;
}
.cm-slot-card__provider-link:hover {
  color: var(--cm-cta);
  text-decoration: underline;
}
.cm-slot-card__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 12px;
  margin: 0;
  max-width: 100%;
}
.cm-slot-card__chip--provider {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  max-width: 100%;
  min-width: 0;
  margin: 0;
  padding: 0;
  border: none;
  background: transparent;
  box-shadow: none;
}
.cm-slot-card__chip--provider .cm-brand-thumb {
  flex-shrink: 0;
}
.cm-slot-card__chip-label {
  text-decoration: none;
  color: inherit;
  min-width: 0;
  overflow-wrap: anywhere;
}
a.cm-slot-card__chip-label:hover {
  color: var(--cm-cta);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.cm-slot-card__type {
  display: inline-flex;
  align-items: center;
  max-width: 100%;
  box-sizing: border-box;
}
/* Slot list thumb: bounded frame, contain + light scroll for tall art (featured lives in preview row). */
.cm-archive-grid .cm-archive-card--slot .cm-slot-card__thumb-frame {
  width: 48px;
  height: 48px;
  max-height: 48px;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  border-radius: var(--cm-brand-radius, 8px);
  border: 1px solid var(--cm-border-subtle);
  background: var(--cm-surface-soft);
  box-sizing: border-box;
  scrollbar-width: thin;
  scrollbar-color: rgba(47, 36, 29, 0.18) transparent;
  display: flex;
  align-items: center;
  justify-content: center;
}
.cm-archive-grid .cm-archive-card--slot .cm-slot-card__thumb-frame::-webkit-scrollbar {
  width: 4px;
  height: 4px;
}
.cm-archive-grid .cm-archive-card--slot .cm-slot-card__thumb-frame::-webkit-scrollbar-thumb {
  background: rgba(47, 36, 29, 0.18);
  border-radius: 4px;
}
.cm-archive-grid .cm-archive-card--slot .cm-slot-card__thumb-frame .cm-brand-thumb--slot-tile {
  width: 100%;
  min-height: 100%;
  border: none !important;
  box-shadow: none !important;
  background: transparent !important;
}
.cm-archive-grid .cm-archive-card--slot .cm-slot-card__thumb-frame .cm-brand-thumb--slot-tile img {
  width: 100%;
  height: auto;
  max-height: none;
  object-fit: contain;
  object-position: center;
  padding: 4px !important;
}
.cm-archive-grid .cm-archive-card--slot .cm-slot-card__thumb-frame .cm-brand-thumb--slot-tile.cm-brand-thumb--initials {
  background: rgba(255, 255, 255, 0.5) !important;
}

/* Guides archive — editorial, reading-oriented */
.cm-archive-guides .cm-archive-intro {
  margin-top: 0;
  margin-bottom: var(--cm-space-lg, 24px);
  padding: var(--cm-space-lg, 24px);
  background: var(--cm-surface-soft);
  border: 1px solid var(--cm-border-soft);
  border-radius: var(--cm-radius);
}
.cm-archive-guides .cm-archive-intro__text {
  margin: 0;
  font-size: 1.0625rem;
  line-height: 1.7;
  opacity: .92;
  max-width: 56ch;
  color: var(--cm-color-text);
}

/* Guide card: editorial vertical layout — stronger hierarchy */
.cm-archive-guides .cm-card--guide {
  display: flex;
  flex-direction: column;
  gap: var(--cm-space-sm, 8px);
  padding: var(--cm-space-lg, 22px);
  background: var(--cm-color-bg);
  border: 1px solid var(--cm-border-subtle);
  border-radius: var(--cm-radius);
  box-shadow: var(--cm-shadow-card);
  transition: box-shadow .18s ease, border-color .18s ease;
  min-height: 0;
  overflow: hidden; /* clip preview image to card border-radius */
}
.cm-archive-guides .cm-card--guide:hover {
  box-shadow: var(--cm-shadow-section);
  border-color: var(--cm-border-strong);
}
.cm-archive-guides .cm-card--guide--has-preview .cm-card__preview.cm-feat-prev {
  order: -2;
  margin: calc(-1 * var(--cm-space-lg, 22px)) calc(-1 * var(--cm-space-lg, 22px)) var(--cm-space-sm, 8px);
  width: calc(100% + 2 * var(--cm-space-lg, 22px));
  max-width: none;
  align-self: stretch;
  border-radius: var(--cm-radius) var(--cm-radius) 0 0;
  height: var(--cm-arch-preview-h, 172px);
  max-height: var(--cm-arch-preview-h, 172px);
  border: none;
  border-bottom: 1px solid var(--cm-border-subtle);
  box-shadow: none;
  background: var(--cm-surface-soft);
}
.cm-archive-guides .cm-card--guide--has-preview .cm-card__preview .cm-feat-prev__frame {
  height: 100%;
  min-height: 100%;
}
.cm-archive-guides .cm-card--guide .cm-card__meta {
  order: -1;
  margin-bottom: var(--cm-space-xs, 4px);
}
.cm-archive-guides .cm-card--guide .cm-card__date {
  font-size: 12px;
  font-weight: 500;
  opacity: .7;
  color: var(--cm-color-text);
}
.cm-archive-guides .cm-card--guide .cm-card__title {
  margin: 0 0 var(--cm-space-xs, 4px);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.35;
  color: var(--cm-color-text);
}
.cm-archive-guides .cm-card--guide .cm-card__title a {
  text-decoration: none;
  color: inherit;
  transition: color .15s;
}
.cm-archive-guides .cm-card--guide .cm-card__title a:hover {
  color: var(--cm-cta);
}
.cm-archive-guides .cm-card--guide .cm-card__excerpt {
  margin: var(--cm-space-xs, 4px) 0 0;
  font-size: 14px;
  line-height: 1.6;
  opacity: .85;
  flex: 1;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.cm-archive-guides .cm-card--guide .cm-card__cta-link {
  margin-top: var(--cm-space-md, 12px);
  align-self: flex-start;
  height: 40px;
  padding: 0 20px;
  border-radius: var(--cm-radius);
  font-size: 13px;
  font-weight: 600;
  background: var(--cm-cta);
  border: 1px solid var(--cm-cta);
  color: var(--cm-btn-primary-text);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background .15s, border-color .15s;
}
.cm-archive-guides .cm-card--guide .cm-card__cta-link:hover {
  background: var(--cm-cta-hover);
  border-color: var(--cm-cta-hover);
}

/* Mobile: guides, news cards (+ slot provider text) */
@media (max-width: 767px) {
  .cm-archive-guides .cm-card--guide,
  .cm-archive-news .cm-news-card,
  .cm-news-grid .cm-news-card {
    padding: var(--cm-space-md, 16px);
  }
  /* Fix: preview negative-margin must match the reduced mobile padding (16px not 22px),
     otherwise the image bleeds 6px past the card edges and gets clipped by overflow-x:hidden */
  .cm-archive-guides .cm-card--guide--has-preview .cm-card__preview.cm-feat-prev {
    margin: calc(-1 * var(--cm-space-md, 16px)) calc(-1 * var(--cm-space-md, 16px)) var(--cm-space-sm, 8px);
    width: calc(100% + 2 * var(--cm-space-md, 16px));
  }
  .cm-archive-news .cm-news-card__media,
  .cm-news-grid .cm-news-card__media {
    margin: calc(-1 * var(--cm-space-md, 16px)) calc(-1 * var(--cm-space-md, 16px)) var(--cm-space-sm, 8px);
    width: calc(100% + 2 * var(--cm-space-md, 16px));
  }
  .cm-slot-card__provider {
    font-size: 10px;
  }
  .cm-archive-guides .cm-card--guide .cm-card__title,
  .cm-archive-news .cm-news-card__title,
  .cm-news-grid .cm-news-card__title {
    font-size: 15px;
  }
  .cm-archive-guides .cm-card--guide .cm-card__cta-link,
  .cm-archive-news .cm-news-card__cta,
  .cm-news-grid .cm-news-card__cta {
    width: 100%;
    justify-content: center;
  }
}
@media (min-width: 901px) {
  .cm-news-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}


/* Card row polish (title + layout + CTA) */
.cm-card--row{
  display:flex;
  gap:14px;
  align-items:center;
}

.cm-logo{
  flex:0 0 auto;
}

.cm-card__main{
  min-width:0; /* enables text truncation */
}

.cm-card__title a{
  display:block;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  max-width:100%;
}

.cm-card__cta{
  flex:0 0 auto;
  display:flex;
  gap:10px;
  align-items:center;
  justify-content:flex-end;
}

@media (max-width: 680px){
  .cm-card--row{
    align-items:flex-start;
  }
  .cm-card__cta{
    flex-direction:column;
    align-items:stretch;
  }
  .cm-card__cta .cm-compare__cta{
    width:100%;
  }
}


/* Compare table: name + logo */
.cm-tbl-name{
  display:inline-flex;
  align-items:center;
  gap:10px;
}
.cm-tbl-logo{
  width:26px;
  height:26px;
  border:1px solid var(--cm-border);
  border-radius:8px;
  overflow:hidden;
  background:var(--cm-surface);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
}
.cm-tbl-logo img{
  width:100%;
  height:100%;
  object-fit:contain;
}
.cm-tbl-logo--initials{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:10px;
  font-weight:700;
  letter-spacing:-.02em;
  color:var(--cm-text-muted);
  background:var(--cm-surface-soft);
}
.cm-tbl-logo--xs{width:20px;height:20px;font-size:8px;}
.cm-tbl-provider{display:inline-flex;align-items:center;gap:6px;}
.cm-tbl-provider a{color:inherit;text-decoration:none;}
.cm-tbl-provider a:hover{text-decoration:underline;color:var(--cm-cta);}

/* Chip with mini brand thumb */
.cm-chip--with-brand{display:inline-flex;align-items:center;gap:5px;}
.cm-chip--with-brand .cm-brand-thumb{margin-right:2px;}
.cm-chip--with-brand .cm-chip__label{text-decoration:none;color:inherit;}
.cm-chip--with-brand a.cm-chip__label:hover{text-decoration:underline;}

/* Slot related block title with provider thumb */
.cm-slot-related__block-title{display:inline-flex;align-items:center;gap:6px;}
.cm-slot-related__block-title a{color:inherit;text-decoration:none;}
.cm-slot-related__block-title a:hover{text-decoration:underline;color:var(--cm-cta);}

/* Compare table: rank */
.cm-tbl-rank{
  font-weight:700;
  opacity:.65;
  font-size:12px;
  letter-spacing:.2px;
}

/* Clean premium - card row layout */
.cm-card--row{
  display:flex;
  gap:14px;
  align-items:center;
}

.cm-card__main{ min-width:0; }
.cm-card__title a{
  display:block;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  max-width:100%;
}

.cm-badges{
  display:flex;
  flex-wrap:wrap;
  gap:5px 6px;
  margin-top:6px;
}

.cm-badge{
  display:inline-flex;
  align-items:center;
  padding:2px 7px;
  border:1px solid var(--cm-meta-chip-border);
  background:var(--cm-meta-chip-bg);
  border-radius:999px;
  font-size:var(--cm-meta-label-size);
  font-weight:600;
  letter-spacing:var(--cm-meta-label-track);
  text-transform:uppercase;
  color:var(--cm-meta-chip-text);
  line-height:1.35;
}

.cm-card__cta{
  margin-left:auto;
  display:flex;
  gap:10px;
  align-items:center;
  justify-content:flex-end;
  flex:0 0 auto;
}

/* Make CTAs consistent (table + cards) */
.cm-compare__cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  height:40px;
  padding:0 14px;
  border-radius:12px;
  border:1px solid var(--cm-border);
  font-weight:600;
  text-decoration:none;
  white-space:nowrap;
}

.cm-compare__cta--secondary{
  background:var(--cm-surface);
  color:var(--cm-text);
}

@media (max-width: 680px){
  .cm-card--row{ align-items:flex-start; }
  .cm-card__cta{
    flex-direction:column;
    align-items:stretch;
  }
  .cm-card__cta .cm-compare__cta{ width:100%; }
}


/* === Casinos archive card: layout fix (rank/rating/badges + CTA) === */
.cm-card--row{
  display:grid;
  grid-template-columns: 1fr auto;
  align-items:center;
  gap:16px;
}

.cm-card__main{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:10px;
}

/* Left meta block (rank/rating/badges) */
.cm-rank{ font-weight:700; opacity:.6; font-size:12px; }

.cm-rating{
  width:44px;
  height:44px;
  border-radius:999px;
  border:1px solid var(--cm-border);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:2px;
  line-height:1;
  font-weight:700;
}
.cm-rating small{ font-weight:600; opacity:.8; font-size:12px; }

.cm-badges{
  display:flex;
  flex-wrap:wrap;
  gap:5px 6px;
}
.cm-badge{
  display:inline-flex;
  align-items:center;
  padding:2px 7px;
  border:1px solid var(--cm-meta-chip-border);
  background:var(--cm-meta-chip-bg);
  border-radius:999px;
  font-size:var(--cm-meta-label-size);
  font-weight:600;
  letter-spacing:var(--cm-meta-label-track);
  text-transform:uppercase;
  color:var(--cm-meta-chip-text);
  line-height:1.35;
}

/* CTA block */
.cm-card__cta{
  display:flex;
  gap:10px;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
}

.cm-card__cta .cm-compare__cta{
  height:40px;
  padding:0 14px;
  border-radius:12px;
  font-weight:600;
}

/* Mobile: stack CTAs below */
@media (max-width: 680px){
  .cm-card--row{ grid-template-columns: 1fr; align-items:start; }
  .cm-card__cta{ justify-content:flex-start; }
  .cm-card__cta .cm-compare__cta{ width:100%; }
}


/* Single casino: "Explore more" spacing */
.cm-related{
  padding:22px !important;
}
.cm-related h2{
  margin:0 0 14px !important;
}
.cm-related .cm-pill{
  margin-bottom:10px;
}

/* Give air between embedded tables/blocks */
.cm-related .cm-compare{
  margin-top:14px;
}
.cm-related .cm-compare__title{
  margin:14px 0 10px;
}
.cm-related table{
  margin-top:10px;
}

/* Slightly roomier card sections (global safe) */
.cm-card{
  padding:18px;
}

/* Breadcrumbs */
.cm-breadcrumbs{
  font-size:14px;
  opacity:.75;
  margin:12px 0 18px;
}

.cm-breadcrumbs a{
  color:inherit;
  text-decoration:none;
}.cm-breadcrumbs a:hover{
  text-decoration:underline;
}.cm-breadcrumbs a:focus-visible{
  outline:2px solid var(--cm-border-focus);outline-offset:2px;border-radius:3px;
}

/* Single breadcrumb source: only .cm-breadcrumbs (header). Hide any duplicate Rank Math output. */
.rank-math-breadcrumb{display:none !important;}
.cm-breadcrumbs .rank-math-breadcrumb{display:block !important;}
/* If a second .cm-breadcrumbs exists (e.g. from block/shortcode), show only the first */
.cm-breadcrumbs ~ .cm-breadcrumbs{display:none !important;}

/* Prevent TT5 / block theme bleed: hide all block template parts when using CM PHP layout */
body.cm-layout .wp-block-template-part {
  display: none !important;
}
/* Hide any block search or duplicate header/nav (single source: header.php) */
body.cm-layout .wp-block-search,
body.cm-layout .wp-block-navigation {
  display: none !important;
}
/* Hide parent theme block parts that might inject header/footer via wp_body_open */
body.cm-layout .wp-block-template-part[data-block-name*="header"],
body.cm-layout .wp-block-template-part[data-block-name*="footer"] {
  display: none !important;
}
/* Duplicate CM header/drawer: show only the first instance */
body.cm-layout .cm-header ~ .cm-header,
body.cm-layout .cm-drawer-overlay ~ .cm-drawer-overlay,
body.cm-layout .cm-drawer ~ .cm-drawer {
  display: none !important;
}

/* Taxonomy hub templates */
.cm-term-hero{
  margin-bottom:24px;
}

.cm-term-hero h1{
  margin:0 0 8px;
  font-size:32px;
  line-height:1.2;
  max-width:800px;
}

.cm-term-subtitle{
  margin:0;
  font-size:18px;
  opacity:.8;
  max-width:800px;
}

.cm-term-intro{
  margin-bottom:28px;
  max-width:800px;
  line-height:1.6;
}

.cm-term-section{
  margin-top:32px;
}

.cm-term-section h2{
  margin:0 0 16px;
  font-size:24px;
}

.cm-term-viewall{
  margin-top:14px;
}

.cm-term-faq{
  margin-top:var(--cm-space-lg, 24px);
  padding:var(--cm-space-lg, 24px);
  background:var(--cm-surface);
  border:1px solid var(--cm-border-subtle);
  border-radius:var(--cm-radius);
}

/* Single casino & cards: improved spacing */
/* Section spacing */
.cm-container > section{
  margin-top:40px;
}

.cm-container > section:first-of-type{
  margin-top:0;
}

/* Card padding increase */
.cm-card{
  padding:20px;
}

/* Related section spacing */
.cm-related{
  padding:28px 24px !important;
  background:var(--cm-surface-soft);
  border:1px solid var(--cm-border-soft);
  border-radius:var(--cm-radius,16px);
  box-shadow:var(--cm-shadow-card,0 2px 8px rgba(17,17,17,.04));
}

.cm-related h2{
  margin-bottom:20px !important;
  font-size:1.5rem;
  font-weight:700;
  color:var(--cm-text);
  line-height:1.3;
}

/* Headings spacing */
.cm-card h2,
.cm-card h3,
.cm-container > section h2,
.cm-container > section h3{
  margin-bottom:14px;
}

/* Lists readability */
.cm-card ul,
.cm-card ol,
.cm-container > section ul,
.cm-container > section ol{
  line-height:1.7;
  margin-bottom:12px;
}

.cm-card li,
.cm-container > section li{
  margin-bottom:6px;
}

/* Reduce compression on mobile */
@media (max-width: 640px){
  .cm-container > section{
    margin-top:28px;
  }
  
  .cm-card{
    padding:18px;
  }
  
  .cm-related{
    padding:20px !important;
  }
  
  .cm-card h2,
  .cm-card h3,
  .cm-container > section h2,
  .cm-container > section h3{
    margin-bottom:12px;
  }
}

/* Explore more blocks */
.cm-explore{
  margin-top:40px;
  padding:28px 24px;
  background:var(--cm-surface-soft);
  border:1px solid var(--cm-border-soft);
  border-radius:var(--cm-radius,16px);
  box-shadow:var(--cm-shadow-card,0 2px 8px rgba(17,17,17,.04));
}
.cm-explore h2{
  margin:0 0 20px;
  font-size:1.5rem;
  font-weight:700;
  color:var(--cm-text);
  line-height:1.3;
}
.cm-explore__block{
  margin-bottom:24px;
}
.cm-explore__block:last-child{
  margin-bottom:0;
}
.cm-explore__block h3{
  margin:0 0 14px;
  font-size:18px;
  font-weight:700;
  color:var(--cm-text);
  line-height:1.4;
}
.cm-explore__list{
  list-style:none;
  margin:0;
  padding:0;
}
.cm-explore__item{
  margin-bottom:10px;
}
.cm-explore__item:last-child{
  margin-bottom:0;
}
.cm-explore__item a{
  color:var(--cm-text);
  text-decoration:none;
  font-size:15px;
  line-height:1.6;
  transition:color .2s;
}
.cm-explore__item a:hover{
  color:var(--cm-link);
  text-decoration:underline;
}

.cm-term-section .cm-explore{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:12px;
}

.cm-term-section .cm-explore .cm-chip{
  text-decoration:none;
}

/* ─── FAQ Accordion — unified premium component (casino review baseline) ─────
   Same structure everywhere: single-casino, single-bonus, single-payment_method,
   single-slot, hub-faq, term-faq. Calm borders, readable rhythm.
   ──────────────────────────────────────────────────────────────────────────── */
.cm-faq{
  display:flex;
  flex-direction:column;
  gap:12px;
}

.cm-faq__title{
  margin:0 0 12px;
  font-size:1.125rem;
  font-weight:800;
  line-height:1.3;
  color:var(--cm-text);
}

.cm-faq__items{
  display:flex;
  flex-direction:column;
  gap:8px;
}

.cm-faq-item{
  border:1px solid var(--cm-border-subtle);
  border-radius:var(--cm-radius-sm);
  background:var(--cm-surface);
  overflow:hidden;
  transition:border-color .15s;
}

.cm-faq-item:focus-within{
  border-color:var(--cm-border-soft);
}

.cm-faq-trigger{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:14px 16px;
  border:none;
  background:transparent;
  text-align:left;
  font:inherit;
  font-size:0.9375rem;
  font-weight:600;
  line-height:1.4;
  color:var(--cm-text);
  cursor:pointer;
  transition:background-color .15s;
}

.cm-faq-trigger:hover{
  background:var(--cm-soft);
}

.cm-faq-trigger:focus-visible{
  outline:2px solid var(--cm-accent-blue);
  outline-offset:2px;
}

.cm-faq-trigger[aria-expanded="true"]{
  background:var(--cm-soft);
}

.cm-faq-trigger__text{
  flex:1;
  min-width:0;
}

.cm-faq-trigger__icon{
  flex-shrink:0;
  width:20px;
  height:20px;
  position:relative;
  opacity:.6;
  transition:transform .2s ease,opacity .15s;
}

.cm-faq-trigger__icon::before,
.cm-faq-trigger__icon::after{
  content:'';
  position:absolute;
  top:50%;
  left:50%;
  transform:translate(-50%,-50%);
  background:currentColor;
  transition:transform .2s ease;
}

.cm-faq-trigger__icon::before{
  width:12px;
  height:2px;
}

.cm-faq-trigger__icon::after{
  width:2px;
  height:12px;
}

.cm-faq-trigger[aria-expanded="true"] .cm-faq-trigger__icon{
  opacity:.8;
}

.cm-faq-trigger[aria-expanded="true"] .cm-faq-trigger__icon::after{
  transform:translate(-50%,-50%) rotate(90deg);
  opacity:0;
}

.cm-faq-panel{
  max-height:0;
  overflow:hidden;
  transition:max-height .3s ease;
}

.cm-faq-panel[aria-hidden="false"]{
  max-height:2000px;
}

.cm-faq-panel__content{
  padding:0 16px 16px;
  font-size:0.9375rem;
  line-height:1.6;
  color:var(--cm-text-muted);
}

.cm-faq-panel__content p{
  margin:0 0 12px;
}

.cm-faq-panel__content p:last-child{
  margin-bottom:0;
}

.cm-faq-panel__content ul,
.cm-faq-panel__content ol{
  margin:12px 0;
  padding-left:20px;
}

.cm-faq-panel__content li{
  margin-bottom:6px;
}

/* ── Section wrappers: single pages + hub/term ─────────────────────────────── */
.cm-single-faq{
  margin-top:var(--cm-space-lg, 24px);
  padding-top:var(--cm-space-md, 16px);
  border-top:1px solid var(--cm-border-subtle);
}

.cm-hub-faq .cm-faq,
.cm-term-faq .cm-faq{
  gap:12px;
}

/* Mobile: slightly tighter spacing */
@media (max-width:767px){
  .cm-single-faq{
    margin-top:var(--cm-space-md, 16px);
    padding-top:var(--cm-space-md, 16px);
  }
  .cm-hub-faq{
    padding:var(--cm-space-md, 16px);
    margin-top:var(--cm-space-md, 16px);
  }
  .cm-term-faq{
    padding:var(--cm-space-md, 16px);
  }
  .cm-faq__items{
    gap:8px;
  }
  .cm-faq-trigger{
    padding:12px 14px;
    font-size:0.9375rem;
  }
  .cm-faq-panel__content{
    padding:0 14px 14px;
    font-size:0.9375rem;
  }
}

/* Legacy support: details/summary FAQ items (backward compat) */
.cm-faq-item summary{
  cursor:pointer;
  font-weight:600;
  padding:16px 18px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  list-style:none;
}

.cm-faq-item summary::-webkit-details-marker{display:none;}
.cm-faq-item summary::marker{content:none;}

.cm-faq-item summary::after{
  content:'';
  flex-shrink:0;
  width:20px;
  height:20px;
  position:relative;
  opacity:.6;
  transition:transform .2s ease,opacity .15s;
}

.cm-faq-item summary::after{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23333'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M19 9l-7 7-7-7'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:center;
  background-size:20px;
}

.cm-faq-item[open] summary::after{
  transform:rotate(180deg);
  opacity:.8;
}

.cm-faq-item__answer,
.cm-faq-answer{
  padding:0 16px 16px;
  margin-top:0;
  font-size:0.9375rem;
  line-height:1.6;
  color:var(--cm-text-muted);
}

.cm-faq-item__answer p,
.cm-faq-answer p{
  margin:0 0 12px;
}

.cm-faq-item__answer p:last-child,
.cm-faq-answer p:last-child{
  margin-bottom:0;
}

.cm-explore h2{
  margin:0 0 20px;
  font-size:24px;
}

.cm-explore__block{
  margin-bottom:24px;
}

.cm-explore__block h3{
  margin:0 0 12px;
  font-size:18px;
}

.cm-explore__list{
  list-style:none;
  margin:0;
  padding:0;
}

.cm-explore__item{
  margin-bottom:8px;
}

.cm-explore__item a{
  color:inherit;
  text-decoration:none;
  opacity:.85;
}

.cm-explore__item a:hover{
  opacity:1;
  text-decoration:underline;
}

/* ─── Filter Pills — reusable component (directory / filter-pills.php) ───── */
.cm-pills{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
}

.cm-pill{
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:6px 12px;
  min-height:34px;
  box-sizing:border-box;
  border-radius:999px;
  border:1px solid var(--cm-filter-pill-border);
  background:var(--cm-filter-pill-surface);
  text-decoration:none;
  font-size:13px;
  font-weight:600;
  line-height:1.2;
  color:var(--cm-text);
  cursor:pointer;
  transition:background-color .15s ease,border-color .15s ease,color .15s ease;
  white-space:nowrap;
  flex-shrink:0;
}

.cm-pill:hover{
  background:var(--cm-filter-pill-hover);
  border-color:rgba(200,186,172,.92);
  text-decoration:none;
}

.cm-pill:focus-visible{
  outline:2px solid var(--cm-border-focus);
  outline-offset:2px;
}

.cm-pill.is-active,
.cm-pill[aria-current="page"],
.cm-pill[aria-pressed="true"]{
  background:var(--cm-filter-pill-selected-bg);
  color:var(--cm-text);
  border-color:var(--cm-filter-pill-selected-bd);
  box-shadow:inset 0 0 0 1px var(--cm-filter-pill-selected-ring);
}

.cm-pill.is-active:hover,
.cm-pill[aria-current="page"]:hover,
.cm-pill[aria-pressed="true"]:hover{
  background:rgba(122,95,72,.12);
  border-color:rgba(110,86,66,.48);
}

.cm-pill__label{
  flex:0 1 auto;
}

.cm-pill__count{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:18px;
  height:18px;
  padding:0 5px;
  border-radius:999px;
  background:rgba(47,36,29,.08);
  font-size:10px;
  font-weight:700;
  line-height:1;
  flex-shrink:0;
  color:var(--cm-text-muted);
}

.cm-pill.is-active .cm-pill__count,
.cm-pill[aria-current="page"] .cm-pill__count,
.cm-pill[aria-pressed="true"] .cm-pill__count{
  background:rgba(110,86,66,.15);
  color:var(--cm-text);
}

/* Scrollable pills on mobile when item count is large */
.cm-pills--scrollable{
  flex-wrap:nowrap;
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:thin;
  scrollbar-color:rgba(0,0,0,.2) transparent;
  padding-bottom:4px;
}

.cm-pills--scrollable::-webkit-scrollbar{
  height:4px;
}

.cm-pills--scrollable::-webkit-scrollbar-track{
  background:transparent;
}

.cm-pills--scrollable::-webkit-scrollbar-thumb{
  background:rgba(0,0,0,.2);
  border-radius:2px;
}

.cm-pills--scrollable::-webkit-scrollbar-thumb:hover{
  background:rgba(0,0,0,.3);
}

@media (max-width:767px){
  .cm-pills{
    gap:7px 8px;
  }
  .cm-pill{
    padding:8px 14px;
    font-size:15px;
    font-weight:600;
    min-height:40px;
    gap:6px;
  }
  .cm-pill__count{
    min-width:20px;
    height:20px;
    padding:0 6px;
    font-size:11px;
    font-weight:700;
  }
}

/* ─── Tabs — reusable component ────────────────────────────────────────── */
.cm-tabs{
  display:flex;
  flex-direction:column;
  gap:0;
}

.cm-tabs__nav{
  display:flex;
  flex-wrap:wrap;
  gap:0;
  border-bottom:1px solid var(--cm-border-strong);
  margin-bottom:0;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}

.cm-tab-trigger{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:12px 20px;
  border:none;
  border-bottom:2px solid transparent;
  background:transparent;
  font:inherit;
  font-size:15px;
  font-weight:600;
  line-height:1.3;
  color:inherit;
  cursor:pointer;
  transition:color .15s,border-color .15s,background-color .15s;
  white-space:nowrap;
  flex-shrink:0;
  opacity:.75;
}

.cm-tab-trigger:hover{
  opacity:1;
  background:rgba(0,0,0,.02);
}

.cm-tab-trigger:focus-visible{
  outline:2px solid rgba(0,0,0,.3);
  outline-offset:-2px;
}

.cm-tab-trigger.is-active,
.cm-tab-trigger[aria-selected="true"]{
  opacity:1;
  color:var(--cm-text);
  border-bottom-color:var(--cm-text);
  background:transparent;
}

.cm-tab-trigger.is-active:hover,
.cm-tab-trigger[aria-selected="true"]:hover{
  background:rgba(0,0,0,.02);
}

.cm-tabs__panels{
  position:relative;
  min-height:0;
}

.cm-tab-panel{
  display:none;
  padding:20px 0 0;
  opacity:0;
  transition:opacity .2s ease;
}

.cm-tab-panel.is-active,
.cm-tab-panel[aria-hidden="false"]{
  display:block;
  opacity:1;
}

.cm-tab-panel[aria-hidden="true"]{
  display:none;
}

/* Mobile: tabs nav scrolls horizontally */
@media (max-width:767px){
  .cm-tabs__nav{
    gap:0;
    padding-bottom:0;
  }
  .cm-tab-trigger{
    padding:10px 16px;
    font-size:14px;
  }
  .cm-tab-panel{
    padding:16px 0 0;
  }
}

/* ===== CM Hub (Taxonomy) Layout ===== */
.cm-hub {
  max-width: 1100px;
  margin: 0 auto;
  padding: 40px 24px;
}

.cm-hub__breadcrumbs {
  margin-bottom: 16px;
  font-size: 14px;
  opacity: 0.75;
}

.cm-hub__title {
  margin: 0 0 8px;
  font-size: 48px;
  line-height: 1.1;
}

.cm-hub__subtitle {
  margin: 0 0 32px;
  font-size: 18px;
  opacity: 0.75;
  max-width: 70ch;
}

.cm-hub__section {
  margin-top: 40px;
}

.cm-hub__section-title {
  margin: 0 0 16px;
  font-size: 24px;
  line-height: 1.2;
}

.cm-hub__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

@media (max-width: 900px) {
  .cm-hub__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .cm-hub__grid { grid-template-columns: 1fr; }
  .cm-hub { padding: 28px 16px; }
  .cm-hub__title { font-size: 36px; }
}

/* Cards */
.cm-card {
  border: 1px solid var(--cm-border-subtle);
  border-radius: 16px;
  padding: 18px 18px;
  background: var(--cm-surface);
  box-shadow: var(--cm-shadow-card);
  transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}

@media (hover: hover) and (pointer: fine) {
  .cm-card:hover {
    transform: translateY(-1px);
    box-shadow: var(--cm-shadow-section);
    border-color: var(--cm-border-strong);
  }
}

.cm-card__title {
  margin: 0 0 8px;
  font-size: 18px;
}

.cm-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 10px;
}

.cm-card__actions {
  margin-top: 14px;
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

/* ============================================================
   CM BUTTON SYSTEM — single authoritative definition
   Usage:  class="cm-btn cm-btn--primary"
           class="cm-btn cm-btn--secondary"
           class="cm-btn cm-btn--ghost"   (alias for secondary)
           class="cm-btn cm-btn--sm"      (smaller pill)
   Mobile: add .cm-btn--full for full-width; or use .cm-btn-row
   ============================================================ */
.cm-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  height: 44px;
  padding: 0 20px;
  border-radius: 12px;
  border: 1.5px solid transparent;
  font-size: 15px;
  font-weight: 600;
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  box-sizing: border-box;
  transition: background .18s ease, border-color .18s ease, color .18s ease, box-shadow .18s ease;
}
.cm-btn:focus-visible {
  outline: 2px solid var(--cm-border-focus);
  outline-offset: 2px;
}
/* Primary: filled, charcoal */
.cm-btn--primary {
  background: var(--cm-btn-primary-bg);
  color: var(--cm-btn-primary-text) !important;
  border-color: var(--cm-btn-primary-bg);
}
.cm-btn--primary:hover { background: var(--cm-cta-hover); border-color: var(--cm-cta-hover); }

/* Secondary / Ghost: outline */
.cm-btn--secondary,
.cm-btn--ghost {
  background: transparent;
  color: var(--cm-text) !important;
  border-color: var(--cm-btn-secondary-border);
}
.cm-btn--secondary:hover,
.cm-btn--ghost:hover { background: var(--cm-btn-secondary-hover); border-color: var(--cm-border); }

/* Small variant */
.cm-btn--sm { height: 36px; padding: 0 14px; font-size: 13px; border-radius: 10px; }

/* Full-width helper (use on mobile wrappers or explicitly) */
.cm-btn--full { width: 100%; }

/* External link icon */
.cm-btn--external::after {
  content: "";
  width: 13px;
  height: 13px;
  display: inline-block;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2.2'%3E%3Cpath d='M14 3h7v7M10 14L21 3M21 14v7H3V3h7'/%3E%3C/svg%3E") no-repeat center/contain;
  flex-shrink: 0;
}

/* Row wrapper: stacks to column on mobile and stretches buttons */
.cm-btn-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

/* ---- Aliases: legacy classes resolve to cm-btn foundation ---- */
/* .cm-compare__cta (table/card CTAs) shares the same geometry */
.cm-compare__cta--btn,
.cm-compare__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  height: 40px;
  padding: 0 14px;
  border-radius: 12px;
  border: 1.5px solid rgba(0,0,0,.15);
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  box-sizing: border-box;
  transition: background .15s, border-color .15s;
}
/* .cm-single__cta (single casino/bonus hero) is a full cm-btn size */
.cm-single__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  height: 44px;
  padding: 0 20px;
  border-radius: 12px;
  border: 1.5px solid transparent;
  font-size: 15px;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  box-sizing: border-box;
  transition: background .15s, border-color .15s;
}

/* Mobile: .cm-btn-row stretches children to full width */
@media (max-width: 767px) {
  .cm-btn-row {
    gap: 12px;
  }
  .cm-btn-row--mobile-stack {
    flex-direction: column;
    align-items: stretch;
  }
  .cm-btn-row--mobile-stack .cm-btn,
  .cm-btn-row--mobile-stack .cm-single__cta {
    width: 100%;
    height: 48px;
    font-size: 16px;
    justify-content: center;
  }
  /* Standalone .cm-btn--full always fills container on mobile */
  .cm-btn--full {
    width: 100%;
    height: 48px;
    font-size: 16px;
  }
}

/* ============================================================
   === HUB & TAXONOMY PAGES — warm premium system
   === Shared tokens with homepage. Applies to:
   ===   - page-taxonomy-index.php  (/countries/, /providers/ …)
   ===   - taxonomy.php             (/countries/italy/ …)
   ============================================================ */

/* ── Hub design tokens: alias to cm tokens (single source) ── */
.cm-taxonomy-hub,
.cm-page--hub-index {
  --hub-bg:           var(--cm-bg);
  --hub-surface:      var(--cm-surface);
  --hub-surface-soft: var(--cm-surface-soft);
  --hub-border:       var(--cm-border);
  --hub-border-soft:  var(--cm-border-soft);
  --hub-text:         var(--cm-text);
  --hub-muted:        var(--cm-text-muted);
  --hub-accent-soft:  var(--cm-accent-soft);
  --hub-cta-dark:     var(--cm-cta);
  --hub-cta-hover:    var(--cm-cta-hover);
  --hub-btn-soft-bg:  var(--cm-btn-soft-bg);
  --hub-btn-soft-border: var(--cm-btn-soft-border);
  --hub-r-section:   var(--cm-radius);
  --hub-r-card:      var(--cm-radius);
  --hub-r-btn:       var(--cm-radius);
  --hub-r-pill:      var(--cm-radius-pill);
  --hub-shadow:      var(--cm-shadow-section);
  --hub-shadow-card: var(--cm-shadow-card);
}

/* ── Page wrapper ── */
.cm-container {
  max-width: min(980px, 100%);
  margin: 0 auto;
  padding: 32px 20px;
  box-sizing: border-box;
}
.cm-taxonomy-hub.cm-container,
.cm-page--hub-index {
  background: var(--hub-bg);
  padding: 28px 20px 48px;
}

/* Mobile/tablet: gutters + safe-area; single horizontal rhythm with inner cards (16px) */
@media (max-width: 767px) {
  .cm-container {
    padding-left: max(20px, env(safe-area-inset-left, 0px));
    padding-right: max(20px, env(safe-area-inset-right, 0px));
  }
}

.cm-breadcrumbs { margin: 0 0 16px; font-size: 13px; color: var(--hub-muted); }

/* Country flag emoji — shared stack so flags render outside display-only heading fonts */
.cm-country-flag {
  display: inline-block;
  flex-shrink: 0;
  font-style: normal;
  font-weight: normal;
  line-height: 1;
  letter-spacing: 0;
  text-transform: none;
  font-variant-emoji: emoji;
  font-family: "Segoe UI Emoji", "Apple Color Emoji", "Noto Color Emoji", "Twemoji Mozilla", sans-serif;
  opacity: 0.9;
  vertical-align: middle;
}
.cm-country-flag--hero {
  font-size: 0.88em;
  transform: translateY(0.04em);
  opacity: 0.88;
}
.cm-country-flag--topcard {
  font-size: 17px;
  opacity: 0.88;
}
.cm-country-flag--dir {
  font-size: 16px;
  opacity: 0.85;
}
.cm-country-flag--explore {
  font-size: 15px;
  opacity: 0.85;
}

/* ── Hub hero: white shell, warm gradient ── */
.cm-term-hero {
  margin: 0 0 20px;
  padding: 32px 32px 28px;
  background: linear-gradient(135deg, var(--cm-accent-soft) 0%, var(--cm-surface) 60%, var(--cm-accent-soft) 100%);
  border: 1px solid var(--hub-border);
  border-radius: var(--hub-r-section);
}
.cm-term-hero--with-brand {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 16px;
}
.cm-term-hero--with-brand .cm-brand-thumb {
  flex-shrink: 0;
}
.cm-term-hero--with-brand .cm-term-hero__text {
  flex: 1;
  min-width: 0;
}
.cm-term-hero h1,
.cm-term-hero .cm-term-hero__h1 {
  margin: 0 0 6px;
  font-size: clamp(22px, 4vw, 32px);
  font-weight: 700;
  line-height: 1.18;
  color: var(--hub-text);
  letter-spacing: -.02em;
}
.cm-term-hero__h1 {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.42em;
}
.cm-term-hero__h1-label {
  min-width: 0;
  flex: 1 1 auto;
}
.cm-term-subtitle,
.cm-subtitle {
  margin: 0 0 12px;
  font-size: 14px;
  line-height: 1.5;
  color: var(--hub-muted);
}
.cm-term__browseall {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin: 8px 0 0;
  font-size: 13px;
  font-weight: 600;
  color: var(--hub-cta-dark);
  text-decoration: none;
  background: var(--hub-btn-soft-bg);
  border: 1px solid var(--hub-btn-soft-border);
  border-radius: var(--hub-r-btn);
  padding: 6px 14px;
  transition: background .14s, border-color .14s;
}
.cm-term__browseall:hover {
  background: var(--hub-accent-soft);
  border-color: var(--cm-chip-border);
  text-decoration: none;
}
.cm-term-intro,
.cm-hub-intro {
  font-size: 14px;
  line-height: 1.6;
  color: var(--cm-text-muted);
}
.cm-term-intro p,
.cm-hub-intro p { margin: 0 0 10px; }
.cm-term-intro p:last-child,
.cm-hub-intro p:last-child { margin-bottom: 0; }

/* Hub index (/countries/, /providers/, …): supporting line under subtitle */
.cm-term-hero--hub-index .cm-term-subtitle {
  margin-bottom: 10px;
}
.cm-term-lede {
  margin: 0 0 14px;
  max-width: 62ch;
  font-size: 14px;
  line-height: 1.55;
  color: var(--hub-muted);
}
.cm-term-hero--hub-index .cm-term-lede:last-child {
  margin-bottom: 0;
}
.cm-term-hero--hub-index .cm-term-lede + .cm-term-intro {
  margin-top: 4px;
}

/* Full Directory: one-line context under H2 */
.cm-dir__hint {
  margin: -6px 0 16px;
  max-width: 68ch;
  font-size: 13px;
  line-height: 1.5;
  color: var(--hub-muted);
}
.cm-dir--list > h2 + .cm-dir__hint {
  margin-top: -4px;
}

/* ── Hub content sections: white shell ── */
.cm-term-section {
  margin: 16px 0 0;
  padding: 24px 26px 22px;
  background: var(--hub-surface);
  border: 1px solid var(--hub-border);
  border-radius: var(--hub-r-section);
  box-shadow: var(--hub-shadow);
}
.cm-term-section h2 {
  margin: 0 0 16px;
  font-size: clamp(18px, 2.5vw, 22px);
  font-weight: 700;
  line-height: 1.2;
  color: var(--hub-text);
  letter-spacing: -.015em;
}

/* ── Content grid inside sections ── */
.cm-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}
@media (max-width: 900px) { .cm-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .cm-grid { grid-template-columns: 1fr; } }

/* ── Hub cards (inside cm-term-section) ── */
.cm-term-section .cm-card {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 14px 16px 12px;
  background: var(--hub-surface-soft);
  border: 1px solid var(--hub-border-soft);
  border-radius: var(--hub-r-card);
  box-shadow: var(--hub-shadow-card);
  text-decoration: none;
  color: var(--hub-text);
  transition: box-shadow .16s;
}
.cm-term-section .cm-card:hover {
  box-shadow: var(--cm-shadow-section);
  text-decoration: none;
}
.cm-term-section .cm-card h3 {
  margin: 0;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.3;
  color: var(--hub-text);
}
.cm-term-section .cm-card p {
  margin: 0;
  font-size: 13px;
  line-height: 1.5;
  color: var(--hub-muted);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Country / taxonomy hub: casino listings use shared archive cards (brand thumb ~48px + excerpt). */
/* ── Hub taxonomy pages: casino grid ─────────────────────────────────────────
   Max 2 columns so each card has enough width for title + pills without clipping.
   Cards switch to a flex-wrap layout: [logo | title+meta] row, then preview +
   actions full-width below.
   ─────────────────────────────────────────────────────────────────────────── */
.cm-term-section .cm-term-hub-card-grid {
  align-items: stretch;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
@media (max-width: 767px) {
  .cm-term-section .cm-term-hub-card-grid {
    grid-template-columns: 1fr;
  }
}

/* Card shell: override the base 3-col grid row with a flex-wrap layout */
.cm-term-section .cm-term-hub-card-grid .cm-archive-card.cm-archive-card--casino {
  height: 100%;
  background: var(--hub-surface-soft);
  border-color: var(--hub-border-soft);
  box-shadow: var(--hub-shadow-card);
  /* Replace display:grid with flex-wrap so children stack naturally */
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 0;
  padding: 18px;
}
.cm-term-section .cm-term-hub-card-grid .cm-archive-card.cm-archive-card--casino:hover {
  border-color: var(--hub-border);
  box-shadow: var(--cm-shadow-section);
}

/* Logo: left of title row */
.cm-term-section .cm-term-hub-card-grid .cm-archive-card--casino .cm-archive-card__media {
  order: 1;
  width: 48px;
  min-width: 48px;
  flex-shrink: 0;
  margin-right: 13px;
  align-self: flex-start;
}
.cm-term-section .cm-term-hub-card-grid .cm-archive-card--casino .cm-brand-thumb img {
  object-fit: contain;
}

/* Main (title + meta + excerpt): right of logo, takes remaining width */
.cm-term-section .cm-term-hub-card-grid .cm-archive-card--casino .cm-archive-card__main {
  order: 2;
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 5px;
  align-self: center;
}

/* Title: wrap freely, no -webkit-line-clamp clip */
.cm-term-section .cm-term-hub-card-grid .cm-archive-card--casino .cm-archive-card__title {
  font-size: 15px;
  font-weight: 700;
  line-height: 1.3;
  display: block;
  -webkit-line-clamp: unset;
  overflow: visible;
  white-space: normal;
}
.cm-term-section .cm-term-hub-card-grid .cm-archive-card--casino .cm-archive-card__title a {
  display: block;
}

/* Pills: full label text, no ellipsis */
.cm-term-section .cm-term-hub-card-grid .cm-archive-card--casino .cm-archive-card__pill {
  max-width: none;
  overflow: visible;
  text-overflow: clip;
  white-space: nowrap;
}
.cm-term-section .cm-term-hub-card-grid .cm-archive-card--casino .cm-archive-card__meta {
  flex-wrap: wrap;
  gap: 4px 6px;
}

/* Screenshot preview: full-width row below logo+title */
.cm-term-section .cm-term-hub-card-grid .cm-archive-card--casino .cm-archive-card__preview {
  order: 3;
  width: 100%;
  flex: 0 0 100%;
  margin-top: 14px;
}

/* Actions: full-width row at the bottom, buttons share the space */
.cm-term-section .cm-term-hub-card-grid .cm-archive-card--casino .cm-archive-card__actions {
  order: 4;
  width: 100%;
  flex: 0 0 100%;
  display: flex;
  flex-direction: row;
  gap: 8px;
  margin-top: 12px;
  justify-self: unset;
  align-self: unset;
}
.cm-term-section .cm-term-hub-card-grid .cm-archive-card--casino .cm-archive-card__actions .cm-archive-card__btn {
  flex: 1;
  justify-content: center;
}

/* Empty state */
.cm-term-empty {
  color: var(--hub-muted);
  font-size: 14px;
  margin: 0;
}

/* ── Explore section ── */
.cm-explore {
  margin: 16px 0 0;
  padding: 22px 26px 22px;
  background: var(--hub-surface);
  border: 1px solid var(--hub-border);
  border-radius: var(--hub-r-section);
  box-shadow: var(--hub-shadow);
}
.cm-explore h2 {
  margin: 0 0 12px;
  font-size: 18px;
  font-weight: 700;
  color: var(--hub-text);
  letter-spacing: -.01em;
}
.cm-explore__hubs {
  margin: 0 0 14px;
  font-size: 14px;
  line-height: 1.7;
  color: var(--hub-muted);
}
.cm-explore__hubs a {
  color: var(--hub-text);
  font-weight: 500;
  text-decoration: none;
}
.cm-explore__hubs a:hover { text-decoration: underline; }

/* Related terms grid inside explore */
.cm-explore .cm-card {
  display: flex;
  align-items: center;
  padding: 12px 14px;
  background: var(--hub-surface-soft);
  border: 1px solid var(--hub-border-soft);
  border-radius: var(--hub-r-card);
  text-decoration: none;
  color: var(--hub-text);
  font-size: 14px;
  font-weight: 500;
  transition: background .14s, box-shadow .14s;
}
.cm-explore .cm-card:hover {
  background: var(--hub-accent-soft);
  box-shadow: var(--cm-shadow-card);
  text-decoration: none;
}
.cm-explore .cm-card h3 {
  margin: 0;
  font-size: 14px;
  font-weight: 500;
}
.cm-explore-card__h3 {
  display: flex;
  align-items: center;
  gap: 0.38em;
  min-width: 0;
}
.cm-explore-card__title-text {
  min-width: 0;
}
.cm-explore-card--country .cm-explore-card__title-text {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.cm-explore-card--with-brand {
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
}
.cm-explore-card--with-brand .cm-brand-thumb {
  flex-shrink: 0;
}

/* ── Directory (hub index) section shells ── */
.cm-dir {
  margin: 14px 0 0;
  padding: 24px 26px 22px;
  background: var(--hub-surface);
  border: 1px solid var(--hub-border);
  border-radius: var(--hub-r-section);
  box-shadow: var(--hub-shadow);
}
.cm-page--hub-index .cm-dir--top {
  margin-top: 12px;
}
.cm-dir h2 {
  margin: 0 0 14px;
  font-size: clamp(18px, 2.5vw, 22px);
  font-weight: 700;
  color: var(--hub-text);
  letter-spacing: -.015em;
}

/* Top picks grid: 3-col desktop, 2-col tablet, 1-col mobile */
.cm-topgrid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}
@media (max-width: 900px) { .cm-topgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .cm-topgrid { grid-template-columns: 1fr; } }

/* Top pick card */
.cm-topcard {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  padding: 14px 16px;
  background: var(--hub-surface-soft);
  border: 1px solid var(--hub-border-soft);
  border-radius: var(--hub-r-card);
  box-shadow: var(--hub-shadow-card);
  text-decoration: none;
  color: var(--hub-text);
  transition: box-shadow 0.15s ease, border-color 0.15s ease, transform 0.12s ease;
}
.cm-topcard:hover {
  border-color: var(--cm-chip-border);
  box-shadow: 0 4px 14px rgba(17, 17, 17, 0.08);
  transform: translateY(-1px);
  text-decoration: none;
}
.cm-topcard:active {
  transform: translateY(0);
}
.cm-topcard--provider {
  align-items: center;
}
.cm-topcard--provider .cm-topcard__thumb {
  flex-shrink: 0;
}
.cm-topcard--provider .cm-topcard__left {
  flex: 1;
  min-width: 0;
}
.cm-page--hub-index .cm-topcard--provider .cm-topcard__title {
  align-items: flex-start;
}
.cm-page--hub-index .cm-topcard--provider .cm-brand-thumb.cm-topcard__thumb {
  width: 48px;
  height: 48px;
  min-width: 48px;
  min-height: 48px;
}
@media (min-width: 901px) {
  .cm-page--hub-index .cm-topcard--provider .cm-brand-thumb.cm-topcard__thumb {
    width: 56px;
    height: 56px;
    min-width: 56px;
    min-height: 56px;
  }
}
@media (max-width: 600px) {
  .cm-page--hub-index .cm-topcard--provider .cm-brand-thumb.cm-topcard__thumb {
    width: 44px;
    height: 44px;
    min-width: 44px;
    min-height: 44px;
  }
}
.cm-topcard__left { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.cm-topcard__title {
  display: flex;
  align-items: center;
  gap: 0.38em;
  min-width: 0;
  font-size: 15px;
  font-weight: 600;
  color: var(--hub-text);
}
.cm-topcard__title-text {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.cm-page--hub-index .cm-topcard--provider .cm-topcard__title-text {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  white-space: normal;
  text-overflow: clip;
  line-height: 1.28;
  word-break: break-word;
}
.cm-topcard--country .cm-topcard__left {
  flex: 1;
}
.cm-topcard__count { font-size: 12px; color: var(--hub-muted); }
.cm-topcard__cta {
  flex-shrink: 0;
  font-size: 12px;
  font-weight: 600;
  color: var(--hub-cta-dark);
  background: var(--hub-btn-soft-bg);
  border: 1px solid var(--hub-btn-soft-border);
  border-radius: var(--hub-r-btn);
  padding: 5px 12px;
}
.cm-topcard:hover .cm-topcard__cta {
  background: var(--hub-accent-soft);
  border-color: var(--cm-chip-border);
}
@media (max-width: 600px) {
  .cm-topcard { flex-direction: row; flex-wrap: wrap; gap: 8px; }
  .cm-topcard__cta { padding: 5px 10px; font-size: 12px; }
}
/* Narrow top pick row: let CTA drop so title + count keep space (hub index). */
@media (max-width: 560px) {
  .cm-page--hub-index .cm-topcard--provider {
    align-items: flex-start;
  }
  .cm-page--hub-index .cm-topcard--provider .cm-topcard__cta {
    flex: 1 1 100%;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    text-align: center;
    margin-top: 2px;
  }
}

/* Directory toolbar: search + A–Z */
.cm-dir__toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
  margin-bottom: 20px;
}
.cm-dir__search {
  flex: 1 1 200px;
  min-width: 180px;
  height: 40px;
  padding: 0 14px;
  border: 1px solid var(--hub-border);
  border-radius: var(--hub-r-pill);
  background: var(--hub-surface-soft);
  font-size: 14px;
  color: var(--hub-text);
  outline: none;
  transition: border-color .14s, box-shadow .14s;
}
.cm-dir__search:focus {
  border-color: var(--cm-chip-border);
  box-shadow: 0 0 0 3px rgba(244,181,68,.12);
}
.cm-dir__az { display: flex; flex-wrap: wrap; gap: 6px; }
.cm-dir__az-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 32px;
  padding: 5px 8px;
  border-radius: 999px;
  border: 1px solid var(--hub-border-soft);
  background: var(--hub-surface-soft);
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
  color: var(--hub-text);
  transition: background .13s, border-color .13s;
}
.cm-dir__az-pill:hover {
  background: var(--hub-accent-soft);
  border-color: var(--cm-chip-border);
  text-decoration: none;
}
.cm-dir__az-pill--hidden { display: none !important; }

/* Directory A–Z grouped list */
.cm-dir__groups { margin-top: 4px; }
.cm-dir__group { margin-bottom: 24px; }
.cm-dir__group--hidden { display: none !important; }
.cm-dir__letter {
  margin: 0 0 10px;
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--hub-muted);
}
/* Full Directory: 2-col mobile, 3-col desktop; card-style links (no JS) */
.cm-dir__items {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
@media (min-width: 901px) {
  .cm-dir__items {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px 14px;
  }
}

.cm-dir__item {
  display: flex;
  align-items: center;
  box-sizing: border-box;
  min-height: 48px;
  padding: 12px 14px;
  border-radius: var(--hub-r-card);
  border: 1px solid var(--hub-border-soft);
  background: var(--hub-surface-soft);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.55) inset, 0 1px 2px rgba(17, 17, 17, 0.05);
  text-decoration: none;
  font-size: 14px;
  font-weight: 600;
  color: var(--hub-text);
  transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease, transform 0.12s ease, color 0.15s ease;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.cm-dir__item--provider,
.cm-dir__item--country {
  gap: 10px;
  min-height: 52px;
}
.cm-dir__item--provider .cm-dir__item__thumb {
  flex-shrink: 0;
}
.cm-page--hub-index .cm-dir__item--provider .cm-brand-thumb.cm-dir__item__thumb {
  width: 44px;
  height: 44px;
  min-width: 44px;
  min-height: 44px;
}
@media (min-width: 601px) {
  .cm-page--hub-index .cm-dir__item--provider .cm-brand-thumb.cm-dir__item__thumb {
    width: 48px;
    height: 48px;
    min-width: 48px;
    min-height: 48px;
  }
}
@media (min-width: 901px) {
  .cm-page--hub-index .cm-dir__item--provider .cm-brand-thumb.cm-dir__item__thumb {
    width: 52px;
    height: 52px;
    min-width: 52px;
    min-height: 52px;
  }
}
.cm-dir__item__label {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.cm-page--hub-index .cm-dir__item--provider {
  align-items: flex-start;
}
.cm-page--hub-index .cm-dir__item--provider .cm-dir__item__label {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  white-space: normal;
  line-height: 1.3;
  word-break: break-word;
}
.cm-dir__item:hover {
  background: var(--hub-accent-soft);
  border-color: var(--cm-chip-border);
  box-shadow: 0 2px 12px rgba(17, 17, 17, 0.08);
  transform: translateY(-1px);
  text-decoration: none;
  color: var(--hub-text);
}
.cm-dir__item:active {
  transform: translateY(0);
  box-shadow: 0 1px 4px rgba(17, 17, 17, 0.06);
}
.cm-dir__item:focus-visible {
  outline: 2px solid var(--cm-chip-border);
  outline-offset: 2px;
}
.cm-dir__item--hidden { display: none !important; }

/* Hub index mobile: tighter vertical rhythm, less dead air before footer */
@media (max-width: 767px) {
  .cm-page--hub-index {
    padding-top: 18px;
    padding-bottom: 28px;
  }
  .cm-term-hero--hub-index {
    margin-bottom: 10px;
    padding: 20px 18px 18px;
  }
  .cm-term-hero--hub-index h1 {
    font-size: clamp(20px, 5.5vw, 28px);
  }
  .cm-term-lede {
    font-size: 13px;
    margin-bottom: 10px;
  }
  .cm-page--hub-index .cm-dir {
    margin-top: 10px;
  }
  .cm-page--hub-index .cm-dir--top {
    margin-top: 8px;
  }
  .cm-dir__toolbar {
    margin-bottom: 14px;
  }
  .cm-dir__hint {
    margin: -2px 0 12px;
    font-size: 12px;
  }
}

/* Mobile hub page adjustments */
@media (max-width: 600px) {
  .cm-taxonomy-hub.cm-container,
  .cm-page--hub-index {
    padding-left: max(16px, env(safe-area-inset-left, 0px));
    padding-right: max(16px, env(safe-area-inset-right, 0px));
  }
  .cm-term-hero {
    padding: 24px 20px 20px;
    border-radius: 16px;
  }
  .cm-term-hero--hub-index {
    padding: 18px 16px 16px;
  }
  .cm-term-section,
  .cm-explore,
  .cm-dir {
    padding: 20px 20px 18px;
    border-radius: var(--cm-radius);
    margin-top: 12px;
  }
  .cm-page--hub-index .cm-dir {
    padding: 16px 16px 16px;
  }
  .cm-term-section h2,
  .cm-dir h2 {
    font-size: 18px;
    margin-bottom: 10px;
  }
  .cm-topcard {
    padding: 14px 16px;
  }
  .cm-dir__search {
    min-width: 0;
    width: 100%;
  }
}

/* ============================================================
   === MOBILE DRAWER SYSTEM
   === Drawer overlay and slide-in menu for mobile
   ============================================================ */

/* ── Desktop (≥769px): inline search visible, burger hidden ─ */
@media (min-width: 768px) {
  .cm-nav { display: flex !important; }
  .cm-header__search--desktop { display: flex !important; gap: 8px; align-items: center; }
  .cm-header__right { display: flex; gap: 8px; align-items: center; }
  .cm-burger { display: none !important; }
}

/* ── Tablet / narrow desktop (769–900px): keep desktop layout ───────────────
   Nav still visible; no burger needed in this range.
   Search input collapses to icon-only to save space.
   ──────────────────────────────────────────────────────────────────────────── */
@media (min-width: 768px) and (max-width: 900px) {
  .cm-header__search--desktop .cm-search__input { min-width: 140px; }
  .cm-nav { gap: 10px; }
  .cm-nav a { font-size: 13px; }
}

/* ============================================================
   MOBILE HEADER (≤768px) — logo | burger (no mobile search overlay; baseline reset)
   ============================================================ */
@media (max-width: 767px) {
  .cm-header__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: nowrap;
    padding: 12px max(20px, env(safe-area-inset-right, 0px)) 12px max(20px, env(safe-area-inset-left, 0px));
    gap: 12px;
    min-height: 56px;
    box-sizing: border-box;
  }

  .cm-brand {
    min-width: 0;
    flex-shrink: 1;
    gap: 10px;
  }

  .cm-brand__logo-img {
    height: 32px;
    max-height: 36px;
    width: auto;
    max-width: 140px;
    object-fit: contain;
    flex-shrink: 0;
  }
  .cm-brand__name {
    font-size: 0.9375rem;
    font-weight: 700;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  @media (max-width: 400px) {
    .cm-brand__name { display: none; }
    .cm-brand__logo-img { max-width: 120px; }
  }
  @media (max-width: 360px) {
    .cm-brand__logo-img { height: 28px; max-height: 32px; max-width: 100px; }
  }

  .cm-nav { display: none !important; }
  .cm-header__search--desktop { display: none !important; }

  .cm-header__right {
    display: flex !important;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
    visibility: visible !important;
  }

  .cm-burger {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 44px;
    min-width: 44px;
    height: 44px;
    padding: 0;
    border: 1px solid var(--cm-border-subtle);
    border-radius: var(--cm-radius);
    background: var(--cm-surface);
    cursor: pointer;
    font-size: 1.2rem;
    flex-shrink: 0;
    color: inherit;
    line-height: 1;
    box-sizing: border-box;
    -webkit-tap-highlight-color: transparent;
  }
  .cm-burger:hover { background: var(--cm-soft); }
  .cm-burger:focus-visible {
    outline: 2px solid var(--cm-border-focus);
    outline-offset: 2px;
  }
  .cm-burger .cm-burger__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    font-size: 1.25rem;
  }
}

/* Visually hidden labels (header search, etc.) — WP-compatible + !important vs theme bleed */
.screen-reader-text,
.cm-header .screen-reader-text,
.cm-search .screen-reader-text {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
  word-wrap: normal !important;
}

/* ============================================================
   MOBILE DRAWER: clean premium UX
   Single off-canvas nav; desktop header unchanged.
   ============================================================ */

/* Drawer overlay — visibility driven only by .is-open (avoids aria/data-open/CSS order bugs) */
#cm-drawer-overlay {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  position: fixed !important;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  float: none !important;
  background: var(--cm-overlay);
  z-index: var(--z-overlay);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
  transition: opacity .25s, visibility .25s;
}
#cm-drawer-overlay:not(.is-open) {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  display: none !important;
}
#cm-drawer-overlay.is-open {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  display: block !important;
}

/* Drawer panel — slides in from right; off-canvas when closed (not .is-open) */
#cm-drawer {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  position: fixed !important;
  top: 0;
  right: 0;
  bottom: 0;
  left: auto;
  width: min(88%, 360px);
  max-width: 100%;
  margin: 0 !important;
  float: none !important;
  overflow-x: hidden;
  box-sizing: border-box;
  background: var(--cm-surface);
  z-index: var(--z-drawer);
  flex-direction: column;
  padding: 0;
  margin: 0;
  transform: translateX(100%);
  transition: transform 0.28s cubic-bezier(.32, .72, 0, 1), opacity .25s, visibility .25s;
  box-shadow: var(--cm-shadow-drawer);
  border-left: 1px solid var(--cm-border-subtle);
  border-radius: 14px 0 0 14px;
  font-family: inherit;
  font-size: 16px;
  line-height: 1.45;
}
#cm-drawer:not(.is-open) {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  display: none !important;
}
#cm-drawer.is-open {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  display: flex !important;
  transform: translateX(0) !important;
}

body.cm-menu-open,
body.cm-scroll-lock { overflow: hidden; }

@media (max-width: 767px) {
  /* Prevent horizontal scroll when fixed layers or wide children mis-measure */
  body.cm-layout {
    overflow-x: hidden;
  }
}

/* Top bar: brand + close (single row) */
.cm-drawer__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-shrink: 0;
  min-height: 52px;
  padding: 12px 12px 12px 18px;
  border-bottom: 1px solid var(--cm-border-subtle);
  background: var(--cm-surface);
}
.cm-drawer__brand {
  min-width: 0;
  flex: 1;
}

/* Close — 44px touch target, rounded control */
.cm-drawer__close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid var(--cm-border-subtle);
  border-radius: 10px;
  background: var(--cm-soft);
  cursor: pointer;
  font-size: 22px;
  line-height: 1;
  color: inherit;
  transition: background .15s ease, opacity .15s ease;
}
.cm-drawer__close > span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}
.cm-drawer__close:hover { background: var(--cm-soft-hover); opacity: 1; }

.cm-drawer__logo {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  text-decoration: none;
  color: inherit;
  margin: 0;
  line-height: 1;
}
.cm-drawer__logo:hover {
  opacity: .88;
}
.cm-drawer__logo-img {
  display: block;
  height: 28px;
  max-height: 32px;
  width: auto;
  max-width: 160px;
  object-fit: contain;
  image-rendering: -webkit-optimize-contrast;
  image-rendering: crisp-edges;
}
.cm-drawer__logo--text {
  font-weight: 700;
  font-size: 1.05rem;
  letter-spacing: -0.02em;
  line-height: 1.2;
}

/* Nav list — touch-friendly (min 48px), clean spacing */
.cm-drawer__nav {
  list-style: none;
  margin: 0;
  padding: 0;
}
.cm-drawer__groups .cm-drawer__nav {
  flex: none;
}
.cm-drawer__nav li {
  margin: 0;
  border-bottom: 1px solid var(--cm-border-subtle);
}
.cm-drawer__nav li:last-child {
  border-bottom: none;
}
.cm-drawer__nav a {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 48px;
  padding: 14px 20px;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.4;
  text-decoration: none;
  color: inherit;
  transition: background .15s ease;
}
.cm-drawer__nav a:hover {
  background: var(--cm-soft);
}
.cm-drawer__nav a:active {
  background: var(--cm-soft-hover);
}

/* Drawer grouped sections: Content + Hubs */
.cm-drawer__groups {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
  padding: 8px 0 8px;
}
.cm-drawer__group {
  margin: 0;
  padding: 0;
}
.cm-drawer__group-title {
  margin: 0;
  padding: 16px 20px 8px;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .06em;
  opacity: .72;
  color: inherit;
}
.cm-drawer__group + .cm-drawer__group {
  margin-top: 0;
  padding-top: 10px;
  border-top: 1px solid var(--cm-border-subtle);
}

/* Discovery nav: card rows (mobile menu) */
.cm-drawer__group--discover {
  padding: 0 14px 12px;
}
.cm-drawer__group--discover .cm-drawer__group-title {
  padding: 14px 4px 10px;
  font-size: 8px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  opacity: 0.42;
  color: var(--cm-text-muted);
}
.cm-drawer__group-title--section.cm-drawer__group-title {
  font-size: 8px;
  letter-spacing: 0.18em;
}
.cm-drawer__group-title--hubs {
  opacity: 0.38;
  letter-spacing: 0.17em;
}
.cm-drawer__discover {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.cm-drawer__discover-item {
  margin: 0;
  padding: 0;
  border: none;
}
.cm-drawer__discover-card {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-height: 56px;
  padding: 14px 16px;
  text-decoration: none;
  color: inherit;
  background: var(--cm-surface-soft);
  border: 1px solid var(--cm-border-soft);
  border-radius: 12px;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.65) inset, 0 1px 3px rgba(17, 17, 17, 0.04);
  transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease, transform 0.12s ease;
  -webkit-tap-highlight-color: transparent;
}
.cm-drawer__discover-card:hover {
  background: var(--cm-soft);
  border-color: var(--cm-border-subtle);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.5) inset, 0 2px 8px rgba(17, 17, 17, 0.06);
}
.cm-drawer__discover-card:active {
  background: rgba(47, 36, 29, 0.07);
  border-color: rgba(47, 36, 29, 0.1);
  transform: scale(0.99);
}
.cm-drawer__discover-card__main {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 10px;
  min-width: 0;
  flex: 1;
}
.cm-drawer__discover-card__icon {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  line-height: 1;
  border-radius: 8px;
  background: rgba(0, 0, 0, 0.04);
}
.cm-drawer__discover-card__body {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}
.cm-drawer__discover-card__title {
  display: block;
  font-size: 15px;
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1.25;
  color: var(--cm-text);
}
.cm-drawer__discover-card__preview {
  font-size: 12px;
  font-weight: 400;
  line-height: 1.45;
  color: var(--cm-text-muted);
  opacity: 0.72;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}
.cm-drawer__discover-card__count {
  flex-shrink: 0;
  align-self: center;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: var(--cm-text-muted);
  padding: 4px 8px;
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.05);
  border: 1px solid var(--cm-border-subtle);
}
.cm-drawer__discover--hubs {
  gap: 14px;
}
.cm-drawer__discover-card--hub {
  min-height: 52px;
  padding: 12px 14px;
  border-radius: 10px;
}
.cm-drawer__discover-card--hub .cm-drawer__discover-card__icon {
  width: 26px;
  height: 26px;
  font-size: 1rem;
  border-radius: 7px;
}
.cm-drawer__discover-card--hub .cm-drawer__discover-card__title {
  font-size: 14px;
  font-weight: 800;
}
.cm-drawer__discover-card--hub .cm-drawer__discover-card__preview {
  font-size: 12px;
  font-weight: 400;
  opacity: 0.72;
  -webkit-line-clamp: 2;
}
.cm-drawer__discover-card--hub .cm-drawer__discover-card__count {
  font-size: 10px;
  padding: 3px 7px;
}
.cm-drawer__group--hubs {
  padding-bottom: 10px;
}

/* Optional footer strip */
.cm-drawer__footer {
  flex-shrink: 0;
  padding: 14px 20px 18px;
  border-top: 1px solid var(--cm-border-subtle);
  background: var(--cm-surface);
}
.cm-drawer__footer-link {
  display: inline-flex;
  align-items: center;
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--cm-accent);
  text-decoration: none;
}
.cm-drawer__footer-link:hover {
  text-decoration: underline;
}

/* Only show drawer on mobile; desktop uses .cm-nav (single nav/search UI per breakpoint) */
@media (min-width: 768px) {
  #cm-drawer,
  #cm-drawer.is-open,
  #cm-drawer-overlay,
  #cm-drawer-overlay.is-open,
  .cm-drawer,
  .cm-drawer-overlay {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }
}
/* Closed drawer: [hidden] only when not open (.is-open must never lose to this rule) */
#cm-drawer[hidden]:not(.is-open),
#cm-drawer-overlay[hidden]:not(.is-open) {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

/* ============================================================
   MOBILE UI: /casinos/ PAGE — clean premium (<=768px)
   Stacked cards, normalized headings/spacing, consistent CTAs.
   No desktop regression; CSS only.
   ============================================================ */

@media (max-width: 767px) {
  /* — Shorter header/search area (casinos archive only) — */
  body.post-type-archive-casino .cm-container {
    padding-top: 12px;
  }
  body.post-type-archive-casino .cm-archive-header {
    margin-bottom: 10px;
  }
  body.post-type-archive-casino .cm-archive-title {
    margin-bottom: 4px;
  }
  body.post-type-archive-casino .cm-archive-subtitle {
    margin-bottom: 0;
  }

  /* — Hide "Top Casinos in Italy" on mobile to avoid duplicating list — */
  .cm-archive-top--featured {
    display: none !important;
  }

  /* — Compare table: stacked cards (thead hidden, tr = card) — */
  .cm-compare__wrap {
    overflow: visible;
    padding: 0;
    margin: 0;
    border: none;
    background: transparent;
  }
  .cm-compare__table {
    min-width: 0;
    display: block;
  }
  .cm-compare__table thead {
    display: none;
  }
  .cm-compare__table tbody {
    display: block;
  }
  .cm-compare__table tbody tr {
    display: block;
    border: 1px solid var(--cm-border-subtle);
    border-radius: var(--cm-radius);
    padding: 12px 14px;
    margin-bottom: 10px;
    background: var(--cm-surface);
    box-shadow: 0 1px 0 rgba(47, 36, 29, .05), 0 2px 10px rgba(47, 36, 29, .042);
  }
  .cm-compare__table tbody tr:last-child {
    margin-bottom: 0;
  }
  .cm-compare__table tbody td {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 10px;
    padding: 6px 0;
    border: none;
    white-space: normal;
  }
  .cm-compare__table tbody td:first-child {
    display: none;
  }
  .cm-compare__table tbody td:nth-child(2) {
    display: block;
    padding-bottom: 8px;
    font-weight: 600;
    font-size: 15px;
    line-height: 1.3;
  }
  .cm-compare__table tbody td:nth-child(3),
  .cm-compare__table tbody td:nth-child(4) {
    padding: 4px 0;
    font-size: 13px;
    opacity: .85;
  }
  .cm-compare__table tbody td:last-child {
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 10px;
    padding-top: 12px;
    margin-top: 4px;
    border-top: 1px solid rgba(0,0,0,.06);
  }
  .cm-compare__table tbody td:last-child .cm-compare__cta,
  .cm-compare__table tbody td:last-child .cm-compare__cta--btn {
    height: 40px;
    min-height: 40px;
    padding: 0 14px;
    font-size: 13px;
    font-weight: 600;
    border-radius: var(--cm-radius-sm, 8px);
    flex: 1 1 auto;
    min-width: 120px;
    max-width: 100%;
    justify-content: center;
    box-shadow: none;
  }

  /* — Headings: reduced size, normalized spacing — */
  .cm-archive-header {
    margin-bottom: 16px;
    padding-bottom: 0;
  }
  .cm-archive-title {
    font-size: clamp(24px, 5.5vw, 32px);
    line-height: 1.2;
    margin-bottom: 6px;
  }
  .cm-archive-subtitle {
    font-size: 14px;
    margin-bottom: 0;
    line-height: 1.5;
  }
  .cm-term-section h2,
  .cm-compare__title {
    font-size: clamp(18px, 4.5vw, 22px);
    line-height: 1.25;
    margin-bottom: 12px;
  }

  /* — Section spacing: consistent rhythm — */
  .cm-archive-top {
    margin-bottom: 20px;
  }
  .cm-filters {
    margin-bottom: 20px;
  }
  .cm-filters__form {
    gap: 12px;
  }
  .cm-resultsbar {
    margin-bottom: 16px;
    gap: 12px;
  }
  .cm-grid {
    gap: 14px;
    margin-bottom: 20px;
  }
  .cm-pagination {
    margin-top: 20px;
    margin-bottom: 20px;
    gap: 10px;
  }
  .cm-card.cm-dir {
    margin-top: 20px;
    padding: 16px;
  }
  .cm-hub-intro {
    margin-top: 20px;
    padding: 16px;
  }

  /* — Cards: comfortable inner padding, aligned badges, clean title/meta — */
  .cm-card {
    padding: 15px 16px;
    border-radius: var(--cm-radius);
    box-shadow: var(--cm-shadow-card);
  }
  .cm-card--row {
    padding: 15px 16px;
    gap: 10px;
    grid-template-columns: 1fr;
    align-items: flex-start;
  }
  .cm-card__main {
    width: 100%;
    min-width: 0;
  }
  .cm-card__title {
    font-size: 15px;
    margin-bottom: 6px;
    line-height: 1.3;
    font-weight: 600;
  }
  .cm-card__title a {
    display: inline;
    word-break: break-word;
  }
  .cm-card__excerpt {
    font-size: 13px;
    margin-top: 6px;
    line-height: 1.45;
    opacity: .8;
  }
  .cm-badges {
    margin-top: 4px;
    gap: 6px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
  }
  .cm-badge {
    font-size: 11px;
    padding: 3px 8px;
    line-height: 1.35;
  }
  .cm-rank {
    font-size: 11px;
    margin-bottom: 2px;
  }
  .cm-logo {
    margin-bottom: 6px;
  }
  .cm-logo img {
    max-height: 28px;
    width: auto;
  }

  /* — CTAs: tap-friendly height, consistent radius — */
  .cm-card__cta {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 10px;
    width: 100%;
    margin-top: 12px;
  }
  .cm-card__cta .cm-compare__cta,
  .cm-card__cta .cm-compare__cta--btn {
    height: 44px;
    min-height: 44px;
    font-size: 14px;
    font-weight: 600;
    padding: 0 16px;
    justify-content: center;
    border-radius: var(--cm-radius);
    flex: 1 1 auto;
    min-width: 0;
  }
  .cm-card__cta .cm-compare__cta--btn:not(.cm-compare__cta--secondary) {
    background: var(--cm-surface);
    color: var(--cm-text);
    border: 1px solid var(--cm-border-subtle);
  }
  .cm-card__cta .cm-compare__cta--btn:not(.cm-compare__cta--secondary):hover {
    background: var(--cm-soft);
    border-color: rgba(0,0,0,.2);
  }
  .cm-card__cta .cm-compare__cta--secondary {
    background: var(--cm-surface);
    color: var(--cm-text);
    border: 1px solid var(--cm-border-subtle);
  }
  .cm-card__cta .cm-compare__cta--secondary:hover {
    background: var(--cm-soft);
    border-color: rgba(0,0,0,.2);
  }
}

/* ============================================================
   === HOMEPAGE: FIXED VISUAL SYSTEM
   === Exact design tokens · warm editorial · premium density
   ============================================================ */

/* ── Design tokens (inherit global; homepage aliases only) ── */
.cm-home {
  --hp-bg: var(--cm-bg);
  --hp-surface: var(--cm-surface);
  --hp-surface-soft: var(--cm-surface-soft);
  --hp-border: var(--cm-border);
  --hp-border-soft: var(--cm-border-soft);
  --hp-text: var(--cm-text);
  --hp-muted: var(--cm-text-muted);
  --hp-accent: var(--cm-accent);
  --hp-accent-soft: var(--cm-accent-soft);
  --hp-cta-dark: var(--cm-accent);
  --hp-cta-dark-hover: var(--cm-accent-hover);
  --hp-btn-soft-bg: var(--cm-surface-soft);
  --hp-btn-soft-border: var(--cm-border);
  --hp-btn-soft-text: var(--cm-text);
  --hp-label: var(--cm-text-muted);
  --hp-r-section: 24px;
  --hp-r-card: 20px;
  --hp-r-btn: 16px;
  --hp-r-pill: 999px;
  --hp-shadow-section: var(--cm-shadow-section);
  --hp-shadow-card: var(--cm-shadow-card);
}

/* Strict 3-button system — homepage scope only */
.cm-home .cm-btn--primary {
  background: var(--cm-accent);
  border-color: var(--cm-accent);
  color: var(--cm-cta-text) !important;
  border-radius: var(--hp-r-btn);
  padding: 16px 24px;
  min-height: 48px;
  height: auto;
}
.cm-home .cm-btn--primary:hover {
  background: var(--cm-accent-hover);
  border-color: var(--cm-accent-hover);
}
.cm-home .cm-btn--secondary,
.cm-home .cm-btn--ghost {
  background: var(--hp-btn-soft-bg);
  border: 1px solid var(--hp-btn-soft-border);
  color: var(--cm-text) !important;
  border-radius: var(--hp-r-btn);
  padding: 12px 18px;
  min-height: 42px;
  height: auto;
}
.cm-home .cm-btn--secondary:hover,
.cm-home .cm-btn--ghost:hover {
  background: var(--hp-accent-soft);
  border-color: var(--cm-border);
  color: var(--cm-text) !important;
}

/* ── Page shell ── */
.cm-home {
  background: var(--hp-bg);
  padding-bottom: 16px;
  min-height: 0;
}
.cm-home .cm-container {
  max-width: 1060px;
  margin: 0 auto;
  padding: 12px 16px 0;
}

/* ── Hero: warm soft gradient (restrained) ── */
.cm-home-hero {
  padding: 32px 24px 36px;
  text-align: center;
  margin-bottom: 16px;
  border-radius: var(--hp-r-section);
  background: linear-gradient(135deg, var(--cm-accent-soft) 0%, var(--cm-surface) 50%, var(--cm-surface-soft) 100%);
  border: 1px solid var(--hp-border);
  box-shadow: var(--hp-shadow-section);
}
/* Homepage: short hero — less vertical space, directory-first */
.cm-home-hero.cm-home-hero--compact {
  padding: 12px 14px 10px;
  margin-bottom: 4px;
  border-radius: 12px;
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.04);
}
.cm-home-hero.cm-home-hero--compact .cm-home-hero__title,
.cm-home-hero.cm-home-hero--compact .cm-hero__title {
  margin-bottom: 5px;
  font-size: clamp(22px, 4vw, 36px);
  letter-spacing: -0.025em;
  line-height: 1.14;
}
.cm-home-hero.cm-home-hero--compact .cm-home-hero__subtitle,
.cm-home-hero.cm-home-hero--compact .cm-hero__subtitle {
  margin-bottom: 8px;
  max-width: 46ch;
  font-size: 14px;
  line-height: 1.45;
}
.cm-home-hero.cm-home-hero--compact .cm-home-hero__cta-group,
.cm-home-hero.cm-home-hero--compact .cm-hero__cta-group {
  gap: 6px;
  margin-bottom: 0;
}
.cm-home-hero.cm-home-hero--compact .cm-home-hero__cta-group .cm-btn,
.cm-home-hero.cm-home-hero--compact .cm-hero__cta-group .cm-btn {
  min-width: 118px;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  font-size: 13px;
}
.cm-home-hero.cm-home-hero--compact .cm-home-hero__micro-trust {
  margin: 6px auto 0;
}
.cm-home-hero.cm-home-hero--compact .cm-home-hero__trust,
.cm-home-hero.cm-home-hero--compact .cm-hero__trust {
  margin-top: 5px;
  font-size: 11px;
}
/* Homepage hero — trust micro-line (SaaS-style, below CTAs) */
.cm-home-hero__micro-trust {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0;
  margin: 8px auto 0;
  padding: 0;
  max-width: 42rem;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--hp-muted);
  line-height: 1.35;
}
.cm-home-hero__micro-trust li {
  display: inline-flex;
  align-items: center;
}
.cm-home-hero__micro-trust li + li::before {
  content: '·';
  margin: 0 10px;
  font-weight: 500;
  color: var(--hp-muted);
  opacity: 0.45;
}
/* Compact text links under hero — directory shortcuts */
.cm-home-hero__quick {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 4px 2px;
  margin: 5px 0 0;
  padding: 0;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.35;
}
.cm-home-hero__quick a {
  color: var(--hp-muted);
  text-decoration: none;
  padding: 2px 4px;
  border-radius: 4px;
}
.cm-home-hero__quick a:hover {
  color: var(--cm-cta);
  text-decoration: underline;
}
.cm-home-hero__quick-sep {
  color: var(--hp-muted);
  opacity: 0.65;
  user-select: none;
  padding: 0 2px;
}
/* H1: clamp(30px,5vw,46px) weight 800 */
.cm-home-hero .cm-hero__title,
.cm-home-hero__title {
  margin: 0 0 12px;
  font-size: clamp(30px, 5vw, 46px);
  line-height: 1.12;
  font-weight: 800;
  color: var(--hp-text);
  letter-spacing: -.03em;
}
/* Subtitle: 15px muted */
.cm-home-hero .cm-hero__subtitle,
.cm-home-hero__subtitle {
  margin: 0 auto 24px;
  max-width: 42ch;
  font-size: 15px;
  line-height: 1.55;
  color: var(--hp-muted);
}
.cm-home-hero .cm-hero__cta-group,
.cm-home-hero__cta-group {
  display: flex;
  gap: 10px;
  justify-content: center;
  flex-wrap: wrap;
}
.cm-home-hero .cm-hero__cta-group .cm-btn,
.cm-home-hero__cta-group .cm-btn {
  min-width: 152px;
  border-radius: var(--hp-r-btn);
}
/* Hero CTAs: primary + secondary outline (conversion block) */
.cm-home-hero .cm-hero__cta-group .cm-btn--primary,
.cm-home-hero__cta-group .cm-btn--primary {
  background: var(--cm-cta);
  border-color: var(--cm-cta);
  color: var(--cm-btn-primary-text) !important;
}
.cm-home-hero .cm-hero__cta-group .cm-btn--primary:hover,
.cm-home-hero__cta-group .cm-btn--primary:hover {
  background: var(--cm-cta-hover);
  border-color: var(--cm-cta-hover);
  color: var(--cm-btn-primary-text) !important;
}
.cm-home-hero .cm-hero__cta-group .cm-btn--secondary,
.cm-home-hero__cta-group .cm-btn--secondary {
  background: var(--hp-btn-soft-bg, rgba(255, 255, 255, 0.65));
  border: 1px solid var(--hp-btn-soft-border, var(--cm-border-subtle));
  color: var(--cm-text) !important;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.6);
}
.cm-home-hero .cm-hero__cta-group .cm-btn--secondary:hover,
.cm-home-hero__cta-group .cm-btn--secondary:hover {
  background: var(--hp-accent-soft, rgba(47, 36, 29, 0.04));
  border-color: var(--cm-border);
  color: var(--cm-text) !important;
}
.cm-home-hero .cm-hero__trust,
.cm-home-hero__trust {
  margin: 18px 0 0;
  font-size: 12px;
  color: var(--hp-label);
  letter-spacing: .04em;
}

/* ── Sections: white shell, clear vertical rhythm ── */
.cm-home-section {
  margin-top: 16px;
  background: var(--hp-surface);
  border: 1px solid var(--hp-border);
  border-radius: var(--hp-r-section);
  box-shadow: var(--hp-shadow-section);
  padding: 18px 18px 0;
  overflow: hidden;
}
.cm-home-section:first-of-type {
  margin-top: 0;
}

.cm-home-section__header {
  margin-bottom: 12px;
  text-align: center;
}

/* Section title: clamp(24px,3vw,30px) weight 700 */
.cm-home-section__title {
  margin: 0 0 6px;
  font-size: clamp(24px, 3vw, 30px);
  line-height: 1.18;
  font-weight: 700;
  color: var(--hp-text);
  letter-spacing: -.02em;
}

/* Section lead subtitle */
.cm-home-section__lead {
  margin: 0;
  font-size: 15px;
  line-height: 1.5;
  color: var(--hp-muted);
}

.cm-home-section__body {
  margin-bottom: 0;
}

/* Section footer — the CTA strip (master pattern) */
.cm-home-section__footer {
  margin-top: 14px;
  padding: 14px 0 18px;
  text-align: center;
  border-top: 1px solid var(--hp-border-soft);
}
.cm-home-section__footer .cm-btn {
  min-width: 180px;
  border-radius: var(--hp-r-btn);
  background: var(--hp-cta-dark);
  color: var(--cm-btn-primary-text);
  border-color: var(--hp-cta-dark);
}
.cm-home-section__footer .cm-btn:hover {
  background: var(--hp-cta-dark-hover);
  border-color: var(--hp-cta-dark-hover);
}

/* 2-column asymmetric zones */
.cm-home-section__zones {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(280px, 0.85fr);
  gap: 24px 32px;
  align-items: start;
}
.cm-home-section__zone {
  min-width: 0;
}
.cm-home-section__zone--featured {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.cm-home-section__zone--nav {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding-left: 24px;
  border-left: 1px solid var(--hp-border-soft);
}

/* Internal block title: 20px weight 700 */
.cm-home-section__subtitle {
  margin: 0 0 12px;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.25;
  color: var(--hp-text);
}

/* Group labels: soft, refined, not shouting */
.cm-home-section__hub-group {
  display: flex;
  flex-direction: column;
  gap: 7px;
}
.cm-home-section__hub-title {
  margin: 0;
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--cm-text-muted);
}
.cm-home-section__hub-group .cm-pills {
  gap: 6px;
  flex-wrap: wrap;
}

/* Pills: aligned with directory filter tokens — quiet selected state */
.cm-home-section .cm-pill {
  background: var(--cm-filter-pill-surface);
  border: 1px solid var(--cm-filter-pill-border);
  padding: 7px 12px;
  min-height: 34px;
  box-sizing: border-box;
  font-size: 13px;
  font-weight: 600;
  border-radius: var(--hp-r-pill);
  color: var(--hp-text);
  transition: background .15s ease, border-color .15s ease, box-shadow .15s ease;
  transform: none;
}
.cm-home-section .cm-pill:hover {
  background: var(--cm-filter-pill-hover);
  border-color: rgba(200, 186, 172, 0.92);
  box-shadow: none;
  transform: none;
}
.cm-home-section .cm-pill__count {
  display: inline-flex;
  align-items: center;
  margin-left: 6px;
  padding: 0 5px;
  min-width: 18px;
  height: 18px;
  font-size: 10px;
  font-weight: 700;
  background: rgba(47, 36, 29, 0.08);
  border-radius: 999px;
  color: var(--hp-muted);
  line-height: 1;
}
.cm-home-section .cm-pill.is-active,
.cm-home-section .cm-pill[aria-current="page"] {
  background: var(--cm-filter-pill-selected-bg);
  border-color: var(--cm-filter-pill-selected-bd);
  color: var(--hp-text);
  box-shadow: inset 0 0 0 1px var(--cm-filter-pill-selected-ring);
}
.cm-home-section .cm-pill.is-active .cm-pill__count,
.cm-home-section .cm-pill[aria-current="page"] .cm-pill__count {
  background: rgba(110, 86, 66, 0.15);
  color: var(--hp-text);
}

/* CTA footer strip: legacy sections */
.cm-home-section__cta {
  margin-top: 24px;
  padding: 20px 0 30px;
  border-top: 1px solid var(--hp-border-soft);
  text-align: center;
}
.cm-home-section__cta .cm-btn {
  min-width: 180px;
  border-radius: var(--hp-r-btn);
  background: var(--hp-cta-dark);
  color: var(--cm-btn-primary-text);
  border-color: var(--hp-cta-dark);
}
.cm-home-section__cta .cm-btn:hover {
  background: var(--hp-cta-dark-hover);
  border-color: var(--hp-cta-dark-hover);
}

/* ── Casino archive: count badge + related categories ── */
.cm-archive-count {
  margin: 4px 0 10px;
  font-size: 13px;
  font-weight: 600;
  color: var(--cm-accent, #f5a623);
  letter-spacing: 0.01em;
}
.cm-related-cats {
  margin-top: 40px;
  padding-top: 28px;
  border-top: 1px solid var(--hp-border-soft, #e8e0d5);
}
.cm-related-cats__heading {
  font-size: 18px;
  font-weight: 700;
  margin: 0 0 18px;
  color: var(--hp-text, #2f241d);
}
.cm-related-cats__groups {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
}
@media (max-width: 600px) {
  .cm-related-cats__groups { grid-template-columns: 1fr; }
}
.cm-related-cats__group-label {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--hp-muted, #888);
  margin: 0 0 10px;
}
.cm-related-cats__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.cm-related-cats__link {
  font-size: 13px;
  font-weight: 500;
  color: var(--cm-cta, #c45c26);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 5px;
}
.cm-related-cats__link:hover { text-decoration: underline; }
.cm-related-cats__count {
  font-size: 11px;
  color: var(--hp-muted, #888);
  font-weight: 400;
}

/* ── Trending tag pills ── */
.cm-trending-tags {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 8px;
  padding: 8px 20px;
  background: var(--hp-surface, #f9f6f0);
  border-bottom: 1px solid var(--hp-border-soft, #e8e0d5);
  font-size: 12px;
  line-height: 1;
}
.cm-trending-tags__label {
  color: var(--hp-muted, #888);
  font-weight: 600;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  flex-shrink: 0;
  margin-right: 2px;
}
.cm-trending-tags a {
  display: inline-block;
  background: var(--cm-surface, #fff);
  border: 1px solid var(--hp-border-soft, #ddd);
  border-radius: 20px;
  padding: 3px 10px;
  color: var(--hp-text, #333);
  font-size: 12px;
  font-weight: 500;
  text-decoration: none;
  white-space: nowrap;
  transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.cm-trending-tags a:hover,
.cm-trending-tags a:focus-visible {
  background: var(--cm-accent, #f5a623);
  color: #fff;
  border-color: var(--cm-accent, #f5a623);
  text-decoration: none;
  outline: none;
}
@media (max-width: 480px) {
  .cm-trending-tags {
    padding: 7px 14px;
    gap: 5px 6px;
  }
}

/* ── Homepage: .cm-home-grid directory ── */
.cm-home-directory {
  margin-top: 0;
  max-width: 100%;
  overflow-x: hidden;
}
.cm-home .cm-home-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px 16px;
  margin: 0;
  padding: 0;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}
.cm-home .cm-home-grid > * {
  min-width: 0;
}

/* ── Tablet: 2-col equal ── */
@media (min-width: 640px) and (max-width: 899px) {
  .cm-home .cm-home-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px 16px;
  }
}

/* ── Desktop: main (1fr) + sidebar (300px) ── */
@media (min-width: 900px) {
  .cm-home .cm-home-grid {
    grid-template-columns: 1fr 300px;
    gap: 20px 18px;
    align-items: start;
  }
  /* Top Casinos dominates left column — spans 3 sidebar rows (Countries + Slots + Payments) */
  .cm-home-dir-block--ranking {
    grid-column: 1;
    grid-row: 1 / span 3;
  }
  /* Sidebar items stack in column 2 */
  .cm-home-dir-block--countries,
  .cm-home-dir-block--slots-home,
  .cm-home-dir-block--payments-home {
    grid-column: 2;
  }
  /* Full-width rows below the 2-col zone */
  .cm-home-dir-block--bonuses-home,
  .cm-home-how-we-rate,
  .cm-home-guide-news-wrap {
    grid-column: 1 / -1;
  }
}
.cm-home-dir-block {
  margin: 0;
  padding: 14px 16px 15px;
  border: 1px solid var(--hp-border-soft);
  border-radius: 10px;
  background: var(--hp-surface);
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.04);
  box-sizing: border-box;
}
.cm-home-dir-block__head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 2px 8px;
  margin: 0 0 10px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--hp-border-soft);
}
.cm-home-dir-block__title {
  margin: 0;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.25;
  color: var(--hp-text);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
/* Guide/News wrapper: 2-col grid on desktop, no extra card shell */
.cm-home-guide-news-wrap {
  display: contents;
}
@media (min-width: 900px) {
  .cm-home-guide-news-wrap {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
    grid-column: 1 / -1;
  }
  /* Text-only blocks (Guides, News): lighter treatment — no heavy border */
  .cm-home-guide-news-wrap .cm-home-dir-block {
    border-color: transparent;
    background: var(--hp-surface-alt, rgba(0,0,0,0.025));
    box-shadow: none;
  }
}
.cm-home-dir-block__all {
  font-size: 10px;
  font-weight: 600;
  color: var(--cm-cta);
  text-decoration: none;
  white-space: nowrap;
}
.cm-home-dir-block__all:hover {
  text-decoration: underline;
}
.cm-home-dir-block__empty {
  margin: 0;
  padding: 4px 0 0;
  font-size: 12px;
}
.cm-home-dir-block__empty a {
  color: var(--cm-cta);
  font-weight: 600;
  text-decoration: none;
}
.cm-home-dir-block__empty a:hover {
  text-decoration: underline;
}
.cm-home-dir-block__list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.cm-home-dir-block__list li {
  margin: 0;
  padding: 0;
  line-height: 1.3;
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}
.cm-home-dir-block__list li:last-child {
  border-bottom: none;
}
.cm-home-dir-block__list .cm-home-dir-block__link {
  display: block;
  padding: 4px 0;
  font-size: 12px;
  font-weight: 600;
  color: var(--hp-text);
  text-decoration: none;
  overflow-wrap: break-word;
  word-break: normal;
  hyphens: auto;
  border-radius: 8px;
  transition: background-color 0.12s ease, color 0.12s ease;
}
.cm-home-dir-block__list .cm-home-dir-block__link:hover {
  color: var(--cm-cta);
  background-color: rgba(0, 0, 0, 0.035);
}
.cm-home-dir-block__list .cm-home-dir-block__link--secondary {
  font-weight: 500;
  font-size: 11px;
  color: var(--hp-muted);
}
.cm-home-dir-block__list .cm-home-dir-block__link--secondary:hover {
  color: var(--cm-cta);
}

/* Top Casinos — compact leaderboard (rank | logo | name | rating | Visit) */
.cm-home-dir-block--ranking {
  padding: 12px 14px 14px;
}

@media (max-width: 639px) {
  .cm-home-dir-block {
    padding: 12px 14px 13px;
    border-radius: 10px;
    box-shadow: 0 1px 3px rgba(47, 36, 29, 0.05);
  }
  .cm-home-dir-block--ranking {
    padding: 10px 14px 12px;
  }
}

.cm-home-rank-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.cm-home-rank-list__foot {
  margin: 6px 0 0;
  padding: 0;
  font-size: 11px;
  line-height: 1.35;
}
.cm-home-dir-block--ranking .cm-home-rank-list__foot a {
  font-weight: 500;
  color: var(--hp-muted);
  text-decoration: none;
}
.cm-home-dir-block--ranking .cm-home-rank-list__foot a:hover {
  color: var(--cm-cta);
  text-decoration: underline;
}

/* Top Casinos — inline “show more” / “show less” */
.cm-more-casinos {
  margin: 0;
  padding: 0;
}
.cm-more-casinos__inner {
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  transition: max-height 0.35s ease, opacity 0.22s ease;
}
.cm-more-casinos:not(.is-collapsed) .cm-more-casinos__inner {
  max-height: 120em;
  opacity: 1;
}
.cm-more-casinos:not(.is-collapsed) .cm-home-rank-list {
  margin-top: 2px;
}
.cm-home-rank-list__foot--expand {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
}
.cm-home-rank-list__toggle {
  margin: 0;
  padding: 0;
  border: none;
  background: none;
  font: inherit;
  font-size: 11px;
  font-weight: 600;
  color: var(--cm-cta);
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.cm-home-rank-list__toggle:hover {
  color: var(--cm-accent);
}
.cm-home-rank-list__toggle:focus-visible {
  outline: 2px solid var(--cm-border-focus, #2f241d);
  outline-offset: 2px;
}
.cm-home-dir-block--ranking .cm-home-rank-list__foot-archive {
  font-weight: 500;
  color: var(--hp-muted);
  text-decoration: none;
}
.cm-home-dir-block--ranking .cm-home-rank-list__foot-archive:hover {
  color: var(--cm-cta);
  text-decoration: underline;
}
@media (prefers-reduced-motion: reduce) {
  .cm-more-casinos__inner {
    transition: none;
  }
}

/* Homepage: Casinos by Country — compact mini-hubs (no cards) */
.cm-home-dir-block--countries {
  min-width: 0;
}
.cm-home-country-hub {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 4px 0 0;
  min-width: 0;
}
.cm-home-country-hub__group {
  padding: 6px 0 8px;
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}
.cm-home-country-hub__group:last-child {
  border-bottom: none;
  padding-bottom: 2px;
}
.cm-home-country-hub__head {
  display: flex;
  flex-wrap: nowrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 6px 10px;
  margin: 0 0 4px;
  min-width: 0;
}
.cm-home-country-hub__name {
  flex: 1 1 auto;
  min-width: 0;
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  gap: 0.4em;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--hp-text);
}
.cm-home-country-hub__flag {
  flex-shrink: 0;
  font-size: 12px;
  line-height: 1;
  letter-spacing: 0;
  text-transform: none;
  font-variant-emoji: emoji;
  opacity: 0.88;
}
.cm-home-country-hub__label {
  min-width: 0;
  flex: 1 1 auto;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.cm-home-country-hub__all {
  flex-shrink: 0;
  font-size: 10px;
  font-weight: 600;
  line-height: 1.2;
  color: var(--cm-cta);
  text-decoration: none;
  white-space: nowrap;
}
.cm-home-country-hub__all:hover {
  text-decoration: underline;
}
.cm-home-country-hub__all:focus-visible {
  outline: 2px solid var(--cm-cta, #c45c26);
  outline-offset: 2px;
}
.cm-home-country-hub__casinos {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-width: 0;
}
.cm-home-country-hub__casinos li {
  margin: 0;
  padding: 0;
  min-width: 0;
}
.cm-home-country-hub__casino {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.35;
  color: var(--hp-text);
  text-decoration: none;
  padding: 3px 0;
  min-width: 0;
}
.cm-home-country-hub__casino-logo {
  flex-shrink: 0;
  line-height: 0;
}
.cm-home-country-hub__casino-logo .cm-brand-thumb--xs {
  width: 22px;
  height: 22px;
  min-width: 22px;
  min-height: 22px;
}
.cm-home-country-hub__casino-logo .cm-brand-thumb--xs img {
  padding: 2px;
}
.cm-home-country-hub__casino-logo .cm-brand-thumb--xs.cm-brand-thumb--initials .cm-brand-thumb__initials {
  font-size: 8px;
}
.cm-home-country-hub__casino-title {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.cm-home-country-hub__casino:hover {
  color: var(--cm-cta);
  text-decoration: none;
}
.cm-home-country-hub__casino:hover .cm-home-country-hub__casino-title {
  text-decoration: underline;
}
.cm-home-country-hub__casino:focus-visible {
  outline: 2px solid var(--cm-cta, #c45c26);
  outline-offset: 1px;
}
.cm-home-country-hub__fallback {
  margin: 0;
  padding: 2px 0 0;
  font-size: 11px;
  line-height: 1.35;
}
.cm-home-country-hub__fallback a {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-weight: 600;
  color: var(--cm-cta);
  text-decoration: none;
}
.cm-home-country-hub__fallback a:hover {
  text-decoration: underline;
}

.cm-home-rank-list__item {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 8px;
  margin: 0;
  padding: 6px 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
  font-size: 12px;
  line-height: 1.25;
}
.cm-home-rank-list__item--dual {
  position: relative;
  display: block;
  padding: 5px 0;
  border-radius: 4px;
  transition: background-color 0.12s ease;
}
.cm-home-rank-list__item--dual:hover {
  background-color: rgba(0, 0, 0, 0.025);
}
.cm-home-rank-list__item:last-child {
  border-bottom: none;
}
.cm-home-rank-list--has-more > .cm-home-rank-list__item:last-child {
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}
/* Review hit: rank + name + rating only (Visit stays a separate control). */
.cm-home-rank-list__review-zone {
  position: relative;
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  gap: 5px 6px;
}
.cm-home-rank-list__row-hit {
  position: absolute;
  inset: 0;
  z-index: 1;
  border-radius: 3px;
}
.cm-home-rank-list__row-hit:focus-visible {
  outline: 2px solid var(--cm-cta, #c45c26);
  outline-offset: 1px;
}
/* Num + logo + rating: clicks go to stretched review link; title + icon are real links on top. */
.cm-home-rank-list__review-zone .cm-home-rank-list__num,
.cm-home-rank-list__review-zone .cm-home-rank-list__logo,
.cm-home-rank-list__review-zone .cm-home-rank-list__rating {
  position: relative;
  z-index: 2;
  pointer-events: none;
}
.cm-home-rank-list__title-wrap {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  position: relative;
  z-index: 3;
}
.cm-home-rank-list__title-line {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  gap: 4px;
}
.cm-home-rank-list__country-flag {
  flex-shrink: 0;
  font-size: 11px;
  line-height: 1;
  letter-spacing: 0;
  font-variant-emoji: emoji;
  opacity: 0.88;
}
.cm-home-rank-list__row-body {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  gap: 6px 8px;
  width: 100%;
}
.cm-home-rank-list__row-start {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  gap: 5px 6px;
}
.cm-home-rank-list__num {
  flex: 0 0 1.25rem;
  width: 1.25rem;
  text-align: center;
  font-weight: 700;
  font-size: 10px;
  color: var(--hp-muted);
  font-variant-numeric: tabular-nums;
}
.cm-home-rank-list__item--dual .cm-home-rank-list__num {
  flex: 0 0 1.25rem;
  width: 1.25rem;
}
.cm-home-rank-list__logo {
  flex-shrink: 0;
  line-height: 0;
}
.cm-home-rank-list__logo .cm-brand-thumb--xs {
  width: 22px;
  height: 22px;
  min-width: 22px;
  min-height: 22px;
}
.cm-home-rank-list__logo .cm-brand-thumb--xs img {
  padding: 2px;
}
.cm-home-rank-list__logo .cm-brand-thumb--xs.cm-brand-thumb--initials .cm-brand-thumb__initials {
  font-size: 8px;
}
.cm-home-rank-list__title {
  min-width: 0;
  font-weight: 600;
  font-size: 12px;
  color: var(--hp-text);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  flex: 1 1 auto;
  max-width: 100%;
  text-decoration: none;
}
.cm-home-rank-list__title:hover {
  color: var(--cm-cta);
  text-decoration: underline;
}
.cm-home-rank-list__review-icon {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 0;
  color: var(--hp-muted);
  text-decoration: none;
}
.cm-home-rank-list__review-icon:hover {
  color: var(--cm-cta);
}
.cm-home-review-icon-svg {
  display: block;
  width: 12px;
  height: 12px;
  flex-shrink: 0;
}
.cm-home-rank-list__rating {
  display: inline-flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  gap: 2px;
  flex: 0 0 auto;
  font-size: 10px;
  line-height: 1.15;
  white-space: nowrap;
}
.cm-home-rank-list__rating-star {
  color: #d4a017;
  font-size: 10px;
  line-height: 1;
  opacity: 0.9;
}
.cm-home-rank-list__rating-num {
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  color: var(--hp-text);
}
.cm-home-rank-list__rating-placeholder {
  font-weight: 500;
  color: var(--hp-muted);
}
.cm-home-rank-list__visit--btn {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 2px 8px;
  min-height: 0;
  font-size: 10px;
  font-weight: 600;
  line-height: 1.3;
  color: var(--cm-cta);
  text-decoration: none;
  white-space: nowrap;
  border-radius: 4px;
  border: 1px solid rgba(0, 0, 0, 0.07);
  background: var(--cm-surface-soft, rgba(0, 0, 0, 0.035));
  box-shadow: none;
  transition: background-color 0.12s ease, border-color 0.12s ease;
}
.cm-home-rank-list__visit--btn:hover {
  background: rgba(0, 0, 0, 0.05);
  border-color: rgba(0, 0, 0, 0.1);
  text-decoration: none;
}
.cm-home-rank-list__visit--btn:focus-visible {
  outline: 2px solid var(--cm-cta, #c45c26);
  outline-offset: 1px;
}

@media (max-width: 767px) {
  /* ── Top Casinos (ranking): tight title + search icon, strong rating, light Visit ── */
  .cm-home-dir-block--ranking .cm-home-rank-list__row-body {
    align-items: center;
    gap: 10px 14px;
  }
  .cm-home-dir-block--ranking .cm-home-rank-list__review-zone {
    align-items: center;
    gap: 6px 10px;
  }
  .cm-home-dir-block--ranking .cm-home-rank-list__row-start {
    align-items: center;
    gap: 6px 10px;
  }
  .cm-home-dir-block--ranking .cm-home-rank-list__title-wrap {
    align-items: center;
    gap: 2px;
  }
  .cm-home-dir-block--ranking .cm-home-rank-list__title-line {
    gap: 3px;
  }
  .cm-home-dir-block--ranking .cm-home-rank-list__item {
    padding: 1px 0;
    gap: 10px;
  }
  .cm-home-dir-block--ranking .cm-home-rank-list__item--dual {
    padding: 0;
  }
  .cm-home-dir-block--ranking .cm-home-rank-list__title {
    line-height: 1.25;
  }
  .cm-home-dir-block--ranking .cm-home-review-icon-svg {
    width: 18px;
    height: 18px;
  }
  .cm-home-dir-block--ranking .cm-home-rank-list__review-icon {
    color: var(--cm-accent);
    opacity: 0.92;
    border-radius: 4px;
    padding: 1px;
    margin: -1px;
    align-self: center;
    transition: color 0.15s ease, background-color 0.15s ease, opacity 0.15s ease;
    -webkit-tap-highlight-color: transparent;
  }
  .cm-home-dir-block--ranking .cm-home-rank-list__review-icon:hover {
    opacity: 1;
    color: var(--cm-cta);
    background-color: var(--cm-accent-soft);
  }
  .cm-home-dir-block--ranking .cm-home-rank-list__review-icon:active {
    opacity: 1;
    background-color: rgba(0, 0, 0, 0.06);
  }
  .cm-home-dir-block--ranking .cm-home-rank-list__rating {
    gap: 0;
    align-items: center;
  }
  .cm-home-dir-block--ranking .cm-home-rank-list__rating-star {
    color: var(--cm-accent);
    opacity: 1;
    letter-spacing: -0.08em;
    margin-right: 0;
  }
  .cm-home-dir-block--ranking .cm-home-rank-list__rating-num {
    color: var(--cm-text);
    font-weight: 700;
  }
  .cm-home-dir-block--ranking .cm-home-rank-list__visit--btn {
    padding: 1px 6px;
    min-height: 20px;
    font-size: 10px;
    font-weight: 500;
    line-height: 1.2;
    color: var(--hp-muted);
    border-radius: 6px;
    border: 1px solid rgba(0, 0, 0, 0.07);
    background: transparent;
  }
  .cm-home-dir-block--ranking .cm-home-rank-list__visit--btn:hover {
    color: var(--cm-cta);
    border-color: rgba(0, 0, 0, 0.11);
    background: var(--cm-accent-soft);
  }

  /* ── Casinos by Country: looser blocks, bolder labels, clearer dividers ── */
  .cm-home-dir-block--countries .cm-home-country-hub__group {
    padding: 14px 0 16px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.11);
  }
  .cm-home-dir-block--countries .cm-home-country-hub__group + .cm-home-country-hub__group {
    margin-top: 6px;
    padding-top: 10px;
  }
  .cm-home-dir-block--countries .cm-home-country-hub__group:last-child {
    border-bottom: none;
    padding-bottom: 8px;
  }
  .cm-home-dir-block--countries .cm-home-country-hub__head {
    margin-bottom: 8px;
    align-items: center;
    gap: 8px 12px;
  }
  .cm-home-dir-block--countries .cm-home-country-hub__name {
    font-weight: 800;
    letter-spacing: 0.04em;
    color: var(--cm-text);
  }
  .cm-home-dir-block--countries .cm-home-country-hub__flag {
    font-size: 13px;
    opacity: 0.9;
  }
  .cm-home-dir-block--countries .cm-home-country-hub__all {
    font-size: 9px;
    font-weight: 500;
    color: var(--hp-muted);
  }
  .cm-home-dir-block--countries .cm-home-country-hub__all:hover {
    color: var(--cm-cta);
  }

  /* ── Directory blocks: quieter section “View all” (items sections) ── */
  .cm-home-dir-block--items .cm-home-dir-block__head .cm-home-dir-block__all {
    font-size: 9px;
    font-weight: 500;
    color: var(--hp-muted);
  }
  .cm-home-dir-block--items .cm-home-dir-block__head .cm-home-dir-block__all:hover {
    color: var(--cm-cta);
  }

  /* ── Guides / News text lists: nav-like rows ── */
  .cm-home-dir-block__list li {
    border-bottom: 1px solid rgba(0, 0, 0, 0.05);
  }
  .cm-home-dir-block__list .cm-home-dir-block__link {
    padding: 3px 6px;
    margin: 0 -4px;
    font-size: 12px;
    font-weight: 600;
    color: var(--cm-text);
    border-radius: 8px;
    cursor: pointer;
    letter-spacing: -0.012em;
    -webkit-tap-highlight-color: transparent;
  }
  .cm-home-dir-block__list .cm-home-dir-block__link--secondary {
    font-size: 10px;
    font-weight: 500;
    color: var(--hp-muted);
    opacity: 0.88;
    letter-spacing: 0.02em;
  }
  .cm-home-dir-block__list .cm-home-dir-block__link--secondary:hover {
    opacity: 1;
  }
  .cm-home-dir-block__list .cm-home-dir-block__link:hover {
    background-color: rgba(0, 0, 0, 0.045);
  }
  .cm-home-dir-block__list .cm-home-dir-block__link:active {
    background-color: rgba(0, 0, 0, 0.065);
  }

  /* ── Bonuses (dual rows): compact, row hover, tight title↔icon↔CTA ── */
  .cm-home-dir-block--items .cm-home-item-list--dual .cm-home-item-list__row {
    grid-template-columns: auto minmax(0, 1fr) auto;
    padding: 0 5px;
    margin: 0 -5px;
    gap: 3px 5px;
    align-items: center;
    border-radius: 8px;
    border-bottom-color: rgba(0, 0, 0, 0.05);
    transition: background-color 0.12s ease;
    cursor: default;
    -webkit-tap-highlight-color: transparent;
  }
  .cm-home-dir-block--items .cm-home-item-list--dual .cm-home-item-list__thumb {
    align-self: center;
  }
  .cm-home-dir-block--items .cm-home-item-list--dual .cm-home-item-list__row:hover {
    background-color: rgba(0, 0, 0, 0.045);
  }
  .cm-home-dir-block--items .cm-home-item-list--dual .cm-home-item-list__row:active {
    background-color: rgba(0, 0, 0, 0.065);
  }
  .cm-home-dir-block--items .cm-home-item-list--dual .cm-home-item-list__mid {
    align-items: center;
    gap: 1px 3px;
    min-width: 0;
  }
  .cm-home-dir-block--items .cm-home-item-list--dual .cm-home-item-list__titletext {
    line-height: 1.25;
    font-weight: 600;
    color: var(--cm-text);
    cursor: pointer;
  }
  .cm-home-dir-block--items .cm-home-item-list--dual .cm-home-review-icon-svg {
    width: 16px;
    height: 16px;
  }
  .cm-home-dir-block--items .cm-home-item-list--dual .cm-home-item-list__review--icon {
    align-self: center;
    color: var(--cm-accent);
    opacity: 0.92;
    border-radius: 4px;
    padding: 0;
    margin: 0;
    cursor: pointer;
    transition: color 0.15s ease, background-color 0.15s ease, opacity 0.15s ease;
    -webkit-tap-highlight-color: transparent;
  }
  .cm-home-dir-block--items .cm-home-item-list--dual .cm-home-item-list__review--icon:hover {
    opacity: 1;
    color: var(--cm-cta);
    background-color: var(--cm-accent-soft);
  }
  .cm-home-dir-block--items .cm-home-item-list--dual .cm-home-item-list__review--icon:active {
    background-color: rgba(0, 0, 0, 0.06);
  }
  .cm-home-dir-block--items .cm-home-item-list--dual .cm-home-item-list__cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 3px;
    min-height: 16px;
    font-size: 9px;
    font-weight: 500;
    line-height: 1.15;
    color: var(--hp-muted);
    border-radius: 4px;
    border: 1px solid rgba(0, 0, 0, 0.05);
    background: transparent;
    cursor: pointer;
    flex-shrink: 0;
    max-width: 100%;
    box-sizing: border-box;
  }
  .cm-home-dir-block--items .cm-home-item-list--dual .cm-home-item-list__cta:hover {
    color: var(--cm-cta);
    border-color: rgba(0, 0, 0, 0.09);
    background: var(--cm-accent-soft);
    text-decoration: none;
  }

  /* Homepage Bonuses: teaser density — badge stays, lighter than archive-style rows */
  .cm-home-dir-block--items .cm-home-item-list--home-bonuses.cm-home-item-list--dual .cm-home-item-list__row {
    gap: 6px 8px;
    padding: 4px 4px;
    min-height: 0;
    align-items: center;
  }
  .cm-home-dir-block--items .cm-home-item-list--home-bonuses.cm-home-item-list--dual .cm-home-item-list__mid {
    gap: 3px 6px;
    align-items: center;
  }
  .cm-home-dir-block--items .cm-home-item-list--home-bonuses.cm-home-item-list--dual .cm-home-item-list__titletext {
    line-height: 1.3;
    font-size: 12px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    display: block;
  }
  .cm-home-dir-block--items .cm-home-item-list--home-bonuses.cm-home-item-list--dual .cm-home-item-list__cta {
    padding: 2px 6px;
    min-height: 24px;
    font-size: 9px;
    font-weight: 500;
    line-height: 1.2;
    color: var(--hp-muted);
    border-color: rgba(0, 0, 0, 0.06);
    background: transparent;
    align-self: center;
  }
  .cm-home-dir-block--items .cm-home-item-list--home-bonuses.cm-home-item-list--dual .cm-home-item-list__cta:hover {
    color: var(--cm-cta);
    border-color: rgba(0, 0, 0, 0.09);
    background: var(--cm-accent-soft);
  }

  /* ── Slots / Payments: full-width row link, compact ── */
  .cm-home-dir-block--items .cm-home-item-list:not(.cm-home-item-list--dual) .cm-home-item-list__row {
    border-bottom-color: rgba(0, 0, 0, 0.05);
  }
  .cm-home-dir-block--items .cm-home-item-list:not(.cm-home-item-list--dual) .cm-home-item-list__row-hit {
    padding: 0 5px;
    margin: 0 -5px;
    gap: 4px;
    align-items: center;
    cursor: pointer;
  }
  .cm-home-dir-block--items .cm-home-item-list:not(.cm-home-item-list--dual) .cm-home-item-list__thumb {
    align-self: center;
  }
  .cm-home-dir-block--items .cm-home-item-list:not(.cm-home-item-list--dual) .cm-home-item-list__row-hit:hover {
    background-color: rgba(0, 0, 0, 0.045);
  }
  .cm-home-dir-block--items .cm-home-item-list:not(.cm-home-item-list--dual) .cm-home-item-list__row-hit:active {
    background-color: rgba(0, 0, 0, 0.065);
  }
  .cm-home-dir-block--items .cm-home-item-list:not(.cm-home-item-list--dual) .cm-home-item-list__title {
    font-weight: 600;
    color: var(--cm-text);
    line-height: 1.25;
  }
}

/* Homepage: real CPT rows (bonus / slot / payment) — compact directory */
.cm-home-item-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.cm-home-item-list__row {
  padding: 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.055);
  min-width: 0;
}
.cm-home-item-list__row--dual {
  /* grid lives on .cm-home-item-list__row for bonuses */
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) max-content;
  gap: 8px;
  align-items: center;
  padding: 3px 0;
}
.cm-home-item-list__row-hit {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 8px;
  align-items: center;
  padding: 3px 0;
  min-width: 0;
  text-decoration: none;
  color: inherit;
  border-radius: 8px;
  transition: background-color 0.12s ease, color 0.12s ease;
  -webkit-tap-highlight-color: transparent;
}
.cm-home-item-list__row-hit:hover {
  background-color: rgba(0, 0, 0, 0.035);
}
.cm-home-item-list__row-hit:active {
  background-color: rgba(0, 0, 0, 0.055);
}
.cm-home-item-list__row-hit:focus-visible {
  outline: 2px solid var(--cm-border-focus, #2f241d);
  outline-offset: 2px;
}
.cm-home-item-list__row-hit .cm-home-item-list__title {
  transition: color 0.12s ease;
}
.cm-home-item-list__row-hit:hover .cm-home-item-list__title {
  color: var(--cm-cta);
}
.cm-home-item-list__row:last-child {
  border-bottom: none;
}
.cm-home-item-list__mid {
  display: flex;
  flex-direction: row;
  align-items: baseline;
  gap: 6px 8px;
  min-width: 0;
}
.cm-home-item-list__row--dual .cm-home-item-list__mid {
  align-items: center;
}
.cm-home-item-list__titletext {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 12px;
  font-weight: 600;
  color: var(--hp-text);
  text-decoration: none;
}
.cm-home-item-list__titletext:hover {
  color: var(--cm-cta);
  text-decoration: underline;
}
.cm-home-item-list__review {
  flex: 0 0 auto;
  font-size: 10px;
  font-weight: 500;
  color: var(--hp-muted);
  text-decoration: none;
  white-space: nowrap;
}
.cm-home-item-list__review:hover {
  color: var(--cm-cta);
  text-decoration: underline;
}
.cm-home-item-list__review--icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 0;
  padding: 0;
  font-size: 0;
}
.cm-home-item-list__review--icon:hover {
  text-decoration: none;
}
.cm-home-item-list__thumb {
  flex-shrink: 0;
  line-height: 0;
}
.cm-home-item-list__thumb .cm-brand-thumb--xs {
  width: 24px;
  height: 24px;
  min-width: 24px;
  min-height: 24px;
}
.cm-home-item-list__thumb .cm-brand-thumb--xs img {
  padding: 2px;
}
.cm-home-item-list__thumb .cm-brand-thumb--xs.cm-brand-thumb--initials .cm-brand-thumb__initials {
  font-size: 9px;
}

/* Homepage Bonuses block: bonus-type badge (replaces casino logo in leading column) */
.cm-home-item-list--home-bonuses .cm-home-item-list__badge {
  flex-shrink: 0;
  width: 30px;
  height: 30px;
  min-width: 30px;
  min-height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 9px;
  box-sizing: border-box;
  background: var(
    --cm-bonus-badge-fill,
    linear-gradient(152deg, #faf8f5 0%, #efe9e1 55%, #f7f4ef 100%)
  );
  border: 1px solid var(--cm-bonus-badge-border, var(--cm-border-subtle));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.78);
}
.cm-home-item-list--home-bonuses .cm-home-item-list__badge-text {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1;
  color: var(--cm-bonus-badge-text, var(--cm-text-muted));
  font-variant-numeric: tabular-nums;
}

@media (max-width: 767px) {
  .cm-home-item-list--home-bonuses .cm-home-item-list__badge {
    width: 26px;
    height: 26px;
    min-width: 26px;
    min-height: 26px;
    border-radius: 7px;
    background: var(--cm-bonus-badge-fill, var(--cm-surface-soft));
    border: 1px solid var(--cm-bonus-badge-border, var(--cm-border-subtle));
    box-shadow: none;
  }
  .cm-home-item-list--home-bonuses .cm-home-item-list__badge-text {
    font-size: 9px;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--cm-bonus-badge-text, var(--cm-text-muted));
  }
}

/* Homepage bonuses: compact casino mark between title and review icon (favicon-sized). */
.cm-home-item-list--home-bonuses .cm-home-item-list__bonus-brand {
  flex-shrink: 0;
  line-height: 0;
  margin-left: 2px;
}
.cm-home-item-list--home-bonuses .cm-home-item-list__bonus-brand .cm-brand-thumb--home-bonus-favicon.cm-brand-thumb--xs {
  width: 20px !important;
  height: 20px !important;
  min-width: 20px !important;
  min-height: 20px !important;
  max-width: 20px !important;
  max-height: 20px !important;
  border-radius: 5px;
  box-shadow: 0 0 0 1px rgba(47, 36, 29, 0.06);
}
.cm-home-item-list--home-bonuses .cm-home-item-list__bonus-brand .cm-brand-thumb--home-bonus-favicon.cm-brand-thumb--xs img {
  width: 16px !important;
  height: 16px !important;
  max-width: 16px !important;
  max-height: 16px !important;
  padding: 1px !important;
  object-fit: contain;
}
.cm-home-item-list--home-bonuses .cm-home-item-list__bonus-brand .cm-brand-thumb--home-bonus-favicon.cm-brand-thumb--xs.cm-brand-thumb--initials .cm-brand-thumb__initials {
  font-size: 8px;
  letter-spacing: -0.04em;
}

.cm-home-item-list__title {
  font-size: 12px;
  font-weight: 600;
  color: var(--hp-text);
  text-decoration: none;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
}
a.cm-home-item-list__title:hover {
  color: var(--cm-cta);
  text-decoration: underline;
}
.cm-home-item-list__cta {
  font-size: 10px;
  font-weight: 600;
  color: var(--cm-cta);
  text-decoration: none;
  white-space: nowrap;
  padding: 2px 0 2px 2px;
}
.cm-home-item-list__cta:hover {
  text-decoration: underline;
}

/* ── Homepage desktop polish: editorial rhythm, softer shells, light motion ── */
@media (min-width: 1024px) {
  .cm-home .cm-container {
    padding-top: 20px;
    padding-left: 20px;
    padding-right: 20px;
  }

  .cm-home-hero.cm-home-hero--compact {
    padding: 20px 32px 16px;
    margin-bottom: 10px;
    border-radius: var(--hp-r-section);
    border-color: var(--cm-border-subtle);
    box-shadow: 0 2px 22px rgba(47, 36, 29, 0.055);
    background: linear-gradient(
      148deg,
      rgba(254, 246, 235, 0.55) 0%,
      var(--cm-surface) 45%,
      var(--cm-surface-soft) 100%
    );
  }
  .cm-home-hero.cm-home-hero--compact .cm-home-hero__title,
  .cm-home-hero.cm-home-hero--compact .cm-hero__title {
    margin-bottom: 8px;
    font-size: clamp(26px, 2.9vw, 42px);
    line-height: 1.12;
  }
  .cm-home-hero.cm-home-hero--compact .cm-home-hero__subtitle,
  .cm-home-hero.cm-home-hero--compact .cm-hero__subtitle {
    margin-bottom: 14px;
    max-width: 48ch;
    font-size: 15px;
    line-height: 1.55;
    opacity: 0.9;
  }
  .cm-home-hero.cm-home-hero--compact .cm-home-hero__cta-group,
  .cm-home-hero.cm-home-hero--compact .cm-hero__cta-group {
    gap: 10px;
  }
  .cm-home-hero.cm-home-hero--compact .cm-home-hero__cta-group .cm-btn,
  .cm-home-hero.cm-home-hero--compact .cm-hero__cta-group .cm-btn {
    min-width: 132px;
    padding: 10px 20px;
    font-size: 14px;
  }
  .cm-home-hero.cm-home-hero--compact .cm-home-hero__micro-trust {
    margin-top: 10px;
    font-size: 12px;
  }
  .cm-home-hero.cm-home-hero--compact .cm-home-hero__trust,
  .cm-home-hero.cm-home-hero--compact .cm-hero__trust {
    margin-top: 8px;
    font-size: 11px;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    opacity: 0.68;
  }
  .cm-home-hero__quick {
    margin-top: 10px;
    padding-top: 10px;
    gap: 6px 12px;
    font-size: 13px;
    font-weight: 600;
    border-top: 1px solid rgba(47, 36, 29, 0.065);
    max-width: 38rem;
    margin-left: auto;
    margin-right: auto;
  }
  .cm-home-hero__quick a {
    padding: 5px 10px;
    border-radius: 999px;
    transition: background-color 0.18s ease, color 0.18s ease;
  }
  .cm-home-hero__quick a:hover {
    color: var(--cm-cta);
    text-decoration: none;
    background-color: rgba(47, 36, 29, 0.045);
  }
  .cm-home-hero__quick-sep {
    opacity: 0.4;
  }

  .cm-home .cm-home-grid {
    gap: 14px 18px;
  }

  .cm-home-dir-block {
    padding: 14px 16px 16px;
    border-radius: 14px;
    border-color: var(--cm-border-subtle);
    background: var(--hp-surface);
    box-shadow: var(--cm-shadow-card);
    transition: box-shadow 0.22s ease, transform 0.22s ease, border-color 0.2s ease;
  }
  .cm-home-dir-block:hover {
    border-color: var(--cm-border-strong);
    box-shadow: var(--cm-shadow-section);
    transform: translateY(-1px);
  }

  .cm-home-dir-block__head {
    margin-bottom: 6px;
    padding-bottom: 10px;
    border-bottom-color: rgba(47, 36, 29, 0.065);
    gap: 8px 14px;
  }
  .cm-home-dir-block__title {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.085em;
  }
  .cm-home-dir-block__all {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.03em;
  }
  .cm-home-dir-block__all:hover {
    text-decoration: none;
    color: var(--cm-accent-hover);
  }

  .cm-home-dir-block--ranking {
    padding: 12px 16px 14px;
  }

  .cm-home-dir-block__list li {
    border-bottom-color: rgba(47, 36, 29, 0.055);
  }
  .cm-home-dir-block__list .cm-home-dir-block__link {
    padding: 7px 8px;
    margin: 0 -4px;
    border-radius: 8px;
  }
  .cm-home-dir-block__list .cm-home-dir-block__link:hover {
    background-color: rgba(47, 36, 29, 0.035);
  }

  .cm-home-country-hub {
    padding-top: 6px;
  }
  .cm-home-country-hub__group {
    padding: 12px 2px 14px;
    border-bottom-color: rgba(47, 36, 29, 0.06);
  }
  .cm-home-country-hub__head {
    margin-bottom: 8px;
    align-items: center;
  }
  .cm-home-country-hub__name {
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.07em;
    color: var(--hp-text);
  }
  .cm-home-country-hub__flag {
    font-size: 14px;
    opacity: 0.9;
  }
  .cm-home-country-hub__all {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--cm-cta);
  }
  .cm-home-country-hub__all:hover {
    text-decoration: none;
    color: var(--cm-accent-hover);
  }
  .cm-home-country-hub__casinos {
    gap: 2px;
  }
  .cm-home-country-hub__casinos a {
    padding: 6px 8px;
    margin: 0 -6px;
    border-radius: 8px;
    transition: background-color 0.16s ease, color 0.16s ease;
  }
  .cm-home-country-hub__casinos a:hover {
    text-decoration: none;
    background-color: rgba(47, 36, 29, 0.04);
    color: var(--cm-cta);
  }

  .cm-home-rank-list__item {
    padding: 6px 4px;
    border-bottom-color: rgba(47, 36, 29, 0.055);
  }
  .cm-home-rank-list--has-more > .cm-home-rank-list__item:last-child {
    border-bottom-color: rgba(47, 36, 29, 0.055);
  }
  .cm-home-rank-list__item--dual {
    margin: 0 -4px;
    padding: 4px 6px;
    border-radius: 8px;
  }
  .cm-home-rank-list__item--dual:hover {
    background-color: rgba(47, 36, 29, 0.03);
  }
  .cm-home-rank-list__foot {
    margin-top: 10px;
  }
  .cm-home-rank-list__visit--btn {
    padding: 4px 11px;
    border-radius: 6px;
    border-color: rgba(47, 36, 29, 0.09);
    transition: background-color 0.16s ease, border-color 0.16s ease, color 0.16s ease;
  }
  .cm-home-rank-list__visit--btn:hover {
    background: rgba(47, 36, 29, 0.04);
    border-color: rgba(242, 168, 70, 0.35);
    color: var(--cm-cta);
  }

  .cm-home-item-list__row {
    border-bottom-color: rgba(47, 36, 29, 0.05);
  }
  .cm-home-item-list__row--dual {
    padding: 7px 6px;
    margin: 0 -4px;
    border-radius: 9px;
    gap: 10px;
    transition: background-color 0.18s ease;
  }
  .cm-home-item-list__row--dual:hover {
    background-color: rgba(47, 36, 29, 0.028);
  }
  .cm-home-item-list__row-hit {
    padding: 7px 6px;
    margin: 0 -4px;
    border-radius: 9px;
  }
  .cm-home-item-list__row-hit:hover {
    background-color: rgba(47, 36, 29, 0.03);
  }
  .cm-home-item-list__cta {
    padding: 4px 10px;
    border-radius: 6px;
    border: 1px solid rgba(47, 36, 29, 0.08);
    background: rgba(255, 252, 248, 0.7);
    transition: border-color 0.16s ease, background-color 0.16s ease, color 0.16s ease;
  }
  .cm-home-item-list__cta:hover {
    text-decoration: none;
    border-color: rgba(242, 168, 70, 0.45);
    background: var(--cm-accent-soft);
  }
}

@media (min-width: 1024px) and (prefers-reduced-motion: reduce) {
  .cm-home-dir-block {
    transition: none;
  }
  .cm-home-dir-block:hover {
    transform: none;
  }
}

/* ── Master pattern: Split layout ── */
/* cm-home-split: asymmetric 2-zone inside a section */
.cm-home-split {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(260px, 0.85fr);
  gap: 0;
  align-items: start;
}
.cm-home-split__main {
  padding-right: 28px;
}
.cm-home-split__side {
  padding-left: 24px;
  border-left: 1px solid var(--hp-border-soft);
  display: flex;
  flex-direction: column;
  gap: 16px;
}

/* ── Feature card: left-zone premium card (Casinos master pattern) ── */
/* One clean card — no sub-footer background, no box-in-box */
.cm-feature-card {
  display: flex;
  flex-direction: column;
  background: var(--cm-surface);
  border: 1px solid var(--cm-border-subtle);
  border-radius: var(--hp-r-card);
  box-shadow: var(--hp-shadow-card);
  overflow: hidden;
  transition: box-shadow .2s ease, border-color .2s ease;
}
.cm-feature-card:hover {
  box-shadow: var(--cm-shadow-section);
  border-color: var(--cm-border-strong);
}
.cm-feature-card__body {
  padding: 24px;
  flex: 1;
}
.cm-feature-card__title {
  margin: 0 0 8px;
  font-size: 17px;
  font-weight: 700;
  line-height: 1.28;
  color: var(--hp-text);
}
.cm-feature-card__title a {
  text-decoration: none;
  color: inherit;
}
.cm-feature-card__title a:hover {
  text-decoration: underline;
}
.cm-feature-card__meta {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 8px;
}
.cm-feature-card__meta-line {
  margin: 0 0 8px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: var(--cm-text-muted);
}
.cm-feature-card__rating {
  font-size: 11.5px;
  font-weight: 700;
  color: var(--cm-accent);
  background: var(--cm-accent-soft);
  border: 1px solid var(--cm-border-subtle);
  border-radius: 5px;
  padding: 2px 6px;
  letter-spacing: .01em;
}
.cm-feature-card__tag {
  font-size: 11.5px;
  font-weight: 500;
  color: var(--hp-muted);
  background: var(--cm-surface-soft);
  border-radius: 5px;
  padding: 2px 6px;
}
.cm-feature-card__excerpt {
  margin: 0;
  font-size: 13px;
  line-height: 1.55;
  color: var(--hp-muted);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
/* CTA sits directly in body — no separate footer strip */
.cm-feature-card__footer {
  padding: 0 24px 22px;
  background: transparent;
  border-top: none;
}
.cm-feature-card__cta.cm-btn {
  border-radius: var(--hp-r-btn);
  background: var(--cm-btn-soft-bg);
  border: 1px solid var(--cm-btn-soft-border);
  color: var(--cm-cta) !important;
  padding: 12px 18px;
  min-height: 42px;
  height: auto;
}
.cm-feature-card__cta.cm-btn:hover {
  background: var(--cm-accent-soft);
  border-color: var(--cm-border);
  color: var(--cm-cta) !important;
}
.cm-feature-card--empty .cm-feature-card__body{
  padding: 24px;
}
.cm-feature-card--empty .cm-feature-card__title{
  font-size: 16px;
  margin-bottom: 8px;
}
.cm-feature-card--empty .cm-feature-card__excerpt{
  -webkit-line-clamp: unset;
  overflow: visible;
}

/* ── Link groups: right-zone compact navigation ── */
.cm-link-group {
  display: flex;
  flex-direction: column;
  gap: 7px;
}
.cm-link-group__label {
  margin: 0;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--cm-text-muted);
}
.cm-link-group__items {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
/* cm-link-pill: base for homepage. Archive browse uses .cm-browse-block .cm-link-pill (line ~1440). */
.cm-link-pill {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 5px 10px;
  font-size: 12px;
  font-weight: 500;
  line-height: 1;
  color: var(--cm-color-text, #2d2419);
  background: var(--cm-surface, #fff);
  border: 1px solid var(--cm-border-subtle, rgba(0,0,0,.09));
  border-radius: 999px;
  text-decoration: none;
  transition: background .14s, border-color .14s;
  white-space: nowrap;
}
.cm-link-pill:hover {
  background: var(--cm-soft, rgba(0,0,0,.04));
  border-color: var(--cm-border, rgba(0,0,0,.14));
  text-decoration: none;
}
.cm-link-pill__count {
  font-size: 9px;
  font-weight: 600;
  color: var(--cm-text-muted, #9e8e82);
  background: rgba(0,0,0,.06);
  border-radius: 999px;
  padding: 1px 4px;
  line-height: 1.4;
}

/* ── Tablet: stack zones with top divider ── */
@media (min-width: 768px) and (max-width: 1024px) {
  .cm-home .cm-container {
    padding: 24px 20px 0;
  }
  .cm-home-hero {
    padding: 36px 28px 40px;
    margin-bottom: 20px;
  }
  .cm-home-hero.cm-home-hero--compact {
    padding: 16px 18px 14px;
    margin-bottom: 10px;
  }
  .cm-home-section {
    padding: 24px 24px 0;
    margin-top: 16px;
  }
  .cm-home-section__title {
    font-size: 26px;
    margin-bottom: 6px;
  }
  .cm-home-section__header {
    margin-bottom: 16px;
  }
  .cm-home-section__footer {
    margin-top: 20px;
    padding: 16px 0 24px;
  }
  /* Split: stack on tablet */
  .cm-home-split {
    grid-template-columns: 1fr;
    gap: 0;
  }
  .cm-home-split__main {
    padding-right: 0;
    padding-bottom: 20px;
  }
  .cm-home-split__side {
    padding-left: 0;
    border-left: none;
    padding-top: 16px;
    border-top: 1px solid var(--hp-border-soft);
    flex-direction: row;
    flex-wrap: wrap;
    gap: 16px;
  }
  .cm-link-group {
    min-width: 150px;
    flex: 1 1 150px;
  }
  /* Legacy zones */
  .cm-home-section__zones {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .cm-home-section__zone--nav {
    padding-left: 0;
    border-left: none;
    padding-top: 16px;
    border-top: 1px solid var(--hp-border-soft);
    flex-direction: row;
    flex-wrap: wrap;
    gap: 14px;
  }
  .cm-home-section__hub-group {
    min-width: 160px;
  }
  .cm-home-section__cta {
    margin-top: 20px;
    padding: 16px 0 24px;
  }
}

/* ── Mobile: single column, tight rhythm ── */
@media (max-width: 767px) {
  .cm-home .cm-container {
    padding: 10px max(20px, env(safe-area-inset-right, 0px)) 18px max(20px, env(safe-area-inset-left, 0px));
  }
  .cm-home .cm-home-grid {
    gap: 10px 12px;
  }
  .cm-home-hero {
    padding: 32px 22px 36px;
    margin-bottom: 18px;
    border-radius: 20px;
  }
  .cm-home-hero.cm-home-hero--compact {
    padding: 14px 16px 12px;
    margin-bottom: 6px;
    border-radius: 12px;
  }
  .cm-home-hero.cm-home-hero--compact .cm-home-hero__subtitle,
  .cm-home-hero.cm-home-hero--compact .cm-hero__subtitle {
    margin-bottom: 8px;
  }
  .cm-home-hero__quick {
    margin-top: 6px;
    font-size: 11px;
  }
  .cm-home-hero .cm-hero__title,
  .cm-home-hero__title {
    font-size: 30px;
    margin-bottom: 10px;
    letter-spacing: -.02em;
  }
  .cm-home-hero .cm-hero__subtitle,
  .cm-home-hero__subtitle {
    font-size: 15px;
    margin-bottom: 18px;
  }
  .cm-home-hero .cm-hero__cta-group,
  .cm-home-hero__cta-group {
    flex-direction: column;
    width: 100%;
    gap: 10px;
  }
  .cm-home-hero .cm-hero__cta-group .cm-btn,
  .cm-home-hero__cta-group .cm-btn {
    width: 100%;
    min-width: 0;
  }
  .cm-home-hero .cm-hero__trust,
  .cm-home-hero__trust {
    margin-top: 14px;
    font-size: 12px;
  }
  .cm-home-hero.cm-home-hero--compact .cm-home-hero__title,
  .cm-home-hero.cm-home-hero--compact .cm-hero__title {
    font-size: clamp(22px, 6vw, 30px);
    margin-bottom: 6px;
  }
  .cm-home-hero.cm-home-hero--compact .cm-home-hero__subtitle,
  .cm-home-hero.cm-home-hero--compact .cm-hero__subtitle {
    margin-bottom: 10px;
    font-size: 13px;
  }
  .cm-home-hero.cm-home-hero--compact .cm-home-hero__cta-group,
  .cm-home-hero.cm-home-hero--compact .cm-hero__cta-group {
    gap: 6px;
  }
  .cm-home-hero.cm-home-hero--compact .cm-home-hero__micro-trust {
    margin-top: 5px;
    font-size: 10px;
    letter-spacing: 0.01em;
  }
  .cm-home-hero.cm-home-hero--compact .cm-home-hero__micro-trust li + li::before {
    margin: 0 6px;
  }
  .cm-home-hero.cm-home-hero--compact .cm-home-hero__trust,
  .cm-home-hero.cm-home-hero--compact .cm-hero__trust {
    margin-top: 6px;
    font-size: 10px;
  }

  .cm-home-section {
    margin-top: 14px;
    padding: 20px 16px 0;
    border-radius: 18px;
  }
  .cm-home-section__header {
    margin-bottom: 14px;
  }
  .cm-home-section__title {
    font-size: 21px;
    margin-bottom: 4px;
  }
  .cm-home-section__lead {
    font-size: 13px;
  }
  .cm-home-section__footer {
    margin-top: 16px;
    padding: 14px 0 20px;
  }
  .cm-home-section__footer .cm-btn {
    width: 100%;
    min-width: 0;
  }
  .cm-home-section__cta .cm-btn {
    width: 100%;
    min-width: 0;
  }
  .cm-home-section .cm-pill.is-active,
  .cm-home-section .cm-pill[aria-current="page"] {
    background: var(--cm-filter-pill-selected-bg);
    border-color: var(--cm-filter-pill-selected-bd);
    color: var(--hp-text);
    box-shadow: inset 0 0 0 1px var(--cm-filter-pill-selected-ring);
  }
  .cm-home-section .cm-pill.is-active .cm-pill__count,
  .cm-home-section .cm-pill[aria-current="page"] .cm-pill__count {
    background: rgba(110, 86, 66, 0.15);
    color: var(--hp-text);
  }

  /* Split: stack on mobile */
  .cm-home-split {
    grid-template-columns: 1fr;
    gap: 0;
  }
  .cm-home-split__main {
    padding-right: 0;
    padding-bottom: 16px;
  }
  .cm-home-split__side {
    padding-left: 0;
    border-left: none;
    padding-top: 14px;
    border-top: 1px solid var(--hp-border-soft);
    gap: 16px;
  }

  /* Feature card mobile */
  .cm-feature-card__body {
    padding: 20px;
  }
  .cm-feature-card__footer {
    padding: 0 20px 16px;
    background: transparent;
    border-top: none;
  }
  .cm-feature-card__title {
    font-size: 15px;
  }
  .cm-feature-card__cta.cm-btn {
    width: 100%;
  }

  /* Legacy zones */
  .cm-home-section__zones {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .cm-home-section__zone--featured {
    gap: 12px;
  }
  .cm-home-section__zone--nav {
    padding-left: 0;
    border-left: none;
    padding-top: 14px;
    border-top: 1px solid var(--hp-border-soft);
    gap: 14px;
  }
  .cm-home-section__hub-group {
    min-width: 0;
    gap: 4px;
  }
  .cm-home-section__hub-title {
    font-size: 9px;
    font-weight: 600;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--cm-text-muted);
  }
  .cm-home-section__subtitle {
    font-size: 18px;
    margin-bottom: 10px;
  }
  .cm-home-section__cta {
    margin-top: 16px;
    padding: 14px 0 22px;
  }
  .cm-home-section__cta .cm-btn {
    width: 100%;
    min-width: 0;
  }

  .cm-home-section__hub-group .cm-pills {
    gap: 7px 8px;
  }
  .cm-home-section .cm-pill {
    font-size: 15px;
    font-weight: 600;
    padding: 8px 14px;
    min-height: 40px;
  }
  .cm-home-section .cm-pill__count {
    min-width: 20px;
    height: 20px;
    padding: 0 6px;
    font-size: 11px;
    font-weight: 700;
    background: rgba(47, 36, 29, 0.08);
  }

}

/* ============================================================
   CM FOOTER — premium balance, 3 cols desktop, accordion mobile, compact legal bar
   ============================================================ */

.cm-footer {
  border-top: 1px solid var(--cm-footer-border);
  background: var(--cm-footer-bg);
  padding: 0;
  margin-top: var(--cm-space-xl, 32px);
  font-size: 14px;
  line-height: 1.5;
  color: var(--cm-text);
}

.cm-footer__inner {
  padding-top: var(--cm-space-lg, 28px);
  padding-bottom: 4px;
}

.cm-footer__brand {
  min-width: 0;
  overflow: hidden;
  padding-bottom: var(--cm-space-lg, 26px);
  border-bottom: 1px solid var(--cm-footer-border);
}

.cm-footer__logo {
  display: inline-block;
  text-decoration: none;
  color: inherit;
  transition: opacity 0.2s ease;
}

.cm-footer__logo:hover {
  opacity: 0.82;
}

.cm-footer__logo:focus-visible {
  outline: 2px solid var(--cm-border-focus);
  outline-offset: 4px;
  border-radius: 4px;
}

.cm-footer__logo-img,
.cm-footer img {
  display: block;
  max-width: 100%;
  height: auto;
  object-fit: contain;
}
.cm-footer__logo-img {
  height: 38px;
  max-width: 160px;
}

.cm-footer__site-name {
  font-weight: 800;
  font-size: 1.125rem;
  letter-spacing: -0.02em;
  color: var(--cm-color-text);
}

.cm-footer__tagline {
  margin: 12px 0 0;
  font-size: 0.9375rem;
  line-height: 1.55;
  opacity: 0.76;
  max-width: 36ch;
  color: var(--cm-text-muted);
  font-weight: 400;
  letter-spacing: 0.01em;
}

/* Desktop: 3-column grid (Content, Hubs, Legal/Company) */
.cm-footer__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--cm-space-lg, 28px) 40px;
  align-items: start;
  padding: var(--cm-space-lg, 26px) 0;
}

.cm-footer__section {
  min-width: 0;
}

/* Desktop: summary as column title, panel always visible */
.cm-footer__toggle {
  margin: 0 0 12px;
  font-size: 0.6875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  opacity: 0.7;
  list-style: none;
  cursor: default;
  color: var(--cm-text-muted);
}
.cm-footer__toggle::-webkit-details-marker {
  display: none;
}
.cm-footer__toggle::marker {
  content: none;
}

.cm-footer__panel {
  display: block;
}

.cm-footer__links {
  list-style: none;
  margin: 0;
  padding: 0;
}

.cm-footer__links li {
  margin: 0 0 10px;
}

.cm-footer__links li:last-child {
  margin-bottom: 0;
}

.cm-footer__links a {
  font-size: 0.9375rem;
  text-decoration: none;
  color: var(--cm-color-text);
  opacity: 0.9;
  line-height: 1.45;
  transition: color 0.15s ease, opacity 0.15s ease;
}

.cm-footer__links a:hover {
  opacity: 1;
  color: var(--cm-cta);
  text-decoration: none;
}

.cm-footer__links a:focus-visible {
  outline: 2px solid var(--cm-border-focus);
  outline-offset: 2px;
  border-radius: 2px;
}

.cm-footer__disclaimer {
  padding: var(--cm-space-md, 18px) 0;
  border-top: 1px solid var(--cm-border-soft);
}

.cm-footer__responsible {
  margin: 0;
  font-size: 0.8125rem;
  line-height: 1.55;
  opacity: 0.82;
  max-width: 60ch;
  color: var(--cm-text-muted);
}
.cm-footer__age-inline {
  font-weight: 700;
  margin-right: 0.4em;
  color: var(--cm-color-text);
}

/* Compact legal/copyright bar — single-line feel */
.cm-footer__bottom {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: var(--cm-space-md, 14px) 0;
  font-size: 0.8125rem;
  opacity: 0.88;
  border-top: 1px solid var(--cm-border-soft);
  color: var(--cm-text-muted);
}

.cm-footer__copy {
  flex-shrink: 0;
  letter-spacing: 0.02em;
  font-weight: 500;
  color: var(--cm-text-muted);
}

.cm-footer__legal {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0 10px;
}

.cm-footer__legal-sep {
  opacity: 0.35;
  user-select: none;
}

.cm-footer__legal a {
  text-decoration: none;
  color: inherit;
  font-weight: 500;
  transition: color 0.15s ease;
}

.cm-footer__legal a:hover {
  color: var(--cm-cta);
  text-decoration: none;
}

.cm-footer__legal a:focus-visible {
  outline: 2px solid var(--cm-border-focus);
  outline-offset: 2px;
  border-radius: 2px;
}

/* ── Desktop: editorial hierarchy, rhythm, authority (light palette) ── */
@media (min-width: 768px) {
  .cm-footer {
    margin-top: var(--cm-space-2xl, 48px);
    border-top-color: var(--cm-border-subtle);
  }

  .cm-footer__inner {
    padding-top: 40px;
    padding-bottom: 8px;
  }

  .cm-footer__brand {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 28px 48px;
    padding-bottom: 36px;
    border-bottom-color: var(--cm-border-subtle);
  }

  .cm-footer__logo {
    margin-top: 2px;
  }

  .cm-footer__logo-img {
    height: 42px;
    max-width: 176px;
  }

  .cm-footer__tagline {
    margin: 0;
    flex: 1;
    min-width: min(100%, 260px);
    max-width: 46ch;
    font-size: 0.9375rem;
    line-height: 1.65;
    opacity: 0.74;
  }

  .cm-footer__grid {
    gap: 32px 48px;
    padding: 36px 0 32px;
  }

  .cm-footer__toggle {
    margin: 0 0 16px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    opacity: 1;
    color: var(--cm-text-muted);
  }

  .cm-footer__links li {
    margin: 0 0 11px;
  }

  .cm-footer__links a {
    font-size: 0.875rem;
    letter-spacing: 0.01em;
  }

  .cm-footer__disclaimer {
    padding: 22px 0 26px;
    border-top-color: var(--cm-border-subtle);
  }

  .cm-footer__responsible {
    display: flex;
    align-items: flex-start;
    gap: 12px 14px;
    max-width: 62ch;
    font-size: 0.8125rem;
    line-height: 1.6;
    opacity: 0.78;
  }

  .cm-footer__age-inline {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0.15em 0 0;
    padding: 3px 9px;
    min-width: 2.5em;
    box-sizing: border-box;
    font-size: 0.65rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    line-height: 1.2;
    color: var(--cm-text-muted);
    border: 1px solid var(--cm-meta-chip-border);
    border-radius: 4px;
    background: var(--cm-meta-chip-bg);
    flex-shrink: 0;
  }

  .cm-footer__bottom {
    padding: 18px 0 22px;
    gap: 14px 20px;
    font-size: 0.75rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    border-top-color: var(--cm-border-subtle);
    opacity: 1;
  }

  .cm-footer__copy {
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.06em;
  }

  .cm-footer__legal {
    gap: 0 12px;
  }

  .cm-footer__legal a {
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
  }
}

/* Mobile: accordion sections */
@media (max-width: 767px) {
  .cm-footer {
    padding: 24px 0 0;
    margin-top: 28px;
  }

  .cm-footer__brand {
    text-align: center;
    padding-bottom: 20px;
  }

  .cm-footer__tagline {
    max-width: none;
    margin-top: 8px;
    text-align: center;
  }

  .cm-footer__grid {
    grid-template-columns: 1fr;
    gap: 0;
    padding-bottom: 0;
  }

  .cm-footer__section {
    border-bottom: 1px solid var(--cm-border-subtle);
  }

  .cm-footer__section:last-of-type {
    border-bottom: none;
  }

  .cm-footer__toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 14px 0;
    margin: 0;
    border: none;
    background: transparent;
    font: inherit;
    font-size: 15px;
    font-weight: 600;
    text-align: left;
    color: inherit;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    text-transform: none;
    letter-spacing: 0;
    opacity: 1;
  }

  .cm-footer__toggle:hover {
    opacity: .9;
  }

  .cm-footer__toggle::after {
    content: '';
    width: 8px;
    height: 8px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg);
    margin-left: auto;
    margin-right: 4px;
    transition: transform .22s ease;
    flex-shrink: 0;
  }

  .cm-footer__section[open] .cm-footer__toggle::after {
    transform: rotate(-135deg);
  }

  .cm-footer__panel {
    padding: 0 0 16px;
  }

  .cm-footer__links li {
    margin: 0 0 6px;
  }

  .cm-footer__links a {
    display: block;
    padding: 6px 0;
  }

  .cm-footer__disclaimer {
    padding: 16px 0 20px;
    border-bottom: 1px solid var(--cm-border-subtle);
  }

  .cm-footer__responsible {
    padding-bottom: 0;
    text-align: center;
    max-width: none;
    font-size: 13px;
  }

  .cm-footer__age-inline {
    display: inline-block;
  }

  .cm-footer__bottom {
    flex-direction: column;
    text-align: center;
    padding: var(--cm-space-md, 14px) 0;
    gap: var(--cm-space-sm, 8px);
  }

  .cm-footer__age,
  .cm-footer__responsible-line {
    order: 0;
  }

  .cm-footer__legal {
    justify-content: center;
  }
}

/* Hide parent theme footer credit if ever present */
.cm-footer .wp-block-template-part [class*="credits"] a[href*="wordpress.org"] { display: none !important; }

/* ─── Brand thumb system — reusable logo/initials (xs/sm/md) ─────────────────
   xs = mini/favicon (meta, inline, table)
   sm = card, sidebar
   md = hero, archive card
   Same framing: radius, border, background. Premium initials fallback.
──────────────────────────────────────────────────────────────────────────── */
.cm-brand-thumb{display:flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:var(--cm-brand-radius,8px);border:1px solid var(--cm-border-subtle);background:var(--cm-surface-soft);overflow:hidden;box-sizing:border-box;box-shadow:0 1px 2px rgba(47,36,29,.028)}
.cm-brand-thumb img{width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;display:block;padding:4px}
.cm-brand-thumb--initials{background:linear-gradient(135deg,var(--cm-surface-soft) 0%,var(--cm-chip-bg) 100%);border-color:var(--cm-border-subtle)}
.cm-brand-thumb--initials .cm-brand-thumb__initials{font-weight:700;letter-spacing:-.03em;color:var(--cm-text-muted);line-height:1;font-variant-numeric:tabular-nums;text-shadow:0 1px 0 rgba(255,255,255,.6)}
.cm-brand-thumb--xs{width:24px;height:24px;min-width:24px;min-height:24px}
.cm-brand-thumb--xs .cm-brand-thumb__initials{font-size:9px}
.cm-brand-thumb--xs img{padding:2px}
.cm-brand-thumb--sm{width:48px;height:48px;min-width:48px;min-height:48px}
.cm-brand-thumb--sm .cm-brand-thumb__initials{font-size:13px}
.cm-brand-thumb--sm img{padding:4px}
.cm-brand-thumb--md{width:64px;height:64px;min-width:64px;min-height:64px}
.cm-brand-thumb--md .cm-brand-thumb__initials{font-size:16px}
.cm-brand-thumb--md img{padding:6px}
.cm-brand-thumb[href]{text-decoration:none;transition:border-color .15s,box-shadow .15s,transform .15s}
.cm-brand-thumb[href]:hover{border-color:var(--cm-border);box-shadow:var(--cm-shadow-card)}
@media (max-width:767px){
  .cm-brand-thumb--md{width:52px;height:52px;min-width:52px;min-height:52px}
  .cm-brand-thumb--md .cm-brand-thumb__initials{font-size:13px}
  .cm-brand-thumb--md img{padding:4px}
  .cm-brand-thumb--sm{width:44px;height:44px;min-width:44px;min-height:44px}
  .cm-brand-thumb--sm .cm-brand-thumb__initials{font-size:11px}
  .cm-brand-thumb--sm img{padding:3px}
}
/* Table integration: brand thumbs in name/provider cells must stay small and tabular */
.cm-tbl-name .cm-brand-thumb,.cm-tbl-name__thumb,.cm-tbl-provider .cm-brand-thumb,.cm-tbl-provider__thumb{flex-shrink:0}
/* xs size (24px) is authoritative for table cells — hard-lock it */
.cm-brand-thumb--xs{width:24px !important;height:24px !important;min-width:24px !important;min-height:24px !important;max-width:24px !important;max-height:24px !important;overflow:hidden !important;flex-shrink:0 !important}
.cm-brand-thumb--xs img{width:24px !important;height:24px !important;max-width:24px !important;max-height:24px !important;object-fit:contain !important;padding:2px !important}

/* Bonus / slot / payment / casino archive rows — same shell + grid */
.cm-archive-grid .cm-archive-card.cm-archive-card--bonus,
.cm-archive-grid .cm-archive-card.cm-archive-card--slot,
.cm-archive-grid .cm-archive-card.cm-archive-card--payment,
.cm-archive-grid .cm-archive-card.cm-archive-card--casino {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) max-content;
  grid-template-areas: "media main actions";
  gap: 13px 15px;
  align-items: center;
  padding: 15px 17px;
  border: 1px solid var(--cm-border-subtle);
  border-radius: var(--cm-radius);
  background: var(--cm-color-bg);
  box-shadow: var(--cm-shadow-card);
  min-width: 0;
  box-sizing: border-box;
  max-width: 100%;
  overflow: hidden;
  transition: background 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}
.cm-archive-grid .cm-archive-card.cm-archive-card--bonus:hover,
.cm-archive-grid .cm-archive-card.cm-archive-card--slot:hover,
.cm-archive-grid .cm-archive-card.cm-archive-card--payment:hover,
.cm-archive-grid .cm-archive-card.cm-archive-card--casino:hover {
  background: var(--cm-surface-soft);
  box-shadow: var(--cm-shadow-section);
  border-color: var(--cm-border-strong);
}
.cm-archive-grid .cm-archive-card.cm-archive-card--bonus:active,
.cm-archive-grid .cm-archive-card.cm-archive-card--slot:active,
.cm-archive-grid .cm-archive-card.cm-archive-card--payment:active,
.cm-archive-grid .cm-archive-card.cm-archive-card--casino:active {
  background: rgba(244, 239, 233, 0.65);
}

/* Bonus card upgrade (.cm-bonus-card on archive grid — scoped so base row styles don’t win) */
.cm-archive-grid .cm-archive-card.cm-archive-card--bonus.cm-bonus-card {
  border-radius: 16px;
  border: 1px solid var(--cm-border-subtle);
  background: #fff;
  padding: 17px;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}
.cm-archive-grid .cm-archive-card.cm-archive-card--bonus.cm-bonus-card:hover {
  transform: translateY(-1px);
  box-shadow: var(--cm-shadow-section);
  background: #fff;
}
@media (prefers-reduced-motion: reduce) {
  .cm-archive-grid .cm-archive-card.cm-archive-card--bonus.cm-bonus-card {
    transition: none;
  }
  .cm-archive-grid .cm-archive-card.cm-archive-card--bonus.cm-bonus-card:hover {
    transform: none;
  }
}

/* Bonus listing: type badge (not casino logo). Optional --cm-bonus-badge-* when bonus is linked to a casino (brand tint). */
.cm-bonus-card__badge {
  width: 48px;
  height: 48px;
  border-radius: 11px;
  background: var(
    --cm-bonus-badge-fill,
    linear-gradient(152deg, #faf8f5 0%, #efe9e1 55%, #f7f4ef 100%)
  );
  border: 1px solid var(--cm-bonus-badge-border, rgba(47, 36, 29, 0.08));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.78);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  box-sizing: border-box;
}
.cm-bonus-card__badge-text {
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: var(--cm-bonus-badge-text, rgba(47, 36, 29, 0.68));
  font-variant-numeric: tabular-nums;
  line-height: 1;
  text-indent: 0.1em;
}

.cm-archive-grid .cm-archive-card--bonus .cm-archive-card__media,
.cm-archive-grid .cm-archive-card--slot .cm-archive-card__media,
.cm-archive-grid .cm-archive-card--payment .cm-archive-card__media,
.cm-archive-grid .cm-archive-card--casino .cm-archive-card__media {
  grid-area: media;
  display: flex;
  justify-content: center;
  align-items: flex-start;
  width: 48px;
  min-width: 48px;
}
.cm-archive-grid .cm-archive-card--slot .cm-archive-card__media .cm-brand-thumb,
.cm-archive-grid .cm-archive-card--payment .cm-archive-card__media .cm-brand-thumb {
  width: 48px;
  height: 48px;
  min-width: 48px;
  min-height: 48px;
}
.cm-archive-grid .cm-archive-card--bonus .cm-archive-card__main,
.cm-archive-grid .cm-archive-card--slot .cm-archive-card__main,
.cm-archive-grid .cm-archive-card--payment .cm-archive-card__main,
.cm-archive-grid .cm-archive-card--casino .cm-archive-card__main {
  grid-area: main;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 5px;
  align-self: center;
}
.cm-archive-grid .cm-archive-card--bonus .cm-archive-card__main {
  gap: 8px;
  align-self: start;
}
.cm-archive-grid .cm-archive-card--slot .cm-archive-card__main {
  gap: 7px;
}
.cm-archive-grid .cm-archive-card--bonus .cm-archive-card__title,
.cm-archive-grid .cm-archive-card--slot .cm-archive-card__title,
.cm-archive-grid .cm-archive-card--payment .cm-archive-card__title,
.cm-archive-grid .cm-archive-card--casino .cm-archive-card__title {
  margin: 0;
  font-size: 16px;
  font-weight: 800;
  line-height: 1.28;
  color: var(--cm-color-text);
  min-width: 0;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
}
.cm-archive-grid .cm-archive-card--slot .cm-archive-card__title {
  font-size: 17px;
  font-weight: 700;
  letter-spacing: -0.018em;
  line-height: 1.24;
}
.cm-bonus-card__title {
  font-size: 18px;
  font-weight: 600;
  margin-bottom: 6px;
}
.cm-archive-grid .cm-archive-card--bonus .cm-archive-card__title.cm-bonus-card__title {
  font-size: 18px;
  font-weight: 600;
  margin: 0 0 2px;
}
.cm-bonus-card__casino {
  margin: 0;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.4;
  color: rgba(47, 36, 29, 0.45);
}
.cm-bonus-card__casino a {
  color: inherit;
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: color 0.15s ease, border-color 0.15s ease;
}
.cm-bonus-card__casino a:hover {
  color: var(--cm-cta);
  border-bottom-color: rgba(196, 92, 38, 0.35);
}
.cm-archive-grid .cm-archive-card--bonus .cm-archive-card__title a,
.cm-archive-grid .cm-archive-card--slot .cm-archive-card__title a,
.cm-archive-grid .cm-archive-card--payment .cm-archive-card__title a,
.cm-archive-grid .cm-archive-card--casino .cm-archive-card__title a {
  color: inherit;
  text-decoration: none;
  transition: color 0.15s;
}
.cm-archive-grid .cm-archive-card--bonus .cm-archive-card__title a:hover,
.cm-archive-grid .cm-archive-card--slot .cm-archive-card__title a:hover,
.cm-archive-grid .cm-archive-card--payment .cm-archive-card__title a:hover,
.cm-archive-grid .cm-archive-card--casino .cm-archive-card__title a:hover {
  color: var(--cm-cta);
}
.cm-archive-grid .cm-archive-card--payment .cm-archive-card__meta,
.cm-archive-grid .cm-archive-card--casino .cm-archive-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 5px 6px;
  row-gap: 5px;
  align-items: center;
}
.cm-archive-grid .cm-archive-card--bonus .cm-archive-card__actions,
.cm-archive-grid .cm-archive-card--slot .cm-archive-card__actions,
.cm-archive-grid .cm-archive-card--payment .cm-archive-card__actions,
.cm-archive-grid .cm-archive-card--casino .cm-archive-card__actions {
  grid-area: actions;
  display: flex;
  flex-direction: column;
  gap: 6px;
  justify-self: end;
  align-self: center;
  width: auto;
  min-width: 0;
}
.cm-archive-grid .cm-archive-card--bonus .cm-archive-card__btn,
.cm-archive-grid .cm-archive-card--slot .cm-archive-card__btn,
.cm-archive-grid .cm-archive-card--payment .cm-archive-card__btn,
.cm-archive-grid .cm-archive-card--casino .cm-archive-card__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: 12px 16px;
  border-radius: 10px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.01em;
  text-decoration: none;
  white-space: nowrap;
  box-sizing: border-box;
  transition: background 0.15s, border-color 0.15s, color 0.15s, transform 0.12s ease;
  width: auto;
  min-width: 0;
}
.cm-archive-grid .cm-archive-card--bonus .cm-archive-card__btn--primary,
.cm-archive-grid .cm-archive-card--slot .cm-archive-card__btn--primary,
.cm-archive-grid .cm-archive-card--payment .cm-archive-card__btn--primary,
.cm-archive-grid .cm-archive-card--casino .cm-archive-card__btn--primary {
  background: var(--cm-cta);
  border: 1px solid var(--cm-cta);
  color: var(--cm-btn-primary-text);
  box-shadow: 0 1px 2px rgba(17, 17, 17, 0.07);
}
.cm-archive-grid .cm-archive-card--bonus .cm-archive-card__btn--primary:hover,
.cm-archive-grid .cm-archive-card--slot .cm-archive-card__btn--primary:hover,
.cm-archive-grid .cm-archive-card--payment .cm-archive-card__btn--primary:hover,
.cm-archive-grid .cm-archive-card--casino .cm-archive-card__btn--primary:hover {
  background: var(--cm-cta-hover);
  border-color: var(--cm-cta-hover);
}
.cm-archive-grid .cm-archive-card--bonus .cm-archive-card__btn--secondary,
.cm-archive-grid .cm-archive-card--slot .cm-archive-card__btn--secondary,
.cm-archive-grid .cm-archive-card--payment .cm-archive-card__btn--secondary,
.cm-archive-grid .cm-archive-card--casino .cm-archive-card__btn--secondary {
  background: var(--cm-surface-soft);
  border: 1px solid var(--cm-border-subtle);
  color: var(--cm-cta);
  font-weight: 600;
}
.cm-archive-grid .cm-archive-card--bonus .cm-archive-card__btn--secondary:hover,
.cm-archive-grid .cm-archive-card--slot .cm-archive-card__btn--secondary:hover,
.cm-archive-grid .cm-archive-card--payment .cm-archive-card__btn--secondary:hover,
.cm-archive-grid .cm-archive-card--casino .cm-archive-card__btn--secondary:hover {
  background: var(--cm-soft);
  border-color: var(--cm-border);
}
.cm-archive-grid .cm-archive-card--bonus .cm-archive-card__excerpt,
.cm-archive-grid .cm-archive-card--payment .cm-archive-card__excerpt,
.cm-archive-grid .cm-archive-card--casino .cm-archive-card__excerpt {
  margin: 6px 0 0;
  padding-top: 8px;
  border-top: 1px solid rgba(47, 36, 29, 0.07);
  font-size: 12.5px;
  line-height: 1.5;
  color: var(--cm-text-muted);
  opacity: 0.88;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-width: 0;
}
.cm-archive-grid .cm-archive-card--slot .cm-archive-card__excerpt {
  margin: 2px 0 0;
  padding-top: 8px;
  border-top: 1px solid rgba(47, 36, 29, 0.05);
  font-size: 13px;
  line-height: 1.58;
  color: var(--cm-text-muted);
  opacity: 0.9;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-width: 0;
}

/* Slot archive cards: editorial metadata (provider primary / type secondary), lighter CTA */
.cm-archive-grid .cm-archive-card--slot .cm-slot-card__meta {
  gap: 7px 14px;
  margin: 1px 0 0;
}
.cm-archive-grid .cm-archive-card--slot .cm-slot-card__chip--provider {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.012em;
  color: rgba(47, 36, 29, 0.58);
  gap: 8px;
  padding: 4px 10px 4px 5px;
  border-radius: 999px;
  background: rgba(47, 36, 29, 0.045);
  border: 1px solid rgba(47, 36, 29, 0.09);
  box-sizing: border-box;
  max-width: 100%;
}
.cm-archive-grid .cm-archive-card--slot a.cm-slot-card__chip-label:hover {
  color: var(--cm-cta);
}
.cm-archive-grid .cm-archive-card--slot .cm-slot-card__chip-label {
  display: inline-flex;
  align-items: center;
  line-height: 1.3;
}
/* Provider mark on slot cards: larger than global .cm-brand-thumb--xs (18px was unreadable). */
.cm-archive-grid .cm-archive-card--slot .cm-slot-card__chip--provider .cm-brand-thumb--slot-provider-chip {
  width: 24px !important;
  height: 24px !important;
  min-width: 24px !important;
  min-height: 24px !important;
  max-width: 24px !important;
  max-height: 24px !important;
  border-radius: 6px;
  border: none !important;
  background: rgba(255, 255, 255, 0.65);
  box-shadow: none !important;
}
.cm-archive-grid .cm-archive-card--slot .cm-slot-card__chip--provider .cm-brand-thumb--slot-provider-chip img {
  width: 18px !important;
  height: 18px !important;
  max-width: 18px !important;
  max-height: 18px !important;
  padding: 2px !important;
  object-fit: contain;
}
.cm-archive-grid .cm-archive-card--slot .cm-slot-card__chip--provider .cm-brand-thumb--slot-provider-chip.cm-brand-thumb--initials .cm-brand-thumb__initials {
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.02em;
}
@media (min-width: 768px) {
  .cm-archive-grid .cm-archive-card--slot .cm-slot-card__chip--provider {
    gap: 9px;
    padding: 4px 12px 4px 6px;
  }
  .cm-archive-grid .cm-archive-card--slot .cm-slot-card__chip--provider .cm-brand-thumb--slot-provider-chip {
    width: 28px !important;
    height: 28px !important;
    min-width: 28px !important;
    min-height: 28px !important;
    max-width: 28px !important;
    max-height: 28px !important;
    border-radius: 7px;
  }
  .cm-archive-grid .cm-archive-card--slot .cm-slot-card__chip--provider .cm-brand-thumb--slot-provider-chip img {
    width: 22px !important;
    height: 22px !important;
    max-width: 22px !important;
    max-height: 22px !important;
    padding: 2px !important;
  }
  .cm-archive-grid .cm-archive-card--slot .cm-slot-card__chip--provider .cm-brand-thumb--slot-provider-chip.cm-brand-thumb--initials .cm-brand-thumb__initials {
    font-size: 10px;
  }
}
.cm-archive-grid .cm-archive-card--slot .cm-slot-card__type {
  padding: 2px 7px;
  border-radius: 5px;
  font-size: 9px;
  font-weight: 500;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  line-height: 1.35;
  color: rgba(47, 36, 29, 0.4);
  background: rgba(47, 36, 29, 0.028);
  border: 1px solid rgba(47, 36, 29, 0.07);
}
.cm-archive-grid .cm-archive-card--slot .cm-archive-card__btn--secondary {
  min-height: 34px;
  padding: 7px 12px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.01em;
  text-transform: none;
  background: transparent;
  border: 1px solid rgba(47, 36, 29, 0.13);
  color: rgba(47, 36, 29, 0.68);
  box-shadow: none;
}
.cm-archive-grid .cm-archive-card--slot .cm-archive-card__btn--secondary:hover {
  background: rgba(47, 36, 29, 0.035);
  border-color: rgba(47, 36, 29, 0.2);
  color: var(--cm-cta);
}
/* Slot archive: align CTA with title row (was vertically centered vs. multi-line meta). */
.cm-archive-grid .cm-archive-card--slot .cm-archive-card__actions {
  align-self: start;
  padding-top: 1px;
}

/* Desktop: bonus archive — stacked card (badge → body → preview → CTAs), full-width chips row */
@media (min-width: 768px) {
  .cm-archive-bonus .cm-archive-grid .cm-archive-card.cm-archive-card--bonus:not(.cm-archive-card--has-preview) {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      "media"
      "main"
      "actions";
    column-gap: 0;
    row-gap: 12px;
    align-items: stretch;
    padding: 20px 22px;
    overflow: visible;
    height: auto;
    min-height: 0;
  }
  .cm-archive-bonus .cm-archive-grid .cm-archive-card.cm-archive-card--bonus.cm-archive-card--has-preview {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      "media"
      "main"
      "preview"
      "actions";
    column-gap: 0;
    row-gap: 12px;
    align-items: stretch;
    padding: 20px 22px;
    overflow: visible;
    height: auto;
    min-height: 0;
  }
  .cm-archive-bonus .cm-archive-grid .cm-archive-card--bonus .cm-archive-card__media {
    grid-area: media;
    width: 52px;
    min-width: 52px;
    justify-content: flex-start;
    justify-self: start;
    align-self: start;
  }
  .cm-archive-bonus .cm-archive-grid .cm-archive-card--bonus .cm-bonus-card__badge {
    width: 52px;
    height: 52px;
  }
  .cm-archive-bonus .cm-archive-grid .cm-archive-card--bonus .cm-archive-card__main {
    grid-area: main;
    align-self: stretch;
    gap: 10px;
    min-width: 0;
    width: 100%;
    overflow: visible;
  }
  .cm-archive-bonus .cm-archive-grid .cm-archive-card--bonus .cm-archive-card__preview.cm-feat-prev,
  .cm-archive-bonus .cm-archive-grid .cm-archive-card--bonus .cm-archive-card__preview {
    grid-area: preview;
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }
  .cm-archive-bonus .cm-archive-grid .cm-archive-card--bonus .cm-archive-card__title.cm-bonus-card__title {
    display: block;
    font-size: 1.125rem;
    font-weight: 650;
    letter-spacing: -0.02em;
    line-height: 1.3;
    -webkit-line-clamp: unset;
    line-clamp: unset;
    overflow: visible;
    -webkit-box-orient: unset;
  }
  .cm-archive-bonus .cm-bonus-card .cm-bonus-card__casino {
    font-size: 12px;
    font-weight: 500;
    color: rgba(47, 36, 29, 0.42);
    letter-spacing: 0.01em;
  }
  .cm-archive-bonus .cm-bonus-card .cm-bonus-card__signals {
    display: flex;
    flex-direction: column;
    gap: 8px;
    width: 100%;
    min-width: 0;
    margin-top: 0;
    padding-top: 4px;
  }
  .cm-archive-bonus .cm-bonus-card .cm-bonus-card__signals-row--primary,
  .cm-archive-bonus .cm-bonus-card .cm-bonus-card__signals-row--secondary {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    align-content: flex-start;
    gap: 8px 10px;
    width: 100%;
    min-width: 0;
  }
  .cm-archive-bonus .cm-bonus-card .cm-bonus-card__signals-row--primary .cm-bonus-card__pill {
    padding: 4px 10px;
    font-size: 11px;
    flex-shrink: 0;
  }
  .cm-archive-bonus .cm-bonus-card .cm-bonus-card__signals:has(.cm-bonus-card__signals-row--primary) .cm-bonus-card__signals-row--secondary {
    margin-top: 0;
    padding-top: 8px;
    border-top: 1px solid rgba(47, 36, 29, 0.06);
  }
  .cm-archive-bonus .cm-bonus-card .cm-bonus-card__signals-row--secondary .cm-bonus-card__pill {
    font-size: 10.5px;
    flex-shrink: 0;
  }
  .cm-archive-bonus .cm-archive-grid .cm-archive-card--bonus .cm-archive-card__excerpt {
    display: block;
    margin-top: 6px;
    padding-top: 12px;
    border-top: 1px solid rgba(47, 36, 29, 0.07);
    border-top-color: rgba(47, 36, 29, 0.07);
    font-size: 13px;
    line-height: 1.6;
    letter-spacing: 0.01em;
    -webkit-line-clamp: unset;
    line-clamp: unset;
    overflow: visible;
    -webkit-box-orient: unset;
    opacity: 0.9;
    min-width: 0;
  }
  .cm-archive-bonus .cm-archive-grid .cm-archive-card--bonus .cm-archive-card__actions {
    grid-area: actions;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-start;
    gap: 10px 14px;
    width: 100%;
    max-width: none;
    justify-self: stretch;
    align-self: stretch;
    padding-top: 14px;
    margin-top: 2px;
    border-top: 1px solid rgba(47, 36, 29, 0.08);
  }
  .cm-archive-bonus .cm-archive-grid .cm-archive-card--bonus .cm-archive-card__btn {
    flex: 1 1 auto;
    width: auto;
    min-width: min(100%, 160px);
    max-width: 100%;
    min-height: 40px;
    padding: 10px 18px;
    font-size: 12px;
    font-weight: 700;
    white-space: nowrap;
    text-align: center;
    line-height: 1.2;
  }
}

/* Related sidebar: same card family, compact density */
.cm-sidebar-card.cm-archive-card--compact {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: flex-start;
}

/* Casino cards in .cm-archive-grid use the unified archive row shell (bonus/slot/payment/casino). */

/*
 * Archive teaser previews — fixed-height band (--cm-arch-preview-h). Scrollable cards use overflow on both axes so wide/tall images stay fully reachable.
 */
.cm-archive-card.cm-archive-card--casino .cm-archive-card__preview {
  grid-area: preview;
  margin: 0;
  padding: 0;
  min-width: 0;
  align-self: stretch;
  position: relative;
  border-radius: var(--cm-arch-preview-radius, 12px);
  overflow: hidden;
  background: var(--cm-arch-preview-bg, var(--cm-surface-soft));
  border: var(--cm-arch-preview-border, 1px solid var(--cm-border-subtle));
  box-shadow: 0 1px 3px rgba(47, 36, 29, 0.04), 0 8px 22px rgba(47, 36, 29, 0.045);
  height: var(--cm-arch-preview-h, 172px);
  max-height: var(--cm-arch-preview-h, 172px);
  min-height: var(--cm-arch-preview-h, 172px);
}
.cm-archive-card.cm-archive-card--casino .cm-archive-card__preview .cm-feat-prev__scroll {
  position: relative;
  height: 100%;
  max-height: 100%;
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  touch-action: pan-y;
  box-sizing: border-box;
  line-height: 0;
  border-radius: inherit;
  scrollbar-width: thin;
  scrollbar-color: rgba(47, 36, 29, 0.22) transparent;
  display: block;
}
.cm-archive-card.cm-archive-card--casino .cm-archive-card__preview .cm-feat-prev__scroll::-webkit-scrollbar {
  width: 5px;
  height: 5px;
}
.cm-archive-card.cm-archive-card--casino .cm-archive-card__preview .cm-feat-prev__scroll::-webkit-scrollbar-track {
  background: transparent;
}
.cm-archive-card.cm-archive-card--casino .cm-archive-card__preview .cm-feat-prev__scroll::-webkit-scrollbar-thumb {
  background: rgba(47, 36, 29, 0.2);
  border-radius: 5px;
}
.cm-archive-card.cm-archive-card--casino .cm-archive-card__preview .cm-feat-prev__scroll:focus-visible {
  outline: 2px solid var(--cm-border-focus);
  outline-offset: 2px;
}
.cm-archive-card.cm-archive-card--casino .cm-archive-card__preview .cm-feat-prev__scroll::after {
  content: '';
  display: block;
  position: sticky;
  bottom: 0;
  left: 0;
  right: 0;
  height: 32px;
  margin-top: -32px;
  pointer-events: none;
  background: linear-gradient(to bottom, transparent 0%, var(--cm-surface-soft) 100%);
  border-radius: 0 0 inherit inherit;
}
.cm-archive-card.cm-archive-card--casino .cm-archive-card__preview .cm-feat-prev__img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  vertical-align: top;
  position: relative;
  z-index: 0;
}

.cm-archive-grid .cm-archive-card.cm-archive-card--bonus.cm-archive-card--has-preview,
.cm-archive-grid .cm-archive-card.cm-archive-card--slot.cm-archive-card--has-preview,
.cm-archive-grid .cm-archive-card.cm-archive-card--payment.cm-archive-card--has-preview,
.cm-archive-grid .cm-archive-card.cm-archive-card--casino.cm-archive-card--has-preview {
  grid-template-areas:
    "media main actions"
    "preview preview preview";
  row-gap: 12px;
  align-items: start;
}
.cm-archive-grid .cm-archive-card.cm-archive-card--slot.cm-archive-card--has-preview {
  row-gap: 10px;
}
/* Slot cards without featured preview: modest min-height so rows sit closer to preview-card rhythm. */
.cm-archive-grid .cm-archive-card.cm-archive-card--slot:not(.cm-archive-card--has-preview) {
  min-height: 124px;
}
@media (min-width: 768px) {
  .cm-archive-grid .cm-archive-card.cm-archive-card--slot:not(.cm-archive-card--has-preview) {
    min-height: 132px;
  }
}
.cm-archive-grid .cm-archive-card--bonus .cm-archive-card__preview.cm-feat-prev,
.cm-archive-grid .cm-archive-card--payment .cm-archive-card__preview.cm-feat-prev {
  grid-area: preview;
  margin: 0;
  min-width: 0;
  align-self: stretch;
  border-radius: var(--cm-arch-preview-radius, 12px);
  overflow: hidden;
  background: var(--cm-arch-preview-bg, var(--cm-surface-soft));
  border: var(--cm-arch-preview-border, 1px solid var(--cm-border-subtle));
  box-shadow: 0 2px 12px rgba(47, 36, 29, 0.07);
  height: var(--cm-arch-preview-h, 172px);
  max-height: var(--cm-arch-preview-h, 172px);
  min-height: var(--cm-arch-preview-h, 172px);
}
.cm-archive-grid .cm-archive-card--bonus .cm-archive-card__preview.cm-feat-prev .cm-feat-prev__frame,
.cm-archive-grid .cm-archive-card--payment .cm-archive-card__preview.cm-feat-prev .cm-feat-prev__frame {
  height: 100%;
  min-height: 100%;
}
/* Bonus/payment list: cover crop so promo banners fill the band without letterboxing. */
.cm-archive-grid .cm-archive-card--bonus .cm-archive-card__preview.cm-feat-prev .cm-feat-prev__frame .cm-feat-prev__img,
.cm-archive-grid .cm-archive-card--payment .cm-archive-card__preview.cm-feat-prev .cm-feat-prev__frame .cm-feat-prev__img {
  object-fit: cover;
  object-position: center;
}

/* Bonus + payment archive: fixed-height box; vertical scroll only (image fills full width). */
.cm-archive-grid .cm-archive-card--bonus .cm-archive-card__preview.cm-feat-prev.cm-feat-prev--scroll .cm-feat-prev__scroll,
.cm-archive-grid .cm-archive-card--payment .cm-archive-card__preview.cm-feat-prev.cm-feat-prev--scroll .cm-feat-prev__scroll {
  position: relative;
  height: 100%;
  max-height: 100%;
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  touch-action: pan-y;
  box-sizing: border-box;
  line-height: 0;
  border-radius: inherit;
  scrollbar-width: thin;
  scrollbar-color: rgba(47, 36, 29, 0.22) transparent;
  display: block;
}
.cm-archive-grid .cm-archive-card--bonus .cm-archive-card__preview.cm-feat-prev.cm-feat-prev--scroll .cm-feat-prev__scroll::-webkit-scrollbar,
.cm-archive-grid .cm-archive-card--payment .cm-archive-card__preview.cm-feat-prev.cm-feat-prev--scroll .cm-feat-prev__scroll::-webkit-scrollbar {
  width: 5px;
  height: 5px;
}
.cm-archive-grid .cm-archive-card--bonus .cm-archive-card__preview.cm-feat-prev.cm-feat-prev--scroll .cm-feat-prev__scroll::-webkit-scrollbar-thumb,
.cm-archive-grid .cm-archive-card--payment .cm-archive-card__preview.cm-feat-prev.cm-feat-prev--scroll .cm-feat-prev__scroll::-webkit-scrollbar-thumb {
  background: rgba(47, 36, 29, 0.2);
  border-radius: 5px;
}
.cm-archive-grid .cm-archive-card--bonus .cm-archive-card__preview.cm-feat-prev.cm-feat-prev--scroll .cm-feat-prev__scroll::after,
.cm-archive-grid .cm-archive-card--payment .cm-archive-card__preview.cm-feat-prev.cm-feat-prev--scroll .cm-feat-prev__scroll::after {
  content: '';
  display: block;
  position: sticky;
  bottom: 0;
  left: 0;
  right: 0;
  height: 32px;
  margin-top: -32px;
  pointer-events: none;
  background: linear-gradient(to bottom, transparent 0%, var(--cm-surface-soft) 100%);
}
.cm-archive-grid .cm-archive-card--bonus .cm-archive-card__preview.cm-feat-prev.cm-feat-prev--scroll .cm-feat-prev__img,
.cm-archive-grid .cm-archive-card--payment .cm-archive-card__preview.cm-feat-prev.cm-feat-prev--scroll .cm-feat-prev__img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  vertical-align: top;
  position: relative;
  z-index: 0;
}

/* Slot archive: compact scrollable screenshot strip (logo/initials stay in the media column). */
.cm-archive-grid .cm-archive-card--slot .cm-archive-card__preview.cm-feat-prev {
  grid-area: preview;
  margin: 0;
  min-width: 0;
  align-self: stretch;
  border-radius: var(--cm-arch-preview-radius, 12px);
  overflow: hidden;
  background: var(--cm-arch-preview-bg, var(--cm-surface-soft));
  border: var(--cm-arch-preview-border, 1px solid var(--cm-border-subtle));
  box-shadow: 0 2px 12px rgba(47, 36, 29, 0.06);
  height: var(--cm-arch-preview-h, 172px);
  max-height: var(--cm-arch-preview-h, 172px);
  min-height: var(--cm-arch-preview-h, 172px);
}
.cm-archive-grid .cm-archive-card--slot .cm-archive-card__preview.cm-feat-prev .cm-feat-prev__frame {
  height: 100%;
  min-height: 100%;
}
.cm-archive-grid .cm-archive-card--slot .cm-archive-card__preview.cm-feat-prev .cm-feat-prev__frame .cm-feat-prev__img {
  object-fit: cover;
  object-position: center;
}
.cm-archive-grid .cm-archive-card--slot .cm-archive-card__preview.cm-feat-prev.cm-feat-prev--scroll .cm-feat-prev__scroll {
  position: relative;
  height: 100%;
  max-height: 100%;
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  touch-action: pan-y;
  box-sizing: border-box;
  line-height: 0;
  border-radius: inherit;
  scrollbar-width: thin;
  scrollbar-color: rgba(47, 36, 29, 0.22) transparent;
  display: block;
}
.cm-archive-grid .cm-archive-card--slot .cm-archive-card__preview.cm-feat-prev.cm-feat-prev--scroll .cm-feat-prev__scroll::-webkit-scrollbar {
  width: 5px;
  height: 5px;
}
.cm-archive-grid .cm-archive-card--slot .cm-archive-card__preview.cm-feat-prev.cm-feat-prev--scroll .cm-feat-prev__scroll::-webkit-scrollbar-thumb {
  background: rgba(47, 36, 29, 0.2);
  border-radius: 5px;
}
.cm-archive-grid .cm-archive-card--slot .cm-archive-card__preview.cm-feat-prev.cm-feat-prev--scroll .cm-feat-prev__scroll::after {
  content: '';
  display: block;
  position: sticky;
  bottom: 0;
  left: 0;
  right: 0;
  height: 32px;
  margin-top: -32px;
  pointer-events: none;
  background: linear-gradient(to bottom, transparent 0%, var(--cm-surface-soft) 100%);
}
.cm-archive-grid .cm-archive-card--slot .cm-archive-card__preview.cm-feat-prev.cm-feat-prev--scroll .cm-feat-prev__img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  vertical-align: top;
  position: relative;
  z-index: 0;
}
.cm-archive-grid .cm-archive-card--slot .cm-slot-card__strip-preview-fallback {
  min-height: 100%;
  box-sizing: border-box;
  background: linear-gradient(135deg, var(--cm-surface-soft) 0%, var(--cm-soft, rgba(47, 36, 29, 0.06)) 100%);
  display: flex;
  align-items: center;
  justify-content: center;
}
.cm-archive-grid .cm-archive-card--slot .cm-slot-card__strip-preview-fallback::after {
  content: '';
  display: flex;
  gap: 6px;
  width: 56px;
  height: 40px;
  opacity: 0.2;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 56 40'%3E%3Crect x='0' y='0' width='14' height='40' rx='3' fill='%232F241D'/%3E%3Crect x='21' y='0' width='14' height='40' rx='3' fill='%232F241D'/%3E%3Crect x='42' y='0' width='14' height='40' rx='3' fill='%232F241D'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-size: contain;
}

.cm-archive-card.cm-archive-card--casino .cm-archive-card__media {
  grid-area: media;
  display: flex;
  justify-content: center;
  align-items: flex-start;
  width: 48px;
  min-width: 48px;
  flex-shrink: 0;
}
.cm-archive-card.cm-archive-card--casino .cm-archive-card__media .cm-brand-thumb {
  width: 48px;
  height: 48px;
  min-width: 48px;
  min-height: 48px;
  border-radius: var(--cm-brand-radius, 8px);
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.cm-archive-card.cm-archive-card--casino .cm-archive-card__media .cm-brand-thumb img {
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  padding: 3px;
}
.cm-archive-card.cm-archive-card--casino .cm-archive-card__media .cm-brand-thumb--initials .cm-brand-thumb__initials {
  font-size: 13px;
  font-weight: 700;
}

.cm-archive-card.cm-archive-card--casino .cm-archive-card__main {
  grid-area: main;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 7px;
  align-self: stretch;
}

.cm-archive-card.cm-archive-card--casino .cm-archive-card__title {
  margin: 0;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.28;
  color: var(--cm-color-text);
  min-width: 0;
  /* Clamp on h2 (not the link) — avoids vertical letter stacking on the anchor */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  word-break: normal;
  overflow-wrap: normal;
  hyphens: manual;
}
.cm-archive-card.cm-archive-card--casino .cm-archive-card__title a {
  color: inherit;
  text-decoration: none;
  display: inline;
}
.cm-archive-card.cm-archive-card--casino .cm-archive-card__title a:hover {
  color: var(--cm-cta);
}
.cm-archive-card.cm-archive-card--casino .cm-archive-card__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 5px 6px;
  row-gap: 5px;
  min-width: 0;
}
.cm-archive-card.cm-archive-card--casino .cm-archive-card__rating {
  font-size: 12px;
  font-weight: 600;
  color: var(--cm-color-text);
  flex-shrink: 0;
}
.cm-archive-card.cm-archive-card--casino .cm-archive-card__pill {
  font-size: 10px;
  line-height: 1.35;
  font-weight: 600;
  letter-spacing: 0.04em;
  padding: 2px 8px;
  border-radius: 999px;
  border: 1px solid var(--cm-meta-chip-border);
  background: var(--cm-meta-chip-bg);
  color: var(--cm-meta-chip-text);
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.cm-archive-card.cm-archive-card--casino .cm-archive-card__excerpt {
  margin: 0;
  font-size: 12px;
  line-height: 1.5;
  color: var(--cm-text-muted);
  min-width: 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

@media (max-width: 767px) {
  .cm-archive-grid .cm-archive-card.cm-archive-card--bonus.cm-archive-card--has-preview,
  .cm-archive-grid .cm-archive-card.cm-archive-card--slot.cm-archive-card--has-preview,
  .cm-archive-grid .cm-archive-card.cm-archive-card--payment.cm-archive-card--has-preview,
  .cm-archive-grid .cm-archive-card.cm-archive-card--casino.cm-archive-card--has-preview {
    grid-template-areas:
      "media main"
      "preview preview"
      "actions actions";
    row-gap: 10px;
  }
  .cm-archive-card.cm-archive-card--casino .cm-archive-card__preview,
  .cm-archive-card.cm-archive-card--casino .cm-archive-card__preview .cm-feat-prev__scroll {
    max-height: var(--cm-arch-preview-h, 172px);
    height: var(--cm-arch-preview-h, 172px);
    min-height: var(--cm-arch-preview-h, 172px);
  }
  .cm-archive-card.cm-archive-card--casino .cm-archive-card__preview {
    border-radius: 10px;
    box-shadow: 0 1px 3px rgba(47, 36, 29, 0.04);
  }
  .cm-archive-card.cm-archive-card--casino .cm-archive-card__preview .cm-feat-prev__scroll {
    scrollbar-width: none;
    -ms-overflow-style: none;
  }
  .cm-archive-card.cm-archive-card--casino .cm-archive-card__preview .cm-feat-prev__scroll::-webkit-scrollbar {
    display: none;
    width: 0;
    height: 0;
  }
  .cm-archive-card.cm-archive-card--casino .cm-archive-card__preview .cm-feat-prev__scroll::after {
    display: none;
  }
  /* Bonus / slot / payment previews: height from .cm-archive-grid --cm-arch-preview-h (taller on mobile). */
  .cm-archive-grid .cm-archive-card--slot .cm-slot-card__thumb-frame {
    width: 44px;
    height: 44px;
    max-height: 44px;
  }

  /* Results-bar filter chips: comfortable tap targets, ~15px labels */
  .cm-resultsbar .cm-chips {
    gap: 7px 8px;
    width: 100%;
    justify-content: flex-start;
  }
  .cm-resultsbar .cm-chip {
    padding: 8px 14px;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.25;
    min-height: 40px;
  }
  .cm-resultsbar .cm-chip__x {
    font-size: 16px;
  }
  .cm-badges {
    gap: 4px 5px;
  }
  .cm-badge {
    padding: 2px 7px;
    font-size: var(--cm-meta-label-size);
    font-weight: 600;
    letter-spacing: var(--cm-meta-label-track);
    text-transform: uppercase;
    line-height: 1.35;
    background: var(--cm-meta-chip-bg);
    border: 1px solid var(--cm-meta-chip-border);
    color: var(--cm-meta-chip-text);
    border-radius: 999px;
  }
  .cm-archive-card.cm-archive-card--casino .cm-archive-card__pill {
    padding: 2px 7px;
    font-size: 10px;
  }

  .cm-archive-grid .cm-archive-card.cm-archive-card--bonus,
  .cm-archive-grid .cm-archive-card.cm-archive-card--slot,
  .cm-archive-grid .cm-archive-card.cm-archive-card--payment,
  .cm-archive-grid .cm-archive-card.cm-archive-card--casino {
    grid-template-columns: 44px minmax(0, 1fr);
    grid-template-areas:
      "media main"
      "actions actions";
    gap: 8px 10px;
    align-items: start;
    padding: 12px 14px;
  }
  .cm-archive-grid .cm-archive-card--casino .cm-archive-card__media {
    width: 44px;
    min-width: 44px;
    justify-content: flex-start;
  }
  .cm-archive-grid .cm-archive-card--casino .cm-archive-card__media .cm-brand-thumb {
    width: 44px;
    height: 44px;
    min-width: 44px;
    min-height: 44px;
  }
  .cm-archive-grid .cm-archive-card--casino .cm-archive-card__media .cm-brand-thumb img {
    padding: 3px;
  }
  .cm-archive-grid .cm-archive-card--casino .cm-archive-card__media .cm-brand-thumb--initials .cm-brand-thumb__initials {
    font-size: 11px;
  }
  .cm-archive-grid .cm-archive-card.cm-archive-card--bonus.cm-bonus-card {
    padding: 18px 16px;
    border-radius: 14px;
    gap: 12px 14px;
  }
  .cm-bonus-card__badge {
    width: 44px;
    height: 44px;
    border-radius: 10px;
  }
  .cm-bonus-card__badge-text {
    font-size: 11.5px;
    letter-spacing: 0.09em;
  }
  .cm-archive-grid .cm-archive-card--bonus .cm-archive-card__main {
    gap: 10px;
  }
  .cm-archive-grid .cm-archive-card--bonus .cm-archive-card__actions,
  .cm-archive-grid .cm-archive-card--slot .cm-archive-card__actions,
  .cm-archive-grid .cm-archive-card--payment .cm-archive-card__actions,
  .cm-archive-grid .cm-archive-card--casino .cm-archive-card__actions {
    width: 100%;
    max-width: none;
    justify-self: stretch;
    align-self: stretch;
    padding-top: 8px;
    border-top: 1px solid var(--cm-border-subtle);
    gap: 8px;
  }
  .cm-archive-grid .cm-archive-card--bonus .cm-archive-card__actions {
    padding-top: 12px;
    margin-top: 2px;
    gap: 10px;
  }
  .cm-archive-grid .cm-archive-card--bonus .cm-archive-card__btn,
  .cm-archive-grid .cm-archive-card--slot .cm-archive-card__btn,
  .cm-archive-grid .cm-archive-card--payment .cm-archive-card__btn,
  .cm-archive-grid .cm-archive-card--casino .cm-archive-card__btn {
    width: 100%;
    min-height: 44px;
    white-space: normal;
    text-align: center;
    line-height: 1.25;
  }
  .cm-archive-grid .cm-archive-card--bonus .cm-archive-card__main,
  .cm-archive-grid .cm-archive-card--slot .cm-archive-card__main,
  .cm-archive-grid .cm-archive-card--payment .cm-archive-card__main,
  .cm-archive-grid .cm-archive-card--casino .cm-archive-card__main {
    align-self: start;
  }
  .cm-archive-grid .cm-archive-card--bonus .cm-archive-card__title,
  .cm-archive-grid .cm-archive-card--slot .cm-archive-card__title,
  .cm-archive-grid .cm-archive-card--payment .cm-archive-card__title,
  .cm-archive-grid .cm-archive-card--casino .cm-archive-card__title {
    font-size: 15px;
  }
  .cm-archive-grid .cm-archive-card--bonus .cm-archive-card__title.cm-bonus-card__title {
    font-size: 15px;
  }
  .cm-archive-grid .cm-archive-card--bonus .cm-archive-card__excerpt,
  .cm-archive-grid .cm-archive-card--payment .cm-archive-card__excerpt,
  .cm-archive-grid .cm-archive-card--casino .cm-archive-card__excerpt {
    font-size: 11px;
    -webkit-line-clamp: 2;
  }
  .cm-archive-grid .cm-archive-card--slot .cm-archive-card__excerpt {
    font-size: 11.5px;
    line-height: 1.52;
    padding-top: 7px;
    -webkit-line-clamp: 2;
  }
  .cm-archive-grid .cm-archive-card--slot .cm-archive-card__title {
    font-size: 16px;
    font-weight: 700;
    letter-spacing: -0.012em;
  }
  .cm-archive-grid .cm-archive-card--slot .cm-archive-card__btn--secondary {
    min-height: 42px;
    font-size: 10px;
    letter-spacing: 0.05em;
  }
  .cm-archive-grid .cm-archive-card--slot .cm-slot-card__meta {
    gap: 6px 10px;
  }
  .cm-archive-grid .cm-archive-card--slot .cm-slot-card__chip--provider {
    font-size: 10px;
  }
  .cm-archive-grid .cm-archive-card--slot .cm-slot-card__type {
    font-size: 8px;
    padding: 2px 6px;
    letter-spacing: 0.08em;
  }

  /* Browse all / archive CTAs — lighter weight on mobile */
  .cm-archive .cm-btn,
  .cm-home-section__footer .cm-btn,
  .cm-home-section__cta .cm-btn {
    height: 32px;
    padding: 0 10px;
    font-size: 11px;
    font-weight: 600;
    border-radius: 6px;
  }
}

/* ============================================================
   DESKTOP POLISH (≥769px) — header, single heroes, related cards,
   footer, payment archive (does not override ≤768 mobile rules)
   ============================================================ */
@media (min-width: 768px) {
  /* — Header: balanced row, slightly stronger brand, intentional nav rhythm — */
  .cm-header__inner {
    padding: 15px 28px;
    gap: 22px;
  }
  .cm-brand {
    gap: 14px;
  }
  .cm-brand__logo-img {
    max-height: 40px;
  }
  .cm-nav {
    gap: 20px;
  }
  .cm-nav a {
    font-size: 14px;
    letter-spacing: 0.01em;
  }
  .cm-header__right {
    gap: 14px;
    align-items: center;
  }
  .cm-header__search--desktop {
    align-items: center;
  }
  .cm-search__input,
  .cm-search__btn {
    height: 38px;
  }
  .cm-search__btn {
    width: 38px;
  }

  /* — Single heroes (bonus / slot / guide): less dead air, stronger CTA column — */
  .cm-bonus-hero {
    padding: 14px 20px;
    gap: 10px 20px;
    margin-bottom: 16px;
  }
  .cm-bonus-hero__title {
    margin-bottom: 6px;
  }
  .cm-bonus-hero__ctas {
    min-width: 152px;
    max-width: 200px;
  }
  .cm-bonus-hero__ctas .cm-btn {
    padding: 9px 14px;
    font-size: 13px;
  }

  .cm-single-hero {
    padding: 16px 22px;
    gap: 0 20px;
    margin-bottom: 16px;
  }
  .cm-single-hero__title {
    margin-bottom: 6px;
  }
  .cm-single-hero__ctas .cm-btn {
    padding: 9px 14px;
    font-size: 13px;
  }

  .cm-slot-hero {
    padding: 14px 20px;
    gap: 10px 18px;
    margin-bottom: 16px;
  }
  .cm-slot-hero__title {
    margin-bottom: 2px;
  }
  .cm-slot-hero__ctas {
    min-width: 152px;
    max-width: 200px;
  }
  .cm-slot-hero__ctas .cm-btn {
    padding: 9px 14px;
    font-size: 13px;
  }

  .cm-guide-hero .cm-guide-hero__excerpt {
    margin-top: 4px;
  }

  /* — Related sidebar cards: denser hierarchy, less “empty box” — */
  .cm-casino-related__grid .cm-sidebar-card,
  .cm-bonus-related__grid .cm-sidebar-card,
  .cm-guide-related__grid .cm-sidebar-card,
  .cm-slot-guides .cm-sidebar-card,
  .cm-payment-related__grid .cm-sidebar-card {
    padding: 16px 18px;
    gap: 8px;
  }
  .cm-casino-related__grid .cm-sidebar-card__title,
  .cm-bonus-related__grid .cm-sidebar-card__title,
  .cm-guide-related__grid .cm-sidebar-card__title {
    font-size: 14px;
    margin-bottom: 4px;
    line-height: 1.35;
  }
  .cm-casino-related__grid .cm-sidebar-card__excerpt,
  .cm-bonus-related__grid .cm-sidebar-card__excerpt,
  .cm-guide-related__grid .cm-sidebar-card__excerpt,
  .cm-payment-related__grid .cm-sidebar-card__excerpt {
    font-size: 13px;
    line-height: 1.5;
    opacity: 0.88;
  }
  .cm-casino-related__grid .cm-sidebar-card__cta,
  .cm-bonus-related__grid .cm-sidebar-card__cta,
  .cm-guide-related__grid .cm-sidebar-card__cta,
  .cm-payment-related__grid .cm-sidebar-card__cta {
    margin-top: 6px;
    padding: 7px 14px;
    font-size: 12px;
  }

  /* — Footer: fuller columns, clearer type rhythm — */
  .cm-footer__inner {
    padding-top: 36px;
  }
  .cm-footer__brand {
    padding-bottom: 28px;
  }
  .cm-footer__tagline {
    max-width: 44ch;
    opacity: 0.82;
  }
  .cm-footer__grid {
    gap: 32px 48px;
    padding: 28px 0 12px;
  }
  .cm-footer__toggle {
    margin-bottom: 14px;
    font-size: 0.72rem;
    letter-spacing: 0.07em;
    opacity: 0.78;
  }
  .cm-footer__links li {
    margin: 0 0 11px;
  }
  .cm-footer__links a {
    font-size: 15px;
    opacity: 0.92;
  }
  .cm-footer__disclaimer {
    padding: 20px 0;
  }
  .cm-footer__responsible {
    max-width: 68ch;
  }
  .cm-footer__bottom {
    padding: 16px 0 22px;
  }

  /* Payment methods archive: slightly roomier desktop padding */
  .cm-archive-payment-methods .cm-archive-grid .cm-archive-card--payment {
    padding: 15px 18px;
    gap: 9px 13px;
  }
  .cm-archive-payment-methods .cm-archive-card--payment .cm-archive-card__excerpt {
    font-size: 12px;
    line-height: 1.45;
  }

  /* — Slot archive (/slots/): desktop “tile” feel — taller preview, art-first row, cleaner card shell — */
  .cm-archive-slots {
    --cm-arch-preview-h: 220px;
  }
  .cm-archive-slots .cm-archive-grid .cm-archive-card.cm-archive-card--slot {
    grid-template-columns: 56px minmax(0, 1fr);
    gap: 12px 16px;
    padding: 18px 20px;
    align-items: start;
    border-radius: 16px;
    background: #fff;
    border: 1px solid var(--cm-border-subtle);
    box-shadow: var(--cm-shadow-card);
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
  }
  .cm-archive-slots .cm-archive-grid .cm-archive-card.cm-archive-card--slot:hover {
    transform: translateY(-2px);
    box-shadow: var(--cm-shadow-section);
    border-color: var(--cm-border-strong);
    background: #fff;
  }
  /* Title + meta use full width beside thumb; CTA on its own row (no squeezed ellipsis). */
  .cm-archive-slots .cm-archive-grid .cm-archive-card.cm-archive-card--slot.cm-archive-card--has-preview {
    grid-template-areas:
      "preview preview"
      "media main"
      "actions actions";
    row-gap: 14px;
    column-gap: 16px;
  }
  .cm-archive-slots .cm-archive-grid .cm-archive-card--slot .cm-archive-card__actions {
    justify-self: stretch;
    width: 100%;
    max-width: none;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: flex-start;
    align-self: stretch;
    padding-top: 12px;
    margin-top: 2px;
    border-top: 1px solid rgba(47, 36, 29, 0.07);
    gap: 10px;
  }
  .cm-archive-slots .cm-archive-grid .cm-archive-card--slot .cm-archive-card__btn {
    width: auto;
    min-width: min(100%, 160px);
  }
  .cm-archive-slots .cm-archive-grid .cm-archive-card--slot .cm-archive-card__title {
    -webkit-line-clamp: 4;
  }
  .cm-archive-slots .cm-archive-grid .cm-archive-card--slot .cm-archive-card__media {
    width: 56px;
    min-width: 56px;
  }
  .cm-archive-slots .cm-archive-grid .cm-archive-card--slot .cm-archive-card__media .cm-brand-thumb {
    width: 56px;
    height: 56px;
    min-width: 56px;
    min-height: 56px;
  }
  .cm-archive-slots .cm-archive-grid .cm-archive-card--slot .cm-slot-card__thumb-frame {
    width: 56px;
    height: 56px;
    max-height: 56px;
  }
  .cm-archive-slots .cm-archive-grid .cm-archive-card--slot .cm-archive-card__main {
    gap: 10px;
  }
  .cm-archive-slots .cm-archive-grid .cm-archive-card--slot .cm-slot-card__meta {
    gap: 8px 16px;
    margin: 0;
    padding-top: 0;
  }
  .cm-archive-slots .cm-archive-grid .cm-archive-card--slot .cm-archive-card__excerpt {
    margin-top: 2px;
    padding-top: 8px;
  }
  .cm-archive-slots .cm-archive-grid .cm-archive-card--slot .cm-archive-card__preview.cm-feat-prev {
    height: var(--cm-arch-preview-h, 220px);
    min-height: var(--cm-arch-preview-h, 220px);
    max-height: var(--cm-arch-preview-h, 220px);
    flex-shrink: 0;
    border-radius: 14px;
  }
  .cm-archive-slots .cm-archive-grid .cm-archive-card--slot .cm-archive-card__preview.cm-feat-prev.cm-feat-prev--scroll .cm-feat-prev__scroll {
    min-height: var(--cm-arch-preview-h, 220px);
    max-height: var(--cm-arch-preview-h, 220px);
  }
}

@media (min-width: 768px) and (prefers-reduced-motion: reduce) {
  .cm-archive-slots .cm-archive-grid .cm-archive-card.cm-archive-card--slot {
    transition: none;
  }
  .cm-archive-slots .cm-archive-grid .cm-archive-card.cm-archive-card--slot:hover {
    transform: none;
  }
}

@media (min-width: 1024px) {
  .cm-header__search--desktop .cm-search__input {
    min-width: 260px;
  }
}

/* ============================================================
   MOBILE DRAWER — cascade lock (last in file; no dependency on body.cm-layout)
   Closed: no paint / no hit targets. Open: .is-open wins over [hidden] quirks.
   ============================================================ */
html body #cm-drawer-overlay:not(.is-open),
html body #cm-drawer:not(.is-open) {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}
html body #cm-drawer-overlay:not(.is-open) {
  position: fixed !important;
  inset: 0;
  height: 0 !important;
  min-height: 0 !important;
  max-height: 0 !important;
  overflow: hidden !important;
}
html body #cm-drawer:not(.is-open) {
  position: fixed !important;
  height: 0 !important;
  min-height: 0 !important;
  max-height: 0 !important;
  overflow: hidden !important;
  padding: 0 !important;
  margin: 0 !important;
  border: none !important;
  transform: translateX(100%) !important;
}
/* If any rule leaks visibility to descendants while parent should be closed */
html body #cm-drawer:not(.is-open) * {
  visibility: hidden !important;
  pointer-events: none !important;
}
/* Kill accidental duplicate drawer markup (blocks/patterns) */
html body nav.cm-drawer:not(#cm-drawer) {
  display: none !important;
}
/* Open state — must follow closed rules so expanded menu always shows */
html body #cm-drawer-overlay.is-open {
  display: block !important;
  visibility: visible !important;
  pointer-events: auto !important;
  height: 100% !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: visible !important;
}
html body #cm-drawer.is-open {
  display: flex !important;
  visibility: visible !important;
  pointer-events: auto !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: hidden !important;
  padding: 0 !important;
  margin: 0 !important;
  border-left: 1px solid var(--cm-border-subtle) !important;
  transform: translateX(0) !important;
}
html body #cm-drawer.is-open * {
  visibility: visible !important;
}

/* ── Premium polish: fine-pointer hover only (no touch layout shift) ───────── */
@media (hover: hover) and (pointer: fine) {
  .cm-btn--primary:hover {
    box-shadow: 0 4px 18px rgba(47, 36, 29, 0.09);
  }
  .cm-btn--secondary:hover,
  .cm-btn--ghost:hover {
    box-shadow: 0 1px 5px rgba(47, 36, 29, 0.035);
  }
  .cm-feature-card__cta.cm-btn:hover {
    box-shadow: 0 2px 10px rgba(47, 36, 29, 0.06);
  }
}

/* ═══════════════════════════════════════════════════════════════════════════
   PAYMENT ARCHIVE: vertical card layout
   High-specificity overrides placed at end of file to beat all base rules.
   Uses same grid-area names (media/main/actions/preview) so child rules
   keep working without modification.
═══════════════════════════════════════════════════════════════════════════ */

/* Card shell — 2-col grid: logo | content */
.cm-archive-payment-methods .cm-archive-grid .cm-archive-card.cm-archive-card--payment,
.cm-archive-payment-methods .cm-archive-grid .cm-archive-card.cm-archive-card--payment.cm-archive-card--has-preview {
  display: grid;
  grid-template-columns: 52px 1fr;
  grid-template-rows: auto auto auto;
  grid-template-areas:
    "media  main"
    "preview preview"
    "actions actions";
  gap: 0;
  padding: 0;
  overflow: hidden;
  align-items: start;
}

/* Logo column */
.cm-archive-payment-methods .cm-archive-grid .cm-archive-card.cm-archive-card--payment .cm-archive-card__media {
  grid-area: media;
  display: flex;
  justify-content: center;
  align-items: flex-start;
  width: 52px;
  min-width: 52px;
  padding: 14px 0 10px 13px;
}
.cm-archive-payment-methods .cm-archive-grid .cm-archive-card.cm-archive-card--payment .cm-archive-card__media .cm-brand-thumb {
  width: 38px;
  height: 38px;
  min-width: 38px;
  min-height: 38px;
}

/* Content column */
.cm-archive-payment-methods .cm-archive-grid .cm-archive-card.cm-archive-card--payment .cm-archive-card__main {
  grid-area: main;
  display: flex;
  flex-direction: column;
  gap: 5px;
  padding: 13px 13px 10px 8px;
  min-width: 0;
  align-self: center;
}
.cm-archive-payment-methods .cm-archive-grid .cm-archive-card.cm-archive-card--payment .cm-archive-card__title {
  font-size: 13px;
  font-weight: 700;
  line-height: 1.3;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  margin: 0;
}
.cm-archive-payment-methods .cm-archive-grid .cm-archive-card.cm-archive-card--payment .cm-archive-card__excerpt {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  font-size: 11.5px;
  line-height: 1.4;
}

/* Featured image preview band — full width, edge-to-edge */
.cm-archive-payment-methods .cm-archive-grid .cm-archive-card.cm-archive-card--payment .cm-archive-card__preview.cm-feat-prev {
  grid-area: preview;
  width: 100%;
  height: 140px;
  min-height: 140px;
  max-height: 140px;
  border-radius: 0;
  border: none;
  border-top: 1px solid var(--cm-border-subtle);
  box-shadow: none;
  margin: 0;
}
.cm-archive-payment-methods .cm-archive-grid .cm-archive-card.cm-archive-card--payment .cm-archive-card__preview.cm-feat-prev .cm-feat-prev__frame {
  height: 100%;
  min-height: 100%;
  border-radius: 0;
}

/* Logo-band fallback */
.cm-archive-payment-methods .cm-archive-grid .cm-archive-card.cm-archive-card--payment .cm-payment-card__logo-band {
  grid-area: preview;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 140px;
  min-height: 140px;
  border-top: 1px solid var(--cm-border-subtle);
  background: linear-gradient(155deg, var(--cm-surface-soft, #f4efe9) 0%, #fff 55%, var(--cm-surface-soft, #f4efe9) 100%);
  position: relative;
  overflow: hidden;
}
.cm-archive-payment-methods .cm-archive-grid .cm-archive-card.cm-archive-card--payment .cm-payment-card__logo-band::after {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,255,255,0.65) 0%, transparent 68%);
  pointer-events: none;
}
.cm-archive-payment-methods .cm-archive-grid .cm-archive-card.cm-archive-card--payment .cm-payment-card__logo-band img {
  width: 68px;
  height: 68px;
  object-fit: contain;
  filter: drop-shadow(0 2px 8px rgba(0,0,0,0.10));
  opacity: 0.82;
  position: relative;
  z-index: 1;
}

/* Actions row — button at bottom right */
.cm-archive-payment-methods .cm-archive-grid .cm-archive-card.cm-archive-card--payment .cm-archive-card__actions {
  grid-area: actions;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  padding: 9px 13px;
  width: auto;
  justify-self: unset;
  align-self: unset;
}
.cm-archive-payment-methods .cm-archive-grid .cm-archive-card.cm-archive-card--payment .cm-archive-card__btn--secondary {
  font-size: 12px;
  font-weight: 700;
  padding: 7px 13px;
  min-height: 34px;
  border-radius: 8px;
  white-space: nowrap;
}

@media (max-width: 479px) {
  .cm-archive-payment-methods .cm-archive-grid .cm-archive-card.cm-archive-card--payment .cm-archive-card__preview.cm-feat-prev,
  .cm-archive-payment-methods .cm-archive-grid .cm-archive-card.cm-archive-card--payment .cm-payment-card__logo-band {
    height: 110px;
    min-height: 110px;
    max-height: 110px;
  }
}

/* ============================================================
   PROVIDER TAXONOMY HUB — stats panel, body, actions
   ============================================================ */

/* Hero variant: compact when provider stats are shown */
.cm-term-hero--provider {
  padding-bottom: 24px;
}
.cm-term-hero--provider .cm-term-subtitle {
  margin-bottom: 16px;
}

/* Stats row: 4 pills in a flex row */
.cm-provider-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 14px;
}
.cm-provider-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 72px;
  padding: 8px 14px;
  background: var(--cm-surface, #fff);
  border: 1px solid var(--hub-border, #e5e7eb);
  border-radius: 8px;
  text-align: center;
}
.cm-provider-stat__val {
  font-size: 15px;
  font-weight: 700;
  color: var(--hub-text, #111827);
  line-height: 1.2;
  display: flex;
  align-items: center;
  gap: 3px;
}
.cm-provider-stat__star {
  color: #f59e0b;
  font-size: 13px;
}
.cm-provider-stat__lbl {
  font-size: 11px;
  font-weight: 500;
  color: var(--hub-muted, #6b7280);
  margin-top: 3px;
  text-transform: uppercase;
  letter-spacing: .04em;
}

/* Top titles line */
.cm-provider-topgames {
  margin: 0 0 14px;
  font-size: 13px;
  color: var(--hub-muted, #6b7280);
  line-height: 1.5;
}
.cm-provider-topgames__label {
  font-weight: 600;
  color: var(--hub-text, #111827);
  margin-right: 4px;
}

/* CTA row: Casino Guide button + Browse all */
.cm-provider-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  margin-top: 4px;
}
.cm-term__browseall--guide {
  background: var(--cm-accent, #2563eb);
  color: #fff;
  border-color: var(--cm-accent, #2563eb);
}
.cm-term__browseall--guide:hover {
  background: var(--cm-accent-dark, #1d4ed8);
  border-color: var(--cm-accent-dark, #1d4ed8);
  color: #fff;
}

/* Provider intro: full-width content section below hero */
.cm-provider-intro-section {
  margin: 0 0 24px;
}
.cm-provider-intro-section .cm-provider-body {
  padding: 28px 32px;
  background: var(--cm-surface, #fff);
  border: 1px solid var(--hub-border, #e5e7eb);
  border-radius: var(--hub-r-section, 12px);
  font-size: 14px;
  line-height: 1.7;
  color: var(--cm-text, #374151);
}
.cm-provider-intro-section .cm-provider-body h2 {
  font-size: 17px;
  font-weight: 700;
  margin: 24px 0 8px;
  color: var(--hub-text, #111827);
}
.cm-provider-intro-section .cm-provider-body h2:first-child {
  margin-top: 0;
}
.cm-provider-intro-section .cm-provider-body ul {
  margin: 0 0 12px;
  padding-left: 20px;
}
.cm-provider-intro-section .cm-provider-body li {
  margin-bottom: 4px;
}
.cm-provider-intro-section .cm-provider-body a {
  color: var(--cm-accent, #2563eb);
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* Responsive */
@media (max-width: 480px) {
  .cm-provider-stats {
    gap: 6px;
  }
  .cm-provider-stat {
    min-width: 60px;
    padding: 7px 10px;
  }
  .cm-provider-stat__val {
    font-size: 13px;
  }
  .cm-provider-intro-section .cm-provider-body {
    padding: 20px 16px;
  }
}

/* =====================================================
   Bonus card: casino logo inline with casino name
   ===================================================== */
.cm-bonus-card__casino {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: var(--hub-muted, #6b7280);
  margin: 4px 0 6px;
}
.cm-bonus-card__casino .cm-brand-thumb {
  flex-shrink: 0;
  border-radius: 4px;
  overflow: hidden;
  border: 1px solid rgba(0,0,0,.08);
  background: var(--cm-surface, #fff);
}
.cm-bonus-card__casino-name {
  font-weight: 500;
  color: var(--hub-text, #111827);
  text-decoration: none;
  font-size: 12px;
}
.cm-bonus-card__casino-name:hover {
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* =====================================================
   Payment method card: prominent logo + type icon
   ===================================================== */
.cm-payment-card__thumb {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
}
.cm-brand-thumb--payment {
  border-radius: 12px;
  border: 1px solid rgba(0,0,0,.07);
  background: var(--cm-surface, #fff);
  box-shadow: 0 1px 4px rgba(0,0,0,.06);
}
.cm-brand-thumb--payment img {
  object-fit: contain;
  padding: 6px;
}
.cm-brand-thumb--payment .cm-brand-thumb__initials {
  font-size: 18px;
  font-weight: 700;
  color: var(--cm-accent, #6366f1);
}

/* =====================================================
   Homepage: stat strip in hero
   ===================================================== */
.cm-home-hero__stats {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 8px;
  margin: 12px 0 4px;
  font-size: 13px;
  color: var(--cm-text-muted, #6b7280);
}
.cm-home-hero__stat strong {
  color: var(--cm-accent, #6366f1);
  font-weight: 700;
}
.cm-home-hero__stat-sep {
  color: var(--cm-border, #e5e7eb);
}

/* =====================================================
   Homepage: bonus cards — value + wagering
   ===================================================== */
.cm-home-item-list__row--bonus {
  align-items: center;
}
.cm-home-bonus-logo {
  flex-shrink: 0;
  display: flex;
  align-items: center;
}
.cm-home-bonus-value {
  display: block;
  font-size: 15px;
  font-weight: 700;
  color: var(--cm-accent, #6366f1);
  line-height: 1.2;
  margin-bottom: 2px;
}
.cm-home-bonus-wager {
  display: block;
  font-size: 11px;
  color: var(--cm-text-muted, #9ca3af);
  margin-top: 2px;
}

/* =====================================================
   Homepage: slot rows — RTP + provider meta
   ===================================================== */
.cm-home-item-list__row--slot .cm-home-item-list__row-hit {
  align-items: flex-start;
}
.cm-home-item-list__slot-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.cm-home-slot-meta {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  color: var(--cm-text-muted, #9ca3af);
  line-height: 1.2;
}
.cm-home-slot-meta__provider {
  font-weight: 500;
  color: var(--cm-text-secondary, #6b7280);
}
.cm-home-slot-meta__rtp {
  background: var(--cm-surface-alt, #f3f4f6);
  padding: 1px 5px;
  border-radius: 4px;
  font-size: 10px;
  font-weight: 600;
  color: var(--cm-text-secondary, #374151);
}

/* =====================================================
   Homepage: How We Rate methodology section
   ===================================================== */
.cm-home-how-we-rate,
.cm-home-dir-block--bonuses-home {
  grid-column: 1 / -1;
}
.cm-home-rate-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
@media (max-width: 600px) {
  .cm-home-rate-list {
    grid-template-columns: 1fr;
  }
}
.cm-home-rate-list__item {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  background: var(--cm-surface, #fff);
  border: 1px solid var(--cm-border, #e5e7eb);
  border-radius: 10px;
  padding: 14px;
}
.cm-home-rate-list__icon {
  font-size: 22px;
  line-height: 1;
  flex-shrink: 0;
  margin-top: 1px;
}
.cm-home-rate-list__item strong {
  display: block;
  font-size: 13px;
  font-weight: 600;
  color: var(--cm-text, #111827);
  margin-bottom: 3px;
}
.cm-home-rate-list__item p {
  font-size: 12px;
  color: var(--cm-text-muted, #6b7280);
  margin: 0;
  line-height: 1.5;
}

/* =====================================================
   Typography — Syne display font for headings
   ===================================================== */

/* Hero */
.cm-home-hero__title,
.cm-page-hero__title,
.cm-archive-hero__title {
  font-family: 'Syne', sans-serif;
  font-weight: 800;
  letter-spacing: -0.025em;
}

/* Section headings in the homepage grid */
.cm-home-dir-block__title {
  font-family: 'Syne', sans-serif;
  font-weight: 700;
  letter-spacing: -0.01em;
}

/* Single casino/slot/guide page headings */
.cm-single .entry-title,
.cm-single h1,
.cm-layout .cm-page-header h1 {
  font-family: 'Syne', sans-serif;
  font-weight: 800;
  letter-spacing: -0.025em;
}

/* Archive page headings */
.cm-layout h1.page-title,
.cm-layout .cm-archive-title {
  font-family: 'Syne', sans-serif;
  font-weight: 800;
  letter-spacing: -0.02em;
}

/* =====================================================
   Top Casinos — ranking list upgrades
   ===================================================== */

/* Bonus chip: small green badge below casino title */
.cm-home-rank-list__bonus-chip {
  display: inline-block;
  font-size: 10px;
  font-weight: 600;
  color: #15803d;
  background: #dcfce7;
  border-radius: 3px;
  padding: 1px 5px;
  line-height: 1.4;
  white-space: nowrap;
  flex-shrink: 0;
}

/* #1 casino: gold left border + subtle warm tint + slightly larger logo */
.cm-home-rank-list__item--rank-1 {
  border-left: 3px solid #d4a017;
  padding-left: 8px;
  margin-left: -8px;
  background: rgba(212, 160, 23, 0.05);
  border-radius: 6px;
}
.cm-home-rank-list__item--rank-1 .cm-home-rank-list__num {
  color: #d4a017;
  font-size: 12px;
  font-weight: 800;
}
.cm-home-rank-list__item--rank-1 .cm-home-rank-list__title {
  font-size: 13px;
  font-weight: 700;
}

/* Rank-1 sm logo sizing inside ranking list */
.cm-home-rank-list__logo .cm-brand-thumb--sm {
  width: 32px;
  height: 32px;
  min-width: 32px;
  min-height: 32px;
}
.cm-home-rank-list__logo .cm-brand-thumb--sm img {
  padding: 2px;
}
.cm-home-rank-list__logo .cm-brand-thumb--sm.cm-brand-thumb--initials .cm-brand-thumb__initials {
  font-size: 11px;
}

/* Desktop upgrade: bigger text + visit button now that ranking has full 1fr column */
@media (min-width: 900px) {
  .cm-home-dir-block--ranking .cm-home-rank-list__item--dual {
    padding: 7px 4px;
  }
  .cm-home-dir-block--ranking .cm-home-rank-list__title {
    font-size: 13px;
  }
  .cm-home-dir-block--ranking .cm-home-rank-list__rating {
    font-size: 11px;
  }
  .cm-home-dir-block--ranking .cm-home-rank-list__rating-star {
    font-size: 11px;
  }
  .cm-home-dir-block--ranking .cm-home-rank-list__visit--btn {
    padding: 4px 12px;
    font-size: 11px;
    font-weight: 600;
    min-height: 28px;
    border-radius: 6px;
    color: #fff;
    background: var(--cm-cta, #c45c26);
    border-color: var(--cm-cta, #c45c26);
  }
  .cm-home-dir-block--ranking .cm-home-rank-list__visit--btn:hover {
    background: var(--cm-cta-hover, #a34d20);
    border-color: var(--cm-cta-hover, #a34d20);
    color: #fff;
  }
  /* Rank number: more prominent */
  .cm-home-dir-block--ranking .cm-home-rank-list__num {
    font-size: 11px;
    flex: 0 0 1.5rem;
    width: 1.5rem;
  }
  /* XS logos in ranking: bump to 26px on desktop */
  .cm-home-dir-block--ranking .cm-home-rank-list__logo .cm-brand-thumb--xs {
    width: 26px;
    height: 26px;
    min-width: 26px;
    min-height: 26px;
  }
}
