/* ══════════════════════════════════════════════════════════════
   effectiv · „Eine ganz besondere Weihnachtskarte“ 2026/27
   Kampagnen-Landingpage – Schwarz mit Gold
   ══════════════════════════════════════════════════════════════ */

/* ── FONT: Montserrat, selbst gehostet (Variable, 100–900) ───── */
@font-face {
  font-family: 'Montserrat';
  src: url('../fonts/Montserrat-Variable.woff2') format('woff2');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

/* ── TOKENS ─────────────────────────────────────────────────── */
:root {
  /* Flächen: nur zwei sehr nahe Dunkelstufen + Plakat-Anthrazit */
  --bg:        #0b0b0b;
  --bg-2:      #151515;
  --anthrazit: #1d1d1b;          /* Plakat-Hintergrund, nur für Karten/Flächen-Details */

  /* Text */
  --white:     #ffffff;
  --txt:       #cfcfcf;          /* Fließtext: 12,6:1 auf --bg */
  --txt-dim:   #a3a3a3;          /* Kleintext: 7,9:1 auf --bg */

  /* Gold – aus Plakat-Band und Logo-Verlauf abgeleitet
     Champagner → Gold → Bronze                                   */
  --g-champ:   #ffeaa3;
  --g-light:   #efd590;
  --g-mid:     #e9ce8a;
  --g-gold:    #d8b875;
  --g-warm:    #c7a263;
  --g-deep:    #ba9155;
  --g-bronze:  #b68b50;
  --g-dark:    #7d5f34;
  --g-text:    #e2c580;          /* Gold für Text: 11,1:1 auf --bg (AA auch klein) */
  --g-hair:    rgba(233, 206, 138, .26);
  --g-hair-2:  rgba(233, 206, 138, .14);

  --grad-gold: linear-gradient(100deg, var(--g-deep) 0%, var(--g-warm) 14%, var(--g-mid) 36%, var(--g-champ) 50%, var(--g-mid) 64%, var(--g-warm) 84%, var(--g-bronze) 100%);
  --grad-gold-v: linear-gradient(180deg, var(--g-champ) 0%, var(--g-mid) 40%, var(--g-warm) 75%, var(--g-bronze) 100%);

  --err:       #f2a594;

  --font: 'Montserrat', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --ease: cubic-bezier(.22, 1, .36, 1);

  --w: 1280px;
  --gut: clamp(1.25rem, 5vw, 4rem);
  --sec: clamp(5rem, 11vw, 9.5rem);
  --hdr-h: 80px;          /* kompakter Header (nach dem Scrollen) */
  --hdr-top: 116px;       /* Header ganz oben, mit großem Logo */
  --logo-w: 180px;
}

/* ── RESET / BASIS ─────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }
html {
  overflow-x: clip;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--hdr-h) + 12px);
  background: var(--bg);
}
body {
  margin: 0;
  background: var(--bg);
  color: var(--txt);
  font-family: var(--font);
  font-size: 1.125rem;            /* 18 px */
  font-weight: 350;
  line-height: 1.6;
  font-kerning: normal;
  font-feature-settings: 'kern' 1, 'liga' 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: clip;
  hanging-punctuation: first;
}
[hidden] { display: none !important; }
img, svg, picture, canvas { display: block; max-width: 100%; }
img { height: auto; }
a { color: inherit; }
p, h1, h2, h3, ul, ol, dl, dd, figure { margin: 0; }
ul, ol { padding: 0; list-style: none; }
button, input, textarea, select { font: inherit; color: inherit; }
strong, b { font-weight: 650; color: var(--white); }
::selection { background: var(--g-mid); color: #111; }

:focus-visible {
  outline: 2px solid var(--g-champ);
  outline-offset: 3px;
  border-radius: 2px;
}

.wrap { width: 100%; max-width: calc(var(--w) + 2 * var(--gut)); margin-inline: auto; padding-inline: var(--gut); }
.sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.nw { white-space: nowrap; }

.skip {
  position: fixed; left: 50%; top: -10rem; z-index: 200;
  white-space: nowrap;
  transform: translateX(-50%);
  padding: .8rem 1.4rem;
  background: var(--g-mid); color: #111; font-weight: 700; text-decoration: none;
  transition: top .3s var(--ease);
}
.skip:focus { top: .75rem; }

/* ── TYPOGRAFIE-BAUSTEINE ──────────────────────────────────── */
.eyebrow {
  display: flex; align-items: center; gap: .9rem;
  font-size: .8125rem;
  font-weight: 600;
  letter-spacing: .26em;
  text-transform: uppercase;
  line-height: 1.4;
  color: var(--g-text);
  margin-bottom: 1.4rem;
}
.eyebrow::before {
  content: ''; flex: 0 0 auto;
  width: 2.25rem; height: 1px;
  background: linear-gradient(90deg, transparent, var(--g-mid));
}
.head--center .eyebrow, .ended .eyebrow { justify-content: center; }
@media (max-width: 480px) { .eyebrow { letter-spacing: .2em; } }
.head--center .eyebrow::after, .ended .eyebrow::after {
  content: ''; flex: 0 0 auto; width: 2.25rem; height: 1px;
  background: linear-gradient(270deg, transparent, var(--g-mid));
}

.hl {
  font-size: clamp(2.25rem, 5.2vw, 4.4rem);
  font-weight: 300;
  line-height: 1.04;
  letter-spacing: -.025em;
  color: var(--white);
  text-wrap: balance;
}
.hl > span + span { font-weight: 650; }
h2, h3 { text-wrap: balance; }
.hl--m { font-size: clamp(2rem, 4.2vw, 3.4rem); }

.lede {
  font-size: clamp(1.125rem, 1.5vw, 1.3rem);
  font-weight: 300;
  line-height: 1.6;
  color: var(--txt);
  max-width: 34em;
  text-wrap: pretty;
}
.fine {
  font-size: .9375rem;
  line-height: 1.55;
  color: var(--txt-dim);
  font-weight: 400;
}

.head { margin-bottom: clamp(3rem, 6vw, 5rem); }
.head--center { text-align: center; }
.head--center .hl { margin-inline: auto; }
.head--center .lede { margin-inline: auto; }

/* ── BUTTONS ──────────────────────────────────────────────── */
.btn {
  --h: 56px;
  position: relative;
  display: inline-flex; align-items: center; justify-content: center; gap: .85rem;
  min-height: var(--h);
  padding: 0 1.9rem;
  border: 0; border-radius: 2px;
  font-size: .875rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  text-decoration: none;
  line-height: 1.2;
  cursor: pointer;
  overflow: hidden;
  isolation: isolate;
  transition: transform .5s var(--ease), box-shadow .5s var(--ease), color .3s, background-color .3s, border-color .3s;
  -webkit-tap-highlight-color: transparent;
}
.btn > span { position: relative; z-index: 2; }
.btn__arw { position: relative; z-index: 2; flex: 0 0 auto; transition: transform .5s var(--ease); }
.btn:hover .btn__arw { transform: translateX(5px); }

.btn--gold {
  color: #111;
  background: var(--grad-gold);
  background-size: 160% 100%;
  background-position: 30% 50%;
  box-shadow: 0 10px 30px -12px rgba(233, 206, 138, .45), inset 0 1px 0 rgba(255, 255, 255, .35);
}
/* Goldglanz läuft beim Hover über den Button */
.btn--gold::after {
  content: '';
  position: absolute; inset: -20% auto -20% 0; z-index: 1;
  width: 45%;
  background: linear-gradient(100deg, transparent 0%, rgba(255, 255, 255, .7) 50%, transparent 100%);
  transform: translateX(-140%) skewX(-18deg);
  pointer-events: none;
}
.btn--gold:hover { box-shadow: 0 16px 40px -14px rgba(255, 234, 163, .6), inset 0 1px 0 rgba(255, 255, 255, .45); }
.btn--gold:hover::after { transform: translateX(330%) skewX(-18deg); transition: transform 1s var(--ease); }
.btn--gold:active { transform: translateY(1px); }

.btn--line {
  color: var(--g-text);
  background: transparent;
  border: 1px solid var(--g-hair);
}
.btn--line:hover { border-color: var(--g-mid); color: var(--g-champ); background: rgba(233, 206, 138, .05); }

.btn--sm { --h: 44px; padding: 0 1.15rem; font-size: .75rem; letter-spacing: .14em; gap: .55rem; }
.btn--lg { --h: 62px; padding: 0 2.2rem; font-size: .9375rem; }
.btn--xl { --h: 66px; padding: 0 2.4rem; font-size: 1rem; }

/* Haupt-CTA zweizeilig: „Beratungstermin vereinbaren & / 50 € GUTHABEN EINLÖSEN“ */
.btn--cta {
  --h: 76px;
  justify-content: space-between;
  gap: 1.4rem;
  padding: .85rem 1.6rem .85rem 1.9rem;
  text-align: left;
  letter-spacing: 0;
  text-transform: none;
}
.btn__txt { display: flex; flex-direction: column; align-items: flex-start; gap: .2rem; line-height: 1.15; min-width: 0; }
.btn__txt small { font-size: .8125rem; font-weight: 500; letter-spacing: .02em; color: #2a2116; }
.btn__txt b { font-size: 1.0625rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: #111; white-space: nowrap; }
.btn--md { --h: 54px; padding: 0 1.5rem; font-size: .8125rem; letter-spacing: .14em; gap: .7rem; }
.t-short { display: none; }

/* Hinweis: Karte zum Termin mitbringen */
.hint {
  display: flex; gap: .85rem; align-items: flex-start;
  max-width: 31em;
  padding: .85rem 1.05rem;
  border: 1px solid var(--g-hair-2);
  background: rgba(233, 206, 138, .04);
  font-size: .9375rem; line-height: 1.5; font-weight: 400;
  color: var(--white);
  text-align: left;
}
.hint__ico { flex: 0 0 auto; width: 26px; height: 19px; margin-top: .12rem; fill: none; stroke: var(--g-mid); stroke-width: 1.4; }


/* ── HEADER ────────────────────────────────────────────────── */
.hdr {
  position: fixed; inset: 0 0 auto; z-index: 100;
  height: var(--hdr-top);
  transition: height .6s var(--ease), background-color .5s var(--ease), border-color .5s var(--ease);
  border-bottom: 1px solid transparent;
}
.hdr.is-stuck {
  height: var(--hdr-h);
  background: rgba(11, 11, 11, .78);
  -webkit-backdrop-filter: blur(14px) saturate(1.2);
  backdrop-filter: blur(14px) saturate(1.2);
  border-bottom-color: rgba(233, 206, 138, .16);
}
/* Dreispaltig: links und rechts gleich breit → das Logo steht exakt mittig,
   egal wie breit der Button ist. Alle drei auf einer Mittelachse. */
.hdr__in { height: 100%; display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; column-gap: 1rem; }
.hdr__l { justify-self: start; display: flex; align-items: center; }
.hdr__r { justify-self: end; display: flex; align-items: center; }
.hdr__logo { display: flex; align-items: center; justify-content: center; min-height: 44px; }
.hdr__logo img { width: var(--logo-w); height: auto; transform-origin: 50% 50%; transition: transform .6s var(--ease); }
.hdr.is-stuck .hdr__logo img { transform: scale(.7); }
.hdr__cta { white-space: nowrap; }
.hdr.is-menu .hdr__cta { visibility: hidden; }

.burger__label {
  margin-right: .7rem;
  font-size: .75rem; font-weight: 600; letter-spacing: .22em; text-transform: uppercase;
  color: var(--white); opacity: .85;
  cursor: pointer; user-select: none;
  transition: opacity .3s, color .3s;
}
.hdr__r:hover .burger__label { opacity: 1; color: var(--g-champ); }
.burger {
  position: relative; z-index: 2;
  width: 48px; height: 48px;
  display: inline-flex; flex-direction: column; align-items: center; justify-content: center; gap: 7px;
  background: transparent;
  border: 1px solid var(--g-hair-2);
  border-radius: 50%;
  cursor: pointer;
  transition: border-color .3s;
}
.burger:hover { border-color: var(--g-hair); }
.burger span {
  display: block; width: 18px; height: 1.5px;
  background: var(--white);
  transition: transform .5s var(--ease), background-color .3s;
}
.burger.is-open span { background: var(--g-champ); }
.burger.is-open span:nth-child(1) { transform: translateY(4.25px) rotate(45deg); }
.burger.is-open span:nth-child(2) { transform: translateY(-4.25px) rotate(-45deg); }

/* ── FULLSCREEN-MENÜ ──────────────────────────────────────── */
.menu {
  position: fixed; inset: 0; z-index: 90;
  background: #070707;
  background: var(--bg);
  overflow-y: auto;
  opacity: 0;
  transition: opacity .55s var(--ease);
}
.menu[hidden] { display: none; }
.menu.is-open { opacity: 1; }
.menu__glow {
  position: absolute; right: -20vmax; top: -20vmax;
  width: 70vmax; height: 70vmax;
  background: radial-gradient(closest-side, rgba(233, 206, 138, .14), rgba(186, 145, 85, .05) 55%, transparent 75%);
  pointer-events: none;
}
.menu__in {
  position: relative;
  min-height: 100%;
  display: flex; flex-direction: column; justify-content: space-between; gap: 3rem;
  padding-top: calc(var(--hdr-h) + clamp(1.5rem, 6vh, 4rem));
  padding-bottom: 2.5rem;
}
.menu__list { counter-reset: m; }
.menu__list li {
  opacity: 0; transform: translateY(26px);
  transition: opacity .7s var(--ease), transform .9s var(--ease);
  transition-delay: calc(.08s + var(--i) * .06s);
}
.menu.is-open .menu__list li, .menu.is-open .menu__foot { opacity: 1; transform: none; }
.menu__lnk {
  display: flex; align-items: baseline; gap: 1.25rem;
  padding: .35rem 0;
  font-size: clamp(2rem, 6.4vw, 4.4rem);
  font-weight: 300;
  line-height: 1.12;
  letter-spacing: -.02em;
  color: var(--white);
  text-decoration: none;
  transition: color .35s, transform .6s var(--ease);
}
.menu__lnk i {
  flex: 0 0 2.2rem;
  font-style: normal; font-size: .8125rem; font-weight: 600; letter-spacing: .2em;
  color: var(--g-text);
  transform: translateY(-.6em);
}
.menu__lnk:hover, .menu__lnk:focus-visible { color: var(--g-champ); transform: translateX(.5rem); }
.menu__lnk span { background: linear-gradient(var(--g-mid), var(--g-mid)) 0 100% / 0 1px no-repeat; transition: background-size .6s var(--ease); }
.menu__lnk:hover span { background-size: 100% 1px; }
.menu__foot {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.5rem;
  padding-top: 2rem;
  border-top: 1px solid var(--g-hair-2);
  opacity: 0; transform: translateY(20px);
  transition: opacity .7s var(--ease) .5s, transform .9s var(--ease) .5s;
}
.menu__contact { display: flex; flex-wrap: wrap; gap: 1.25rem 2.5rem; }
.menu__contact a { display: flex; flex-direction: column; text-decoration: none; color: var(--white); font-weight: 500; font-size: 1.125rem; min-height: 44px; }
.menu__contact small { font-size: .75rem; letter-spacing: .2em; text-transform: uppercase; color: var(--g-text); font-weight: 600; }
.menu__contact a:hover { color: var(--g-champ); }

/* ── HERO ──────────────────────────────────────────────────── */
.hero {
  position: relative;
  min-height: 100vh; min-height: 100svh;
  padding-top: calc(var(--hdr-top) + clamp(1.5rem, 4vh, 3rem));
  padding-bottom: clamp(4rem, 9vh, 6rem);
  overflow: hidden;
  isolation: isolate;
  background:
    radial-gradient(120% 70% at 50% 0%, rgba(29, 29, 27, .9) 0%, transparent 60%),
    var(--bg);
}
.hero__glow {
  position: absolute; z-index: -2;
  right: -12vw; top: 8vh;
  width: min(1100px, 90vw); aspect-ratio: 1;
  background: radial-gradient(closest-side, rgba(255, 234, 163, .17) 0%, rgba(216, 184, 117, .08) 38%, rgba(186, 145, 85, .03) 60%, transparent 76%);
  pointer-events: none;
}
.hero::after {
  content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 32vh; z-index: -1;
  background: linear-gradient(180deg, rgba(11, 11, 11, 0), var(--bg) 92%);
  pointer-events: none;
}
.hero__dust { position: absolute; inset: 0; z-index: -1; width: 100%; height: 100%; pointer-events: none; }

.hero__in {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.08fr);
  align-items: center;
  gap: clamp(2rem, 5vw, 5rem);
  min-height: calc(100svh - var(--hdr-top) - 9rem);
}

/* Kampagnen-Headline wie im Plakat, fürs Web verfeinert.
   Alle Größen relativ zur Blockbreite → die Zeilen bilden einen Block. */
.kv {
  container-type: inline-size;
  width: min(100%, 35rem);
  margin: 0;
  color: var(--white);
  font-weight: 800;
  line-height: 1;
}
.kv > * { display: block; }
.kv__euro {
  font-size: 21.1cqi;
  font-weight: 900;
  line-height: .86;
  letter-spacing: -.008em;
  white-space: nowrap;
  margin-left: -.035em;
  background: linear-gradient(100deg, var(--g-deep) 0%, var(--g-warm) 18%, var(--g-mid) 34%, var(--g-champ) 46%, var(--g-light) 54%, var(--g-warm) 74%, var(--g-bronze) 88%, var(--g-mid) 100%);
  background-size: 220% 100%;
  background-position: 0% 50%;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 6px 26px rgba(233, 206, 138, .18));
  animation: shimmer 9s ease-in-out infinite alternate;
}
@keyframes shimmer { to { background-position: 100% 50%; } }
.hero--idle .kv__euro, .hero--idle .card3d, .hero--idle .card3d__shadow { animation-play-state: paused; }
@media (max-width: 999px) { .kv__euro { animation-iteration-count: 4; } }
.kv__num { display: inline-block; min-width: 1.16em; font-variant-numeric: tabular-nums; }

.kv__outline {
  width: 100%; height: auto;
  margin-top: 2.2cqi;
  overflow: visible;
}
.kv__outline path {
  fill: none;
  stroke: var(--white);
  stroke-width: 1.7;
  stroke-linejoin: round;
  stroke-dasharray: 1 1;
  stroke-dashoffset: 0;
}
.js .kv__outline path { stroke-dashoffset: 1; }
.js .kv.is-in .kv__outline path { animation: draw 1.7s cubic-bezier(.45, .05, .35, 1) calc(.45s + var(--i) * .1s) forwards; }
@keyframes draw { to { stroke-dashoffset: 0; } }

.kv__solid {
  font-size: 14.9cqi;
  font-weight: 800;
  letter-spacing: -.012em;
  line-height: .95;
  margin-top: 1.4cqi;
  white-space: nowrap;
}
.kv__solid sup {
  font-size: .36em;
  vertical-align: top;
  position: relative; top: .1em;
  margin-left: .04em;
  color: var(--white);
}

.hero__sub {
  margin-top: 2rem;
  font-size: clamp(1.15rem, 1.7vw, 1.45rem);
  font-weight: 300;
  line-height: 1.5;
  color: var(--white);
}
.hero__act { margin-top: 2.2rem; display: flex; flex-direction: column; align-items: flex-start; gap: 1rem; }
.hero__fine { max-width: 30em; }

/* Bühne mit der 3D-Karte */
.hero__stage {
  position: relative;
  display: flex; flex-direction: column; align-items: center;
  perspective: 1700px;
}
.card3d {
  --rx: 0deg; --ry: 0deg; --flip: 0deg; --gx: 50%; --gy: 30%;
  position: relative;
  width: min(100%, 560px);
  aspect-ratio: 85.6 / 54;
  container-type: inline-size;
  transform-style: preserve-3d;
  animation: float 7s ease-in-out infinite;
}
@keyframes float { 0%, 100% { translate: 0 0; } 50% { translate: 0 -10px; } }
.card3d__flip {
  position: absolute; inset: 0; z-index: 5;
  background: transparent; border: 0; cursor: pointer;
  border-radius: 3.6cqi;
  transform: translateZ(40px);
}
.card3d__flip:focus-visible { outline-offset: 10px; }
.card3d__body {
  position: absolute; inset: 0;
  transform-style: preserve-3d;
  transform: rotateX(var(--rx)) rotateY(calc(var(--ry) + var(--flip)));
  will-change: transform;
}
.card3d__face {
  position: absolute; inset: 0;
  border-radius: 3.6cqi;
  overflow: hidden;
  /* Sichtbare Seite steuert das Skript per Drehwinkel (kein backface-visibility:
     manche Browser blenden sonst die Rückseite mit aus). */
  background:
    radial-gradient(130% 100% at 22% 0%, rgba(255, 255, 255, .07) 0%, transparent 46%),
    linear-gradient(160deg, #222221 0%, #161615 40%, #0e0e0e 100%);
  box-shadow:
    inset 0 0 0 1px rgba(255, 255, 255, .07),
    inset 0 1px 0 rgba(255, 255, 255, .12),
    0 2px 0 #050505;
}
/* feine Mattlack-Struktur */
.card3d__face::before {
  content: ''; position: absolute; inset: 0; opacity: .5; mix-blend-mode: overlay; pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .5 0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");
}
.card3d__back { transform: rotateY(180deg); visibility: hidden; }
.card3d__face img { position: absolute; inset: 0; z-index: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.card3d__face::before { z-index: 1; }
.card3d__glare, .card3d__sheen { z-index: 2; }
.card3d__glare {
  position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(60% 75% at var(--gx) var(--gy), rgba(255, 245, 220, .16) 0%, rgba(255, 245, 220, .04) 40%, transparent 70%);
  mix-blend-mode: screen;
}
.card3d__sheen {
  position: absolute; inset: -10% -60%; pointer-events: none;
  background: linear-gradient(105deg, transparent 38%, rgba(255, 240, 205, .32) 48%, rgba(255, 255, 255, .12) 52%, transparent 62%);
  transform: translateX(-70%);
  mix-blend-mode: screen;
}
.js .card3d.is-in .card3d__sheen { animation: sheen 2.2s var(--ease) .9s 1 both; }
@keyframes sheen { from { transform: translateX(-70%); } to { transform: translateX(70%); } }

.card3d__shadow {
  position: absolute; left: 8%; right: 8%; bottom: -16%;
  height: 22%;
  background: radial-gradient(closest-side, rgba(0, 0, 0, .9), transparent);
  filter: blur(14px);
  transform: translateZ(-80px);
  z-index: -1;
  animation: shadow 7s ease-in-out infinite;
}
@keyframes shadow { 50% { opacity: .7; scale: .94; } }

.hero__hint {
  margin-top: 3.2rem;
  font-size: .75rem; font-weight: 600; letter-spacing: .24em; text-transform: uppercase;
  color: var(--txt-dim);
}
.t-mouse { display: none; }
@media (hover: hover) and (pointer: fine) { .t-touch { display: none; } .t-mouse { display: inline; } }

.hero__scroll {
  position: absolute; left: 50%; bottom: 1.2rem; transform: translateX(-50%);
  width: 44px; height: 54px; display: flex; justify-content: center;
}
.hero__scroll span { position: relative; width: 1px; height: 100%; background: var(--g-hair-2); overflow: hidden; }
.hero__scroll span::after {
  content: ''; position: absolute; left: 0; top: -40%; width: 1px; height: 40%;
  background: linear-gradient(transparent, var(--g-champ));
  animation: drip 2.4s var(--ease) infinite;
}
@keyframes drip { to { top: 100%; } }

/* ── SEKTIONEN ─────────────────────────────────────────────── */
.sec { position: relative; padding-block: var(--sec); }
.sec--alt { background: linear-gradient(180deg, var(--bg) 0%, var(--bg-2) 16%, var(--bg-2) 84%, var(--bg) 100%); }

/* Schritte */
.steps__list {
  position: relative;
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(2rem, 4vw, 4rem);
  counter-reset: s;
}
.steps__list::before {
  content: '';
  position: absolute; left: 0; right: 0; top: 3.15rem;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--g-mid) 12%, var(--g-champ) 50%, var(--g-mid) 88%, transparent);
  transform: scaleX(0); transform-origin: 0 50%;
  transition: transform 1.8s var(--ease) .2s;
  opacity: .6;
}
.steps__list.is-in::before { transform: none; }
.step { position: relative; }
.step__no {
  display: block;
  font-size: 5rem; font-weight: 300; line-height: 1;
  letter-spacing: -.03em;
  color: transparent;
  -webkit-text-stroke: 1px var(--g-mid);
  margin-bottom: 1.6rem;
  padding-right: .6rem;
  width: max-content;
  background: var(--bg);
}
.step__ttl { font-size: 1.4rem; font-weight: 600; color: var(--white); line-height: 1.25; margin-bottom: .7rem; letter-spacing: -.005em; }
.step__txt { max-width: 22em; }
.cta-row { margin-top: clamp(3.5rem, 7vw, 5.5rem); display: flex; flex-direction: column; align-items: center; gap: 1.1rem; text-align: center; }
.cta-row .hint { margin-bottom: .6rem; }

/* Was dich erwartet */
.expect__grid { display: grid; gap: clamp(3.5rem, 7vw, 6rem); }

.collage {
  display: grid;
  grid-template-columns: 26fr 17fr 21fr 15fr 15fr;
  gap: 1.8%;
  align-items: start;
  padding-bottom: 3rem;
}
.tile { position: relative; will-change: transform; }
.tile picture { display: block; position: relative; overflow: hidden; aspect-ratio: 4 / 5; background: var(--bg-2); }
.tile picture::after {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(180deg, rgba(11, 11, 11, 0) 55%, rgba(11, 11, 11, .55) 100%);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .04);
}
.tile img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.4s var(--ease), filter 1.4s var(--ease); filter: brightness(.94); }
.tile:hover img { transform: scale(1.03); filter: brightness(1.02); }
.tile--a { margin-top: 0; }
.tile--a::before {
  content: ''; position: absolute; left: -1.1rem; top: -1.1rem; right: 1.1rem; bottom: 1.1rem;
  border: 1px solid var(--g-hair); pointer-events: none; z-index: -1;
}
.tile--b { margin-top: 18%; }
.tile--c { margin-top: 6%; }
.tile--d { margin-top: 30%; }
.tile--e { margin-top: 11%; }

/* zweite Reihe: gespiegelte Spaltenbreiten und Versätze */
.collage--2 { grid-template-columns: 16fr 22fr 15fr 18fr 24fr; margin-top: calc(-1 * clamp(3.5rem, 7vw, 6rem) + 2.5rem); padding-bottom: 0; }
.tile--f { margin-top: 10%; }
.tile--g { margin-top: 0; }
.tile--h { margin-top: 22%; }
.tile--i { margin-top: 8%; }
.tile--j { margin-top: 15%; }

/* Echte Stimmen – bewusst leise: nur Typografie, eine Goldhaarlinie, viel Schwarz */
.voices__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(3rem, 7vw, 7rem); max-width: 1120px; }
.voice { margin: 0; }
.voice:nth-child(2) { margin-top: clamp(0rem, 7vw, 6rem); }
.voice::before {
  content: ''; display: block; width: 2.25rem; height: 1px; margin-bottom: 1.9rem;
  background: linear-gradient(90deg, var(--g-mid), transparent);
}
.voice__quote { margin: 0; max-width: 60ch; }
.voice__quote p {
  font-size: clamp(1.125rem, 1.5vw, 1.375rem); font-weight: 300; line-height: 1.6;
  color: var(--txt); text-wrap: pretty;
}
.voice__by { margin-top: 1.7rem; display: flex; flex-wrap: wrap; align-items: baseline; gap: .35rem .9rem; }
.voice__name { font-size: .75rem; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: var(--g-text); }
.voice__role { font-size: .8125rem; font-weight: 400; color: var(--txt-dim); }
.voice__role::before { content: '·'; margin-right: .9rem; color: var(--g-hair); }
@media (max-width: 859px) {
  .voices__grid { grid-template-columns: minmax(0, 1fr); gap: 3.5rem; }
  .voice:nth-child(2) { margin-top: 0; }
}

/* Deine Ziele – vier hohe Bildkarten, Text unten auf dunklem Verlauf */
.goals__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(.8rem, 1.4vw, 1.3rem); }
.goal {
  position: relative; overflow: hidden; isolation: isolate;
  min-height: 35rem;
  display: flex; flex-direction: column; justify-content: flex-end;
  background: var(--bg-2); border-radius: 2px;
}
.goal::before {   /* feine Goldhaarlinie am Rand */
  content: ''; position: absolute; inset: 0; z-index: 3; pointer-events: none;
  border: 1px solid var(--g-hair-2); border-radius: 2px;
  transition: border-color .6s var(--ease);
}
.goal::after {    /* Verlauf ins Schwarz: Text liegt nie auf Bilddetails */
  content: ''; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: linear-gradient(180deg, rgba(11, 11, 11, .35) 0%, rgba(11, 11, 11, 0) 22%, rgba(11, 11, 11, .78) 46%, rgba(11, 11, 11, .95) 64%, #0b0b0b 100%);
}
.goal__media { position: absolute; inset: 0; z-index: 0; overflow: hidden; }
.goal__img { position: absolute; left: 0; right: 0; top: -10%; height: 120%; will-change: transform; }
.goal__img picture, .goal__img img { display: block; width: 100%; height: 100%; }
.goal__img img { object-fit: cover; filter: brightness(.95); transform: scale(1); transition: transform 1.6s var(--ease), filter 1.2s var(--ease); }
.goal__no {
  position: absolute; z-index: 2; left: 1.4rem; top: 1.3rem;
  display: flex; align-items: center;
  font-size: .8125rem; font-weight: 600; letter-spacing: .3em; color: var(--g-text);
}
.goal__no::after {
  content: ''; width: 2.4rem; height: 1px; margin-left: .9rem;
  background: linear-gradient(90deg, var(--g-mid), transparent);
  transform: scaleX(.35); transform-origin: 0 50%; transition: transform .9s var(--ease);
}
.goal__body { position: relative; z-index: 2; padding: 0 1.4rem 1.6rem; transition: transform .8s var(--ease); }
.goal__kicker { font-size: .75rem; font-weight: 600; letter-spacing: .24em; text-transform: uppercase; line-height: 1.4; color: var(--g-text); margin-bottom: .7rem; }
.goal__ttl { font-size: clamp(1.4rem, 1.9vw, 1.7rem); font-weight: 800; line-height: 1.08; letter-spacing: -.005em; text-transform: uppercase; color: var(--white); hyphens: manual; }
.goal__txt { margin-top: 1rem; font-size: .9375rem; font-weight: 300; line-height: 1.6; color: var(--txt); }
.goals__head { margin-bottom: clamp(2.5rem, 5vw, 4rem); }
.goals__head .lede { margin: 1.5rem auto 0; }
.goals__dots { display: none; }
.goals__scroller:focus-visible { outline: 2px solid var(--g-mid); outline-offset: 4px; }
.goals__cta { margin-top: clamp(3rem, 5vw, 4.5rem); display: flex; flex-direction: column; align-items: center; gap: 1rem; text-align: center; }
@media (hover: hover) and (pointer: fine) {
  .goal:hover::before { border-color: var(--g-hair); }
  .goal:hover .goal__img img { transform: scale(1.045); filter: brightness(1.02); }
  .goal:hover .goal__no::after { transform: scaleX(1); }
  .goal:hover .goal__body { transform: translateY(-4px); }
}
/* Einscrollen: gestaffelter Clip-Path-Reveal von unten */
.js .goal { clip-path: inset(100% 0 0 0); transition: clip-path 1.3s var(--ease); transition-delay: var(--d, 0s); }
.js .goal.is-in { clip-path: inset(0 0 0 0); }
@media (max-width: 999px) {
  .goals__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .goal { min-height: 31rem; }
}
@media (max-width: 699px) {
  /* Mobil: wischbarer Slider mit Anschnitt der nächsten Karte, kein Autoplay */
  .goals__scroller { margin-inline: calc(-1 * var(--gut)); overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch; overscroll-behavior-x: contain; }
  .goals__scroller::-webkit-scrollbar { display: none; }
  .goals__list { display: flex; gap: .9rem; padding-inline: var(--gut); }
  .goal { flex: 0 0 78%; scroll-snap-align: center; min-height: 33rem; }
  .js .goal { clip-path: none; opacity: 0; transition: opacity .9s var(--ease); transition-delay: var(--d, 0s); }
  .js .goal.is-in { opacity: 1; }
  .goals__dots { display: flex; justify-content: center; gap: 0; margin-top: .6rem; }
  .goals__dot { width: 44px; height: 44px; padding: 0; background: none; border: 0; cursor: pointer; display: grid; place-items: center; }
  .goals__dot::before { content: ''; width: 7px; height: 7px; border-radius: 50%; border: 1px solid var(--g-mid); background: transparent; transition: background-color .3s, transform .3s; }
  .goals__dot.is-on::before { background: var(--g-mid); transform: scale(1.2); }
}

/* Warum effectiv */
.why__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(3rem, 6vw, 6.5rem); align-items: start; }
.why__vis { position: sticky; top: calc(var(--hdr-h) + 2.5rem); }
.why__frame { position: absolute; left: -1.1rem; top: -1.1rem; right: 1.1rem; bottom: calc(1.1rem + 2.2rem); border: 1px solid var(--g-hair); pointer-events: none; }
.why__pic { position: relative; aspect-ratio: 4 / 5; overflow: hidden; background: var(--bg); }
.why__pic::after { content: ''; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, rgba(21, 21, 21, 0) 60%, rgba(21, 21, 21, .75) 100%); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .04); }
.why__img { position: absolute; left: 0; right: 0; top: -10%; height: 120%; will-change: transform; }
.why__img picture, .why__img img { width: 100%; height: 100%; }
.why__img img { object-fit: cover; object-position: 50% 25%; }
.why__cap { margin-top: .85rem; font-size: .75rem; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: var(--txt-dim); }
.why__copy .lede { margin-top: 1.6rem; }
.bens { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2.4rem clamp(1.6rem, 3vw, 3rem); margin-top: clamp(2.6rem, 4vw, 3.4rem); }
.ben { padding-top: 1.5rem; border-top: 1px solid var(--g-hair-2); }
.ben__ico { width: 38px; height: 38px; margin-bottom: 1.05rem; fill: none; stroke: var(--g-mid); stroke-width: 1.25; stroke-linecap: round; stroke-linejoin: round; overflow: visible; }
.ben__ico * { stroke-dasharray: 1 1; stroke-dashoffset: 0; }
.js .ben__ico * { stroke-dashoffset: 1; transition: stroke-dashoffset 1.8s var(--ease) calc(var(--d, 0s) + .3s); }
.js .ben.is-in .ben__ico * { stroke-dashoffset: 0; }
.ben__ttl { font-size: 1.2rem; font-weight: 600; color: var(--white); line-height: 1.3; margin-bottom: .45rem; letter-spacing: -.005em; }
.why__cta { margin-top: clamp(3rem, 5vw, 4rem); display: flex; flex-direction: column; align-items: flex-start; gap: 1rem; }

.expect__head { margin-bottom: clamp(3.5rem, 6vw, 5rem); }
.expect__head .lede { margin-top: 1.5rem; }
.cta-note { max-width: 34em; }
.cta-note__tel { display: flex; flex-wrap: wrap; justify-content: center; gap: 0 1.5rem; margin-top: .15rem; }
.cta-note a { display: inline-flex; align-items: center; min-height: 44px; color: var(--g-text); font-weight: 600; text-decoration: none; white-space: nowrap; }
.cta-note a:hover { color: var(--g-champ); }

/* Statement */
.statement {
  position: relative;
  min-height: 112vh; min-height: 112svh;
  display: flex; align-items: flex-end;
  padding-block: var(--sec) clamp(5rem, 10vw, 8rem);
  overflow: hidden;
  isolation: isolate;
}
.statement__bg {
  position: absolute; z-index: -1;
  top: 0; height: 76%; right: 0; width: min(64%, 1200px);
  overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.35) 22%, #000 48%), linear-gradient(180deg, transparent 0%, #000 14%, #000 58%, transparent 94%);
  -webkit-mask-composite: source-in;
  mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.35) 22%, #000 48%), linear-gradient(180deg, transparent 0%, #000 14%, #000 58%, transparent 94%);
  mask-composite: intersect;
}
.statement__img { position: absolute; inset: -12% 0; will-change: transform; }
.statement__img picture, .statement__img img { width: 100%; height: 100%; }
.statement__img img { object-fit: cover; object-position: 55% 30%; filter: brightness(.74) saturate(.95); }
.statement__in { position: relative; }
.statement__hl {
  max-width: 13em;
  font-size: clamp(2.6rem, 6.6vw, 6.2rem);
  font-weight: 250;
  line-height: 1.03;
  letter-spacing: -.035em;
  color: var(--white);
  text-wrap: balance;
}
.statement__hl em {
  font-style: normal; font-weight: 600;
}
.statement__hl .w { display: inline-block; opacity: var(--o, 1); transition: opacity .25s linear; }
.statement__hl em .w {
  background: linear-gradient(100deg, var(--g-warm), var(--g-champ) 50%, var(--g-gold));
  -webkit-background-clip: text; background-clip: text; color: transparent; -webkit-text-fill-color: transparent;
}
.statement__cta { margin-top: 2.6rem; }
.statement__sub { margin-top: 2rem; font-size: clamp(1.15rem, 1.6vw, 1.35rem); font-weight: 300; color: var(--txt); }

/* Formular-Sektion */
.redeem { overflow: clip; isolation: isolate; }
.redeem__glow {
  position: absolute; z-index: -1; left: -20vw; top: 10%;
  width: 80vw; max-width: 1100px; aspect-ratio: 1;
  background: radial-gradient(closest-side, rgba(233, 206, 138, .1), rgba(186, 145, 85, .03) 55%, transparent 75%);
  pointer-events: none;
}
.redeem__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(2.5rem, 6vw, 6rem); align-items: start; }
.redeem__copy { position: sticky; top: calc(var(--hdr-h) + 2rem); }
.redeem__copy .lede { margin-top: 1.6rem; }
.redeem__call { margin-top: 2.6rem; padding-top: 1.6rem; border-top: 1px solid var(--g-hair-2); display: grid; gap: .25rem; }
.redeem__call p { font-size: .8125rem; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: var(--g-text); margin-bottom: .4rem; }
.redeem__call a { display: inline-flex; align-items: center; min-height: 44px; color: var(--white); text-decoration: none; font-weight: 450; }
.redeem__call a:hover { color: var(--g-champ); }

.redeem__panel {
  position: relative;
  padding: clamp(1.5rem, 4vw, 3.25rem);
  background: linear-gradient(180deg, #141414, #101010);
  border: 1px solid var(--g-hair-2);
  border-radius: 2px;
  box-shadow: 0 40px 80px -40px rgba(0, 0, 0, .9);
}
.redeem__panel::before {
  content: ''; position: absolute; left: -1px; right: -1px; top: -1px; height: 2px;
  background: var(--grad-gold);
}

/* Formular */
.form { display: grid; gap: 1.5rem; }
.form__req { font-size: .9375rem; color: var(--txt-dim); }
.form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; align-items: start; }
.field { display: grid; align-content: start; gap: .55rem; min-width: 0; border: 0; margin: 0; padding: 0; }
.field > label, .field > legend { font-size: 1rem; font-weight: 500; color: var(--white); line-height: 1.4; padding: 0; }
.field label span[aria-hidden], .field legend span[aria-hidden], .check__txt > span[aria-hidden] { color: var(--g-champ); margin-left: .15em; }
.field small { font-weight: 400; color: var(--txt-dim); font-size: .9em; }
.field input[type="text"], .field input[type="tel"], .field input[type="email"], .field textarea {
  width: 100%;
  min-height: 58px;
  padding: .85rem 1.05rem;
  font-size: 1.125rem; font-weight: 400;
  color: var(--white);
  background: #0b0b0b;
  border: 1px solid rgba(233, 206, 138, .55);
  border-radius: 2px;
  transition: border-color .3s, box-shadow .3s, background-color .3s;
  -webkit-appearance: none; appearance: none;
}
.field textarea { min-height: 120px; resize: vertical; line-height: 1.5; }
.field input::placeholder, .field textarea::placeholder { color: #8a8a8a; opacity: 1; }
.field input:hover, .field textarea:hover { border-color: rgba(233, 206, 138, .45); }
.field input:focus, .field textarea:focus {
  outline: none;
  border-color: var(--g-champ);
  background: #0e0e0e;
  box-shadow: 0 0 0 3px rgba(233, 206, 138, .2);
}
.field__hint { font-size: .9375rem; color: var(--txt-dim); }
.field__err { font-size: .9375rem; color: var(--err); font-weight: 500; display: none; }
.field.is-err .field__err { display: flex; gap: .5rem; align-items: flex-start; }
.field.is-err .field__err::before { content: '!'; flex: 0 0 auto; width: 1.2rem; height: 1.2rem; margin-top: .1rem; border-radius: 50%; border: 1px solid currentColor; font-size: .75rem; font-weight: 700; display: grid; place-items: center; }
.field.is-err input[type="text"], .field.is-err input[type="tel"], .field.is-err input[type="email"] { border-color: var(--err); }

.studio-pick { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.studio-opt { position: relative; display: block; cursor: pointer; }
.studio-opt input, .check input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.studio-opt__box {
  position: relative;
  display: grid; gap: .1rem;
  min-height: 104px;
  padding: 1.15rem 1.15rem 1.1rem 3.3rem;
  background: #0b0b0b;
  border: 1px solid rgba(233, 206, 138, .55);
  border-radius: 2px;
  transition: border-color .3s, background-color .3s, box-shadow .3s;
}
.studio-opt__box b { font-size: 1.35rem; font-weight: 650; letter-spacing: -.005em; }
.studio-opt__box small { font-size: .9375rem; color: var(--txt-dim); }
.studio-opt__dot {
  position: absolute; left: 1.15rem; top: 1.45rem;
  width: 22px; height: 22px; border-radius: 50%;
  border: 1px solid rgba(233, 206, 138, .5);
  transition: border-color .3s;
}
.studio-opt__dot::after {
  content: ''; position: absolute; inset: 4px; border-radius: 50%;
  background: var(--grad-gold-v); transform: scale(0); transition: transform .4s var(--ease);
}
.studio-opt:hover .studio-opt__box { border-color: rgba(233, 206, 138, .5); }
.studio-opt input:checked + .studio-opt__box {
  border-color: var(--g-mid);
  background: linear-gradient(160deg, rgba(233, 206, 138, .09), rgba(233, 206, 138, .02));
  box-shadow: inset 0 0 0 1px var(--g-mid);
}
.studio-opt input:checked + .studio-opt__box .studio-opt__dot { border-color: var(--g-champ); }
.studio-opt input:checked + .studio-opt__box .studio-opt__dot::after { transform: scale(1); }
.studio-opt input:focus-visible + .studio-opt__box { outline: 2px solid var(--g-champ); outline-offset: 3px; }
.field--studio.is-err .studio-opt__box { border-color: var(--err); }


.check { display: flex; gap: 1rem; align-items: flex-start; cursor: pointer; position: relative; }
.check__box {
  flex: 0 0 auto; width: 26px; height: 26px; margin-top: .1rem;
  border: 1px solid rgba(233, 206, 138, .5); border-radius: 2px; background: #0b0b0b;
  display: grid; place-items: center;
  transition: background-color .3s, border-color .3s;
}
.check__box::after {
  content: ''; width: 12px; height: 7px; margin-top: -3px;
  border-left: 2px solid #111; border-bottom: 2px solid #111;
  transform: rotate(-45deg) scale(0); transition: transform .3s var(--ease);
}
.check input:checked + .check__box { background: var(--grad-gold-v); border-color: var(--g-mid); }
.check input:checked + .check__box::after { transform: rotate(-45deg) scale(1); }
.check input:focus-visible + .check__box { outline: 2px solid var(--g-champ); outline-offset: 3px; }
.check__txt { font-size: 1rem; line-height: 1.55; color: var(--txt); }
.check__txt a { color: var(--g-text); text-underline-offset: .2em; }
.field--check.is-err .check__box { border-color: var(--err); }

.hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.form__alert {
  padding: 1rem 1.2rem;
  border: 1px solid rgba(242, 165, 148, .5);
  background: rgba(242, 165, 148, .06);
  color: var(--err); font-weight: 500; font-size: 1rem;
}
.form__submit { width: 100%; margin-top: .25rem; }
.form__submit[disabled] { cursor: progress; }
.form__spin {
  display: none; position: relative; z-index: 2;
  width: 20px; height: 20px; border-radius: 50%;
  border: 2px solid rgba(17, 17, 17, .25); border-top-color: #111;
  animation: spin .8s linear infinite;
}
.form.is-busy .form__spin { display: block; }
.form.is-busy .btn__arw { display: none; }
@keyframes spin { to { transform: rotate(360deg); } }
.form__alt { text-align: center; font-size: .9375rem; color: var(--txt-dim); }
.form__alt a { display: inline-flex; align-items: center; min-height: 44px; color: var(--g-text); font-weight: 600; text-decoration: none; }
.form__alt a:hover { color: var(--g-champ); }

/* Erfolg */
.done { text-align: center; padding: clamp(1rem, 4vw, 2.5rem) 0; outline: none; }
.done__ring { display: inline-block; width: 76px; height: 76px; margin-bottom: 1.6rem; }
.done__ring svg { width: 100%; height: 100%; fill: none; stroke: var(--g-mid); stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }
.done__ring circle { stroke-dasharray: 151; stroke-dashoffset: 151; animation: draw 1.2s var(--ease) forwards; }
.done__ring path { stroke-width: 2; stroke-dasharray: 40; stroke-dashoffset: 40; animation: draw .8s var(--ease) .7s forwards; }
.done__hl { font-size: clamp(1.8rem, 3.6vw, 2.6rem); font-weight: 300; color: var(--white); line-height: 1.15; letter-spacing: -.02em; }
.done__hl span { font-weight: 650; }
.done__txt { margin: 1rem auto 0; max-width: 26em; font-size: 1.2rem; }
.done__call { margin-top: 1.8rem; }
.done__call a { color: var(--g-text); font-weight: 600; text-decoration: none; display: inline-flex; min-height: 44px; align-items: center; }

/* Abschluss-CTA */
.fin { position: relative; padding-block: var(--sec); overflow: clip; isolation: isolate; border-top: 1px solid var(--g-hair-2); }
.fin__glow {
  position: absolute; z-index: -1; left: 50%; top: 50%; width: min(1200px, 120vw); aspect-ratio: 1; translate: -50% -50%;
  background: radial-gradient(closest-side, rgba(255, 234, 163, .12), rgba(216, 184, 117, .05) 45%, transparent 72%);
  pointer-events: none;
}
.fin__in { display: flex; flex-direction: column; align-items: center; text-align: center; }
.fin__in .eyebrow { justify-content: center; }
.fin__in .eyebrow::after { content: ''; flex: 0 0 auto; width: 2.25rem; height: 1px; background: linear-gradient(270deg, transparent, var(--g-mid)); }
.fin__act { margin-top: 2.8rem; display: flex; flex-direction: column; align-items: center; gap: 1.1rem; }

/* Bedingungen */
.terms__grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: clamp(2rem, 6vw, 6rem); align-items: start; }
.terms__list { border-top: 1px solid var(--g-hair); }
.terms__list > div { display: grid; grid-template-columns: 10rem minmax(0, 1fr); gap: 1.5rem; padding: 1.4rem 0; border-bottom: 1px solid var(--g-hair-2); }
.terms__list dt { font-size: .8125rem; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: var(--g-text); padding-top: .3rem; }
.terms__list dd { color: var(--white); font-weight: 350; }

/* Standorte */
.places__grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(1.5rem, 3vw, 2.5rem); }
.place { background: #111; border: 1px solid var(--g-hair-2); border-radius: 2px; overflow: hidden; display: flex; flex-direction: column; }
.place__pic { position: relative; aspect-ratio: 5 / 4; overflow: hidden; }
.place__pic::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(17, 17, 17, 0) 50%, #111 100%); pointer-events: none; }
.place__img { position: absolute; left: 0; right: 0; top: -10%; height: 120%; will-change: transform; }
.place__img picture, .place__img img { width: 100%; height: 100%; }
.place__img img { object-fit: cover; object-position: 50% 20%; transform: scale(1.2); transform-origin: 50% 100%; } /* Motiv etwas höher im Ausschnitt */
.place__body { padding: clamp(1.5rem, 3vw, 2.5rem); padding-top: .5rem; display: flex; flex-direction: column; flex: 1; }
.place__body .eyebrow { margin-bottom: .6rem; }
.place__name { font-size: clamp(2.2rem, 4vw, 3.2rem); font-weight: 300; color: var(--white); letter-spacing: -.025em; line-height: 1.05; }
.place__addr { font-style: normal; margin-top: 1rem; color: var(--txt); }
.place__tel a { display: inline-flex; align-items: center; min-height: 44px; color: var(--white); font-weight: 600; text-decoration: none; }
.place__tel a:hover { color: var(--g-champ); }
.hours { margin-top: 1.4rem; padding-top: 1.2rem; border-top: 1px solid var(--g-hair-2); }
.hours__ttl { font-size: .75rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--g-text); margin-bottom: .5rem; }
.hours__more { margin-top: .9rem; font-size: .9375rem; line-height: 1.55; color: var(--txt-dim); }
.hours dl > div { display: flex; justify-content: space-between; gap: 1rem; font-size: 1rem; padding: .2rem 0; }
.hours dt { color: var(--txt-dim); white-space: nowrap; }
.hours dd { color: var(--white); text-align: right; }
.place__act { margin-top: auto; padding-top: 1.8rem; display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; }
.place__act .btn { padding: 0 1rem; letter-spacing: .12em; }

/* FAQ */
.faq__grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: clamp(2rem, 6vw, 6rem); align-items: start; }
.faq__head .lede { margin-top: 1.4rem; }
.acc { border-top: 1px solid var(--g-hair); }
.acc__item { border-bottom: 1px solid var(--g-hair-2); }
.acc__item summary {
  position: relative; list-style: none; cursor: pointer;
  display: flex; align-items: center; justify-content: space-between; gap: 1.5rem;
  min-height: 72px; padding: 1.15rem 0;
  font-size: clamp(1.1rem, 1.5vw, 1.3rem); font-weight: 500; color: var(--white); line-height: 1.35;
  transition: color .3s;
}
.acc__item summary::-webkit-details-marker { display: none; }
.acc__item summary:hover { color: var(--g-champ); }
.acc__ico { position: relative; flex: 0 0 auto; width: 40px; height: 40px; border: 1px solid var(--g-hair); border-radius: 50%; }
.acc__ico::before, .acc__ico::after { content: ''; position: absolute; left: 50%; top: 50%; width: 14px; height: 1.5px; background: var(--g-mid); translate: -50% -50%; transition: transform .45s var(--ease); }
.acc__ico::after { transform: rotate(90deg); }
.acc__item[open] .acc__ico::after { transform: rotate(0deg); }
.acc__a { padding: 0 3.5rem 1.6rem 0; }
.acc__item[open] .acc__a { animation: fadeDown .5s var(--ease); }
@keyframes fadeDown { from { opacity: 0; transform: translateY(-6px); } }

/* Aktion beendet */
.ended__in { text-align: center; max-width: 52rem; }
.ended__in .lede { margin: 1.6rem auto 0; }
.ended__act { margin-top: 2.6rem; display: flex; flex-wrap: wrap; gap: 1rem; justify-content: center; }
html.is-ended .cta-main, html.is-ended .hint, html.is-ended .hero__act .hero__fine,
html.is-ended #ablauf, html.is-ended .why__cta, html.is-ended .goals__cta, html.is-ended #bedingungen,
html.is-ended #fragen, html.is-ended #fin, html.is-ended .cta-row, html.is-ended .statement__cta, html.is-ended .stick,
html.is-ended .menu__list li:nth-child(1), html.is-ended .menu__list li:nth-child(5),
html.is-ended .skip { display: none !important; }
html.is-ended .hero__sub, html.is-ended .hero__scroll, html.is-ended #ziele, html.is-ended .kv__solid sup { display: none !important; }

.hero__ended { font-size: .8125rem; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: var(--g-text); }

/* Footer */
.ftr { padding-block: 4rem 2rem; border-top: 1px solid var(--g-hair-2); background: var(--bg); }
.ftr__top { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 2rem 3rem; padding-bottom: 2.4rem; }
.ftr__logo img { height: 52px; width: auto; }
.ftr__studios { display: flex; flex-wrap: wrap; gap: 1.5rem 4rem; }
.ftr__studios p { font-size: 1rem; line-height: 1.6; color: var(--txt-dim); }
.ftr__studios b { display: block; color: var(--white); font-weight: 600; margin-bottom: .2rem; }
.ftr__studios a { color: var(--txt); text-decoration: none; display: inline-flex; min-height: 44px; align-items: center; }
.ftr__studios a:hover { color: var(--g-champ); }
.ftr__bot { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 1rem 2rem; padding-top: 1.6rem; border-top: 1px solid var(--g-hair-2); }
.ftr__cr { font-size: .875rem; color: var(--txt-dim); }
.ftr__nav { display: flex; flex-wrap: wrap; gap: .25rem 2rem; }
.ftr__nav a { font-size: .875rem; font-weight: 500; color: var(--txt); text-decoration: none; display: inline-flex; min-height: 44px; align-items: center; }
.ftr__nav a:hover { color: var(--g-champ); }

/* Sticky-CTA mobil */
.stick { display: none; }

/* ── REVEALS ──────────────────────────────────────────────── */
.js .rv { opacity: 0; transform: translateY(26px); transition: opacity 1s var(--ease), transform 1.2s var(--ease); transition-delay: var(--d, 0s); }
.js .rv.is-in { opacity: 1; transform: none; }
.mr > span { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: .1em; margin-bottom: -.1em; }
.js .mr .mr__i { display: inline-block; transform: translateY(108%); transition: transform 1.25s var(--ease); }
.js .mr > span:nth-child(2) .mr__i { transition-delay: .1s; }
.js .mr > span:nth-child(3) .mr__i { transition-delay: .2s; }
.js .mr.is-in .mr__i { transform: none; }
.js .hero__copy > * { opacity: 0; transform: translateY(18px); transition: opacity 1.1s var(--ease), transform 1.3s var(--ease); }
.js .hero.is-in .hero__copy > * { opacity: 1; transform: none; }
.js .hero.is-in .hero__copy > :nth-child(2) { transition-delay: .45s; }
.js .hero.is-in .hero__copy > :nth-child(3) { transition-delay: .6s; }
.js .hero__stage { opacity: 0; transform: translateY(30px) scale(.97); transition: opacity 1.4s var(--ease) .25s, transform 1.6s var(--ease) .25s; }
.js .hero.is-in .hero__stage { opacity: 1; transform: none; }

/* ── RESPONSIVE ───────────────────────────────────────────── */
@media (max-width: 1099px) {
  .collage { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.2rem 4%; }
  .tile--a { grid-column: 1; margin-top: 0; }
  .tile--b { grid-column: 2; margin-top: 22%; }
  .tile--c { grid-column: 1; margin-top: -8%; }
  .tile--d { grid-column: 2; margin-top: 6%; }
  .tile--e { display: none; }
  .collage--2 { margin-top: calc(-1 * clamp(3.5rem, 7vw, 6rem) - 1rem); }
  .tile--f { grid-column: 2; grid-row: 1; margin-top: 8%; }
  .tile--g { grid-column: 1; grid-row: 1; margin-top: 0; }
  .tile--h { grid-column: 2; grid-row: 2; margin-top: 4%; }
  .tile--i { grid-column: 1; grid-row: 2; margin-top: -10%; }
  .tile--j { display: none; }
  .tile--a::before { left: -.7rem; top: -.7rem; right: .7rem; }
}

@media (max-width: 999px) {
  :root { --hdr-h: 64px; --hdr-top: 92px; --logo-w: 150px; }
  .why__grid { grid-template-columns: 1fr; }
  .why__vis { position: relative; top: auto; width: min(100%, 560px); margin-inline: auto; }
  .why__pic { aspect-ratio: 1 / 1; }
  .why__frame { left: -.7rem; top: -.7rem; right: .7rem; }
  .why__cta { align-self: stretch; }
  .why__cta { align-items: center; text-align: center; }
  .why__cta .btn--cta, .cta-row .btn--cta, .fin__act .btn--cta, .statement__cta .btn--cta { width: min(100%, 26rem); }

  .hero { padding-top: calc(var(--hdr-top) + 1.2rem); text-align: center; }
  .hero__in { display: flex; flex-direction: column; align-items: center; gap: 0; min-height: 0; }
  .hero__copy { display: contents; }
  .kv { order: 1; width: min(100%, 26rem); }
  .hero__stage { order: 4; margin-top: 2.6rem; width: 100%; }
  .card3d { width: min(86vw, 400px); }
  .hero__hint { margin-top: 2.2rem; }
  .hero__sub { order: 2; margin-top: 1.5rem; margin-inline: auto; max-width: 16em; }
  .hero__act { order: 3; align-items: center; margin-top: 1.5rem; }
  .hero__act .btn { width: min(100%, 26rem); }
  .stick__btn .t-long { display: none; }
  .stick__btn .t-short { display: inline; }
  .hero__glow { right: auto; left: 50%; top: 32vh; translate: -50% 0; width: 150vw; }
  .hero__scroll { display: none; }


  .statement { min-height: 0; flex-direction: column; align-items: stretch; padding-top: 0; }
  .statement__bg { position: relative; width: 100%; height: auto; aspect-ratio: 1; margin-bottom: -6vw;
    -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 14%, #000 58%, transparent 100%); mask-image: linear-gradient(180deg, transparent 0%, #000 14%, #000 58%, transparent 100%); }

  .redeem__grid { grid-template-columns: 1fr; }
  .redeem__copy { position: static; }


  .terms__grid, .faq__grid { grid-template-columns: 1fr; }
  .places__grid { grid-template-columns: 1fr; max-width: 640px; margin-inline: auto; }

  .stick {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 80;
    display: flex; align-items: center; gap: 1rem;
    padding: .7rem var(--gut) calc(.7rem + env(safe-area-inset-bottom));
    background: rgba(11, 11, 11, .9);
    -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
    border-top: 1px solid rgba(233, 206, 138, .2);
    transform: translateY(110%);
    transition: transform .55s var(--ease);
  }
  .stick.is-on { transform: none; }
  .stick__txt { display: flex; flex-direction: column; line-height: 1.15; min-width: 0; }
  .stick__txt b {
    font-size: 1.45rem; font-weight: 900; letter-spacing: -.01em; white-space: nowrap;
    background: var(--grad-gold); -webkit-background-clip: text; background-clip: text; color: transparent; -webkit-text-fill-color: transparent;
  }
  .stick__txt small { font-size: .75rem; color: var(--txt); white-space: nowrap; }
  .stick .btn { margin-left: auto; flex: 0 0 auto; padding: 0 1rem; letter-spacing: .1em; font-size: .75rem; min-height: 48px; }
}

@media (max-width: 720px) {
  .bens { grid-template-columns: 1fr; gap: 0; }
  .ben { display: grid; grid-template-columns: 38px 1fr; column-gap: 1.1rem; padding: 1.4rem 0; }
  .ben__ico { grid-row: 1 / span 2; margin: .1rem 0 0; }
  .steps__list { grid-template-columns: 1fr; gap: 2.6rem; padding-left: 0; }
  .steps__list::before { left: 1.65rem; right: auto; top: 2rem; bottom: 2rem; width: 1px; height: auto; transform: scaleY(0); transform-origin: 50% 0;
    background: linear-gradient(180deg, transparent, var(--g-mid) 10%, var(--g-champ) 50%, var(--g-mid) 90%, transparent); }
  .steps__list.is-in::before { transform: none; }
  .step { display: grid; grid-template-columns: 3.3rem 1fr; column-gap: 1.3rem; }
  .step__no { grid-row: 1 / span 2; font-size: 2.6rem; margin: 0; padding: .3rem 0; text-align: center; width: 100%; }
  .step__ttl { margin-top: .5rem; }
  .form__row, .studio-pick { grid-template-columns: 1fr; }
  .studio-opt__box { min-height: 84px; }
  .terms__list > div { grid-template-columns: 1fr; gap: .3rem; }
  .acc__a { padding-right: 0; }
  .place__act { grid-template-columns: 1fr; }
  .ftr__top { flex-direction: column; }
}

@media (min-width: 600px) and (max-width: 999px) {
  .stick__btn .t-long { display: inline; }
  .stick__btn .t-short { display: none; }
}
@media (max-width: 599px) {
  :root { --hdr-top: 84px; --logo-w: 128px; }
  .hdr__cta .t-long { display: none; }
  .hdr__cta .t-short { display: inline; }
  .hdr__cta .btn__arw { display: none; }
  .hdr__cta { --h: 44px; min-width: 44px; padding: 0 .95rem; letter-spacing: .1em; }
  .hdr__in { column-gap: .5rem; }
}
@media (max-width: 520px) {
  .btn--lg, .btn--xl { padding: 0 1.25rem; letter-spacing: .11em; font-size: .9rem; }
  .btn--cta { --h: 70px; padding: .8rem 1.1rem .8rem 1.3rem; gap: .8rem; }
  .btn__txt small { font-size: .78rem; }
  .btn__txt b { font-size: .95rem; letter-spacing: .09em; }
}

@media (max-width: 400px) {
  :root { --logo-w: 120px; }
  .burger__label { margin-right: .5rem; letter-spacing: .14em; font-size: .75rem; }
  .hdr .wrap { padding-inline: 1rem; }
  .hdr__cta { padding: 0 .8rem; letter-spacing: .08em; }
}
@media (max-width: 420px) {
  .stick__btn .btn__arw { display: none; }
}
@media (max-width: 359px) {
  :root { --logo-w: 112px; }
  .burger__label { display: none; }
  .hdr .wrap { padding-inline: .75rem; }
  .hdr__cta { padding: 0 .7rem; letter-spacing: .07em; }
  .btn--cta { padding: .75rem .9rem .75rem 1rem; gap: .6rem; }
  .btn__txt small { font-size: .75rem; letter-spacing: 0; }
  .btn__txt b { font-size: .86rem; letter-spacing: .05em; }
  .menu__cta .t-long { display: none; }
  .menu__cta .t-short { display: inline; }
  .stick__txt small { display: none; }
}

@media (min-width: 1000px) and (max-height: 760px) {
  .hero__in { min-height: 0; }
  .kv { width: min(100%, 30rem); }
}

/* ── BEWEGUNG REDUZIEREN ──────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .3s !important; transition-delay: 0s !important; }
  .card3d, .card3d__shadow, .kv__euro { animation: none !important; }
  .js .rv, .js .hero__copy > *, .js .hero__stage { transform: none !important; }
  .js .mr .mr__i { transform: none !important; }
  .js .kv__outline path, .js .ben__ico * { stroke-dashoffset: 0 !important; }
  .hero__dust { display: none; }
  [data-px] { transform: none !important; }
  .js .goal { clip-path: none !important; opacity: 0; transition: opacity .6s !important; }
  .js .goal.is-in { opacity: 1; }
  .steps__list::before { transform: none !important; }
}
