/* ==========================================================================
   Hellspin Casino Australia — global stylesheet
   Independent informational website. Vanilla CSS3, mobile-first.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Design tokens
   -------------------------------------------------------------------------- */
:root {
  --bg-primary: #0b0710;
  --bg-secondary: #14101d;
  --bg-card: #1b1526;
  --bg-elevated: #221a2f;
  --border: #2e2540;
  --border-strong: #3d3153;

  --accent: #ff5a1f;
  --accent-soft: #ff8a4c;
  --accent-deep: #c22f00;
  --gold: #f5b301;
  --gold-soft: #ffd464;

  --text-primary: #ffffff;
  --text-secondary: #b9b3c7;
  --text-muted: #8b849c;

  --positive: #3ddc97;
  --caution: #ffc857;
  --negative: #ff6b6b;

  --radius-sm: 8px;
  --radius: 14px;
  --radius-lg: 22px;

  --shadow-sm: 0 2px 10px rgba(0, 0, 0, .35);
  --shadow: 0 14px 40px rgba(0, 0, 0, .45);
  --shadow-accent: 0 10px 30px rgba(255, 90, 31, .28);

  --max: 1160px;
  --gutter: 20px;

  --font-body: "Segoe UI", "Helvetica Neue", Arial, "Noto Sans", sans-serif;
  --font-head: "Trebuchet MS", "Segoe UI", "Helvetica Neue", Arial, sans-serif;

  --ease: cubic-bezier(.22, .61, .36, 1);
}

/* --------------------------------------------------------------------------
   2. Reset and base
   -------------------------------------------------------------------------- */
*,
*::before,
*::after { box-sizing: border-box; }

html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
  padding: 0;
  background: var(--bg-primary);
  color: var(--text-secondary);
  font-family: var(--font-body);
  font-size: 17px;
  line-height: 1.72;
  overflow-x: hidden;
  background-image:
    radial-gradient(circle at 14% -8%, rgba(255, 90, 31, .16), transparent 46%),
    radial-gradient(circle at 88% 4%, rgba(120, 60, 200, .16), transparent 44%);
  background-attachment: fixed;
}

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

h1, h2, h3, h4 {
  font-family: var(--font-head);
  color: var(--text-primary);
  line-height: 1.24;
  margin: 0 0 .6em;
  letter-spacing: -.01em;
}

h1 { font-size: clamp(2rem, 5.4vw, 3.15rem); }
h2 { font-size: clamp(1.5rem, 3.6vw, 2.15rem); margin-top: 1.9em; }
h3 { font-size: clamp(1.15rem, 2.4vw, 1.4rem); margin-top: 1.6em; }
h4 { font-size: 1.05rem; margin-top: 1.4em; }

p { margin: 0 0 1.15em; }

a {
  color: var(--accent-soft);
  text-decoration: none;
  border-bottom: 1px solid rgba(255, 138, 76, .35);
  transition: color .2s var(--ease), border-color .2s var(--ease);
}

a:hover,
a:focus { color: var(--gold-soft); border-bottom-color: var(--gold-soft); }

[hidden] { display: none !important; }

ul, ol { margin: 0 0 1.2em; padding-left: 1.35em; }
li { margin-bottom: .5em; }

strong { color: var(--text-primary); font-weight: 600; }

hr {
  border: 0;
  border-top: 1px solid var(--border);
  margin: 2.5rem 0;
}

/* Visible focus for every interactive element */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible {
  outline: 3px solid var(--gold);
  outline-offset: 3px;
  border-radius: 4px;
}

.skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 200;
  background: var(--gold);
  color: #1a1000;
  padding: 12px 20px;
  font-weight: 700;
  border-radius: 0 0 var(--radius-sm) 0;
  border-bottom: none;
}

.skip-link:focus {
  left: 0;
  color: #1a1000;
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

/* --------------------------------------------------------------------------
   3. Layout helpers
   -------------------------------------------------------------------------- */
.container {
  width: 100%;
  max-width: var(--max);
  margin: 0 auto;
  padding: 0 var(--gutter);
}

.section { padding: 54px 0; }
.section--tight { padding: 34px 0; }

.section--alt {
  background: linear-gradient(180deg, rgba(20, 16, 29, 0), rgba(20, 16, 29, .85) 22%, rgba(20, 16, 29, .85) 78%, rgba(20, 16, 29, 0));
}

.lede {
  font-size: 1.1rem;
  color: var(--text-secondary);
}

.eyebrow {
  display: inline-block;
  font-size: .78rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--gold);
  font-weight: 700;
  margin-bottom: .6rem;
}

.text-centre { text-align: center; }

/* --------------------------------------------------------------------------
   4. Header and navigation
   -------------------------------------------------------------------------- */
.site-header {
  position: sticky;
  top: 0;
  z-index: 90;
  background: rgba(11, 7, 16, .92);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--border);
}

.header-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 68px;
}

.brand {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: var(--font-head);
  font-size: 1.16rem;
  font-weight: 800;
  color: var(--text-primary);
  border-bottom: none;
  letter-spacing: -.02em;
}

.brand:hover, .brand:focus { color: var(--gold-soft); }

.brand-logo { width: 152px; height: auto; }

.brand-mark {
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  border-radius: 10px;
  background: linear-gradient(140deg, var(--accent), var(--accent-deep));
  display: grid;
  place-items: center;
  font-size: 1.05rem;
  box-shadow: var(--shadow-accent);
}

.brand-name small {
  display: block;
  font-size: .62rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--text-muted);
  font-weight: 600;
}

.nav-toggle {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  background: var(--bg-card);
  border: 1px solid var(--border-strong);
  color: var(--text-primary);
  font: inherit;
  font-size: .9rem;
  font-weight: 600;
  padding: 9px 14px;
  border-radius: var(--radius-sm);
  cursor: pointer;
}

.nav-toggle:hover { border-color: var(--accent); }

.nav-toggle-bars {
  position: relative;
  width: 18px;
  height: 12px;
  flex: 0 0 18px;
}

.nav-toggle-bars span,
.nav-toggle-bars span::before,
.nav-toggle-bars span::after {
  position: absolute;
  left: 0;
  width: 100%;
  height: 2px;
  background: var(--accent);
  border-radius: 2px;
  transition: transform .25s var(--ease), opacity .18s linear;
}

.nav-toggle-bars span { top: 5px; }
.nav-toggle-bars span::before { content: ""; top: -5px; }
.nav-toggle-bars span::after { content: ""; top: 5px; }

.nav-toggle[aria-expanded="true"] .nav-toggle-bars span { background: transparent; }
.nav-toggle[aria-expanded="true"] .nav-toggle-bars span::before { transform: translateY(5px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] .nav-toggle-bars span::after { transform: translateY(-5px) rotate(-45deg); }

.site-nav {
  display: none;
  width: 100%;
  padding-bottom: 14px;
}

.site-nav.is-open { display: block; }

.site-nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.site-nav a {
  display: block;
  padding: 12px 14px;
  border-radius: var(--radius-sm);
  color: var(--text-secondary);
  font-weight: 600;
  font-size: .96rem;
  border-bottom: none;
  border-left: 3px solid transparent;
}

.site-nav a:hover,
.site-nav a:focus { background: var(--bg-card); color: var(--text-primary); }

.site-nav a[aria-current="page"] {
  color: var(--gold);
  border-left-color: var(--accent);
  background: var(--bg-card);
}

/* --------------------------------------------------------------------------
   5. Age and compliance strip
   -------------------------------------------------------------------------- */
.age-strip {
  background: linear-gradient(90deg, var(--accent-deep), #6a1f8f);
  color: #fff;
  font-size: .8rem;
  font-weight: 600;
  letter-spacing: .02em;
  text-align: center;
  padding: 8px var(--gutter);
}

.age-strip span { display: inline; }

.badge-18 {
  display: inline-grid;
  place-items: center;
  min-width: 34px;
  height: 22px;
  padding: 0 8px;
  margin-right: 8px;
  border-radius: 999px;
  background: #fff;
  color: #8c1c00;
  font-weight: 800;
  font-size: .74rem;
  vertical-align: middle;
}

/* --------------------------------------------------------------------------
   6. Buttons
   -------------------------------------------------------------------------- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-height: 50px;
  padding: 13px 26px;
  border-radius: 999px;
  border: 1px solid transparent;
  font-family: var(--font-head);
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: .01em;
  cursor: pointer;
  text-align: center;
  transition: transform .18s var(--ease), box-shadow .18s var(--ease), background .18s var(--ease);
}

.btn--primary {
  background: linear-gradient(135deg, var(--accent), var(--accent-deep));
  color: #fff;
  box-shadow: var(--shadow-accent);
}

.btn--primary:hover,
.btn--primary:focus {
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 16px 38px rgba(255, 90, 31, .4);
}

.btn--ghost {
  background: transparent;
  border-color: var(--border-strong);
  color: var(--text-primary);
}

.btn--ghost:hover,
.btn--ghost:focus {
  border-color: var(--gold);
  color: var(--gold-soft);
  transform: translateY(-2px);
}

.btn-row {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin: 26px 0 0;
}

a.btn { border-bottom: none; }

/* --------------------------------------------------------------------------
   7. Hero
   -------------------------------------------------------------------------- */
.hero {
  position: relative;
  padding: 52px 0 46px;
  overflow: hidden;
  background-color: var(--bg-primary);
  background-image: url("images/hero-bg.webp");
  background-size: cover;
  background-position: 62% center;
  background-repeat: no-repeat;
}

/* Scrim: keeps the hero copy legible over the artwork and fades the
   image into the page background at the bottom. */
.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(11, 7, 16, .62) 0%, rgba(11, 7, 16, .34) 38%, rgba(11, 7, 16, .88) 84%, var(--bg-primary) 100%),
    linear-gradient(90deg, rgba(11, 7, 16, .86) 0%, rgba(11, 7, 16, .74) 42%, rgba(11, 7, 16, .30) 74%, rgba(11, 7, 16, .48) 100%);
  pointer-events: none;
}

.hero-inner {
  position: relative;
  display: grid;
  gap: 34px;
}

.hero h1 { margin-bottom: .4em; }

.hero h1 .accent {
  background: linear-gradient(100deg, var(--accent-soft), var(--gold));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.hero-intro { font-size: 1.1rem; }

.hero-note {
  margin-top: 22px;
  padding: 14px 18px;
  border-left: 3px solid var(--gold);
  background: rgba(245, 179, 1, .07);
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  font-size: .92rem;
  color: var(--text-secondary);
}

.hero--flat::before { background: rgba(11, 7, 16, .72); }

.hero-visual {
  position: relative;
  border-radius: var(--radius-lg);
  overflow: hidden;
  border: 1px solid var(--border-strong);
  box-shadow: var(--shadow);
  background: var(--bg-card);
}

.hero-visual img { width: 100%; }

.image-placeholder {
  padding: 10px 16px;
  text-align: center;
  color: var(--text-muted);
  font-size: .78rem;
  border-top: 1px solid var(--border);
  background: var(--bg-secondary);
}

.image-placeholder code {
  color: var(--text-secondary);
  font-size: .95em;
  word-break: break-all;
}

/* --------------------------------------------------------------------------
   8. Cards and grids
   -------------------------------------------------------------------------- */
.grid {
  display: grid;
  gap: 20px;
}

.grid--2 { grid-template-columns: 1fr; }
.grid--3 { grid-template-columns: 1fr; }

.card {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 24px;
  box-shadow: var(--shadow-sm);
}

.card h3 { margin-top: 0; }

.card--accent { border-color: rgba(255, 90, 31, .45); }

.card--flat { background: var(--bg-secondary); }

.card p:last-child, .card ul:last-child { margin-bottom: 0; }

/* Subject identification: whose logo this is and why it is here */
.subject-mark {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px 22px;
  margin: 0 0 18px;
  padding: 16px 20px;
  background: var(--bg-secondary);
  border: 1px solid var(--border);
  border-radius: var(--radius);
}

.subject-mark img {
  width: 168px;
  height: auto;
  flex: 0 0 auto;
}

.subject-mark p {
  flex: 1 1 280px;
  margin: 0;
  font-size: .86rem;
  color: var(--text-muted);
  line-height: 1.6;
}

/* Quick facts */
.facts {
  display: grid;
  gap: 0;
  background: var(--bg-card);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: var(--shadow);
}

.facts-row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2px;
  padding: 15px 20px;
  border-bottom: 1px solid var(--border);
}

.facts-row:last-child { border-bottom: none; }
.facts-row:nth-child(odd) { background: rgba(255, 255, 255, .015); }

.facts-key {
  font-family: var(--font-head);
  font-weight: 700;
  color: var(--gold);
  font-size: .82rem;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.facts-val { color: var(--text-primary); font-size: .98rem; }

/* Pros and cons */
.proscons { display: grid; gap: 20px; }

.proscons-col {
  border-radius: var(--radius);
  border: 1px solid var(--border);
  padding: 22px 24px;
  background: var(--bg-card);
}

.proscons-col h3 {
  margin-top: 0;
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 1.15rem;
}

.proscons-col ul { list-style: none; padding: 0; margin: 0; }

.proscons-col li {
  position: relative;
  padding-left: 30px;
  margin-bottom: .75em;
}

.proscons-col li::before {
  position: absolute;
  left: 0;
  top: 0;
  font-weight: 800;
}

.proscons--pro { border-color: rgba(61, 220, 151, .35); }
.proscons--pro h3 { color: var(--positive); }
.proscons--pro li::before { content: "\002B"; color: var(--positive); }

.proscons--con { border-color: rgba(255, 200, 87, .35); }
.proscons--con h3 { color: var(--caution); }
.proscons--con li::before { content: "\2212"; color: var(--caution); }

/* Numbered step lists */
.steps {
  counter-reset: step;
  list-style: none;
  margin: 0 0 1.4em;
  padding: 0 0 0 22px;
  display: grid;
  gap: 14px;
}

/* Timeline spine: a continuous line the numbered markers sit on. */
.steps > li {
  counter-increment: step;
  position: relative;
  margin: 0;
  padding: 16px 20px 16px 34px;
  border-radius: var(--radius);
  border: 1px solid var(--border);
  border-left: 2px solid rgba(255, 90, 31, .3);
  background:
    linear-gradient(90deg, rgba(255, 90, 31, .07) 0%, rgba(255, 90, 31, 0) 42%),
    var(--bg-card);
  transition: border-color .18s var(--ease), transform .18s var(--ease);
}

.steps > li:hover {
  border-color: var(--border-strong);
  border-left-color: var(--accent);
  transform: translateX(2px);
}

/* The marker straddles the card edge so the sequence reads down the spine. */
.steps > li::before {
  content: counter(step);
  position: absolute;
  left: -17px;
  top: 15px;
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  border: 3px solid var(--bg-primary);
  background: linear-gradient(140deg, var(--accent-soft), var(--accent-deep));
  color: #fff;
  font-family: var(--font-head);
  font-size: .85rem;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  box-shadow: 0 4px 12px rgba(0, 0, 0, .45);
}

/* Connector between consecutive markers. */
.steps > li:not(:last-child)::after {
  content: "";
  position: absolute;
  left: -2px;
  top: 47px;
  bottom: -17px;
  width: 2px;
  background: linear-gradient(180deg, rgba(255, 90, 31, .45), rgba(255, 90, 31, .12));
}

.steps > li > strong:first-child,
.steps > li > b:first-child { color: var(--gold); }

@media (prefers-reduced-motion: reduce) {
  .steps > li { transition: none; }
  .steps > li:hover { transform: none; }
}

/* Callout */
.callout {
  border-radius: var(--radius);
  border: 1px solid var(--border-strong);
  border-left: 4px solid var(--accent);
  background: var(--bg-secondary);
  padding: 20px 24px;
  margin: 28px 0;
}

.callout h3 { margin-top: 0; }
.callout p:last-child { margin-bottom: 0; }

.callout--gold { border-left-color: var(--gold); }
.callout--support { border-left-color: var(--positive); }
.callout--warn {
  border-left-color: var(--negative);
  background: linear-gradient(135deg, rgba(255, 107, 107, .09), rgba(255, 107, 107, .03));
}
.callout--warn strong { color: #ff9b9b; }

/* Support contact list */
.support-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 14px;
}

.support-list li {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 16px 18px;
  margin: 0;
}

.support-list strong { display: block; color: var(--text-primary); }

/* --------------------------------------------------------------------------
   9. Responsive table
   -------------------------------------------------------------------------- */
.table-wrap {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border-radius: var(--radius);
  border: 1px solid var(--border);
}

table {
  width: 100%;
  min-width: 460px;
  border-collapse: collapse;
  font-size: .95rem;
  background: var(--bg-card);
}

/* Wide comparison tables keep their columns readable and scroll in-place */
.table--wide { min-width: 1560px; font-size: .88rem; table-layout: fixed; }
.table--wide th, .table--wide td { padding: 12px 14px; vertical-align: top; }
.table--wide td:first-child { color: var(--text-primary); font-weight: 600; }

/* Column budget: the value and conditions columns carry the most text */
.table--wide colgroup .c-promo  { width: 175px; }
.table--wide colgroup .c-value  { width: 275px; }
.table--wide colgroup .c-elig   { width: 165px; }
.table--wide colgroup .c-min    { width: 195px; }
.table--wide colgroup .c-wager  { width: 135px; }
.table--wide colgroup .c-max    { width: 185px; }
.table--wide colgroup .c-expiry { width: 120px; }
.table--wide colgroup .c-cond   { width: 260px; }
.table--wide colgroup .c-status { width: 190px; }

caption {
  caption-side: bottom;
  padding: 12px;
  font-size: .85rem;
  color: var(--text-muted);
  text-align: left;
}

th, td {
  padding: 13px 16px;
  text-align: left;
  border-bottom: 1px solid var(--border);
}

th {
  background: var(--bg-elevated);
  color: var(--gold);
  font-family: var(--font-head);
  font-size: .8rem;
  letter-spacing: .09em;
  text-transform: uppercase;
}

tbody tr:last-child td { border-bottom: none; }

/* --------------------------------------------------------------------------
   10. FAQ accordion
   -------------------------------------------------------------------------- */
.faq { display: grid; gap: 12px; }

.faq-item {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
}

.faq-item.is-open { border-color: rgba(255, 90, 31, .5); }

.faq-heading { margin: 0; font-size: 1rem; }

.faq-question {
  width: 100%;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  background: none;
  border: 0;
  color: var(--text-primary);
  font-family: var(--font-head);
  font-size: 1.02rem;
  font-weight: 700;
  text-align: left;
  padding: 18px 20px;
  cursor: pointer;
  line-height: 1.45;
}

.faq-question:hover { color: var(--gold-soft); }

.faq-icon {
  flex: 0 0 22px;
  width: 22px;
  height: 22px;
  margin-top: 2px;
  position: relative;
}

.faq-icon::before,
.faq-icon::after {
  content: "";
  position: absolute;
  background: var(--accent);
  border-radius: 2px;
  transition: transform .25s var(--ease);
}

.faq-icon::before { top: 10px; left: 2px; width: 18px; height: 2px; }
.faq-icon::after { top: 2px; left: 10px; width: 2px; height: 18px; }

.faq-question[aria-expanded="true"] .faq-icon::after { transform: scaleY(0); }

.faq-answer {
  padding: 0 20px;
  max-height: 0;
  overflow: hidden;
  transition: max-height .3s var(--ease), padding .3s var(--ease);
}

.faq-answer.is-open { padding: 0 20px 18px; }
.faq-answer p:last-child { margin-bottom: 0; }

/* --------------------------------------------------------------------------
   11. Forms
   -------------------------------------------------------------------------- */
.form-card {
  background: var(--bg-card);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-lg);
  padding: 26px 22px;
  box-shadow: var(--shadow);
}

.form-field { margin-bottom: 20px; }

.form-field label {
  display: block;
  margin-bottom: 7px;
  font-family: var(--font-head);
  font-weight: 700;
  font-size: .93rem;
  color: var(--text-primary);
}

.req { color: var(--accent-soft); }

.form-field input,
.form-field select,
.form-field textarea {
  width: 100%;
  padding: 13px 15px;
  font: inherit;
  font-size: 1rem;
  color: var(--text-primary);
  background: var(--bg-primary);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-sm);
  transition: border-color .2s var(--ease);
}

.form-field textarea { min-height: 168px; resize: vertical; }

.form-field input::placeholder,
.form-field textarea::placeholder { color: var(--text-muted); }

.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus { border-color: var(--accent); }

.field-hint {
  display: block;
  margin-top: 6px;
  font-size: .84rem;
  color: var(--text-muted);
}

.field-error {
  display: none;
  margin-top: 7px;
  font-size: .87rem;
  font-weight: 600;
  color: #ff9a7a;
}

.field-error::before { content: "\26A0  "; }

.form-field.has-error input,
.form-field.has-error select,
.form-field.has-error textarea { border-color: #ff6b45; }

.form-field.has-error .field-error { display: block; }

.form-status {
  display: none;
  margin-top: 18px;
  padding: 15px 18px;
  border-radius: var(--radius-sm);
  font-size: .94rem;
  border: 1px solid var(--border-strong);
  background: var(--bg-secondary);
}

.form-status.is-visible { display: block; }
.form-status.is-error { border-color: #ff6b45; color: #ffb59d; }
.form-status.is-info { border-color: var(--gold); color: var(--gold-soft); }

/* --------------------------------------------------------------------------
   12. Footer
   -------------------------------------------------------------------------- */
.site-footer {
  margin-top: 40px;
  background: var(--bg-secondary);
  border-top: 1px solid var(--border);
  padding: 44px 0 26px;
  font-size: .93rem;
}

.footer-grid {
  display: grid;
  gap: 30px;
  margin-bottom: 30px;
}

.footer-col h2 {
  font-size: .84rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--gold);
  margin: 0 0 14px;
}

.footer-col ul { list-style: none; padding: 0; margin: 0; }
.footer-col li { margin-bottom: .55em; }

.footer-col a {
  color: var(--text-secondary);
  border-bottom: none;
}

.footer-col a:hover, .footer-col a:focus { color: var(--gold-soft); }

.footer-brand p { color: var(--text-muted); font-size: .9rem; }

.footer-warning {
  border: 1px solid var(--border-strong);
  border-radius: var(--radius);
  padding: 18px 20px;
  background: var(--bg-card);
  color: var(--text-secondary);
  font-size: .9rem;
  margin-bottom: 26px;
}

.footer-warning strong { color: var(--gold-soft); }

.footer-bottom {
  border-top: 1px solid var(--border);
  padding-top: 20px;
  display: grid;
  gap: 10px;
  color: var(--text-muted);
  font-size: .86rem;
}

/* --------------------------------------------------------------------------
   13. Breadcrumbs and misc
   -------------------------------------------------------------------------- */
.breadcrumbs {
  font-size: .86rem;
  color: var(--text-muted);
  padding: 18px 0 0;
}

.breadcrumbs ol {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0;
  padding: 0;
}

.breadcrumbs li { margin: 0; }
.breadcrumbs li + li::before { content: "\203A"; margin-right: 8px; color: var(--border-strong); }

.toc {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 20px 24px;
}

.toc h2 { margin: 0 0 12px; font-size: 1.05rem; }
.toc ol { margin: 0; padding-left: 1.2em; }
.toc li { margin-bottom: .35em; }

.updated-note {
  font-size: .86rem;
  color: var(--text-muted);
  margin-bottom: 1.5em;
}

.prose > *:first-child { margin-top: 0; }

/* --------------------------------------------------------------------------
   14. Breakpoints
   -------------------------------------------------------------------------- */
@media (max-width: 619px) {
  .hero { background-position: 66% 26%; }
  .hero::before {
    background:
      linear-gradient(180deg, rgba(11, 7, 16, .80) 0%, rgba(11, 7, 16, .74) 55%, var(--bg-primary) 100%);
  }
}

@media (min-width: 620px) {
  .facts-row { grid-template-columns: 210px 1fr; gap: 16px; align-items: baseline; }
  .grid--2 { grid-template-columns: repeat(2, 1fr); }
  .proscons { grid-template-columns: repeat(2, 1fr); }
  .footer-bottom { grid-template-columns: 1fr auto; align-items: center; }
}

@media (min-width: 860px) {
  body { font-size: 17.5px; }
  .section { padding: 66px 0; }
  .hero { padding: 96px 0 92px; background-position: 58% center; }
  .hero-inner > div { max-width: 620px; }
  .grid--3 { grid-template-columns: repeat(3, 1fr); }
  .footer-grid { grid-template-columns: 1.4fr 1fr 1fr; }

  .nav-toggle { display: none; }

  .site-nav {
    display: block;
    width: auto;
    padding-bottom: 0;
  }

  .site-nav ul { flex-direction: row; gap: 4px; }

  .site-nav a {
    padding: 9px 13px;
    border-left: none;
    border-bottom: 2px solid transparent;
    border-radius: var(--radius-sm);
    font-size: .92rem;
  }

  .site-nav a[aria-current="page"] {
    border-left: none;
    border-bottom-color: var(--accent);
    background: transparent;
  }
}

@media (min-width: 1024px) {
  .layout-aside {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 40px;
    align-items: stretch;
  }
  .layout-aside .sticky-aside { position: sticky; top: 96px; }
}

/* --------------------------------------------------------------------------
   16. Left sidebar rail (desktop only)
   -------------------------------------------------------------------------- */
.site-sidebar { display: none; }

@media (min-width: 1100px) {
  body { padding-left: 268px; transition: padding-left .22s var(--ease); }

  .site-sidebar {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    z-index: 120;
    width: 268px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 16px 14px 18px;
    background: #100b18;
    border-right: 1px solid var(--border);
    overflow-y: auto;
    overscroll-behavior: contain;
    transition: width .22s var(--ease);
  }

  .site-sidebar::-webkit-scrollbar { width: 8px; }
  .site-sidebar::-webkit-scrollbar-thumb { background: var(--border-strong); border-radius: 8px; }

  .rail-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 4px 4px 10px;
  }

  .rail-brand {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
    min-width: 0;
    border-bottom: none;
    color: var(--text-primary);
    font-family: var(--font-head);
    font-size: 1.12rem;
    font-weight: 800;
    letter-spacing: -.02em;
    line-height: 1.15;
    white-space: nowrap;
  }

  .rail-brand:hover, .rail-brand:focus { color: var(--gold-soft); }

  .rail-logo { width: 100%; max-width: 182px; height: auto; display: block; }
  .rail-mark { display: none; width: 44px; height: 44px; }

  .rail-head {
    align-items: flex-start;
    gap: 10px;
    padding: 6px 2px 12px;
  }

  .rail-brand { flex: 1 1 auto; overflow: visible; }

  .rail-collapse {
    flex: 0 0 30px;
    width: 30px;
    height: 30px;
    display: grid;
    place-items: center;
    padding: 0;
    border-radius: 50%;
    border: 1px solid var(--border-strong);
    background: var(--bg-card);
    color: var(--text-secondary);
    cursor: pointer;
  }

  .rail-collapse svg { width: 16px; height: 16px; }
  .rail-collapse:hover { border-color: var(--accent); color: var(--gold-soft); }

  .rail-ico {
    flex: 0 0 26px;
    width: 26px;
    height: 26px;
    display: grid;
    place-items: center;
  }

  .rail-icon { width: 23px; height: 23px; }

  .rail-ico { position: relative; color: #e9e4f4; }

  .rail-badge {
    position: absolute;
    top: -6px;
    left: -8px;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    display: grid;
    place-items: center;
    border-radius: 999px;
    background: #e02020;
    color: #fff;
    font-family: var(--font-head);
    font-size: .66rem;
    font-weight: 800;
    line-height: 1;
  }

  /* Two highlighted actions, styled like the reference's feature buttons */
  .rail-cta {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 13px 14px;
    border-radius: var(--radius);
    border-bottom: none;
    font-family: var(--font-head);
    font-weight: 700;
    font-size: .97rem;
    color: #fff;
    box-shadow: var(--shadow-sm);
    transition: transform .16s var(--ease), box-shadow .16s var(--ease);
  }

  .rail-cta:hover, .rail-cta:focus { color: #fff; transform: translateY(-1px); }

  .rail-cta--primary {
    background: linear-gradient(135deg, var(--accent), var(--accent-deep));
  }
  .rail-cta--primary:hover { box-shadow: var(--shadow-accent); }

  .rail-cta--gold {
    background: linear-gradient(135deg, #f5b301, #b06a00);
    color: #1a1000;
  }
  .rail-cta--gold:hover, .rail-cta--gold:focus { color: #1a1000; }

  .rail-nav { margin-top: 6px; }

  .rail-group {
    margin: 14px 0 6px;
    padding: 0 6px;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--text-muted);
  }

  .rail-nav ul { list-style: none; margin: 0; padding: 0; }
  .rail-nav li { margin: 0; }

  .rail-nav a {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 9px 10px;
    border-radius: var(--radius-sm);
    border-bottom: none;
    color: var(--text-secondary);
    font-size: .93rem;
    font-weight: 600;
  }

  .rail-nav a:hover,
  .rail-nav a:focus {
    background: var(--bg-card);
    color: var(--text-primary);
  }

  .rail-nav a:hover .rail-ico,
  .rail-nav a:focus .rail-ico { color: var(--accent-soft); }

  .rail-nav a[aria-current="page"] {
    background: var(--bg-card);
    color: var(--gold);
    box-shadow: inset 3px 0 0 var(--accent);
  }

  .rail-help {
    position: relative;
    margin-top: auto;
    padding: 14px 16px;
    border-radius: var(--radius);
    border: 1px solid var(--border);
    background: linear-gradient(140deg, rgba(255, 90, 31, .16), rgba(140, 60, 220, .14));
    font-size: .8rem;
    line-height: 1.5;
    color: var(--text-secondary);
  }

  .rail-help p { margin: 0; }
  .rail-help p + p { margin-top: 6px; }
  .rail-help strong { color: var(--gold-soft); }
  .rail-help b { color: var(--text-primary); font-size: 1rem; letter-spacing: .01em; }

  .rail-help-ico {
    position: absolute;
    top: 12px;
    right: 12px;
    color: rgba(255, 138, 76, .5);
  }

  /* ---- collapsed rail ---- */
  body.rail-is-collapsed { padding-left: 82px; }
  body.rail-is-collapsed .site-sidebar { width: 82px; padding-left: 12px; padding-right: 12px; }
  body.rail-is-collapsed .rail-label { display: none; }
  body.rail-is-collapsed .rail-head { justify-content: center; padding-bottom: 12px; }
  body.rail-is-collapsed .rail-collapse { position: absolute; top: 14px; right: 10px; }
  body.rail-is-collapsed .rail-collapse svg { transform: rotate(180deg); }
  body.rail-is-collapsed .rail-brand { margin-top: 34px; align-items: center; width: 100%; }
  body.rail-is-collapsed .rail-logo { display: none; }
  body.rail-is-collapsed .rail-mark { display: block; }
  body.rail-is-collapsed .rail-cta,
  body.rail-is-collapsed .rail-nav a { justify-content: center; gap: 0; padding-left: 8px; padding-right: 8px; }
  body.rail-is-collapsed .rail-group { height: 1px; margin: 12px 6px; padding: 0; background: var(--border); }
  body.rail-is-collapsed .rail-help { padding: 12px; text-align: center; }
  body.rail-is-collapsed .rail-help-ico { position: static; margin: 0 auto; color: var(--accent-soft); }
}

@media (min-width: 1100px) and (prefers-reduced-motion: reduce) {
  body, .site-sidebar { transition: none; }
}

/* --------------------------------------------------------------------------
   17. Top bar: search, horizontal nav and actions (desktop rail width)
   -------------------------------------------------------------------------- */
.top-search,
.top-actions { display: none; }

@media (min-width: 1100px) {
  /* Brand lives in the rail; the top bar carries search, nav and actions. */
  .site-header {
    display: block;
    left: 0;
    background: rgba(11, 7, 16, .96);
  }

  .site-header .brand { display: none; }

  .header-inner {
    flex-wrap: nowrap;
    gap: 26px;
    min-height: 64px;
  }

  .top-search { display: block; position: relative; flex: 0 0 auto; }

  .top-search-btn {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    padding: 0;
    border: 0;
    border-radius: 50%;
    cursor: pointer;
    color: #fff;
    background: linear-gradient(140deg, var(--accent), var(--accent-deep));
    box-shadow: var(--shadow-accent);
    transition: transform .16s var(--ease);
  }

  .top-search-btn svg { width: 17px; height: 17px; }
  .top-search-btn:hover { transform: scale(1.06); }

  .search-panel {
    position: absolute;
    top: calc(100% + 12px);
    left: 0;
    width: 330px;
    padding: 14px;
    border-radius: var(--radius);
    border: 1px solid var(--border-strong);
    background: var(--bg-card);
    box-shadow: var(--shadow);
    z-index: 130;
  }

  .search-panel input {
    width: 100%;
    padding: 11px 14px;
    font: inherit;
    font-size: .95rem;
    color: var(--text-primary);
    background: var(--bg-primary);
    border: 1px solid var(--border-strong);
    border-radius: var(--radius-sm);
  }

  .search-panel input:focus { border-color: var(--accent); outline-offset: 1px; }

  .search-results {
    list-style: none;
    margin: 12px 0 0;
    padding: 0;
    max-height: 320px;
    overflow-y: auto;
  }

  .search-results li { margin: 0; }

  .search-results a {
    display: block;
    padding: 9px 12px;
    border-radius: var(--radius-sm);
    border-bottom: none;
    color: var(--text-secondary);
    font-size: .92rem;
    font-weight: 600;
  }

  .search-results a:hover,
  .search-results a:focus { background: var(--bg-elevated); color: var(--gold-soft); }

  .search-empty {
    margin: 12px 0 2px;
    font-size: .88rem;
    color: var(--text-muted);
  }

  /* Horizontal nav, evenly spaced like the reference bar */
  .site-header .site-nav {
    display: block;
    flex: 1 1 auto;
    min-width: 0;
    padding-bottom: 0;
  }

  .site-header .site-nav ul {
    flex-direction: row;
    gap: 4px;
  }

  .site-header .site-nav a {
    padding: 9px 14px;
    font-size: .93rem;
    font-weight: 700;
    white-space: nowrap;
    border-left: none;
    border-bottom: 2px solid transparent;
    border-radius: var(--radius-sm);
  }

  .top-actions {
    display: flex;
    align-items: center;
    gap: 12px;
    flex: 0 0 auto;
  }

  .top-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 9px 22px;
    border-radius: var(--radius-sm);
    border-bottom: none;
    font-family: var(--font-head);
    font-size: .93rem;
    font-weight: 700;
    white-space: nowrap;
    transition: transform .16s var(--ease), box-shadow .16s var(--ease);
  }

  .top-btn:hover, .top-btn:focus { transform: translateY(-1px); }

  .top-btn { border-radius: 11px; min-height: 44px; padding: 10px 26px; }

  .top-btn--ghost {
    background: #202233;
    border: 1px solid #30324a;
    color: #ffffff;
    box-shadow: 0 6px 16px rgba(0, 0, 0, .45);
  }

  .top-btn--ghost:hover,
  .top-btn--ghost:focus {
    background: #282a3e;
    color: #ffffff;
    border-color: #454767;
    box-shadow: 0 8px 20px rgba(0, 0, 0, .55);
  }

  .top-btn--gold {
    background: #ffd21e;
    color: #191100;
    box-shadow: 0 0 0 1px rgba(255, 210, 30, .95),
                0 6px 16px rgba(0, 0, 0, .45),
                0 0 22px rgba(255, 200, 20, .55),
                0 0 48px rgba(255, 170, 0, .32);
  }

  .top-btn--gold:hover,
  .top-btn--gold:focus {
    background: #ffdc45;
    color: #191100;
    box-shadow: 0 0 0 1px rgba(255, 220, 69, 1),
                0 8px 20px rgba(0, 0, 0, .5),
                0 0 30px rgba(255, 205, 30, .72),
                0 0 62px rgba(255, 170, 0, .42);
  }

  .top-region {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding-left: 4px;
    font-size: .84rem;
    font-weight: 600;
    color: var(--text-muted);
    white-space: nowrap;
  }

  .top-region-flag {
    display: inline-grid;
    place-items: center;
    min-width: 30px;
    height: 20px;
    border-radius: 4px;
    background: var(--bg-elevated);
    border: 1px solid var(--border-strong);
    color: var(--gold);
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .04em;
  }
}

@media (min-width: 1100px) and (max-width: 1319px) {
  .top-region { display: none; }
  .site-header .site-nav a { padding: 9px 10px; font-size: .88rem; }
}

/* --------------------------------------------------------------------------
   18. Offer table, status pills, checklist, calculation block
   -------------------------------------------------------------------------- */
.table--wide tbody tr:nth-child(even) { background: rgba(255, 255, 255, .018); }

.table--wide tbody td:first-child {
  position: sticky;
  left: 0;
  z-index: 1;
  background: var(--bg-elevated);
  box-shadow: 1px 0 0 var(--border);
}

.table--wide thead th:first-child {
  position: sticky;
  left: 0;
  z-index: 2;
  box-shadow: 1px 0 0 var(--border);
}

.table--wide td.val { color: var(--text-secondary); }
.table--wide td.val b { color: var(--gold-soft); font-size: 1.02em; font-weight: 800; }

.mult {
  display: inline-block;
  padding: 1px 7px;
  border-radius: 5px;
  background: rgba(255, 90, 31, .14);
  border: 1px solid rgba(255, 90, 31, .3);
  color: var(--accent-soft);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.pill {
  display: inline-block;
  padding: 3px 10px;
  border-radius: 999px;
  font-size: .74rem;
  font-weight: 700;
  letter-spacing: .02em;
  white-space: nowrap;
}

.pill--ok {
  background: rgba(61, 220, 151, .13);
  border: 1px solid rgba(61, 220, 151, .38);
  color: var(--positive);
}

.pill--check {
  background: rgba(255, 200, 87, .13);
  border: 1px solid rgba(255, 200, 87, .38);
  color: var(--caution);
}

/* Scroll affordance, small screens only */
.table-wrap { position: relative; }

@media (max-width: 900px) {
  .table-wrap::after {
    content: "Scroll sideways for all columns \2192";
    position: sticky;
    left: 0;
    display: block;
    padding: 8px 14px;
    border-top: 1px solid var(--border);
    background: var(--bg-secondary);
    color: var(--text-muted);
    font-size: .76rem;
    letter-spacing: .04em;
  }
}

.checklist {
  list-style: none;
  margin: 0 0 1.3em;
  padding: 0;
  display: grid;
  gap: 8px;
}

.checklist > li {
  position: relative;
  margin: 0;
  padding: 9px 14px 9px 40px;
  border-radius: var(--radius-sm);
  background: var(--bg-card);
  border: 1px solid var(--border);
}

.checklist > li::before {
  content: "";
  position: absolute;
  left: 15px;
  top: 17px;
  width: 11px;
  height: 6px;
  border-left: 2.5px solid var(--positive);
  border-bottom: 2.5px solid var(--positive);
  transform: rotate(-45deg);
}

.calc {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 10px;
  margin: 0 0 1.3em;
  padding: 18px 22px;
  border-radius: var(--radius);
  border: 1px solid var(--border-strong);
  background: linear-gradient(135deg, rgba(255, 90, 31, .1), rgba(140, 60, 220, .09));
  font-variant-numeric: tabular-nums;
}

.calc span { font-family: var(--font-head); font-size: 1.35rem; font-weight: 700; color: var(--text-primary); }
.calc i { font-style: normal; font-size: 1.1rem; color: var(--text-muted); }
.calc b { font-family: var(--font-head); font-size: 1.7rem; font-weight: 800; color: var(--gold); }
.calc em { font-style: normal; font-size: .9rem; color: var(--text-muted); flex-basis: 100%; }

@media (min-width: 620px) {
  .checklist { grid-template-columns: repeat(2, 1fr); }
  .calc em { flex-basis: auto; }
}


/* Payment matrix: nine columns, and every figure cell is an explicit
   "not confirmed" dash rather than an empty box. */
.table--pay { min-width: 1180px; font-size: .88rem; table-layout: fixed; }
.table--pay th, .table--pay td { padding: 12px 14px; vertical-align: middle; }
.table--pay colgroup .c-method { width: 168px; }
.table--pay colgroup .c-type   { width: 210px; }
.table--pay colgroup .c-num    { width: 118px; }

.table--pay tbody th {
  position: sticky;
  left: 0;
  z-index: 1;
  background: var(--bg-elevated);
  box-shadow: 1px 0 0 var(--border);
  color: var(--text-primary);
  font-family: var(--font-head);
  font-size: .92rem;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: none;
}

.table--pay td.na { text-align: center; }
.table--pay td.na span {
  display: inline-block;
  min-width: 34px;
  padding: 2px 0;
  border-radius: 999px;
  background: rgba(139, 132, 156, .12);
  color: var(--text-muted);
  cursor: help;
}

/* --------------------------------------------------------------------------
   20. Header dropdown (Bonus submenu)
       Mobile: the stacked nav expands the submenu in place via the caret.
       Desktop: hover or focus opens a floating panel; the caret still works
       as a click target for touch-capable desktop devices.
   -------------------------------------------------------------------------- */
.site-nav .has-sub { position: relative; }

.sub-toggle {
  position: absolute;
  top: 0;
  right: 0;
  display: grid;
  place-items: center;
  width: 46px;
  height: 44px;
  padding: 0;
  background: none;
  border: 0;
  color: var(--text-secondary);
  cursor: pointer;
}

.sub-toggle:hover, .sub-toggle:focus { color: var(--text-primary); }

.sub-caret {
  width: 8px;
  height: 8px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: translateY(-2px) rotate(45deg);
  transition: transform .18s var(--ease);
}

.sub-toggle[aria-expanded="true"] .sub-caret { transform: translateY(2px) rotate(-135deg); }

.site-nav .subnav {
  display: none;
  flex-direction: column;
  gap: 2px;
  list-style: none;
  margin: 2px 0 0;
  padding: 0 0 0 14px;
}

.site-nav .has-sub.is-open > .subnav { display: flex; }

.site-nav .subnav a {
  font-size: .91rem;
  font-weight: 600;
  color: var(--text-muted);
}

.site-nav .subnav a:hover,
.site-nav .subnav a:focus { color: var(--text-primary); }

/* The parent keeps a hint of the active state while a child page is open. */
.site-nav .has-sub.has-current > a { color: var(--gold); }

@media (min-width: 860px) {
  .sub-toggle { position: static; width: auto; height: auto; margin-left: -6px; }
  .site-nav .has-sub { display: flex; align-items: center; }

  .site-nav .subnav {
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    z-index: 100;
    min-width: 208px;
    margin: 0;
    padding: 6px;
    border-radius: var(--radius);
    border: 1px solid var(--border-strong);
    background: var(--bg-elevated);
    box-shadow: var(--shadow);
  }

  /* A transparent bridge keeps hover alive across the 8px gap. */
  .site-nav .has-sub::after {
    content: "";
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    height: 10px;
  }

  .site-nav .has-sub:hover > .subnav,
  .site-nav .has-sub:focus-within > .subnav,
  .site-nav .has-sub.is-open > .subnav { display: flex; }

  .site-nav .subnav a {
    display: block;
    padding: 9px 12px;
    border-bottom: none;
    border-radius: var(--radius-sm);
    white-space: nowrap;
  }

  .site-nav .subnav a:hover,
  .site-nav .subnav a:focus { background: var(--bg-card); }

  .site-nav .subnav a[aria-current="page"] {
    color: var(--gold);
    background: var(--bg-card);
    border-bottom: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .sub-caret { transition: none; }
}

/* --------------------------------------------------------------------------
   21. Cookie notice and help widget (fixed to the viewport)
   -------------------------------------------------------------------------- */
.cookie-bar {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 200;
  background: rgba(16, 12, 24, .96);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-top: 1px solid var(--border-strong);
  box-shadow: 0 -8px 28px rgba(0, 0, 0, .45);
}

.cookie-inner {
  max-width: var(--max);
  margin: 0 auto;
  padding: 13px var(--gutter);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 14px;
}

.cookie-inner p {
  margin: 0;
  font-size: .92rem;
  font-weight: 600;
  color: var(--text-primary);
}

.cookie-inner a { color: var(--text-primary); border-bottom-color: rgba(255, 255, 255, .5); }
.cookie-inner a:hover, .cookie-inner a:focus { color: var(--gold-soft); }

.cookie-accept {
  display: inline-block;
  text-align: center;
  text-decoration: none;
  flex: 0 0 auto;
  padding: 9px 26px;
  border: 0;
  border-radius: 999px;
  background: #e8534a;
  color: #ffffff;
  font: inherit;
  font-family: var(--font-head);
  font-size: .93rem;
  font-weight: 700;
  cursor: pointer;
  transition: background .16s var(--ease), transform .16s var(--ease);
}

.cookie-accept:hover, .cookie-accept:focus { background: #f0665d; transform: translateY(-1px); }

/* --- First-visit welcome ---------------------------------------------- */
.welcome {
  position: fixed;
  inset: 0;
  z-index: 300;
  display: grid;
  place-items: center;
  padding: 20px;
}

body.welcome-open { overflow: hidden; }

.welcome-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(6, 4, 10, .78);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}

.welcome-box {
  position: relative;
  width: min(680px, 100%);
  max-height: calc(100vh - 40px);
  overflow-y: auto;
  padding: 22px;
  border-radius: 18px;
  border: 1px solid var(--border-strong);
  background: #262636;
  box-shadow: 0 30px 70px rgba(0, 0, 0, .68);
  animation: welcome-in .28s var(--ease) both;
}

@keyframes welcome-in {
  from { opacity: 0; transform: translateY(14px) scale(.98); }
  to   { opacity: 1; transform: none; }
}

.welcome-close {
  position: absolute;
  top: 12px;
  right: 14px;
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: #b8b3c6;
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
}

.welcome-close:hover, .welcome-close:focus { background: rgba(255, 255, 255, .1); color: #ffffff; }

.welcome-grid { display: grid; gap: 18px; margin-bottom: 20px; }

.welcome-art {
  position: relative;
  overflow: hidden;
  border-radius: 12px;
  border: 1px solid var(--border-strong);
  min-height: 176px;
}

.welcome-art > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.welcome-art-inner {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 14px;
  height: 100%;
  min-height: 176px;
  padding: 14px;
  background: linear-gradient(160deg, rgba(10, 6, 16, .82), rgba(10, 6, 16, .38));
}

.welcome-brand { display: flex; align-items: center; gap: 10px; }
.welcome-logo { width: 128px; height: auto; }

.welcome-flag {
  display: inline-grid;
  place-items: center;
  min-width: 30px;
  height: 20px;
  border-radius: 4px;
  background: rgba(0, 0, 0, .45);
  border: 1px solid var(--border-strong);
  color: var(--gold);
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .04em;
}

.welcome-tag {
  align-self: flex-start;
  margin: 0;
  padding: 9px 14px;
  border-radius: 9px;
  border: 1px solid rgba(255, 255, 255, .16);
  background: rgba(0, 0, 0, .58);
  font-family: var(--font-head);
  font-size: .95rem;
  font-weight: 800;
  line-height: 1.25;
  color: #ffffff;
}

.welcome-tag span { font-size: .78rem; font-weight: 600; color: var(--gold-soft); }

.welcome-copy h2 { margin: 0 0 8px; font-size: 1.42rem; color: #ffffff; }
.welcome-copy p { margin: 0; font-size: .93rem; line-height: 1.6; color: #c5c1d1; }

.welcome-cta {
  display: block;
  padding: 16px 20px;
  border-radius: 999px;
  border-bottom: none;
  background: #ffd21e;
  color: #191100;
  font-family: var(--font-head);
  font-size: 1.06rem;
  font-weight: 800;
  letter-spacing: .04em;
  text-align: center;
  text-transform: uppercase;
  box-shadow: 0 0 0 1px rgba(255, 210, 30, .9), 0 0 26px rgba(255, 200, 20, .5);
}

.welcome-cta:hover, .welcome-cta:focus {
  background: #ffdc45;
  color: #191100;
  box-shadow: 0 0 0 1px rgba(255, 220, 69, 1), 0 0 34px rgba(255, 205, 30, .68);
}

.welcome-foot {
  margin: 14px 0 0;
  font-size: .8rem;
  line-height: 1.55;
  color: #9a94a8;
  text-align: center;
}

@media (min-width: 620px) {
  .welcome-box { padding: 26px; }
  .welcome-grid { grid-template-columns: 320px minmax(0, 1fr); align-items: center; gap: 22px; }
  .welcome-copy h2 { font-size: 1.62rem; }
}

@media (prefers-reduced-motion: reduce) {
  .welcome-box { animation: none; }
}

/* --- Help launcher --------------------------------------------------- */
.help-widget {
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 210;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 12px;
}

body.cookie-open .help-widget { bottom: 86px; }

.help-fab {
  display: grid;
  place-items: center;
  width: 58px;
  height: 58px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: #ffd21e;
  color: #191100;
  cursor: pointer;
  box-shadow: 0 8px 24px rgba(0, 0, 0, .5), 0 0 22px rgba(255, 205, 30, .45);
  transition: transform .16s var(--ease), box-shadow .16s var(--ease);
}

.help-fab:hover, .help-fab:focus {
  transform: translateY(-2px);
  box-shadow: 0 10px 28px rgba(0, 0, 0, .55), 0 0 30px rgba(255, 205, 30, .6);
}

.help-fab-icon { width: 27px; height: 27px; }

.help-panel {
  width: min(348px, calc(100vw - 32px));
  max-height: min(600px, calc(100vh - 130px));
  overflow-y: auto;
  padding: 12px 14px 14px;
  border-radius: 16px;
  border: 1px solid rgba(255, 255, 255, .07);
  background: #3b3b4a;
  box-shadow: 0 24px 58px rgba(0, 0, 0, .62);
}

/* Top bar: back sits left and only appears inside a topic, minimise sits right. */
.help-bar { display: flex; align-items: center; gap: 8px; }
.help-back { margin-right: auto; }
.help-min { margin-left: auto; }

.help-round {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  padding: 0;
  flex: 0 0 34px;
  border: 0;
  border-radius: 50%;
  background: #4b4b5b;
  color: #d7d4e0;
  cursor: pointer;
  transition: background .16s var(--ease), color .16s var(--ease);
}

.help-round:hover, .help-round:focus { background: #585868; color: #ffffff; }
.help-round svg { width: 17px; height: 17px; }



/* Identity chip, in place of the operator's agent badge. */
.help-chip {
  display: flex;
  align-items: center;
  gap: 9px;
  width: max-content;
  max-width: 100%;
  margin: -6px auto 14px;
  padding: 7px 16px 7px 7px;
  border-radius: 999px;
  background: #23232e;
  box-shadow: 0 6px 18px rgba(0, 0, 0, .38);
}

.help-chip-ico {
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  flex: 0 0 30px;
  border-radius: 50%;
  background: #ffd21e;
  color: #191100;
}

.help-chip-ico svg { width: 17px; height: 17px; }

.help-chip-name {
  font-family: var(--font-head);
  font-size: .92rem;
  font-weight: 700;
  color: #ffffff;
  white-space: nowrap;
}

.help-stage { display: flex; align-items: flex-start; gap: 8px; }

.help-avatar {
  display: grid;
  place-items: center;
  width: 26px;
  height: 26px;
  flex: 0 0 26px;
  margin-top: 2px;
  border-radius: 50%;
  background: #ffd21e;
  color: #191100;
}

.help-avatar svg { width: 15px; height: 15px; }

.help-card {
  flex: 1 1 auto;
  min-width: 0;
  padding: 17px;
  border-radius: 13px;
  background: #2f2f3a;
}

.help-title { margin: 0 0 10px; font-size: 1.14rem; color: #ffffff; }
.help-view-title { margin: 0 0 8px; font-size: 1.04rem; color: #ffffff; }

.help-note {
  margin: 0 0 14px;
  font-size: .88rem;
  line-height: 1.55;
  color: #c5c1d1;
}

.help-links {
  list-style: none;
  margin: 0 0 14px;
  padding: 0;
  display: grid;
  gap: 8px;
}

.help-links li { margin: 0; }

/* Topic openers are buttons, not links: they switch the panel's view. */
.help-topic {
  display: block;
  width: 100%;
  padding: 11px 13px;
  border: 0;
  border-radius: 9px;
  background: #3a3a46;
  color: #d8d4e2;
  font: inherit;
  font-size: .87rem;
  line-height: 1.45;
  text-align: left;
  cursor: pointer;
  transition: background .16s var(--ease);
}

.help-topic:hover, .help-topic:focus { background: #454553; color: #ffffff; }

.help-topic b {
  display: block;
  margin-bottom: 1px;
  color: var(--gold);
  font-family: var(--font-head);
  font-size: .85rem;
  font-weight: 700;
}

.help-points {
  list-style: none;
  margin: 0 0 15px;
  padding: 0;
  display: grid;
  gap: 9px;
}

.help-points li {
  position: relative;
  margin: 0;
  padding-left: 18px;
  font-size: .86rem;
  line-height: 1.5;
  color: #c5c1d1;
}

.help-points li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 8px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--gold);
}

.help-cta {
  display: block;
  padding: 13px 18px;
  border-radius: 9px;
  border-bottom: none;
  background: #ffd21e;
  color: #191100;
  font-family: var(--font-head);
  font-size: .97rem;
  font-weight: 800;
  text-align: center;
}

.help-cta:hover, .help-cta:focus { background: #ffdc45; color: #191100; }

.help-foot {
  margin: 13px 0 0;
  font-size: .74rem;
  letter-spacing: .03em;
  color: #8f8a9d;
  text-align: center;
}

@media (max-width: 619px) {
  .cookie-inner { justify-content: flex-start; gap: 10px; padding: 12px var(--gutter); }
  .cookie-inner p { flex: 1 1 100%; font-size: .87rem; }
  .help-widget { right: 14px; bottom: 14px; }
  body.cookie-open .help-widget { bottom: 104px; }

  /* Keep the panel clear of the launcher and the notice; it scrolls inside. */
  .help-panel { max-height: calc(100vh - 180px); }
  body.cookie-open .help-panel { max-height: calc(100vh - 260px); }
}

@media print {
  .cookie-bar, .help-widget { display: none; }
}

/* --------------------------------------------------------------------------
   19. No-deposit page components
       .verify        recurring "check this before you rely on it" statements
       .table--terms  two-column terms table with row headers
       .table--compare  three-column no-deposit vs welcome comparison
       .deflist       labelled checks
       .issues        common problems
       .steps--ask    questions to ask, numbered
   -------------------------------------------------------------------------- */
.verify {
  position: relative;
  margin: 0 0 1.3em;
  padding: 15px 20px 15px 22px;
  border-radius: var(--radius-sm);
  border: 1px solid rgba(255, 200, 87, .28);
  border-left: 3px solid var(--caution);
  background: rgba(255, 200, 87, .07);
  color: var(--text-secondary);
}

.verify-tag {
  display: inline-block;
  margin-right: 10px;
  padding: 3px 9px;
  border-radius: 999px;
  border: 1px solid rgba(255, 200, 87, .42);
  background: rgba(255, 200, 87, .14);
  color: var(--caution);
  font-family: var(--font-head);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .11em;
  text-transform: uppercase;
  vertical-align: 2px;
}

.verify strong { color: var(--text-primary); }

/* Row-header tables: the first column is a label, not a section heading,
   so it drops the uppercase treatment the column headers use. */
.table--terms, .table--compare { table-layout: fixed; }
.table--terms { min-width: 620px; }
.table--compare { min-width: 720px; }

.table--terms tbody th,
.table--compare tbody th {
  background: var(--bg-elevated);
  color: var(--text-primary);
  font-family: var(--font-head);
  font-size: .93rem;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: none;
  vertical-align: top;
  box-shadow: 1px 0 0 var(--border);
}

.table--terms tbody td,
.table--compare tbody td { vertical-align: top; color: var(--text-secondary); }

.table--terms tbody th, .table--terms thead th:first-child { width: 210px; }
.table--compare tbody th, .table--compare thead th:first-child { width: 200px; }

.deflist,
.issues {
  display: grid;
  gap: 9px;
  margin: 0 0 1.4em;
  padding: 0;
  list-style: none;
}

.deflist > li {
  padding: 11px 16px 11px 18px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border);
  border-left: 3px solid rgba(255, 90, 31, .55);
  background: var(--bg-card);
  color: var(--text-secondary);
}

.deflist > li b {
  display: block;
  margin-bottom: 2px;
  color: var(--gold);
  font-family: var(--font-head);
  font-size: .82rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.issues > li {
  position: relative;
  padding: 10px 16px 10px 42px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border);
  background: var(--bg-card);
  color: var(--text-secondary);
}

.issues > li::before {
  content: "";
  position: absolute;
  left: 16px;
  top: 50%;
  width: 12px;
  height: 12px;
  margin-top: -6px;
  border-radius: 50%;
  border: 2px solid rgba(255, 107, 107, .75);
  background: rgba(255, 107, 107, .14);
}

.steps--ask > li { color: var(--text-secondary); }
.steps--ask > li::before {
  background: linear-gradient(135deg, var(--gold), #c98d00);
  color: #1a1206;
}

@media (min-width: 860px) {
  .deflist { grid-template-columns: repeat(2, 1fr); }
  .issues { grid-template-columns: repeat(2, 1fr); }
}

/* --------------------------------------------------------------------------
   22. Bonus page hero
   -------------------------------------------------------------------------- */
.bonus-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: #0a1024 url("images/bonus-hero.webp") center center / cover no-repeat;
}

.bonus-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    radial-gradient(78% 70% at 50% 34%, rgba(7, 10, 24, .62) 0%, rgba(7, 10, 24, .12) 70%, rgba(7, 10, 24, 0) 100%),
    linear-gradient(180deg, rgba(7, 10, 24, .3) 0%, rgba(7, 10, 24, 0) 34%, rgba(11, 7, 16, .55) 84%, var(--bg-primary) 100%);
}

.bonus-hero-inner {
  position: relative;
  padding: 22px var(--gutter) 30px;
  text-align: center;
}

.bonus-hero-crumbs { padding: 0; margin-bottom: 26px; text-align: left; }
.bonus-hero-crumbs ol { justify-content: flex-start; }
.bonus-hero-crumbs a { color: var(--gold); }
.bonus-hero-crumbs li[aria-current="page"] { color: #ffffff; }

.bonus-hero-title {
  margin: 0 0 14px;
  font-size: clamp(2rem, 7vw, 3.4rem);
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: .01em;
  text-transform: uppercase;
  color: var(--gold);
  text-shadow: 0 3px 18px rgba(0, 0, 0, .75);
}

.bonus-hero-sub {
  max-width: 640px;
  margin: 0 auto 26px;
  font-size: clamp(.86rem, 2.2vw, 1rem);
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: #ffffff;
  text-shadow: 0 2px 12px rgba(0, 0, 0, .8);
}

/* Offer card: the character breaks out over the top edge, as in the source. */
.offer-card {
  position: relative;
  max-width: 620px;
  margin: 78px auto 0;
  padding: 82px 22px 24px;
  border-radius: var(--radius);
  border: 1px solid rgba(255, 255, 255, .1);
  background: rgba(14, 18, 40, .62);
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(3px);
  text-align: center;
}

.offer-card-art {
  position: absolute;
  top: -74px;
  left: 50%;
  width: 148px;
  height: auto;
  transform: translateX(-50%);
  filter: drop-shadow(0 14px 26px rgba(0, 0, 0, .6));
  pointer-events: none;
}

.offer-card-kicker {
  margin: 0 0 6px;
  font-family: var(--font-head);
  font-size: 1.22rem;
  font-weight: 700;
  color: #ffffff;
}

.offer-card-figure {
  margin: 0 0 10px;
  font-family: var(--font-head);
  font-size: clamp(1.24rem, 4vw, 1.72rem);
  font-weight: 800;
  line-height: 1.25;
  color: var(--gold);
}

.offer-card-figure span { color: #ffffff; }

.offer-card-note {
  max-width: 420px;
  margin: 0 auto 18px;
  font-size: .86rem;
  line-height: 1.55;
  color: #c3c6d8;
}

.offer-card-cta {
  display: inline-block;
  padding: 13px 40px;
  border-radius: 999px;
  border-bottom: none;
  background: #ef4444;
  color: #ffffff;
  font-family: var(--font-head);
  font-size: .97rem;
  font-weight: 700;
  box-shadow: 0 10px 26px rgba(239, 68, 68, .34);
  transition: background .16s var(--ease), transform .16s var(--ease);
}

.offer-card-cta:hover, .offer-card-cta:focus {
  background: #f45c5c;
  color: #ffffff;
  transform: translateY(-1px);
}

@media (min-width: 760px) {
  .bonus-hero-inner { padding: 26px var(--gutter) 42px; }

  .offer-card {
    display: flex;
    align-items: center;
    gap: 18px;
    max-width: 720px;
    margin: 0 auto;
    padding: 22px 34px 22px 14px;
    text-align: left;
  }

  .offer-card-art {
    position: static;
    flex: 0 0 208px;
    width: 208px;
    margin: -46px 0 -14px;
    transform: none;
  }

  .offer-card-copy { flex: 1 1 auto; min-width: 0; }
  .offer-card-note { margin-left: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .offer-card-cta { transition: none; }
}

/* --------------------------------------------------------------------------
   23. Fact strip: horizontally scrolling cards with a gold progress rail
   -------------------------------------------------------------------------- */
.factbar {
  margin: 0 0 2em;
  padding: 30px 0 24px;
  border-radius: 44px;
  background: #212039;
}

.factbar-scroll {
  overflow-x: auto;
  overflow-y: hidden;
  padding: 0 40px;
  scrollbar-width: none;
  scroll-snap-type: x proximity;
  -webkit-overflow-scrolling: touch;
}

.factbar-scroll::-webkit-scrollbar { display: none; }
.factbar-scroll:focus-visible { outline: 2px solid var(--gold); outline-offset: 4px; border-radius: 12px; }

.factbar-list {
  display: flex;
  gap: 36px;
  margin: 0;
  padding: 0;
  list-style: none;
  width: max-content;
}

.factbar-item {
  flex: 0 0 232px;
  width: 232px;
  margin: 0;
  scroll-snap-align: start;
}

.factbar-head {
  display: flex;
  align-items: center;
  gap: 11px;
  margin: 0 0 9px;
  font-family: var(--font-head);
  font-size: .97rem;
  font-weight: 700;
  line-height: 1.3;
  color: #ffffff;
}

.factbar-ico { flex: 0 0 26px; color: #ffffff; }
.factbar-ico svg { display: block; width: 26px; height: 26px; }

.factbar-desc {
  margin: 0;
  font-size: .84rem;
  line-height: 1.55;
  color: #8b90b4;
}

/* The rail is the scrollbar: drag the thumb or click the track. */
.factbar-track {
  position: relative;
  height: 2px;
  margin: 24px 40px 0;
  border-radius: 2px;
  background: rgba(255, 255, 255, .08);
  cursor: pointer;
  touch-action: none;
}

/* A slim bar is a small target, so the hit area is padded out invisibly. */
.factbar-track::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: -11px;
  bottom: -11px;
}

.factbar-thumb {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 40%;
  border-radius: 2px;
  background: var(--gold);
  cursor: grab;
  touch-action: none;
  transition: transform .08s linear;
}

.factbar-thumb::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: -11px;
  bottom: -11px;
}

.factbar-scroll { cursor: grab; }
.factbar[data-dragging] .factbar-scroll,
.factbar[data-dragging] .factbar-thumb { cursor: grabbing; }
.factbar[data-dragging] .factbar-thumb { transition: none; }
.factbar[data-dragging] .factbar-item { user-select: none; }

.factbar[data-scrollable="false"] .factbar-track { display: none; }

@media (max-width: 619px) {
  .factbar { padding: 24px 0 18px; border-radius: 28px; }
  .factbar-scroll { padding: 0 22px; }
  .factbar-track { margin: 18px 22px 0; }
  .factbar-list { gap: 32px; }
  .factbar-item { flex-basis: 224px; width: 224px; }
}

@media (prefers-reduced-motion: reduce) {
  .factbar-thumb { transition: none; }
}

/* --------------------------------------------------------------------------
   24. Promo banner (no-deposit hero)
       A skewed outline sits behind an image-backed panel, as in the source.
   -------------------------------------------------------------------------- */
.promo-banner {
  position: relative;
  margin: 0 0 2.4em;
  padding: 26px 26px 30px;
}

.promo-banner::before {
  content: "";
  position: absolute;
  inset: 0;
  border: 2px solid #1f8a55;
  border-radius: 16px;
  transform: skewY(-1.05deg);
  pointer-events: none;
}

.promo-banner-inner {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 16px;
  overflow: hidden;
  padding: 22px;
  border-radius: 12px;
  background: #2a0d12;
  isolation: isolate;
}

.promo-banner-bg {
  position: absolute;
  inset: 0;
  z-index: -2;
  width: 100%;
  height: 100%;
  object-fit: cover;
  /* Small screens stack the copy over the art, so the busy left edge with the
     character is pushed out of frame and only the flat backdrop shows. */
  object-position: 78% center;
}

.promo-banner-inner::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(180deg, rgba(18, 4, 8, .82) 0%, rgba(26, 5, 9, .72) 100%);
}

.promo-banner-copy { text-align: center; }

.promo-banner-kicker {
  margin: 0 0 8px;
  font-family: var(--font-head);
  font-size: 1.16rem;
  font-weight: 700;
  color: #ffffff;
  text-shadow: 0 2px 10px rgba(0, 0, 0, .8);
}

.promo-banner-figure {
  margin: 0;
  font-family: var(--font-head);
  font-size: clamp(1.5rem, 5.4vw, 2.1rem);
  font-weight: 800;
  line-height: 1.15;
  color: var(--gold);
  text-shadow: 0 2px 14px rgba(0, 0, 0, .78);
}

.promo-banner-side {
  display: grid;
  gap: 12px;
  justify-items: stretch;
}

.promo-specs {
  margin: 0;
  padding: 9px 13px;
  border: 1px solid #1f8a55;
  border-radius: 8px;
  background: rgba(12, 4, 7, .62);
  font-size: .85rem;
}

.promo-specs > div {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 18px;
  padding: 3px 0;
}

.promo-specs dt { color: #ffffff; }
.promo-specs dd { margin: 0; color: var(--gold-soft); font-weight: 700; white-space: nowrap; }

.promo-banner-cta {
  display: block;
  padding: 13px 30px;
  border-radius: 9px;
  border-bottom: none;
  background: #ef4444;
  color: #ffffff;
  font-family: var(--font-head);
  font-size: .98rem;
  font-weight: 700;
  text-align: center;
  box-shadow: 0 10px 26px rgba(239, 68, 68, .32);
  transition: background .16s var(--ease), transform .16s var(--ease);
}

.promo-banner-cta:hover, .promo-banner-cta:focus {
  background: #f45c5c;
  color: #ffffff;
  transform: translateY(-1px);
}

@media (min-width: 940px) {
  .promo-banner { padding: 30px 34px 34px; }

  .promo-banner-inner {
    flex-direction: row;
    align-items: center;
    gap: 26px;
    min-height: 196px;
    padding: 22px 26px 22px 34%;
  }

  .promo-banner-copy { flex: 1 1 auto; text-align: left; }
  .promo-banner-side { flex: 0 0 258px; }

  .promo-banner-bg { object-position: left center; }

  .promo-banner-inner::after {
    background: linear-gradient(90deg, rgba(20, 4, 8, .72) 0%, rgba(30, 6, 10, .46) 34%, rgba(40, 8, 12, .26) 100%);
  }
}

@media (prefers-reduced-motion: reduce) {
  .promo-banner-cta { transition: none; }
}

/* --------------------------------------------------------------------------
   25. Sign-in side card (login page)
       Mirrors the operator's login panel, but the two rows are links into
       this guide rather than credential fields: an independent site must
       never present a box that looks like somewhere to type a casino
       password.
   -------------------------------------------------------------------------- */
.signin-card {
  overflow: hidden;
  margin: 0 0 2em;
  border-radius: 18px;
  background: #ffffff;
  box-shadow: 0 20px 46px rgba(0, 0, 0, .5);
}

/* The site logo is white-on-dark artwork, so the band behind it is dark;
   it also bookends the dark footer strip. */
.signin-card-head {
  display: grid;
  place-items: center;
  padding: 20px;
  background: #14101d;
}

.signin-card-head img { width: 150px; height: auto; }

.signin-card-body { padding: 22px 24px; text-align: center; }

.signin-card-title {
  margin: 0 0 8px;
  font-size: 1.9rem;
  font-weight: 800;
  letter-spacing: .01em;
  text-transform: uppercase;
  color: #2b2f3a;
}

.signin-card-note {
  margin: 0 0 16px;
  font-size: .8rem;
  line-height: 1.5;
  color: #6a6f80;
}

.signin-rows { list-style: none; margin: 0 0 16px; padding: 0; display: grid; gap: 10px; }
.signin-rows li { margin: 0; }

/* Pill rows sit where the operator's inputs do, but they are navigation. */
.signin-rows a {
  display: block;
  padding: 14px 18px;
  border-radius: 999px;
  border-bottom: none;
  background: #e4e5ee;
  color: #4a4f60;
  font-size: .92rem;
  font-weight: 600;
  text-align: left;
}

.signin-rows a:hover, .signin-rows a:focus { background: #d8d9e6; color: #2b2f3a; }

.signin-go {
  display: block;
  padding: 14px 22px;
  margin: 0 0 14px;
  border-radius: 10px;
  border-bottom: none;
  background: #ffd21e;
  color: #191100;
  font-family: var(--font-head);
  font-size: 1rem;
  font-weight: 800;
  text-align: center;
}

span.signin-go { cursor: default; }
.signin-go:hover, .signin-go:focus { background: #ffdc45; color: #191100; }

.signin-forgot {
  display: inline-block;
  color: #4a4f60;
  font-size: .88rem;
  border-bottom-color: #9aa0b4;
}

.signin-forgot:hover, .signin-forgot:focus { color: #2b2f3a; border-bottom-color: #2b2f3a; }

.signin-card-foot {
  padding: 16px 20px;
  background: #33363f;
  color: #d8d9e0;
  font-size: .9rem;
  text-align: center;
}

.signin-card-foot a {
  color: var(--gold);
  font-weight: 700;
  border-bottom: none;
}

.signin-card-foot a:hover, .signin-card-foot a:focus { color: var(--gold-soft); }

/* Below the two-column breakpoint the aside would land at the very bottom of
   a long article, so the inline callout carries the same message instead and
   only one of the pair is ever shown. */
.signin-col { display: none; }

@media (min-width: 1024px) {
  .signin-col {
    display: block;
    /* The column stretches to the row height; the card inside it is what
       sticks, so it has somewhere to travel as the article scrolls. */
    align-self: stretch;
    grid-column: 2;
  }

  .signin-card {
    position: sticky;
    /* Clears the sticky header at every scroll position, including the top
       of the page where the age strip is still in view. */
    top: 104px;
    margin-bottom: 0;
  }

  /* Raise the column by exactly the distance the card would otherwise slide,
     so it starts already at its pinned offset and never moves at all. */
  .signin-col { margin-top: -107px; }

  .layout-aside #go-to-login { display: none; }
}

/* --------------------------------------------------------------------------
   26. Device mockup (app page)
   -------------------------------------------------------------------------- */
.device-shot { margin: 0 0 1.6em; }
.device-shot img { display: block; width: 100%; height: auto; margin: 0 auto; max-width: 420px; }

@media (min-width: 880px) {
  /* Sits to the right of the intro copy, which wraps around it. */
  .device-shot {
    float: right;
    width: 44%;
    max-width: 380px;
    margin: -10px 0 18px 34px;
    shape-outside: margin-box;
  }

  .device-shot img { max-width: none; }

  /* Full-width blocks must start below the float, not run under it. */
  .prose .factbar,
  .prose h2 { clear: right; }
}

/* --------------------------------------------------------------------------
   27. Payments hero (withdrawal page)
   -------------------------------------------------------------------------- */
.pay-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: #07060f;
}

.pay-hero::before {
  content: "";
  position: absolute;
  inset: -6% -4%;
  z-index: -2;
  background: url("images/payments-hero.webp") center 42% / cover no-repeat;
  opacity: .3;
  filter: saturate(.7);
}

.pay-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    radial-gradient(70% 62% at 50% 46%, rgba(7, 6, 15, .74) 0%, rgba(7, 6, 15, .3) 66%, rgba(7, 6, 15, 0) 100%),
    linear-gradient(180deg, rgba(7, 6, 15, .55) 0%, rgba(7, 6, 15, .1) 40%, var(--bg-primary) 100%);
}

.pay-hero-inner { position: relative; padding: 20px var(--gutter) 40px; text-align: center; }

.pay-hero-crumbs { padding: 0; margin-bottom: 28px; text-align: left; }
.pay-hero-crumbs ol { justify-content: flex-start; }
.pay-hero-crumbs a { color: var(--accent-soft); }
.pay-hero-crumbs li[aria-current="page"] { color: #ffffff; }

.pay-hero-title {
  margin: 0 0 26px;
  font-size: clamp(1.6rem, 5vw, 2.5rem);
  font-weight: 800;
  line-height: 1.15;
  color: #e5222b;
  text-shadow: 0 2px 16px rgba(0, 0, 0, .85);
}

.pay-hero-box {
  max-width: 560px;
  margin: 0 auto;
  padding: 22px 24px 26px;
  border: 1px solid rgba(229, 34, 43, .62);
  border-radius: 6px;
  background: rgba(10, 8, 16, .62);
}

.pay-hero-kicker {
  margin: 0 0 10px;
  font-size: .92rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #e5222b;
}

.pay-hero-line {
  margin: 0 0 20px;
  font-family: var(--font-head);
  font-size: clamp(1.2rem, 3.6vw, 1.62rem);
  font-weight: 800;
  line-height: 1.25;
  color: #ff3b43;
}

.pay-hero-cta {
  display: inline-block;
  padding: 12px 30px;
  border-bottom: none;
  background: #b21f24;
  color: #ffffff;
  font-family: var(--font-head);
  font-size: .92rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  transition: background .16s var(--ease);
}

.pay-hero-cta:hover, .pay-hero-cta:focus { background: #d0262c; color: #ffffff; }

@media (min-width: 760px) {
  .pay-hero-inner { padding: 24px var(--gutter) 54px; }
  .pay-hero-title { margin-bottom: 30px; }
}

@media (prefers-reduced-motion: reduce) {
  .pay-hero-cta { transition: none; }
}

/* --------------------------------------------------------------------------
   28. Homepage review hero (art panel + coverage tiles)
   -------------------------------------------------------------------------- */
.brand-hero { padding: 20px 0 8px; }

.brand-hero-grid { display: grid; gap: 16px; }

.brand-hero-main {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-height: 260px;
  display: grid;
  align-items: center;
  border-radius: var(--radius);
  background: #17323a;
}

.brand-hero-art {
  position: absolute;
  inset: 0;
  z-index: -2;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 22% center;
}

.brand-hero-main::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(180deg, rgba(9, 26, 31, .58) 0%, rgba(9, 26, 31, .72) 100%);
}

.brand-hero-copy { padding: 150px 22px 26px; text-align: center; }

.brand-hero-tag {
  margin: 0 0 10px;
  font-family: var(--font-head);
  font-size: .74rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: #ffffff;
  text-shadow: 0 2px 10px rgba(0, 0, 0, .85);
}

.brand-hero-tag span { color: var(--gold); }

.brand-hero-title {
  margin: 0 0 20px;
  font-size: clamp(1.7rem, 6vw, 2.5rem);
  font-weight: 800;
  line-height: 1.12;
  text-transform: uppercase;
  color: var(--gold);
  text-shadow: 0 3px 16px rgba(0, 0, 0, .82);
}

.brand-hero-cta {
  display: inline-block;
  padding: 14px 42px;
  border-radius: 8px;
  border-bottom: none;
  background: #ef4444;
  color: #ffffff;
  font-family: var(--font-head);
  font-size: 1rem;
  font-weight: 700;
  box-shadow: 0 10px 26px rgba(239, 68, 68, .34);
  transition: background .16s var(--ease), transform .16s var(--ease);
}

.brand-hero-cta:hover, .brand-hero-cta:focus {
  background: #f45c5c;
  color: #ffffff;
  transform: translateY(-1px);
}

/* Coverage panel: the reference shows game art, but these are real links
   into the sections of this review. */
.brand-hero-side {
  padding: 16px;
  border-radius: var(--radius);
  border: 1px solid var(--border);
  background: var(--bg-secondary);
}

.brand-hero-side-title {
  margin: 0 0 14px;
  font-size: .82rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--gold);
}

.game-tiles {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.game-tiles li { margin: 0; }

.game-tile {
  display: block;
  overflow: hidden;
  border-radius: 8px;
  border: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  line-height: 0;
  transition: transform .16s var(--ease), border-color .16s var(--ease);
}

.game-tile:hover, .game-tile:focus {
  border-color: var(--gold);
  transform: translateY(-2px);
}

.game-tile img { display: block; width: 100%; height: auto; }

.brand-hero-intro {
  padding: 20px 22px;
  border-radius: var(--radius);
  border: 1px solid var(--border);
  background: var(--bg-secondary);
}

.brand-hero-intro p { margin: 0 0 1em; }
.brand-hero-intro p:last-child { margin-bottom: 0; }

.brand-hero-note {
  padding-top: 14px;
  border-top: 1px solid var(--border);
  font-size: .88rem;
  color: var(--text-muted);
}

@media (min-width: 620px) {
  .brand-hero-copy { padding: 34px 26px 34px 46%; text-align: left; }
  .brand-hero-main { min-height: 300px; }
  .game-tiles { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

@media (min-width: 1024px) {
  .brand-hero-grid {
    grid-template-columns: minmax(0, 1fr) 300px;
    gap: 18px;
  }

  .brand-hero-side { grid-column: 2; grid-row: 1 / span 2; }
  .brand-hero-intro { grid-column: 1; }
  .game-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (prefers-reduced-motion: reduce) {
  .brand-hero-cta, .game-tile { transition: none; }
}

/* --------------------------------------------------------------------------
   29. Inline screen mockups
   -------------------------------------------------------------------------- */
.screen-shot { margin: 0 0 1.6em; }

.screen-shot img {
  display: block;
  width: 100%;
  max-width: 260px;
  height: auto;
  margin: 0 auto;
  border-radius: 14px;
}

.screen-shot--wide { margin: 0 0 1.8em; }

/* Capped near the source resolution so the capture is not upscaled soft. */
.screen-shot--wide img {
  max-width: 760px;
  border-radius: 12px;
  border: 1px solid var(--border);
}

.screen-shot figcaption {
  margin-top: 10px;
  font-size: .82rem;
  line-height: 1.5;
  color: var(--text-muted);
  text-align: center;
}

/* Landscape captures read better full width than floated. */
.screen-shot--wide img { max-width: 100%; border-radius: 12px; }

@media (min-width: 820px) {
  .screen-shot--left {
    float: left;
    width: 34%;
    max-width: 250px;
    margin: 4px 30px 16px 0;
    shape-outside: margin-box;
  }

  /* Landscape art beside a section, wrapped by the copy on its right. */
  .screen-shot--left.screen-shot--art {
    width: 46%;
    max-width: 440px;
    margin: 4px 30px 16px 0;
  }

  .screen-shot--left.screen-shot--art img { max-width: 100%; }

  /* Landscape art beside a section, wrapped by the copy on its left. */
  .screen-shot--right {
    float: right;
    width: 46%;
    max-width: 440px;
    margin: 4px 0 16px 30px;
    shape-outside: margin-box;
  }

  .screen-shot--right img { max-width: 100%; }


  .screen-shot--left img,

  /* Headings and full-width blocks start below the float. */
  .prose h2, .prose h3, .prose .table-wrap, .prose .faq { clear: both; }
}

/* --------------------------------------------------------------------------
   31. Game showcase (homepage, below the hero)
   -------------------------------------------------------------------------- */
.grow {
  margin: 0 0 22px;
  font-family: var(--font-head);
  font-size: 1.06rem;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--gold);
  text-align: center;
}

.grow span { display: inline; }

.gcards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-auto-rows: 1fr;
  gap: 14px;
  margin: 0 0 8px;
  padding: 0;
  list-style: none;
}

.gcards li { margin: 0; }

/* Card: artwork on top, a dark label strip beneath, as in the reference. */
.gcard {
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
  border-radius: 10px;
  border: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  background: #1c2033;
  color: var(--text-primary);
  transition: transform .18s var(--ease), border-color .18s var(--ease), box-shadow .18s var(--ease);
}

.gcard:hover,
.gcard:focus {
  transform: translateY(-3px);
  border-color: var(--gold);
  box-shadow: 0 12px 26px rgba(0, 0, 0, .5);
  color: var(--text-primary);
}

.gcard-art { display: block; line-height: 0; }
.gcard-art img { display: block; width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: cover; }

.gcard-foot {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  justify-content: center;
  gap: 3px;
  padding: 11px 12px 12px;
  background: #1c2033;
}

.gcard-name {
  display: block;
  font-family: var(--font-head);
  font-size: .8rem;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: .02em;
  text-transform: uppercase;
  color: #ffffff;
}

.gcard-by {
  display: block;
  font-size: .74rem;
  font-weight: 500;
  color: #9aa0bb;
}

.gcard:hover .gcard-name,
.gcard:focus .gcard-name { color: var(--gold-soft); }

@media (min-width: 620px) {
  .gcards { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (min-width: 1024px) {
  .gcards { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 14px; }
}

@media (prefers-reduced-motion: reduce) {
  .gcard { transition: none; }
  .gcard:hover { transform: none; }
}

/* --------------------------------------------------------------------------
   32. Category bar (games page)
       Decorative only — no links, no active-state behaviour. Every rule is
       scoped under .catbar so nothing else on the site is affected.
   -------------------------------------------------------------------------- */
.catbar {
  margin: 0 0 26px;
  border-radius: 12px;
  background: #05071a;
}

.catbar-scroll {
  overflow-x: auto;
  overflow-y: hidden;
  padding: 14px 10px;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}

.catbar-scroll::-webkit-scrollbar { display: none; }

.catbar-row {
  display: flex;
  align-items: stretch;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
  width: max-content;
  min-width: 100%;
}

.catbar-item {
  flex: 1 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  min-width: 76px;
  margin: 0;
  padding: 14px 6px 12px;
  border: 1px solid transparent;
  border-radius: 10px;
  color: #f6f1e4;
  text-align: center;
}

.catbar-ico { display: block; color: inherit; }
.catbar-ico svg { display: block; width: 30px; height: 30px; }

.catbar-label {
  display: block;
  font-family: var(--font-head);
  font-size: .67rem;
  font-weight: 800;
  letter-spacing: .03em;
  line-height: 1.1;
  text-transform: uppercase;
  white-space: nowrap;
  color: inherit;
}

/* The first tile only looks selected — nothing here is interactive. */
.catbar-item--active {
  background: #fcc211;
  border-color: #fcc211;
  color: #12100a;
}

.catbar-item--outlined { border-color: #23283d; }

@media (max-width: 619px) {
  .catbar { margin-bottom: 20px; border-radius: 10px; }
  .catbar-scroll { padding: 12px; }
  .catbar-item { min-width: 82px; padding: 12px 10px 10px; gap: 8px; }
  .catbar-ico svg { width: 26px; height: 26px; }
  .catbar-label { font-size: .66rem; }
}

/* --- Game search (games page) ----------------------------------------- */
.gsearch { margin: 0 0 26px; }

.gsearch-box {
  display: flex;
  align-items: center;
  gap: 10px;
  max-width: 470px;
  margin: 0 auto;
  padding: 6px 6px 6px 18px;
  border: 2px solid #f5b301;
  border-radius: 999px;
  background: #0d1020;
}

.gsearch-ico { flex: 0 0 auto; display: grid; place-items: center; color: #f5b301; }
.gsearch-ico svg { width: 18px; height: 18px; }

.gsearch-input {
  flex: 1 1 auto;
  min-width: 0;
  padding: 10px 0;
  border: 0;
  background: none;
  color: var(--text-primary);
  font: inherit;
  font-size: .95rem;
}

.gsearch-input::placeholder { color: #8b8fa6; }
.gsearch-input:focus { outline: none; }
.gsearch-box:focus-within { box-shadow: 0 0 0 3px rgba(245, 179, 1, .22); }
.gsearch-input::-webkit-search-cancel-button { filter: invert(1) opacity(.5); }

.gsearch-prov {
  position: relative;
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px 8px 10px;
  border-radius: 999px;
  background: #1b2036;
}

.gsearch-prov-dot {
  width: 22px;
  height: 22px;
  flex: 0 0 22px;
  border-radius: 50%;
  background: linear-gradient(140deg, #8c3cdc, #ff5a1f);
}

.gsearch-select {
  border: 0;
  background: none;
  color: #ffffff;
  font: inherit;
  font-size: .86rem;
  font-weight: 600;
  padding-right: 4px;
  cursor: pointer;
}

.gsearch-select:focus { outline: none; }
.gsearch-select option { background: #1b2036; color: #ffffff; }

.gsearch-empty {
  margin: 14px 0 0;
  font-size: .9rem;
  color: var(--text-muted);
  text-align: center;
}

@media (max-width: 619px) {
  .gsearch-box { padding-left: 14px; gap: 8px; }
  .gsearch-input { font-size: .9rem; }
  .gsearch-select { font-size: .8rem; }
  .gsearch-prov { padding: 7px 8px 7px 8px; }
}

/* --------------------------------------------------------------------------
   15. Motion and print preferences
   -------------------------------------------------------------------------- */
/* --------------------------------------------------------------------------
   30. Wide-screen width
       The content column capped at 1160px left large empty margins beside the
       rail on big monitors. It now grows with the viewport, while the reading
       measure inside prose stays bounded so lines do not run too long.
   -------------------------------------------------------------------------- */
@media (min-width: 1500px) {
  :root { --max: 1320px; }
}

@media (min-width: 1700px) {
  :root { --max: 1440px; }
}

/* One content column, from the desktop breakpoint up.
   Every block in an article shares the same left and right edge and the same
   maximum width, so headings, text, lists, figures, callouts, FAQs and tables
   line up on a single spine instead of each component using its own width. */
@media (min-width: 1024px) {
  .container.prose { max-width: min(var(--max), 1120px); }

  /* Figure captions follow the column edge, not the old centred box. */
  .prose .screen-shot--wide figcaption { max-width: 100%; margin-left: 0; margin-right: 0; }
}

/* --- Vertical rhythm -------------------------------------------------------
   Spacing was set per component as each block was added, which left four
   different gaps between neighbouring elements. These are the shared steps. */
.prose > h2 { margin-top: 2.6em; margin-bottom: .7em; color: var(--text-primary); }
/* Sub-sections read as a wall of text without a marker, so each h3 gets an
   accent bar and a hairline that separates it from the block above. */
.prose > h3 {
  position: relative;
  margin-top: 2.1em;
  margin-bottom: .7em;
  padding-top: 1.1em;
  padding-left: 16px;
  color: var(--accent);
}

.prose > h3::before {
  content: "";
  position: absolute;
  left: 0;
  top: 1.35em;
  width: 4px;
  height: 1.05em;
  border-radius: 2px;
  background: linear-gradient(180deg, var(--accent-soft), var(--accent-deep));
}

.prose > h3::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 1px;
  background: linear-gradient(90deg, var(--border-strong) 0%, rgba(46, 37, 64, 0) 62%);
}

/* No rule when the heading opens a section — the h2 already separates it. */
.prose > h2 + h3 { padding-top: 0; margin-top: 1.1em; }
.prose > h2 + h3::after { display: none; }
.prose > h2 + h3::before { top: .18em; }
.prose > h2:first-child,
.prose > h3:first-child { margin-top: 0; }

.prose > p,
.prose > ul,
.prose > ol,
.prose > .verify,
.prose > .calc { margin-bottom: 1.15em; }

.prose > .table-wrap,
.prose > .faq,
.prose > .screen-shot,
.prose > .callout,
.prose > .steps,
.prose > .checklist,
.prose > .deflist,
.prose > .issues,
.prose > .promo-banner { margin-top: 1.6em; margin-bottom: 1.6em; }

.prose > .callout { margin-top: 1.6em; margin-bottom: 1.6em; }

/* A heading straight after a block keeps its larger gap. */
.prose > .table-wrap + h2,
.prose > .faq + h2,
.prose > .screen-shot + h2,
.prose > .callout + h2 { margin-top: 2.6em; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: .001ms !important;
    transition-duration: .001ms !important;
  }
}

@media print {
  body { background: #fff; color: #000; }
  .site-header, .site-footer, .age-strip, .btn-row, .site-sidebar, .top-actions, .top-search { display: none; }
  body { padding-left: 0; }
}

/* --------------------------------------------------------------------------
   33. Decision points (games page — "How Do You Choose The Right Game?")
       Scoped to .points only. The site-wide .prose > h3 rule does not reach
       these headings because they sit inside the list items, so the default
       sub-heading design elsewhere is untouched.
   -------------------------------------------------------------------------- */
.points {
  counter-reset: point;
  display: grid;
  grid-template-columns: 1fr;
  grid-auto-rows: 1fr;
  gap: 14px;
  margin: 1.6em 0;
  padding: 0;
  list-style: none;
}

.points > li {
  counter-increment: point;
  position: relative;
  display: flex;
  flex-direction: column;
  margin: 0;
  padding: 22px 22px 20px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background:
    radial-gradient(120% 90% at 0% 0%, rgba(255, 90, 31, .10) 0%, rgba(255, 90, 31, 0) 58%),
    var(--bg-card);
  overflow: hidden;
}

/* Gold rule along the top edge, fading out to the right. */
.points > li::after {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 2px;
  background: linear-gradient(90deg, var(--gold) 0%, var(--accent) 38%, rgba(255, 90, 31, 0) 100%);
}

.point-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  margin: 0 0 12px;
  border-radius: 50%;
  border: 1px solid rgba(245, 179, 1, .45);
  background: rgba(245, 179, 1, .12);
  font-family: var(--font-head);
  font-size: .92rem;
  font-weight: 800;
  line-height: 1;
  color: var(--gold);
}

.point-num::before { content: counter(point, decimal-leading-zero); }

.points .point-title {
  margin: 0 0 .55em;
  padding: 0;
  font-family: var(--font-head);
  font-size: 1.02rem;
  font-weight: 800;
  line-height: 1.3;
  letter-spacing: .01em;
  color: var(--text-primary);
}

.points .point-title::before,
.points .point-title::after { content: none; }

.points > li > p {
  margin: 0 0 .85em;
  font-size: .93rem;
  line-height: 1.7;
  color: var(--text-muted);
}

.points > li > p:last-child { margin-bottom: 0; }

@media (min-width: 900px) {
  .points { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
}

/* --------------------------------------------------------------------------
   34. Tournaments panel (games page)
       Presentational block: no live countdown, no prize figures and no
       tournament data are invented here — the digit slots stay blank and the
       links point at the promotions page on this site.
   -------------------------------------------------------------------------- */
.tourn {
  position: relative;
  margin: 2.2em 0;
  padding: 40px 20px 44px;
  border-radius: 18px;
  border: 1px solid var(--border);
  overflow: hidden;
  background:
    radial-gradient(90% 120% at 50% 0%, rgba(60, 82, 150, .34) 0%, rgba(11, 7, 16, 0) 62%),
    radial-gradient(70% 90% at 50% 110%, rgba(255, 90, 31, .16) 0%, rgba(11, 7, 16, 0) 60%),
    linear-gradient(180deg, #0d1330 0%, #090a18 55%, #0b0710 100%);
  text-align: center;
}

.tourn-title {
  margin: 0 0 12px;
  font-family: var(--font-head);
  font-size: clamp(1.9rem, 6vw, 3rem);
  font-weight: 800;
  line-height: 1;
  letter-spacing: .01em;
  text-transform: uppercase;
  color: var(--gold);
}

.tourn-sub {
  max-width: 44ch;
  margin: 0 auto 22px;
  font-size: .95rem;
  font-weight: 600;
  line-height: 1.55;
  color: var(--text-primary);
}

.tourn-browse {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  margin: 0 0 30px;
  padding: 0 26px;
  border: 2px solid var(--gold);
  border-radius: 10px;
  background: transparent;
  font-family: var(--font-head);
  font-size: .92rem;
  font-weight: 800;
  color: var(--gold);
  transition: background-color .18s var(--ease), color .18s var(--ease);
}

.tourn-browse:hover,
.tourn-browse:focus { background: var(--gold); color: #12100a; }

/* Offset outline behind the card, as in the reference. */
.tourn-frame {
  position: relative;
  max-width: 660px;
  margin: 0 auto;
  padding: 0 14px;
}

.tourn-frame::before {
  content: "";
  position: absolute;
  inset: 26px 0 -18px 0;
  border: 1px solid rgba(226, 61, 61, .55);
  border-radius: 16px;
}

.tourn-card {
  position: relative;
  display: grid;
  grid-template-columns: 1fr;
  gap: 4px;
  padding: 18px 18px 22px;
  border-radius: 14px;
  background: linear-gradient(135deg, #3a0d13 0%, #240a10 48%, #1a070c 100%);
  text-align: center;
}

.tourn-art { display: block; margin: -6px auto 0; }
.tourn-art img { display: block; width: 100%; max-width: 300px; height: auto; margin: 0 auto; }

.tourn-body { display: flex; flex-direction: column; align-items: center; min-width: 0; max-width: 100%; }

.tourn-name {
  margin: 0 0 14px;
  font-family: var(--font-head);
  font-size: 1.12rem;
  font-weight: 800;
  color: var(--gold);
}

.tourn-tag {
  display: inline-block;
  margin-left: 8px;
  padding: 3px 8px;
  border: 1px solid rgba(255, 255, 255, .28);
  border-radius: 999px;
  font-family: var(--font-body);
  font-size: .58rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  vertical-align: middle;
  color: rgba(255, 255, 255, .7);
}

.tourn-clock {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: 6px;
  margin: 0 0 18px;
  padding: 0;
  list-style: none;
}

.tourn-clock li { margin: 0; min-width: 44px; }
.tourn-clock li.tourn-sep { min-width: 0; }

.tourn-clock b {
  display: block;
  font-family: var(--font-head);
  font-size: clamp(1.25rem, 5.4vw, 1.6rem);
  font-weight: 800;
  line-height: 1.1;
  color: #fff;
  letter-spacing: .04em;
}

.tourn-clock span {
  display: block;
  margin-top: 2px;
  font-size: .58rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .55);
}

.tourn-sep {
  font-family: var(--font-head);
  font-size: clamp(1.15rem, 5vw, 1.5rem);
  font-weight: 800;
  line-height: 1.2;
  color: rgba(255, 255, 255, .45);
}

.tourn-prize {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin: 0 0 18px;
}

.tourn-prize svg { width: 40px; height: 40px; flex: 0 0 auto; color: var(--gold); }

.tourn-prize-text { text-align: left; }

.tourn-prize-main {
  display: block;
  font-family: var(--font-head);
  font-size: 1.5rem;
  font-weight: 800;
  line-height: 1.1;
  color: var(--gold);
}

.tourn-prize-sub {
  display: block;
  font-size: .82rem;
  font-weight: 700;
  color: #fff;
}

.tourn-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 300px;
  min-height: 48px;
  padding: 0 24px;
  border-radius: 10px;
  background: linear-gradient(180deg, #ef4a4a 0%, #d92f2f 100%);
  font-family: var(--font-head);
  font-size: .95rem;
  font-weight: 800;
  color: #fff;
  transition: filter .18s var(--ease), transform .18s var(--ease);
}

.tourn-cta:hover,
.tourn-cta:focus { filter: brightness(1.08); transform: translateY(-1px); color: #fff; }

@media (min-width: 760px) {
  .tourn { padding: 48px 28px 52px; }
  .tourn-card {
    grid-template-columns: 44% 1fr;
    align-items: center;
    gap: 10px;
    padding: 10px 26px 10px 10px;
  }
  .tourn-art { margin: 0; }
  .tourn-art img { max-width: none; }
  .tourn-clock { gap: 8px; }
  .tourn-clock li { min-width: 58px; }
}

/* --------------------------------------------------------------------------
   36. User experiences (homepage) — quoted public reviews
       Every card carries a real reviewer handle, the rating that reviewer
       gave, and a link to the review on its source platform. Nothing here
       is written by this site.
   -------------------------------------------------------------------------- */
.ux { margin: 1.8em 0 2.2em; }

.ux-intro {
  margin: 0 0 1.4em;
  font-size: .93rem;
  line-height: 1.75;
  color: var(--text-muted);
}

.ux-grid {
  display: grid;
  grid-template-columns: 1fr;
  grid-auto-rows: 1fr;
  gap: 16px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.ux-grid > li {
  display: flex;
  flex-direction: column;
  margin: 0;
  padding: 20px 20px 18px;
  border: 1px solid var(--border);
  border-radius: 14px;
  background:
    linear-gradient(145deg, rgba(255, 90, 31, .16) 0%, rgba(140, 60, 220, .10) 46%, rgba(11, 7, 16, 0) 100%),
    var(--bg-card);
  box-shadow: 0 10px 24px rgba(0, 0, 0, .32);
}

.ux-head {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 12px;
}

.ux-avatar {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  border-radius: 50%;
  border: 2px solid rgba(245, 179, 1, .5);
  background: linear-gradient(140deg, #ff7a45, #b83a12);
  font-family: var(--font-head);
  font-size: 1.05rem;
  font-weight: 800;
  line-height: 1;
  color: #fff;
}

.ux-who { min-width: 0; }

.ux-name {
  display: block;
  font-family: var(--font-head);
  font-size: .96rem;
  font-weight: 800;
  line-height: 1.25;
  color: var(--text-primary);
  word-break: break-word;
}

.ux-src {
  display: block;
  margin-top: 2px;
  font-size: .76rem;
  line-height: 1.4;
  color: var(--text-muted);
}

.ux-src a { color: var(--text-muted); text-decoration: underline; text-underline-offset: 2px; }
.ux-src a:hover, .ux-src a:focus { color: var(--gold); }

.ux-rating {
  display: flex;
  align-items: center;
  gap: 9px;
  margin: 0 0 12px;
}

.ux-stars {
  position: relative;
  display: block;
  width: 92px;
  height: 18px;
  line-height: 0;
}

.ux-stars svg { display: block; width: 92px; height: 18px; }
.ux-stars-base { color: rgba(255, 255, 255, .18); }

.ux-stars-fill {
  position: absolute;
  inset: 0 auto 0 0;
  width: var(--fill, 0%);
  overflow: hidden;
  color: var(--gold);
}

.ux-score {
  font-family: var(--font-head);
  font-size: .76rem;
  font-weight: 800;
  color: var(--gold);
}

.ux-quote {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: .9rem;
  line-height: 1.7;
  color: var(--text-primary);
}

.ux-quote p { margin: 0; }

@media (min-width: 620px) {
  .ux-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 1024px) {
  .ux-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* Games page H1 shares the centred gold treatment of the row label above the grid. */
.grow-h1 {
  margin: 0 0 14px;
  font-family: var(--font-head);
  font-size: clamp(1.45rem, 3.4vw, 2rem);
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: .01em;
  color: var(--text-primary);
  text-align: center;
}

/* --------------------------------------------------------------------------
   37. Testimonials (player reviews)
       Additive only. Every rule is scoped under .tcards / .tcard so no
       existing section is affected.
   -------------------------------------------------------------------------- */
.tcards {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-auto-rows: 1fr;
  gap: 16px;
  margin: 0 0 10px;
  padding: 0;
  list-style: none;
}

.tcards li { margin: 0; }

.tcard {
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 20px 22px 18px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--bg-card);
  box-shadow: var(--shadow-sm);
}

.tcard-quote {
  margin: 0 0 16px;
  color: var(--text-secondary);
  font-size: 1rem;
  line-height: 1.7;
}

.tcard-quote--said { font-style: normal; }

.tcard-foot {
  margin-top: auto;
  padding-top: 14px;
  border-top: 1px solid var(--border);
}

.tcard-name {
  margin: 0;
  font-weight: 700;
  color: var(--text-primary);
  line-height: 1.35;
}

.tcard-meta {
  margin: 3px 0 0;
  font-size: .85rem;
  color: var(--text-muted);
}

@media (min-width: 620px) {
  .tcards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 1024px) {
  .tcards { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}


/* Brand-site additions */
.footer-col .footer-title { font-size: 1.02rem; margin: 0 0 .85em; color: #ffffff; letter-spacing: .01em; }
.brand-hero-cta--ghost { background: transparent; border: 1px solid var(--gold, #f5b301); color: var(--gold, #f5b301); margin-left: 10px; }
.cta-band { margin: 22px 0 26px; padding: 18px 20px; border-radius: 14px; background: linear-gradient(135deg, rgba(220,38,38,.18), rgba(245,179,1,.14)); border: 1px solid rgba(245,179,1,.35); }
.cta-band p { margin: 0 0 12px; }
.cta-band .btn { display: inline-block; }
.linkhub { margin: 26px 0 8px; padding: 18px 20px; border-radius: 14px; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.09); }
.linkhub .linkhub-title { font-size: 1.05rem; margin: 0 0 .7em; color: #ffffff; }
.linkhub ul { list-style: none; padding: 0; margin: 0; display: grid; gap: .5em; }
.linkhub a { color: var(--gold-soft, #ffd76a); }
.faq-list { margin: 0; padding: 0; list-style: none; }
.faq-list > li { margin-bottom: 14px; padding: 14px 16px; border-radius: 12px; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.08); }
.faq-q { margin: 0 0 .45em; font-weight: 700; color: #ffffff; }
.faq-a { margin: 0; }


.footer-social { list-style: none; padding: 0; margin: 14px 0 0; display: flex; gap: 10px; }
.footer-social-link {
  display: inline-flex; align-items: center; justify-content: center;
  width: 42px; height: 42px; border-radius: 50%;
  border: 1px solid rgba(255,255,255,.16);
  background: rgba(255,255,255,.05);
  color: #ffffff; text-decoration: none; font-size: .9rem; font-weight: 600;
  transition: background .16s ease, border-color .16s ease, transform .16s ease;
}
.footer-social-link:hover, .footer-social-link:focus { background: rgba(255,255,255,.1); border-color: var(--gold, #f5b301); color: var(--gold-soft, #ffd76a); transform: translateY(-1px); }
.footer-social-link svg { flex: 0 0 auto; }
