/* ============================================================
   Yep Casino — GALLERY WHITE
   Neutraler Grotesk (Archivo), galerieweiße Flächen, ein leiser Akzent.
   Tiefe = variable Hairline-Helligkeit (keine Schatten als Stilmittel).
   ============================================================ */

:root {
  /* Flächen — warme, helle Galerie-Stufen */
  --ggb-bg: #fbfbf8;
  --ggb-surface: #ffffff;
  --ggb-surface-2: #f1f0ea;
  --ggb-dark: #252518;
  --ggb-dark-2: #2f2f20;

  /* Tinte */
  --ggb-ink: #1e1e15;
  --ggb-ink-2: #44443a;
  --ggb-ink-3: #63635a;       /* gedämpft — AA auf hell */
  --ggb-dark-ink: #f4f3ea;
  --ggb-dark-ink-2: #c9c8ba;

  /* Marke */
  --ggb-accent: #ffff02;       /* gelb — auf dunkel + Deko */
  --ggb-cta: #ff820f;          /* orange — CTA-Fläche */
  --ggb-cta-ink: #241901;      /* dunkler Text auf Orange */
  --ggb-link: #3a3a1e;         /* Linktext auf hell (AA) */
  --ggb-link-hover: #1e1e15;

  /* Hairlines (eine Quelle) */
  --ggb-hairline: color-mix(in srgb, var(--ggb-ink) 12%, transparent);
  --ggb-hairline-2: color-mix(in srgb, var(--ggb-ink) 22%, transparent);
  --ggb-hairline-soft: color-mix(in srgb, var(--ggb-ink) 7%, transparent);
  --ggb-hairline-dark: color-mix(in srgb, var(--ggb-dark-ink) 16%, transparent);

  /* Maße */
  --ggb-wrap: 1223px;
  --ggb-pad: clamp(16px, 4vw, 30px);

  /* Modulare Typo-Skala (1.25) */
  --ggb-step--1: 0.8rem;
  --ggb-step-0: 1rem;
  --ggb-step-1: 1.25rem;
  --ggb-step-2: 1.5625rem;
  --ggb-step-3: 1.953rem;
  --ggb-step-4: 2.441rem;
  --ggb-step-5: 3.052rem;

  /* Abstands-Skala (kompakt) */
  --ggb-s1: 6px;
  --ggb-s2: 12px;
  --ggb-s3: 18px;
  --ggb-s4: 26px;
  --ggb-s5: 36px;
  --ggb-s6: 44px;

  /* Radien — Status kodiert Form: neutral 0, aktiv 12px */
  --ggb-r: 0px;
  --ggb-r-active: 12px;

  --ggb-font: "Archivo", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}

/* ---------- Reset / Basis ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: var(--ggb-font);
  font-size: 17px;
  line-height: 1.62;
  color: var(--ggb-ink);
  background: var(--ggb-bg);
  font-weight: 400;
  text-rendering: optimizeLegibility;
}
img, svg, video { max-width: 100%; height: auto; display: block; }
a { color: var(--ggb-link); text-underline-offset: 2px; text-decoration-thickness: 1px; }
a:hover { color: var(--ggb-link-hover); }
h1, h2, h3, h4 { line-height: 1.12; font-weight: 700; text-wrap: balance; margin: 0 0 var(--ggb-s2); letter-spacing: -0.012em; }
p { margin: 0 0 var(--ggb-s3); text-wrap: pretty; }
strong { font-weight: 700; }
:focus-visible { outline: 2px solid var(--ggb-ink); outline-offset: 2px; }
::selection { background: color-mix(in srgb, var(--ggb-accent) 55%, #fff); color: var(--ggb-ink); }
.ggb-tnum { font-variant-numeric: tabular-nums lining-nums; }

/* ---------- Container ---------- */
.ggb-wrap {
  width: 100%;
  max-width: var(--ggb-wrap);
  margin-inline: auto;
  padding-inline: var(--ggb-pad);
}

/* ---------- Skip / a11y ---------- */
.ggb-skip {
  position: absolute; left: -9999px; top: 0;
  background: var(--ggb-dark); color: var(--ggb-dark-ink);
  padding: 10px 16px; z-index: 200;
}
.ggb-skip:focus { left: 8px; top: 8px; }

/* ============================================================
   HEADER / NAV
   ============================================================ */
.ggb-head {
  position: sticky; top: 0; z-index: 80;
  background: var(--ggb-dark);
  border-bottom: 1px solid var(--ggb-hairline-dark);
}
.ggb-head__row {
  display: flex; align-items: center; gap: var(--ggb-s4);
  min-height: 62px;
}
.ggb-logo { display: inline-block; line-height: 0; flex: 0 0 auto; }
.ggb-logo img { height: clamp(30px, 4vw, 40px); width: auto; }
.ggb-nav { margin-inline: auto; }
.ggb-nav__list {
  list-style: none; margin: 0; padding: 0;
  display: flex; flex-wrap: nowrap; align-items: center;
  gap: clamp(10px, 1.6vw, 22px);
}
.ggb-nav__list a {
  color: var(--ggb-dark-ink-2);
  text-decoration: none; white-space: nowrap;
  font-size: var(--ggb-step--1); font-weight: 600;
  letter-spacing: 0.04em; text-transform: uppercase;
  padding: 6px 2px; display: inline-block;
  transition: color .15s ease;
}
.ggb-nav__list a:hover { color: var(--ggb-dark-ink); }
.ggb-nav__list a[aria-current="page"] {
  color: var(--ggb-accent);
  box-shadow: inset 0 -2px 0 var(--ggb-accent);
}
.ggb-head__cta { flex: 0 0 auto; }
.ggb-head__cta .ggb-cta { white-space: nowrap; padding: 9px 16px; font-size: var(--ggb-step--1); }

/* Burger (Text "MENU"), push-down unter Header */
.ggb-burger {
  display: none;
  background: none; border: 1px solid var(--ggb-hairline-dark);
  color: var(--ggb-dark-ink); cursor: pointer;
  font: 600 var(--ggb-step--1)/1 var(--ggb-font);
  letter-spacing: 0.12em; text-transform: uppercase;
  padding: 11px 14px; min-height: 44px;
}
.ggb-burger__toggle { position: absolute; opacity: 0; width: 1px; height: 1px; overflow: hidden; }

@media (max-width: 900px) {
  .ggb-burger { display: inline-flex; align-items: center; }
  .ggb-head__row { gap: var(--ggb-s2); }
  .ggb-logo { margin-right: auto; }
  .ggb-nav {
    position: absolute; left: 0; right: 0; top: 100%;
    margin: 0; background: var(--ggb-dark-2);
    border-bottom: 1px solid var(--ggb-hairline-dark);
    max-height: 0; overflow: hidden; visibility: hidden;
    transition: max-height .25s ease, visibility .25s;
  }
  .ggb-burger__toggle:checked ~ .ggb-nav { max-height: 70vh; visibility: visible; overflow-y: auto; }
  .ggb-nav__list {
    flex-direction: column; align-items: stretch;
    gap: 0; padding: var(--ggb-s2) var(--ggb-pad);
  }
  .ggb-nav__list li { border-bottom: 1px solid var(--ggb-hairline-dark); }
  .ggb-nav__list a { display: block; padding: 13px 2px; font-size: var(--ggb-step-0); }
  .ggb-head__cta { display: none; }
}

/* ============================================================
   BREADCRUMBS
   ============================================================ */
.ggb-crumbs { background: var(--ggb-bg); border-bottom: 1px solid var(--ggb-hairline-soft); }
.ggb-crumbs__inner { padding-block: var(--ggb-s2); }
.ggb-crumbs ol {
  list-style: none; display: flex; flex-wrap: wrap; gap: 8px;
  margin: 0; padding: 0; font-size: var(--ggb-step--1); color: var(--ggb-ink-3);
}
.ggb-crumbs li { display: flex; align-items: center; gap: 8px; }
.ggb-crumbs li + li::before { content: "→"; color: var(--ggb-ink-3); }
.ggb-crumbs a { color: var(--ggb-ink-2); text-decoration: none; }
.ggb-crumbs a:hover { color: var(--ggb-ink); text-decoration: underline; }
.ggb-crumbs [aria-current="page"] { color: var(--ggb-ink); }

/* ============================================================
   HERO (money/game pages)
   ============================================================ */
.ggb-hero { padding-block: var(--ggb-s5) var(--ggb-s4); position: relative; overflow-x: clip; }
.ggb-hero__bleed {
  background:
    radial-gradient(120% 90% at 78% 18%, color-mix(in srgb, var(--ggb-accent) 8%, transparent), transparent 60%),
    var(--ggb-bg);
}
.ggb-hero__grid {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  grid-template-areas: "copy media" "facts media";
  gap: clamp(20px, 3vw, 44px) clamp(24px, 4vw, 56px);
  align-items: center;
}
.ggb-hero__copy { grid-area: copy; display: flex; flex-direction: column; gap: var(--ggb-s3); min-width: 0; }
.ggb-hero__facts { grid-area: facts; min-width: 0; }
.ggb-hero__media { grid-area: media; min-width: 0; position: relative; }

.ggb-kicker {
  display: block;
  font-size: var(--ggb-step--1); font-weight: 600;
  letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--ggb-ink-3); margin: 0;
}
.ggb-hero h1 {
  font-size: clamp(2rem, 4.6vw, 3rem);
  margin: 6px 0 0; letter-spacing: -0.02em;
}
.ggb-hero__lead {
  font-size: var(--ggb-step-1); color: var(--ggb-ink-2);
  max-width: 46ch; margin: 0;
}
.ggb-hero__ctas { display: flex; flex-wrap: wrap; align-items: center; gap: var(--ggb-s3); }
.ggb-hero__ctas .ggb-cta--solid { font-size: var(--ggb-step-0); padding: 14px 26px; }
.ggb-hero__link {
  font-weight: 600; color: var(--ggb-link); text-decoration: underline;
  text-decoration-color: var(--ggb-accent); text-decoration-thickness: 2px;
}

/* Hero-Bild: dunkle Rahmen-Karte, Tiefe via Schatten + Akzent-Glow */
.ggb-hero__media::before {
  content: ""; position: absolute; z-index: 0;
  inset: -10% 0 -6%;
  background: radial-gradient(60% 55% at 60% 40%, color-mix(in srgb, var(--ggb-accent) 24%, transparent), transparent 70%);
  filter: blur(38px); opacity: .8; pointer-events: none;
}
.ggb-hero__frame {
  position: relative; z-index: 1;
  background: var(--ggb-dark); padding: 12px;
  border: 1px solid var(--ggb-hairline-2);
  box-shadow: 0 26px 60px -28px rgba(20,20,12,.55);
  margin-top: clamp(-40px, -3vw, -16px);
}
.ggb-hero__img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; display: block; }

/* Fakten-Karte als Streifen */
.ggb-facts {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px; background: var(--ggb-hairline);
  border: 1px solid var(--ggb-hairline);
}
.ggb-facts > div { background: var(--ggb-surface); padding: 14px 16px; }
.ggb-facts dt {
  font-size: var(--ggb-step--1); text-transform: uppercase;
  letter-spacing: 0.08em; color: var(--ggb-ink-3); margin: 0 0 4px;
}
.ggb-facts dd { margin: 0; font-weight: 700; font-size: var(--ggb-step-0); }

/* ============================================================
   PAGE TITLE (legal / author headers, kein Hero)
   ============================================================ */
.ggb-ptitle { padding-block: var(--ggb-s5) var(--ggb-s3); border-bottom: 1px solid var(--ggb-hairline-soft); }
.ggb-ptitle h1 { font-size: clamp(1.8rem, 4vw, 2.6rem); margin: 6px 0 var(--ggb-s2); }
.ggb-ptitle__lead { font-size: var(--ggb-step-1); color: var(--ggb-ink-2); max-width: 60ch; margin: 0; }

/* ============================================================
   BYLINE
   ============================================================ */
.ggb-byline { padding-block: var(--ggb-s3); }
.ggb-byline__inner {
  display: flex; align-items: center; gap: var(--ggb-s2);
  flex-wrap: wrap; font-size: var(--ggb-step--1); color: var(--ggb-ink-2);
  border-top: 1px solid var(--ggb-hairline);
  border-bottom: 1px solid var(--ggb-hairline);
  padding-block: var(--ggb-s2);
}
.ggb-byline__photo { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; }
.ggb-byline__name { color: var(--ggb-ink); font-weight: 700; text-decoration: none; }
.ggb-byline__name:hover { text-decoration: underline; }
.ggb-byline__sep { color: var(--ggb-ink-3); }

/* ============================================================
   MAIN / PROSE — eine Spalte, ein linker Rand, volle .wrap-Breite
   ============================================================ */
.ggb-main { padding-block: var(--ggb-s5); }
.ggb-prose > * { max-width: none; }
.ggb-prose { font-size: var(--ggb-step-0); }
.ggb-prose h2 {
  font-size: clamp(1.5rem, 3vw, 2rem);
  margin: var(--ggb-s5) 0 var(--ggb-s3);
  scroll-margin-top: 84px;
  padding-top: var(--ggb-s2);
  border-top: 1px solid var(--ggb-hairline);
}
.ggb-prose h3 { font-size: var(--ggb-step-1); margin: var(--ggb-s4) 0 var(--ggb-s2); }
.ggb-prose h2 .ggb-secno {
  display: block; font-size: var(--ggb-step--1); font-weight: 600;
  letter-spacing: 0.16em; color: var(--ggb-ink-3); margin-bottom: 6px;
  font-variant-numeric: tabular-nums;
}
.ggb-prose p, .ggb-prose li { color: var(--ggb-ink); }
.ggb-prose a:not(.ggb-cta) { color: var(--ggb-link); text-decoration: underline; text-decoration-color: var(--ggb-accent); }
.ggb-prose a:not(.ggb-cta):hover { color: var(--ggb-link-hover); }

/* Listen — hängender Diamant-Marker */
.ggb-list { list-style: none; padding: 0; margin: 0 0 var(--ggb-s3); }
.ggb-list li {
  position: relative; padding-left: 1.5em; margin-bottom: 8px;
  text-indent: 0;
}
.ggb-list li::before {
  content: "\25C6"; position: absolute; left: 0; top: 0.05em;
  color: var(--ggb-accent); font-size: 0.62em; line-height: inherit;
  filter: drop-shadow(0 0 0 var(--ggb-ink-3));
}
/* Akzent-Diamant ist deko — Kontrast trägt der Text. Sichtbar genug per dunklem Kern: */
.ggb-list li::before { text-shadow: 0 0 1px var(--ggb-ink-2); }

/* Nummerierte Schritt-Liste — großer Außennummer */
.ggb-steps { list-style: none; padding: 0; margin: 0 0 var(--ggb-s4); counter-reset: ggbstep; }
.ggb-steps li {
  position: relative; padding-left: 3rem; margin-bottom: var(--ggb-s3);
  counter-increment: ggbstep; min-height: 2rem;
}
.ggb-steps li::before {
  content: counter(ggbstep, decimal-leading-zero);
  position: absolute; left: 0; top: 0; width: 2.2rem;
  font-variant-numeric: tabular-nums; font-weight: 400;
  font-size: var(--ggb-step-1); color: var(--ggb-ink-3);
  letter-spacing: 0.02em;
}

/* CTA-Zeile im Text — zentriert */
.ggb-ctarow { display: flex; justify-content: center; margin: var(--ggb-s4) 0; }
.ggb-ctarow .ggb-cta { font-size: var(--ggb-step-0); padding: 13px 28px; }

/* Callout / Infobox */
.ggb-callout {
  background: var(--ggb-surface-2); border: 1px solid var(--ggb-hairline);
  padding: var(--ggb-s3) var(--ggb-s4); margin: var(--ggb-s4) 0;
}
.ggb-callout h3 { margin-top: 0; }

/* Content-Figur — zentriert, ~70%, px-Cap */
.ggb-figure {
  width: min(72%, 760px); margin: var(--ggb-s4) auto;
}
.ggb-figure img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border: 1px solid var(--ggb-hairline); }
.ggb-figure figcaption { font-size: var(--ggb-step--1); color: var(--ggb-ink-3); margin-top: 8px; }

/* ============================================================
   TABELLEN (auch nackte <table>)
   ============================================================ */
.ggb-tablewrap { overflow-x: auto; margin: var(--ggb-s4) 0; }
.ggb-prose table, table:not(.ggb-bare) {
  width: 100%; border-collapse: collapse;
  font-size: var(--ggb-step-0); border: 1px solid var(--ggb-hairline);
  background: var(--ggb-surface);
}
.ggb-prose caption, table caption { caption-side: top; text-align: left; font-size: var(--ggb-step--1); color: var(--ggb-ink-3); margin-bottom: 8px; }
.ggb-prose th, .ggb-prose td, table th, table td {
  padding: 11px 14px; text-align: left; vertical-align: top;
  border-bottom: 1px solid var(--ggb-hairline);
}
.ggb-prose thead th, table thead th {
  background: var(--ggb-surface-2); font-weight: 700;
  border-bottom: 1px solid var(--ggb-hairline-2);
}
.ggb-prose tbody tr:hover td, table tbody tr:hover td { background: color-mix(in srgb, var(--ggb-accent) 6%, var(--ggb-surface)); }
.ggb-prose td:first-child, table td:first-child { font-weight: 600; }
.ggb-num { text-align: right; font-variant-numeric: tabular-nums lining-nums; }

/* ============================================================
   FAQ (<details>) — auch nackte details
   ============================================================ */
.ggb-faq { margin: var(--ggb-s3) 0; }
.ggb-prose details, details.ggb-q {
  border: 1px solid var(--ggb-hairline); background: var(--ggb-surface);
  margin-bottom: 10px; position: relative;
}
.ggb-prose details > summary, details.ggb-q > summary {
  list-style: none; cursor: pointer; padding: 14px 44px 14px 18px;
  font-weight: 700; position: relative;
}
.ggb-prose summary::-webkit-details-marker, details summary::-webkit-details-marker { display: none; }
.ggb-prose details > summary::after, details.ggb-q > summary::after {
  content: "+"; position: absolute; right: 16px; top: 50%; transform: translateY(-50%);
  font-weight: 400; font-size: var(--ggb-step-1); color: var(--ggb-ink-2);
}
.ggb-prose details[open] > summary::after, details.ggb-q[open] > summary::after { content: "\2013"; }
.ggb-prose details::before, details.ggb-q::before {
  content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px;
  background: var(--ggb-accent); opacity: 0;
}
.ggb-prose details[open]::before, details.ggb-q[open]::before { opacity: 1; }
.ggb-prose details > div, .ggb-prose details > p, details.ggb-q .ggb-q__body {
  padding: 0 18px 16px; color: var(--ggb-ink-2);
}

/* ============================================================
   TOC (details, eingeklappt am Anfang)
   ============================================================ */
.ggb-toc { border: 1px solid var(--ggb-hairline); background: var(--ggb-surface-2); margin: 0 0 var(--ggb-s4); }
.ggb-toc > summary { cursor: pointer; padding: 13px 18px; font-weight: 700; list-style: none; }
.ggb-toc > summary::-webkit-details-marker { display: none; }
.ggb-toc ol { margin: 0; padding: 0 18px 16px 36px; columns: 2; gap: 24px; }
.ggb-toc li { margin-bottom: 6px; }
.ggb-toc a { color: var(--ggb-link); text-decoration: none; }
.ggb-toc a:hover { text-decoration: underline; }
@media (max-width: 640px) { .ggb-toc ol { columns: 1; } }

/* ============================================================
   SLOT-VITRINE — kompaktes Raster
   ============================================================ */
.ggb-slots { margin: var(--ggb-s5) 0; }
.ggb-slots__head { display: flex; align-items: baseline; justify-content: space-between; gap: var(--ggb-s2); margin-bottom: var(--ggb-s3); flex-wrap: wrap; }
.ggb-slots__head h2 { margin: 0; font-size: clamp(1.4rem, 2.6vw, 1.9rem); }
.ggb-slots__more { font-size: var(--ggb-step--1); font-weight: 600; }
.ggb-slots__grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 12px;
}
.ggb-slotcard {
  display: block; text-decoration: none; color: inherit;
  border: 1px solid var(--ggb-hairline); background: var(--ggb-surface);
  transition: border-color .15s ease, transform .15s ease;
}
.ggb-slotcard:hover { border-color: var(--ggb-hairline-2); transform: scale(1.02); }
.ggb-slotcard img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; }
.ggb-slotcard span {
  display: block; padding: 8px 10px; font-size: var(--ggb-step--1);
  font-weight: 600; letter-spacing: 0.01em;
}
@media (max-width: 1024px) { .ggb-slots__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 560px) { .ggb-slots__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; } }

/* ============================================================
   PROS / CONS
   ============================================================ */
.ggb-pc { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--ggb-s3); margin: var(--ggb-s4) 0; }
.ggb-pc__col { border: 1px solid var(--ggb-hairline); padding: var(--ggb-s3); background: var(--ggb-surface); }
.ggb-pc__col h3 { margin-top: 0; font-size: var(--ggb-step-1); }
.ggb-pc__col ul { list-style: none; margin: 0; padding: 0; }
.ggb-pc__col li { position: relative; padding-left: 1.6em; margin-bottom: 8px; }
.ggb-pc--pro li::before { content: "+"; position: absolute; left: 0; color: var(--ggb-ink); font-weight: 700; }
.ggb-pc--con li::before { content: "\2013"; position: absolute; left: 0; color: var(--ggb-ink-3); font-weight: 700; }
@media (max-width: 640px) { .ggb-pc { grid-template-columns: 1fr; } }

/* ============================================================
   CTA-Button
   ============================================================ */
.ggb-cta {
  display: inline-flex; align-items: center; justify-content: center;
  gap: 8px; min-height: 48px;
  background: var(--ggb-cta); color: var(--ggb-cta-ink);
  font: 700 var(--ggb-step-0)/1 var(--ggb-font);
  text-decoration: none; padding: 12px 22px;
  border: 1px solid color-mix(in srgb, var(--ggb-cta) 70%, #000 12%);
  border-radius: var(--ggb-r-active);
  position: relative; overflow: hidden;
  transition: transform .15s ease, background .15s ease;
}
.ggb-cta::after {
  content: ""; position: absolute; top: 0; bottom: 0; left: -60%; width: 40%;
  background: linear-gradient(100deg, transparent, rgba(255,255,255,.45), transparent);
  transform: translateX(0); opacity: 0; pointer-events: none;
}
.ggb-cta:hover { color: var(--ggb-cta-ink); transform: scale(1.02); }
.ggb-cta:hover::after { opacity: 1; transform: translateX(420%); transition: transform .6s ease; }
.ggb-cta:active { transform: translateY(1px); }
.ggb-cta--ghost {
  background: transparent; color: var(--ggb-dark-ink);
  border: 1px solid var(--ggb-hairline-dark);
}
.ggb-cta--ghost:hover { color: var(--ggb-dark-ink); border-color: var(--ggb-accent); }

/* ============================================================
   AUTOR-KARTE (unten)
   ============================================================ */
.ggb-author {
  display: flex; gap: var(--ggb-s3); align-items: flex-start;
  border: 1px solid var(--ggb-hairline); background: var(--ggb-surface-2);
  padding: var(--ggb-s4); margin: var(--ggb-s5) auto 0;
  max-width: 780px;
}
.ggb-author__photo { width: 104px; height: 104px; border-radius: 50%; object-fit: cover; flex: 0 0 auto; aspect-ratio: 1/1; }
.ggb-author__meta { min-width: 0; }
.ggb-author__name { font-size: var(--ggb-step-1); font-weight: 700; margin: 0 0 2px; }
.ggb-author__name a { color: var(--ggb-ink); text-decoration: none; }
.ggb-author__name a:hover { text-decoration: underline; }
.ggb-author__role { font-size: var(--ggb-step--1); color: var(--ggb-ink-3); text-transform: uppercase; letter-spacing: 0.06em; margin: 0 0 var(--ggb-s2); }
.ggb-author__bio { margin: 0 0 var(--ggb-s2); color: var(--ggb-ink-2); }
.ggb-author__more { font-weight: 600; font-size: var(--ggb-step--1); }
@media (max-width: 560px) { .ggb-author { flex-direction: column; } }
/* Автор-СТРАНИЦА (полноценная) — НЕ флекс-байлайн .ggb-author: блок-layout, фото-шапка + проза на всю ширину */
.ggb-authorpage { display: block; max-width: none; border: 0; background: transparent; padding: 0; margin: 0; }
.ggb-authorpage .ggb-author__photo { width: 128px; height: 128px; float: left; margin: 4px var(--ggb-s3) var(--ggb-s2) 0; }
.ggb-authorpage .ggb-kicker { margin: 0; }
.ggb-authorpage .ggb-author__name { font-size: var(--ggb-step-4); line-height: 1.12; margin: .08em 0 .12em; }
.ggb-authorpage .ggb-author__role { margin: 0 0 var(--ggb-s3); }
.ggb-authorpage .ggb-author__bio { clear: both; max-width: 74ch; color: var(--ggb-ink); }
.ggb-authorpage .ggb-author__bio h2 { font-size: var(--ggb-step-1); margin: var(--ggb-s4) 0 var(--ggb-s2); }
.ggb-authorpage .ggb-author__bio p { margin: 0 0 var(--ggb-s2); }
.ggb-authorpage .ggb-author__bio ul { margin: 0 0 var(--ggb-s2); padding-left: 1.2em; }
.ggb-authorpage .ggb-author__more { display: flex; gap: var(--ggb-s4); flex-wrap: wrap; margin-top: var(--ggb-s4); padding-top: var(--ggb-s3); border-top: 1px solid var(--ggb-hairline); font-size: var(--ggb-step--1); font-weight: 600; }
@media (max-width: 560px) { .ggb-authorpage .ggb-author__photo { float: none; margin: 0 0 var(--ggb-s2); } }

/* Autor-Profil-Portrait (ProfilePage) */
.ggb-prose img.ggb-portrait { width: 220px; height: auto; aspect-ratio: 3/4; object-fit: cover; float: none; margin: 0 0 var(--ggb-s3); border: 1px solid var(--ggb-hairline); }

/* ============================================================
   FOOTER — vier Spalten
   ============================================================ */
.ggb-foot { background: var(--ggb-dark); color: var(--ggb-dark-ink-2); margin-top: var(--ggb-s6); }
.ggb-foot__top {
  border-top: 1px solid var(--ggb-hairline-dark);
  /* doppelte Hairline über Footer */
  box-shadow: 0 -3px 0 -2px var(--ggb-hairline-soft);
  padding-block: var(--ggb-s5);
}
.ggb-foot__grid {
  display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.1fr;
  gap: var(--ggb-s4);
}
.ggb-foot__col { min-width: 0; }
.ggb-foot__col h4 {
  font-size: var(--ggb-step--1); text-transform: uppercase;
  letter-spacing: 0.12em; color: var(--ggb-accent); font-weight: 700;
  margin: 0 0 var(--ggb-s2);
}
.ggb-foot__brand img { height: 36px; width: auto; margin-bottom: var(--ggb-s2); background: #fff; padding: 7px 12px; border-radius: 10px; }
.ggb-foot__col ul { list-style: none; margin: 0; padding: 0; }
.ggb-foot__col li { margin-bottom: 9px; }
.ggb-foot__col a { color: var(--ggb-dark-ink-2); text-decoration: none; font-size: var(--ggb-step-0); }
.ggb-foot__col a:hover { color: var(--ggb-dark-ink); text-decoration: underline; }
.ggb-foot__col p { font-size: var(--ggb-step--1); color: var(--ggb-dark-ink-2); }
.ggb-foot__authors a { color: var(--ggb-dark-ink-2); }
.ggb-foot__authors a:hover { color: var(--ggb-dark-ink); }
.ggb-foot__resp {
  border: 1px solid var(--ggb-hairline-dark); padding: var(--ggb-s3);
  background: var(--ggb-dark-2);
}
.ggb-foot__resp .ggb-18 {
  display: inline-block; border: 2px solid var(--ggb-accent); color: var(--ggb-accent);
  border-radius: 50%; width: 38px; height: 38px; line-height: 34px; text-align: center;
  font-weight: 700; margin-bottom: var(--ggb-s2);
}
.ggb-foot__bottom {
  border-top: 1px solid var(--ggb-hairline-dark);
  padding-block: var(--ggb-s3); font-size: var(--ggb-step--1);
  display: flex; flex-wrap: wrap; gap: var(--ggb-s2) var(--ggb-s4); justify-content: space-between;
}
.ggb-foot__bottom a { color: var(--ggb-dark-ink); }
@media (max-width: 860px) { .ggb-foot__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .ggb-foot__grid { grid-template-columns: 1fr; } }

/* ============================================================
   COOKIE-BANNER — fixierter Streifen
   ============================================================ */
.ggb-cookie {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 120;
  background: var(--ggb-dark); color: var(--ggb-dark-ink);
  border-top: 1px solid var(--ggb-hairline-dark);
  display: flex; align-items: center; gap: var(--ggb-s3);
  padding: 12px var(--ggb-pad); flex-wrap: wrap;
  font-size: var(--ggb-step--1);
}
.ggb-cookie[hidden] { display: none; }
.ggb-cookie p { margin: 0; flex: 1 1 280px; color: var(--ggb-dark-ink-2); }
.ggb-cookie a { color: var(--ggb-accent); }
.ggb-cookie button {
  margin-left: auto; background: var(--ggb-cta); color: var(--ggb-cta-ink);
  border: 0; border-radius: var(--ggb-r-active); padding: 10px 20px; min-height: 44px;
  font: 700 var(--ggb-step--1)/1 var(--ggb-font); cursor: pointer;
}

/* ============================================================
   GALERIE-PROYEKTION (Reveal)
   ============================================================ */
.ggb-reveal { opacity: 0; }
.ggb-reveal.ggb-in { opacity: 1; transition: opacity .3s ease; }

/* ============================================================
   HERO — Mobile (DOM-Reihenfolge: H1 → CTA → Link → Bild → Fakten)
   ============================================================ */
@media (max-width: 900px) {
  .ggb-hero { padding-block: var(--ggb-s4) var(--ggb-s3); }
  .ggb-hero__grid {
    display: flex; flex-direction: column;
    grid-template-areas: none; gap: var(--ggb-s3); text-align: center;
  }
  .ggb-hero__copy, .ggb-hero__facts, .ggb-hero__media { grid-area: auto; }
  .ggb-hero__copy { order: 1; align-items: center; }
  .ggb-hero__copy .ggb-kicker { order: 1; }
  .ggb-hero__copy h1 { order: 2; }
  .ggb-hero__copy .ggb-hero__ctas { order: 3; }
  .ggb-hero__copy .ggb-hero__lead { order: 4; }
  .ggb-hero__media { order: 2; }
  .ggb-hero__facts { order: 3; }
  .ggb-hero__lead { margin-inline: auto; }
  .ggb-hero__ctas { justify-content: center; }
  .ggb-hero__frame { margin-top: 0; max-width: 380px; margin-inline: auto; }
  .ggb-hero__img { max-height: 42vh; width: auto; aspect-ratio: 1/1; object-fit: contain; margin-inline: auto; }
  .ggb-facts { text-align: left; }
}

/* ============================================================
   Mobile — Overflow-Schutz
   ============================================================ */
@media (max-width: 640px) {
  /* Lange Wörter/URLs nicht über den Rand drücken */
  .ggb-prose p, .ggb-prose li, .ggb-prose h2, .ggb-prose h3, .ggb-byline__inner { overflow-wrap: anywhere; word-break: break-word; }
  /* Tabellen (auch nackte) zu eigenem Scroll-Container machen → kein Seiten-Overflow */
  .ggb-prose table, table:not(.ggb-bare) { display: block; width: 100%; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .ggb-prose caption, table caption { white-space: normal; }
  /* Sicherheits-Caps gegen alles, was breiter wäre als der Viewport */
  .ggb-figure { width: 100%; }
  .ggb-toc ol { columns: 1; }
}
body { overflow-x: hidden; }

/* ============================================================
   Motion off
   ============================================================ */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; }
  .ggb-reveal { opacity: 1; }
}

/* ============================================================
   POLISH LAYER 2026-06-09 — motion + glow + hover (GPU, reduced-motion-safe)
   ============================================================ */
@media (prefers-reduced-motion: no-preference){
  @keyframes ggb-fadeup{ from{ opacity:0; transform:translateY(16px); } to{ opacity:1; transform:none; } }
  .ggb-hero__copy > *, .ggb-hero__media, .ggb-hero__img{ animation:ggb-fadeup .62s cubic-bezier(.2,.7,.2,1) both; }
  .ggb-hero__copy > *:nth-child(1){ animation-delay:.03s }
  .ggb-hero__copy > *:nth-child(2){ animation-delay:.09s }
  .ggb-hero__copy > *:nth-child(3){ animation-delay:.15s }
  .ggb-hero__copy > *:nth-child(4){ animation-delay:.21s }
  .ggb-hero__media{ animation-delay:.10s }
}
/* CTA — подъём + дозированное акцентное свечение */
.ggb-cta{ transition:transform .16s ease, box-shadow .22s ease, filter .22s ease !important; will-change:transform; }
.ggb-cta:hover{ transform:translateY(-2px); box-shadow:0 0 0 1px var(--ggb-accent), 0 10px 30px -8px color-mix(in srgb, var(--ggb-accent) 55%, transparent); filter:brightness(1.05); }
.ggb-cta:active{ transform:translateY(0); }
/* HERO-картинка — мягкий подъём на hover */
.ggb-hero__img{ transition:transform .5s cubic-bezier(.2,.7,.2,1), box-shadow .4s ease; }
.ggb-hero__media:hover .ggb-hero__img{ transform:translateY(-5px) scale(1.015); }
/* карточки/слоты/каллауты/FAQ — подъём + акцентная рамка-свечение */
.ggb-slot, .ggb-callout, .ggb-faq__q, .ggb-authorcard, .ggb-author, .ggb-authorpage, .ggb-toc{
  transition:transform .18s ease, box-shadow .2s ease, border-color .2s ease, background-color .2s ease;
}
.ggb-slot:hover{ transform:translateY(-4px); box-shadow:0 14px 34px -14px color-mix(in srgb, var(--ggb-accent) 50%, transparent); border-color:var(--ggb-accent); }
.ggb-slot__img{ transition:transform .35s cubic-bezier(.2,.7,.2,1); }
.ggb-slot:hover .ggb-slot__img{ transform:scale(1.07); }
.ggb-faq__q:hover, .ggb-callout:hover{ border-color:color-mix(in srgb, var(--ggb-accent) 60%, var(--ggb-hairline,transparent)); }
/* анимированное акцентное подчёркивание ссылок прозы */
.ggb-prose a:not(.ggb-cta), .ggb-toclist a{ background-image:linear-gradient(var(--ggb-accent),var(--ggb-accent)); background-size:0% 2px; background-position:0 100%; background-repeat:no-repeat; transition:background-size .25s ease; text-decoration:none; }
.ggb-prose a:not(.ggb-cta):hover, .ggb-toclist a:hover{ background-size:100% 2px; }
/* выделение текста в тон акцента */
::selection{ background:color-mix(in srgb, var(--ggb-accent) 28%, transparent); }

/* always-on акцентное свечение hero (мягкий пульс) */
@media (prefers-reduced-motion: no-preference){
  @keyframes ggb-heroglow{ 0%,100%{ box-shadow:0 20px 55px -30px color-mix(in srgb,var(--ggb-accent) 38%,transparent); } 50%{ box-shadow:0 28px 72px -26px color-mix(in srgb,var(--ggb-accent) 66%,transparent); } }
  .ggb-hero__img{ animation:ggb-fadeup .62s cubic-bezier(.2,.7,.2,1) both, ggb-heroglow 5s ease-in-out 1.2s infinite; }
}
