/* 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;
}.x0d7c-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 */
.x0d7c-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;
}.x0d7c-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); }.x0d7c-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. */
.x0d7c-faq{ display: flex; flex-direction: column; gap: .6rem; max-width: 820px; margin-inline: auto; }
.x0d7c-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;
}
.x0d7c-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);
}
.x0d7c-faq-item>summary::-webkit-details-marker{ display: none; }
.x0d7c-faq-item>summary::after{ content: "+"; font-size: 1.3em; line-height: 1; opacity: .7; }
.x0d7c-faq-item[open]>summary::after{ content: "\2013"; }
.x0d7c-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 .x0d7c-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.x0d7c-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); }
.x0d7c-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). */
.x0d7c-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. */
.x0d7c-hero-sub{ margin-top: var(--s-4, 1rem); font-size: 1.15rem; opacity: .92; }
.x0d7c-key-points{ list-style: none; padding: 0; margin-top: var(--s-4, 1rem);
  display: flex; flex-wrap: wrap; gap: .5rem .6rem; }
.x0d7c-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; }
.x0d7c-table-wrap{ overflow-x: auto; -webkit-overflow-scrolling: touch; border-radius: var(--r-md, 14px); }
.x0d7c-table-wrap table{ min-width: 540px; }
.x0d7c-compare-table th:first-child,.x0d7c-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. */
.x0d7c-compare-table th{ overflow-wrap: normal; }
.x0d7c-compare-table .x0d7c-cta-cell,.x0d7c-compare-table th:last-child{ width: 1%; white-space: nowrap; text-align: center; }
.x0d7c-btn-sm{ padding: .45rem 1rem; font-size: .86rem; }
.x0d7c-compare-table .x0d7c-cta-cell .x0d7c-btn{ display: inline-block; width: 100%; min-width: 7.5rem; text-align: center; }
.x0d7c-op-cards{ display: grid; gap: var(--s-6, 1.5rem);
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); }
.x0d7c-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); }
.x0d7c-op-card{ display: flex; flex-direction: column; gap: .9rem; }
.x0d7c-op-card p,.pick p{ max-width: none; }
.x0d7c-op-card h3,.pick h3{ font-size: 1.3rem; line-height: 1.2; }
.x0d7c-op-card .x0d7c-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. */
.x0d7c-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; }
.x0d7c-facts{ list-style: none; padding: 0; display: grid; gap: .5rem; }
.x0d7c-facts li{ display: grid; grid-template-columns: minmax(6.5rem, 30%) 1fr; gap: .1rem .8rem; }
.x0d7c-facts li span{ font-size: .78rem; text-transform: uppercase; letter-spacing: .06em; opacity: .7; }
@media (max-width: 480px){ .x0d7c-facts li{ grid-template-columns: 1fr; } }
.x0d7c-pros-cons,.x0d7c-pros,.x0d7c-cons{ display: grid; gap: .35rem; }
.x0d7c-pros,.x0d7c-cons{ list-style: none; padding: 0; }
.x0d7c-pros li,.x0d7c-cons li{ position: relative; padding-left: 1.5rem; }
.x0d7c-pros li::before,.x0d7c-cons li::before{ position: absolute; left: 0; font-weight: 700; }
.x0d7c-pros li::before{ content: "+"; color: var(--color-primary, #0a0); }
.x0d7c-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. */
.x0d7c-topic-intro{ max-width: 70ch; }
.x0d7c-topic-points{ list-style: none; padding: 0; display: grid; gap: .8rem;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); }
.x0d7c-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); }
.x0d7c-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. */
.x0d7c-topic-table-wrap{ margin: var(--s-4, 1rem) 0; }
.x0d7c-topic-table th:last-child{ width: auto; white-space: normal; text-align: left; }
.x0d7c-topic-table th:first-child,.x0d7c-topic-table td:first-child{ white-space: normal; min-width: 7.5rem; }
.x0d7c-criteria{ list-style: none; padding: 0; counter-reset: crit; display: grid; gap: 1rem; }
.x0d7c-criteria li{ counter-increment: crit; position: relative; padding-left: 3rem; }
.x0d7c-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; }
.x0d7c-criteria li strong{ display: block; }
.x0d7c-checklist{ list-style: none; padding: 0; display: grid; gap: .55rem; }
.x0d7c-checklist li{ position: relative; padding-left: 1.8rem; }
.x0d7c-checklist li::before{ content: "\2713"; position: absolute; left: 0; font-weight: 700;
  color: var(--color-primary, #0a0); }
.x0d7c-glossary{ display: grid; gap: .9rem; margin: 0; }
.x0d7c-glossary dt{ font-weight: 700; }
.x0d7c-glossary dd{ margin: .15rem 0 0; opacity: .88; }
.x0d7c-container > h3{ margin: 1.6rem 0 .6rem; }
.x0d7c-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. */
.x0d7c-topic-figure{ margin: var(--s-4, 1rem) 0 var(--s-5, 1.25rem); max-width: 860px; }
.x0d7c-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 > .x0d7c-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(160deg,var(--color-bg),var(--color-bg-2));color:var(--color-text);line-height:1.68;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:600;letter-spacing:.01em}h1{font-size:clamp(2rem,5vw,3.4rem);font-weight:700}h2{font-size:clamp(1.4rem,3vw,2rem);margin-bottom:.7em}h3{font-size:1.05rem}p{margin-bottom:1em;color:var(--color-text)}.x0d7c-container{max-width:1080px;margin:0 auto;padding:0 22px}.x0d7c-site-header{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--color-bg) 55%,transparent);backdrop-filter:blur(18px);border-bottom:1px solid rgba(255,255,255,.12)}.x0d7c-site-header .x0d7c-container{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:64px}.x0d7c-brand-mark{display:flex;align-items:center;gap:10px;min-height:38px;font-weight:800;white-space:nowrap}.x0d7c-brand-mark img{height:36px;width:auto;max-width:150px;object-fit:contain}.x0d7c-nav{display:flex;gap:22px;flex-wrap:wrap}.x0d7c-nav a{color:var(--color-text);font-weight:500;font-size:.93rem;opacity:.85}.x0d7c-nav a:hover{opacity:1;color:var(--color-accent)}.x0d7c-btn{display:inline-block;padding:13px 30px;border-radius:12px;font-weight:600;font-size:1rem;text-align:center;border:0;cursor:pointer;transition:transform .15s,background .15s}.x0d7c-btn:hover{transform:translateY(-1px)}.x0d7c-btn-primary{background:var(--color-cta);color:#fff;box-shadow:0 8px 30px color-mix(in srgb,var(--color-cta) 40%,transparent)}.x0d7c-hero{padding:72px 0 56px;text-align:center}.x0d7c-hero .x0d7c-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,.12)}th{color:var(--color-accent);font-weight:600}.x0d7c-site-footer{background:rgba(0,0,0,.3);backdrop-filter:blur(14px);border-top:1px solid rgba(255,255,255,.1);padding:44px 0 30px;font-size:.9rem}.x0d7c-site-footer .x0d7c-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){.x0d7c-nav{display:none}main main .x0d7c-btn{width:100%}.x0d7c-site-header .x0d7c-btn{width:auto;padding:9px 14px;font-size:.85rem;white-space:nowrap}.x0d7c-site-header .x0d7c-btn{width:auto;padding:9px 14px;font-size:.85rem;white-space:nowrap}}
body[data-skin="editorial"] h1,body[data-skin="editorial"] h2,body[data-skin="editorial"] h3{-webkit-text-fill-color:initial}

body[data-skin="editorial"]{
  --color-bg:#faf7f2; --color-bg-2:#ffffff; --color-text:#1d1b19; --color-secondary:#5c5750;
  --color-primary:#8a1c2b; --color-accent:#8a1c2b; --color-cta:#8a1c2b; --color-cta-hover:#6f1622;
  --line:rgba(29,27,25,.16); --ink-dark:#1d1b19; --ink-light:#f4f1ec;
  --font-body:Georgia,'Iowan Old Style','Times New Roman',serif;
  --font-head:Georgia,'Iowan Old Style','Times New Roman',serif;
  background:var(--color-bg); color:var(--color-text); font-size:17px; line-height:1.72;
}
body[data-skin="editorial"] h1,body[data-skin="editorial"] h2,body[data-skin="editorial"] h3{
  font-family:var(--font-head); font-weight:700; letter-spacing:-.01em; text-transform:none; text-shadow:none}
body[data-skin="editorial"] .x0d7c-site-header{background:var(--ink-dark); backdrop-filter:none;
  border-bottom:0; box-shadow:0 3px 0 var(--color-accent)}
body[data-skin="editorial"] .x0d7c-site-header .x0d7c-nav a{color:var(--ink-light)}
@media (min-width:721px){
  
  body[data-skin="editorial"] .x0d7c-site-header .x0d7c-container{flex-direction:row; flex-wrap:wrap;
    align-items:center; justify-content:space-between; gap:.55rem 1.2rem; padding:14px 20px 10px}
  
  body[data-skin="editorial"] .x0d7c-site-header .x0d7c-nav{order:3; flex:0 0 100%; justify-content:center; width:100%;
    flex-wrap:wrap; gap:.35rem 26px;
    border-top:1px solid rgba(255,255,255,.18); padding-top:.55rem}
  body[data-skin="editorial"] .x0d7c-site-header .x0d7c-nav a{text-transform:uppercase; letter-spacing:.09em;
    font-size:.72rem; font-weight:600; max-width:none; flex:0 0 auto; overflow:visible}
}
body[data-skin="editorial"] .x0d7c-hero{text-align:left; padding:104px 0 84px; background-color:#1d1b19}
body[data-skin="editorial"] .x0d7c-hero .x0d7c-container{align-items:flex-start; gap:22px}
body[data-skin="editorial"] .x0d7c-hero,body[data-skin="editorial"] .x0d7c-hero p,body[data-skin="editorial"] .x0d7c-hero li{color:#fff}
body[data-skin="editorial"] .x0d7c-hero h1{font-size:clamp(2.4rem,6vw,4.4rem); max-width:16ch; line-height:1.04}
body[data-skin="editorial"] .x0d7c-hero-sub{max-width:54ch; font-size:1.2rem; font-style:italic}
body[data-skin="editorial"] .x0d7c-key-points{flex-direction:column; gap:.5rem; max-width:44rem}
body[data-skin="editorial"] .x0d7c-key-points li{background:none; border:0; border-left:3px solid #fff;
  border-radius:0; padding:.05rem 0 .05rem .9rem; font-size:1rem}
body[data-skin="editorial"] .x0d7c-section{padding:68px 0}
body[data-skin="editorial"] main h2{font-size:clamp(1.7rem,3.4vw,2.5rem); padding-bottom:.35em;
  border-bottom:1px solid var(--line); margin-bottom:1.1em}
body[data-skin="editorial"] main h2::before{content:""; display:block; width:3.2rem; height:4px;
  background:var(--color-accent); margin-bottom:.7rem}
body[data-skin="editorial"] main p{color:var(--color-text)}
body[data-skin="editorial"] .x0d7c-btn{border-radius:2px; text-transform:uppercase; letter-spacing:.1em;
  font-size:.8rem; font-family:system-ui,sans-serif; padding:14px 26px; box-shadow:none;
  background:var(--color-cta); color:#fff}
body[data-skin="editorial"] .x0d7c-btn:hover{background:var(--color-cta-hover); transform:none}
body[data-skin="editorial"] .x0d7c-op-card,body[data-skin="editorial"] .pick{background:var(--color-bg-2);
  border:1px solid var(--line); border-top:4px solid var(--color-accent); border-radius:2px; box-shadow:none}
body[data-skin="editorial"] .x0d7c-facts li span{color:var(--color-secondary); opacity:1}
body[data-skin="editorial"] .x0d7c-pros li::before{color:#1f7a3a}
body[data-skin="editorial"] .x0d7c-cons li::before{color:var(--color-accent); opacity:1}
body[data-skin="editorial"] table{border-radius:0}
body[data-skin="editorial"] th{background:var(--ink-dark); color:var(--ink-light); font-family:system-ui,sans-serif}
body[data-skin="editorial"] th,body[data-skin="editorial"] td{border-bottom:1px solid var(--line)}
body[data-skin="editorial"] tbody tr:nth-child(even){background:rgba(29,27,25,.04)}
body[data-skin="editorial"] .x0d7c-table-wrap{border-radius:0; border:1px solid var(--line)}
body[data-skin="editorial"] .x0d7c-criteria li::before{background:none; color:var(--color-accent);
  font-family:var(--font-head); font-size:2.3rem; line-height:1; width:auto; height:auto;
  border-radius:0; top:-.15rem; font-weight:700}
body[data-skin="editorial"] .x0d7c-criteria li{padding-left:3.2rem}
body[data-skin="editorial"] .x0d7c-checklist li::before{color:var(--color-accent)}
body[data-skin="editorial"] .x0d7c-glossary{columns:2 300px; column-gap:2.5rem; display:block}
body[data-skin="editorial"] .x0d7c-glossary>div{break-inside:avoid; margin-bottom:1rem}
body[data-skin="editorial"] .x0d7c-glossary dt{font-family:var(--font-head); font-size:1.05rem}
body[data-skin="editorial"] .x0d7c-faq{max-width:none}
body[data-skin="editorial"] .x0d7c-faq-item{background:none; border:0; border-bottom:1px solid var(--line);
  border-radius:0; padding:1rem 0}
body[data-skin="editorial"] .x0d7c-faq-item>summary{color:var(--color-text); font-family:var(--font-head); font-size:1.08rem}
body[data-skin="editorial"] .x0d7c-site-footer{background:var(--ink-dark); color:var(--ink-light); border-top:0}
body[data-skin="editorial"] .x0d7c-site-footer p,body[data-skin="editorial"] .x0d7c-site-footer a{color:var(--ink-light)}


#nav-toggle { position: absolute; width: 1px; height: 1px; opacity: 0; }
.x0d7c-nav-burger { display: none; }
@media (min-width: 721px) {
  
  .x0d7c-site-header .x0d7c-container { flex-wrap: nowrap; }
  .x0d7c-nav { flex-wrap: nowrap; min-width: 0; }
  .x0d7c-nav a { white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
           max-width: 24ch; }
}
@media (max-width: 720px) {
  .x0d7c-site-header .x0d7c-container { position: relative; flex-wrap: nowrap; }
  
  .x0d7c-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); }
  .x0d7c-nav-burger::before, .x0d7c-nav-burger::after {
    content: ""; display: block; width: 22px; height: 2px; border-radius: 2px;
    background: currentColor; transition: transform .2s; }
  .x0d7c-nav-burger::before { box-shadow: 0 -7px 0 currentColor, 0 7px 0 currentColor; }
  .x0d7c-nav-burger::after { display: none; }
  #nav-toggle:checked ~ .x0d7c-nav-burger::before { box-shadow: none;
    transform: rotate(45deg) translateY(1px); }
  #nav-toggle:checked ~ .x0d7c-nav-burger::after { display: block; margin-top: -2px;
    transform: rotate(-45deg) translateY(-1px); }
  
  #nav-toggle:checked ~ .x0d7c-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 ~ .x0d7c-nav a { padding: 13px 0; max-width: none;
    border-bottom: 1px solid rgba(255,255,255,.09); }
}
#hero, section#hero, .x0d7c-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=890b1320') !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=ffc2b399') !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; }
#hero, section#hero, .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=890b1320') !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=ffc2b399') !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; }
