/* ============================================================================
   LOTUS ELETRE X – LANDINGPAGE | STYLES
   Mobile-first. Schwarz dominant, Gelb (#fdf100) sparsam als Akzent.
   Struktur: 1) Fonts 2) Tokens 3) Base 4) Typo 5) Buttons 6) Layout
             7) Header 8) Hero 9..N) Sektionen  Z) Footer & Responsive
   ========================================================================== */

/* ---------------------------------------------------------------- 1 · FONTS */
/* Overpass – eine Familie für alles (400–900), self-hosted woff2 */
@font-face{font-family:"Overpass";src:url("../assets/fonts/overpass-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Overpass";src:url("../assets/fonts/overpass-500.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Overpass";src:url("../assets/fonts/overpass-600.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Overpass";src:url("../assets/fonts/overpass-700.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"Overpass";src:url("../assets/fonts/overpass-800.woff2") format("woff2");font-weight:800;font-style:normal;font-display:swap}
@font-face{font-family:"Overpass";src:url("../assets/fonts/overpass-900.woff2") format("woff2");font-weight:900;font-style:normal;font-display:swap}

/* --------------------------------------------------------------- 2 · TOKENS */
:root{
  /* Marke */
  --yellow:#fdf100;
  --yellow-soft:#fff44d;
  --black:#000000;

  /* Flächen (dunkel) */
  --bg:#000000;
  --bg-2:#070707;
  --surface:#0e0e0e;
  --surface-2:#151515;
  --line:rgba(255,255,255,.10);
  --line-strong:rgba(255,255,255,.18);

  /* Text */
  --white:#ffffff;
  --text:#ececec;
  --muted:#9a9a9a;
  --muted-2:#6f6f6f;

  /* Auf Gelb */
  --on-yellow:#0a0a0a;
  --on-yellow-muted:rgba(0,0,0,.62);

  /* Fonts – durchgehend Overpass; Gewicht macht die Hierarchie */
  --font-impact:"Overpass",system-ui,-apple-system,"Segoe UI",sans-serif; /* Hype-Headlines & Kennzahlen (900) */
  --font-display:"Overpass",system-ui,-apple-system,"Segoe UI",sans-serif; /* UI-Headings (700/800) */
  --font-body:"Overpass",system-ui,-apple-system,"Segoe UI",sans-serif;   /* Text (400/500) */

  /* Fluid type */
  --fs-eyebrow:.74rem;
  --fs-h1:clamp(2.9rem,11vw,6.5rem);
  --fs-h2:clamp(2.1rem,6.2vw,3.7rem);
  --fs-h3:clamp(1.3rem,4vw,1.9rem);
  --fs-lead:clamp(1.05rem,2.6vw,1.3rem);
  --fs-body:clamp(1rem,2.4vw,1.1rem);
  --fs-sm:.9rem;

  /* Raum */
  --container:1240px;
  --narrow:760px;
  --gutter:clamp(1.25rem,5vw,2.5rem);
  --section-y:clamp(3.4rem,8vw,6rem);
  --radius:22px;
  --radius-lg:28px;
  --radius-sm:14px;

  /* Effekte */
  --shadow:0 24px 60px -24px rgba(0,0,0,.7);
  --shadow-soft:0 18px 50px -28px rgba(0,0,0,.55);
  --glow:0 0 0 1px rgba(253,241,0,.0),0 14px 40px -12px rgba(253,241,0,.45);
  --ease:cubic-bezier(.22,.61,.36,1);
  --reveal-y:34px;
}

/* ----------------------------------------------------------------- 3 · BASE */
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none !important} /* sonst überschreibt display:grid/flex das hidden-Attribut */
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:80px}
body{
  margin:0;background:var(--bg);color:var(--text);
  font-family:var(--font-body);font-size:var(--fs-body);line-height:1.65;
  font-weight:400;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{max-width:100%;display:block;height:auto}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer}
::selection{background:var(--yellow);color:#000}
:focus-visible{outline:2px solid var(--yellow);outline-offset:3px;border-radius:4px}

/* --------------------------------------------------------------- 4 · TYPO */
h1,h2,h3{font-family:var(--font-display);font-weight:800;line-height:1.04;letter-spacing:-.02em;color:var(--white);margin:0}
/* Impact-Headlines & Kennzahlen – Overpass im schwersten Schnitt */
.hero__title,.section__title,.final__title,.stat__num,.lcard__price .amount{
  font-family:var(--font-impact);font-weight:900;letter-spacing:-.015em;line-height:1;text-transform:uppercase;
}
.eyebrow{
  font-family:var(--font-display);font-weight:600;text-transform:uppercase;
  letter-spacing:.26em;font-size:var(--fs-eyebrow);color:var(--yellow);
  margin:0 0 1.3rem;display:inline-block;
}
.section__title{font-size:var(--fs-h2)}
.section__lead{font-size:var(--fs-lead);color:var(--muted);max-width:46ch;margin:1.4rem auto 0;line-height:1.65}
.center{text-align:center}
.center .section__lead{margin-left:auto;margin-right:auto}
.rich p{margin:0 0 1.2rem;color:var(--text);font-size:var(--fs-lead);line-height:1.75}
.rich p:last-child{margin-bottom:0}
.footnote{font-size:var(--fs-sm);color:var(--muted-2);margin-top:2rem}
/* Fußnoten-Hochzahlen (¹ Preis/Leasing · ² Fahrzeug-/WLTP-Werte) – dezent */
sup.fn{font-size:.42em;font-weight:700;vertical-align:super;line-height:0;opacity:.65;margin-left:.08em}
.lcard sup.fn{color:#000;opacity:.55}

/* Gelbe Akzentlinie unter Section-Headlines (Strukturgeber wie alte LP) */
.section__head{display:flex;flex-direction:column;align-items:center}
.section__head .section__title{position:relative;padding-bottom:1.1rem}
.section__head .section__title::after{
  content:"";position:absolute;left:50%;bottom:0;transform:translateX(-50%);
  width:64px;height:3px;background:var(--yellow);border-radius:2px;
}
.invert .section__head .section__title::after{background:#000}
/* Testimonials: gelben Strich unter der Headline entfernen (Kundenwunsch) */
.section--testimonials .section__head .section__title::after{display:none}

/* CTA-Block mit echtem Abstand unter großen Sektionen */
.section__cta{margin-top:clamp(2.75rem,6vw,4rem);display:flex;justify-content:center}

/* Trust-Row (Social Proof an Entscheidungspunkten) */
.trust-row{display:inline-flex;align-items:center;gap:.6rem;margin-top:1.4rem;font-size:.92rem;color:var(--muted);flex-wrap:wrap;justify-content:center}
.trust-row .stars{color:var(--yellow);letter-spacing:2px;font-size:1.05rem}
.trust-row b{color:var(--white);font-family:var(--font-display)}
.trust-row--dark{color:var(--on-yellow-muted)}
.trust-row--dark .stars{color:#000}
.trust-row--dark b{color:#000}
/* Subline unter Section-Headline (z. B. Leasing-Angebot) */
.section__sub{font-size:var(--fs-lead);color:var(--muted);max-width:48ch;margin:1.1rem auto 0;line-height:1.5}
.section__sub--dark{color:#000;font-weight:700}

/* -------------------------------------------------------------- 5 · BUTTONS */
.btn{
  --b:var(--yellow);
  display:inline-flex;align-items:center;justify-content:center;flex-direction:column;
  gap:.1rem;min-height:52px;padding:1rem 2.1rem;border:none;border-radius:999px;
  font-family:var(--font-display);font-weight:700;font-size:1rem;line-height:1.1;
  background:var(--b);color:#000;text-align:center;
  transition:transform .3s var(--ease),box-shadow .3s var(--ease),background .25s;
  will-change:transform;
}
.btn small{font-weight:400;font-size:.72rem;opacity:.66;font-family:var(--font-body)}
.btn--yellow{background:var(--yellow);color:#000;box-shadow:0 10px 30px -10px rgba(253,241,0,.5)}
.btn--yellow:hover{transform:translateY(-3px);box-shadow:0 18px 44px -12px rgba(253,241,0,.65);background:var(--yellow-soft)}
.btn--lg{min-height:60px;padding:1.2rem 2.6rem;font-size:1.06rem}
.btn--sm{min-height:42px;padding:.6rem 1.2rem;font-size:.85rem}
.btn--block{width:100%}
.btn--ghost{background:transparent;color:var(--white);border:1px solid var(--line-strong);box-shadow:none}
.btn--ghost:hover{border-color:var(--white);transform:translateY(-2px)}
.btn--dark{background:#0c0c0c;color:#fff}
.btn--dark:hover{background:#1a1a1a;transform:translateY(-3px)}
.btn:active{transform:translateY(-1px) scale(.985)}

/* Primärer Aktions-CTA: fast volle Breite + dezenter Dauer-Shine + sanfter Glow */
.btn--cta{position:relative;overflow:hidden;width:min(100%,460px);margin-inline:auto;animation:ctaGlow 2.8s var(--ease) infinite}
.btn--cta::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(100deg,transparent 32%,rgba(255,255,255,.55) 50%,transparent 68%);
  transform:translateX(-130%);animation:ctaSheen 3.6s ease-in-out infinite}
.btn--cta > *{position:relative;z-index:2}
@keyframes ctaSheen{0%{transform:translateX(-130%)}58%,100%{transform:translateX(130%)}}
@keyframes ctaGlow{0%,100%{box-shadow:0 10px 28px -12px rgba(253,241,0,.55)}50%{box-shadow:0 16px 44px -8px rgba(253,241,0,.92)}}

/* --------------------------------------------------------------- 6 · LAYOUT */
.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter)}
.container--narrow{max-width:var(--narrow)}
.section{padding-block:var(--section-y);position:relative}
.section--intro{padding-top:clamp(3rem,7vw,5rem)}
/* hauchzarte Trennlinien zwischen dunklen Sektionen (Strukturgeber) */
.section--concept,.section--stats,.section--variants,.section--features,
.section--process,.section--testimonials,.section--team,.section--final{border-top:1px solid var(--line)}
.section__head{margin-bottom:clamp(2rem,5vw,3.25rem)}

/* Scroll-Fortschritt */
.scroll-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:60;background:transparent}
.scroll-progress span{display:block;height:100%;width:0;background:var(--yellow);box-shadow:0 0 12px rgba(253,241,0,.6)}

/* ------------------------------------------------------- REVEAL-ANIMATIONEN */
[data-reveal]{opacity:0;transform:translateY(var(--reveal-y));transition:opacity .9s var(--ease),transform .9s var(--ease)}
[data-reveal].is-in{opacity:1;transform:none}
[data-reveal-delay="1"]{transition-delay:.08s}
[data-reveal-delay="2"]{transition-delay:.16s}
[data-reveal-delay="3"]{transition-delay:.24s}

/* --------------------------------------------------------------- 7 · HEADER */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:50;
  display:flex;align-items:center;gap:1rem;
  padding:1rem var(--gutter);
  transition:background .4s var(--ease),padding .4s var(--ease),backdrop-filter .4s;
}
.site-header.is-scrolled{background:rgba(0,0,0,.72);backdrop-filter:blur(14px);padding-block:.7rem;border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;margin-right:auto}
.brand img{width:clamp(140px,32vw,200px);height:auto;opacity:.96}
.site-nav{display:none;gap:2rem;align-items:center}
.site-nav a{font-size:.9rem;color:var(--muted);font-weight:500;transition:color .25s;position:relative}
.site-nav a:hover{color:var(--white)}
.site-nav a::after{content:"";position:absolute;left:0;bottom:-6px;width:0;height:2px;background:var(--yellow);transition:width .3s var(--ease)}
.site-nav a:hover::after{width:100%}
.header-cta{margin-left:.4rem}

/* ----------------------------------------------------------------- 8 · HERO */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;justify-content:center;overflow:hidden;isolation:isolate;text-align:center}
.hero__media{position:absolute;inset:0;z-index:-2}
.hero__media picture,.hero__img{width:100%;height:100%}
.hero__img{
  object-fit:cover;object-position:64% 50%;
  /* leichtes Overscale für Parallax */
  height:118%;transform:translateY(0);
  background:#111 url("../assets/img/hero-exterior-1280.webp") center/cover no-repeat;
}
/* Lesbarkeit: flächiger dunkler Overlay + weicher Radial hinter dem Text + Tiefe oben/unten */
/* WICHTIG: z-index:1 -> Layer liegt ÜBER dem Bild (innerhalb von .hero__media, das selbst bei z-index:-2 hinter dem Text bleibt) */
.hero__scrim{position:absolute;inset:0;z-index:1;background:
  linear-gradient(rgba(0,0,0,.52),rgba(0,0,0,.52)),
  radial-gradient(85% 72% at 50% 48%,rgba(0,0,0,.5),rgba(0,0,0,0) 82%),
  linear-gradient(180deg,rgba(0,0,0,.4) 0%,rgba(0,0,0,.05) 28%,rgba(0,0,0,.45) 72%,rgba(0,0,0,.8) 100%)}
.hero__content{position:relative;width:100%;padding-top:clamp(6.5rem,14vh,9rem);padding-bottom:clamp(4.5rem,10vh,7rem)}
.hero__inner{max-width:900px;margin-inline:auto;display:flex;flex-direction:column;align-items:center;text-align:center}
.hero .eyebrow{color:var(--yellow)}
.hero__title{font-size:clamp(2.05rem,7vw,4.7rem);display:flex;flex-direction:column;gap:.04em;text-shadow:0 2px 30px rgba(0,0,0,.6)}
.hero__line{display:block}
.hero__title .accent{color:var(--yellow)}
/* Headline-Varianten: große ab 520px, kurze sichere Variante darunter */
.hero__title-full{display:none;flex-direction:column;gap:.05em}
.hero__title-mobile{display:flex;flex-direction:column;gap:.05em}
.hero__kicker{margin-top:1.1rem;font-weight:700;font-size:clamp(.92rem,3.2vw,1.18rem);letter-spacing:.05em;color:#f2f2f2;text-shadow:0 1px 12px rgba(0,0,0,.65)}
.hero__sub{font-size:var(--fs-lead);color:#e6e6e6;max-width:46ch;margin:1.5rem auto 2.3rem;line-height:1.6;text-shadow:0 1px 18px rgba(0,0,0,.6)}
.hero__actions{display:flex;flex-direction:column;align-items:center;gap:1.3rem;width:100%}
.hero__rating{display:flex;align-items:center;justify-content:center;gap:.55rem;font-size:.92rem;color:#e8e8e8;text-shadow:0 1px 10px rgba(0,0,0,.8)}
.hero__rating .stars{color:var(--yellow);letter-spacing:2px}
.hero__rating b{color:#fff;font-family:var(--font-display)}
.hero__scroll{position:absolute;left:50%;bottom:1.6rem;transform:translateX(-50%);width:26px;height:42px;border:1.5px solid rgba(255,255,255,.4);border-radius:14px;z-index:2}
.hero__scroll span{position:absolute;left:50%;top:8px;width:3px;height:8px;background:var(--yellow);border-radius:2px;transform:translateX(-50%);animation:scrolldot 1.8s var(--ease) infinite}
@keyframes scrolldot{0%{opacity:0;transform:translate(-50%,0)}40%{opacity:1}100%{opacity:0;transform:translate(-50%,14px)}}

/* ------------------------------------------------------------- 9 · INTRO */
.section--intro .section__title{font-size:clamp(2rem,6vw,3.4rem);letter-spacing:.01em}
.section--intro .rich{margin-top:1.8rem}

/* --------------------------------------------------- 10 · KONZEPT (interaktiv) */
.section--concept{background:var(--bg-2)}
.concept{max-width:980px;margin-inline:auto}
.concept__tabs{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-bottom:2rem}
.mode-tab{
  background:var(--surface);border:1px solid var(--line);color:var(--muted);
  padding:.7rem 1.1rem;border-radius:999px;font-weight:600;font-size:.92rem;
  display:flex;flex-direction:column;align-items:center;gap:.1rem;line-height:1.2;
  transition:all .3s var(--ease);
}
.mode-tab small{font-weight:400;font-size:.72rem;color:var(--muted-2)}
.mode-tab:hover{border-color:var(--line-strong);color:var(--white)}
.mode-tab.is-active{background:var(--yellow);color:#000;border-color:var(--yellow);box-shadow:0 10px 30px -12px rgba(253,241,0,.5)}
.mode-tab.is-active small{color:rgba(0,0,0,.6)}

.concept__stage{
  display:grid;gap:1.5rem;align-items:center;
  background:linear-gradient(180deg,var(--surface),#0a0a0a);
  border:1px solid var(--line);border-radius:var(--radius-lg);padding:clamp(1.5rem,5vw,3rem);
  box-shadow:var(--shadow-soft);
}
.powertrain{display:flex;justify-content:center;padding:1.2rem;border:1px solid var(--line);border-radius:var(--radius);
  background:radial-gradient(120% 100% at 50% 28%,rgba(253,241,0,.045),transparent 70%),#0b0b0b}
.powertrain__svg{width:100%;max-width:440px}
.pt-track{fill:none;stroke:rgba(255,255,255,.14);stroke-width:2;stroke-linecap:round}
.pt-wheel{fill:#0a0a0a;stroke:rgba(255,255,255,.22);stroke-width:2}
.pt-batt{fill:rgba(253,241,0,.08);stroke:var(--yellow);stroke-width:1.6}
.pt-motor{fill:#0d0d0d;stroke:rgba(255,255,255,.28);stroke-width:2;transition:all .4s var(--ease)}
.pt-ice{fill:#0d0d0d;stroke:rgba(255,255,255,.28);stroke-width:1.6;transition:all .4s var(--ease)}
.pt-val{fill:#fff;font:800 12px/1 var(--font-impact);letter-spacing:.02em}
.pt-batt-val{fill:var(--yellow)}
.pt-cap{fill:var(--muted);font:500 9.5px/1 var(--font-display);letter-spacing:.05em;text-transform:uppercase}
.pt-flow{fill:none;stroke:var(--yellow);stroke-width:3;stroke-linecap:round;stroke-dasharray:5 9;opacity:0;transition:opacity .4s;filter:drop-shadow(0 0 4px rgba(253,241,0,.6))}
/* aktive Flüsse je Modus */
.powertrain[data-mode="elektrisch"] .pt-flow--front,
.powertrain[data-mode="elektrisch"] .pt-flow--rear,
.powertrain[data-mode="seriell"] .pt-flow--front,
.powertrain[data-mode="seriell"] .pt-flow--rear,
.powertrain[data-mode="seriell"] .pt-flow--ice,
.powertrain[data-mode="parallel"] .pt-flow--front,
.powertrain[data-mode="parallel"] .pt-flow--rear,
.powertrain[data-mode="parallel"] .pt-flow--ice{opacity:1;animation:flow 1s linear infinite}
.powertrain[data-mode="elektrisch"] .pt-motor,
.powertrain[data-mode="parallel"] .pt-motor{stroke:var(--yellow);fill:rgba(253,241,0,.1)}
.powertrain[data-mode="seriell"] .pt-motor--rear{stroke:var(--yellow);fill:rgba(253,241,0,.1)}
.powertrain[data-mode="seriell"] .pt-ice,
.powertrain[data-mode="parallel"] .pt-ice{stroke:var(--yellow);fill:rgba(253,241,0,.1)}
@keyframes flow{to{stroke-dashoffset:-28}}

.concept__panel{text-align:center}
.concept__metric{display:inline-block;font-family:var(--font-display);font-weight:700;color:var(--yellow);font-size:.85rem;letter-spacing:.04em;border:1px solid rgba(253,241,0,.35);border-radius:999px;padding:.35rem .9rem;margin-bottom:1rem}
.concept__name{font-size:var(--fs-h3);margin-bottom:.6rem}
.concept__body{color:var(--muted);max-width:50ch;margin-inline:auto;line-height:1.65}
.concept__note{text-align:center;color:var(--muted-2);font-size:var(--fs-sm);margin-top:1.8rem}
.concept__closer{text-align:center;font-family:var(--font-display);font-weight:600;font-size:clamp(1.2rem,3.5vw,1.7rem);color:var(--white);margin-top:1.2rem;letter-spacing:-.01em}

/* ------------------------------------------------------- 11 · KENNZAHLEN */
.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(.7rem,2.2vw,1.1rem)}
.stat{
  display:flex;flex-direction:column;justify-content:center;text-align:center;
  background:linear-gradient(180deg,var(--surface),#0a0a0a);
  border:1px solid rgba(253,241,0,.14);border-radius:var(--radius);
  padding:clamp(1.7rem,5.5vw,2.5rem) 1rem;min-height:clamp(8.5rem,30vw,11rem);
  transition:transform .35s var(--ease),border-color .35s,box-shadow .35s;
}
.stat:hover{transform:translateY(-3px);border-color:rgba(253,241,0,.5);box-shadow:0 18px 40px -26px rgba(253,241,0,.4)}
.stat__num{font-family:var(--font-impact);font-weight:900;color:var(--white);font-size:clamp(2.3rem,9vw,3.6rem);line-height:.95;letter-spacing:-.02em}
.stat__num .u{color:var(--yellow)}
.stat__label{display:block;margin-top:.85rem;color:var(--muted);font-size:.85rem;font-weight:500;letter-spacing:.02em;line-height:1.4}

/* ------------------------------------------------- 12 · MOTORISIERUNGEN */
.variants{display:grid;gap:1.4rem}
.vcard{
  position:relative;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius-lg);padding:clamp(1.9rem,5vw,2.75rem);overflow:hidden;
  transition:transform .4s var(--ease),border-color .4s;
}
.vcard:hover{transform:translateY(-4px);border-color:var(--line-strong)}
.vcard--featured{border-color:rgba(253,241,0,.4);background:linear-gradient(180deg,rgba(253,241,0,.05),var(--surface))}
.vcard__badge{position:absolute;top:1.2rem;right:1.2rem;background:var(--yellow);color:#000;font-family:var(--font-display);font-weight:700;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;padding:.35rem .8rem;border-radius:999px}
.vcard__name{font-size:clamp(1.5rem,5vw,2rem)}
.vcard__tag{color:var(--muted);margin:.3rem 0 1.2rem;font-size:.98rem}
.vcard__power{font-family:var(--font-display);font-weight:800;font-size:clamp(1.6rem,6vw,2.2rem);color:var(--yellow);letter-spacing:-.02em;margin-bottom:1.3rem}
.vcard__specs{list-style:none;margin:0 0 1.6rem;padding:0;border-top:1px solid var(--line)}
.vcard__specs li{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.85rem 0;border-bottom:1px solid var(--line);font-size:.95rem}
.vcard__specs .k{color:var(--muted)}
.vcard__specs .v{color:var(--white);font-weight:600;font-family:var(--font-display);text-align:right}
.vcard__price{display:flex;align-items:baseline;flex-wrap:wrap;gap:.2rem .5rem;margin-bottom:1.3rem}
.vcard__price .from{color:var(--muted);font-size:.85rem}
.vcard__price .amount{font-family:var(--font-display);font-weight:800;font-size:clamp(1.8rem,6vw,2.4rem);color:var(--white);white-space:nowrap}
.vcard__price .note{color:var(--muted);font-size:.85rem}
.variants__shared{margin-top:2rem;background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(1.4rem,4vw,2rem)}
.variants__shared h3{font-size:1rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.12em;margin-bottom:1.2rem;font-family:var(--font-display)}
.shared-list{list-style:none;margin:0;padding:0;display:grid;gap:.7rem;grid-template-columns:1fr}
.shared-list li{display:flex;align-items:flex-start;gap:.6rem;color:var(--text);font-size:.95rem}
.shared-list svg{flex:0 0 auto;width:18px;height:18px;color:var(--yellow);margin-top:2px}

/* --------------------------------------------------------- 13 · FEATURES */
.feature-grid{display:grid;grid-template-columns:1fr;gap:1.1rem}
.feature{
  position:relative;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius);overflow:hidden;min-height:200px;display:flex;flex-direction:column;
  transition:transform .4s var(--ease),border-color .4s;
}
.feature:hover{transform:translateY(-4px);border-color:var(--line-strong)}
.feature--media{padding:0}
.feature__media{position:relative;aspect-ratio:16/10;overflow:hidden}
.feature__media img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.feature:hover .feature__media img{transform:scale(1.06)}
.feature__ph{position:relative;aspect-ratio:16/10;display:flex;align-items:center;justify-content:center;text-align:center;background:repeating-linear-gradient(135deg,#0c0c0c,#0c0c0c 12px,#101010 12px,#101010 24px);color:var(--muted-2);font-size:.8rem;padding:1rem;border-bottom:1px solid var(--line)}
.feature__ph span{max-width:24ch}
.feature__body{padding:1.3rem 1.4rem 1.5rem;display:flex;flex-direction:column;gap:.5rem}
.feature__icon{width:30px;height:30px;color:var(--yellow);margin-bottom:.2rem}
.feature__title{font-size:1.12rem;font-weight:700;color:var(--white);font-family:var(--font-display)}
.feature__text{color:var(--muted);font-size:.92rem;line-height:1.55}

/* ---------------------------------------------- INTERAKTIV: REVEAL-SLIDER */
.section--reveal{padding:0}
.reveal-slider{
  position:relative;width:100%;aspect-ratio:16/10;max-height:80vh;overflow:hidden;
  user-select:none;touch-action:pan-y;cursor:ew-resize;background:#000;
}
.reveal-slider__img{position:absolute;inset:0}
.reveal-slider__img img{width:100%;height:100%;object-fit:cover}
.reveal-slider__img--front{clip-path:inset(0 50% 0 0);will-change:clip-path}
.reveal-slider__tag{position:absolute;bottom:1.2rem;font-family:var(--font-display);font-weight:600;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;color:#fff;background:rgba(0,0,0,.5);backdrop-filter:blur(6px);padding:.45rem .9rem;border-radius:999px}
.reveal-slider__tag--left{left:1.2rem}
.reveal-slider__tag--right{right:1.2rem}
.reveal-slider__handle{
  position:absolute;top:0;bottom:0;left:50%;width:46px;transform:translateX(-50%);
  background:transparent;border:none;display:flex;align-items:center;justify-content:center;
}
.reveal-slider__handle::before{content:"";position:absolute;top:0;bottom:0;left:50%;width:2px;transform:translateX(-50%);background:var(--yellow);box-shadow:0 0 18px rgba(253,241,0,.7)}
.reveal-slider__handle span{position:relative;width:46px;height:46px;border-radius:50%;background:var(--yellow);box-shadow:0 8px 24px rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center}
.reveal-slider__handle span svg{width:26px;height:26px}

/* -------------------------------------------------- 14 · LEASING (Gelb) */
.invert{background:var(--yellow);color:var(--on-yellow)}
.invert .eyebrow{color:var(--on-yellow);opacity:.7}
.invert .section__title{color:var(--on-yellow)}
.lease-grid{display:grid;gap:1.4rem;grid-template-columns:1fr}
.lcard{position:relative;background:#fff;color:#0a0a0a;border-radius:var(--radius-lg);padding:clamp(1.9rem,5vw,2.7rem);box-shadow:0 30px 60px -30px rgba(0,0,0,.45)}
.lcard--featured{outline:3px solid #000;outline-offset:-3px}
.lcard__badge{position:absolute;top:1.4rem;right:1.4rem;background:#000;color:var(--yellow);font-family:var(--font-display);font-weight:700;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;padding:.35rem .8rem;border-radius:999px}
.lcard__name{font-family:var(--font-display);font-weight:700;font-size:1.35rem;color:#000;margin-bottom:.7rem}
.lcard__price{display:flex;align-items:baseline;flex-wrap:wrap;gap:.2rem .4rem}
.lcard__price .amount{font-family:var(--font-impact);font-weight:900;font-size:clamp(2.7rem,10vw,3.6rem);color:#000;letter-spacing:-.01em;white-space:nowrap}
.lcard__price .note{color:#444;font-weight:600}
.lcard__special{color:#444;font-size:.9rem;margin:.3rem 0 1.1rem}
.lcard__terms{display:flex;flex-wrap:wrap;gap:.5rem 1.2rem;padding:1rem 0;border-block:1px solid rgba(0,0,0,.12);margin-bottom:1.1rem;font-size:.86rem;color:#333}
.lcard__terms span{position:relative}
.lcard__desc{color:#555;font-size:.95rem;line-height:1.6;margin-bottom:1.5rem}
.lcard .btn--dark{width:100%}
.lcard sup{font-size:.55em;vertical-align:super}
.lease__disclaimer{color:var(--on-yellow-muted);font-size:.82rem;max-width:60ch;margin:2.2rem auto 0;line-height:1.55}

/* --------------------------------------------------------- 15 · PROZESS */
.process{list-style:none;counter-reset:step;margin:0 0 3rem;padding:0;display:grid;gap:1.2rem;grid-template-columns:1fr}
.pstep{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:2rem 1.6rem 1.6rem;text-align:center}
.pstep__icon{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 1rem;background:rgba(253,241,0,.08);border:1px solid rgba(253,241,0,.3)}
.pstep__icon svg{width:30px;height:30px;color:var(--yellow)}
.pstep__num{counter-increment:step;position:absolute;top:1rem;left:1.2rem;font-family:var(--font-display);font-weight:800;font-size:1rem;color:var(--muted-2)}
.pstep__num::before{content:"0" counter(step)}
.pstep__title{font-family:var(--font-display);font-weight:700;font-size:1.2rem;color:var(--white);margin-bottom:.6rem}
.pstep__text{color:var(--muted);font-size:.93rem;line-height:1.6}

/* ----------------------------------------------------- 16 · TESTIMONIALS */
.section--testimonials{background:var(--bg-2)}
.testi-rating{display:flex;align-items:center;justify-content:center;gap:.6rem;color:var(--muted);font-size:.95rem}
.testi-rating .stars{color:var(--yellow);letter-spacing:2px;font-size:1.1rem}
.testi-rating b{color:#fff;font-family:var(--font-display)}
.testi{display:flex;gap:1.2rem;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding-bottom:1rem;scrollbar-width:none}
.testi::-webkit-scrollbar{display:none}
.tcard{scroll-snap-align:center;flex:0 0 86%;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.8rem;display:flex;flex-direction:column;gap:.85rem}
.tcard__stars{color:var(--yellow);letter-spacing:2px}
/* Text standardmäßig auf ~4 Zeilen gekürzt + weicher Fade; öffnet smooth */
.tcard__text{position:relative;color:var(--text);font-size:.98rem;line-height:1.65;overflow:hidden;max-height:calc(1.65em * 4);transition:max-height .45s var(--ease)}
.tcard__text::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2.6em;pointer-events:none;
  background:linear-gradient(rgba(14,14,14,0),var(--surface));transition:opacity .3s}
.tcard.is-expanded .tcard__text::after{opacity:0}
.tcard--short .tcard__text{max-height:none}
.tcard--short .tcard__text::after{display:none}
.tcard__more{align-self:flex-start;background:none;border:none;padding:.15rem 0;color:var(--yellow);
  font-family:var(--font-display);font-weight:700;font-size:.9rem;cursor:pointer;text-decoration:underline;text-underline-offset:3px;transition:opacity .2s}
.tcard__more:hover{opacity:.78}
.tcard__author{margin-top:auto;display:flex;align-items:center;gap:.7rem;border-top:1px solid var(--line);padding-top:1rem}
.tcard__avatar{width:40px;height:40px;border-radius:50%;background:var(--surface-2);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:700;color:var(--yellow);font-size:.9rem;flex:0 0 auto}
.tcard__name{font-weight:600;color:var(--white);font-size:.92rem}
.tcard__src{color:var(--muted-2);font-size:.8rem}
.testi__dots{display:flex;gap:.5rem;justify-content:center;margin-top:1.2rem}
.testi__dots button{width:8px;height:8px;border-radius:50%;border:none;background:var(--line-strong);transition:all .3s;padding:0}
.testi__dots button.is-active{background:var(--yellow);width:22px;border-radius:5px}

/* ------------------------------------------------------------ 17 · TEAM */
.team{display:grid;gap:1.2rem;grid-template-columns:1fr;max-width:380px;margin-inline:auto}
.tmember{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.tmember__photo{aspect-ratio:4/5;overflow:hidden}
.tmember__photo img{width:100%;height:100%;object-fit:cover;object-position:50% 12%}
.tmember__ph{aspect-ratio:4/5;display:flex;align-items:center;justify-content:center;text-align:center;background:repeating-linear-gradient(135deg,#0c0c0c,#0c0c0c 12px,#101010 12px,#101010 24px);color:var(--muted-2);font-size:.78rem;padding:1rem}
.tmember__body{padding:1.1rem 1.2rem 1.4rem}
.tmember__name{font-family:var(--font-display);font-weight:700;color:var(--white);font-size:1.05rem}
.tmember__role{color:var(--yellow);font-size:.84rem;margin-top:.2rem}

/* ------------------------------------------------------------- 18 · FAQ */
.faq{display:grid;gap:.85rem}
.faq__item{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden;transition:border-color .3s}
.faq__item.is-open{border-color:var(--line-strong)}
/* dunkle Karten auf gelbem FAQ-Block abheben */
.section--faq.invert .faq__item{box-shadow:0 22px 45px -30px rgba(0,0,0,.6)}
.faq__q{width:100%;background:none;border:none;color:var(--white);text-align:left;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.3rem 1.4rem;font-family:var(--font-display);font-weight:600;font-size:1.02rem;line-height:1.35}
.faq__icon{flex:0 0 auto;width:22px;height:22px;position:relative}
.faq__icon::before,.faq__icon::after{content:"";position:absolute;background:var(--yellow);transition:transform .3s var(--ease)}
.faq__icon::before{top:10px;left:0;width:22px;height:2px}
.faq__icon::after{top:0;left:10px;width:2px;height:22px}
.faq__item.is-open .faq__icon::after{transform:scaleY(0)}
.faq__a{max-height:0;overflow:hidden;transition:max-height .4s var(--ease)}
.faq__a-inner{padding:0 1.4rem 1.4rem;color:var(--muted);line-height:1.65;font-size:.96rem}

/* ----------------------------------------------------------- 19 · FORMULAR */
.section--form{background:radial-gradient(120% 80% at 50% 0%,#0c0c0c,#000 70%)}
.form-wrap{max-width:720px;margin-inline:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:clamp(1.6rem,5vw,3rem);box-shadow:var(--shadow)}
.form__head{margin-bottom:2rem}
.form__head .eyebrow{margin-bottom:.8rem}
.form__sub{color:var(--muted);margin-top:.8rem;line-height:1.6}
.form__person{display:flex;align-items:center;gap:.8rem;margin-top:1.4rem;padding-top:1.4rem;border-top:1px solid var(--line)}
.form__person .avatar{width:46px;height:46px;border-radius:50%;flex:0 0 auto;background:var(--surface-2);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:700;color:var(--yellow);overflow:hidden}
.form__person .avatar img{width:100%;height:100%;object-fit:cover}
.form__person .pname{font-weight:600;color:var(--white);font-size:.92rem}
.form__person .prole{color:var(--muted);font-size:.82rem}

.lead-form{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem}
.field{display:flex;flex-direction:column;gap:.45rem}
.field--full{grid-column:1/-1}
.field label{font-size:.85rem;color:var(--text);font-weight:500}
.field input,.field select{
  background:#1b1b1b;border:1px solid #2a2a2a;border-radius:12px;color:#fff;
  padding:.9rem 1rem;font-family:inherit;font-size:1rem;width:100%;
  transition:border-color .25s,box-shadow .25s;
}
.field input::placeholder{color:#5f5f5f}
.field input:focus,.field select:focus{outline:none;border-color:var(--yellow);box-shadow:0 0 0 3px rgba(253,241,0,.15)}
.field input:user-invalid,.field.has-error input{border-color:#ff5b5b}
.select-wrap{position:relative}
.select-wrap::after{content:"";position:absolute;right:1rem;top:50%;width:8px;height:8px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:translateY(-65%) rotate(45deg);pointer-events:none}
.field select{appearance:none;cursor:pointer;padding-right:2.4rem}
.field__error{color:#ff6b6b;font-size:.78rem;min-height:0;opacity:0;transition:opacity .2s}
.field.has-error .field__error{opacity:1}

.field--check{flex-direction:row;align-items:flex-start;gap:0}
.checkbox{display:flex;align-items:flex-start;gap:.7rem;cursor:pointer;font-size:.88rem;color:var(--muted);line-height:1.5}
.checkbox input{position:absolute;opacity:0;width:0;height:0}
.checkbox__box{flex:0 0 auto;width:22px;height:22px;border:1px solid #2a2a2a;border-radius:6px;background:#1b1b1b;position:relative;transition:all .2s;margin-top:1px}
.checkbox input:checked + .checkbox__box{background:var(--yellow);border-color:var(--yellow)}
.checkbox__box::after{content:"";position:absolute;left:7px;top:3px;width:6px;height:11px;border:solid #000;border-width:0 2px 2px 0;transform:rotate(45deg) scale(0);transition:transform .2s}
.checkbox input:checked + .checkbox__box::after{transform:rotate(45deg) scale(1)}
.checkbox a{color:var(--yellow);text-decoration:underline}
.checkbox input:focus-visible + .checkbox__box{outline:2px solid var(--yellow);outline-offset:2px}

/* Honeypot versteckt */
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

.btn.is-loading{pointer-events:none;opacity:.7}
.btn.is-loading .js-form-submit{visibility:hidden}
.btn.is-loading::after{content:"";position:absolute;width:20px;height:20px;border:2px solid rgba(0,0,0,.3);border-top-color:#000;border-radius:50%;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* Success */
.form-success{text-align:center;padding:2rem 1rem}
.form-success__check{width:84px;height:84px;margin:0 auto 1.4rem}
.form-success__check svg{width:100%;height:100%;fill:none;stroke:var(--yellow);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.form-success__check circle{stroke-dasharray:151;stroke-dashoffset:151;animation:draw .6s var(--ease) forwards}
.form-success__check path{stroke-dasharray:40;stroke-dashoffset:40;animation:draw .4s var(--ease) .4s forwards}
@keyframes draw{to{stroke-dashoffset:0}}
.form-success h3{font-size:1.5rem;margin-bottom:.6rem}
.form-success p{color:var(--muted);max-width:36ch;margin-inline:auto}

/* ------------------------------------------------------- 20 · FINAL CTA */
.section--final{background:linear-gradient(180deg,#000,#0a0a0a);position:relative;overflow:hidden}
.section--final::before{content:"";position:absolute;left:50%;top:-30%;width:120%;height:80%;transform:translateX(-50%);background:radial-gradient(closest-side,rgba(253,241,0,.12),transparent);pointer-events:none}
.final__title{font-size:clamp(2.2rem,8vw,4.5rem);line-height:1.02;margin-bottom:1.2rem}
.final__text{color:var(--muted);font-size:var(--fs-lead);max-width:48ch;margin:0 auto 2.2rem;line-height:1.6}

/* ----------------------------------------------------------- Z · FOOTER */
.site-footer{background:#050505;border-top:1px solid var(--line);padding-block:clamp(3rem,7vw,5rem) 2rem}
.footer__top{display:grid;gap:2.5rem;grid-template-columns:1fr}
.footer__brand img{width:200px;opacity:.9;margin-bottom:1.2rem}
.footer__contact{color:var(--muted);font-size:.9rem;line-height:1.7}
.footer__contact a{color:var(--muted);transition:color .2s}
.footer__contact a:hover{color:var(--yellow)}
.footer__social{display:flex;gap:.8rem;margin-top:1rem}
.footer__social a{width:40px;height:40px;border:1px solid var(--line);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--muted);transition:all .25s}
.footer__social a:hover{border-color:var(--yellow);color:var(--yellow)}
.footer__social svg{width:18px;height:18px}
.footer__cols{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem}
.footer__col h4{font-family:var(--font-display);font-size:.8rem;text-transform:uppercase;letter-spacing:.14em;color:var(--white);margin:0 0 1rem}
.footer__col ul{list-style:none;margin:0;padding:0;display:grid;gap:.7rem}
.footer__col a{color:var(--muted);font-size:.92rem;transition:color .2s}
.footer__col a:hover{color:var(--yellow)}
.footer__map{margin-top:2.5rem}
.footer__map h3{font-family:var(--font-display);font-size:.8rem;text-transform:uppercase;letter-spacing:.14em;color:var(--white);margin-bottom:1rem}
.footer__mapframe{border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);aspect-ratio:16/7;background:#0c0c0c}
.footer__mapframe iframe{width:100%;height:100%;border:0;filter:grayscale(.4) invert(.92) hue-rotate(180deg) contrast(.9)}
.footer__legal{margin-top:2.5rem;padding-top:2rem;border-top:1px solid var(--line);display:grid;gap:.8rem}
.footer__legal p{color:var(--muted-2);font-size:.76rem;line-height:1.5;margin:0}
.footer__copy{color:var(--muted-2);font-size:.8rem;margin-top:1.5rem}

/* ------------------------------------------------------- STICKY MOBILE CTA */
.sticky-cta{
  position:fixed;left:1rem;right:1rem;bottom:calc(1rem + env(safe-area-inset-bottom));z-index:45;
  display:flex;align-items:center;justify-content:center;min-height:54px;overflow:hidden;
  background:var(--yellow);color:#000;text-align:center;font-family:var(--font-display);
  font-weight:700;padding:1rem;border-radius:999px;box-shadow:0 12px 34px -8px rgba(253,241,0,.5);
  transform:translateY(220%);transition:transform .45s var(--ease);
}
.sticky-cta::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(100deg,transparent 32%,rgba(255,255,255,.5) 50%,transparent 68%);
  transform:translateX(-130%);animation:ctaSheen 3.6s ease-in-out infinite}
.sticky-cta span{position:relative;z-index:2}
.sticky-cta.is-visible{transform:translateY(0)}
.sticky-cta:active{transform:translateY(0) scale(.985)}

/* ----------------------------------------------------------- COOKIE-BANNER */
.cookie-banner{
  position:fixed;left:1rem;right:1rem;bottom:calc(1rem + env(safe-area-inset-bottom));z-index:70;
  max-width:580px;margin-inline:auto;
  background:#0e0e0e;border:1px solid var(--line-strong);border-radius:var(--radius);
  padding:1.1rem 1.2rem;display:flex;flex-direction:column;gap:.9rem;
  box-shadow:0 24px 60px -18px rgba(0,0,0,.8);
  transform:translateY(180%);transition:transform .45s var(--ease)}
.cookie-banner.is-visible{transform:translateY(0)}
.cookie-banner__text{font-size:.84rem;color:var(--muted);line-height:1.5;margin:0}
.cookie-banner__text a{color:var(--yellow);text-decoration:underline}
.cookie-banner__actions{display:flex;gap:.6rem;justify-content:flex-end}
/* solange der Cookie-Banner offen ist, den Sticky-CTA wegblenden (kein Überlappen) */
body.cookie-open .sticky-cta{transform:translateY(220%) !important}
@media(min-width:580px){
  .cookie-banner{flex-direction:row;align-items:center;gap:1.2rem}
  .cookie-banner__text{flex:1}
  .cookie-banner__actions{flex-shrink:0}
}

/* ============================================================ RESPONSIVE */
@media(min-width:560px){
  .stats-grid{grid-template-columns:repeat(3,1fr)}
  .shared-list{grid-template-columns:1fr 1fr}
  .feature-grid{grid-template-columns:repeat(2,1fr)}
}
@media(min-width:768px){
  .lead-form{gap:1.2rem 1.4rem}
  .tcard{flex-basis:48%}
  .lease-grid{grid-template-columns:1fr 1fr}
  .variants{grid-template-columns:1fr 1fr}
  .process{grid-template-columns:repeat(3,1fr)}
  .footer__top{grid-template-columns:1.2fr 1fr}
  .team{grid-template-columns:repeat(3,1fr);max-width:920px}
  /* große Hero-Headline ab Tablet; kleine Handys behalten die sichere Kurzvariante */
  .hero__title-full{display:flex}
  .hero__title-mobile{display:none}
}
@media(min-width:960px){
  .site-nav{display:flex}
  .sticky-cta{display:none}
  .concept__stage{grid-template-columns:1.1fr 1fr;gap:2.5rem;text-align:left}
  .concept__panel{text-align:left}
  .concept__body{margin-inline:0}
  .feature-grid{grid-template-columns:repeat(3,1fr)}
  .feature--wide{grid-column:span 2}
  .tcard{flex-basis:32%}
}
@media(min-width:1100px){
  .hero__inner{max-width:840px}
}

/* --------------------------------------------------- REDUCED MOTION */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important}
  [data-reveal]{opacity:1 !important;transform:none !important}
  .hero__img{height:100% !important;transform:none !important}
  .hero__scroll span{animation:none}
  .pt-flow{opacity:1 !important}
}
