/* ============================================================
   LumaMed — Ad-Landingpages "360° Premium Check-up"
   Geteilt von /dus/ga26100 + /fra/ga26100 (lp-ga26100.html)
   und     /dus/26010   + /fra/26010   (lp-26010.html).

   Umsetzung des Claude-Designs "Landing Page 1 Generic v4" bzw.
   "Landing Page 2 Ang. PKV v2". Der Prototyp misst in Container-
   Einheiten (cqi), weil er in einem simulierten Geraeterahmen lief;
   hier stehen Viewport-Einheiten und Media Queries. Die Umrechnung
   ist 1:1 (der Container war immer die volle Breite).

   Bewusst KEIN container-type auf dem Seitenwrapper: `contain: layout`
   macht das Element zum Containing Block fuer position:fixed — Drawer
   und Video-Overlay wuerden dann an der Dokumenthoehe kleben statt am
   Viewport. Drawer/Lightbox liegen deshalb am Ende von <body>.

   Alle Klassen mit lp- Praefix, damit nichts in hifi.css hineinregiert.
   hifi.css liefert nur die Tokens und das Cookie-Banner.
   ============================================================ */

body.lp-body {
  background: var(--lm-creme);
  color: var(--lm-dark-blue);
  font-family: var(--font-sans);
  font-size: 18px;
  line-height: 1.5;
}
.lp-body [id] { scroll-margin-top: 96px; }

/* Das `hidden`-Attribut ist auf diesen Seiten der einzige Schalter: Akkordeon-
   Koerper, Danke-Block, Patientenstimmen-Slides, Drawer und Video-Overlay
   haengen alle daran. Die UA-Regel `[hidden] { display: none }` hat aber die
   niedrigste Prioritaet und verliert gegen JEDE Autorenregel mit `display` —
   gegen `.lp-acc__body { display: grid }` genauso wie gegen `img { display:
   block }` aus hifi.css. Ohne diesen Riegel steht die Seite mit allen
   Akkordeons offen, sichtbarer Danke-Meldung und vier uebereinander
   gestapelten Portraits da. Er gilt bewusst fuer alles und mit !important,
   damit eine spaetere `display`-Regel ihn nicht erneut aushebelt. */
.lp-body [hidden] { display: none !important; }

.lp-body {
  --lp-padx: clamp(20px, 4vw, 64px);
  --lp-secy: clamp(64px, 8vw, 96px);
  --lp-clay: #D37D62;
  --lp-clay-lt: #E8977A;
  --lp-clay-dk: #A85539;   /* Mono-Meta auf Creme: 4,6:1 */
  --lp-tint: #FBF4EC;
  --lp-card: #FFFDFA;
  --lp-red: #C0503A;
  --lp-amber: #C98A2E;
  --lp-green: #4C8A62;
}

/* ---------- Grundgeruest ---------- */
.lp-wrap { max-width: 1240px; margin: 0 auto; padding: 0 var(--lp-padx); }
.lp-sec { padding: var(--lp-secy) 0; }
.lp-sec--tint { background: var(--lp-tint); }
.lp-sec--dark { background: var(--lm-dark-blue); color: var(--lm-creme); }
.lp-stack { display: grid; gap: clamp(32px, 4vw, 48px); }
.lp-split { display: flex; flex-wrap: wrap; gap: clamp(32px, 4vw, 64px); align-items: center; }
.lp-split--top { align-items: flex-start; }
.lp-col { flex: 1 1 420px; min-width: 0; display: grid; gap: 24px; align-content: center; }
.lp-col--sm { flex: 1 1 380px; gap: 20px; }
.lp-col--gap20 { gap: 20px; }

/* ---------- Typografie ---------- */
.lp-h1 { font-size: clamp(32px, 3.6vw, 50px); font-weight: 500; line-height: 1.06; margin: 0; text-wrap: balance; }
.lp-h1 strong { font-weight: 700; display: block; }
.lp-h2 { font-size: clamp(28px, 3vw, 42px); font-weight: 500; line-height: 1.1; margin: 0; text-wrap: balance; }
.lp-h2 strong { font-weight: 700; }
.lp-h2--mid { margin: 0 auto; max-width: 26ch; text-align: center; }
.lp-h2--wide { max-width: 34ch; }
.lp-h3 { font-size: clamp(22px, 2.2vw, 28px); font-weight: 700; line-height: 1.2; margin: 0; }
/* Betonung in Ziegelorange. Auf Creme misst das 2,94:1 und liegt damit knapp
   unter den 3:1 für grosse Schrift — so im Design freigegeben, siehe
   docs/DESIGN-SYSTEM.md. Nie für Fliesstext verwenden. */
.lp-accent { color: var(--lp-clay); }
.lp-sec--dark .lp-accent { color: var(--lp-clay-lt); }
.lp-lead { margin: 0; font-size: 17px; line-height: 1.55; color: rgba(6, 43, 81, .72); max-width: 54ch; text-wrap: pretty; }
/* Hero-Subtext einheitlich in kraeftigem Dunkelblau (nicht ausgewaschen). */
.lp-hero .lp-lead { color: var(--lm-dark-blue); }
.lp-p { margin: 0; font-size: 18px; line-height: 1.6; color: rgba(6, 43, 81, .75); max-width: 66ch; text-wrap: pretty; }
.lp-p--plain { color: var(--lm-dark-blue); font-size: 17px; line-height: 1.55; }
.lp-sec--dark .lp-p { color: rgba(255, 250, 244, .75); }
.lp-eyebrow {
  font-family: var(--font-mono); font-size: 13px; font-weight: 500;
  letter-spacing: .04em; text-transform: uppercase; color: var(--lm-dark-blue);
  background: rgba(211, 125, 98, .16); border-radius: 6px; padding: 7px 12px;
  width: fit-content; max-width: 100%; justify-self: start; line-height: 1.35; text-wrap: balance;
}
/* Executive-Callout (lp-26010): ab 1000px steht der Hero nebeneinander und die
   Textspalte ist schmaler. Damit der laengere Callout dort in EINE Zeile passt,
   wird er etwas kleiner gesetzt. Mobil/Tablet bleibt 13px (darf zweizeilig sein). */
@media (min-width: 1000px) {
  .lp-eyebrow--1line { font-size: 11.5px; letter-spacing: .02em; }
}
.lp-label {
  font-family: var(--font-mono); font-size: 13px; font-weight: 500;
  letter-spacing: .09em; text-transform: uppercase; color: rgba(6, 43, 81, .72);
}
.lp-label--clay { color: var(--lp-clay-dk); }
.lp-label--onclay { color: var(--lp-clay-lt); }
.lp-label--ondark { color: rgba(255, 250, 244, .78); }
.lp-meta {
  margin: 14px 0 0; padding-top: 2px; font-family: var(--font-mono);
  font-size: 13px; font-weight: 500; letter-spacing: .08em;
  text-transform: uppercase; color: var(--lp-clay-dk);
}

/* ---------- Kopfzeile ----------
   Bewusst ohne CTA: im Test wirkte ein zweiter Button neben dem Formular
   aufdringlich. Nur das Logo, es fuehrt zurueck auf die Hauptseite. */
.lp-head {
  position: sticky; top: 0; z-index: 100;
  background: rgba(255, 250, 244, .9);
  backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
}
.lp-head__in {
  max-width: 1240px; margin: 0 auto; padding: 10px var(--lp-padx);
  min-height: 72px; display: flex; flex-wrap: wrap; align-items: center;
  justify-content: space-between; gap: 12px 24px;
}
/* Das Logo bleibt bei den im Design gesetzten 21px; die Trefferflaeche des
   Links waere damit aber nur 21px hoch, deshalb hier auf 44px aufgezogen.
   Sichtbar aendert sich nichts, die Kopfzeile ist ohnehin 72px hoch. */
.lp-head__logo { display: inline-flex; align-items: center; min-height: 44px; }
.lp-head__in img { height: 21px; width: auto; flex: none; }
/* #11 Mobil: Header nicht mitlaufen lassen (kein Sticky), bleibt oben und
   scrollt mit der Seite weg. */
@media (max-width: 600px) {
  .lp-head { position: static; }
}

/* ---------- Hero ---------- */
.lp-hero { padding: clamp(40px, 5vw, 72px) 0 var(--lp-secy); }
.lp-hero__col { flex: 1 1 420px; min-width: 0; display: grid; gap: 24px; }
.lp-hero__media { flex: 1.05 1 440px; min-width: 0; display: grid; gap: 16px; }
.lp-hero__img { border-radius: 20px; overflow: hidden; background: var(--lp-tint); }
/* `height: auto` ist hier Pflicht, nicht Kosmetik: die <img> tragen width-/
   height-Attribute (gegen Layout-Shift beim Laden). Ohne eine Autoren-Hoehe
   gewinnt das Attribut, die Box ist damit in beiden Achsen fest und
   `aspect-ratio` wird ignoriert — das Bild stand dann 800px hoch und
   `object-fit: cover` schnitt einen Hochkant-Streifen heraus.
   Gilt genauso fuer .lp-media, .lp-vid und .lp-faq__img weiter unten. */
.lp-hero__img img { width: 100%; height: auto; object-fit: cover; aspect-ratio: 3/2; }

.lp-bullets { display: grid; gap: 8px; }
.lp-bullet { display: grid; grid-template-columns: 26px 1fr; gap: 12px; align-items: start; }
.lp-bullet p { margin: 0; font-size: 17px; line-height: 1.45; }
.lp-bullet__i {
  width: 22px; height: 22px; border-radius: 50%;
  background: rgba(211, 125, 98, .16); color: var(--lp-clay);
  font-size: 13px; font-weight: 700; display: flex;
  align-items: center; justify-content: center; margin-top: 2px;
}
.lp-bullet__i--out {
  background: none; border: 1px solid rgba(6, 43, 81, .24);
  color: rgba(6, 43, 81, .55); font-size: 15px; font-weight: 400;
}

.lp-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 10px; }
.lp-stat { border: 1px solid rgba(211, 125, 98, .45); border-radius: 16px; padding: 16px 18px; min-width: 0; }
.lp-stat__n {
  font-family: var(--font-mono); font-size: 24px; line-height: 1;
  color: var(--lp-clay); font-variant-numeric: tabular-nums;
}
.lp-stat__l { font-size: 15px; color: rgba(6, 43, 81, .72); margin-top: 8px; line-height: 1.35; }

/* ---------- Formular ---------- */
.lp-form { display: grid; gap: 8px; }
.lp-form__row { display: flex; flex-wrap: wrap; gap: 10px; }
.lp-in {
  flex: 1 1 200px; min-width: 0; width: 100%;
  padding: 14px 15px; border: 1px solid rgba(6, 43, 81, .24); border-radius: 8px;
  background: #FFFFFF; color: var(--lm-dark-blue); font-size: 17px;
  font-family: inherit; box-shadow: 0 1px 3px rgba(6, 43, 81, .07);
}
.lp-in::placeholder { color: rgba(6, 43, 81, .55); }
.lp-form__err {
  margin: 0; padding: 12px 15px; background: rgba(192, 80, 58, .1);
  border: 1px solid rgba(192, 80, 58, .45); border-radius: 8px;
  font-size: 17px; line-height: 1.45; color: #8E3624;
}
.lp-form__done {
  display: grid; gap: 12px; padding: 20px 22px;
  border: 1px solid rgba(211, 125, 98, .5); border-radius: 16px;
}
.lp-form__done b { display: block; font-size: 20px; font-weight: 600; line-height: 1.25; }
.lp-form__done p { margin: 0; font-size: 17px; line-height: 1.55; color: rgba(6, 43, 81, .72); }
/* Honeypot: Bots fuellen das Feld aus, echte Nutzer sehen es nie. */
.lp-hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }

.lp-rating {
  display: flex; align-items: center; justify-content: center; gap: 12px;
  margin-top: 6px; padding: 10px 4px; text-decoration: none; cursor: pointer;
  background: none; border: 0; font: inherit; color: inherit; width: 100%;
}
.lp-rating:hover { opacity: .7; }
.lp-rating__stars { font-size: 20px; line-height: 1; color: var(--lp-clay); letter-spacing: 2px; }
.lp-rating__n { font-size: 17px; font-weight: 600; }
/* Anzahl der Bewertungen (z. B. „200+"), in Clay abgesetzt vom Score. */
.lp-rating__count { font-size: 17px; font-weight: 700; color: var(--lp-clay); white-space: nowrap; }
.lp-rating__t { font-size: 17px; color: rgba(6, 43, 81, .72); text-decoration: underline; text-underline-offset: 3px; }
/* Mobil: Bewertungs-Zeile bleibt einreihig (Text ist per .lp-only-dt gekuerzt).
   Mit „200+" davor etwas enger und leicht kleiner, damit alles in eine Zeile
   passt, auch auf schmalen Geraeten. */
@media (max-width: 600px) {
  .lp-rating { gap: 8px; flex-wrap: nowrap; }
  .lp-rating__n, .lp-rating__t, .lp-rating__count { white-space: nowrap; }
}
/* Nur die Zeile mit „200+" (LP3) auf sehr schmalen Geraeten leicht verkleinern,
   damit sie einzeilig bleibt. Andere LPs ohne Anzahl bleiben unberuehrt. */
@media (max-width: 380px) {
  .lp-rating:has(.lp-rating__count) { gap: 6px; }
  .lp-rating:has(.lp-rating__count) .lp-rating__stars { font-size: 17px; letter-spacing: 1px; }
  .lp-rating:has(.lp-rating__count) .lp-rating__n,
  .lp-rating:has(.lp-rating__count) .lp-rating__t,
  .lp-rating:has(.lp-rating__count) .lp-rating__count { font-size: 15px; }
}

/* ---------- Buttons ---------- */
.lp-btn {
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 17px; font-weight: 600; font-family: inherit;
  padding: 16px 28px; border-radius: 8px; cursor: pointer; text-decoration: none;
  border: 1px solid var(--lp-clay); background: var(--lp-clay); color: var(--lm-creme);
}
.lp-btn:hover { opacity: .9; }
.lp-btn--block { width: 100%; margin-top: 4px; padding: 17px 24px; }
.lp-btn--inv { border-color: var(--lm-creme); background: var(--lm-creme); color: var(--lm-dark-blue); }
.lp-btn--inv:hover { opacity: .92; }
.lp-btn[disabled] { opacity: .6; cursor: default; }
.lp-cta-mid { justify-self: center; }
.lp-cta-start { justify-self: start; }

/* ---------- Akkordeon (Warum / LumaScan / Scores / PLUS / FAQ) ---------- */
.lp-acc { display: grid; }
.lp-acc__item { border-top: 1px solid rgba(6, 43, 81, .14); }
.lp-acc__end { border-top: 1px solid rgba(6, 43, 81, .14); }
.lp-acc__btn {
  width: 100%; display: flex; align-items: flex-start; justify-content: space-between;
  gap: 20px; background: transparent; border: 0; padding: 20px 0; cursor: pointer;
  text-align: left; color: var(--lm-dark-blue); font-family: inherit;
  font-size: 18px; font-weight: 600; line-height: 1.4;
}
.lp-acc__sign { font-family: var(--font-mono); font-size: 20px; color: var(--lp-clay); line-height: 1.2; flex: none; }
.lp-acc__body { display: grid; gap: 16px; padding: 0 32px 22px 0; }
/* :not(.lp-meta), damit die Mono-Dauerzeile ihre eigene Farbe behält —
   ein reines `.lp-acc__body p` wäre spezifischer als `.lp-meta`. */
.lp-acc__body p:not(.lp-meta) { margin: 0; font-size: 17px; line-height: 1.55; color: rgba(6, 43, 81, .75); max-width: 66ch; text-wrap: pretty; }
.lp-acc__body .lp-bullet p { color: var(--lm-dark-blue); }

/* Zeilenvariante in den Paketkarten: mittig statt oben, engere Zeilen. */
.lp-acc--rows .lp-acc__btn { align-items: center; gap: 16px; padding: 16px 0; line-height: 1.35; }
.lp-acc--rows .lp-acc__sign { line-height: 1; }
.lp-acc--rows .lp-acc__label { display: flex; align-items: center; gap: 12px; min-width: 0; }
.lp-dot { width: 10px; height: 10px; border-radius: 50%; flex: none; }

/* ---------- 360° Fruehwarnsystem (dunkel) ---------- */
.lp-risks { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(330px, 100%), 1fr)); gap: 16px; align-items: start; }
.lp-risk { min-width: 0; background: rgba(255, 250, 244, .06); border: 1px solid rgba(255, 250, 244, .18); border-radius: 18px; }
.lp-risk__btn {
  width: 100%; display: flex; align-items: center; justify-content: space-between;
  gap: 16px; background: transparent; border: 0; padding: 18px 22px; cursor: pointer;
  text-align: left; color: var(--lm-creme); font-family: inherit;
  font-size: 18px; font-weight: 600; line-height: 1.35;
}
.lp-risk__btn:hover { opacity: .9; }
.lp-risk__t { display: flex; align-items: center; gap: 12px; }
.lp-risk__t .lp-dot { width: 11px; height: 11px; }
.lp-risk__sign { font-family: var(--font-mono); font-size: 20px; color: var(--lp-clay-lt); line-height: 1; flex: none; }
.lp-riskhead { display: flex; flex-wrap: wrap; gap: 32px; align-items: flex-end; justify-content: space-between; }
.lp-riskhead .lp-h2 { max-width: 22ch; color: var(--lm-creme); }
.lp-riskhead .lp-p { max-width: 46ch; }

/* ---------- Transparenz-Chips ---------- */
.lp-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.lp-chip { font-size: 14px; font-weight: 500; border: 1px solid rgba(211, 125, 98, .5); border-radius: 999px; padding: 7px 13px; }
/* #14 Mobil: Kacheln kleiner, damit die fuenf Chips in max. 3 Reihen passen. */
@media (max-width: 600px) {
  .lp-chips { gap: 6px; }
  .lp-chips .lp-chip { font-size: 12px; padding: 5px 10px; }
}
.lp-chip--mono {
  font-family: var(--font-mono); font-size: 13px; font-weight: 400;
  color: rgba(6, 43, 81, .75); background: var(--lp-tint);
  border-color: rgba(6, 43, 81, .12); padding: 6px 11px;
}
.lp-media { flex: 1 1 380px; min-width: 0; border-radius: 20px; overflow: hidden; background: var(--lp-tint); }
.lp-media img { width: 100%; height: auto; object-fit: cover; aspect-ratio: 3/2; }
/* #10 MRT-Bild als anklickbares Video. Oeffnet im In-Page-Popup; der Klick
   wird zusaetzlich per data-lp-track an Linkly gemeldet. Als <button>, daher
   Button-Reset wie bei .lp-vid. */
.lp-media--video { position: relative; display: block; width: 100%; padding: 0; border: 0; background: var(--lp-tint); font: inherit; color: inherit; text-align: inherit; cursor: pointer; }

/* ---------- Ablauf ---------- */
.lp-steps { display: flex; flex-wrap: wrap; gap: 20px; }
.lp-step {
  flex: 1 1 300px; min-width: 0; background: var(--lp-tint);
  border: 1px solid rgba(6, 43, 81, .10); border-radius: 20px;
  overflow: hidden; display: flex; flex-direction: column;
}
.lp-step > img { width: 100%; height: 180px; object-fit: cover; }
/* Anamnese-Ring: komplett zeigen (nicht beschneiden), cremefarbenes Feld drumherum. */
.lp-step > img.lp-anamnese-ring { object-fit: contain; background: var(--lm-creme); }
.lp-step__in { padding: 24px 26px 28px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.lp-step__h { display: flex; align-items: center; gap: 12px; font-size: 19px; font-weight: 600; }
.lp-step__in p:not(.lp-meta) { margin: 0; flex: 1; font-size: 17px; line-height: 1.55; color: rgba(6, 43, 81, .75); max-width: 66ch; text-wrap: pretty; }
.lp-step__in .lp-meta { flex: none; }
.lp-num {
  width: 34px; height: 34px; border-radius: 50%; flex: none;
  border: 1px solid rgba(211, 125, 98, .55); color: var(--lp-clay);
  font-family: var(--font-mono); font-size: 17px;
  display: flex; align-items: center; justify-content: center;
}

/* ---------- Pakete ---------- */
.lp-pak { display: flex; flex-wrap: wrap; gap: clamp(32px, 4vw, 48px) 24px; align-items: flex-start; }
.lp-pak__intro { flex: 1 1 100%; display: grid; gap: clamp(24px, 3vw, 32px); }
.lp-pak__cols { display: flex; flex-wrap: wrap; gap: clamp(24px, 3vw, 48px); }
.lp-pak__col { flex: 1 1 320px; min-width: 0; display: grid; gap: 16px; align-content: start; }
.lp-pak__col .lp-bullet p { font-size: 17px; line-height: 1.5; }
.lp-pak__col .lp-bullet--out p { color: rgba(6, 43, 81, .75); }
.lp-card {
  flex: 1 1 100%; background: var(--lp-card); border: 1px solid rgba(6, 43, 81, .16);
  border-radius: 20px; padding: clamp(24px, 3vw, 36px); display: grid; gap: 24px;
}
.lp-card--dark { background: var(--lm-dark-blue); color: var(--lm-creme); border: 0; padding: clamp(24px, 3vw, 32px); gap: 20px; }
.lp-card--dark .lp-acc__item, .lp-card--dark .lp-acc__end { border-top-color: rgba(255, 250, 244, .18); }
.lp-card--dark .lp-acc__btn { color: var(--lm-creme); }
.lp-card--dark .lp-acc__sign { color: var(--lp-clay-lt); }
.lp-card--dark .lp-acc__body { padding: 0 16px 20px 22px; gap: 12px; }
.lp-card--dark .lp-acc__body p:not(.lp-meta) { color: rgba(255, 250, 244, .8); max-width: none; }
.lp-card__title { display: grid; gap: 8px; }
.lp-card__title h2 { font-size: clamp(28px, 3vw, 42px); font-weight: 700; line-height: 1.1; margin: 0; }
.lp-scanlist { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(340px, 100%), 1fr)); gap: 0 clamp(24px, 3vw, 40px); }
.lp-scanlist .lp-acc__end { grid-column: 1 / -1; }
.lp-scanlist .lp-acc__body { padding: 0 24px 24px 22px; }
.lp-price { display: grid; gap: 20px; justify-items: start; padding-top: 4px; }
.lp-price__n {
  font-family: var(--font-mono); font-size: clamp(34px, 3.6vw, 44px);
  line-height: 1; font-variant-numeric: tabular-nums; margin-top: 10px;
}
.lp-card--dark .lp-price { padding-top: 16px; border-top: 1px solid rgba(255, 250, 244, .18); gap: 0; }
.lp-card--dark .lp-price__n { font-size: clamp(32px, 3.4vw, 40px); color: var(--lm-creme); }
.lp-pak__side { flex: 1 1 100%; display: grid; gap: 24px; grid-template-columns: repeat(auto-fit, minmax(min(360px, 100%), 1fr)); align-items: start; }
/* Kostenkarte steht links, solange zwei Spalten passen — der Preis der
   PLUS-Karte soll direkt neben der Erstattungsfrage stehen. */
.lp-kosten { order: -1; gap: 16px; padding: clamp(24px, 3vw, 32px); align-content: start; }
.lp-kosten p { margin: 0; font-size: 17px; line-height: 1.55; }
.lp-kosten__list { display: grid; gap: 8px; }
.lp-kosten__row { display: grid; grid-template-columns: 24px 1fr; gap: 10px; align-items: start; }
.lp-kosten__row > span { width: 9px; height: 9px; border-radius: 50%; background: var(--lp-clay); margin-top: 8px; }
.lp-kosten__row p { color: rgba(6, 43, 81, .75); }
.lp-kosten__row p strong { color: var(--lm-dark-blue); font-weight: 700; }
.lp-kosten__note { color: rgba(6, 43, 81, .72); text-wrap: pretty; }

/* ---------- Patientenstimme ---------- */
.lp-testi { display: flex; flex-wrap: wrap; gap: clamp(24px, 3vw, 40px); align-items: center; }
.lp-testi__media { flex: 1 1 320px; max-width: 440px; min-width: 0; display: grid; gap: 16px; }
.lp-testi__frame { position: relative; border-radius: 20px; overflow: hidden; background: var(--lm-dark-blue); aspect-ratio: 4/5; }
/* Name und Rolle sind in die Fotos eingebrannt (wie auf der Startseite), es
   gibt hier deshalb bewusst keine zweite Textebene. Der Bildausschnitt sitzt
   so, dass Gesicht und eingebrannte Zeile beide im 4:5-Rahmen bleiben. */
.lp-testi__frame img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 55%; }
.lp-play {
  position: absolute; top: 46%; left: 50%; transform: translate(-50%, -50%);
  width: 84px; height: 84px; border-radius: 50%; border: 1px solid rgba(255, 250, 244, .55);
  background: rgba(255, 250, 244, .92); cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: background-color var(--dur-fast) var(--ease-standard),
              transform var(--dur-fast) var(--ease-standard);
}
/* Gleiche Handschrift wie beim Video-Knopf: deckend werden reicht als
   Rueckmeldung nicht, der Knopf waechst mit. */
.lp-play:hover { background: var(--lm-creme); transform: translate(-50%, -50%) scale(1.07); }
.lp-play::before {
  content: ""; display: block; width: 0; height: 0;
  border-left: 20px solid var(--lm-dark-blue);
  border-top: 12px solid transparent; border-bottom: 12px solid transparent; margin-left: 6px;
}
.lp-arrow {
  position: absolute; top: 46%; transform: translateY(-50%);
  width: 44px; height: 44px; border-radius: 50%;
  border: 1px solid rgba(211, 125, 98, .85); background: rgba(6, 43, 81, .55);
  color: var(--lp-clay-lt); font-size: 20px; line-height: 1; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
}
.lp-arrow:hover { background: var(--lp-clay); color: var(--lm-creme); border-color: var(--lp-clay); }
.lp-arrow--prev { left: 14px; }
.lp-arrow--next { right: 14px; }
/* #8 Mobil: Testimonial-Pfeile gefuellt in Clay mit weissem (creme) Pfeil. */
@media (max-width: 600px) {
  .lp-testi__frame .lp-arrow {
    background: var(--lp-clay); border-color: var(--lp-clay); color: var(--lm-creme);
  }
}
.lp-dots { display: flex; align-items: center; justify-content: center; gap: 2px; }
.lp-dots button {
  height: 44px; min-width: 24px; padding: 0 6px; border: 0; background: transparent;
  cursor: pointer; display: flex; align-items: center; justify-content: center;
}
.lp-dots span { display: block; width: 9px; height: 9px; border-radius: 999px; background: rgba(6, 43, 81, .24); }
.lp-dots button[aria-current="true"] span { width: 26px; background: var(--lp-clay); }
.lp-testi__text { flex: 1 1 340px; min-width: 0; display: grid; gap: 24px; }
.lp-quote { margin: 0; font-size: clamp(20px, 2vw, 26px); line-height: 1.35; text-wrap: pretty; }
.lp-numlist { display: grid; gap: 12px; }
.lp-numlist > div { display: grid; grid-template-columns: 34px 1fr; gap: 14px; align-items: start; }
.lp-numlist p { margin: 0; font-size: 17px; line-height: 1.55; }
.lp-numlist span {
  width: 32px; height: 32px; border-radius: 50%; flex: none;
  border: 1px solid rgba(211, 125, 98, .55); background: rgba(211, 125, 98, .12);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-mono); font-size: 16px; font-weight: 500; color: var(--lp-clay);
}

/* ---------- 02 Mythen der Krebsvorsorge (nur lp-26002) ----------
   Zweispaltig wie .lp-split: links drei Absaetze, rechts ein Bild. Eigene
   Klassen, damit nichts an den geteilten Hero-/Media-Regeln haengt. */
.lp-myth { display: flex; flex-wrap: wrap; gap: clamp(32px, 4vw, 64px); align-items: center; }
.lp-myth__text { flex: 1 1 420px; min-width: 0; display: grid; gap: 20px; }
.lp-myth__text p { margin: 0; font-size: 18px; line-height: 1.6; color: var(--lm-dark-blue); max-width: 68ch; text-wrap: pretty; }
.lp-myth__soft { color: rgba(6, 43, 81, .75); }
.lp-myth__media { flex: 1 1 440px; min-width: 0; border-radius: 20px; overflow: hidden; background: var(--lp-card); }
/* Das Foto ist hochformatig; im 16:9-Rahmen den Ausschnitt nach oben ruecken,
   damit die Augen beider Personen (auch der stehenden hinten) sichtbar bleiben. */
.lp-myth__media img { width: 100%; height: auto; object-fit: cover; object-position: 50% 35%; aspect-ratio: 16/9; display: block; }
/* Mobil zeigt der Mythen-Abschnitt nur den Text; das Sonografie-Bild entfaellt. */
@media (max-width: 600px) { .lp-myth__media { display: none; } }

/* ---------- Video-Thumbnail (Sektion "Vermeidbar" / Hero Seite 2) ---------- */
.lp-vid {
  position: relative; display: block; width: 100%; padding: 0; border: 0;
  border-radius: 20px; overflow: hidden; background: var(--lp-tint); cursor: pointer;
}
.lp-vid img { width: 100%; height: auto; object-fit: cover; aspect-ratio: 16/9; }
.lp-vid--3x2 img { aspect-ratio: 3/2; }
.lp-vid__scrim { position: absolute; inset: 0; background: linear-gradient(to top, rgba(6, 43, 81, .5) 0%, rgba(6, 43, 81, .08) 55%, rgba(6, 43, 81, 0) 100%); }
.lp-vid__scrim--flat { background: rgba(6, 43, 81, .22); display: flex; align-items: center; justify-content: center; }
.lp-vid__play {
  position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
  width: 80px; height: 80px; border-radius: 50%;
  border: 1px solid rgba(255, 250, 244, .55); background: rgba(255, 250, 244, .92);
  display: flex; align-items: center; justify-content: center;
  transition: background-color var(--dur-fast) var(--ease-standard),
              transform var(--dur-fast) var(--ease-standard);
}
.lp-vid__play::before {
  content: ""; display: block; width: 0; height: 0;
  border-left: 19px solid var(--lm-dark-blue);
  border-top: 12px solid transparent; border-bottom: 12px solid transparent; margin-left: 6px;
}
.lp-vid__play--clay { position: static; transform: none; width: 76px; height: 76px; border: 0; background: var(--lp-clay); }
.lp-vid__play--clay::before { border-left-color: var(--lm-creme); }
/* Hover: der helle Knopf wird voll deckend, der Clay-Knopf eine Stufe dunkler,
   beide wachsen leicht. Ohne das Wachsen passiert beim hellen Knopf sichtbar
   nichts — er steht ohnehin schon auf 92 % Creme.
   Die Clay-Zeile ist Pflicht, kein Feinschliff: `.lp-vid:hover .lp-vid__play`
   ist spezifischer als `.lp-vid__play--clay` und faerbte den Knopf sonst creme.
   Sein Dreieck ist ebenfalls creme, uebrig blieb ein leerer weisser Kreis.
   Dunkler statt heller, weil das creme Dreieck auf --lp-clay-dk mit 5,5:1
   steht statt mit 2,9:1 auf Clay. */
.lp-vid:hover .lp-vid__play { background: var(--lm-creme); transform: translate(-50%, -50%) scale(1.07); }
.lp-vid:hover .lp-vid__play--clay { background: var(--lp-clay-dk); transform: scale(1.07); }
.lp-vid__cap {
  position: absolute; left: 0; right: 0; bottom: 0; padding: 44px 22px 20px;
  background: linear-gradient(to top, rgba(6, 43, 81, .78) 0%, rgba(6, 43, 81, .34) 55%, rgba(6, 43, 81, 0) 100%);
  color: var(--lm-creme); font-size: 17px; font-weight: 600; line-height: 1.35; text-align: left;
}

/* ---------- FAQ-Vergleichstabelle (in der Antwort) ---------- */
.lp-cmp { display: grid; gap: 12px; }
.lp-cmp__row { background: var(--lp-card); border: 1px solid rgba(6, 43, 81, .16); border-radius: 16px; overflow: hidden; }
.lp-cmp__label { padding: 14px 16px 10px; font-size: 17px; font-weight: 700; line-height: 1.4; color: var(--lm-dark-blue); }
.lp-cmp__cols { display: flex; flex-wrap: wrap; }
.lp-cmp__a, .lp-cmp__b { flex: 1 1 180px; min-width: 0; font-size: 17px; line-height: 1.45; }
.lp-cmp__a { padding: 0 16px 14px; color: rgba(6, 43, 81, .75); }
.lp-cmp__a strong { font-weight: 600; color: var(--lm-dark-blue); }
.lp-cmp__b { padding: 14px 16px; background: var(--lp-tint); }
.lp-cmp__b strong { font-weight: 700; }

/* ---------- FAQ ---------- */
.lp-faq { display: flex; flex-wrap: wrap; gap: clamp(32px, 4vw, 64px); align-items: flex-start; }
.lp-faq__intro { flex: 1 1 300px; min-width: 0; display: grid; gap: 24px; align-content: start; }
.lp-faq__img { border-radius: 20px; overflow: hidden; background: var(--lp-tint); }
.lp-faq__img img { width: 100%; height: auto; object-fit: cover; aspect-ratio: 3/2; }
.lp-faq__list { flex: 1.4 1 460px; min-width: 0; display: grid; }
.lp-faq__list .lp-acc__body { padding: 0 40px 22px 0; }

/* ---------- Google Bewertungen ----------
   Das Trustindex-Plugin laedt sein eigenes <style> NACH dieser Datei und
   gewinnt ueber hoehere Spezifitaet. Die Knopf-Optik erzwingt deshalb
   hifi-lp.js per Inline-Style, sobald der Knopf im DOM auftaucht. */
.lp-reviews { min-height: 120px; }
.lp-reviews__fallback { display: grid; gap: 10px; justify-items: center; text-align: center; }
.lp-reviews__fallback .lp-rating__stars { font-size: 26px; }

/* ---------- Fusszeile ---------- */
.lp-foot { background: var(--lm-dark-blue); color: rgba(255, 250, 244, .72); padding: 44px 0; }
.lp-foot__in { display: flex; flex-wrap: wrap; gap: 28px 40px; align-items: flex-end; justify-content: space-between; }
.lp-foot__in img { height: 20px; width: auto; }
.lp-foot__links { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; }
.lp-foot__links a {
  color: rgba(255, 250, 244, .78); font-size: 17px; padding: 11px 0;
  display: inline-flex; align-items: center; min-height: 40px;
  text-decoration: underline; text-underline-offset: 3px;
}
.lp-foot__links a:hover { color: var(--lm-creme); }
.lp-foot__copy { font-family: var(--font-mono); font-size: 13px; }

/* ---------- Drawer (Erkrankungen, Check-up-Bausteine) ----------
   Bewusst ohne CTA: wer gerade einen Baustein liest, soll nicht
   mitten im Lesen weggeschickt werden. */
.lp-drawer {
  position: fixed; inset: 0; z-index: 150;
  background: rgba(6, 43, 81, .55); backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(3px);
  animation: lp-fade .18s ease-out; display: flex; justify-content: flex-end;
}
.lp-drawer__panel {
  width: min(520px, 100%); height: 100%; background: var(--lm-creme); color: var(--lm-dark-blue);
  overflow-y: auto; animation: lp-slide .28s cubic-bezier(.22, .61, .36, 1);
  box-shadow: -24px 0 60px rgba(6, 43, 81, .28);
}
.lp-drawer__head {
  position: sticky; top: 0; z-index: 1;
  background: rgba(255, 250, 244, .94); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(6, 43, 81, .14);
  padding: 22px clamp(22px, 3vw, 32px);
  display: flex; align-items: center; justify-content: space-between; gap: 20px;
}
.lp-drawer__title { display: flex; align-items: center; gap: 12px; font-size: 21px; font-weight: 600; line-height: 1.25; }
.lp-drawer__title .lp-dot { width: 12px; height: 12px; }
.lp-drawer__x {
  flex: none; width: 44px; height: 44px; border-radius: 50%;
  border: 1px solid rgba(6, 43, 81, .24); background: transparent;
  color: var(--lm-dark-blue); font-size: 17px; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
}
.lp-drawer__x:hover { border-color: var(--lm-dark-blue); }
.lp-drawer__img { position: relative; width: 100%; height: 230px; background-color: var(--lp-tint); background-size: cover; background-position: center; }
/* #5 Karussell-Pfeile auf dem Bild (nur mobil sichtbar, s. Media Query unten). */
.lp-drawer__nav {
  position: absolute; top: 50%; transform: translateY(-50%);
  width: 44px; height: 44px; border-radius: 50%; border: 0;
  background: var(--lp-clay); color: var(--lm-creme);
  font-size: 22px; line-height: 1; cursor: pointer; z-index: 2;
  display: none; align-items: center; justify-content: center;
  box-shadow: 0 2px 8px rgba(6, 43, 81, .28);
}
.lp-drawer__nav--prev { left: 12px; }
.lp-drawer__nav--next { right: 12px; }
/* #5 Mobil: Karussell-Pfeile zeigen (wenn nicht per JS ausgeblendet) und den
   Schliessen-Button klar sichtbar machen: dunkelblau gefuellt, X groesser,
   weiss und fett. */
@media (max-width: 600px) {
  .lp-drawer__nav:not([hidden]) { display: flex; }
  .lp-drawer__x {
    background: var(--lm-dark-blue); border-color: var(--lm-dark-blue);
    color: #fff; font-size: 23px; font-weight: 700;
  }
}
.lp-drawer__body { padding: 26px clamp(22px, 3vw, 32px) 40px; display: grid; gap: 16px; }
.lp-drawer__body p:not(.lp-meta) { margin: 0; font-size: 17px; line-height: 1.55; color: rgba(6, 43, 81, .78); text-wrap: pretty; }
.lp-drawer__body .lp-meta { margin: 0; padding-top: 0; }

.lp-verdicts { display: grid; gap: 8px; padding-top: 8px; }
.lp-verdict {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  border: 1px solid rgba(6, 43, 81, .14); border-radius: 12px; padding: 14px 16px;
}
.lp-verdict__l { font-family: var(--font-mono); font-size: 13px; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; color: rgba(6, 43, 81, .72); }
.lp-verdict__v { display: flex; align-items: center; gap: 9px; font-size: 17px; font-weight: 600; }

/* ---------- Video-Overlay ---------- */
.lp-lightbox {
  position: fixed; inset: 0; z-index: 200;
  /* #9 Volle Abdeckung auch bei ein-/ausblendender Browserleiste (iOS):
     dynamische Viewporthoehe statt nur inset:0, damit unten kein Spalt bleibt. */
  height: 100vh; height: 100dvh;
  background: rgba(6, 43, 81, .86); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
  display: flex; align-items: center; justify-content: center; padding: clamp(16px, 4vw, 56px);
}
/* Die Breite muss auch an der Viewport-HOEHE haengen, nicht nur an der Breite:
   der Kasten ist fixed und mittig, was oben und unten hinausragt, ist nicht
   scrollbar. Im Querformat (844x390 — genau so haelt man das Telefon zum
   Video) stand der Schliessen-Knopf 51px ueber der Oberkante. Abgezogen
   werden Overlay-Polsterung, Knopfzeile und Abstand (zusammen ~140px), der
   Rest geht im 16:9 in die Breite. Die zweite width-Zeile ist Absicht: kennt
   ein Browser `dvh` nicht, faellt er auf die erste zurueck. */
.lp-lightbox__in { width: min(1100px, 100%); display: grid; gap: 16px; }
.lp-lightbox__in { width: min(1100px, 100%, calc((100dvh - 140px) * 16 / 9)); }
.lp-lightbox__x {
  justify-self: end; display: flex; align-items: center; gap: 10px;
  background: transparent; border: 1px solid rgba(255, 250, 244, .4);
  color: var(--lm-creme); border-radius: 8px; padding: 9px 16px;
  font-family: inherit; font-size: 17px; font-weight: 600; cursor: pointer;
}
.lp-lightbox__x:hover { border-color: var(--lm-creme); }
.lp-lightbox__frame { position: relative; width: 100%; aspect-ratio: 16/9; border-radius: 16px; overflow: hidden; background: #000; }
.lp-lightbox__frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
/* #2 Mobil: Hochformat-Videos (Shorts) fuellen die Hoehe im 9:16-Rahmen. */
@media (max-width: 600px) {
  .lp-lightbox--portrait .lp-lightbox__in { width: min(100%, calc((100dvh - 140px) * 9 / 16)); }
  .lp-lightbox--portrait .lp-lightbox__frame { aspect-ratio: 9 / 16; }
}

@keyframes lp-slide { from { transform: translateX(100%); } to { transform: translateX(0); } }
@keyframes lp-fade { from { opacity: 0; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) {
  .lp-drawer, .lp-drawer__panel { animation: none; }
  .lp-vid__play, .lp-play { transition: none; }
  html { scroll-behavior: auto; }
}

/* ============================================================
   Nur Seite 2 (/dus/26010, /fra/26010)
   ============================================================ */

/* ---------- Vergleich: Text links, Tabelle rechts ---------- */
.lp-vgl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(32px, 4vw, 48px); align-items: start; }
.lp-vgl > .lp-h2 { grid-column: 1 / -1; margin: 0 auto; max-width: 34ch; text-align: center; }
.lp-vgl > .lp-p { align-self: start; }
.lp-vgl__table { grid-column: span 2; }
.lp-vgl > .lp-btn { grid-column: 1 / -1; justify-self: center; }
/* Laptop/Desktop: Tabelle fuellt die Spaltenhoehe, damit ihre Unterkante exakt
   auf Höhe des Textblocks links endet (kein Ueberstand des Textes). Der Text
   bleibt oben buendig (.lp-p hat align-self:start). */
@media (min-width: 1001px) {
  .lp-vgl { align-items: stretch; }
  .lp-vgl__table { display: flex; }
}

.lp-tbl {
  --c0: 105px; --c1: 150px; --c2: 210px; --fs: 18px; --py: 9px; --ph: 12px;
  width: 100%; align-self: stretch; display: flex; flex-direction: column;
  background: var(--lp-card); border: 1px solid rgba(6, 43, 81, .16);
  border-radius: 20px; overflow: hidden;
}
.lp-tbl__head { display: flex; flex-wrap: wrap; background: var(--lm-dark-blue); color: var(--lm-creme); }
.lp-tbl__head > div { padding: var(--ph) 12px; font-size: var(--fs); font-weight: 700; line-height: 1.35; min-width: 0; color: rgba(255, 250, 244, .92); }
.lp-tbl__row { flex: 1 1 auto; display: flex; flex-wrap: wrap; align-items: stretch; border-top: 1px solid rgba(6, 43, 81, .1); }
.lp-tbl__row > div { display: flex; align-items: center; padding: var(--py) 12px; font-size: var(--fs); line-height: 1.45; min-width: 0; }
.lp-tbl__c0 { flex: 1 1 var(--c0); padding-left: 14px !important; padding-right: 14px !important; font-weight: 700; color: var(--lm-dark-blue); }
.lp-tbl__c1 { flex: 1 1 var(--c1); font-weight: 400; color: rgba(6, 43, 81, .75); }
.lp-tbl__c2 { flex: 1 1 var(--c2); padding-left: 14px !important; padding-right: 14px !important; font-weight: 700; color: var(--lm-dark-blue); background: var(--lp-tint); }
.lp-tbl__head .lp-tbl__c2 { background: rgba(211, 125, 98, .22); color: var(--lm-creme); }

/* ---------- Proof + Aerzte ---------- */
.lp-proof { display: flex; flex-wrap: wrap; gap: 24px; align-items: stretch; }
.lp-proof__q {
  flex: 1 1 300px; min-width: 0; margin: 0; background: var(--lm-creme);
  border: 1px solid rgba(6, 43, 81, .12); border-radius: 20px; padding: 28px;
  display: grid; align-content: space-between; gap: 24px;
}
.lp-proof__q p { margin: 0; font-size: 18px; line-height: 1.5; text-wrap: pretty; }
.lp-proof__q cite { font-style: normal; font-family: var(--font-mono); font-size: 13px; color: rgba(6, 43, 81, .7); }
.lp-proof__n {
  flex: 1 1 260px; min-width: 0; background: var(--lm-dark-blue); color: var(--lm-creme);
  border-radius: 20px; padding: 28px; display: grid; gap: 24px; align-content: center;
}
.lp-proof__n b { display: block; font-family: var(--font-mono); font-size: 38px; line-height: 1; font-weight: 400; font-variant-numeric: tabular-nums; }
.lp-proof__n p { margin: 8px 0 0; font-size: 17px; color: rgba(255, 250, 244, .78); line-height: 1.45; }

.lp-team {
  display: flex; flex-wrap: wrap; gap: 24px 8px; justify-content: flex-start;
  scroll-behavior: smooth; scrollbar-width: none; -ms-overflow-style: none;
}
.lp-team::-webkit-scrollbar { display: none; }
.lp-team > div { flex: 1 1 136px; max-width: 210px; min-width: 0; text-align: left; scroll-snap-align: start; }
.lp-team__photo { border-radius: 20px; overflow: hidden; aspect-ratio: 4/5; background: var(--lm-creme); }
.lp-team__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 18%; }
.lp-team__name { margin: 14px 0 0; font-size: 15px; font-weight: 700; line-height: 1.3; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lp-team__role { margin: 6px 0 0; font-family: var(--font-mono); font-size: 13px; line-height: 1.35; color: rgba(6, 43, 81, .7); }
.lp-team__nav { display: none; align-items: center; justify-content: center; gap: 14px; }
.lp-team__nav button {
  width: 44px; height: 44px; border-radius: 50%; border: 1px solid rgba(211, 125, 98, .85);
  background: transparent; color: var(--lp-clay); font-size: 20px; line-height: 1;
  cursor: pointer; display: flex; align-items: center; justify-content: center;
}
.lp-team__nav button:hover { background: var(--lp-clay); color: var(--lm-creme); border-color: var(--lp-clay); }
/* Klone fuer den mobilen Endlos-Slider: nur unter 600px sichtbar (s. u.). */
.lp-team__clone { display: none; }

/* ============================================================
   Breakpoints — geprueft bei 390 / 834 / 1280 / 1512px
   ============================================================ */

/* Zwei Textvarianten fuer denselben Inhalt (Hero-Bullet bzw. Eyebrow werden
   mobil gekuerzt) und das Video-Thumbnail, das mobil unter das Formular rutscht:
   Grundzustand hier, umgeschaltet in der 600px-Query weiter unten. */
.lp-only-mb { display: none; }
.lp-vid--mb { display: none; }

/* Tabelle bricht um: Zeilenlabel volle Breite, beide Werte nebeneinander. */
@media (max-width: 1000px) {
  .lp-vgl { grid-template-columns: minmax(0, 1fr); }
  .lp-vgl__table { grid-column: 1 / -1; }
  .lp-tbl { --c0: 100%; --c1: 120px; --c2: 120px; --fs: 15px; --py: 9px; --ph: 10px; }
  .lp-tbl__head .lp-tbl__c0 { display: none; }
}

/* Zwei Spalten passen nicht mehr: Kostenkarte ruecht unter die PLUS-Karte. */
@media (max-width: 900px) {
  .lp-kosten { order: 0; }
}

/* Die Aerztezeile bleibt IMMER einreihig. Eine angebrochene zweite Reihe mit
   einem einzelnen Portrait links sieht nach Panne aus, deshalb entfallen
   stattdessen die letzten Kacheln, bis der Rest bündig in eine Zeile passt.

   n Kacheln brauchen n*136px + (n-1)*8px. Die Zeilenbreite ist gemessen, nicht
   gerechnet: 0,92*vw - 11px (2 x 4vw Polsterung aus `.lp-wrap`, dazu die
   Bildlaufleiste). Die Schaltpunkte liegen rund 10px ueber dem rechnerischen
   Minimum, damit eine breitere Bildlaufleiste oder eine andere Schrift die
   Zeile nicht doch noch umbrechen laesst.
     7 Kacheln = 1000px -> ab 1110px    5 Kacheln = 712px -> ab 795px
     6 Kacheln =  856px -> ab  950px    4 Kacheln = 568px -> ab 639px
   Die verbleibenden Kacheln wachsen per flex-grow nach und fuellen die Zeile.
   `min-width: 601px` haelt die Regeln von der Mobil-Ansicht fern: dort ist die
   Zeile eine Scroll-Schiene mit Pfeilen und zeigt weiter alle sieben.
   ACHTUNG: Die Reihenfolge im HTML entscheidet, wer zuerst entfaellt. */
@media (min-width: 601px) and (max-width: 1109px) {
  .lp-team > div:nth-child(n+7) { display: none; }
}
@media (min-width: 601px) and (max-width: 949px) {
  .lp-team > div:nth-child(n+6) { display: none; }
}
@media (min-width: 601px) and (max-width: 794px) {
  .lp-team > div:nth-child(n+5) { display: none; }
}
@media (min-width: 601px) and (max-width: 638px) {
  .lp-team > div:nth-child(n+4) { display: none; }
}

/* Mobil: Hero-Medien und Kennzahlen entfallen, alle CTAs mittig. */
@media (max-width: 600px) {
  .lp-hero__media { display: none; }
  .lp-vid--mb { display: block; margin-top: 10px; }
  /* Alle CTAs einheitlich mittig (Grid-, Flex- und Block-Eltern); der
     vollbreite Formular-Button (--block) bleibt ausgenommen. */
  .lp-btn:not(.lp-btn--block) {
    display: flex; width: fit-content; max-width: 100%;
    margin-left: auto; margin-right: auto; justify-self: center;
  }
  /* Hero-Subtext nutzt die volle Breite (kein frueher Umbruch durch pretty). */
  .lp-lead { text-wrap: normal; max-width: none; }
  .lp-only-dt { display: none; }
  .lp-only-mb { display: inline; }
  .lp-faq__intro .lp-h2 { text-align: center; }
  .lp-team {
    flex-wrap: nowrap; overflow-x: auto; scroll-snap-type: x mandatory;
    padding-bottom: 4px; gap: 24px 8px;
  }
  .lp-team > div { flex: 0 0 calc(50% - 4px); }
  .lp-team__clone { display: block; }
  /* Pfeile liegen auf den Fotos (links/rechts am Rand, vertikal auf Bildhoehe)
     statt darunter. Der Kasten deckt nur die Fotozone ab (bottom-Offset laesst
     Name/Rolle frei), align-items zentriert die Buttons vertikal aufs Bild. */
  .lp-team-stack { position: relative; }
  .lp-team__nav {
    display: flex; margin: 0; padding: 0 6px;
    position: absolute; left: 0; right: 0; top: 0; bottom: 58px;
    justify-content: space-between; align-items: center;
    pointer-events: none; z-index: 2;
  }
  .lp-team__nav button {
    pointer-events: auto;
    background: var(--lp-clay); color: var(--lm-creme); border-color: var(--lp-clay);
    box-shadow: 0 2px 8px rgba(6, 43, 81, .28);
  }
  .lp-drawer__body, .lp-drawer__head { padding-left: 22px; padding-right: 22px; }
}
