/* 2HC design system (FIX_PLAN §4.1 / Appendix B).
   Injected as a BASE layer before the page's own CSS so every site looks
   intentional by default. Brand colors are overridden per project by the
   pipeline (the :root block below is replaced with the brand palette). */
:root{
  /* Brand colors — overridden per project */
  --color-primary:   #00ff66;
  --color-accent:    #00d15e;
  --color-bg:        #1f2528;
  --color-bg-2:      #101619;
  --color-text:      #ffffff;
  --color-muted:     #9fb0ab;
  --color-cta:       #00d15e;
  --color-cta-hover: #00c24f;

  /* Spacing scale (8px base) */
  --s-1: .25rem; --s-2: .5rem; --s-3: .75rem; --s-4: 1rem;
  --s-6: 1.5rem; --s-8: 2rem; --s-12: 3rem; --s-16: 4rem; --s-24: 6rem;

  /* Radii */
  --r-sm: 8px; --r-md: 14px; --r-lg: 22px; --r-pill: 999px;

  /* Elevation */
  --shadow-1: 0 1px 2px rgba(0,0,0,.4);
  --shadow-2: 0 8px 24px rgba(0,0,0,.45);
  --shadow-glow: 0 0 0 1px rgba(0,255,102,.25), 0 8px 30px rgba(0,255,102,.25);

  /* Layout + type */
  --container: 1180px;
  --section-y: clamp(3rem, 7vw, 6rem);
  --fs-h1: clamp(2.2rem, 5vw, 3.4rem);
  --fs-h2: clamp(1.6rem, 3.5vw, 2.3rem);
  --fs-body: 1.0625rem;
  --lh-body: 1.65;
}*,*::before,*::after{ box-sizing: border-box; }body,h1,h2,h3,p,ul,ol,figure,blockquote{ margin: 0; padding: 0; }body{
  background: radial-gradient(1200px 600px at 50% -10%, #243033 0%, var(--color-bg) 40%, var(--color-bg-2) 100%);
  color: var(--color-text);
  font-family: Inter, system-ui, sans-serif;
  font-size: var(--fs-body);
  line-height: var(--lh-body);
  -webkit-font-smoothing: antialiased;
}.xa148-container{ width: min(100% - 2rem, var(--container)); margin-inline: auto; }section{ padding-block: var(--section-y); }section + section{ padding-block-start: 0; }h1{ font-size: var(--fs-h1); line-height: 1.1; font-weight: 800; letter-spacing: -.02em; }h2{ font-size: var(--fs-h2); line-height: 1.15; font-weight: 700; margin-bottom: var(--s-6); }p{ color: var(--color-text); max-width: 68ch; }/* CTA button with glow */
.xa148-btn{
  display: inline-flex; align-items: center; gap: .5rem;
  padding: .85rem 1.6rem; border-radius: var(--r-pill);
  font-weight: 700; text-decoration: none;
  background: linear-gradient(180deg, var(--color-primary), var(--color-cta));
  color: #06210f; box-shadow: var(--shadow-glow);
  transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}.xa148-btn:hover{ transform: translateY(-2px); filter: brightness(1.05);
  box-shadow: 0 0 0 1px rgba(0,255,102,.4), 0 12px 38px rgba(0,255,102,.35); }.xa148-btn:focus-visible{ outline: 3px solid var(--color-primary); outline-offset: 3px; }/* Game card — real image,gradient ONLY as overlay{
  position: relative; aspect-ratio: 3/4; border-radius: var(--r-md);
  overflow: hidden; box-shadow: var(--shadow-2);
}/* Tables (bonus terms,payments,limits) */
table{ width: 100%; max-width: 100%; border-collapse: collapse; border-radius: var(--r-md); overflow: hidden; }caption{ text-align: left; font-weight: 700; margin-bottom: var(--s-3); }th,td{ padding: .85rem 1rem; text-align: left; border-bottom: 1px solid rgba(255,255,255,.08); overflow-wrap: anywhere; }thead th{ background: rgba(255,255,255,.05); }@media (prefers-reduced-motion: reduce){*,*::before,*::after{ animation: none !important; transition: none !important; }}@media (prefers-reduced-motion: no-preference){html{ scroll-behavior: smooth; }}

/* ── Content panels over image-backed sections ──────────────────────────────
   The CWV step injects a fal.ai background-image onto #bonus/#hero. fal casino
   images often bake the word "BONUS" into the picture, so a data panel sitting
   directly on that section lets the art bleed through behind the terms table and
   obscure values (vision-gate HOLD, Basswin 2026-06-16). Give content panels an
   OPAQUE surface so the table is always readable. */
.bonus-card,.steps,.step{
  background: var(--color-bg-2, #101619);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: var(--r-md, 14px);
  padding: clamp(1.1rem, 3vw, 1.9rem);
  box-shadow: var(--shadow-2, 0 8px 24px rgba(0,0,0,.45));
  position: relative; z-index: 1;
}
.bonus-card table{ background: transparent; }

/* ── FAQ accordion ───────────────────────────────────────────────────────────
   Bare <details> render as broken/empty with dead whitespace (vision). Give
   items a surface, padding and a +/- affordance so even a collapsed FAQ reads
   as an intentional accordion. */
.xa148-faq{ display: flex; flex-direction: column; gap: .6rem; max-width: 820px; margin-inline: auto; }
.xa148-faq-item{
  background: color-mix(in srgb, var(--color-bg-2, #101619) 80%, transparent);
  border: 1px solid rgba(255,255,255,.10);
  border-radius: var(--r-sm, 8px);
  padding: .9rem 1.1rem;
}
.xa148-faq-item>summary{
  cursor: pointer; font-weight: 600; list-style: none;
  display: flex; justify-content: space-between; align-items: center; gap: 1rem;
  color: var(--color-text);
}
.xa148-faq-item>summary::-webkit-details-marker{ display: none; }
.xa148-faq-item>summary::after{ content: "+"; font-size: 1.3em; line-height: 1; opacity: .7; }
.xa148-faq-item[open]>summary::after{ content: "\2013"; }
.xa148-faq-item>*:not(summary){ margin-top: .7rem; }

/* ── Image-free build helpers (text logo / text payment pills / text game tiles)
   These give an intentional look when the project is generated with no pictures
   (logo as text, favicon only). Harmless when images ARE used — themes/layout
   CSS override the .xa148-game-card gradient. */
.brand-mark--text{ font-weight: 800; font-size: 1.45rem; letter-spacing: -.02em;
  color: var(--color-text); text-decoration: none; display: inline-flex; align-items: center; }
.brand-mark--text.xa148-brand-mark--footer{ font-size: 1.05rem; }
.pay,.payment-pill{ display: inline-flex; align-items: center; gap: .3rem;
  padding: .3rem .7rem; border-radius: var(--r-sm, 8px); border: 1px solid rgba(255,255,255,.18);
  background: rgba(255,255,255,.06); font-size: .8rem; font-weight: 600; color: var(--color-text); }
.xa148-game-card:not(:has(img)){ display: flex; align-items: center; justify-content: center;
  text-align: center; min-height: 90px; padding: .75rem; border-radius: var(--r-md, 14px);
  background: linear-gradient(135deg,
    color-mix(in srgb, var(--color-primary, #4f46e5) 30%, #0b0b14),
    color-mix(in srgb, var(--color-accent, #a855f7) 24%, #0b0b14));
  border: 1px solid rgba(255,255,255,.10); font-weight: 700; color: var(--color-text); }
.game-name{ display: flex; align-items: center; justify-content: center; text-align: center;
  padding: .5rem; font-weight: 600; color: var(--color-text); }
/* Games grid — responsive columns. design-system OWNS this so it applies in
   NO-IMAGES mode too: generate_images only injects the grid on the image path,
   so the phased writer's <div class="games-grid"> was otherwise unstyled →
   full-width stacked bars that read as "broken artwork" (vision-gate 2026-06). */
.xa148-games-grid,.game-grid{ display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: var(--s-4, 1rem); }
/* ── Review-page components (rendered by _review_blocks) ─────────────────────
   Every one is built from the palette variables, so all 15 themes carry it. A
   review page is components, not prose: lists, tables, cards and an accordion
   are what make its structure independent of how much text there is. */
.xa148-hero-sub{ margin-top: var(--s-4, 1rem); font-size: 1.15rem; opacity: .92; }
.xa148-key-points{ list-style: none; padding: 0; margin-top: var(--s-4, 1rem);
  display: flex; flex-wrap: wrap; gap: .5rem .6rem; }
.xa148-key-points li{ padding: .35rem .85rem; border-radius: var(--r-pill, 999px);
  border: 1px solid var(--line, rgba(255,255,255,.18)); background: rgba(255,255,255,.06); font-size: .92rem; }
.xa148-table-wrap{ overflow-x: auto; -webkit-overflow-scrolling: touch; border-radius: var(--r-md, 14px); }
.xa148-table-wrap table{ min-width: 540px; }
.xa148-compare-table th:first-child,.xa148-compare-table td:first-child{ white-space: nowrap; font-weight: 600; }
/* CTA column — the last cell of every comparison row. `width:1%` makes the
   column shrink to the button, so it cannot take space from the fact columns
   (it took 292px of a 1060px table and squeezed "Licenca" to 91px, where the
   base `overflow-wrap:anywhere` — there for long licence numbers — split the
   HEADING mid-word as "LICENC/A"). A column LABEL is a short word and must
   never break; a long licence VALUE in a `td` still wraps as before. */
.xa148-compare-table th{ overflow-wrap: normal; }
.xa148-compare-table .xa148-cta-cell,.xa148-compare-table th:last-child{ width: 1%; white-space: nowrap; text-align: center; }
.xa148-btn-sm{ padding: .45rem 1rem; font-size: .86rem; }
.xa148-compare-table .xa148-cta-cell .xa148-btn{ display: inline-block; width: 100%; min-width: 7.5rem; text-align: center; }
.xa148-op-cards{ display: grid; gap: var(--s-6, 1.5rem);
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); }
.xa148-op-card,.pick{ background: var(--color-bg-2, #101619); border: 1px solid var(--line, rgba(255,255,255,.12));
  border-radius: var(--r-md, 14px); padding: clamp(1.1rem, 3vw, 1.7rem); }
.xa148-op-card{ display: flex; flex-direction: column; gap: .9rem; }
.xa148-op-card p,.pick p{ max-width: none; }
.xa148-op-card h3,.pick h3{ font-size: 1.3rem; line-height: 1.2; }
.xa148-op-card .xa148-btn{ align-self: flex-start; margin-top: auto; }
/* One compared operator's own logo, next to its name in a card/table/pick
   row (see _review_blocks.py's op-logo-slot marker + _gi_review.py, which
   fills or drops it once the file exists on disk). Base rule, not per-skin —
   works on all 4 skins without an override. */
.xa148-op-logo{ height: 1.5em; width: auto; max-width: 6.5rem; vertical-align: -0.3em;
  margin-inline-end: .5em; object-fit: contain; }
.op-logo-slot:empty{ display: none; }
.xa148-facts{ list-style: none; padding: 0; display: grid; gap: .5rem; }
.xa148-facts li{ display: grid; grid-template-columns: minmax(6.5rem, 30%) 1fr; gap: .1rem .8rem; }
.xa148-facts li span{ font-size: .78rem; text-transform: uppercase; letter-spacing: .06em; opacity: .7; }
@media (max-width: 480px){ .xa148-facts li{ grid-template-columns: 1fr; } }
.xa148-pros-cons,.xa148-pros,.xa148-cons{ display: grid; gap: .35rem; }
.xa148-pros,.xa148-cons{ list-style: none; padding: 0; }
.xa148-pros li,.xa148-cons li{ position: relative; padding-left: 1.5rem; }
.xa148-pros li::before,.xa148-cons li::before{ position: absolute; left: 0; font-weight: 700; }
.xa148-pros li::before{ content: "+"; color: var(--color-primary, #0a0); }
.xa148-cons li::before{ content: "\2212"; opacity: .7; }
.pick-grid{ display: grid; gap: var(--s-4, 1rem);
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); }
/* Keyword topics (_review_blocks.render_topic): an intro, then points as a
   two-part list — a bold lead-in and its sentence. A list by construction, so
   eight topics cannot become a paragraph wall. */
.xa148-topic-intro{ max-width: 70ch; }
.xa148-topic-points{ list-style: none; padding: 0; display: grid; gap: .8rem;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); }
.xa148-topic-points li{ padding: .9rem 1rem; border: 1px solid var(--line, rgba(255,255,255,.12));
  border-radius: var(--r-md, 12px); background: var(--color-bg-2, transparent); }
.xa148-topic-points li strong{ display: block; margin-bottom: .25rem; }
/* A topic's data table (one per page, _review_blocks.TABLE_KINDS). It borrows
   the comparison table's look but not its CTA column rules: its last column is
   prose ("what to check"), which `width:1%; nowrap` would squeeze into one
   endless line. */
.xa148-topic-table-wrap{ margin: var(--s-4, 1rem) 0; }
.xa148-topic-table th:last-child{ width: auto; white-space: normal; text-align: left; }
.xa148-topic-table th:first-child,.xa148-topic-table td:first-child{ white-space: normal; min-width: 7.5rem; }
.xa148-criteria{ list-style: none; padding: 0; counter-reset: crit; display: grid; gap: 1rem; }
.xa148-criteria li{ counter-increment: crit; position: relative; padding-left: 3rem; }
.xa148-criteria li::before{ content: counter(crit); position: absolute; left: 0; top: .1rem;
  width: 2rem; height: 2rem; display: grid; place-items: center; border-radius: 50%;
  font-weight: 700; background: var(--color-primary, #0a0); color: #06210f; }
.xa148-criteria li strong{ display: block; }
.xa148-checklist{ list-style: none; padding: 0; display: grid; gap: .55rem; }
.xa148-checklist li{ position: relative; padding-left: 1.8rem; }
.xa148-checklist li::before{ content: "\2713"; position: absolute; left: 0; font-weight: 700;
  color: var(--color-primary, #0a0); }
.xa148-glossary{ display: grid; gap: .9rem; margin: 0; }
.xa148-glossary dt{ font-weight: 700; }
.xa148-glossary dd{ margin: .15rem 0 0; opacity: .88; }
.xa148-container > h3{ margin: 1.6rem 0 .6rem; }
.xa148-container > h3:first-child{ margin-top: 0; }

/* Keyword-topic pictures (_gi_review.apply_topic_figures): one under each
   topic's intro. Capped near the reading column, fixed 16:9 box so the page does
   not shift while a lazy image arrives. */
.xa148-topic-figure{ margin: var(--s-4, 1rem) 0 var(--s-5, 1.25rem); max-width: 860px; }
.xa148-topic-figure img{ display: block; width: 100%; height: auto; aspect-ratio: 16 / 9;
  object-fit: cover; border-radius: var(--r-md, 14px); }

/* ── page-specific CSS ── */
:root {
  --color-primary: #0066cc;
  --color-accent: #ff9900;
  --color-bg: #1a1a2e;
  --color-bg-2: #0b0b1f;
  --color-text: #ffffff;
  --color-secondary: #cccccc;
  --color-cta: #985900;
  --color-cta-hover: #a25d00;
}

.hero-ctas > .xa148-btn { margin: .3rem .35rem; }

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-body,'Inter',system-ui,sans-serif);background:linear-gradient(180deg,#1c1023 0%,#2a1428 45%,#190d1e 100%);color:var(--color-text);line-height:1.66;font-size:16px}img{max-width:100%;display:block}a{color:var(--color-accent);text-decoration:none}h1,h2,h3{line-height:1.18;font-weight:800}h1{font-size:clamp(2rem,4.8vw,3.3rem);background:linear-gradient(90deg,var(--color-text),var(--color-accent));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}h2{font-size:clamp(1.4rem,3vw,2rem);margin-bottom:.7em}h3{font-size:1.05rem}p{margin-bottom:1em;color:var(--color-text)}.xa148-container{max-width:1100px;margin:0 auto;padding:0 22px}.xa148-site-header{position:sticky;top:0;z-index:50;background:#1c1023ee;backdrop-filter:blur(10px)}.xa148-site-header .xa148-container{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:64px}.xa148-brand-mark{display:flex;align-items:center;gap:10px;min-height:38px;font-weight:800;white-space:nowrap}.xa148-brand-mark img{height:36px;width:auto;max-width:150px;object-fit:contain}.xa148-nav{display:flex;gap:22px;flex-wrap:wrap}.xa148-nav a{color:var(--color-text);font-weight:600;font-size:.94rem;opacity:.9}.xa148-nav a:hover{color:var(--color-accent);opacity:1}.xa148-btn{display:inline-block;padding:14px 32px;border-radius:14px;font-weight:700;font-size:1rem;text-align:center;border:0;cursor:pointer;transition:transform .15s,box-shadow .15s}.xa148-btn:hover{transform:translateY(-2px)}.xa148-btn-primary{background:linear-gradient(120deg,var(--color-cta),var(--color-accent));color:#fff;box-shadow:0 10px 26px color-mix(in srgb,var(--color-cta) 45%,transparent)}.xa148-hero{padding:70px 0 56px;text-align:center}.xa148-hero .xa148-container{display:flex;flex-direction:column;align-items:center;gap:18px}table{width:100%;border-collapse:collapse;margin:18px 0;font-size:.95rem}th,td{padding:12px 14px;text-align:left;border-bottom:1px solid rgba(255,255,255,.1)}th{color:var(--color-accent);font-weight:700}.xa148-site-footer{background:rgba(0,0,0,.35);padding:44px 0 30px;font-size:.9rem}.xa148-site-footer .xa148-container{display:flex;flex-direction:column;gap:18px}.footer-nav{display:flex;gap:18px;flex-wrap:wrap}.footer-nav a{color:var(--color-secondary)}@media (max-width:720px){.xa148-nav{display:none}main main .xa148-btn{width:100%}.xa148-site-header .xa148-btn{width:auto;padding:9px 14px;font-size:.85rem;white-space:nowrap}.xa148-site-header .xa148-btn{width:auto;padding:9px 14px;font-size:.85rem;white-space:nowrap}}
body[data-skin="magazine"] h1,body[data-skin="magazine"] h2,body[data-skin="magazine"] h3{-webkit-text-fill-color:initial}

body[data-skin="magazine"]{
  --color-bg:#0e1b24; --color-bg-2:#142633; --color-text:#e9f1f5; --color-secondary:#a9bcc7;
  --color-primary:#2dd4bf; --color-accent:#5eead4; --color-cta:#0f766e; --color-cta-hover:#115e59;
  --line:rgba(233,241,245,.16); --ink-dark:#0a141b;
  --font-body:'Segoe UI','Trebuchet MS',system-ui,sans-serif;
  --font-head:'Trebuchet MS','Segoe UI',system-ui,sans-serif;
  background:linear-gradient(180deg,var(--color-bg) 0%,#0a141b 100%); color:var(--color-text);
}
body[data-skin="magazine"] h1,body[data-skin="magazine"] h2,body[data-skin="magazine"] h3{
  font-family:var(--font-head); text-shadow:none; letter-spacing:-.01em}
body[data-skin="magazine"] .xa148-site-header{background:var(--ink-dark); backdrop-filter:none;
  border-bottom:1px solid var(--color-primary)}
body[data-skin="magazine"] .xa148-nav a{color:var(--color-text); font-weight:600; opacity:.9;
  border-bottom:2px solid transparent; padding-bottom:.25rem}
body[data-skin="magazine"] .xa148-nav a:hover{border-bottom-color:var(--color-accent); color:var(--color-accent)}
body[data-skin="magazine"] .xa148-hero{text-align:left; padding:88px 0 64px}
body[data-skin="magazine"] .xa148-hero .xa148-container{align-items:flex-start}
body[data-skin="magazine"] .xa148-hero,body[data-skin="magazine"] .xa148-hero p,body[data-skin="magazine"] .xa148-hero li{color:#fff}
body[data-skin="magazine"] .xa148-hero h1{max-width:20ch; font-size:clamp(2.1rem,5vw,3.6rem)}
body[data-skin="magazine"] .xa148-hero-sub{max-width:60ch}
body[data-skin="magazine"] .xa148-key-points{display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:.8rem; width:100%; margin-top:1.4rem}
body[data-skin="magazine"] .xa148-key-points li{border-radius:6px; background:rgba(14,27,36,.82);
  border:1px solid rgba(94,234,212,.5); border-top:3px solid var(--color-accent); padding:.8rem 1rem; font-size:.95rem}
body[data-skin="magazine"] main h2{border-left:6px solid var(--color-accent); padding-left:.6em}
body[data-skin="magazine"] .xa148-btn{border-radius:999px; box-shadow:none; background:var(--color-cta); color:#fff;
  letter-spacing:.02em}
body[data-skin="magazine"] .xa148-btn:hover{background:var(--color-cta-hover); transform:none}
body[data-skin="magazine"] .xa148-op-card,body[data-skin="magazine"] .pick{background:var(--color-bg-2);
  border:1px solid var(--line); border-left:5px solid var(--color-primary); border-radius:8px; box-shadow:none}
body[data-skin="magazine"] .xa148-facts li span{color:var(--color-accent); opacity:1}
body[data-skin="magazine"] .xa148-pros li::before{color:var(--color-accent)}
body[data-skin="magazine"] table{border-radius:8px}
body[data-skin="magazine"] .xa148-table-wrap{border:1px solid var(--line); border-radius:8px}
body[data-skin="magazine"] th{background:rgba(94,234,212,.12); color:var(--color-accent)}
body[data-skin="magazine"] th,body[data-skin="magazine"] td{border-bottom:1px solid var(--line)}
body[data-skin="magazine"] tbody tr:hover{background:rgba(94,234,212,.05)}
body[data-skin="magazine"] .xa148-criteria{grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:1.2rem}
body[data-skin="magazine"] .xa148-criteria li{padding:3.2rem 1.1rem 1.1rem; background:var(--color-bg-2);
  border:1px solid var(--line); border-radius:8px}
body[data-skin="magazine"] .xa148-criteria li::before{left:1.1rem; top:.9rem; background:var(--color-primary); color:#062a26}
body[data-skin="magazine"] .xa148-faq{display:grid; grid-template-columns:1fr; gap:.7rem; max-width:none}
body[data-skin="magazine"] .xa148-faq-item{background:var(--color-bg-2); border:1px solid var(--line); border-radius:8px}
body[data-skin="magazine"] .xa148-site-footer{background:var(--ink-dark); border-top:1px solid var(--line)}
@media (min-width:1000px){
  body[data-skin="magazine"] .xa148-op-cards{grid-template-columns:1fr; gap:1.1rem}
  body[data-skin="magazine"] .xa148-op-card{display:grid; grid-template-columns:1.05fr 1.45fr 1.25fr auto;
    column-gap:2rem; row-gap:.5rem; align-items:start}
  body[data-skin="magazine"] .xa148-op-card h3{grid-column:1; grid-row:1}
  body[data-skin="magazine"] .xa148-op-card .xa148-op-bonus{grid-column:1; grid-row:2}
  body[data-skin="magazine"] .xa148-op-card .xa148-op-best{grid-column:1; grid-row:3}
  body[data-skin="magazine"] .xa148-op-card .xa148-facts{grid-column:2; grid-row:1 / span 3}
  body[data-skin="magazine"] .xa148-op-card .xa148-pros-cons{grid-column:3; grid-row:1 / span 3}
  body[data-skin="magazine"] .xa148-op-card .xa148-btn{grid-column:4; grid-row:1 / span 3; align-self:center; margin:0}
  body[data-skin="magazine"] .xa148-faq{grid-template-columns:1fr 1fr; align-items:start}
}


#nav-toggle { position: absolute; width: 1px; height: 1px; opacity: 0; }
.xa148-nav-burger { display: none; }
@media (min-width: 721px) {
  
  .xa148-site-header .xa148-container { flex-wrap: nowrap; }
  .xa148-nav { flex-wrap: nowrap; min-width: 0; }
  .xa148-nav a { white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
           max-width: 24ch; }
}
@media (max-width: 720px) {
  .xa148-site-header .xa148-container { position: relative; flex-wrap: nowrap; }
  
  .xa148-nav-burger { display: flex; flex-direction: column; justify-content: center;
                align-items: center; width: 44px; height: 44px;
                cursor: pointer; flex: 0 0 auto; color: var(--color-text, #fff); }
  .xa148-nav-burger::before, .xa148-nav-burger::after {
    content: ""; display: block; width: 22px; height: 2px; border-radius: 2px;
    background: currentColor; transition: transform .2s; }
  .xa148-nav-burger::before { box-shadow: 0 -7px 0 currentColor, 0 7px 0 currentColor; }
  .xa148-nav-burger::after { display: none; }
  #nav-toggle:checked ~ .xa148-nav-burger::before { box-shadow: none;
    transform: rotate(45deg) translateY(1px); }
  #nav-toggle:checked ~ .xa148-nav-burger::after { display: block; margin-top: -2px;
    transform: rotate(-45deg) translateY(-1px); }
  
  #nav-toggle:checked ~ .xa148-nav {
    display: flex; flex-direction: column; align-items: stretch; gap: 0;
    position: absolute; top: 100%; left: 0; right: 0; z-index: 60;
    background: var(--color-bg-2, var(--color-bg, #111));
    padding: 4px 22px 14px; box-shadow: 0 14px 28px rgba(0,0,0,.45);
  }
  #nav-toggle:checked ~ .xa148-nav a { padding: 13px 0; max-width: none;
    border-bottom: 1px solid rgba(255,255,255,.09); }
}
#hero, section#hero, .xa148-hero, .hero-section, [id*="hero"] { background-image: linear-gradient(180deg, rgba(10,12,24,.20) 0%, rgba(10,12,24,.45) 55%, rgba(10,12,24,.72) 100%), url('../images/hero.jpg?v=58a4e454') !important; background-size: cover !important; background-position: center center !important; background-repeat: no-repeat !important; }
#bonus, section#bonus, .bonus-section, [id*="bonus"] { background-image: linear-gradient(rgba(0,0,0,.6), rgba(0,0,0,.6)), url('../images/bonus_bg.jpg?v=8c890f2d') !important; background-size: cover !important; background-position: center !important; }
img[src*="hero"], img[src*="bonus_bg"], img.hero-image, img.bonus-banner { width: 100% !important; height: auto !important; max-height: 60vh !important; aspect-ratio: 16 / 9 !important; object-fit: cover !important; display: block !important; }
