/* ============================================================
   kostenlos.css — /kostenlos-spielen/ page skin (.ks-*).

   Page-scoped: enqueued only on this page (functions.php), on top of
   oseg-home + oseg-casino (so .oc-toc / .oc-nav / .oc-prose are present).
   Reuses global systems: OSEGHomeHero motif backdrop (.oseg-hhero),
   .oc-toc jump-nav + .ocr-rail (casino.js / toc-rail.js), .faq (home.css),
   .catalog-cta / .catalog-band / .topslots (home.css) for the CTA band.
   ============================================================ */

/* ---- Hero (animated OSEGHomeHero 'signature' motif mounts behind) ---- */
.ks-hero {
  position: relative; overflow: hidden;
  padding-block: var(--s-96);
  background: linear-gradient(90deg, var(--hero), var(--bg));
  text-align: center;
}
/* content paints ABOVE the motif (.oseg-hhero is z-index:0) */
.ks-hero > .container { position: relative; z-index: 1; }
.ks-hero .eyebrow { justify-content: center; }
.ks-hero h1 { margin: 0 auto; max-width: 50rem; }
.ks-hero h1 .accent { color: var(--accent); }
.ks-hero .lead { margin: var(--s-20) auto 0; max-width: 50rem; }

/* stat strip — 4 quick facts under the lead */
.ks-hero__stats {
  list-style: none; margin: var(--s-32) auto 0; padding: 0; max-width: 50rem;
  display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--s-12);
}
.ks-hero__stat {
  display: flex; flex-direction: column; gap: var(--s-2);
  padding: var(--s-16);
  background: var(--surface);
  border: 1px solid var(--line); border-radius: var(--radius-m);
}
.ks-hero__stat b {
  font-family: var(--font-display); font-weight: 800; line-height: var(--lh-heading);
  font-size: var(--fs-24); color: var(--ink);
}
.ks-hero__stat span { font-size: var(--fs-12); color: var(--sub); }
.ks-hero__cta { margin-top: var(--s-32); }
.ks-hero__cta .btn { min-width: 12rem; }

/* ---- Game section ---- */
.ks-game { padding-block: var(--s-48) var(--s-32); }
/* Drop the pointer-tracking spotlight glow on the full game's Drehen button here only — the home-hero
   teaser keeps it. Removing the ::before is enough; the base .dh-btn brightness/lift hover still applies. */
.ks-game .dh-btn--track::before { content: none; }

/* ---- Facts band (id=fakten) — mirrors provider .pv-facts, dark panel ---- */
.ks-facts { padding-block: var(--s-64); }
.ks-facts__band {
  background: var(--panel); color: var(--panel-ink);
  border-radius: var(--radius); border: 1px solid var(--line); box-shadow: var(--shadow);
  padding: var(--s-32);
  display: grid; grid-template-columns: minmax(0, auto) 1fr; align-items: center; gap: var(--s-32);
}
.ks-facts__rtp {
  display: flex; flex-direction: column; justify-content: center; gap: var(--s-4);
  padding: var(--s-16) var(--s-24); border-radius: var(--radius-s);
  background:
    linear-gradient(135deg, color-mix(in srgb, var(--accent) 20%, transparent), color-mix(in srgb, var(--primary) 12%, transparent)),
    rgba(255, 255, 255, .04);
  border: 1px solid rgba(255, 255, 255, .1);
}
.ks-facts__rtp-l {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: var(--fs-12); text-transform: uppercase; letter-spacing: .04em; opacity: .6;
}
.ks-facts__rtp-l svg { width: 15px; height: 15px; }
.ks-facts__rtp-v {
  font-family: var(--font-display); font-weight: 800; line-height: 1; font-size: var(--fs-40);
  color: #b79bef;
}
.ks-facts__rtp-sub { font-size: var(--fs-12); opacity: .55; }
.ks-facts__list {
  list-style: none; margin: 0; padding: 0;
  display: flex; align-items: stretch; gap: var(--s-32);
}
.ks-facts__stat {
  flex: 1 1 0; min-width: 0;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: var(--s-12); text-align: center;
}
.ks-facts__stat + .ks-facts__stat { padding-left: var(--s-32); border-left: 1px solid rgba(255, 255, 255, .1); }
.ks-facts__ico {
  flex: none; display: grid; place-items: center; width: 2.5rem; height: 2.5rem;
  border-radius: var(--radius-s); background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .1);
}
.ks-facts__ico svg { width: var(--s-20); height: var(--s-20); opacity: .7; }
.ks-facts__body { display: flex; flex-direction: column; gap: var(--s-2); min-width: 0; }
.ks-facts__body b {
  font-family: var(--font-display); font-weight: 800; line-height: var(--lh-heading); font-size: var(--fs-24);
  overflow-wrap: break-word; hyphens: auto;
}
.ks-facts__body span { font-size: var(--fs-12); opacity: .7; overflow-wrap: break-word; hyphens: auto; }

/* ---- Prose sections spacing (id=anleitung / id=warum) — .oc-prose owns typography ---- */
.ks-how, .ks-why { padding-block: var(--s-64); }
.ks-how { padding-top: var(--s-32); }
.ks-why { padding-bottom: var(--s-32); }

/* ---- "Lieber um Echtgeld?" — reuses home .catalog-cta / .catalog-band ---- */
.ks-echtgeld .catalog-band__cta {
  display: flex; flex-wrap: wrap; gap: var(--s-12) var(--s-16); margin-top: var(--s-24);
}

/* ---- Responsive ---- */
@media (max-width: 63.9375rem) {
  .ks-hero { padding-top: var(--s-64); }
  .ks-facts__band { grid-template-columns: minmax(0, 1fr); gap: var(--s-20); }
  .ks-facts__rtp { align-items: center; text-align: center; }
  .ks-facts__stat { justify-content: flex-start; }
}
@media (max-width: 47.9375rem) {
  .ks-hero__stats { grid-template-columns: repeat(2, 1fr); }
  .ks-facts__band { grid-template-columns: 1fr; }
  .ks-facts__list { flex-wrap: wrap; gap: var(--s-20); }
  .ks-facts__stat { flex-basis: calc(50% - var(--s-16)); }
  .ks-facts__stat + .ks-facts__stat { padding-left: 0; border-left: 0; }
}
@media (max-width: 28.75rem) {
  .ks-facts__list { flex-direction: column; }
  .ks-echtgeld .catalog-band__cta { flex-direction: column; }
}
