/* ═══════════════════════════════════════════════
   StageAPP — Global Stylesheet
   Font: Geist · Palette: unchanged
   ═══════════════════════════════════════════════ */

:root {
    --bg:       #060606;
    --bg-2:     #101010;
    --surface:  rgba(255,255,255,.024);
    --surface-2:rgba(255,255,255,.018);
    --border:   rgba(255,255,255,.08);
    --text:     #f7f7f2;
    --text-2:   #a5a59a;
    --lime:     #ccff00;
    --blue:     #4f7fff;
    --purple:   #a855f7;
    --green:    #4ade80;
    --radius:   18px;
    --radius-sm:12px;
    --nav-h:    72px;
    --ease:     cubic-bezier(.16,1,.3,1);
    --ease-out: cubic-bezier(.22,1,.36,1);
}

*,*::before,*::after { box-sizing: border-box; margin: 0; padding: 0; }

html {
    scroll-behavior: smooth;
    scroll-padding-top: calc(var(--nav-h) + 12px);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

body {
    font-family: 'Geist', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    background: var(--bg);
    color: var(--text);
    min-height: 100vh;
    overflow-x: hidden;
}

a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
button { font-family: inherit; cursor: pointer; }

.skip-link {
    position: absolute;
    left: 50%; top: -100%;
    transform: translateX(-50%);
    background: var(--lime);
    color: #111;
    padding: 10px 16px;
    border-radius: 999px;
    font-weight: 700;
    z-index: 9999;
    transition: top .2s;
}
.skip-link:focus { top: 16px; }

.wrap { max-width: 1200px; margin: 0 auto; padding: 0 28px; }

.tag {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--lime);
    border: 1px solid rgba(204,255,0,.18);
    border-radius: 999px;
    padding: 7px 12px;
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    background: rgba(204,255,0,.05);
}

/* ─── Buttons ─── */
.btn, .btn-sm, .btn-ghost {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border-radius: 999px;
    font-weight: 700;
    font-family: inherit;
    border: none;
    cursor: pointer;
    letter-spacing: -.01em;
    transition: transform .18s var(--ease), box-shadow .18s var(--ease), background .18s ease;
}
.btn {
    background: var(--lime);
    color: #101010;
    padding: 14px 28px;
    font-size: .92rem;
}
.btn-sm {
    background: var(--lime);
    color: #101010;
    padding: 9px 18px;
    font-size: .86rem;
}
.btn-ghost {
    border: 1px solid var(--border);
    color: var(--text);
    padding: 14px 28px;
    font-size: .92rem;
    background: rgba(255,255,255,.02);
}
.btn:hover, .btn-sm:hover {
    background: #d4ff1a;
    transform: translateY(-2px);
    box-shadow: 0 8px 28px rgba(204,255,0,.22);
}
.btn-ghost:hover {
    background: rgba(255,255,255,.05);
    border-color: rgba(255,255,255,.18);
    transform: translateY(-2px);
}

/* ══════════════════════════════════════
   NAV
══════════════════════════════════════ */
.nav {
    position: sticky;
    top: 0;
    z-index: 1000;
    border-bottom: 1px solid var(--border);
    background: rgba(6,6,6,.82);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    transition: background .3s ease;
}
.nav.scrolled { background: rgba(6,6,6,.96); }
.nav-inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 28px;
    height: var(--nav-h);
    display: flex;
    align-items: center;
    gap: 18px;
}
.nav-logo img { height: 24px; }
.nav-links {
    display: flex;
    align-items: center;
    gap: 2px;
    margin: 0 auto;
    border: 1px solid rgba(255,255,255,.06);
    border-radius: 999px;
    background: rgba(255,255,255,.024);
    padding: 4px;
}
.nav-links a, .nav-login {
    color: var(--text-2);
    font-size: .86rem;
    font-weight: 600;
    padding: 8px 14px;
    border-radius: 999px;
    transition: background .15s ease, color .15s ease;
}
.nav-links a:hover, .nav-links a.active,
.nav-links a[aria-current="page"], .nav-login:hover {
    background: rgba(255,255,255,.07);
    color: var(--text);
}
.nav-actions { display: flex; align-items: center; gap: 6px; }
.nav-sep { width: 1px; height: 18px; background: var(--border); margin: 0 4px; }
.nav-toggle {
    display: none;
    width: 24px; height: 16px;
    flex-direction: column;
    justify-content: space-between;
    background: none; border: 0; padding: 0; cursor: pointer;
}
.nav-toggle span {
    display: block; height: 2px; border-radius: 999px;
    background: var(--text);
    transition: transform .22s ease, opacity .22s ease;
}
.nav-mobile {
    display: none;
    flex-direction: column;
    padding: 10px 18px 18px;
    border-top: 1px solid rgba(255,255,255,.04);
    background: rgba(6,6,6,.97);
}
.nav-mobile a {
    padding: 11px 12px; border-radius: 10px;
    color: var(--text-2); font-weight: 600; font-size: .92rem;
}
.nav-mobile a:hover, .nav-mobile a[aria-current="page"] {
    color: var(--text); background: rgba(255,255,255,.05);
}
.nav-mobile-sep { height: 1px; background: var(--border); margin: 8px 0; }
.nav-mobile.open { display: flex; }

.scroll-progress {
    position: fixed; top: 0; left: 0; right: 0;
    height: 2px; transform-origin: 0 50%; transform: scaleX(0);
    background: var(--lime); z-index: 1100; pointer-events: none;
}

/* ══════════════════════════════════════
   FOOTER
══════════════════════════════════════ */
.footer { border-top: 1px solid var(--border); padding: 32px 0 36px; }
.footer .wrap { max-width: 1200px; margin: 0 auto; padding: 0 28px; }
.footer-grid {
    display: grid;
    grid-template-columns: 1.4fr repeat(3,minmax(0,1fr));
    gap: 20px; margin-bottom: 24px;
}
.footer-grid h4 { margin-bottom: 12px; font-size: .88rem; font-weight: 700; }
.footer-grid a, .footer-grid p { color: var(--text-2); font-size: .88rem; line-height: 1.7; }
.footer-grid a { display: block; margin: 5px 0; transition: color .15s ease; }
.footer-grid a:hover { color: var(--text); }
.footer-brand img { height: 26px; margin-bottom: 12px; }
.footer-bottom {
    border-top: 1px solid var(--border); padding-top: 20px;
    display: flex; align-items: center; justify-content: space-between; gap: 16px;
}
.footer-bottom p { color: var(--text-2); font-size: .86rem; }
.footer-badges { display: flex; flex-wrap: wrap; gap: 8px; }
.footer-badges span {
    display: inline-flex; align-items: center; gap: 7px;
    border: 1px solid var(--border); border-radius: 999px;
    padding: 6px 10px; color: var(--text-2); font-size: .8rem;
}

/* ══════════════════════════════════════
   LEGAL PAGES
══════════════════════════════════════ */
.legal-hero {
    padding: calc(var(--nav-h) + 26px) 28px 54px;
    text-align: center; border-bottom: 1px solid var(--border);
}
.legal-hero h1 { margin: 12px 0; font-size: clamp(2rem,4vw,3.25rem); letter-spacing: -.04em; line-height: 1.05; }
.legal-hero p { color: var(--text-2); line-height: 1.75; }
.legal-body { max-width: 820px; margin: 0 auto; padding: 60px 28px 100px; display: flex; flex-direction: column; gap: 40px; }
.legal-block h2 { margin-bottom: 12px; font-size: 1.08rem; }
.legal-block p, .legal-block address, .legal-block li { color: var(--text-2); font-size: .94rem; line-height: 1.82; font-style: normal; }
.legal-block a { color: var(--lime); }
.legal-block ul { padding-left: 18px; display: grid; gap: 8px; }
.legal-divider { height: 1px; background: var(--border); }
.legal-back { display: inline-flex; align-items: center; gap: 8px; color: var(--text-2); font-weight: 600; }

/* ══════════════════════════════════════
   FAQ PAGE
══════════════════════════════════════ */
.faq-hero { padding: calc(var(--nav-h) + 20px) 28px 46px; border-bottom: 1px solid var(--border); }
.faq-hero .wrap, .landing-section, .landing-hero .wrap, .landing-divider { max-width: 1040px; margin: 0 auto; }
.faq-hero h1 { margin: 12px 0; font-size: clamp(2rem,4vw,3.25rem); letter-spacing: -.04em; line-height: 1.05; }
.faq-hero p { color: var(--text-2); line-height: 1.75; }
.faq-search {
    margin-top: 20px; display: flex; align-items: center; gap: 10px; max-width: 520px;
    border: 1px solid var(--border); border-radius: 999px; padding: 10px 14px; background: var(--surface);
}
.faq-search input { flex: 1; background: transparent; border: 0; color: var(--text); font: inherit; font-size: .9rem; }
.faq-search input::placeholder { color: var(--text-2); }
.faq-body { max-width: 980px; margin: 0 auto; padding: 46px 28px 100px; display: grid; gap: 22px; }
.faq-category, .landing-card, .hero-copy, .hero-panel, .hero-point, .hero-metric, .contact-banner, .faq-cta {
    border: 1px solid var(--border); border-radius: var(--radius);
    background: linear-gradient(180deg,rgba(255,255,255,.026),rgba(255,255,255,.012));
}
.faq-category-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 18px; border-bottom: 1px solid var(--border); }
.faq-category-head h2 { margin: 0; font-size: 1.02rem; }
.faq-count { border: 1px solid var(--border); border-radius: 999px; padding: 5px 9px; color: var(--text-2); font-size: .76rem; }
.faq-list { padding: 8px 14px 14px; display: grid; gap: 8px; }
.faq-item { border: 1px solid var(--border); border-radius: 14px; overflow: hidden; background: rgba(255,255,255,.014); }
.faq-item summary {
    list-style: none; cursor: pointer; display: flex; align-items: center;
    justify-content: space-between; gap: 14px; padding: 15px 16px; font-weight: 700;
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::marker { content: ''; }
.faq-arrow { color: var(--lime); transition: transform .2s ease; flex-shrink: 0; }
.faq-item[open] .faq-arrow { transform: rotate(180deg); }
.faq-answer { overflow: hidden; max-height: 0; opacity: 0; padding: 0 14px; border-top: 0 solid transparent; transition: max-height .48s var(--ease), opacity .35s ease, padding .48s var(--ease); }
.faq-item[open]:not(.faq-closing) .faq-answer { max-height: 280px; opacity: 1; padding: 12px 14px 14px; border-top: 1px solid var(--border); }
.faq-item.faq-closing .faq-answer { max-height: 0!important; opacity: 0!important; padding: 0 14px!important; }
.faq-answer p { margin: 0; color: var(--text-2); font-size: .94rem; line-height: 1.75; }
.faq-cta { padding: 20px; display: flex; align-items: center; justify-content: space-between; gap: 18px; background: linear-gradient(140deg,rgba(204,255,0,.08),rgba(255,255,255,.02)); }
.faq-cta h3, .landing-card h3, .contact-banner h2, .section-head h2, .hero-copy h1 { margin: 0 0 10px; }

/* legacy landing / index.php styles */
.landing-hero { padding: calc(var(--nav-h) + 26px) 28px 72px; border-bottom: 1px solid var(--border); }
.landing-hero .wrap { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(320px,.8fr); gap: 22px; align-items: stretch; }
.hero-copy, .hero-panel { padding: 26px; border-radius: 22px; }
.hero-copy h1 { font-size: clamp(2.8rem,5.8vw,5.4rem); line-height: .96; letter-spacing: -.055em; }
.hero-lead { max-width: 58ch; font-size: 1rem; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
.hero-proof { margin-top: 18px; display: inline-flex; align-items: center; gap: 10px; color: var(--text-2); font-size: .88rem; }
.hero-proof strong { color: var(--text); }
.hero-points { margin-top: 24px; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.hero-point { padding: 14px; }
.hero-point strong { display: block; margin-bottom: 4px; font-size: .92rem; color: var(--text); }
.hero-panel { display: flex; flex-direction: column; gap: 16px; background: linear-gradient(160deg,rgba(204,255,0,.08),rgba(255,255,255,.02) 42%,rgba(255,255,255,.012)); }
.hero-panel-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.hero-pill { display: inline-flex; align-items: center; gap: 8px; border: 1px solid rgba(255,255,255,.08); border-radius: 999px; padding: 7px 10px; color: var(--text-2); font-size: .78rem; }
.hero-panel-grid { display: grid; gap: 12px; }
.hero-metric { padding: 16px; }
.hero-metric strong { display: block; font-size: 1.55rem; letter-spacing: -.04em; margin-bottom: 4px; color: var(--text); }
.hero-list { margin: 0; padding: 0; list-style: none; display: grid; gap: 10px; }
.hero-list li { display: flex; gap: 10px; }
.hero-list i { color: var(--lime); margin-top: 4px; }
.landing-section { padding: 68px 28px 0; }
.section-head { margin-bottom: 22px; }
.section-head h2 { font-size: clamp(1.9rem,3.8vw,3rem); line-height: 1.08; letter-spacing: -.04em; }
.feature-grid,.step-grid,.pricing-grid,.proof-grid { display: grid; gap: 14px; }
.feature-grid,.step-grid,.pricing-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
.proof-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
.landing-card { padding: 20px; }
.landing-card > i { width: 42px; height: 42px; display: inline-grid; place-items: center; border-radius: 12px; color: #101010; background: var(--lime); margin-bottom: 14px; }
.step-card { position: relative; padding-top: 54px; }
.step-number { position: absolute; top: 16px; left: 20px; font-size: .78rem; font-weight: 800; color: var(--lime); letter-spacing: .08em; }
.pricing-card { display: flex; flex-direction: column; gap: 16px; }
.pricing-card.featured { border-color: rgba(204,255,0,.24); }
.pricing-label { display: inline-flex; align-self: flex-start; color: var(--lime); border: 1px solid rgba(204,255,0,.18); border-radius: 999px; padding: 5px 9px; font-size: .74rem; letter-spacing: .08em; text-transform: uppercase; }
.pricing-value { font-size: 2.15rem; font-weight: 800; letter-spacing: -.05em; line-height: 1; display: block; color: var(--text); }
.pricing-value small { font-size: .9rem; color: var(--text-2); font-weight: 700; }
.landing-divider { margin: 64px auto 0; padding: 0 28px; }
.landing-divider div { height: 1px; background: var(--border); }
.faq-stack { display: grid; gap: 10px; }
.contact-banner { padding: 24px; display: flex; align-items: center; justify-content: space-between; gap: 18px; background: linear-gradient(140deg,rgba(204,255,0,.08),rgba(255,255,255,.02)); }
.section-head p, .contact-banner p, .faq-cta p { margin: 0; color: var(--text-2); font-size: .94rem; line-height: 1.75; }

@media (max-width: 980px) {
    .landing-hero .wrap,.feature-grid,.step-grid,.pricing-grid,.proof-grid,.footer-grid { grid-template-columns: 1fr; }
    .hero-points { grid-template-columns: 1fr; }
    .footer-bottom,.contact-banner,.faq-cta { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 760px) {
    .nav-links,.nav-actions { display: none; }
    .nav-toggle { display: flex; margin-left: auto; }
    .nav-inner { padding: 0 18px; }
    .wrap,.landing-section,.landing-divider,.faq-body,.legal-body { padding-left: 18px; padding-right: 18px; }
    .landing-hero,.faq-hero,.legal-hero { padding-left: 18px; padding-right: 18px; }
}


/* ══════════════════════════════════════════════════════════════
   LANDING PAGE v3 — Abfahrtstafel
   ══════════════════════════════════════════════════════════════ */

main { position: relative; z-index: 1; }
.lp-wrap { width: min(1160px, calc(100% - 56px)); margin: 0 auto; }

/* ─── Utility ─── */
.lp-lime { color: var(--lime); }
.lp-label {
    display: inline-block;
    font-size: .65rem; font-weight: 700;
    letter-spacing: .14em; text-transform: uppercase;
    color: rgba(255,255,255,.3);
    margin-bottom: 12px;
}

/* ─── Curtain ─── */
.lp-curtain {
    position: fixed; inset: 0; z-index: 900;
    background: var(--bg);
    transition: transform .9s cubic-bezier(.76,0,.24,1);
    will-change: transform;
}
.lp-curtain-l { right: 50%; }
.lp-curtain-r { left: 50%; }
body.lp-ready .lp-curtain-l { transform: translateX(-100%); }
body.lp-ready .lp-curtain-r { transform: translateX(100%); }

/* ─── Scanline reveal ─── */
.lp-scan {
    position: fixed; top: 0; left: 0; right: 0;
    height: 1px; background: var(--lime);
    z-index: 800; pointer-events: none;
    opacity: 0;
}
@keyframes lpScan {
    0%   { transform: translateY(0);     opacity: 0; }
    4%   { opacity: .85; }
    96%  { opacity: .35; }
    100% { transform: translateY(100vh); opacity: 0; }
}

/* ─── Scroll reveals ─── */
.lp-reveal {
    opacity: 0;
    transform: translateY(16px);
    transition: opacity .55s var(--ease), transform .55s var(--ease);
}
.lp-reveal.lp-in { opacity: 1; transform: none; }

/* ══════════════════════════════════════
   1. HERO
══════════════════════════════════════ */
.lp-hero {
    min-height: 100svh;
    display: flex; flex-direction: column; justify-content: center;
    border-bottom: 1px solid var(--border);
    padding: calc(var(--nav-h) + 56px) 0 56px;
    position: relative; overflow: hidden;
}
.lp-hero-inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 72px; align-items: center;
}
.lp-hero-copy { display: flex; flex-direction: column; }

.lp-hero-eyebrow { opacity: 0; transition: opacity .5s ease .15s; }
body.lp-ready .lp-hero-eyebrow { opacity: 1; }

.lp-h1 {
    font-size: clamp(2.8rem, 5.5vw, 5rem);
    font-weight: 900; letter-spacing: -.065em; line-height: .9;
    margin-bottom: 22px;
    opacity: 0; transform: translateY(20px);
    transition: opacity .7s var(--ease) .25s, transform .7s var(--ease) .25s;
}
body.lp-ready .lp-h1 { opacity: 1; transform: none; }

.lp-hero-sub {
    font-size: .96rem; color: var(--text-2); line-height: 1.7;
    max-width: 44ch; margin-bottom: 32px;
    opacity: 0; transition: opacity .5s ease .5s;
}
body.lp-ready .lp-hero-sub { opacity: 1; }

.lp-hero-ctas {
    display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 28px;
    opacity: 0; transition: opacity .5s ease .65s;
}
body.lp-ready .lp-hero-ctas { opacity: 1; }

.lp-hero-trust {
    display: flex; flex-wrap: wrap; gap: 12px 20px;
    opacity: 0; transition: opacity .5s ease .8s;
}
body.lp-ready .lp-hero-trust { opacity: 1; }
.lp-hero-trust span {
    display: flex; align-items: center; gap: 6px;
    font-size: .76rem; color: rgba(255,255,255,.26);
}
.lp-hero-trust i { color: rgba(204,255,0,.4); font-size: .58rem; }

/* ─── Departure Board ─── */
.lp-board-wrap { opacity: 0; transition: opacity .6s ease .4s; }
body.lp-ready .lp-board-wrap { opacity: 1; }

.lp-board {
    background: #080a08;
    border: 1px solid rgba(255,255,255,.07);
    border-radius: 12px; overflow: hidden;
    box-shadow: 0 40px 100px rgba(0,0,0,.5), 0 0 0 1px rgba(204,255,0,.03) inset;
}
.lp-board-hdr {
    display: flex; justify-content: space-between; align-items: center;
    padding: 11px 18px;
    border-bottom: 1px solid rgba(255,255,255,.05);
    font-size: .58rem; font-weight: 700;
    letter-spacing: .14em; text-transform: uppercase;
    color: rgba(255,255,255,.18);
}
.lp-board-live {
    display: flex; align-items: center; gap: 5px;
    color: var(--lime); font-size: .56rem; letter-spacing: .1em;
}
.lp-board-dot {
    width: 5px; height: 5px; border-radius: 50%;
    background: var(--lime);
    animation: boardBlink 1.8s ease-in-out infinite;
}
@keyframes boardBlink { 0%,100%{opacity:1} 50%{opacity:.15} }

.lp-board-row {
    display: flex; align-items: center;
    padding: 13px 18px;
    border-bottom: 1px solid rgba(255,255,255,.04);
    min-height: 50px;
}
.lp-board-row:last-child { border-bottom: none; }

.lp-flap-char {
    display: inline-flex; align-items: center; justify-content: center;
    width: 1ch; min-width: 14px;
    font-size: clamp(.88rem, 1.7vw, 1.12rem);
    font-weight: 800; letter-spacing: .02em;
    color: var(--lime);
    text-shadow: 0 0 12px rgba(204,255,0,.22);
    font-variant-numeric: tabular-nums;
    user-select: none;
    transition: color .04s;
}
.lp-flap-char.flipping { color: rgba(204,255,0,.22); }

.lp-board-footnote {
    display: flex; gap: 10px; align-items: center;
    padding-top: 10px;
    font-size: .7rem; color: rgba(255,255,255,.18);
}
.lp-board-sep { color: rgba(255,255,255,.08); }

/* ─── Scroll hint ─── */
.lp-scroll-hint {
    position: absolute; bottom: 24px; left: 50%; transform: translateX(-50%);
    display: flex; flex-direction: column; align-items: center; gap: 8px;
    opacity: 0; transition: opacity .5s ease 1.2s;
}
body.lp-ready .lp-scroll-hint { opacity: 1; }
.lp-scroll-hint span {
    font-size: .58rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase;
    color: rgba(255,255,255,.18);
}
.lp-scroll-mouse {
    width: 20px; height: 32px;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 999px; position: relative; overflow: hidden;
}
.lp-scroll-dot {
    position: absolute; top: 6px; left: 50%; transform: translateX(-50%);
    width: 2px; height: 6px; border-radius: 999px;
    background: var(--lime);
    animation: scrollDot 2s ease-in-out infinite;
}
@keyframes scrollDot {
    0%   { opacity:1; transform:translateX(-50%) translateY(0); }
    100% { opacity:0; transform:translateX(-50%) translateY(12px); }
}

/* ══════════════════════════════════════
   2. MARQUEE
══════════════════════════════════════ */
.lp-marquee-wrap { overflow: hidden; border-bottom: 1px solid var(--border); background: #080808; }
.lp-marquee-row { display: flex; overflow: hidden; padding: 10px 0; }
.lp-marquee-row + .lp-marquee-row { border-top: 1px solid var(--border); }
.lp-marquee-inner {
    display: flex; white-space: nowrap; flex-shrink: 0;
    animation: mqFwd 30s linear infinite;
}
.lp-marquee-row.rev .lp-marquee-inner { animation-direction: reverse; animation-duration: 22s; }
.lp-marquee-inner span {
    font-size: .72rem; font-weight: 600;
    color: rgba(255,255,255,.24); letter-spacing: .04em; padding: 0 14px;
}
.lp-marquee-inner .hl { color: var(--lime); font-weight: 700; }
.lp-marquee-inner .dot { color: rgba(255,255,255,.08); padding: 0 2px; }
@keyframes mqFwd { from{transform:translateX(0)} to{transform:translateX(-50%)} }

/* ══════════════════════════════════════
   3. HORIZONTAL SCROLL (lag-free — no CSS transition on track)
══════════════════════════════════════ */
.lp-hscroll-outer { position: relative; }
.lp-hscroll-sticky {
    position: sticky; top: var(--nav-h);
    height: calc(100vh - var(--nav-h));
    overflow: hidden;
    border-bottom: 1px solid var(--border);
}
.lp-hscroll-meta {
    position: absolute; top: 0; left: 0; right: 0;
    padding: 18px 0 0; z-index: 10; pointer-events: none;
}
.lp-hscroll-meta-inner {
    display: flex; align-items: center; justify-content: space-between;
}
.lp-hscroll-dots { display: flex; gap: 6px; pointer-events: auto; }
.lp-hdot {
    width: 5px; height: 5px; border-radius: 50%;
    background: rgba(255,255,255,.15);
    transition: background .3s ease, transform .3s var(--ease);
}
.lp-hdot.active { background: var(--lime); transform: scale(1.5); }

.lp-hscroll-prog {
    position: absolute; bottom: 0; left: 0; width: 100%; height: 1px;
    background: rgba(255,255,255,.05); z-index: 10;
}
.lp-hscroll-bar { height: 100%; background: var(--lime); width: 0; }

/* NO transition on track — JS handles position directly, zero lag */
.lp-hscroll-track {
    display: flex; height: 100%;
    will-change: transform;
}

.lp-hslide {
    flex: 0 0 100vw; height: 100%;
    display: flex; align-items: center;
    padding: 52px 0 32px;
}
.lp-hslide-inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 80px; align-items: center;
}
.lp-hslide-copy { display: flex; flex-direction: column; }
.lp-slide-tag { margin-bottom: 18px; }
.lp-hslide-copy h2 {
    font-size: clamp(1.9rem, 3.8vw, 3.4rem);
    font-weight: 900; letter-spacing: -.065em; line-height: .9; margin-bottom: 18px;
}
.lp-hslide-copy h2 em { font-style: normal; color: var(--lime); }
.lp-hslide-copy p {
    font-size: .92rem; color: var(--text-2); line-height: 1.7;
    max-width: 44ch; margin-bottom: 20px;
}
.lp-checks { list-style: none; display: flex; flex-direction: column; gap: 9px; }
.lp-checks li {
    font-size: .86rem; color: var(--text-2);
    padding-left: 18px; position: relative; line-height: 1.5;
}
.lp-checks li::before {
    content: '→'; position: absolute; left: 0;
    color: var(--lime); font-size: .7rem; top: .12em;
}

/* ─── Visual card ─── */
.lp-hslide-vis { display: flex; align-items: center; justify-content: center; }
.lp-vis-card {
    width: 100%; max-width: 380px;
    background: #0c0c0c;
    border: 1px solid rgba(255,255,255,.07);
    border-radius: 14px; padding: 22px;
}

/* KI atoms */
.lp-vc-upload {
    display: flex; align-items: center; gap: 12px;
    background: rgba(168,85,247,.06); border: 1px solid rgba(168,85,247,.14);
    border-radius: 10px; padding: 12px 14px; margin-bottom: 10px;
}
.lp-vc-icon {
    width: 36px; height: 36px; flex-shrink: 0;
    background: rgba(168,85,247,.14); border-radius: 9px;
    display: grid; place-items: center; color: #a855f7; font-size: .84rem;
}
.lp-vc-title { display: block; font-size: .82rem; font-weight: 700; }
.lp-vc-sub   { display: block; font-size: .68rem; color: var(--text-2); margin-top: 2px; }
.lp-vc-sep {
    text-align: center; font-size: .68rem; color: var(--text-2);
    padding: 8px 0; display: flex; align-items: center; justify-content: center; gap: 8px;
}
.lp-vc-sep i { color: #a855f7; animation: pulse 1.6s ease-in-out infinite; }
.lp-vc-fields { display: flex; flex-direction: column; border: 1px solid rgba(255,255,255,.06); border-radius: 10px; overflow: hidden; }
.lp-vc-field {
    display: flex; justify-content: space-between;
    padding: 9px 12px; border-bottom: 1px solid rgba(255,255,255,.05); font-size: .78rem;
}
.lp-vc-field:last-child { border-bottom: none; }
.lp-vc-field span:first-child { color: var(--text-2); }
.lp-vc-field span:last-child  { color: var(--lime); font-weight: 600; }
.lp-vc-field-hl span:last-child { color: #4ade80; }

/* Domain atoms */
.lp-vc-url {
    display: flex; align-items: center; gap: 8px;
    background: rgba(79,127,255,.07); border: 1px solid rgba(79,127,255,.16);
    border-radius: 10px; padding: 12px 14px;
    font-size: .88rem; font-weight: 700; color: #4f7fff; margin-bottom: 14px;
}
.lp-vc-url i { font-size: .68rem; }
.lp-vc-path { opacity: .45; }
.lp-vc-dns { display: flex; flex-direction: column; gap: 8px; }
.lp-vc-dns-row {
    display: flex; align-items: center; gap: 8px;
    background: rgba(255,255,255,.03); border: 1px solid rgba(255,255,255,.06);
    border-radius: 9px; padding: 10px 12px; font-size: .78rem;
}
.lp-vc-dns-type {
    font-weight: 700; color: rgba(255,255,255,.3);
    font-size: .62rem; letter-spacing: .06em; text-transform: uppercase; min-width: 42px;
}
.lp-vc-dns-val { flex: 1; color: var(--text-2); }
.lp-vc-dns-ok { color: #4ade80; font-size: .7rem; }

/* Tap to Pay atoms */
.lp-vis-tap { text-align: center; }
.lp-vc-amount {
    font-size: clamp(1.8rem, 3.5vw, 2.6rem);
    font-weight: 900; letter-spacing: -.06em; margin-bottom: 6px;
}
.lp-vc-amount-sub { font-size: .72rem; color: var(--text-2); margin-bottom: 28px; }
.lp-vc-nfc {
    position: relative; width: 68px; height: 68px;
    margin: 0 auto 14px; display: grid; place-items: center;
}
.lp-vc-nfc i { font-size: 1.3rem; color: var(--lime); transform: rotate(90deg); position: relative; z-index: 1; }
.lp-vc-nfc-ring {
    position: absolute; inset: 0; border-radius: 50%;
    border: 2px solid var(--lime);
    animation: nfcPulse 2s ease-in-out infinite;
}
@keyframes nfcPulse {
    0%,100% { box-shadow: 0 0 0 0 rgba(204,255,0,.3); }
    50%      { box-shadow: 0 0 0 14px rgba(204,255,0,0); }
}
.lp-vc-nfc-hint { font-size: .72rem; color: var(--text-2); }

/* DATEV atoms */
.lp-vc-export-head {
    display: flex; align-items: center; gap: 10px;
    font-size: .8rem; font-weight: 700; margin-bottom: 16px; color: #4ade80;
}
.lp-vc-export-head i { font-size: 1rem; }

/* QR check-in atoms */
.lp-vc-qr-wrap {
    display: flex; align-items: center; gap: 14px;
    background: rgba(255,255,255,.03); border: 1px solid rgba(255,255,255,.07);
    border-radius: 10px; padding: 14px; margin-bottom: 14px;
}
.lp-vc-qr {
    width: 48px; height: 48px; flex-shrink: 0;
    background: rgba(255,255,255,.05); border-radius: 8px;
    display: grid; place-items: center; font-size: 1.3rem; color: rgba(255,255,255,.35);
}
.lp-vc-stats {
    display: grid; grid-template-columns: 1fr auto 1fr auto 1fr;
    gap: 0 8px; align-items: center;
    background: rgba(255,255,255,.03); border: 1px solid rgba(255,255,255,.06);
    border-radius: 10px; padding: 14px 16px; text-align: center;
}
.lp-vc-stat { display: flex; flex-direction: column; gap: 3px; }
.lp-vc-stat-val { font-size: 1.3rem; font-weight: 900; letter-spacing: -.04em; color: var(--lime); }
.lp-vc-stat span:last-child { font-size: .6rem; color: var(--text-2); text-transform: uppercase; letter-spacing: .05em; }
.lp-vc-stat-sep { width: 1px; height: 32px; background: rgba(255,255,255,.07); }

/* Guest list atoms */
.lp-vc-guest-head {
    display: flex; justify-content: space-between; align-items: center;
    font-size: .72rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
    color: rgba(255,255,255,.28); margin-bottom: 12px;
}
.lp-vc-live {
    display: flex; align-items: center; gap: 5px;
    color: var(--lime); font-size: .6rem; letter-spacing: .08em; font-weight: 700;
}
.lp-vc-live-dot {
    width: 5px; height: 5px; border-radius: 50%;
    background: var(--lime);
    animation: boardBlink 1.8s ease-in-out infinite;
}
.lp-vc-guest-list { display: flex; flex-direction: column; gap: 6px; margin-bottom: 12px; }
.lp-vc-guest-row {
    display: flex; align-items: center; gap: 10px;
    background: rgba(255,255,255,.03); border: 1px solid rgba(255,255,255,.06);
    border-radius: 10px; padding: 9px 12px;
}
.lp-vc-guest-pending { opacity: .42; }
.lp-vc-avatar {
    width: 32px; height: 32px; flex-shrink: 0; border-radius: 50%;
    background: rgba(204,255,0,.14); border: 1px solid rgba(204,255,0,.2);
    display: grid; place-items: center;
    font-size: .65rem; font-weight: 800; color: var(--lime); letter-spacing: .02em;
}
.lp-vc-avatar-dim { background: rgba(255,255,255,.05); border-color: rgba(255,255,255,.08); color: rgba(255,255,255,.3); }
.lp-vc-guest-info { flex: 1; display: flex; flex-direction: column; gap: 2px; }
.lp-vc-guest-name { font-size: .8rem; font-weight: 700; letter-spacing: -.01em; }
.lp-vc-guest-meta { font-size: .64rem; color: var(--text-2); }
.lp-vc-check { color: var(--lime); font-size: .72rem; }
.lp-vc-pending { color: rgba(255,255,255,.25); font-size: .9rem; }

/* Ticket settings / loyalty / tracking atoms */
.lp-vc-settings-head {
    font-size: .72rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
    color: rgba(255,255,255,.28); margin-bottom: 12px;
}
.lp-vc-loyalty-row,
.lp-vc-tracking-row {
    display: flex; justify-content: space-between; align-items: center;
    border-radius: 9px; padding: 10px 12px; font-size: .78rem; margin-top: 8px;
}
.lp-vc-loyalty-row {
    background: rgba(250,204,21,.05); border: 1px solid rgba(250,204,21,.14);
    color: #facc15;
}
.lp-vc-loyalty-row span:last-child { color: rgba(255,255,255,.4); font-size: .72rem; }
.lp-vc-tracking-row {
    background: rgba(79,127,255,.05); border: 1px solid rgba(79,127,255,.14);
    color: #4f7fff;
}
.lp-vc-tracking-row span:last-child { color: rgba(255,255,255,.4); }
.lp-vc-mono {
    font-family: 'SF Mono', 'Fira Code', monospace; font-size: .72rem;
}

/* Analytics / geo / support atoms */
.lp-vc-analytics-head {
    display: flex; justify-content: space-between; align-items: center;
    font-size: .72rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
    color: rgba(255,255,255,.28); margin-bottom: 14px;
}
.lp-vc-geo-list { display: flex; flex-direction: column; gap: 8px; margin-bottom: 14px; }
.lp-vc-geo-row { display: flex; align-items: center; gap: 10px; }
.lp-vc-geo-label { font-size: .76rem; color: var(--text-2); min-width: 52px; }
.lp-vc-geo-bar-wrap {
    flex: 1; height: 5px; background: rgba(255,255,255,.07);
    border-radius: 999px; overflow: hidden;
}
.lp-vc-geo-bar { height: 100%; background: var(--lime); border-radius: 999px; }
.lp-vc-geo-pct { font-size: .7rem; font-weight: 700; color: var(--lime); min-width: 30px; text-align: right; }
.lp-vc-support-msg {
    background: rgba(255,255,255,.03); border: 1px solid rgba(255,255,255,.07);
    border-radius: 10px; padding: 12px;
}
.lp-vc-support-text { font-size: .78rem; color: var(--text-2); margin-bottom: 8px; line-height: 1.5; }
.lp-vc-support-meta { display: flex; align-items: center; justify-content: space-between; }
.lp-vc-prio {
    font-size: .6rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
    border-radius: 6px; padding: 2px 8px;
    background: rgba(255,255,255,.07); color: rgba(255,255,255,.3);
    border: 1px solid rgba(255,255,255,.1);
}
.lp-vc-prio.high { background: rgba(239,68,68,.1); color: #ef4444; border-color: rgba(239,68,68,.22); }

@keyframes pulse { 0%,100%{opacity:1} 50%{opacity:.25} }

/* ══════════════════════════════════════
   4. STATS
══════════════════════════════════════ */
.lp-stats {
    border-bottom: 1px solid var(--border);
    background: #080808; padding: 72px 0;
}
.lp-stats-grid { display: grid; grid-template-columns: repeat(3,1fr); }
.lp-stat-item { padding: 0 40px; border-right: 1px solid var(--border); }
.lp-stat-item:first-child { padding-left: 0; }
.lp-stat-item:last-child  { border-right: none; }
.lp-stat-val {
    font-size: clamp(2.4rem, 5vw, 4.5rem);
    font-weight: 900; letter-spacing: -.07em; line-height: 1;
    color: var(--lime); margin-bottom: 10px;
    font-variant-numeric: tabular-nums;
}
.lp-stat-label {
    font-size: .62rem; font-weight: 800;
    letter-spacing: .12em; text-transform: uppercase;
    color: rgba(255,255,255,.28); margin-bottom: 8px;
}
.lp-stat-desc { font-size: .86rem; color: var(--text-2); line-height: 1.6; max-width: 26ch; }

/* ══════════════════════════════════════
   5. FEATURE LIST
══════════════════════════════════════ */
.lp-feat-section { border-bottom: 1px solid var(--border); }
.lp-sect-head { padding: 72px 0 40px; }
.lp-sect-head h2 {
    font-size: clamp(1.8rem, 3vw, 2.8rem);
    font-weight: 900; letter-spacing: -.055em; line-height: .92;
}
.lp-sect-head h2 em { font-style: normal; color: var(--lime); }
.lp-feat-list { list-style: none; padding-bottom: 72px; }
.lp-feat {
    display: grid; grid-template-columns: 40px 1fr auto;
    gap: 0 20px; align-items: center;
    padding: 15px 0; border-top: 1px solid var(--border);
    transition: background .15s ease;
}
.lp-feat:last-child { border-bottom: 1px solid var(--border); }
.lp-feat:hover { background: rgba(255,255,255,.018); margin: 0 -24px; padding-left: 24px; padding-right: 24px; }
.lp-feat-n {
    font-size: .68rem; font-weight: 700;
    color: rgba(255,255,255,.18); letter-spacing: .06em; font-variant-numeric: tabular-nums;
}
.lp-feat:hover .lp-feat-n { color: var(--lime); }
.lp-feat-body { display: flex; flex-direction: column; gap: 2px; }
.lp-feat-body strong { font-size: .9rem; font-weight: 700; letter-spacing: -.01em; }
.lp-feat-body span { font-size: .78rem; color: var(--text-2); line-height: 1.4; }
.lp-badge {
    font-size: .58rem; font-weight: 700;
    letter-spacing: .08em; text-transform: uppercase;
    color: var(--lime); background: rgba(204,255,0,.07);
    border: 1px solid rgba(204,255,0,.15);
    border-radius: 6px; padding: 3px 8px; white-space: nowrap;
}

/* ══════════════════════════════════════
   6. PRICING
══════════════════════════════════════ */
.lp-pricing { border-bottom: 1px solid var(--border); }
.lp-pricing-inner {
    padding: 72px 0 96px;
    display: grid; grid-template-columns: 1fr 300px;
    gap: 72px; align-items: start;
}
.lp-price-big {
    font-size: clamp(3.5rem, 8vw, 7rem);
    font-weight: 900; letter-spacing: -.07em; line-height: .9;
    color: var(--lime); margin-bottom: 6px;
}
.lp-price-big small { font-size: 58%; }
.lp-price-sub {
    font-size: clamp(.9rem, 1.8vw, 1.4rem);
    font-weight: 700; letter-spacing: -.02em;
    color: rgba(255,255,255,.28); margin-bottom: 22px;
}
.lp-price-note {
    font-size: .88rem; color: var(--text-2); line-height: 1.65; max-width: 44ch;
}
.lp-price-note strong { color: var(--text); }
.lp-price-right { display: flex; flex-direction: column; gap: 0; padding-top: 6px; }
.lp-price-list { list-style: none; margin-bottom: 24px; }
.lp-price-list li {
    display: flex; align-items: center; gap: 10px;
    padding: 11px 0; border-bottom: 1px solid rgba(255,255,255,.05);
    font-size: .88rem; color: var(--text-2);
}
.lp-price-list li:first-child { border-top: 1px solid rgba(255,255,255,.05); }
.lp-price-list li i { color: var(--lime); font-size: .6rem; flex-shrink: 0; }
.lp-ent-link {
    display: flex; align-items: center; gap: 6px; margin-top: 10px;
    font-size: .82rem; color: var(--text-2); transition: color .15s ease;
}
.lp-ent-link:hover { color: var(--text); }
.lp-ent-link i { font-size: .58rem; }

/* ══════════════════════════════════════
   7. FAQ
══════════════════════════════════════ */
.lp-faq-sect { border-bottom: 1px solid var(--border); background: #080808; }

/* Override base lp-faq-item card styles */
.lp-faq-sect .lp-faq-item, .lp-faq-item {
    border: none; border-top: 1px solid var(--border);
    border-radius: 0; overflow: visible; background: transparent;
}
.lp-faq-sect .lp-faq-item:last-child { border-bottom: 1px solid var(--border); }
.lp-faq-item summary {
    display: flex; justify-content: space-between; align-items: center;
    gap: 20px; padding: 22px 0; cursor: pointer;
    font-size: .95rem; font-weight: 700; letter-spacing: -.01em;
    list-style: none; user-select: none;
}
.lp-faq-item summary::-webkit-details-marker { display: none; }
.lp-faq-item summary::marker { content: ''; }
.lp-faq-item summary i {
    color: rgba(255,255,255,.22); font-size: .62rem; flex-shrink: 0;
    transition: transform .24s var(--ease), color .2s;
}
.lp-faq-item[open] summary i { transform: rotate(180deg); color: var(--lime); }
.lp-faq-answer { border-top: none; padding: 0 0 20px; }
.lp-faq-answer p { padding-top: 0; color: var(--text-2); font-size: .9rem; line-height: 1.75; }
.lp-faq { display: flex; flex-direction: column; padding-bottom: 72px; }

/* ══════════════════════════════════════
   8. FINALE
══════════════════════════════════════ */
.lp-finale { background: var(--lime); overflow: hidden; }
.lp-finale-inner { padding: 104px 0; }
.lp-finale h2 {
    font-size: clamp(2.8rem, 7vw, 7rem);
    font-weight: 900; letter-spacing: -.075em; line-height: .88;
    color: #060606; margin-bottom: 20px;
}
.lp-finale p {
    font-size: .96rem; color: rgba(0,0,0,.44);
    max-width: 42ch; margin-bottom: 40px; line-height: 1.65;
}
.lp-finale-ctas { display: flex; gap: 10px; flex-wrap: wrap; }
.lp-finale-btn  { background: #060606; color: var(--lime); }
.lp-finale-btn:hover  { background: #111; box-shadow: 0 8px 28px rgba(0,0,0,.3); }
.lp-finale-ghost { border-color: rgba(0,0,0,.22); color: #060606; background: rgba(0,0,0,.07); }
.lp-finale-ghost:hover { background: rgba(0,0,0,.14); }

/* ─── Mobile feature fallback ─── */
.lp-mobile-features { display: none; border-bottom: 1px solid var(--border); }
.lp-mobile-feat-list {
    list-style: none; padding: 24px 0 64px;
    display: flex; flex-direction: column;
}
.lp-mobile-feat-list li { padding: 18px 0; border-top: 1px solid var(--border); }
.lp-mobile-feat-list li:last-child { border-bottom: 1px solid var(--border); }
.lp-mobile-feat-list h3 { font-size: 1rem; font-weight: 800; letter-spacing: -.02em; margin-bottom: 4px; }
.lp-mobile-feat-list h3 em { font-style: normal; color: var(--lime); }
.lp-mobile-feat-list p { font-size: .86rem; color: var(--text-2); line-height: 1.6; }

/* ══════════════════════════════════════
   RESPONSIVE
══════════════════════════════════════ */
@media (max-width: 1024px) {
    .lp-hero-inner { gap: 48px; }
    .lp-hslide-inner { gap: 48px; }
    .lp-pricing-inner { grid-template-columns: 1fr; gap: 48px; }
    .lp-stats-grid { grid-template-columns: 1fr 1fr; }
    .lp-stats-grid .lp-stat-item:nth-child(2) { border-right: none; }
    .lp-stats-grid .lp-stat-item:nth-child(3) {
        border-top: 1px solid var(--border);
        grid-column: 1 / -1; padding: 32px 0 0; border-right: none;
    }
}
@media (max-width: 860px) {
    .lp-hero-inner { grid-template-columns: 1fr; gap: 40px; }
    .lp-hscroll-outer { display: none; }
    .lp-mobile-features { display: block; }
    .lp-stats-grid { grid-template-columns: 1fr; }
    .lp-stat-item { border-right: none; border-bottom: 1px solid var(--border); padding: 28px 0; }
    .lp-stat-item:first-child { padding-top: 0; }
    .lp-stat-item:last-child  { border-bottom: none; padding-bottom: 0; }
    .lp-pricing-inner { grid-template-columns: 1fr; }
    .lp-hslide-inner { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
    .lp-wrap { width: calc(100% - 32px); }
    .lp-hero { padding-top: calc(var(--nav-h) + 32px); padding-bottom: 40px; }
    .lp-h1 { font-size: clamp(2.4rem, 10vw, 4rem); }
    .lp-stats { padding: 48px 0; }
    .lp-stat-val { font-size: clamp(2rem, 10vw, 3.5rem); }
    .lp-feat { grid-template-columns: 32px 1fr; }
    .lp-badge { display: none; }
    .lp-pricing-inner { padding: 56px 0 72px; }
    .lp-price-big { font-size: clamp(3rem, 14vw, 6rem); }
    .lp-sect-head { padding: 56px 0 28px; }
    .lp-feat-list { padding-bottom: 56px; }
    .lp-finale-inner { padding: 72px 0; }
    .lp-finale h2 { font-size: clamp(2.4rem, 11vw, 5rem); }
}

@media (prefers-reduced-motion: reduce) {
    .lp-curtain { transition: none !important; }
    .lp-scan { animation: none !important; }
    .lp-h1, .lp-hero-eyebrow, .lp-hero-sub, .lp-hero-ctas,
    .lp-hero-trust, .lp-board-wrap, .lp-scroll-hint {
        opacity: 1 !important; transform: none !important; transition: none !important;
    }
    .lp-reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
    .lp-marquee-inner { animation: none !important; }
    .lp-scroll-dot, .lp-board-dot, .lp-vc-nfc-ring, .lp-vc-sep i { animation: none !important; }
}
