/* ──────────────────────────────────────────────────────────────────
   THEME-ISOLATION — schützt Layout gegen Fremd-Theme-CSS-Override.
   Plugin-TemplateLoader setzt body.fone-page + body.fone-page-<slug>.
   ────────────────────────────────────────────────────────────────── */

/* Nav-Layout */
body.fone-page nav {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 100 !important;
  padding: 0 var(--gutter) !important;
  height: 84px !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  margin: 0 !important;
}
body.fone-page nav .nav-links {
  display: flex !important;
  align-items: center !important;
  gap: 36px !important;
}
body.fone-page nav a { text-decoration: none !important; }
@media (max-width: 768px) { body.fone-page nav { height: 64px !important; } }

/* Form-Inputs */
body.fone-page .cta-form-field input[type="text"],
body.fone-page .cta-form-field input[type="email"],
body.fone-page .cta-form-field input[type="tel"],
body.fone-page .cta-form-field input[type="number"],
body.fone-page .cta-form-field input[type="url"],
body.fone-page .cta-form-field textarea {
  background: var(--bg3) !important;
  background-color: var(--bg3) !important;
  color: #fff !important;
  border: 1px solid var(--border) !important;
  border-radius: 10px !important;
  padding: 14px 18px !important;
  font-family: inherit !important;
  font-size: 14px !important;
  line-height: 1.4 !important;
  box-shadow: none !important;
  outline: none !important;
  -webkit-appearance: none !important;
  appearance: none !important;
}
body.fone-page .cta-form-field input:focus,
body.fone-page .cta-form-field textarea:focus {
  border-color: var(--plum) !important;
  outline: none !important;
  box-shadow: none !important;
}
body.fone-page .calc-select-trigger {
  background: var(--bg3) !important;
  background-color: var(--bg3) !important;
  border: 1px solid var(--border) !important;
  color: #fff !important;
  border-radius: 10px !important;
  font-family: inherit !important;
  padding: 14px 18px !important;
}

/* Outline-Headlines — Fill auf Page-Background statt transparent. */
body.fone-page .hero-line-2,
body.fone-page .editorial-text .t-outline,
body.fone-page .metrics-tagline .t-outline,
body.fone-page .cta-title .l3,
body.fone-page .outline-headline,
body.fone-page [class*="-outline"] {
  color: var(--bg) !important;
  -webkit-text-stroke: 2px var(--plum) !important;
  -webkit-text-fill-color: var(--bg) !important;
  text-shadow: none !important;
  text-decoration: none !important;
  background: none !important;
  background-clip: border-box !important;
  -webkit-background-clip: border-box !important;
  paint-order: stroke fill !important;
}
/* Step-Num sitzt auf --bg2-Section (heller als --bg) */
body.fone-page .step-num {
  color: var(--bg2) !important;
  -webkit-text-stroke: 1.5px var(--plum) !important;
  -webkit-text-fill-color: var(--bg2) !important;
  text-shadow: none !important;
  text-decoration: none !important;
  background: none !important;
  paint-order: stroke fill !important;
}

/* Buttons */
body.fone-page .btn {
  text-decoration: none !important;
  border-radius: 999px !important;
  display: inline-flex !important;
  align-items: center !important;
}

/* Divi setzt padding-bottom auf p und Überschriften – auf dieser Seite nicht gewollt */
body.fone-page p,
body.fone-page h1, body.fone-page h2, body.fone-page h3,
body.fone-page h4, body.fone-page h5, body.fone-page h6 { padding-bottom: 0; }

/* ── Original Page-CSS folgt ────────────────────────────────────── */
/* ═══════════════════════════════════════════════════════════════════
   DIMARCON · Anfrage – nur das mehrstufige Formular aus vertriebsoutsourcing.html
   CSS 1:1 aus der Referenzseite übernommen; angepasst an die seit 25.09.2026
   beschlossenen Design-System-Regeln (Versal-Headline, Eyebrow ohne Strich,
   Buttons mit festen Maßen). Kein unterer Edge-Blur (läge über Formularfeldern).
   ═══════════════════════════════════════════════════════════════════ */
@font-face { font-family: 'Montserrat'; src: url('../assets/fonts/Montserrat-Black.ttf'); font-weight: 900; }
@font-face { font-family: 'Montserrat'; src: url('../assets/fonts/Montserrat-ExtraBold.ttf'); font-weight: 800; }
@font-face { font-family: 'Montserrat'; src: url('../assets/fonts/Montserrat-Bold.ttf'); font-weight: 700; }
@font-face { font-family: 'Montserrat'; src: url('../assets/fonts/Montserrat-SemiBold.ttf'); font-weight: 600; }
@font-face { font-family: 'Montserrat'; src: url('../assets/fonts/Montserrat-Medium.ttf'); font-weight: 500; }
@font-face { font-family: 'Montserrat'; src: url('../assets/fonts/Montserrat-Regular.ttf'); font-weight: 400; }
@font-face { font-family: 'Montserrat'; src: url('../assets/fonts/Montserrat-Light.ttf'); font-weight: 300; }

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

:root {
  --bg: #080810;
  --bg2: #0c0c1a;
  --bg3: #12121f;
  --fg: #ffffff;
  --fg2: #b8b8be;
  --fg3: #6d6d72;
  --cyan: #33e3f7;
  --blue: #3264fa;
  --plum: #7a54ff;
  --purple: #8200aa;
  --red: #e4003a;
  --green: #4ade80;
  --grad: linear-gradient(135deg, #33e3f7 0%, #3264fa 25%, #7a54ff 50%, #8200aa 75%, #e4003a 100%);
  --border: rgba(255,255,255,0.04);
  --border-acc: rgba(122,84,255,0.3);

  /* 12-column grid, 64px gutters */
  --gutter: 64px;
}

html { scroll-behavior: smooth; }
body { font-family: 'Montserrat', sans-serif; background: var(--bg); color: var(--fg); overflow-x: hidden; }


/* ─── shared ─── */
/* Eyebrow ohne Strich-Prefix, 12px (DS 3.4) */
.eyebrow {
  font-size: 12px; font-weight: 700; letter-spacing: 0.2em;
  text-transform: uppercase; color: var(--plum);
  display: inline-flex; align-items: center; gap: 10px;
}

/* Buttons – feste Maße (DS 5.1): 46px Standard, 36px kompakt, Ghost-Rand innen */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: 12px; line-height: 18px; letter-spacing: 0.08em; text-transform: uppercase; padding: 14px 24px; min-height: 46px; border-radius: 999px; cursor: pointer; border: none; white-space: nowrap; transition: box-shadow 200ms; text-decoration: none; }
.btn svg { flex-shrink: 0; }
.btn-primary { background: var(--plum); color: #fff; }
.btn-primary:hover { box-shadow: 0 4px 20px rgba(122,84,255,0.5); }
.btn-ghost { background: transparent; color: var(--plum); box-shadow: inset 0 0 0 1.5px var(--plum); }
.btn-ghost:hover { box-shadow: inset 0 0 0 1.5px var(--plum), 0 4px 20px rgba(122,84,255,0.3); }
.btn-compact { padding: 9px 22px; min-height: 36px; font-size: 11px; }

/* ─── NAV ─── */
nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 100;
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 var(--gutter); height: 84px;
  background: transparent;
}
.nav-logo { height: 38px; display: block; }

/* ─── CTA-Stage (Seite besteht nur aus dieser Section) ─── */
/* ─── CTA ─── */
.cta {
  padding: 220px var(--gutter); position: relative; overflow: hidden;
  background: var(--bg);
}
.cta-bg {
  position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(ellipse 60% 70% at 50% 50%, rgba(122,84,255,0.16) 0%, transparent 70%);
}
.cta-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 32px; align-items: end; position: relative; z-index: 2; }
.cta-eyebrow { grid-column: 1 / 4; }
.cta-title {
  grid-column: 1 / 13;
  font-size: clamp(50px, 8vw, 144px); font-weight: 900;
  letter-spacing: -0.045em; line-height: 0.9; margin: 32px 0 64px;
  width: fit-content; justify-self: center;
}
.cta-title .l1 { color: #fff; }
.cta-title .l2 { color: #fff; padding-left: clamp(40px, 6vw, 120px); display: block; }
.cta-title .l3 {
  display: block; padding-left: clamp(80px, 12vw, 240px);
  -webkit-text-stroke: 2px var(--plum);
  -webkit-text-fill-color: var(--bg); color: var(--bg);
}
.cta-text { grid-column: 1 / 7; font-size: clamp(17px, 1.7vw, 22px); color: var(--fg2); line-height: 1.55; letter-spacing: -0.012em; max-width: 560px; }
.cta-actions-wrap { grid-column: 8 / 13; display: flex; flex-direction: column; gap: 18px; align-items: flex-end; }
.cta-actions { display: flex; gap: 12px; flex-wrap: wrap; }
.cta-tel { font-size: 12px; color: var(--fg3); letter-spacing: 0.06em; }
.cta-tel a { color: var(--fg2); text-decoration: none; font-weight: 600; }
.cta-tel a:hover { color: #fff; }

/* ─── CTA STAGE — Multi-Step-Formular mit Slide-Transitions ─── */
.cta-stage {
  position: relative; z-index: 2;
  min-height: 580px;
}
.cta-screen {
  position: absolute; top: 0; left: 0; right: 0;
  opacity: 0;
  transform: translateX(100%);
  pointer-events: none;
  transition: transform 700ms cubic-bezier(0.16, 1, 0.3, 1),
              opacity 500ms ease;
}
.cta-screen.is-active   { opacity: 1; transform: translateX(0);    pointer-events: auto; }
.cta-screen.is-before   { opacity: 0; transform: translateX(-100%); }

/* Initial-Screen Sonderfall: Headlines slide-out gestaffelt mit Motion-Blur */
/* Kein Parent-Opacity-Fade — sonst überlagert er die Line-Animation und das Verschwinden wirkt abrupt.
   Jedes Element bekommt eine eigene Exit-Transition. */
.cta-screen-initial { position: relative; opacity: 1; transform: none; pointer-events: auto; }
.cta-screen-initial.is-before { pointer-events: none; }

/* Eyebrow, Sub-Text, Action-Buttons faden mit leichtem Left-Drift */
.cta-screen-initial .cta-eyebrow,
.cta-screen-initial .cta-text,
.cta-screen-initial .cta-actions-wrap {
  will-change: transform, opacity;
  transition: opacity 500ms ease, transform 600ms cubic-bezier(0.4, 0, 0.2, 1);
}
.cta-screen-initial.is-before .cta-eyebrow,
.cta-screen-initial.is-before .cta-text,
.cta-screen-initial.is-before .cta-actions-wrap {
  opacity: 0;
  transform: translate3d(-25%, 0, 0);
}

/* Headline-Zeilen: gestaffelt nach links sliden mit Motion-Blur, ease-out für sichtbaren schnellen Start */
.cta-screen-initial .cta-title span {
  display: block;
  will-change: transform, filter, opacity;
  transition: transform 800ms cubic-bezier(0.33, 1, 0.68, 1),
              filter   650ms ease,
              opacity  650ms ease;
}
.cta-screen-initial.is-before .cta-title .l1 { transform: translate3d(-130%,0,0); filter: blur(10px); opacity: 0; transition-delay: 0ms,    0ms,    100ms; }
.cta-screen-initial.is-before .cta-title .l2 { transform: translate3d(-130%,0,0); filter: blur(10px); opacity: 0; transition-delay: 130ms,  130ms,  230ms; }
.cta-screen-initial.is-before .cta-title .l3 { transform: translate3d(-130%,0,0); filter: blur(10px); opacity: 0; transition-delay: 260ms,  260ms,  360ms; }

/* Form-Screen Layout — zentriert, Inhalt links-aligned */
.cta-form-screen {
  display: flex; flex-direction: column; gap: 24px;
  max-width: 720px;
  margin-left: auto; margin-right: auto;
  left: 0; right: 0;
}
/* Label-Override: in der Form sollen Select-Labels normal als Block über dem Feld sitzen,
   nicht absolut wie im Akquise-Rechner */
.cta-form-field.calc-select-wrap label {
  position: static;
  margin-bottom: 0;
}
.cta-form-head { display: flex; align-items: center; gap: 16px; }
.cta-form-back {
  display: inline-flex; align-items: center; justify-content: center;
  width: 44px; height: 44px;
  background: var(--bg3); border: 1px solid var(--border); border-radius: 50%;
  color: var(--fg2); cursor: pointer;
  transition: border-color 200ms, color 200ms, transform 200ms;
}
.cta-form-back:hover { border-color: var(--border-acc); color: #fff; transform: translateX(-3px); }
.cta-form-back svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.cta-form-step { font-size: 10px; font-weight: 700; letter-spacing: 0.22em; text-transform: uppercase; color: var(--plum); }
.cta-form-title { font-size: clamp(28px, 3.2vw, 44px); font-weight: 700; letter-spacing: -0.02em; line-height: 1.1; color: #fff; margin: 0; }

.cta-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px 24px; }
.cta-form-field { display: flex; flex-direction: column; gap: 8px; }
.cta-form-field-full { grid-column: 1 / -1; }
.cta-form-field label {
  display: block; font-size: 10px; font-weight: 700;
  color: var(--fg3); letter-spacing: 0.18em; text-transform: uppercase;
}
/* Label-Variante in Zwischenheadlinegröße — für Nachricht-Feld */
.cta-form-field label.cta-form-sublabel {
  font-size: clamp(16px, 1.4vw, 20px);
  font-weight: 500;
  color: var(--fg2);
  letter-spacing: -0.01em;
  text-transform: none;
  line-height: 1.45;
  margin-top: 8px;
}
.cta-form-field input,
.cta-form-field textarea {
  width: 100%;
  background: var(--bg3); border: 1px solid var(--border);
  border-radius: 10px; padding: 14px 18px;
  color: #fff; font-family: 'Montserrat', sans-serif;
  font-size: 14px; line-height: 1.4;
  transition: border-color 200ms;
}
.cta-form-field textarea { min-height: 100px; resize: vertical; }
.cta-form-field input:focus,
.cta-form-field textarea:focus { outline: none; border-color: var(--plum); }
.cta-form-field input:invalid:not(:placeholder-shown),
.cta-form-field textarea:invalid:not(:placeholder-shown) { border-color: rgba(228,0,58,0.45); }
.cta-form-field.is-invalid input,
.cta-form-field.is-invalid textarea,
.cta-form-field.is-invalid .calc-select-trigger {
  border-color: var(--red);
  animation: ctaFieldShake 360ms cubic-bezier(0.36, 0.07, 0.19, 0.97);
}
@keyframes ctaFieldShake {
  10%, 90% { transform: translateX(-2px); }
  20%, 80% { transform: translateX(3px); }
  30%, 50%, 70% { transform: translateX(-5px); }
  40%, 60% { transform: translateX(5px); }
}

.cta-form-consent { font-size: 11px; color: var(--fg3); line-height: 1.55; letter-spacing: -0.005em; margin: 0; }
.cta-form-checkbox { display: flex; align-items: flex-start; gap: 12px; cursor: pointer; }
.cta-form-checkbox input[type="checkbox"] {
  appearance: none; -webkit-appearance: none;
  width: 18px; height: 18px; flex-shrink: 0; margin-top: 1px;
  background: var(--bg3); border: 1px solid var(--border-acc); border-radius: 4px;
  cursor: pointer; position: relative;
  transition: background 150ms, border-color 150ms;
}
.cta-form-checkbox input[type="checkbox"]:checked { background: var(--plum); border-color: var(--plum); }
.cta-form-checkbox input[type="checkbox"]:checked::after {
  content: ''; position: absolute; left: 5px; top: 1px;
  width: 5px; height: 10px; border: solid #fff; border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}
.cta-form-checkbox span { font-size: 12px; color: var(--fg2); line-height: 1.55; }

.cta-form-actions { display: flex; gap: 12px; flex-wrap: wrap; }

/* Thanks-Screen */
.cta-screen-thanks {
  display: flex; flex-direction: column; align-items: flex-start; gap: 24px;
}
.cta-form-check {
  width: 96px; height: 96px;
  border-radius: 50%;
  background: rgba(51,227,247,0.08);
  border: 1px solid rgba(51,227,247,0.25);
  display: flex; align-items: center; justify-content: center;
}
.cta-form-check svg { width: 64px; height: 64px; fill: none; }
.cta-form-check svg circle {
  stroke: #33e3f7; stroke-width: 2; stroke-dasharray: 151; stroke-dashoffset: 151;
}
.cta-form-check svg path {
  stroke: #33e3f7; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round;
  stroke-dasharray: 60; stroke-dashoffset: 60;
}
.cta-screen-thanks.is-active .cta-form-check svg circle { animation: checkDrawCircle 700ms ease-out forwards; }
.cta-screen-thanks.is-active .cta-form-check svg path   { animation: checkDrawPath 500ms ease-out 500ms forwards; }
@keyframes checkDrawCircle { to { stroke-dashoffset: 0; } }
@keyframes checkDrawPath   { to { stroke-dashoffset: 0; } }
.cta-form-thanks-text { font-size: clamp(16px, 1.5vw, 18px); color: var(--fg2); max-width: 480px; line-height: 1.55; margin: 0; }


/* Seiten-spezifisch: CTA-Section füllt den Viewport, Headline immer Versal (DS 3.2) */
.cta { min-height: 100vh; padding: 160px var(--gutter) 140px; display: flex; flex-direction: column; justify-content: center; }
.cta-stage { width: 100%; max-width: 1400px; margin: 0 auto; }
.cta-eyebrow { grid-column: 1 / 7; }
/* Opener zweizeilig: Einzug der Outline-Zeile wie Zeile 2 der Treppe; line-height 1 (Umlaut-Reserve, s. memory.md) */
.cta-title { line-height: 1; }
.cta-title .l3 { padding-left: clamp(40px, 6vw, 120px); }
/* Danke-Screen: Weiter-Button + Telefon */
.cta-screen-thanks .cta-form-actions { margin-top: 8px; }
/* Schritt 4: HubSpot-Kalender braucht mehr Breite als die Formular-Schritte */
.cta-screen-booking { max-width: 960px; }
.meetings-iframe-container { min-height: 640px; border-radius: 14px; overflow: hidden; background: var(--bg3); border: 1px solid var(--border); }
.meetings-iframe-container iframe { display: block; width: 100% !important; border: 0; }
.cta-title { text-transform: uppercase; font-size: clamp(44px, 6.4vw, 112px); }

/* ─── Custom-Dropdown (aus dem Akquise-Rechner, für Branche + Markenbekanntheit) ─── */

/* Selects — Label schwebt über der Oberkante, damit linke + rechte Spalte oben bündig sind */
.calc-selects { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.calc-select-wrap { position: relative; }
.calc-select-wrap label {
  position: absolute; bottom: calc(100% + 8px); left: 0;
  display: block; font-size: 10px; font-weight: 700; color: var(--fg3);
  letter-spacing: 0.18em; text-transform: uppercase; white-space: nowrap;
}
.calc-select-wrap .sel-outer { position: relative; }
.calc-select-wrap select { display: none; }

.calc-select-trigger {
  width: 100%; background: var(--bg3); border: 1px solid var(--border);
  border-radius: 10px; padding: 14px 18px; color: #fff;
  font-family: 'Montserrat', sans-serif; font-size: 13px; font-weight: 500;
  cursor: pointer; text-align: left;
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  transition: border-color 200ms, background 200ms;
}
.calc-select-trigger:hover { border-color: var(--border-acc); }
.calc-select-trigger[aria-expanded="true"] { border-color: var(--plum); background: rgba(122,84,255,0.06); }
.calc-select-trigger .select-value { flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.calc-select-trigger .select-arrow {
  width: 0; height: 0; flex-shrink: 0;
  border-left: 5px solid transparent;
  border-right: 5px solid transparent;
  border-top: 5px solid var(--fg3);
  transition: transform 220ms ease, border-top-color 220ms;
}
.calc-select-trigger[aria-expanded="true"] .select-arrow {
  transform: rotate(180deg);
  border-top-color: var(--plum);
}

.calc-select-list {
  position: absolute; top: calc(100% + 6px); left: 0; right: 0;
  background: var(--bg3);
  border: 1px solid rgba(122,84,255,0.3);
  border-radius: 12px;
  padding: 6px;
  list-style: none; margin: 0;
  z-index: 100;
  max-height: 280px; overflow-y: auto;
  opacity: 0; visibility: hidden; transform: translateY(-6px);
  transition: opacity 180ms ease, visibility 180ms ease, transform 180ms ease;
  box-shadow: 0 16px 50px rgba(0,0,0,0.55);
}
.calc-select-list.open { opacity: 1; visibility: visible; transform: translateY(0); }
.calc-select-list::-webkit-scrollbar { width: 6px; }
.calc-select-list::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.15); border-radius: 999px; }
.calc-select-option {
  padding: 11px 14px; border-radius: 8px;
  font-size: 13px; font-weight: 500;
  color: var(--fg2); cursor: pointer;
  transition: background 150ms, color 150ms;
}
.calc-select-option:hover { background: rgba(122,84,255,0.12); color: #fff; }
.calc-select-option.selected { background: rgba(122,84,255,0.18); color: var(--plum); font-weight: 600; }

/* ─── FOOTER ─── */
footer {
  padding: 96px var(--gutter) 200px;
  border-top: 1px solid var(--border);
  background: var(--bg);
  position: relative; overflow: hidden;
}
footer::before {
  content: ''; position: absolute; inset: 0;
  pointer-events: none; z-index: 0;
  background-image:
    linear-gradient(rgba(122,84,255,0.22) 1px, transparent 1px),
    linear-gradient(90deg, rgba(122,84,255,0.22) 1px, transparent 1px);
  background-size: 36px 36px;
  -webkit-mask-image: radial-gradient(ellipse 70% 75% at 50% 0%, #000 0%, transparent 75%);
          mask-image: radial-gradient(ellipse 70% 75% at 50% 0%, #000 0%, transparent 75%);
}
.footer-grid {
  max-width: 1400px; margin: 0 auto;
  display: grid; grid-template-columns: 2fr 1.4fr 1fr 1fr; gap: 48px;
  align-items: start;
  position: relative; z-index: 1;
}
.footer-col h6 {
  font-size: 10px; font-weight: 700;
  letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--plum); margin-bottom: 20px;
}
.footer-brand .footer-logo { height: 48px; margin-bottom: 28px; display: block; }
.footer-brand p {
  font-size: 13px; color: var(--fg3);
  line-height: 1.7; max-width: 320px;
}
.footer-col ul {
  list-style: none; padding: 0; margin: 0;
  display: flex; flex-direction: column; gap: 10px;
}
.footer-col a {
  font-size: 13px; color: var(--fg2);
  text-decoration: none; transition: color 200ms;
}
.footer-col a:hover { color: #fff; }
.footer-contact-address { font-size: 13px; color: var(--fg2); line-height: 1.7; }
.footer-contact-channels { font-size: 13px; color: var(--fg2); line-height: 1.7; margin-top: 14px; }
.footer-contact-channels a { color: var(--fg2); }
.footer-bottom {
  max-width: 1400px; margin: 64px auto 0;
  padding-top: 32px; border-top: 1px solid var(--border);
  display: flex; flex-wrap: wrap; justify-content: space-between;
  align-items: center; gap: 16px;
  font-size: 11px; color: var(--fg3); letter-spacing: 0.04em;
  position: relative; z-index: 1;
}
.footer-bottom span { line-height: 1.6; }

/* ─── EDGE BLUR – nur oben ─── */
/* ─── EDGE BLUR (progressive top/bottom blur strips) ─── */
.edge-blur {
  position: fixed; left: 0; right: 0;
  height: 140px; pointer-events: none; z-index: 50;
}
.edge-blur-top { top: 0; }
.edge-blur-bottom { bottom: 0; transform: scaleY(-1); }
.edge-blur-layer { position: absolute; inset: 0; }
.edge-blur-layer:nth-child(1) {
  backdrop-filter: blur(0.5px); -webkit-backdrop-filter: blur(0.5px);
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 100%);
          mask-image: linear-gradient(to bottom, #000 0%, #000 100%);
}
.edge-blur-layer:nth-child(2) {
  backdrop-filter: blur(1px); -webkit-backdrop-filter: blur(1px);
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 75%, transparent 87.5%);
          mask-image: linear-gradient(to bottom, #000 0%, #000 75%, transparent 87.5%);
}
.edge-blur-layer:nth-child(3) {
  backdrop-filter: blur(2px); -webkit-backdrop-filter: blur(2px);
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 62.5%, transparent 75%);
          mask-image: linear-gradient(to bottom, #000 0%, #000 62.5%, transparent 75%);
}
.edge-blur-layer:nth-child(4) {
  backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px);
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 50%, transparent 62.5%);
          mask-image: linear-gradient(to bottom, #000 0%, #000 50%, transparent 62.5%);
}
.edge-blur-layer:nth-child(5) {
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 37.5%, transparent 50%);
          mask-image: linear-gradient(to bottom, #000 0%, #000 37.5%, transparent 50%);
}
.edge-blur-layer:nth-child(6) {
  backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 25%, transparent 37.5%);
          mask-image: linear-gradient(to bottom, #000 0%, #000 25%, transparent 37.5%);
}
.edge-blur-layer:nth-child(7) {
  backdrop-filter: blur(32px); -webkit-backdrop-filter: blur(32px);
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 12.5%, transparent 25%);
          mask-image: linear-gradient(to bottom, #000 0%, #000 12.5%, transparent 25%);
}


/* ─── ANIMATIONS ─── */
.reveal { opacity: 0; transform: translateY(28px); transition: opacity 700ms ease, transform 700ms ease; }
.reveal.visible { opacity: 1; transform: none; }
.reveal-delay-1 { transition-delay: 100ms; }
.reveal-delay-2 { transition-delay: 200ms; }
.reveal-delay-3 { transition-delay: 300ms; }
@media (prefers-reduced-motion: reduce) { .reveal { opacity: 1; transform: none; transition: none; } }

/* ─── ≤ 1100px — Tablet ─── */
@media (max-width: 1100px) {
  :root { --gutter: 40px; }
  .cta { padding: 140px var(--gutter) 120px; }
  .cta-title .l2 { padding-left: clamp(20px, 4vw, 60px); }
  .cta-title .l3 { padding-left: clamp(40px, 8vw, 120px); }
  .cta-grid          { grid-template-columns: 1fr; }
  .cta-eyebrow,
  .cta-text          { grid-column: 1 / -1; }
  .cta-actions-wrap  { grid-column: 1 / -1; align-items: stretch; }
  .cta-actions       { justify-content: flex-start; }
  .cta-title         { grid-column: 1 / -1; justify-self: start; } /* sonst 12 implizite Spalten, Text wird schmal */
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 40px 32px; }
}

/* ─── ≤ 768px — Mobile ─── */
@media (max-width: 768px) {
  :root { --gutter: 20px; }
  .cta        { padding: 110px var(--gutter) 80px; min-height: auto; }
  footer      { padding: 64px var(--gutter) 120px; }
  nav         { height: 64px; }
  .nav-logo   { height: 32px; }
  .edge-blur  { height: 90px; }
  .cta-title span,
  .cta-title  { font-size: clamp(28px, 8.4vw, 56px); } /* Versal: Zeilen müssen in 350px passen */
  .cta-title .l2 { padding-left: clamp(16px, 4vw, 32px); }
  .cta-title .l3 { padding-left: 20px; }
  .calc-select-wrap label { position: static; margin-bottom: 8px; }
  .btn { white-space: normal; text-align: center; }
  .btn-compact { white-space: nowrap; padding: 9px 16px; gap: 8px; }
  .cta-actions .btn { width: 100%; }
  .cta-form-screen      { padding: 0 4px; }
  .cta-form-grid        { grid-template-columns: 1fr; gap: 18px; }
  .cta-form-title       { font-size: clamp(24px, 7vw, 32px); }
  .cta-form-actions     { flex-direction: column; }
  .cta-form-actions .btn { width: 100%; }
  .cta-stage            { min-height: 720px; }
  .footer-grid    { grid-template-columns: 1fr; gap: 32px; }
  .footer-bottom  { flex-direction: column; align-items: flex-start; }
}

/* ─── ≤ 480px — Phone ─── */
@media (max-width: 480px) {
  .cta-title span,
  .cta-title { font-size: clamp(26px, 8.2vw, 40px); }
  .cta-stage    { min-height: 820px; }
  .cta-form-consent { font-size: 10.5px; }
  .footer-brand .footer-logo { height: 36px; }
}
