/*
Theme Name: La Rossa
Description: Child-Theme fuer La Rossa (Berkel-Verleih), Blog 3 der Multisite druckmedien-group.com. Inhalte: bin/build-larossa.php.
Author: Trixner
Template: Divi
Version: 0.1.0
Text Domain: larossa
*/

/* ==========================================================================
   La Rossa. Rosso-Lack, Gusseisen, Stahl, Blattgold.
   Jeder Divi-Abschnitt traegt eine Klasse lr-<abschnitt>; Module darin tragen
   Rollenklassen (lr-paket__preis …), die Build-Skript bzw. Bibliotheksvorlagen
   mitbringen. Redakteure aendern Texte, Bilder, Links – keine Klassen.
   ========================================================================== */

@font-face { font-family: "Libre Bodoni"; src: url("assets/schriften/libre-bodoni.woff2") format("woff2"); font-weight: 400 700; font-style: normal; font-display: swap; }
@font-face { font-family: "Libre Bodoni"; src: url("assets/schriften/libre-bodoni-italic.woff2") format("woff2"); font-weight: 400 700; font-style: italic; font-display: swap; }
@font-face { font-family: "Archivo"; src: url("assets/schriften/archivo.woff2") format("woff2"); font-weight: 100 900; font-stretch: 62% 125%; font-display: swap; }

:root {
  --rosso: #a8121c;
  --rosso-tief: #6c0a11;
  --rosso-nacht: #3d050a;
  --ghisa: #141011;
  --ghisa-2: #1f191a;
  --acciaio: #e5e4e1;
  --acciaio-2: #d3d1cd;
  --acciaio-3: #f3f2f0;
  --tinte: #1b1516;
  --tinte-2: #4a3f40;
  --tinte-3: #5a4e4f;
  --oro: #d9b672;
  --oro-hell: #f6e0b2;
  --kreide: #fdf0ed;
  --kreide-2: #f8d6d1;
  --rauch: #b9adab;
  --schrift-titel: "Libre Bodoni", "Bodoni 72", Georgia, serif;
  --schrift-text: "Archivo", system-ui, sans-serif;
  --rand: clamp(1.25rem, 4vw, 3.5rem);
  --breite: 84rem;
  --kopf-h: 4.5rem;
  --abstand: clamp(5rem, 9vw, 8rem);
  --aus: cubic-bezier(.16, 1, .3, 1);
}

/* ---------- Grundlagen, Divi neutralisieren ---------- */
html { overflow-x: clip; scroll-padding-top: calc(var(--kopf-h) + 1rem); scrollbar-color: var(--rosso) var(--ghisa); }
body.lr { font-family: var(--schrift-text); font-size: clamp(1rem, .95rem + .2vw, 1.0625rem); line-height: 1.6; color: var(--kreide); background: var(--ghisa); font-weight: 400; -webkit-font-smoothing: antialiased; overflow-x: clip; }
body.lr #page-container { padding-top: 0 !important; overflow: visible; background: transparent; }
body.lr #main-content, body.lr #et-main-area { background: transparent; }
body.lr #main-content .container { width: 100%; max-width: none; padding: 0; }
body.lr #main-content .container::before { display: none; }
body.lr *, body.lr *::before, body.lr *::after { box-sizing: border-box; }
body.lr img { max-width: 100%; height: auto; }
body.lr a { color: inherit; text-underline-offset: .22em; text-decoration-thickness: 1px; }
body.lr p { padding-bottom: 0; margin: 0 0 1em; }
body.lr h1, body.lr h2, body.lr h3, body.lr h4 { color: inherit; padding: 0; margin: 0; text-wrap: balance; font-family: var(--schrift-titel); font-weight: 500; line-height: 1.1; letter-spacing: -0.015em; }
body.lr ::selection { background: var(--oro); color: var(--ghisa); }
body.lr :focus-visible { outline: 2px solid var(--oro); outline-offset: 3px; border-radius: 2px; }
body.lr svg { width: 1em; height: 1em; flex: none; }
.lr-unsichtbar { position: absolute; width: 0; height: 0; overflow: hidden; }
.lr-nur-vorlesen { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.lr-sprung { position: absolute; left: 1rem; top: -4rem; z-index: 100; background: var(--kreide); color: var(--ghisa) !important; padding: .6rem 1rem; }
.lr-sprung:focus { top: 1rem; }
.lr-rahmen { width: min(100% - 2 * var(--rand), var(--breite)); margin-inline: auto; }

body.lr .et_pb_section { padding: 0; background-color: transparent; }
body.lr .et_pb_row { width: min(100% - 2 * var(--rand), var(--breite)); max-width: none; padding: 0; margin-inline: auto; --row-gutter-horizontal: clamp(1.5rem, 4vw, 4rem); --row-gutter-vertical: 2rem; }
body.lr .et_pb_column { margin: 0; padding: 0; }
body.lr .et_pb_module { margin: 0; padding: 0; }
body.lr .et_flex_column { gap: 0; }
body.lr .et_pb_text, body.lr .et_pb_text_inner { color: inherit; font-size: inherit; line-height: inherit; }
body.lr .et_pb_text_inner > :last-child { margin-bottom: 0; }
body.lr .et_pb_heading .et_pb_module_header { color: inherit; padding: 0; }
body.lr .et_pb_image .et_pb_image_wrap { display: block; }
body.lr .et_pb_group { padding: 0; margin: 0; }

/* Typo-Rollen */
.lr-titel-gross .et_pb_module_header { font-size: clamp(2.4rem, 1.4rem + 4vw, 5rem); line-height: 1.04; }
.lr-titel-mittel .et_pb_module_header { font-size: clamp(1.8rem, 1.2rem + 2.2vw, 3rem); line-height: 1.08; }
.lr-titel-klein .et_pb_module_header { font-size: clamp(1.35rem, 1.1rem + .8vw, 1.75rem); line-height: 1.15; }
body.lr .lr-titel-klein { margin-bottom: .75rem !important; }
body.lr .lr-titel-mittel, body.lr .lr-titel-gross { margin-bottom: 1.25rem !important; }
body.lr em { font-style: italic; }
.lr-abschnitt-text { max-width: 60ch; }
body.lr .lr-abschnitt-text p { color: inherit; opacity: .88; }
body.lr .lr-klein, body.lr .lr-klein p { font-size: .875rem; }
body.lr .lr-dachzeile p { font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 600; font-stretch: 112%; color: var(--rosso); margin-bottom: .75rem; }

body.lr .lr-textlink, body.lr .lr-abschnitt-text a, body.lr .lr-linkliste a { font-weight: 600; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .3em; transition: color .3s; }
body.lr .lr-textlink:hover, body.lr .lr-abschnitt-text a:hover { color: var(--oro); }
body.lr .lr-hell .lr-textlink:hover, body.lr .lr-hell .lr-abschnitt-text a:hover, body.lr .lr-hell .lr-linkliste a:hover, body.lr .lr-fragen .lr-textlink:hover { color: var(--rosso); }

/* ---------- Knöpfe (eigene Klasse + Divi-Button-Modul) ---------- */
.lr-knopf, body.lr .et_pb_button.lr-knopf-modul {
  --h: 3.25rem;
  display: inline-flex; align-items: center; justify-content: center; gap: .65rem;
  min-height: var(--h); padding: 0 1.5rem !important;
  font: 600 .95rem/1 var(--schrift-text) !important; font-stretch: 105%; letter-spacing: .02em;
  border: 1px solid transparent !important; border-radius: 999px !important;
  text-decoration: none; cursor: pointer;
  background: var(--kreide); color: var(--rosso-tief) !important;
  transition: background-color .35s var(--aus), color .35s var(--aus), border-color .35s var(--aus), transform .35s var(--aus);
}
body.lr .et_pb_button.lr-knopf-modul::after, body.lr .et_pb_button.lr-knopf-modul::before { content: none !important; display: none !important; }
body.lr .et_pb_button.lr-knopf-modul:hover { padding: 0 1.5rem !important; }
.lr-knopf:active, body.lr .et_pb_button.lr-knopf-modul:active { transform: translateY(1px); }
.lr-knopf--hell, body.lr .et_pb_button.lr-knopf-modul--hell { background: var(--kreide) !important; color: var(--rosso-tief) !important; box-shadow: 0 10px 24px -12px rgba(0,0,0,.45); }
.lr-knopf--hell:hover, body.lr .et_pb_button.lr-knopf-modul--hell:hover { background: #fff !important; color: var(--rosso) !important; }
.lr-knopf--rot, body.lr .et_pb_button.lr-knopf-modul--rot { background: var(--rosso) !important; color: var(--kreide) !important; }
.lr-knopf--rot:hover, body.lr .et_pb_button.lr-knopf-modul--rot:hover { background: #c21a25 !important; }
body.lr .et_pb_button.lr-knopf-modul--dunkel { background: var(--ghisa) !important; color: var(--kreide) !important; }
body.lr .et_pb_button.lr-knopf-modul--dunkel:hover { background: var(--rosso) !important; }
body.lr .et_pb_button.lr-knopf-modul--rahmen { background: transparent !important; border-color: rgba(253,240,237,.35) !important; color: var(--kreide) !important; }
body.lr .et_pb_button.lr-knopf-modul--rahmen:hover { border-color: var(--oro) !important; color: var(--oro) !important; }
body.lr .et_pb_button.lr-knopf-modul--rahmen-dunkel { background: transparent !important; border-color: rgba(27,21,22,.35) !important; color: var(--tinte) !important; }
body.lr .et_pb_button.lr-knopf-modul--rahmen-dunkel:hover { border-color: var(--rosso) !important; color: var(--rosso) !important; }
body.lr .et_pb_button.lr-knopf-modul--text { background: transparent !important; color: inherit !important; padding: 0 !important; min-height: 2.5rem; text-decoration: underline !important; text-underline-offset: .3em; box-shadow: none; }
body.lr .et_pb_button.lr-knopf-modul--text:hover { padding: 0 !important; color: var(--oro) !important; }
body.lr .lr-hell .et_pb_button.lr-knopf-modul--text:hover { color: var(--rosso) !important; }
body.lr .et_pb_button.lr-knopf-modul--breit { width: 100%; max-width: none; }
body.lr .et_pb_button_module_wrapper:has(.lr-knopf-modul--breit) { width: 100%; }
.lr-knopf--leise-hell { background: transparent !important; color: var(--kreide) !important; border-color: rgba(253,240,237,.3) !important; padding: 0 !important; width: var(--h); }
.lr-knopf svg { width: 1.1em; height: 1.1em; }
body.lr .et_pb_button_module_wrapper { margin: 0; }

/* ---------- Kopf ---------- */
.lr-kopf { position: fixed; inset: 0 0 auto; z-index: 99; height: var(--kopf-h); color: var(--kreide); transition: background-color .5s var(--aus), box-shadow .5s var(--aus), transform .5s var(--aus); }
.admin-bar .lr-kopf { top: 32px; }
.lr-kopf.ist-fest, .lr-menue-offen .lr-kopf, body.lr:not(.home) .lr-kopf { background: rgba(20, 16, 17, .94); backdrop-filter: blur(12px); box-shadow: 0 1px 0 rgba(217, 182, 114, .18); }
.lr-kopf.ist-weg { transform: translateY(-100%); }
.lr-kopf__innen { height: 100%; display: flex; align-items: center; gap: 1.75rem; width: min(100% - 2 * var(--rand), 96rem); margin-inline: auto; }
.lr-marke { text-decoration: none !important; display: grid; line-height: 1; margin-right: auto; }
.lr-marke__wort { font-family: var(--schrift-titel); font-weight: 600; font-size: 2.05rem; letter-spacing: .06em; text-transform: uppercase; margin: 0; }
.lr-marke__zeile { font-size: .62rem; letter-spacing: .24em; text-transform: uppercase; opacity: .8; margin-top: .3rem; font-stretch: 112%; }
.lr-navi__liste { display: flex; gap: 1.6rem; list-style: none; margin: 0; padding: 0 !important; }
body.lr .lr-navi__liste li { padding: 0; }
body.lr .lr-navi__liste a { font-size: .85rem; font-weight: 500; letter-spacing: .04em; text-decoration: none; position: relative; padding-block: .4rem; white-space: nowrap; }
body.lr .lr-navi__liste a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: var(--oro); transform: scaleX(0); transform-origin: left; transition: transform .45s var(--aus); }
body.lr .lr-navi__liste a:hover::after, body.lr .lr-navi__liste .current-menu-item > a::after, body.lr .lr-navi__liste .current-page-ancestor > a::after { transform: scaleX(1); }
.lr-navi__kontakt { display: none; }
.lr-kopf__tel { display: inline-flex; gap: .5rem; align-items: center; font-size: .85rem; text-decoration: none; font-variant-numeric: tabular-nums; white-space: nowrap; }
.lr-kopf__cta.lr-knopf { --h: 2.6rem; padding-inline: 1.2rem !important; }
.lr-kopf__menue { display: none; width: 2.75rem; height: 2.75rem; border: 1px solid rgba(253,240,237,.3); border-radius: 50%; background: transparent; color: var(--kreide); cursor: pointer; position: relative; }
.lr-kopf__menue-strich, .lr-kopf__menue-strich::before, .lr-kopf__menue-strich::after { position: absolute; width: 1.1rem; height: 1.5px; background: currentColor; transition: transform .35s var(--aus), background-color .2s; }
.lr-kopf__menue-strich { top: 50%; left: 50%; translate: -50% 0; }
.lr-kopf__menue-strich::before, .lr-kopf__menue-strich::after { content: ""; left: 0; }
.lr-kopf__menue-strich::before { top: -6px; }
.lr-kopf__menue-strich::after { top: 6px; }
.lr-menue-offen .lr-kopf__menue-strich { background: transparent; }
.lr-menue-offen .lr-kopf__menue-strich::before { transform: translateY(6px) rotate(45deg); }
.lr-menue-offen .lr-kopf__menue-strich::after { transform: translateY(-6px) rotate(-45deg); }

/* ---------- Bühne (Startseite) ---------- */
body.lr .et_pb_section.lr-buehne {
  position: relative; isolation: isolate;
  background: radial-gradient(90% 60% at 72% 30%, #b8151f 0%, transparent 65%), linear-gradient(180deg, #9a0f18 0%, var(--rosso) 35%, var(--rosso) 70%, var(--rosso-tief) 100%);
}
.lr-buehne::after { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; opacity: .18; mix-blend-mode: soft-light;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
body.lr .lr-buehne > .et_pb_row.lr-buehne__raster { width: 100%; display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 0; align-items: start; }
body.lr .lr-buehne__raster > .et_pb_column { width: auto !important; max-width: none; flex: none; }
body.lr .et_pb_column.lr-buehne__text { grid-column: 1; grid-row: 1; padding-left: max(var(--rand), (100vw - 96rem) / 2); padding-right: clamp(1rem, 3vw, 3rem); position: relative; z-index: 2; display: block; }
body.lr .et_pb_column.lr-buehne__bild { grid-column: 2; grid-row: 1; position: sticky; top: 0; height: 100svh; overflow: hidden; display: block; }
body.lr .et_pb_group.lr-hero { min-height: 100svh; display: flex; flex-direction: column; justify-content: center; padding-top: calc(var(--kopf-h) + 2rem); padding-bottom: 3rem; }
.lr-hero__titel .et_pb_module_header { font-size: clamp(2.5rem, 1.1rem + 3.3vw, 4.6rem); line-height: 1; letter-spacing: -0.02em; max-width: 13ch; }
body.lr .lr-hero__titel em, body.lr .lr-schritt__titel em { color: var(--oro-hell); }
body.lr .lr-hero__leit p { font-family: var(--schrift-titel); font-style: italic; font-size: clamp(1.15rem, 1rem + .5vw, 1.4rem); line-height: 1.35; margin: 1.25rem 0 .6rem; max-width: 34ch; }
body.lr .lr-hero__text p { color: var(--kreide-2); max-width: 46ch; font-size: .95rem; }
body.lr .lr-hero__kauf p { margin-top: 1.5rem; color: var(--kreide-2); font-size: .95rem; }

/* Paketfinder */
.lr-finder { margin-top: 1.25rem; max-width: 34rem; padding: 1.4rem 1.5rem 1.5rem; background: linear-gradient(180deg, rgba(61,5,10,.55), rgba(61,5,10,.75)); border: 1px solid rgba(217,182,114,.35); border-radius: 1.25rem; box-shadow: 0 30px 60px -30px rgba(0,0,0,.55), inset 0 1px 0 rgba(255,255,255,.06); }
body.lr .lr-finder p { margin: 0; }
.lr-finder__kopf { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; }
.lr-finder__kopf label { font-weight: 600; font-size: .95rem; }
.lr-finder__zahl { font-family: var(--schrift-titel); font-size: 2rem; line-height: 1; color: var(--oro-hell); font-variant-numeric: lining-nums tabular-nums; }
.lr-finder input[type=range] { -webkit-appearance: none; appearance: none; width: 100%; height: 2rem; background: transparent; margin: .5rem 0 .25rem; cursor: pointer; --p: 24%; padding: 0; border: 0; }
.lr-finder input[type=range]::-webkit-slider-runnable-track { height: 2px; background: linear-gradient(90deg, var(--oro) var(--p), rgba(253,240,237,.25) var(--p)); }
.lr-finder input[type=range]::-moz-range-track { height: 2px; background: rgba(253,240,237,.25); }
.lr-finder input[type=range]::-moz-range-progress { height: 2px; background: var(--oro); }
.lr-finder input[type=range]::-webkit-slider-thumb { -webkit-appearance: none; width: 1.4rem; height: 1.4rem; margin-top: -.65rem; border-radius: 50%; background: radial-gradient(circle at 35% 35%, #fff, #d9d6d2 45%, #8f8a86); border: 2px solid var(--oro); box-shadow: 0 4px 10px rgba(0,0,0,.4); }
.lr-finder input[type=range]::-moz-range-thumb { width: 1.2rem; height: 1.2rem; border-radius: 50%; background: radial-gradient(circle at 35% 35%, #fff, #d9d6d2 45%, #8f8a86); border: 2px solid var(--oro); }
.lr-finder__ergebnis { display: flex; justify-content: space-between; align-items: end; gap: 1rem; padding: .9rem 0 1.1rem; border-top: 1px solid rgba(253,240,237,.15); margin-top: .5rem; }
.lr-finder__paket { font-family: var(--schrift-titel); font-size: 1.75rem; line-height: 1.1; }
.lr-finder__info { font-size: .875rem; color: var(--kreide-2); }
.lr-finder__preis { font-family: var(--schrift-titel); font-size: 1.1rem; text-align: right; white-space: nowrap; }
body.lr .lr-finder__preis span { font-size: 2.1rem; font-variant-numeric: lining-nums; }
body.lr .lr-finder__preis small { display: block; font-family: var(--schrift-text); font-size: .75rem; color: var(--kreide-2); }
.lr-finder__aktionen { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; }
.lr-finder__paket, .lr-finder__info { transition: opacity .25s, transform .35s var(--aus); }
.lr-finder.ist-wechsel .lr-finder__paket, .lr-finder.ist-wechsel .lr-finder__info { opacity: 0; transform: translateY(6px); }

/* Schritte */
body.lr .et_pb_group.lr-schritt { min-height: 100svh; display: flex; flex-direction: column; justify-content: center; max-width: 30rem; padding-block: 4rem; }
.lr-schritt__titel .et_pb_module_header { font-size: clamp(2rem, 1.2rem + 2.6vw, 3.6rem); line-height: 1.04; }
body.lr .lr-schritt__titel { margin-bottom: 1.25rem !important; }
body.lr .lr-schritt__text p { color: var(--kreide-2); }
body.lr .lr-schritt__hinweis p { font-size: .875rem; font-style: italic; color: var(--kreide-2); }
.lr-schritt .et_pb_button_module_wrapper { margin-top: .75rem !important; }
.lr-js .lr-schritt > * { opacity: .25; transform: translateY(14px); transition: opacity .7s var(--aus), transform .9s var(--aus); }
.lr-js .lr-schritt.ist-aktiv > * { opacity: 1; transform: none; }
.lr-js .lr-schritt.ist-aktiv > :nth-child(2) { transition-delay: .06s; }
.lr-js .lr-schritt.ist-aktiv > :nth-child(3) { transition-delay: .12s; }
body.lr .lr-schritt__daten dl { margin: .5rem 0 1.25rem; border-top: 1px solid rgba(217,182,114,.4); }
body.lr .lr-schritt__daten dl div { display: grid; grid-template-columns: 10.5rem 1fr; gap: 1rem; padding: .7rem 0; border-bottom: 1px solid rgba(217,182,114,.4); }
body.lr .lr-schritt__daten dt { font-size: .8rem; letter-spacing: .06em; text-transform: uppercase; color: var(--oro-hell); font-stretch: 110%; padding-top: .15rem; }
body.lr .lr-schritt__daten dd { margin: 0; font-weight: 500; }

/* Bühnenbild: vom Skript aufgebaut */
.lr-buehne__bild .lr-buehne__maschine { position: absolute !important; inset: 0; }
.lr-buehne__bild:not(.ist-aufgebaut) .lr-buehne__maschine img { position: absolute; left: 50%; bottom: 4svh; height: min(92svh, 128vw); width: auto; max-width: none; translate: -50% 0; }
.lr-buehne__szene { position: absolute; inset: 0; }
/* Im Visual Builder läuft die Bühne ohne Skript: Bild schlicht zeigen, damit es austauschbar bleibt */
.et-vb-app-ancestor .lr-buehne__bild .lr-buehne__maschine img { position: relative !important; left: auto; bottom: auto; translate: none; display: block; height: 84svh; width: auto; margin: 8svh auto 0; }
.lr-buehne__bild.ist-aufgebaut .lr-buehne__maschine { display: none; }
.lr-buehne__bild::before { content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 1; background: radial-gradient(60% 75% at 50% 52%, transparent 35%, rgba(45,2,7,.5) 100%); -webkit-mask-image: linear-gradient(90deg, transparent, #000 45%); mask-image: linear-gradient(90deg, transparent, #000 45%); }
.lr-lichtkegel { position: absolute; inset: 0; pointer-events: none; filter: blur(22px);
  background: radial-gradient(38% 9% at 50% 93%, rgba(255,225,210,.32), transparent 70%), radial-gradient(36% 46% at 50% 50%, rgba(255,200,185,.16), transparent 70%), conic-gradient(from 180deg at 50% -14%, transparent 0deg 162deg, rgba(255,228,214,.3) 168deg, rgba(255,240,230,.55) 180deg, rgba(255,228,214,.3) 192deg, transparent 198deg); }
.lr-figur { position: absolute; left: 50%; bottom: 4svh; z-index: 2; height: min(92svh, 128vw); aspect-ratio: 1200 / 1500; translate: -50% 0; transform-origin: 50% 50%; }
/* kein will-change: sonst rastert Chrome die Figur nur in Grundgröße und vergrößert unscharf */
body.lr .lr-figur__maschine { width: 100%; height: 100%; max-width: none; object-fit: contain; filter: drop-shadow(0 12px 22px rgba(40,0,4,.28)); }
/* Rad: Kreisbild (Ellipse entzerrt), Mittelpunkt 725/690 im 1200x1500-Raster */
.lr-figur__rad { position: absolute; left: calc(725 / 1200 * 100%); top: calc(690 / 1500 * 100%); width: calc(408.7 / 1200 * 100%); aspect-ratio: 1; transform: translate(-50%, -50%) scaleY(.9618) rotate(var(--winkel, 0deg)); cursor: grab; touch-action: pan-y; }
.lr-figur__rad.ist-gezogen { cursor: grabbing; }
body.lr .lr-figur__rad > img { width: 100%; height: 100%; pointer-events: none; user-select: none; display: block; }
/* Licht und Schatten stehen fest: auf die Radform maskiert, innen gegenläufig gedreht */
.lr-figur__licht { position: absolute; inset: 0; pointer-events: none; -webkit-mask: var(--maske) center / 100% 100% no-repeat; mask: var(--maske) center / 100% 100% no-repeat; }
.lr-figur__licht > div { position: absolute; inset: 0; transform: rotate(calc(-1 * var(--winkel, 0deg))); }
body.lr .lr-figur__licht img { position: absolute; inset: 0; width: 100%; height: 100%; }
body.lr .lr-figur__linien { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.lr-figur__linien * { fill: none; stroke: var(--oro); stroke-width: 1.5; vector-effect: non-scaling-stroke; stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 1.2s var(--aus); }
.lr-figur__linien .ist-an { stroke-dashoffset: 0; }
.lr-marken { list-style: none; margin: 0; padding: 0 !important; position: absolute; inset: 0; z-index: 3; pointer-events: none; }
body.lr .lr-marken li { position: absolute; left: 0; top: 0; translate: var(--x, -999px) var(--y, -999px); padding: .35rem .75rem .35rem 1.4rem; font-size: .8rem; font-weight: 600; letter-spacing: .03em; white-space: nowrap; color: var(--ghisa); background: var(--oro); border-radius: 999px; opacity: 0; transform: translateY(6px); transition: opacity .5s var(--aus), transform .6s var(--aus); }
body.lr .lr-marken li::before { content: ""; position: absolute; left: .45rem; top: 50%; width: .5rem; height: .5rem; margin-top: -.25rem; border-radius: 50%; background: var(--rosso-tief); }
body.lr .lr-marken li.ist-an { opacity: 1; transform: none; }

/* ---------- Laufband ---------- */
body.lr .et_pb_section.lr-laufband { overflow: hidden; white-space: nowrap; border-block: 1px solid rgba(217,182,114,.3); }
body.lr .lr-laufband > .et_pb_row { width: 100%; }
body.lr .lr-laufband ul { display: inline-flex; list-style: none; margin: 0; padding: 0 !important; }
body.lr .lr-laufband li { display: inline-flex; align-items: center; padding: 0; }
body.lr .lr-laufband li::after { content: ""; width: .4rem; height: .4rem; margin-inline: 1.5rem; border-radius: 50%; background: var(--oro); }
body.lr .et_pb_section.lr-laufband--rot { background: var(--rosso-tief); padding-block: 1rem; font-size: .9rem; letter-spacing: .14em; text-transform: uppercase; font-stretch: 112%; font-weight: 500; }
body.lr .et_pb_section.lr-laufband--gross { background: var(--ghisa); padding-block: 2rem; font-family: var(--schrift-titel); font-size: clamp(2.5rem, 1.5rem + 5vw, 6rem); font-style: italic; letter-spacing: -0.02em; border: 0; line-height: 1.2; }
body.lr .lr-laufband--gross li:nth-child(3n) { color: #ec4a53; }
body.lr .lr-laufband--gross li::after { width: .18em; height: .18em; margin-inline: .5em; }

/* ---------- Abschnittskopf ---------- */
body.lr .et_pb_row.lr-abschnitt-kopf { align-items: flex-end; margin-bottom: clamp(2.5rem, 5vw, 4.5rem) !important; }
body.lr .lr-abschnitt-kopf .lr-abschnitt-text p { max-width: 46ch; }

/* ---------- Pakete ---------- */
body.lr .et_pb_section.lr-pakete { background: var(--ghisa); padding-block: var(--abstand) clamp(4rem, 8vw, 7rem); }
body.lr .et_pb_row.lr-paketreihe { --row-gutter-horizontal: clamp(1rem, 2vw, 2rem); align-items: stretch; }
body.lr .et_pb_column.lr-paket { position: relative; display: flex; flex-direction: column; padding: clamp(1.5rem, 2.5vw, 2.25rem); background: linear-gradient(180deg, var(--ghisa-2), var(--ghisa) 85%); border: 1px solid rgba(253,240,237,.1); border-radius: 1.5rem; transition: border-color .5s var(--aus), opacity .9s var(--aus), transform 1.1s var(--aus); }
body.lr .et_pb_column.lr-paket:hover { border-color: rgba(217,182,114,.45); }
body.lr .et_pb_column.lr-paket--star { background: linear-gradient(180deg, var(--rosso) 0%, var(--rosso-tief) 70%, var(--rosso-nacht) 100%); border-color: rgba(217,182,114,.5); box-shadow: 0 40px 70px -40px rgba(0,0,0,.8); }
body.lr .lr-paket__siegel { position: absolute; top: 1.25rem; right: 1.25rem; z-index: 2; }
body.lr .lr-paket__siegel p { margin: 0; padding: .35rem .8rem; border-radius: 999px; background: var(--oro); color: var(--ghisa); font-size: .75rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
body.lr .lr-paket__bild { height: clamp(14rem, 22vw, 19rem); display: flex; justify-content: center; align-items: flex-end; margin-bottom: 1.5rem !important; position: relative; }
.lr-paket__bild::after { content: ""; position: absolute; bottom: -.4rem; left: 15%; right: 15%; height: 1.2rem; background: radial-gradient(closest-side, rgba(0,0,0,.55), transparent); }
body.lr .lr-paket__bild .et_pb_image_wrap, body.lr .lr-paket__bild a { height: 100%; display: flex; align-items: flex-end; justify-content: center; position: relative; z-index: 1; }
body.lr .lr-paket__bild img { max-height: 100%; width: auto; transition: transform .8s var(--aus); }
.lr-paket:hover .lr-paket__bild img { transform: translateY(-6px) scale(1.02); }
.lr-paket__name .et_pb_module_header { font-size: clamp(2rem, 1.5rem + 1.4vw, 2.75rem); line-height: 1; }
body.lr .lr-paket__fuer p { color: var(--rauch); font-size: .9rem; margin: .6rem 0 1.4rem !important; }
body.lr .lr-paket--star .lr-paket__fuer p, body.lr .lr-paket--star .lr-paket__klein p, body.lr .lr-paket--star .lr-paket__preis small, body.lr .lr-paket--star .lr-paket__daten dt { color: var(--kreide-2); }
body.lr .lr-paket__preis p { font-family: var(--schrift-titel); font-size: 1.15rem; margin: 0 0 1.5rem !important; }
body.lr .lr-paket__preis span { font-size: clamp(2.6rem, 2rem + 1.5vw, 3.4rem); font-variant-numeric: lining-nums; line-height: 1; color: var(--oro); }
body.lr .lr-paket--star .lr-paket__preis span { color: var(--kreide); }
body.lr .lr-paket__preis small { font-family: var(--schrift-text); font-size: .75rem; color: var(--rauch); margin-left: .25rem; }
body.lr .lr-paket__liste ul { list-style: none; padding: 0 !important; margin: 0 0 1.5rem !important; display: grid; gap: .55rem; font-size: .925rem; }
body.lr .lr-paket__liste li { padding-left: 1.4rem; position: relative; }
body.lr .lr-paket__liste li::before { content: ""; position: absolute; left: 0; top: .62em; width: .7rem; height: 1px; background: var(--oro); }
body.lr .lr-paket__daten dl { margin: 0 0 2rem !important; font-size: .875rem; border-top: 1px solid rgba(253,240,237,.12); }
body.lr .lr-paket__daten dl div { display: flex; justify-content: space-between; gap: 1rem; padding: .55rem 0; border-bottom: 1px solid rgba(253,240,237,.12); }
body.lr .lr-paket__daten dt { color: var(--rauch); }
body.lr .lr-paket__daten dd { margin: 0; text-align: right; font-weight: 500; }
body.lr .lr-paket__satz { margin-top: auto !important; }
body.lr .lr-paket__satz p { font-family: var(--schrift-titel); font-style: italic; font-size: 1.1rem; line-height: 1.35; margin: 0 0 .6rem !important; }
body.lr .lr-paket__klein p { font-size: .78rem; line-height: 1.5; color: var(--rauch); margin: 0 0 1.5rem !important; }
.lr-paket .et_pb_button_module_wrapper { margin-top: .5rem !important; width: 100%; }
.lr-paket .et_pb_button_module_wrapper .et_pb_button { width: 100%; max-width: none; }

body.lr .et_pb_row.lr-zusatz { margin-top: clamp(2.5rem, 4vw, 3.5rem) !important; padding-top: 2rem; border-top: 1px solid rgba(217,182,114,.3); align-items: center; }
.lr-zusatz__titel .et_pb_module_header { font-size: 1.5rem; }
body.lr .lr-zusatz__liste dl { margin: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; }
body.lr .lr-zusatz__liste dt { font-size: .8rem; color: var(--rauch); letter-spacing: .04em; }
body.lr .lr-zusatz__liste dd { margin: .2rem 0 0; font-weight: 600; }

/* ---------- Neun ---------- */
body.lr .et_pb_section.lr-neun { background: var(--rosso); position: relative; overflow: hidden; padding-top: clamp(5rem, 9vw, 8rem); }
body.lr .lr-neun > .et_pb_row:first-child { align-items: center; }
body.lr .lr-neun__ziffer p { font-family: var(--schrift-titel); font-weight: 400; font-style: italic; font-size: clamp(14rem, 6rem + 30vw, 34rem); line-height: .78; margin: 0; letter-spacing: -0.04em; color: transparent; -webkit-text-stroke: 1.5px var(--oro); transform: translateY(calc(var(--neun, 0) * -40px)); }
body.lr .lr-neun .lr-abschnitt-text p { color: var(--kreide-2); opacity: 1; }
.lr-neun .et_pb_button_module_wrapper { margin: .75rem 0 !important; }
body.lr .lr-neun .lr-klein p { color: var(--kreide-2); }
body.lr .lr-neun > .et_pb_row.lr-neun__reihe-zeile { width: 100%; }
.lr-neun-reihe { display: flex; justify-content: center; align-items: flex-end; gap: clamp(.25rem, 1vw, 1rem); padding: clamp(3rem, 6vw, 5rem) var(--rand) 0; height: clamp(14rem, 30vw, 26rem); }
body.lr .lr-neun-reihe img { height: 100%; width: auto; min-width: 0; object-fit: contain; flex: 0 1 auto; max-width: 10.5%; }
body.lr .lr-neun-reihe img:nth-child(odd) { height: 88%; }
.lr-js .lr-neun-reihe img { opacity: 0; transform: translateY(40%); transition: opacity .8s var(--aus), transform 1.1s var(--aus); }
.lr-js .lr-neun.ist-sichtbar .lr-neun-reihe img { opacity: 1; transform: none; }
.lr-neun.ist-sichtbar .lr-neun-reihe img:nth-child(2) { transition-delay: .07s; } .lr-neun.ist-sichtbar .lr-neun-reihe img:nth-child(3) { transition-delay: .14s; }
.lr-neun.ist-sichtbar .lr-neun-reihe img:nth-child(4) { transition-delay: .21s; } .lr-neun.ist-sichtbar .lr-neun-reihe img:nth-child(5) { transition-delay: .28s; }
.lr-neun.ist-sichtbar .lr-neun-reihe img:nth-child(6) { transition-delay: .35s; } .lr-neun.ist-sichtbar .lr-neun-reihe img:nth-child(7) { transition-delay: .42s; }
.lr-neun.ist-sichtbar .lr-neun-reihe img:nth-child(8) { transition-delay: .49s; } .lr-neun.ist-sichtbar .lr-neun-reihe img:nth-child(9) { transition-delay: .56s; }

/* ---------- Ablauf ---------- */
body.lr .et_pb_section.lr-erlebnis { background: var(--ghisa); padding-block: var(--abstand) clamp(3rem, 6vw, 5rem); }
body.lr .lr-erlebnis > .et_pb_row { align-items: flex-start; }
body.lr .et_pb_column.lr-erlebnis__kopf { position: sticky; top: calc(var(--kopf-h) + 3rem); }
body.lr .lr-erlebnis__kopf .lr-abschnitt-text p { color: var(--rauch); opacity: 1; }
.lr-erlebnis__kopf .et_pb_button_module_wrapper { margin-top: 1rem !important; }
body.lr .lr-ablauf ol { list-style: none; margin: 0; padding: 0 0 0 2.5rem !important; position: relative; counter-reset: a; }
body.lr .lr-ablauf ol::before, body.lr .lr-ablauf ol::after { content: ""; position: absolute; left: .55rem; top: .5rem; bottom: .5rem; width: 1px; background: rgba(217,182,114,.2); }
body.lr .lr-ablauf ol::after { background: var(--oro); transform-origin: top; transform: scaleY(var(--fortschritt, 0)); }
body.lr .lr-ablauf li { position: relative; counter-increment: a; padding: 1.75rem 0; border-bottom: 1px solid rgba(253,240,237,.08); font-family: var(--schrift-titel); font-size: clamp(1.5rem, 1.1rem + 1.4vw, 2.4rem); line-height: 1.15; transition: color .5s; color: rgba(253,240,237,.55); }
body.lr .lr-ablauf li.ist-an, body.lr html:not(.lr-js) .lr-ablauf li { color: var(--kreide); }
body.lr .lr-ablauf li::before { content: counter(a, upper-roman); display: block; font-family: var(--schrift-text); font-size: .75rem; letter-spacing: .14em; color: var(--oro); margin-bottom: .4rem; }
body.lr .lr-ablauf li::after { content: ""; position: absolute; left: calc(-2.5rem + .55rem - 5px); top: 2.45rem; width: 11px; height: 11px; border-radius: 50%; background: var(--ghisa); border: 1px solid var(--oro); transition: background-color .5s; }
body.lr .lr-ablauf li.ist-an::after { background: var(--oro); }

/* ---------- Galerie ---------- */
body.lr .et_pb_section.lr-galerie { background: var(--ghisa); padding-block: clamp(4rem, 7vw, 6rem); overflow: hidden; }
body.lr .et_pb_row.lr-galerie__kopf { align-items: flex-end; margin-bottom: clamp(1.5rem, 3vw, 2.5rem) !important; }
body.lr .lr-galerie__kopf .lr-abschnitt-text p { color: var(--rauch); opacity: 1; }
body.lr .lr-galerie > .et_pb_row.lr-galerie__zeile { width: 100%; }
body.lr .et_pb_column.lr-galerie__spur { display: flex; flex-direction: row; align-items: center; gap: clamp(.75rem, 1.5vw, 1.5rem); padding-left: max(var(--rand), (100vw - var(--breite)) / 2); padding-right: var(--rand); overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; width: 100% !important; }
body.lr .lr-galerie__bild { flex: none; height: clamp(16rem, 52svh, 34rem); aspect-ratio: 3 / 4; border-radius: 1rem; overflow: hidden; scroll-snap-align: start; width: auto; }
body.lr .lr-galerie__bild--hoch { height: clamp(18rem, 60svh, 40rem); }
body.lr .lr-galerie__bild .et_pb_image_wrap, body.lr .lr-galerie__bild img { width: 100%; height: 100%; }
.lr-galerie__bild img { object-fit: cover; }
@media (min-width: 981px) {
  body.lr .et_pb_section.lr-galerie.ist-klebend { height: 280vh; padding: 0; overflow: clip; }
  .lr-galerie__buehne { position: sticky; top: 0; height: 100svh; display: flex; flex-direction: column; justify-content: center; padding-top: var(--kopf-h); overflow: hidden; }
  body.lr .lr-galerie.ist-klebend .et_pb_column.lr-galerie__spur { overflow: visible; scroll-snap-type: none; will-change: transform; }
}

/* ---------- Helle Abschnitte ---------- */
body.lr .et_pb_section.lr-hell { background: var(--acciaio); color: var(--tinte); padding-block: var(--abstand); }
body.lr .et_pb_section.lr-hell + .et_pb_section.lr-hell { padding-top: 0; }
body.lr .et_pb_section.lr-hell + .et_pb_section.lr-hell > .et_pb_row:first-child { border-top: 1px solid var(--acciaio-2); padding-top: var(--abstand); }
body.lr .lr-hell .lr-abschnitt-text p { color: var(--tinte-2); opacity: 1; }
body.lr .lr-hell .lr-klein p { color: var(--tinte-3); }
body.lr .lr-liste-strich h3 { font-family: var(--schrift-text); font-size: .8rem; letter-spacing: .12em; text-transform: uppercase; font-stretch: 112%; color: var(--rosso); margin-bottom: 1rem; font-weight: 600; }
body.lr .lr-liste-strich ul { list-style: none; padding: 0 !important; margin: 0; }
body.lr .lr-liste-strich li { padding: .55rem 0; border-bottom: 1px solid var(--acciaio-2); font-weight: 500; }

body.lr .et_pb_row.lr-journal { margin-top: clamp(4rem, 7vw, 6rem) !important; padding: clamp(1.5rem, 3vw, 2.5rem); background: var(--acciaio-3); border-radius: 1.5rem; align-items: center; }
body.lr .lr-anlaesse-seite ~ * .et_pb_row.lr-journal, body.lr .et_pb_row.lr-journal:first-child { margin-top: 0 !important; }
body.lr .lr-journal__titelblatt img { width: clamp(8rem, 14vw, 12rem); box-shadow: 0 25px 40px -20px rgba(27,21,22,.5); rotate: -3deg; transition: rotate .8s var(--aus); }
.lr-journal:hover .lr-journal__titelblatt img { rotate: 0deg; }
.lr-journal .et_pb_button_module_wrapper { margin-top: .5rem !important; }

/* Langzeit + Kauf Teaser */
body.lr .lr-duo > .et_pb_row { --row-gutter-horizontal: clamp(1rem, 2vw, 2rem); align-items: stretch; }
body.lr .et_pb_column.lr-duo__karte { background: var(--acciaio-3); border-radius: 1.5rem; padding: clamp(1.75rem, 3vw, 3rem); display: flex; flex-direction: column; }
.lr-duo__karte .et_pb_button_module_wrapper { margin-top: auto !important; padding-top: 1rem; }

/* ---------- Über uns ---------- */
body.lr .et_pb_section.lr-ueber { background: var(--rosso-tief); padding-block: var(--abstand); }
body.lr .lr-ueber > .et_pb_row { align-items: center; }
body.lr .lr-ueber__bild img { border-radius: 1.25rem; aspect-ratio: 4 / 5; object-fit: cover; width: 100%; box-shadow: 0 40px 80px -40px rgba(0,0,0,.7); }
body.lr .lr-ueber__bildtext p { margin-top: 1rem; font-size: .875rem; color: var(--kreide-2); }
body.lr .lr-ueber__bildtext strong { display: block; font-family: var(--schrift-titel); font-weight: 500; font-size: 1.4rem; color: var(--kreide); }
body.lr .lr-ueber__gross p { font-family: var(--schrift-titel); font-size: clamp(1.4rem, 1.1rem + 1vw, 2rem); line-height: 1.3; margin: .5rem 0 1.5rem; }
body.lr .lr-ueber__gross em { color: var(--oro-hell); }
body.lr .lr-ueber .lr-abschnitt-text p { color: var(--kreide-2); opacity: 1; }
.lr-filetto::after { content: ""; display: block; width: 15rem; height: 1.5rem; margin-top: 1rem; background: var(--oro); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 240 24'%3E%3Cpath d='M4 12c0-5 6-7 9-3s-1 8-4 5M13 9h214M13 15h214M236 12c0-5-6-7-9-3s1 8 4 5' fill='none' stroke='black' stroke-width='1.2' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 240 24'%3E%3Cpath d='M4 12c0-5 6-7 9-3s-1 8-4 5M13 9h214M13 15h214M236 12c0-5-6-7-9-3s1 8 4 5' fill='none' stroke='black' stroke-width='1.2' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat; }

/* ---------- Fragen (Divi-Akkordeon) ---------- */
body.lr .et_pb_section.lr-fragen { background: var(--acciaio); color: var(--tinte); padding-block: var(--abstand); }
body.lr .et_pb_section.lr-fragen + .et_pb_section.lr-fragen { padding-top: 0; }
body.lr .lr-fragen .lr-abschnitt-text p { color: var(--tinte-2); opacity: 1; }
body.lr .lr-akkordeon .et_pb_toggle { margin: 0 !important; padding: 0; border: 0; border-bottom: 1px solid var(--acciaio-2); background: transparent !important; }
body.lr .lr-akkordeon .et_pb_toggle:first-child { border-top: 1px solid var(--acciaio-2); }
body.lr .lr-akkordeon .et_pb_toggle_title { position: relative; cursor: pointer; padding: 1.35rem 2.5rem 1.35rem 0 !important; font-family: var(--schrift-titel) !important; font-weight: 500 !important; font-size: clamp(1.2rem, 1rem + .6vw, 1.5rem) !important; line-height: 1.25 !important; color: var(--tinte) !important; transition: color .3s; }
body.lr .lr-akkordeon .et_pb_toggle_title:hover { color: var(--rosso) !important; }
body.lr .lr-akkordeon .et_pb_toggle_title::before { content: "" !important; font-family: inherit !important; position: absolute; right: .2rem; top: 50%; left: auto; width: 1.1rem; height: 1.1rem; margin-top: -.55rem; color: var(--rosso); background: linear-gradient(currentColor, currentColor) center / 100% 1.6px no-repeat, linear-gradient(currentColor, currentColor) center / 1.6px 100% no-repeat; transition: transform .45s var(--aus); display: block !important; }
body.lr .lr-akkordeon .et_pb_toggle_open .et_pb_toggle_title::before { transform: rotate(45deg); }
body.lr .lr-akkordeon .et_pb_toggle_content { padding: 0 0 1.5rem; color: #3f3536; max-width: 66ch; font-size: 1rem; line-height: 1.6; }
body.lr .lr-akkordeon .et_pb_toggle_content ul { padding-left: 1.1rem; list-style: disc; }
body.lr .lr-akkordeon .et_pb_toggle_content li { margin-bottom: .5rem; }
body.lr .lr-akkordeon .et_pb_toggle_content a { color: var(--rosso); font-weight: 600; }

/* ---------- Anfrage ---------- */
body.lr .et_pb_section.lr-anfrage { background: var(--rosso); padding-block: var(--abstand); }
body.lr .lr-anfrage > .et_pb_row { align-items: flex-start; }
body.lr.page .lr-anfrage:first-child { padding-top: calc(var(--kopf-h) + clamp(3rem, 6vw, 5rem)); }
body.lr .lr-anfrage .lr-abschnitt-text p { color: var(--kreide-2); opacity: 1; max-width: 44ch; }
body.lr .lr-kontakt dl { margin: 2rem 0 0; border-top: 1px solid rgba(253,240,237,.25); }
body.lr .lr-kontakt dl div { display: grid; grid-template-columns: 9.5rem 1fr; gap: 1rem; padding: .75rem 0; border-bottom: 1px solid rgba(253,240,237,.25); }
body.lr .lr-kontakt dt { font-size: .8rem; color: var(--kreide-2); padding-top: .15rem; }
body.lr .lr-kontakt dd { margin: 0; font-weight: 500; font-variant-numeric: tabular-nums; }
body.lr .lr-kontakt a { text-decoration: none; } .lr-kontakt a:hover { text-decoration: underline; }
body.lr .lr-kontakt--hell h3 { font-family: var(--schrift-text); font-size: .8rem; letter-spacing: .12em; text-transform: uppercase; color: var(--rosso); font-weight: 600; }
body.lr .lr-kontakt--hell dl { margin-top: 1rem; border-color: var(--acciaio-2); }
body.lr .lr-kontakt--hell dl div { grid-template-columns: 1fr; gap: .1rem; border-color: var(--acciaio-2); }
body.lr .lr-kontakt--hell dt { color: var(--tinte-3); }

/* Formular-Karte (Gravity Forms Orbital, über Variablen gefärbt) */
body.lr .lr-formular-karte { background: var(--acciaio); color: var(--tinte); border-radius: 1.5rem; padding: clamp(1.5rem, 3vw, 2.75rem); box-shadow: 0 40px 80px -40px rgba(0,0,0,.6); }
body.lr .lr-formular-karte .gform_wrapper.gform-theme {
  --gf-color-primary: #a8121c; --gf-color-primary-rgb: 168, 18, 28; --gf-color-primary-darker: #6c0a11; --gf-color-primary-lighter: #d8303a;
  --gf-color-in-ctrl: #fbfaf9; --gf-color-in-ctrl-contrast: #1b1516; --gf-ctrl-border-color: #b8b4af;
  --gf-radius: .7rem; --gf-ctrl-size-md: 3rem; --gf-font-family-base: var(--schrift-text); --gf-ctrl-label-color-primary: #1b1516;
  --gf-ctrl-btn-radius: 999px; --gf-ctrl-btn-font-size-md: .95rem; --gf-ctrl-btn-font-weight: 600; --gf-ctrl-btn-padding-x-md: 1.5rem;
  --gf-form-gap-y: 1.25rem; --gf-ctrl-choice-check-color: #a8121c;
  --gf-field-pg-steps-number-bg-color-complete: #1b1516; --gf-field-pg-steps-number-border-color-complete: #1b1516; --gf-field-pg-steps-number-color-complete: #fdf0ed;
  --gf-ctrl-number-spin-btn-opacity: 0; --gf-field-pg-steps-number-size: 1.7rem; --gf-ctrl-number-spin-btn-appearance: none;
  font-family: var(--schrift-text);
}
body.lr .lr-formular-karte .gf_page_steps { display: flex; gap: .5rem; border: 0; padding: 0; margin-bottom: 2rem; }
body.lr .lr-formular-karte .gf_step { flex: 1; margin: 0; padding-top: .6rem; border-top: 3px solid var(--acciaio-2); font-size: .78rem; font-weight: 600; color: #6b5f60; opacity: 1; }
body.lr .lr-formular-karte .gf_step_active, body.lr .lr-formular-karte .gf_step_completed { border-color: var(--rosso); color: var(--tinte); }
body.lr .lr-formular-karte .gfield_label, body.lr .lr-formular-karte legend.gfield_label { font-size: .85rem; font-weight: 600; }
body.lr .lr-formular-karte .lr-wahl .gfield_radio { display: flex !important; flex-direction: row !important; flex-wrap: wrap; gap: .6rem; }
body.lr .lr-formular-karte .lr-wahl .gchoice { position: relative; margin: 0; }
body.lr .lr-formular-karte .lr-wahl .gchoice input { position: absolute; inset: 0; opacity: 0; cursor: pointer; margin: 0; width: 100%; height: 100%; z-index: 1; }
body.lr .lr-formular-karte .lr-wahl .gchoice label { display: inline-flex; gap: .5rem; align-items: center; min-height: 2.9rem; padding: 0 1.1rem; margin: 0; border: 1px solid #b8b4af; border-radius: 999px; font-size: .9rem; background: var(--acciaio-3); cursor: pointer; transition: all .3s var(--aus); max-width: none; }
body.lr .lr-formular-karte .lr-wahl .gchoice label strong { font-family: var(--schrift-titel); font-weight: 600; font-size: 1.05rem; }
body.lr .lr-formular-karte .lr-wahl .gchoice:hover label { border-color: var(--rosso); }
body.lr .lr-formular-karte .lr-wahl .gchoice input:checked + label { background: var(--rosso); color: var(--kreide); border-color: var(--rosso); }
body.lr .lr-formular-karte .lr-wahl .gchoice input:focus-visible + label { outline: 2px solid var(--rosso); outline-offset: 3px; }
body.lr .lr-formular-karte .gfield.lr-drittel { grid-column: span 4; }
body.lr .lr-formular-karte .gfield.lr-halb { grid-column: span 6; }
body.lr .lr-formular-karte .gfield_description { font-size: .85rem; color: var(--tinte-3); }
body.lr .lr-formular-karte .gform_page_footer, body.lr .lr-formular-karte .gform_footer { display: flex; justify-content: space-between; gap: 1rem; margin-top: 1.5rem; }
body.lr .lr-formular-karte .gform_next_button, body.lr .lr-formular-karte .gform_button { margin-left: auto !important; background: var(--ghisa) !important; color: var(--kreide) !important; border-radius: 999px !important; }
body.lr .lr-formular-karte .gform_button { background: var(--rosso) !important; }
body.lr .lr-formular-karte .gform_previous_button { background: transparent !important; color: var(--tinte) !important; border: 0 !important; box-shadow: none !important; padding-inline: .5rem !important; }

/* Formular: Schrittanzeige, Meldungen, Knöpfe (statt GF-Blau und GF-Rosa) */
body.lr .lr-formular-karte .gf_page_steps { flex-wrap: nowrap; }
body.lr .lr-formular-karte .gf_step { display: flex; align-items: center; gap: .55rem; min-width: 0; letter-spacing: .1em; text-transform: uppercase; font-size: .72rem; }
body.lr .lr-formular-karte .gf_step_number { flex: none; width: 1.7rem !important; height: 1.7rem !important; border-radius: 50%; display: inline-flex !important; align-items: center; justify-content: center; font-size: .75rem !important; font-weight: 700; background: transparent !important; border: 1.5px solid #b8b4af !important; color: var(--tinte-3) !important; }
body.lr .lr-formular-karte .gf_step_active .gf_step_number { background: var(--rosso) !important; border-color: var(--rosso) !important; color: var(--kreide) !important; }
body.lr .lr-formular-karte .gf_step_completed .gf_step_number { background: var(--tinte) !important; border-color: var(--tinte) !important; color: transparent !important; position: relative; }
body.lr .lr-formular-karte .gf_step_completed .gf_step_number::before { background: var(--tinte) !important; border-color: var(--tinte) !important; }
body.lr .lr-formular-karte .gf_step_completed .gf_step_number::after { color: var(--kreide) !important; }
body.lr .lr-formular-karte .gf_step_label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
body.lr .lr-formular-karte .gform_validation_errors { margin: 0 0 1.75rem !important; padding: 1rem 1.25rem !important; background: #f6e3e1 !important; border: 0 !important; border-left: 4px solid var(--rosso) !important; border-radius: .5rem !important; box-shadow: none !important; }
body.lr .lr-formular-karte .gform_validation_errors .gform_submission_error { font-family: var(--schrift-text) !important; font-size: .95rem !important; font-weight: 600 !important; color: var(--rosso-tief) !important; }
body.lr .lr-formular-karte .gform_validation_errors .gform-icon { display: none !important; }
body.lr .lr-formular-karte .gform_validation_errors ol { margin: .5rem 0 0 !important; padding-left: 1.1rem !important; font-size: .9rem; }
body.lr .lr-formular-karte .gform_validation_errors a { color: var(--rosso-tief) !important; }
body.lr .lr-formular-karte .gfield_validation_message, body.lr .lr-formular-karte .feld__fehler { margin: .45rem 0 0 !important; padding: 0 !important; background: none !important; border: 0 !important; font-size: .85rem !important; font-weight: 600; color: var(--rosso) !important; }
body.lr .lr-formular-karte .gfield_error input, body.lr .lr-formular-karte .gfield_error textarea, body.lr .lr-formular-karte .gfield_error select { border-color: var(--rosso) !important; }
body.lr .lr-formular-karte .gfield_error .gfield_label { color: inherit !important; }
body.lr .lr-formular-karte .gfield--type-hidden.gfield_error { display: none !important; }
/* Wie larossa.at: keine Pflichtmarkierung, freiwillige Felder stehen im Label. */
body.lr .lr-formular-karte .gfield_required, body.lr .lr-formular-karte .gform_required_legend { display: none !important; }
body.lr .lr-formular-karte input[type="number"] { -moz-appearance: textfield; appearance: textfield; }
body.lr .lr-formular-karte input[type="number"]::-webkit-inner-spin-button, body.lr .lr-formular-karte input[type="number"]::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
body.lr .lr-formular-karte .gform_previous_button { font-weight: 600 !important; text-decoration: underline !important; text-underline-offset: .3em; text-decoration-color: #b8b4af !important; }
body.lr .lr-formular-karte .gform_page_footer, body.lr .lr-formular-karte .gform_footer { align-items: center; padding-top: 1.5rem !important; border-top: 1px solid var(--acciaio-2); }
body.lr .lr-formular-karte .gform_next_button, body.lr .lr-formular-karte .gform_button { min-height: 3.1rem !important; padding-inline: 1.6rem !important; }
/* Ladeanzeige: GF setzt sie in den Knopf und blendet den Text aus; unsere Textfarbe mit !important hielt ihn sichtbar. */
body.lr .lr-formular-karte .gform-has-spinner { color: transparent !important; text-decoration-color: transparent !important; }
body.lr .lr-formular-karte .gform_next_button .gform-loader, body.lr .lr-formular-karte .gform_button .gform-loader { border-color: rgba(253,240,237,.22) !important; border-block-end-color: #fdf0ed !important; border-inline-start-color: #fdf0ed !important; }
body.lr .lr-formular-karte .gform-theme-button:focus:not(:focus-visible) { outline: none !important; box-shadow: none !important; }
body.lr .lr-formular-karte .gform_previous_button:focus-visible { outline: 2px solid var(--rosso) !important; outline-offset: 3px; border-radius: .4rem !important; }

/* Formular: Fragen wie auf larossa.at ("Wann darf’s sein?", "Was feiern Sie?") */
body.lr .lr-formular-karte .lr-frage__titel, body.lr .lr-formular-karte .lr-frage > .gfield_label { display: block; margin: 0 0 .4rem !important; font-family: var(--schrift-titel) !important; font-size: clamp(1.5rem, 1.2rem + 1vw, 1.9rem) !important; font-weight: 500 !important; line-height: 1.15; color: var(--tinte); }
body.lr .lr-formular-karte .lr-frage__satz, body.lr .lr-formular-karte .lr-frage > .gfield_description { margin: 0 0 1.1rem !important; padding: 0 !important; font-size: .95rem !important; color: var(--tinte-3) !important; max-width: 60ch; }
body.lr .lr-formular-karte .lr-hinweis { margin: 0 !important; padding: .9rem 1.1rem; background: var(--acciaio-3); border-left: 3px solid var(--rosso); border-radius: .4rem; font-size: .9rem; color: var(--tinte-3); }
body.lr .lr-formular-karte .lr-hinweis strong { display: block; margin-bottom: .2rem; font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--tinte); }
body.lr .lr-formular-karte .lr-hinweis--leise { background: none; border-left-color: #b8b4af; }
body.lr .lr-formular-karte .lr-hinweis a { color: var(--tinte); text-decoration: underline; text-underline-offset: .2em; }

/* Terminwähler (assets/kalender.js, Gestaltung nach larossa.at in La-Rossa-Farben) */
.lr-termin termin-waehler { display: block; min-width: 0; }
.lr-termin .feld { display: grid; gap: .35rem; margin-bottom: .9rem; }
.lr-termin .feld label { font-size: .85rem; font-weight: 600; }
.lr-termin .feldpaar { display: grid; gap: 0 1rem; }
@media (min-width: 30rem) { .lr-termin .feldpaar { grid-template-columns: 1fr 1fr; } }
.lr-termin__hilfe { margin: 1rem 0 0 !important; font-size: .85rem; color: var(--tinte-3); }
.termin__kalender { padding: 1.1rem; background: #fbfaf9; border: 1px solid var(--acciaio-2); border-radius: .9rem; }
.kalender__kopf { display: flex; align-items: center; gap: .5rem; margin-bottom: .9rem; }
body.lr .kalender__titel { flex: 1; margin: 0 !important; padding: 0 !important; text-align: center; font-family: var(--schrift-titel); font-size: 1.45rem !important; font-weight: 500; font-variant-numeric: lining-nums; color: var(--tinte); }
.kalender__blatt, .termin__schritt { flex: none; width: 2.4rem; height: 2.4rem; display: inline-flex; align-items: center; justify-content: center; padding: 0; font-size: 1.2rem; line-height: 1; color: var(--tinte); background: #fff; border: 1.5px solid var(--tinte); border-radius: 50%; cursor: pointer; transition: background .2s, color .2s, border-color .2s; }
.kalender__blatt:hover:not(:disabled), .termin__schritt:hover:not(:disabled) { background: var(--rosso); border-color: var(--rosso); color: #fff; }
.kalender__blatt:disabled, .termin__schritt:disabled { opacity: .28; cursor: default; }
.kalender__raster { display: grid; grid-template-columns: repeat(7, 1fr); gap: 5px; }
.kalender__wochentag { padding-bottom: .3rem; text-align: center; font-size: .66rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #8b8285; }
.kalender__tag { position: relative; aspect-ratio: 1; display: flex; align-items: center; justify-content: center; padding: 0; font-family: var(--schrift-text); font-size: .95rem; font-weight: 600; font-variant-numeric: lining-nums tabular-nums; color: var(--tinte); background: #fff; border: 1.5px solid #b8b4af; border-radius: .5rem; }
button.kalender__tag { cursor: pointer; transition: transform .15s var(--aus), border-color .15s; }
button.kalender__tag:hover { transform: scale(1.06); border-color: var(--rosso); z-index: 1; }
.kalender__tag--vergangen { background: transparent; border-style: dashed; border-color: var(--acciaio-2); color: #a39a9c; }
.termin__kalender .kalender__tag--gewaehlt { background: var(--rosso); border-color: var(--rosso); color: #fff; }
.kalender__tag--weitere { border-color: var(--tinte); box-shadow: inset 0 0 0 1px var(--tinte); }
.termin__zeilen { margin-top: 1.1rem; }
.termin__zeile { display: flex; flex-wrap: wrap; align-items: baseline; gap: .4rem 1rem; padding: .9rem 0; border-top: 1px solid var(--acciaio-2); }
.termin__zeile--aktiv { display: block; border-top: 0; padding-top: 0; }
body.lr .termin__tag { margin: 0 !important; font-family: var(--schrift-titel); font-size: 1.3rem; font-variant-numeric: lining-nums; }
.termin__nummer, .termin__dauer__name { margin-right: .7rem; font-size: .66rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--tinte-3); }
body.lr .termin__frage { display: block; margin: 1rem 0 .55rem !important; font-size: .9rem; font-weight: 600; color: var(--tinte); }
.termin__knoepfe { display: flex; flex-wrap: wrap; gap: .45rem; }
.termin__knopf { flex: none; min-width: 2.75rem; height: 2.75rem; padding: 0 .4rem; font-family: var(--schrift-text); font-size: .95rem; font-weight: 600; font-variant-numeric: lining-nums tabular-nums; color: var(--tinte); background: #fff; border: 1.5px solid #b8b4af; border-radius: .5rem; cursor: pointer; transition: border-color .2s, background .2s, color .2s; }
.termin__knopf:hover { border-color: var(--rosso); }
.termin__knopf--spaet { border-style: dashed; color: #8b8285; }
.termin__knopf[aria-pressed="true"] { background: var(--rosso); border-color: var(--rosso); border-style: solid; color: #fff; }
.termin__knopf--vorschlag { border-color: var(--rosso); border-style: solid; color: var(--rosso-tief); box-shadow: 0 0 0 1px var(--rosso); }
body.lr .termin__dauersatz { display: flex; flex-wrap: wrap; align-items: baseline; gap: .2rem 1rem; margin: 1.1rem 0 0 !important; }
.termin__dauersatz__text { font-weight: 600; }
.termin__dauer { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .7rem; margin-top: 1.1rem; }
.termin__dauer__wert { min-width: 3.6rem; text-align: center; font-family: var(--schrift-titel); font-size: 1.25rem; font-variant-numeric: lining-nums; }
.termin__dauer__hinweis { font-size: .9rem; color: var(--tinte-3); }
.termin__rueckfrage { margin: 1rem 0 0; padding: .85rem 1rem; border-left: 3px solid var(--rosso); background: rgba(255,255,255,.6); border-radius: .4rem; }
body.lr .termin__rueckfrage__text { margin: 0 0 .7rem !important; font-weight: 600; color: var(--tinte); }
.termin__rueckfrage__wahl { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1.4rem; }
.termin__uebernehmen { padding: .65rem 1.2rem; background: var(--rosso); border: 0; border-radius: 999px; font: 600 .9rem/1.3 var(--schrift-text); color: #fff; cursor: pointer; }
.termin__uebernehmen:hover { background: var(--rosso-tief); }
.termin__leiste { max-width: 30rem; margin-top: 1.1rem; }
.termin__zeiten { position: relative; height: 1.5rem; }
.termin__zeit { position: absolute; bottom: .3rem; white-space: nowrap; font-size: .8rem; font-weight: 700; letter-spacing: .04em; color: var(--tinte); }
.termin__skala { display: grid; height: 10px; background: var(--acciaio-3); border: 1px solid var(--acciaio-2); border-radius: 999px; overflow: hidden; }
.termin__block { grid-row: 1; background: var(--rosso); }
.termin__marken { position: relative; height: 1.2rem; margin-top: .35rem; font-size: .68rem; font-weight: 600; letter-spacing: .04em; color: var(--tinte-3); }
.termin__marken span { position: absolute; transform: translateX(-50%); white-space: nowrap; }
.termin__marken span:first-child { transform: none; }
.termin__marken span:last-child { transform: translateX(-100%); }
.termin__uhr { font-size: inherit; }
body.lr .termin__weiter { margin: .4rem 0 0 !important; }
.termin__mehr, .termin__leise { padding: .3rem 0; font-family: var(--schrift-text); font-size: .7rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--tinte-3); background: none; border: 0; cursor: pointer; text-decoration: underline; text-decoration-color: #b8b4af; text-underline-offset: .3em; }
.termin__mehr:hover, .termin__leise:hover { color: var(--rosso); }
.termin__zeile--aktiv .termin__leise { margin-top: .8rem; }
body.lr .termin__satz { margin: 1rem 0 0 !important; padding: .7rem 1rem; border-left: 2px solid #b8b4af; font-size: .95rem; color: var(--tinte); }
@media (min-width: 62rem) {
  .lr-termin termin-waehler { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 0 1.75rem; align-items: start; }
  .lr-termin termin-waehler > .termin__zeilen { margin-top: 0; }
  .lr-termin termin-waehler > .termin__weiter, .lr-termin termin-waehler > .termin__satz { grid-column: 1 / -1; }
}
@media (max-width: 35rem) {
  .termin__kalender { padding: .65rem; }
  .kalender__raster { gap: 3px; }
  .termin__marken span:not(:first-child) .termin__uhr { display: none; }
  .termin__mehr, .termin__leise { padding: .9rem .2rem; }
  body.lr .lr-formular-karte .gform_wrapper.gform-theme { --gf-field-pg-steps-number-size: 1.35rem; }
  body.lr .lr-formular-karte .gf_page_steps { gap: .35rem; }
  body.lr .lr-formular-karte .gf_step { font-size: .6rem; letter-spacing: .02em; gap: .3rem; }
  body.lr .lr-formular-karte .gf_step_number { width: 1.35rem !important; height: 1.35rem !important; font-size: .65rem !important; }
  body.lr .lr-formular-karte .gf_step_label { overflow: visible; }
}

/* ---------- Unterseiten: Seitenkopf ---------- */
body.lr .et_pb_section.lr-seitenkopf { background: radial-gradient(80% 90% at 80% 10%, #b8151f 0%, transparent 60%), linear-gradient(180deg, #9a0f18, var(--rosso) 60%, var(--rosso-tief)); padding: calc(var(--kopf-h) + clamp(3rem, 7vw, 6rem)) 0 clamp(3rem, 6vw, 5rem); position: relative; overflow: hidden; }
body.lr .lr-seitenkopf > .et_pb_row { align-items: flex-end; }
.lr-seitenkopf__titel .et_pb_module_header { font-size: clamp(2.3rem, 1.3rem + 3.4vw, 4.4rem); line-height: 1.02; letter-spacing: -0.02em; max-width: 20ch; }
body.lr .lr-seitenkopf__titel { margin-bottom: 1.25rem !important; }
body.lr .lr-seitenkopf__leit p { font-size: clamp(1.05rem, 1rem + .3vw, 1.2rem); line-height: 1.55; color: var(--kreide-2); max-width: 60ch; }
body.lr .lr-seitenkopf__bild { display: flex; justify-content: center; align-items: flex-end; }
body.lr .lr-seitenkopf__bild img { max-height: 26rem; width: auto; border-radius: 1rem; }
body.lr .lr-seitenkopf__bild img[src*="paket-"] { border-radius: 0; filter: drop-shadow(0 20px 30px rgba(40,0,4,.35)); }
body.lr .lr-brotkrumen { font-size: .8rem; letter-spacing: .04em; line-height: 1.5; color: var(--kreide-2); margin: 0 0 1.75rem !important; }
body.lr .lr-brotkrumen a { text-decoration: none; } .lr-brotkrumen a:hover { text-decoration: underline; }
.lr-danke .et_pb_button_module_wrapper { margin-top: 1rem !important; }

/* Aufruf-Band */
body.lr .et_pb_section.lr-aufruf { background: var(--rosso); padding-block: clamp(3.5rem, 6vw, 5rem); }
body.lr .lr-aufruf > .et_pb_row { align-items: center; }
body.lr .lr-aufruf .lr-abschnitt-text p { color: var(--kreide-2); opacity: 1; }
body.lr .lr-aufruf .et_pb_column:last-child { align-items: flex-end; text-align: right; }
body.lr .lr-aufruf__tel p { margin-top: .9rem; font-size: .9rem; color: var(--kreide-2); }
body.lr .lr-aufruf__tel a { font-weight: 600; text-decoration: none; }

/* Vergleichstabelle */
body.lr .lr-tabelle__modul { overflow-x: auto; margin-block: 1rem 1.5rem !important; }
.lr-vergleich { width: 100%; min-width: 40rem; border-collapse: collapse; font-size: .95rem; border: 0 !important; }
.lr-vergleich th, .lr-vergleich td { padding: .9rem 1.1rem !important; border: 0 !important; border-bottom: 1px solid var(--acciaio-2) !important; text-align: left; vertical-align: top; }
.lr-vergleich thead th { font-family: var(--schrift-titel); font-weight: 500; font-size: 1.4rem; border-bottom: 2px solid var(--tinte) !important; }
body.lr .lr-vergleich thead th a { text-decoration: none; } .lr-vergleich thead th a:hover { color: var(--rosso); }
/* Erste Spalte ohne Grund: bündig mit dem Fließtext; die Paketspalten bekommen Innenabstand, weil Gold hinterlegt ist. */
body.lr .lr-vergleich tr > :first-child { padding-left: 0 !important; }
.lr-vergleich tbody th { font-weight: 500; color: var(--tinte-3); font-size: .85rem; width: 22%; }
.lr-vergleich td:nth-child(3), .lr-vergleich th:nth-child(3) { background: rgba(168,18,28,.05); }

/* Paketseite / Modellseite */
body.lr .lr-einleitung p { font-family: var(--schrift-titel); font-size: clamp(1.3rem, 1.1rem + .7vw, 1.75rem); line-height: 1.35; margin-bottom: 2rem; }
body.lr .lr-paketseite .lr-titel-klein, body.lr .lr-modellseite .lr-titel-klein { margin-top: 2rem !important; }
body.lr .lr-paketseite > .et_pb_row, body.lr .lr-modellseite > .et_pb_row:first-child { align-items: flex-start; }
body.lr .lr-liste-haken ul { list-style: none; padding: 0 !important; margin: 0; display: grid; gap: .6rem; }
body.lr .lr-liste-haken li { position: relative; padding-left: 1.8rem; }
body.lr .lr-liste-haken li::before { content: ""; position: absolute; left: 0; top: .35em; width: 1rem; height: .55rem; border-left: 2px solid var(--rosso); border-bottom: 2px solid var(--rosso); transform: rotate(-45deg); }
body.lr .et_pb_column.lr-preisbox { position: sticky; top: calc(var(--kopf-h) + 1.5rem); background: var(--ghisa); color: var(--kreide); border-radius: 1.5rem; padding: clamp(1.5rem, 2.5vw, 2.25rem); }
body.lr .lr-modellseite .et_pb_column.lr-preisbox { background: var(--acciaio-3); color: var(--tinte); }
body.lr .lr-preisbox .lr-paket__preis span { color: var(--oro); }
body.lr .lr-preisbox .lr-paket__daten dt { color: var(--rauch); }
.lr-preisbox .et_pb_button_module_wrapper { margin-top: 1rem !important; }
.lr-linkliste { list-style: none; padding: 0 !important; margin: 1rem 0 0; }
body.lr .lr-linkliste li { padding: .5rem 0; border-bottom: 1px solid var(--acciaio-2); display: flex; justify-content: space-between; gap: 1rem; }
body.lr .lr-mietbox { margin-top: 2rem !important; }
body.lr .lr-mietbox h3 { font-family: var(--schrift-text); font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 600; color: var(--rosso); }
.lr-mietbox .lr-klein { margin-top: .75rem; color: var(--tinte-3); }
.lr-nachbarliste { list-style: none; padding: 0 !important; margin: 0 0 1.5rem; display: grid; grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr)); gap: 1rem; }
body.lr .lr-nachbarliste li { background: var(--acciaio-3); border-radius: 1rem; padding: 1.1rem 1.25rem; display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; }
body.lr .lr-nachbarliste a { text-decoration: none; font-size: .9rem; }
body.lr .lr-nachbarliste a:hover { color: var(--rosso); }
body.lr .lr-nachbarliste strong { display: block; font-family: var(--schrift-titel); font-weight: 500; font-size: 1.35rem; }
body.lr .lr-nachbarliste span { font-family: var(--schrift-titel); font-size: 1.2rem; color: var(--rosso); white-space: nowrap; }
body.lr .lr-modellseite__bild { display: flex; justify-content: center; }
body.lr .lr-modellseite__bild img { max-height: 34rem; width: auto; }
body.lr .lr-bildnachweis p { font-size: .75rem; color: var(--tinte-3); margin-top: 1rem; text-align: center; }
.lr-daten { width: 100%; border-collapse: collapse; border: 0 !important; font-size: .95rem; }
.lr-daten th, .lr-daten td { text-align: left; padding: .65rem 1rem .65rem 0 !important; border: 0 !important; border-bottom: 1px solid var(--acciaio-2) !important; vertical-align: top; }
.lr-daten th { font-weight: 500; color: var(--tinte-3); font-size: .85rem; width: 45%; }

/* Modelle (Kaufen) */
body.lr .et_pb_row.lr-modelle { --row-gutter-horizontal: clamp(1rem, 2vw, 1.75rem); margin-bottom: clamp(1rem, 2vw, 1.75rem) !important; align-items: stretch; }
body.lr .et_pb_column.lr-modell { background: var(--acciaio-3); border-radius: 1.25rem; padding: 1.75rem 1.75rem 1.5rem; display: flex; flex-direction: column; transition: background-color .4s, opacity .9s var(--aus), transform 1.1s var(--aus); }
body.lr .et_pb_column.lr-modell:hover { background: #fff; }
body.lr .lr-modell__bild { display: flex; justify-content: center; margin-bottom: 1.5rem !important; }
/* Divi zieht den Bildrahmen auf volle Breite, das Bild säße sonst links */
body.lr .lr-modell__bild .et_pb_image_wrap { display: flex; justify-content: center; }
body.lr .lr-modell__bild img { height: clamp(14rem, 22vw, 18rem); width: auto; transition: transform .8s var(--aus); }
.lr-modell:hover .lr-modell__bild img { transform: translateY(-6px); }
.lr-modell__name .et_pb_module_header { font-size: 1.6rem; }
body.lr .lr-modell__name a { text-decoration: none; }
body.lr .lr-modell__preis p { margin: .6rem 0 .25rem; display: flex; align-items: baseline; flex-wrap: wrap; gap: .25rem .75rem; }
.lr-modell__jetzt { font-family: var(--schrift-titel); font-size: 2rem; color: var(--rosso); font-variant-numeric: lining-nums; }
body.lr .lr-modell__preis s { font-size: .85rem; color: #6b5f60; }
body.lr .lr-modell__preis p.lr-preisbox__mwst { display: block; font-size: .8rem; color: var(--tinte-3); margin-top: 0; }
.lr-lager { font-size: .85rem; color: #3e6b3a; font-weight: 600; display: inline-flex; align-items: center; gap: .45rem; }
.lr-lager::before { content: ""; width: .5rem; height: .5rem; border-radius: 50%; background: currentColor; }
.lr-lager--aus { color: var(--tinte-3); }
body.lr .lr-modell .et_pb_button_module_wrapper { margin-top: auto !important; padding-top: .5rem; }

/* Anlässe-Seite, Langzeit-Stufen */
body.lr .lr-anlaesse-seite > .et_pb_row { --row-gutter-horizontal: clamp(1rem, 2vw, 2rem); margin-bottom: clamp(1rem, 2vw, 2rem) !important; align-items: stretch; }
body.lr .et_pb_column.lr-anlass { background: var(--acciaio-3); border-radius: 1.5rem; padding: clamp(1.5rem, 3vw, 2.5rem); }
body.lr .lr-empfehlung p { margin-top: 1.25rem; padding-top: 1rem; border-top: 1px solid var(--acciaio-2); font-size: .9rem; }
body.lr .lr-empfehlung span { display: block; font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; color: var(--rosso); font-weight: 600; margin-bottom: .2rem; }
body.lr .lr-empfehlung a { font-family: var(--schrift-titel); font-size: 1.25rem; text-decoration: none; }
body.lr .lr-empfehlung a:hover { color: var(--rosso); }
body.lr .et_pb_row.lr-stufen { --row-gutter-horizontal: 1.5rem; margin-top: 2rem !important; border-top: 1px solid var(--tinte); }
body.lr .et_pb_column.lr-stufe { position: relative; padding-top: 2rem; }
.lr-stufe::before { content: ""; position: absolute; top: -.25rem; left: 0; height: .5rem; border-radius: 999px; background: var(--rosso); width: 20%; }
.lr-stufe:nth-child(2)::before { width: 45%; }
.lr-stufe:nth-child(3)::before { width: 100%; }
.lr-js .lr-stufe::before { transform: scaleX(0); transform-origin: left; transition: transform 1.2s var(--aus); }
.lr-js .lr-stufen.ist-sichtbar .lr-stufe::before { transform: none; }
.lr-js .lr-stufen.ist-sichtbar .lr-stufe:nth-child(2)::before { transition-delay: .2s; }
.lr-js .lr-stufen.ist-sichtbar .lr-stufe:nth-child(3)::before { transition-delay: .4s; }
body.lr .lr-stufe__dauer p { font-size: .8rem; letter-spacing: .1em; text-transform: uppercase; color: var(--rosso); font-weight: 600; margin-bottom: .5rem; }
.lr-stufe__name .et_pb_module_header { font-size: clamp(2rem, 1.6rem + 1.2vw, 2.75rem); line-height: 1; }
body.lr .lr-stufe__name span { display: block; font-family: var(--schrift-text); font-size: .9rem; font-weight: 500; color: var(--tinte-3); margin-top: .4rem; letter-spacing: 0; }
body.lr .lr-stufe__name { margin-bottom: 1rem !important; }

/* Rechtstexte */
.lr-rechtstext__modul { max-width: 46rem; }
body.lr .lr-rechtstext__modul h2 { font-size: 1.5rem; margin: 2.5rem 0 .75rem; }
body.lr .lr-rechtstext__modul h2:first-child { margin-top: 0; }
body.lr .lr-rechtstext__modul ul { padding-left: 1.2rem !important; list-style: disc; }
body.lr .lr-rechtstext__modul p, body.lr .lr-rechtstext__modul li { color: var(--tinte-2); }
body.lr .lr-rechtstext__modul a { color: var(--rosso); }

/* ---------- Fuß ---------- */
.lr-fuss { background: var(--ghisa); color: var(--rauch); padding-block: 4rem 6rem; font-size: .9rem; }
.lr-fuss__raster { display: grid; grid-template-columns: 1.6fr 1.2fr 1fr 1fr; gap: 2rem 3rem; }
.lr-fuss .lr-marke__wort { color: var(--kreide); margin-bottom: 1rem; display: block; }
body.lr .lr-fuss h2, body.lr .lr-fuss h3 { font-family: var(--schrift-text); font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; color: var(--oro); font-weight: 600; margin-bottom: 1rem; }
body.lr .lr-fuss p { max-width: 46ch; }
body.lr .lr-fuss a { text-decoration: none; color: var(--kreide); }
body.lr .lr-fuss a:hover { color: var(--oro); }
body.lr .lr-fuss__liste, body.lr .lr-fuss ul { list-style: none; margin: 0; padding: 0 !important; display: grid; gap: .5rem; }
body.lr .lr-fuss__unten { margin: 3rem auto 0; padding-top: 1.5rem; border-top: 1px solid rgba(253,240,237,.1); font-size: .8rem; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; }
.lr-leiste { display: none; }

/* ---------- Einblenden ---------- */
.lr-js .lr-paket, .lr-js .lr-modell { opacity: 0; transform: translateY(28px); }
.lr-js .lr-paket.ist-sichtbar, .lr-js .lr-modell.ist-sichtbar { opacity: 1; transform: none; }
.lr-js .lr-paketreihe .lr-paket:nth-child(2), .lr-js .lr-modelle .lr-modell:nth-child(2) { transition-delay: .1s; }
.lr-js .lr-paketreihe .lr-paket:nth-child(3), .lr-js .lr-modelle .lr-modell:nth-child(3) { transition-delay: .2s; }

/* ---------- Responsiv ---------- */
@media (max-width: 1240px) {
  body.lr .lr-kopf__tel span { display: none; }
  /* nur noch das Symbol: Tippfläche 44 px statt 14 px */
  body.lr .lr-kopf__tel { justify-content: center; min-width: 2.75rem; min-height: 2.75rem; }
}
@media (max-width: 1100px) {
  .lr-kopf__menue { display: inline-block; }
  .lr-navi { position: fixed; inset: var(--kopf-h) 0 auto; max-height: calc(100svh - var(--kopf-h)); overflow-y: auto; background: rgba(20,16,17,.97); padding: 1.5rem var(--rand) 2rem; transform: translateY(-1rem); opacity: 0; visibility: hidden; transition: opacity .3s, transform .4s var(--aus), visibility 0s .4s; }
  .lr-menue-offen .lr-navi { opacity: 1; visibility: visible; transform: none; transition: opacity .3s, transform .4s var(--aus); }
  .lr-navi__liste { flex-direction: column; gap: 0; }
  body.lr .lr-navi__liste a { display: block; padding: .9rem 0; font-family: var(--schrift-titel); font-size: 1.6rem; letter-spacing: 0; border-bottom: 1px solid rgba(253,240,237,.1); }
  body.lr .lr-navi__liste a::after { display: none; }
  .lr-navi__kontakt { display: block; margin-top: 1.5rem; color: var(--kreide-2); }
}
@media (max-width: 980px) {
  :root { --kopf-h: 4rem; }
  /* Divi-Zeilen brechen sonst nicht um (flex-wrap: nowrap); Spalten sind ab Tablet 24_24 */
  body.lr .et_flex_row { flex-wrap: wrap; }
  .lr-kopf__cta { display: none !important; }
  body.lr .lr-buehne > .et_pb_row.lr-buehne__raster { grid-template-columns: 1fr; }
  body.lr .et_pb_column.lr-buehne__bild { grid-column: 1; grid-row: 1; height: 100svh; z-index: 0; }
  body.lr .et_pb_column.lr-buehne__text { grid-column: 1; grid-row: 1; padding-inline: var(--rand); }
  .lr-buehne__bild::before { -webkit-mask-image: none; mask-image: none; }
  .lr-figur, .lr-buehne__bild:not(.ist-aufgebaut) .lr-buehne__maschine img { height: min(50svh, 100vw); bottom: auto; top: calc(var(--kopf-h) + 1svh); }
  .lr-marken { display: none; }
  body.lr .et_pb_group.lr-hero { min-height: auto; padding-top: calc(var(--kopf-h) + min(50svh, 100vw) + 1rem); justify-content: flex-start; }
  .lr-hero > * { text-shadow: 0 1px 14px rgba(0,0,0,.3); }
  /* Dunkler Grund ab Oberkante des Textes (--text-oben setzt larossa.js), unten weich auslaufend:
     lange Schritte (Volano) beginnen höher als 38 %, sonst liegt die Überschrift auf dem Bild. */
  body.lr .et_pb_group.lr-schritt { justify-content: flex-end; padding-bottom: 6rem; max-width: none; background: linear-gradient(180deg, transparent calc(var(--text-oben, 45%) - 7rem), rgba(61,5,10,.94) calc(var(--text-oben, 45%) - 1.5rem), rgba(61,5,10,.94) calc(100% - 3rem), rgba(61,5,10,0) 100%); margin-inline: calc(-1 * var(--rand)); padding-inline: var(--rand); }
  /* Paketfinder liegt mobil über der festen Maschine: deckender, sonst scheint sie durch */
  .lr-finder { background: linear-gradient(180deg, rgba(61,5,10,.9), rgba(52,4,9,.95)); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
  .lr-schritt__titel .et_pb_module_header { font-size: clamp(1.8rem, 1.2rem + 3vw, 2.4rem); }
  body.lr .et_pb_row { --row-gutter-vertical: 1.5rem; }
  body.lr .et_pb_column.lr-erlebnis__kopf { position: static; }
  body.lr .et_pb_column.lr-paket--star { order: -1; }
  body.lr .lr-zusatz__liste dl { grid-template-columns: 1fr; gap: .75rem; }
  body.lr .lr-neun__ziffer p { font-size: clamp(8rem, 40vw, 14rem); }
  body.lr .lr-galerie__bild, body.lr .lr-galerie__bild--hoch { height: 26rem; }
  body.lr .lr-aufruf .et_pb_column:last-child { align-items: flex-start; text-align: left; }
  body.lr .et_pb_column.lr-preisbox { position: static; }
  .lr-fuss__raster { grid-template-columns: 1fr 1fr; }
  .lr-leiste { display: flex; gap: .6rem; position: fixed; left: .75rem; right: .75rem; bottom: .75rem; z-index: 60; padding: .5rem; border-radius: 999px; background: rgba(20,16,17,.92); backdrop-filter: blur(10px); box-shadow: 0 12px 30px -10px rgba(0,0,0,.6); transform: translateY(calc(100% + 1rem)); transition: transform .5s var(--aus); }
  .lr-leiste.ist-an { transform: none; }
  .lr-leiste .lr-knopf { --h: 3rem; }
  .lr-leiste__cta { flex: 1; }
  body.lr .lr-formular-karte .gfield.lr-drittel, body.lr .lr-formular-karte .gfield.lr-halb { grid-column: span 12; }
}
@media (max-width: 600px) {
  .lr-marke__zeile { display: none; }
  body.lr .lr-kontakt dl div, body.lr .lr-schritt__daten dl div { grid-template-columns: 1fr; gap: .1rem; }
  .lr-finder__ergebnis { flex-direction: column; align-items: flex-start; }
  .lr-finder__preis { text-align: left; }
  body.lr .lr-neun-reihe img { max-width: 11%; }
  .lr-fuss__raster { grid-template-columns: 1fr; }
  body.lr .et_pb_column.lr-modell { padding: 1rem; }
  body.lr .lr-modell__bild img { height: 15rem; }
  /* Lange Wörter (Schwungradmaschinen, Geschäftsbedingungen) liefen über den Rand */
  body.lr h1, body.lr h2, body.lr h3 { -webkit-hyphens: auto; hyphens: auto; hyphenate-limit-chars: 12 5 5; overflow-wrap: break-word; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
  .lr-js .lr-schritt > *, .lr-js .lr-paket, .lr-js .lr-modell, .lr-js .lr-neun-reihe img { opacity: 1; transform: none; }
}
