/* ============================================================
   Lizaro Review — "Neon-Arcade Emerald Cabinet"
   namespace: lzl-  ·  lang: en-GB
   Archetype: magazine (asymmetric spreads, offset headings)
   Theme: tinted emerald · Shape: rounded · Density: airy · Persona: arcade
   ============================================================ */

:root {
  /* palette */
  --bg-main: #071612;
  --bg-card: #0C221B;
  --bg-step: #123028;
  --bg-plate: #0A1D17;
  --accent: #B4FF3A;
  --accent-2: #E8B849;
  --text-main: #EFFCEA;
  --text-muted: #8FB39F;
  --border: rgba(180, 255, 58, 0.36);
  --border-gold: rgba(232, 184, 73, 0.45);

  /* type */
  --font-head: 'Bevan', 'Rockwell', 'Roboto Slab', Georgia, serif;
  --font-body: 'Karla', 'Trebuchet MS', 'Segoe UI', system-ui, sans-serif;
  --font-util: ui-monospace, 'SFMono-Regular', 'Cascadia Mono', Menlo, monospace;

  /* geometry — SHAPE: rounded */
  --r-lg: 18px;
  --r-md: 14px;
  --r-sm: 10px;
  --r-pill: 999px;

  /* rhythm — DENSITY: airy */
  --sp-1: .55rem;
  --sp-2: 1.1rem;
  --sp-3: 1.9rem;
  --sp-4: 2.6rem;
  --sect-pad: clamp(3.5rem, 6vw, 5rem);
  --card-pad: clamp(1.1rem, 3.5vw, 2.5rem);

  /* layout — magazine → wide band */
  --wrap: 1280px;
  --measure: 72ch;
  --gutter: clamp(1.1rem, 4vw, 2.5rem);

  /* depth — SATURATION: premium, layered shadows, no glow-haze */
  --sh-1: 0 1px 0 rgba(232, 184, 73, .07), 0 6px 18px rgba(0, 0, 0, .38);
  --sh-2: 0 2px 0 rgba(232, 184, 73, .09), 0 16px 38px rgba(0, 0, 0, .5);
  --sh-inset: inset 0 2px 6px rgba(0, 0, 0, .55);
}

/* ---------- reset / base ---------- */
* { box-sizing: border-box; }

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

body {
  margin: 0;
  overflow-x: hidden;
  background: var(--bg-main);
  background-image:
    radial-gradient(120% 60% at 50% -10%, rgba(180, 255, 58, .07), transparent 60%),
    linear-gradient(180deg, #071612 0%, #061410 100%);
  color: var(--text-main);
  font-family: var(--font-body);
  font-size: 17px;
  line-height: 1.75;
  overflow-wrap: break-word;
}

/* only genuinely unbreakable tokens may break mid-word */
a[href^="mailto:"], a[href^="tel:"] { overflow-wrap: anywhere; }

img { max-width: 100%; }

a { color: var(--accent); text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: var(--accent-2); }

h1, h2, h3, h4 {
  font-family: var(--font-head);
  font-weight: 700;
  line-height: 1.12;
  letter-spacing: .002em;
  margin: 0 0 var(--sp-2);
  text-wrap: balance;
}

h1 { font-size: clamp(2.1rem, 5.2vw, 3.5rem); }
h2 { font-size: clamp(1.65rem, 3.4vw, 2.5rem); }
h3 { font-size: clamp(1.2rem, 2.1vw, 1.5rem); line-height: 1.25; }
h4 { font-size: 1.05rem; }

p { margin: 0 0 var(--sp-2); }
ul, ol { margin: 0 0 var(--sp-2); padding-inline-start: 1.3em; }
li { margin-bottom: .45rem; }

:focus-visible {
  outline: 3px solid var(--accent);
  outline-offset: 3px;
  border-radius: 4px;
}

::selection { background: var(--accent); color: #06140F; }

.lzl-sr {
  position: absolute; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
/* skip-link: hidden until keyboard focus */
a.lzl-sr:focus {
  position: fixed;
  top: .6rem; left: .6rem;
  z-index: 9999;
  width: auto; height: auto;
  margin: 0; padding: .7rem 1.1rem;
  clip: auto; overflow: visible;
  background: var(--accent);
  color: #06140F;
  font-weight: 700;
  border-radius: var(--r-sm);
  text-decoration: none;
  box-shadow: var(--sh-2);
}

/* ---------- container / sections ---------- */
.lzl-container {
  width: 100%;
  max-width: var(--wrap);
  margin-inline: auto;
  padding-inline: var(--gutter);
}

.lzl-section { padding-block: var(--sect-pad); }
/* alt band sits at almost the same luminance as --bg-card, so cards lose their
   surface there — lift the card token inside the band instead of recolouring it */
.lzl-section--alt {
  background: rgba(18, 48, 40, .38);
  border-block: 1px solid var(--border);
  --bg-card: #16362D;
}
.lzl-section--tight { padding-block: clamp(2.2rem, 4vw, 3.2rem); }

main { display: block; }

/* magazine spread: heading offset from the body column */
.lzl-spread {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--sp-3);
}
@media (min-width: 900px) {
  .lzl-spread { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: clamp(2rem, 4vw, 3.5rem); align-items: start; }
  .lzl-spread--flip > :first-child { order: 2; }
}
.lzl-spread > * { min-width: 0; }

/* section eyebrow + lime rule under headings (magazine device) */
.lzl-eyebrow {
  display: inline-block;
  font-family: var(--font-util);
  font-size: .8rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--accent);
  margin: 0 0 var(--sp-1);
}
.lzl-eyebrow--gold { color: var(--accent-2); }

.lzl-sect-head { margin-bottom: var(--sp-3); max-width: none; }
.lzl-sect-head h2 { margin-bottom: .7rem; }
.lzl-sect-head h2::after {
  content: "";
  display: block;
  width: 84px;
  height: 4px;
  margin-top: .85rem;
  background: var(--accent);
  border-radius: var(--r-pill);
}
.lzl-sect-head p { color: var(--text-muted); margin-bottom: 0; max-width: var(--measure); }

/* readable measure — the wrap is 1280px, running text must not be */
.lzl-legal,
.lzl-verdict__body,
.lzl-overview__inner,
.lzl-method p,
.lzl-cta__inner p,
.lzl-container > p {
  max-width: var(--measure);
}

.lzl-lead { font-size: 1.12rem; color: var(--text-main); }
.lzl-muted { color: var(--text-muted); }
.lzl-fine {
  font-size: .88rem;
  line-height: 1.65;
  color: var(--text-muted);
}

/* section number: outlined gold slab (content IS a numbered sequence only where used) */
.lzl-signum {
  font-family: var(--font-head);
  font-size: clamp(2.4rem, 6vw, 4rem);
  line-height: 1;
  color: transparent;
  -webkit-text-stroke: 2px var(--border-gold);
  display: block;
  margin-bottom: .4rem;
}

/* ---------- buttons ---------- */
.lzl-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55em;
  font-family: var(--font-body);
  font-weight: 700;
  font-size: .96rem;
  letter-spacing: .02em;
  line-height: 1.2;
  padding: .85em 1.5em;
  border-radius: var(--r-md);
  border: 1px solid transparent;
  background: var(--accent);
  color: #06140F;
  text-decoration: none;
  cursor: pointer;
  transition: transform .16s ease, box-shadow .16s ease, background-color .16s ease;
  box-shadow: 0 3px 0 #7FBB1F, var(--sh-1);
}
.lzl-btn:hover {
  color: #06140F;
  background: #C6FF63;
  transform: translateY(-2px);
  box-shadow: 0 5px 0 #7FBB1F, var(--sh-2);
}
.lzl-btn:active { transform: translateY(1px); box-shadow: 0 1px 0 #7FBB1F; }

.lzl-btn--ghost {
  background: transparent;
  color: var(--text-main);
  /* a control boundary needs 3:1 — the shared --border token does not reach it */
  border-color: rgba(180, 255, 58, .55);
  box-shadow: none;
}
.lzl-btn--ghost:hover { background: rgba(180, 255, 58, .08); color: var(--text-main); box-shadow: none; transform: translateY(-2px); }

.lzl-btn--gold { background: var(--accent-2); box-shadow: 0 3px 0 #A97F1F, var(--sh-1); }
.lzl-btn--gold:hover { background: #F2C960; box-shadow: 0 5px 0 #A97F1F, var(--sh-2); }

.lzl-btn--sm { padding: .6em 1.05em; font-size: .86rem; min-height: 40px; }

.lzl-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-2);
  align-items: center;
}

/* ---------- icons ---------- */
.lzl-icon {
  width: 1.5em;
  height: 1.5em;
  display: inline-block;
  vertical-align: middle;
  flex-shrink: 0;
  color: currentColor;
}
.lzl-icon--lg { width: 2em; height: 2em; }
.lzl-icon--accent { color: var(--accent); }
.lzl-icon--gold { color: var(--accent-2); }

/* ============================================================
   HEADER — cabinet marquee bar (dark surface: LOGO_TONE = light)
   ============================================================ */
.lzl-header {
  position: sticky;
  top: 0;
  z-index: 900;
  background: #050F0C;
  border-bottom: 1px solid var(--border);
  box-shadow: 0 10px 30px rgba(0, 0, 0, .45);
}
.lzl-header::before {
  content: "";
  display: block;
  height: 3px;
  background: linear-gradient(90deg, var(--accent) 0%, var(--accent-2) 55%, var(--accent) 100%);
  box-shadow: 0 3px 14px rgba(232, 184, 73, .35);
}

.lzl-header__bar {
  width: 100%;
  max-width: var(--wrap);
  margin-inline: auto;
  padding: .7rem var(--gutter);
  display: flex;
  align-items: center;
  gap: clamp(.6rem, 2vw, 1.75rem);
}
.lzl-header__bar > * { min-width: 0; }

.lzl-logo {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  text-decoration: none;
}
.lzl-logo__img {
  display: block;
  height: 40px;
  width: auto;
  object-fit: contain;
  max-width: min(45vw, 210px);
}

.lzl-header__spacer { flex: 1 1 auto; }

.lzl-nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  gap: clamp(.4rem, 1.4vw, 1.15rem);
}
.lzl-nav li { margin: 0; }

.lzl-nav a:not(.lzl-btn) {
  display: block;
  font-family: var(--font-body);
  font-weight: 600;
  font-size: .93rem;
  letter-spacing: .01em;
  color: var(--text-main);
  text-decoration: none;
  padding: .5rem .55rem;
  border-radius: var(--r-sm);
  border-bottom: 2px solid transparent;
  white-space: nowrap;
}
.lzl-nav a:not(.lzl-btn):hover,
.lzl-nav a:not(.lzl-btn).is-active,
.lzl-nav a:not(.lzl-btn)[aria-current="page"] {
  color: var(--accent);
  border-bottom-color: var(--accent);
}

/* desktop: never show a nav-embedded CTA copy (only one CTA exists, standalone) */
.lzl-nav > .lzl-btn { display: none; }
.lzl-nav ul > li > .lzl-btn { display: none; }

.lzl-header__cta { flex-shrink: 0; }

/* burger */
.lzl-burger {
  display: none;
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  padding: 0;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 5px;
  background: transparent;
  border: 1px solid var(--border);
  border-radius: var(--r-sm);
  cursor: pointer;
}
.lzl-burger span {
  display: block;
  width: 22px;
  height: 2px;
  background: var(--text-main);
  border-radius: 2px;
  transition: transform .2s ease, opacity .2s ease;
}
.lzl-header.is-open .lzl-burger span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.lzl-header.is-open .lzl-burger span:nth-child(2) { opacity: 0; }
.lzl-header.is-open .lzl-burger span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

@media (max-width: 979px) {
  .lzl-burger { display: flex; }
  .lzl-header__spacer { display: none; }
  .lzl-nav {
    display: none;
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    background: #050F0C;
    border-bottom: 1px solid var(--border);
    box-shadow: var(--sh-2);
    padding: var(--sp-2) var(--gutter) var(--sp-3);
  }
  .lzl-header { position: sticky; }
  .lzl-header.is-open .lzl-nav { display: flex; }
  .lzl-nav ul { flex-direction: column; align-items: stretch; gap: 0; width: 100%; }
  .lzl-nav a:not(.lzl-btn) {
    padding: .85rem .2rem;
    border-bottom: 1px solid var(--border);
    border-radius: 0;
    white-space: normal;
  }
  .lzl-header__bar { position: relative; justify-content: space-between; }
  .lzl-header__cta { order: 2; }
  .lzl-burger { order: 3; }
}
@media (max-width: 520px) {
  .lzl-logo__img { height: 32px; max-width: min(45vw, 150px); }
  .lzl-header__cta { padding: .5em .85em; font-size: .8rem; min-height: 44px; }
}
@media (max-width: 380px) {
  .lzl-header__cta { display: none; }
}

/* grouped menu (unused here, kept for parity) */
.lzl-nav__group { position: relative; }
.lzl-nav__toggle {
  display: none;
  background: transparent;
  border: 0;
  color: var(--text-main);
  cursor: pointer;
  font-size: 1rem;
  padding: .4rem .5rem;
}
.lzl-submenu {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 220px;
  list-style: none;
  margin: 0;
  padding: .5rem;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  box-shadow: var(--sh-2);
  z-index: 1000;
}
.lzl-nav__group:hover .lzl-submenu,
.lzl-nav__group:focus-within .lzl-submenu { display: block; }
@media (max-width: 979px) {
  .lzl-nav__toggle { display: inline-block; }
  .lzl-submenu { position: static; display: none; box-shadow: none; border: 0; padding-left: 1rem; }
  .lzl-nav__group.is-open .lzl-submenu { display: block; }
}

/* ============================================================
   HERO — HOME (mirror-split: visual LEFT, text RIGHT)
   ============================================================ */
.lzl-hero { position: relative; }

.lzl-hero__inner {
  width: 100%;
  max-width: var(--wrap);
  margin-inline: auto;
  padding-inline: var(--gutter);
}

.lzl-hero__img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 70vh;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  border-radius: var(--r-lg);
  border: 1px solid var(--border);
  box-shadow: var(--sh-2);
}

/* home hero */
.lzl-hero--home { padding-block: clamp(2.75rem, 6vw, 4.75rem); }
.lzl-hero--home .lzl-hero__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--sp-3);
  align-items: center;
}
.lzl-hero--home .lzl-hero__visual { min-width: 0; }
.lzl-hero--home .lzl-hero__copy {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
  align-items: flex-start;
}
.lzl-hero--home .lzl-hero__copy > * { margin: 0; }
.lzl-hero--home h1 { font-size: clamp(2.2rem, 5vw, 3.6rem); }
.lzl-hero--home .lzl-hero__sub { font-size: 1.1rem; color: var(--text-muted); max-width: 60ch; }

/* placeholder when no image injected */
.lzl-hero__visual .lzl-hero__ph {
  display: block;
  width: 100%;
  aspect-ratio: 3 / 2;
  border-radius: var(--r-lg);
  border: 1px solid var(--border);
  background:
    radial-gradient(90% 80% at 20% 15%, rgba(180, 255, 58, .22), transparent 60%),
    linear-gradient(140deg, #123028 0%, #0A1D17 55%, #06130F 100%);
  box-shadow: var(--sh-2);
}

@media (min-width: 900px) {
  .lzl-hero--home .lzl-hero__inner {
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
    gap: clamp(2rem, 4vw, 3.5rem);
  }
  .lzl-hero--home .lzl-hero__visual { order: 1; }
  .lzl-hero--home .lzl-hero__copy { order: 2; }
}

/* ---------- hero / page-header — INNER (compact band) ---------- */
.lzl-hero--inner {
  position: relative;
  overflow: hidden;
  background: linear-gradient(120deg, #0A2019 0%, #123028 58%, #0A1D17 100%);
  border-bottom: 1px solid var(--border);
}
.lzl-hero--inner .lzl-hero__inner {
  position: relative;
  min-height: 190px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: .7rem;
  padding-block: clamp(1.6rem, 3.5vw, 2.4rem);
  padding-inline: max(var(--gutter), calc((100% - var(--wrap)) / 2 + var(--gutter)));
  max-width: none;
}
.lzl-hero--inner h1 { font-size: clamp(1.8rem, 4vw, 2.9rem); margin: 0; }
.lzl-hero--inner .lzl-hero__sub { color: var(--text-muted); margin: 0; max-width: 70ch; }
.lzl-hero--inner .lzl-hero__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-height: none;
  aspect-ratio: auto;
  object-fit: cover;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  z-index: 0;
}
.lzl-hero--inner .lzl-hero__inner::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(90deg, rgba(5, 15, 12, .92) 0%, rgba(5, 15, 12, .8) 50%, rgba(5, 15, 12, .6) 100%);
}
/* on a phone the copy spans the full width, so a left-to-right scrim leaves the
   ends of every line sitting on the lightest part of the art */
@media (max-width: 899px) {
  .lzl-hero--inner .lzl-hero__inner {
    min-height: 240px;
  }
  .lzl-hero--inner .lzl-hero__inner::after {
    background: linear-gradient(180deg, rgba(5, 15, 12, .86) 0%, rgba(5, 15, 12, .78) 100%);
  }
}
:where(.lzl-hero--inner .lzl-hero__inner > :not(.lzl-hero__img)) { position: relative; z-index: 2; }

/* page-header (no-image variant used by legal pages) */
.lzl-page-header {
  position: relative;
  overflow: hidden;
  background: linear-gradient(120deg, #0A2019 0%, #123028 100%);
  border-bottom: 1px solid var(--border);
  padding-block: clamp(1.8rem, 4vw, 2.6rem);
}
.lzl-page-header h1 { margin: .35rem 0 0; }
.lzl-page-header .lzl-breadcrumb { margin: 0; }

/* ---------- breadcrumb ---------- */
.lzl-breadcrumb {
  font-family: var(--font-util);
  font-size: .8rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--text-muted);
}
.lzl-breadcrumb ol {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
}
.lzl-breadcrumb li { margin: 0; display: flex; gap: .45rem; align-items: center; }
.lzl-breadcrumb li + li::before { content: "/"; color: var(--text-muted); }
.lzl-breadcrumb a { color: var(--text-muted); text-decoration: none; }
.lzl-breadcrumb a:hover { color: var(--accent); }

/* ============================================================
   CONTENT BLOCKS
   ============================================================ */

/* overview */
.lzl-overview p:last-child { margin-bottom: 0; }
.lzl-overview__inner { display: flex; flex-direction: column; gap: var(--sp-2); }

/* pull-quote bleeding into the gutter (magazine device) */
.lzl-pullquote {
  font-family: var(--font-head);
  font-size: clamp(1.25rem, 2.6vw, 1.85rem);
  line-height: 1.3;
  color: var(--accent-2);
  border-inline-start: 5px solid var(--accent);
  padding: var(--sp-2) 0 var(--sp-2) var(--sp-3);
  margin: var(--sp-3) 0;
}
.lzl-pullquote cite {
  display: block;
  margin-top: var(--sp-1);
  font-family: var(--font-body);
  font-size: .88rem;
  font-style: normal;
  color: var(--text-muted);
}

/* ---------- cards (generic) ---------- */
.lzl-card {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  padding: var(--card-pad);
  box-shadow: var(--sh-1);
  transition: transform .18s ease, box-shadow .18s ease;
  min-width: 0;
}
.lzl-card:hover { transform: translateY(-3px); box-shadow: var(--sh-2); }
.lzl-card > :last-child { margin-bottom: 0; }
.lzl-card h3 { margin-bottom: .6rem; }

.lzl-cards-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr));
  gap: clamp(1rem, 2.2vw, 1.75rem);
}
.lzl-cards-grid > * { min-width: 0; }

/* lead card + satellites (magazine spread) */
.lzl-lead-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(1rem, 2.2vw, 1.75rem);
}
@media (min-width: 900px) {
  .lzl-lead-grid { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); align-items: start; }
}

/* ---------- feature-cards — FEATURES_PATTERN: icon-rows ---------- */
.lzl-features {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.lzl-feature {
  display: flex;
  align-items: flex-start;
  gap: clamp(1rem, 2.2vw, 1.6rem);
  padding-block: clamp(1.4rem, 2.6vw, 2rem);
  border-bottom: 1px solid var(--border);
  min-width: 0;
}
.lzl-features > .lzl-feature:first-child { padding-top: 0; }
.lzl-features > .lzl-feature:last-child { border-bottom: 0; padding-bottom: 0; }

.lzl-feature__icon {
  flex-shrink: 0;
  width: clamp(48px, 9vw, 62px);
  height: clamp(48px, 9vw, 62px);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--r-md);
  background: var(--bg-plate);
  border: 1px solid var(--border);
  color: var(--accent);
  box-shadow: var(--sh-inset);
}
.lzl-feature__icon .lzl-icon { width: 1.6em; height: 1.6em; }
.lzl-feature__body { min-width: 0; display: flex; flex-direction: column; gap: .5rem; }
.lzl-feature__body > * { margin: 0; }
.lzl-feature__title { font-family: var(--font-head); font-size: clamp(1.05rem, 2vw, 1.3rem); line-height: 1.25; }
.lzl-feature__body p { color: var(--text-muted); }

/* ---------- stats-bar — STATS_PATTERN: tiles ---------- */
.lzl-stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(200px, 100%), 1fr));
  gap: clamp(.8rem, 1.8vw, 1.25rem);
}
.lzl-stats > * { min-width: 0; }
.lzl-stat {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  padding: clamp(1.2rem, 2.4vw, 1.7rem);
  display: flex;
  flex-direction: column;
  gap: .35rem;
  box-shadow: var(--sh-1);
}
.lzl-stat__value {
  font-family: var(--font-util);
  font-size: clamp(1.15rem, 3vw, 2.1rem);
  font-weight: 700;
  line-height: 1.1;
  color: var(--accent);
  letter-spacing: -.01em;
  /* a value like "06:00–17:00" must never break mid-string */
  white-space: nowrap;
  overflow-wrap: normal;
}
.lzl-stat__label {
  font-size: .8rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--text-muted);
  line-height: 1.4;
}

/* scoreboard plate (arcade high-score readout) */
.lzl-plate {
  display: inline-block;
  font-family: var(--font-util);
  font-weight: 700;
  color: var(--accent);
  background: var(--bg-plate);
  border-radius: var(--r-sm);
  padding: .18em .6em;
  box-shadow: var(--sh-inset);
  border-bottom: 2px solid var(--accent);
}

/* ---------- two-cols + content panel ---------- */
.lzl-two-cols {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(1.5rem, 3vw, 2.75rem);
  align-items: start;
}
.lzl-two-cols > * { min-width: 0; }
/* the flip puts the aside first in the DOM; without this the phone shows a bare
   checklist before the prose it belongs to */
.lzl-two-cols--flip > :first-child { order: 2; }
@media (min-width: 900px) {
  .lzl-two-cols { grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); }
}
.lzl-two-cols__main > :last-child { margin-bottom: 0; }

.lzl-panel {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  padding: var(--card-pad);
  box-shadow: var(--sh-1);
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
}
.lzl-panel > * { margin: 0; }
.lzl-panel__title {
  font-family: var(--font-head);
  font-size: 1.15rem;
  line-height: 1.25;
  color: var(--text-main);
  padding-bottom: .7rem;
  border-bottom: 1px solid var(--border-gold);
}
.lzl-panel--sticky { position: static; }
@media (min-width: 900px) {
  .lzl-panel--sticky { position: sticky; top: 92px; }
}

/* quick facts <dl> */
.lzl-facts { margin: 0; }
.lzl-facts__row {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: .5rem 1rem;
  padding-block: .75rem;
  border-bottom: 1px dashed var(--border);
}
.lzl-facts__row:last-child { border-bottom: 0; padding-bottom: 0; }
.lzl-facts__row dt {
  font-size: .8rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--text-muted);
  margin: 0;
}
.lzl-facts__row dd {
  margin: 0;
  font-weight: 700;
  color: var(--text-main);
  text-align: right;
}

/* checklist */
.lzl-checklist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .8rem; }
.lzl-checklist li {
  display: flex;
  align-items: flex-start;
  gap: .7rem;
  margin: 0;
  min-width: 0;
}
.lzl-checklist .lzl-icon { color: var(--accent); margin-top: .15em; }

/* mini stat tiles inside a panel */
.lzl-minitiles {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(120px, 100%), 1fr));
  gap: .7rem;
}
.lzl-minitile {
  background: var(--bg-plate);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  padding: .9rem 1rem;
  display: flex;
  flex-direction: column;
  gap: .25rem;
  min-width: 0;
}
.lzl-minitile__value { font-family: var(--font-util); font-weight: 700; font-size: 1.25rem; color: var(--accent); }
.lzl-minitile__label { font-size: .8rem; letter-spacing: .12em; text-transform: uppercase; color: var(--text-muted); }

/* rating badge */
.lzl-score {
  display: flex;
  align-items: center;
  gap: var(--sp-2);
  flex-wrap: wrap;
}
.lzl-score__value {
  font-family: var(--font-head);
  font-size: clamp(2.2rem, 5vw, 3rem);
  line-height: 1;
  color: var(--accent);
}
.lzl-score__stars { display: inline-flex; gap: .15rem; color: var(--accent-2); }
.lzl-score__label { font-size: .85rem; color: var(--text-muted); min-width: 0; }

/* ---------- rating bars (editorial ratings, visual only) ---------- */
.lzl-ratings { display: flex; flex-direction: column; gap: clamp(1rem, 2vw, 1.4rem); }
.lzl-rating { display: flex; flex-direction: column; gap: .5rem; min-width: 0; }
.lzl-rating__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}
.lzl-rating__name { font-family: var(--font-head); font-size: 1.02rem; line-height: 1.3; }
.lzl-rating__score {
  font-family: var(--font-util);
  font-weight: 700;
  color: var(--accent);
  background: var(--bg-plate);
  border-radius: var(--r-sm);
  padding: .12em .55em;
  box-shadow: var(--sh-inset);
  border-bottom: 2px solid var(--accent);
  white-space: nowrap;
}
.lzl-rating__track {
  position: relative;
  height: 10px;
  border-radius: var(--r-pill);
  background: var(--bg-plate);
  /* plate-on-card is 1.05:1 — outline the empty part so the scale reads as a scale */
  box-shadow: var(--sh-inset), inset 0 0 0 1px var(--border);
  overflow: hidden;
}
.lzl-rating__fill {
  display: block;
  height: 100%;
  border-radius: var(--r-pill);
  background: linear-gradient(90deg, var(--accent-2), var(--accent));
}
.lzl-rating__why { font-size: .92rem; color: var(--text-muted); margin: 0; }

/* ---------- verdict box ---------- */
.lzl-verdict {
  background: var(--bg-card);
  border: 1px solid var(--border-gold);
  border-inline-start: 6px solid var(--accent);
  border-radius: var(--r-lg);
  padding: var(--card-pad);
  box-shadow: var(--sh-2);
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
}
.lzl-verdict > * { margin: 0; }
.lzl-verdict__title { font-family: var(--font-head); font-size: clamp(1.3rem, 2.6vw, 1.7rem); line-height: 1.2; }
.lzl-verdict__body p { margin: 0 0 var(--sp-2); }
.lzl-verdict__body > :last-child { margin-bottom: 0; }

/* ---------- pros & cons ---------- */
.lzl-proscons {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr));
  gap: clamp(1rem, 2.2vw, 1.75rem);
}
.lzl-proscons > * { min-width: 0; }
.lzl-pc {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  padding: var(--card-pad);
  box-shadow: var(--sh-1);
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
}
.lzl-pc__title {
  font-family: var(--font-head);
  font-size: 1.1rem;
  margin: 0;
  display: flex;
  align-items: center;
  gap: .6rem;
}
.lzl-pc--pro .lzl-pc__title { color: var(--accent); }
.lzl-pc--con .lzl-pc__title { color: var(--accent-2); }
.lzl-pc ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .75rem; }
.lzl-pc li { display: flex; gap: .65rem; align-items: flex-start; margin: 0; min-width: 0; }
.lzl-pc li > .lzl-icon { margin-top: .15em; }
.lzl-pc--pro .lzl-icon { color: var(--accent); }
.lzl-pc--con .lzl-icon { color: var(--accent-2); }

/* ---------- quote cards (player themes — paraphrased, never reproduced) ---------- */
.lzl-quotes {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr));
  gap: clamp(1rem, 2.2vw, 1.75rem);
}
.lzl-quotes > * { min-width: 0; }
.lzl-quote {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  padding: var(--card-pad);
  box-shadow: var(--sh-1);
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
  position: relative;
}
.lzl-quote > * { margin: 0; }
.lzl-quote__theme {
  font-family: var(--font-util);
  font-size: .8rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--accent-2);
}
.lzl-quote__text { font-size: 1.02rem; }
.lzl-quote__answer {
  font-size: .93rem;
  color: var(--text-muted);
  border-top: 1px dashed var(--border);
  padding-top: var(--sp-2);
}

/* ---------- author box / byline ---------- */
.lzl-author {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--sp-2);
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  padding: clamp(1.1rem, 2.4vw, 1.6rem) var(--card-pad);
  box-shadow: var(--sh-1);
}
.lzl-author__mark {
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  border-radius: var(--r-md);
  background: var(--bg-plate);
  border: 1px solid var(--border);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--accent);
  box-shadow: var(--sh-inset);
}
.lzl-author__text { min-width: 0; display: flex; flex-direction: column; gap: .3rem; }
.lzl-author__text > * { margin: 0; }
.lzl-author__by { font-weight: 700; }
.lzl-author__date {
  font-family: var(--font-util);
  font-size: .8rem;
  letter-spacing: .08em;
  color: var(--text-muted);
}

/* ---------- methodology / sources ---------- */
.lzl-method {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  padding: var(--card-pad);
  box-shadow: var(--sh-1);
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
}
.lzl-method > * { margin: 0; }
.lzl-method ul, .lzl-method ol { display: flex; flex-direction: column; gap: .6rem; }
.lzl-sources { display: flex; flex-direction: column; gap: .7rem; list-style: none; margin: 0; padding: 0; }
.lzl-sources li { display: flex; gap: .65rem; align-items: flex-start; margin: 0; min-width: 0; }
.lzl-sources .lzl-icon { color: var(--accent-2); margin-top: .1em; }

/* evidence tier tags */
.lzl-tag {
  display: inline-flex;
  align-items: center;
  gap: .4em;
  font-family: var(--font-util);
  font-size: .8rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  padding: .3em .8em;
  border-radius: var(--r-pill);
  border: 1px solid var(--border);
  color: var(--text-muted);
  background: var(--bg-plate);
  /* multi-word tags ("Confirmed on the operator's site") overflowed the card on
     narrow screens while nowrap applied — keep it only where there is room */
  white-space: normal;
  max-width: 100%;
  text-wrap: balance;
}
.lzl-tag--verified { color: var(--accent); border-color: var(--border); }
.lzl-tag--attributed { color: var(--accent-2); border-color: var(--border-gold); }
.lzl-tag--gap { color: var(--text-muted); border-style: dashed; }

/* ---------- categories bar (pills) ---------- */
.lzl-pills { display: flex; flex-wrap: wrap; gap: .6rem; list-style: none; margin: 0; padding: 0; }
.lzl-pills li { margin: 0; min-width: 0; }
.lzl-pill {
  display: inline-block;
  padding: .5em 1.1em;
  border-radius: var(--r-pill);
  border: 1px solid var(--border);
  background: var(--bg-card);
  color: var(--text-main);
  font-size: .88rem;
  font-weight: 600;
  text-decoration: none;
}
.lzl-pill:hover { color: #06140F; background: var(--accent); border-color: var(--accent); }

/* ---------- tables ---------- */
.lzl-table-wrap {
  overflow-x: auto;
  max-width: 100%;
  margin-block: 1.5rem;
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  background: var(--bg-card);
  box-shadow: var(--sh-1);
  /* edge fades that appear only while there is more table to scroll to */
  background-image:
    linear-gradient(90deg, var(--bg-card) 30%, rgba(7, 22, 18, 0)),
    linear-gradient(90deg, rgba(7, 22, 18, 0), var(--bg-card) 70%),
    radial-gradient(farthest-side at 0 50%, rgba(0, 0, 0, .45), rgba(0, 0, 0, 0)),
    radial-gradient(farthest-side at 100% 50%, rgba(0, 0, 0, .45), rgba(0, 0, 0, 0));
  background-position: 0 0, 100% 0, 0 0, 100% 0;
  background-size: 40px 100%, 40px 100%, 16px 100%, 16px 100%;
  background-repeat: no-repeat;
  background-attachment: local, local, scroll, scroll;
}
.lzl-table-wrap:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; }
.lzl-table {
  width: 100%;
  border-collapse: collapse;
  font-size: .95rem;
  min-width: 520px;
}
.lzl-table caption {
  caption-side: top;
  text-align: start;
  /* the caption lives inside the horizontally scrolling box — pin it */
  position: sticky;
  left: 0;
  max-width: 100vw;
  padding: 1rem var(--sp-2) .4rem;
  font-size: .82rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--text-muted);
}
.lzl-table th, .lzl-table td {
  padding: .95rem 1.1rem;
  text-align: start;
  border-bottom: 1px solid var(--border);
  vertical-align: top;
}
.lzl-table thead th { white-space: nowrap; }
.lzl-table th {
  font-family: var(--font-body);
  font-weight: 700;
  font-size: .8rem;
  letter-spacing: .13em;
  text-transform: uppercase;
  color: var(--accent-2);
  background: var(--bg-plate);
}
.lzl-table tbody tr:last-child td { border-bottom: 0; }
.lzl-table tbody tr:hover td { background: rgba(180, 255, 58, .04); }
.lzl-table td strong { color: var(--text-main); }
.lzl-table .lzl-num { font-family: var(--font-util); color: var(--accent); white-space: nowrap; }

/* a label/value table (row headers, no thead) reads better stacked than scrolled */
@media (max-width: 620px) {
  .lzl-table-wrap:has(.lzl-table:not(:has(thead))) { overflow-x: visible; background-image: none; }
  .lzl-table:not(:has(thead)) { display: block; min-width: 0; }
  .lzl-table:not(:has(thead)) caption { display: block; }
  .lzl-table:not(:has(thead)) tbody { display: block; }
  .lzl-table:not(:has(thead)) tbody tr {
    display: block;
    padding: .85rem 1.1rem;
    border-bottom: 1px solid var(--border);
  }
  .lzl-table:not(:has(thead)) tbody tr:last-child { border-bottom: 0; }
  .lzl-table:not(:has(thead)) th,
  .lzl-table:not(:has(thead)) td { display: block; padding: 0; border: 0; }
  .lzl-table:not(:has(thead)) th[scope="row"] { background: transparent; margin-bottom: .2rem; }
}

/* payments table variant */
.lzl-payments .lzl-pay-method {
  display: flex;
  align-items: center;
  gap: .65rem;
  font-weight: 700;
  min-width: 0;
}
.lzl-payments .lzl-pay-method .lzl-icon { color: var(--accent); }

/* bonus table variant */
.lzl-bonus-table td:first-child { font-weight: 700; }

/* ---------- numbered list (real sequences only) ---------- */
.lzl-steps {
  list-style: none;
  counter-reset: lzl-step;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: clamp(1.1rem, 2.2vw, 1.6rem);
}
.lzl-steps > li {
  counter-increment: lzl-step;
  position: relative;
  padding-inline-start: clamp(3.2rem, 6vw, 4.2rem);
  margin: 0;
  min-width: 0;
}
.lzl-steps > li::before {
  content: counter(lzl-step, decimal-leading-zero);
  position: absolute;
  inset-inline-start: 0;
  top: -.1em;
  font-family: var(--font-head);
  font-size: clamp(1.5rem, 3.4vw, 2.1rem);
  line-height: 1;
  color: transparent;
  -webkit-text-stroke: 2px var(--accent-2);
}
.lzl-steps h3 { margin-bottom: .4rem; }
.lzl-steps p { margin-bottom: 0; color: var(--text-muted); }

/* ---------- TOC ---------- */
.lzl-toc {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  padding: var(--card-pad);
  box-shadow: var(--sh-1);
}
.lzl-toc__title {
  font-family: var(--font-util);
  font-size: .8rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--accent);
  margin: 0 0 var(--sp-2);
}
.lzl-toc ol, .lzl-toc ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr));
  gap: .55rem 1.5rem;
}
.lzl-toc li { margin: 0; min-width: 0; }
.lzl-toc a { text-decoration: none; color: var(--text-main); border-bottom: 1px solid transparent; }
.lzl-toc a:hover { color: var(--accent); border-bottom-color: var(--accent); }

/* ---------- FAQ — FAQ_PATTERN: boxed ---------- */
.lzl-faq { display: flex; flex-direction: column; gap: clamp(.7rem, 1.6vw, 1rem); }
.lzl-faq details {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  padding: 0 var(--card-pad);
  box-shadow: var(--sh-1);
}
.lzl-faq summary {
  cursor: pointer;
  padding: 1rem 0;
  font-weight: 600;
  list-style: none;
  font-size: 1.02rem;
  display: flex;
  align-items: baseline;
  gap: .2rem;
}
.lzl-faq summary::-webkit-details-marker { display: none; }
.lzl-faq summary::before {
  content: '+';
  margin-right: .5rem;
  transition: transform .2s;
  color: var(--accent);
  font-family: var(--font-util);
  font-weight: 700;
}
.lzl-faq details[open] summary::before { content: '−'; }
.lzl-faq details > :not(summary) { padding: .5rem 0 1rem; color: var(--text-muted); }
.lzl-faq details > :not(summary):last-child { margin-bottom: 0; }
.lzl-faq details[open] { border-color: var(--border-gold); }

/* generic details fallback outside .lzl-faq */
details summary { cursor: pointer; padding: 1rem 0; font-weight: 600; list-style: none; }
details summary::before { content: '+'; margin-right: .5rem; transition: transform .2s; }
details[open] summary::before { content: '−'; }
details > :not(summary) { padding: .5rem 0 1rem; }

/* ---------- rtp / game tile grid ---------- */
.lzl-rtp {
  display: grid;
  gap: clamp(.6rem, 1.5vw, 1rem);
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
@media (min-width: 640px) { .lzl-rtp { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 960px) { .lzl-rtp { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

.lzl-rtp-item {
  position: relative;
  overflow: hidden;
  min-width: 0;
  border-radius: var(--r-md);
  border: 1px solid var(--border);
  background: var(--bg-card);
  box-shadow: var(--sh-1);
  transition: transform .18s ease, box-shadow .18s ease;
}
.lzl-rtp-item:hover { transform: translateY(-3px); box-shadow: var(--sh-2); }
.lzl-rtp-item__thumb {
  display: block;
  aspect-ratio: 3 / 2;
  position: relative;
  background:
    radial-gradient(80% 70% at 25% 20%, rgba(180, 255, 58, .2), transparent 60%),
    linear-gradient(140deg, #123028, #0A1D17);
}
.lzl-rtp-item__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.lzl-rtp-item__name {
  display: block;
  padding: .7rem .8rem;
  font-size: .88rem;
  font-weight: 700;
  line-height: 1.35;
  min-width: 0;
}
.lzl-rtp-item__studio { display: block; font-weight: 400; font-size: .78rem; color: var(--text-muted); }
.lzl-rtp-tooltip {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  opacity: 0;
  transition: opacity .2s;
  background: rgba(5, 15, 12, .93);
  color: var(--text-main);
  padding: .6rem .8rem;
  font-family: var(--font-util);
  font-size: .78rem;
  border-top: 2px solid var(--accent);
}
.lzl-rtp-item:hover .lzl-rtp-tooltip { opacity: 1; }
.lzl-rtp-item:focus-within .lzl-rtp-tooltip { opacity: 1; }

/* ---------- legal body ---------- */
.lzl-legal { counter-reset: lzl-clause; }
.lzl-legal > h2 {
  counter-increment: lzl-clause;
  font-size: clamp(1.25rem, 2.4vw, 1.6rem);
  margin-top: var(--sp-4);
  padding-top: var(--sp-2);
  border-top: 1px solid var(--border);
}
.lzl-legal > h2::before {
  content: counter(lzl-clause) ". ";
  color: var(--accent);
  font-family: var(--font-util);
}
.lzl-legal > h2:first-child { margin-top: 0; border-top: 0; padding-top: 0; }
.lzl-legal h3 { font-size: 1.1rem; margin-top: var(--sp-3); }
.lzl-legal p, .lzl-legal li { color: var(--text-main); }
.lzl-legal ul, .lzl-legal ol { display: flex; flex-direction: column; gap: .5rem; }

/* ---------- CTA block ---------- */
.lzl-cta {
  background:
    radial-gradient(90% 140% at 8% 0%, rgba(180, 255, 58, .14), transparent 60%),
    linear-gradient(120deg, #0E2A21 0%, #0A1D17 100%);
  border-block: 1px solid var(--border);
}
.lzl-cta__inner {
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
  align-items: flex-start;
  text-align: start;
}
.lzl-cta__inner > * { margin: 0; }
.lzl-cta h2 { font-size: clamp(1.5rem, 3.2vw, 2.2rem); }
/* the inner block is also reused outside .lzl-cta — keep the typography on it */
.lzl-cta__inner p { color: var(--text-muted); max-width: 65ch; }
.lzl-cta__inner p.lzl-fine { color: var(--text-muted); }
.lzl-cta--center .lzl-cta__inner { align-items: center; text-align: center; }
.lzl-cta--center .lzl-actions { justify-content: center; }

/* age / responsible-gambling notice */
.lzl-note {
  display: flex;
  align-items: flex-start;
  gap: .8rem;
  background: var(--bg-plate);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  padding: 1rem 1.2rem;
  font-size: .88rem;
  line-height: 1.6;
  color: var(--text-muted);
  min-width: 0;
}
.lzl-note .lzl-icon { color: var(--accent-2); flex-shrink: 0; }
.lzl-note > * { margin: 0; }
.lzl-age {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.6em;
  padding: .2em .5em;
  border-radius: var(--r-pill);
  border: 2px solid var(--accent-2);
  color: var(--accent-2);
  font-family: var(--font-util);
  font-weight: 700;
  font-size: .8rem;
  flex-shrink: 0;
}

/* ---------- sticky mobile nav ---------- */
.lzl-sticky-nav { display: none; }
@media (max-width: 767px) {
  .lzl-sticky-nav {
    display: flex;
    position: fixed;
    left: 0; right: 0; bottom: 0;
    z-index: 850;
    background: #050F0C;
    border-top: 1px solid var(--border);
    box-shadow: 0 -8px 24px rgba(0, 0, 0, .5);
    padding: .35rem .4rem calc(.35rem + env(safe-area-inset-bottom, 0px));
  }
  .lzl-sticky-nav a {
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .15rem;
    padding: .45rem .2rem;
    font-size: .68rem;
    letter-spacing: .04em;
    color: var(--text-muted);
    text-decoration: none;
    text-align: center;
  }
  .lzl-sticky-nav a .lzl-icon { width: 1.25em; height: 1.25em; }
  .lzl-sticky-nav a:hover, .lzl-sticky-nav a.is-active { color: var(--accent); }
  body:has(.lzl-sticky-nav){ padding-bottom: 4.2rem; }
}

/* ---------- chat widget ---------- */
.lzl-chat-btn {
  position: fixed;
  right: 1.1rem;
  bottom: 1.1rem;
  z-index: 880;
  width: 54px;
  height: 54px;
  border-radius: var(--r-pill);
  border: 1px solid var(--border);
  background: var(--accent);
  color: #06140F;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: var(--sh-2);
}
@media (max-width: 767px) { .lzl-chat-btn { bottom: 5rem; } }

.lzl-chat {
  display: none;
  position: fixed;
  inset: auto 1.1rem 1.1rem auto;
  z-index: 890;
  width: min(340px, calc(100vw - 2.2rem));
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  box-shadow: var(--sh-2);
  padding: var(--sp-3);
}
.lzl-chat.is-open { display: flex; flex-direction: column; gap: var(--sp-2); }
.lzl-chat > * { margin: 0; }
.lzl-chat__title { font-family: var(--font-head); font-size: 1.05rem; }
@media (max-width: 767px) { .lzl-chat { bottom: 5rem; } }

/* ============================================================
   FOOTER — dark surface (LOGO_TONE = light)
   ============================================================ */
.lzl-footer {
  background: #050F0C;
  border-top: 3px solid var(--accent);
  color: var(--text-muted);
  margin-top: clamp(3rem, 6vw, 5rem);
}
.lzl-footer__inner {
  padding-block: clamp(2.6rem, 5vw, 3.8rem);
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(1.8rem, 4vw, 3rem);
}
.lzl-footer__inner > * { min-width: 0; }
@media (min-width: 760px) {
  .lzl-footer__inner { grid-template-columns: minmax(0, 1.4fr) repeat(2, minmax(0, 1fr)); }
}

.lzl-footer__brand { display: flex; flex-direction: column; gap: var(--sp-2); align-items: flex-start; }
.lzl-footer__brand > * { margin: 0; }
.lzl-footer__tagline { font-size: .92rem; line-height: 1.7; max-width: 46ch; }

.lzl-footer__col { display: flex; flex-direction: column; gap: .9rem; }
.lzl-footer__col > * { margin: 0; }
.lzl-footer__title {
  font-family: var(--font-util);
  font-size: .8rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--accent);
}
.lzl-footer__col ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .6rem; }
.lzl-footer__col li { margin: 0; }
.lzl-footer__col a { color: var(--text-main); text-decoration: none; font-size: .93rem; }
.lzl-footer__col a:hover { color: var(--accent); }

.lzl-footer__disclaimer {
  border-top: 1px solid var(--border);
  padding-block: var(--sp-3);
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
  font-size: .84rem;
  line-height: 1.65;
}
.lzl-footer__disclaimer > * { margin: 0; }

.lzl-footer__bottom {
  border-top: 1px solid var(--border);
  padding-block: var(--sp-2) var(--sp-3);
  font-size: .82rem;
  color: var(--text-muted);
}
.lzl-footer__bottom p { margin: 0; }

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  * { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
  .lzl-card:hover, .lzl-rtp-item:hover, .lzl-btn:hover { transform: none; }
}

/* ---------- print ---------- */
@media print {
  .lzl-header, .lzl-footer, .lzl-sticky-nav, .lzl-chat, .lzl-chat-btn, .lzl-back-top { display: none !important; }
  body { background: #fff; color: #000; }
}
/* sa-responsive-net */
/* nowrap only in the header row — on row headers it inflated the table width
   ("Bonus vs limit currency") and forced side-scroll on every phone */
table thead th{white-space:nowrap}
figure,blockquote,dl,dd,fieldset{margin:0}
/* sa-logo-chip */
.lzl-footer .lzl-logo__img{filter:none;background:transparent;padding:0}
.lzl-footer .lzl-footer__logo-chip{background:transparent;padding:0}
/* sa-logo-fit */
.lzl-logo__img{object-fit:contain}
/* sa-ph-media */
.lzl-page-header:has(.lzl-hero__img){position:relative;overflow:hidden;isolation:isolate;min-height:clamp(200px,30vh,300px);display:flex;flex-direction:column;justify-content:center}
.lzl-page-header:has(.lzl-hero__img) .lzl-hero__img{position:absolute;inset:0;width:100%;height:100%;max-height:none;aspect-ratio:auto;object-fit:cover;margin:0;z-index:0}
.lzl-page-header:has(.lzl-hero__img)::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(10,12,18,.72),rgba(10,12,18,.5))}
:where(.lzl-page-header:has(.lzl-hero__img)>:not(.lzl-hero__img)){position:relative}
.lzl-page-header:has(.lzl-hero__img)>:not(.lzl-hero__img){z-index:2}
.lzl-page-header:has(.lzl-hero__img),.lzl-page-header:has(.lzl-hero__img) h1,.lzl-page-header:has(.lzl-hero__img) a,.lzl-page-header:has(.lzl-hero__img) p,.lzl-page-header:has(.lzl-hero__img) li,.lzl-page-header:has(.lzl-hero__img) span{color:#fff}
/* sa-hero-media */
.lzl-hero:has(>.lzl-hero__img){position:relative;isolation:isolate}
.lzl-hero:has(>.lzl-hero__img)>.lzl-hero__img{z-index:0}
.lzl-hero:has(>.lzl-hero__img)::after{z-index:1}
:where(.lzl-hero:has(>.lzl-hero__img)>:not(.lzl-hero__img)){position:relative}
.lzl-hero:has(>.lzl-hero__img)>:not(.lzl-hero__img){z-index:2}
/* sa-rhythm */
:where(.lzl-table-wrap){margin-block:1.5rem}
:where(main) :where(ul,ol,table,.lzl-table-wrap)+p{margin-block-start:1rem}
/* sa-slot-link */
.lzl-rtp-item,.lzl-rtp-item:hover,.lzl-rtp-item:focus{color:inherit;text-decoration:none;cursor:pointer}
/* sa-rtp-touch */
.lzl-rtp-item__thumb{display:block}
@media (hover:none){.lzl-rtp-item__thumb{aspect-ratio:auto;overflow:visible}.lzl-rtp-item__thumb img{height:auto}.lzl-rtp-tooltip{position:static;opacity:1;background:transparent;border-top:0;padding:.4rem .7rem 0;font-size:.74rem;line-height:1.35}.lzl-rtp-item__name{padding-top:.35rem}}
/* sa-sticky-pad */
