/* ==========================================================================
   levigo Landingpages – Basisdesign
   --------------------------------------------------------------------------
   Gemeinsame Grundlage aller Landingpages (Farben, Schriften, Buttons,
   Sektionen, Karten, Listen, Formulare). Seitenspezifisches kommt ins
   Seiten-CSS der jeweiligen Landingpage.

   Klassen-Übersicht (in WPBakery als „Zusätzlicher Klassenname“):
   Zeile ............ lp-section  lp-section--tight  lp-section--flush
                      lp-bg-white  lp-bg-grey  lp-bg-soft  lp-bg-navy  lp-bg-hellblau  lp-bg-hero
                      lp-center  lp-narrow
   Spalte ........... lp-card  lp-card--white  lp-card--center
   Bild ............. lp-img-rounded  lp-img-icon  lp-avatar
   Akkordeon ........ lp-faq
   Variante ......... lp-nur-<variante>  lp-nicht-<variante>
   Im Text (HTML) ... lp-eyebrow  lp-accent  lp-lead  lp-hint  lp-muted  lp-small
                      lp-actions + lp-btn lp-btn--primary | --outline | --outline-light
                      lp-badges  lp-trust (+ lp-trust--plain)  lp-ico-<name>
                      lp-checklist  lp-steps  lp-selfcheck  lp-quote
   ========================================================================== */

:root {
	/* Farben levigo */
	--lp-navy: #0A2D55;
	--lp-blue: #003D87;
	--lp-orange: #EC6608;
	--lp-orange-dark: #C9550A;
	--lp-hellblau: #6291CC;
	--lp-grey: #DBE2E9;
	--lp-soft: #F5F7FA;
	--lp-blue-soft: #EEF3FB;
	--lp-text: #3C3C3C;
	--lp-line: #CBD5E1;
	--lp-white: #FFFFFF;

	/* Rollen */
	--lp-heading: var(--lp-blue);
	--lp-heading-strong: var(--lp-navy);
	--lp-link: var(--lp-blue);

	/* Schrift */
	--lp-font: 'Lato', system-ui, -apple-system, 'Segoe UI', sans-serif;
	--lp-font-heading: 'Montserrat', 'Lato', system-ui, sans-serif;
	--lp-h1-size: clamp(30px, 4.2vw, 42px);
	--lp-h1-transform: uppercase;
	--lp-h2-size: clamp(24px, 3vw, 30px);
	--lp-h2-transform: none;
	--lp-h3-size: 18px;

	/* Layout */
	--lp-maxw: 1120px;
	--lp-section-y: 76px;
	--lp-radius: 10px;
	--lp-radius-sm: 6px;
	--lp-gap: 22px;
	--lp-shadow: 0 6px 18px rgba(10, 45, 85, .08);
}

@media (max-width: 900px) {
	:root { --lp-section-y: 52px; }
}

/* ---------- Grundlagen ---------- */

body.lvg-lp {
	margin: 0;
	background: var(--lp-white);
	color: var(--lp-text);
	font-family: var(--lp-font);
	font-size: 16px;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
}
body.lvg-lp *, body.lvg-lp *::before, body.lvg-lp *::after { box-sizing: border-box; }
html:has(body.lvg-lp) { scroll-behavior: smooth; scroll-padding-top: 84px; }

.lvg-lp img { max-width: 100%; height: auto; }
.lvg-lp a { color: var(--lp-link); }
.lvg-lp p { margin: 0 0 1em; }

.lvg-lp h1, .lvg-lp h2, .lvg-lp h3, .lvg-lp h4 {
	font-family: var(--lp-font-heading);
	font-weight: 700;
	color: var(--lp-heading);
	margin: 0 0 .5em;
}
.lvg-lp h1 { font-size: var(--lp-h1-size); line-height: 1.18; text-transform: var(--lp-h1-transform); }
.lvg-lp h2 { font-size: var(--lp-h2-size); line-height: 1.25; text-transform: var(--lp-h2-transform); }
.lvg-lp h3 { font-size: var(--lp-h3-size); line-height: 1.35; color: var(--lp-heading-strong); }

/* ---------- WPBakery-Raster an LP-Breite anpassen ---------- */

/* Oberste Zeilen: Hintergrund volle Breite, Inhalt auf --lp-maxw begrenzt */
.lvg-lp-main > .vc_row,
.lvg-lp-main > .lvg-lp-block > .vc_row,
.lvg-lp-block > .vc_row {
	margin-left: 0;
	margin-right: 0;
	padding-left: max(9px, calc((100% - var(--lp-maxw)) / 2 + 9px));
	padding-right: max(9px, calc((100% - var(--lp-maxw)) / 2 + 9px));
}
.lvg-lp-main > p:empty { display: none; }

.lvg-lp-main .wpb_content_element,
.lvg-lp-main .vc_tta-container { margin-bottom: var(--lp-gap); }
.lvg-lp-main .wpb_wrapper > :last-child,
.lvg-lp-main .wpb_text_column .wpb_wrapper > :last-child { margin-bottom: 0; }

/* Karten in gleich hohen Zeilen: Karte füllt die Höhe */
.lvg-lp .vc_row-flex > .lp-card > .vc_column-inner > .wpb_wrapper { flex: 1 1 auto; }

/* ---------- Sektionen (Zeilen) ---------- */

.lp-section { padding-top: var(--lp-section-y); padding-bottom: var(--lp-section-y); }
.lp-section--tight { padding-top: calc(var(--lp-section-y) * .6); padding-bottom: calc(var(--lp-section-y) * .6); }
.lp-section--flush { padding-top: 0; padding-bottom: 0; }

.lp-bg-white { background: var(--lp-white); }
.lp-bg-grey { background: var(--lp-grey); }
.lp-bg-soft { background: var(--lp-soft); }
.lp-bg-hero { background: linear-gradient(180deg, #E8EFF9 0%, #FFFFFF 62%); }

.lp-bg-navy { background: var(--lp-navy); color: #D9E4F2; }
.lp-bg-hellblau { background: var(--lp-hellblau); color: #EEF4FB; }
.lp-bg-navy h1, .lp-bg-navy h2, .lp-bg-navy h3,
.lp-bg-hellblau h1, .lp-bg-hellblau h2, .lp-bg-hellblau h3 { color: #fff; }
.lp-bg-navy .lp-eyebrow, .lp-bg-hellblau .lp-eyebrow { color: #fff; }
.lp-bg-navy a:not(.lp-btn), .lp-bg-hellblau a:not(.lp-btn) { color: #fff; }

.lp-center { text-align: center; }
.lp-center .lp-actions, .lp-center .lp-badges { justify-content: center; }
.lp-narrow .wpb_text_column { max-width: 780px; margin-left: auto; margin-right: auto; }
.lp-center p, .lp-center h2 { margin-left: auto; margin-right: auto; }
.lp-center h2 { max-width: 26ch; }
.lp-center p { max-width: 64ch; }

/* ---------- Karten (Spalten) ---------- */

.lp-card > .vc_column-inner > .wpb_wrapper {
	background: var(--lp-grey);
	border-radius: var(--lp-radius);
	padding: 26px 26px;
	height: 100%;
}
.lp-bg-grey .lp-card > .vc_column-inner > .wpb_wrapper,
.lp-bg-soft .lp-card > .vc_column-inner > .wpb_wrapper,
.lp-card--white > .vc_column-inner > .wpb_wrapper {
	background: var(--lp-white);
	border: 1px solid var(--lp-line);
	box-shadow: 0 4px 14px rgba(10, 45, 85, .06);
}
.lp-card--center > .vc_column-inner > .wpb_wrapper { text-align: center; }
.lp-card h3 { margin-bottom: 8px; }
.lp-card p { font-size: 15px; }
@media (max-width: 767px) {
	.lp-card { margin-bottom: 20px; }
}

/* ---------- Textbausteine ---------- */

.lp-eyebrow {
	display: block;
	font-family: var(--lp-font-heading);
	font-weight: 700;
	font-size: 13px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--lp-orange);
	margin-bottom: 12px;
}
.lp-accent { position: relative; display: inline; padding-bottom: 2px; background: linear-gradient(transparent 78%, rgba(236, 102, 8, .85) 78%); }
.lp-lead { font-size: 18px; }
.lp-bg-navy .lp-lead { color: #D9E4F2; }
.lp-hint { font-size: 14px; font-style: italic; opacity: .85; }
.lp-muted { color: #6B6B6B; }
.lp-small { font-size: 13px; }
.lp-strong { font-weight: 700; color: var(--lp-heading-strong); }

/* Buttons */
.lp-actions { display: flex; flex-wrap: wrap; gap: 14px; margin: 0 0 14px; }
.lvg-lp a.lp-btn, .lvg-lp .lp-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	font-family: var(--lp-font-heading);
	font-weight: 700;
	font-size: 15px;
	line-height: 1.3;
	padding: 15px 28px;
	border-radius: var(--lp-radius-sm);
	text-decoration: none;
	border: 2px solid transparent;
	cursor: pointer;
	transition: background .18s, color .18s, border-color .18s;
}
.lvg-lp .lp-btn--primary, .lvg-lp a.lp-btn--primary { background: var(--lp-orange); color: #fff; }
.lvg-lp .lp-btn--primary:hover { background: var(--lp-orange-dark); color: #fff; }
.lvg-lp .lp-btn--outline, .lvg-lp a.lp-btn--outline { background: transparent; color: var(--lp-blue); border-color: var(--lp-line); }
.lvg-lp .lp-btn--outline:hover { border-color: var(--lp-blue); }
.lvg-lp .lp-btn--outline-light, .lvg-lp a.lp-btn--outline-light { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .55); }
.lvg-lp .lp-btn--outline-light:hover { border-color: #fff; background: rgba(255, 255, 255, .08); }

/* Badges (Punkt-getrennte Zeile im Hero) */
.lp-badges { display: flex; flex-wrap: wrap; gap: 6px 0; padding: 0; margin: 0 0 22px; list-style: none; font-family: var(--lp-font-heading); font-weight: 600; font-size: 13.5px; letter-spacing: .03em; color: #DCE7F5; }
.lp-badges li { white-space: nowrap; }
.lp-badges li + li::before { content: "·"; color: var(--lp-orange); margin: 0 12px; }

/* ---------- Icons (per CSS, im Text: <li class="lp-ico lp-ico-clock">) ---------- */

.lp-ico::before {
	content: "";
	display: inline-block;
	flex-shrink: 0;
	width: 22px;
	height: 22px;
	background: var(--lp-ico-color, var(--lp-orange));
	-webkit-mask: var(--lp-ico) center / contain no-repeat;
	mask: var(--lp-ico) center / contain no-repeat;
}
.lp-ico-clock { --lp-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 3'/%3E%3C/svg%3E"); }
.lp-ico-shield { --lp-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linejoin='round'%3E%3Cpath d='M12 3l7 3v6c0 4.5-3 7.5-7 9-4-1.5-7-4.5-7-9V6l7-3z'/%3E%3C/svg%3E"); }
.lp-ico-shield-check { --lp-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l7 3v6c0 4-3 7-7 8-4-1-7-4-7-8V6z'/%3E%3Cpath d='M9 12l2 2 4-4'/%3E%3C/svg%3E"); }
.lp-ico-user { --lp-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M4 20c0-3.5 3.5-6 8-6s8 2.5 8 6'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/svg%3E"); }
.lp-ico-users { --lp-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='8' r='3.2'/%3E%3Cpath d='M2.5 20c0-3.3 2.9-5 6.5-5s6.5 1.7 6.5 5'/%3E%3Cpath d='M16.5 6.6a3 3 0 0 1 0 5.6M21.5 20c0-2.6-1.7-4.2-4.2-4.8'/%3E%3C/svg%3E"); }
.lp-ico-award { --lp-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='5'/%3E%3Cpath d='M8.5 12.5L7 21l5-3 5 3-1.5-8.5'/%3E%3C/svg%3E"); }
.lp-ico-check { --lp-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E"); }

/* Große Icons über Überschriften (z. B. „Warum levigo“) */
.lp-ico-lg::before { display: block; width: 34px; height: 34px; margin-bottom: 12px; }

/* Vertrauensleiste */
.lp-trust {
	list-style: none;
	margin: 0;
	padding: 24px 20px;
	background: var(--lp-grey);
	border-radius: var(--lp-radius);
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 16px;
}
.lp-trust li {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	font-family: var(--lp-font-heading);
	font-weight: 700;
	font-size: 14.5px;
	color: var(--lp-blue);
	text-align: center;
}
.lp-trust li::before { width: 20px; height: 20px; }

/* Variante ohne Kasten, mit runden Icon-Flächen */
.lp-trust--plain { background: none; border-top: 1px solid var(--lp-line); border-radius: 0; padding: 30px 0 0; }
.lp-trust--plain li { justify-content: flex-start; text-align: left; font-family: var(--lp-font); font-size: 14px; color: var(--lp-heading-strong); gap: 13px; }
.lp-trust--plain li::before { width: 44px; height: 44px; --lp-ico-color: var(--lp-hellblau); -webkit-mask-size: 22px; mask-size: 22px; box-shadow: none; }
.lp-trust--plain li { position: relative; isolation: isolate; }
.lp-trust--plain li::after { content: ""; position: absolute; left: 0; top: 50%; width: 44px; height: 44px; margin-top: -22px; border-radius: 50%; background: var(--lp-blue-soft); z-index: -1; }

/* ---------- Listen ---------- */

.lp-checklist { list-style: none; margin: 0; padding: 0; max-width: 680px; }
.lp-checklist li { display: flex; gap: 12px; padding: 13px 0; border-bottom: 1px solid var(--lp-line); font-size: 15.5px; }
.lp-checklist li:first-child { border-top: 1px solid var(--lp-line); }
.lp-checklist li::before { content: "✓"; color: var(--lp-orange); font-weight: 700; flex-shrink: 0; }
.lp-center .lp-checklist { margin-left: auto; margin-right: auto; text-align: left; }

/* Ablauf / Timeline */
.lp-steps { list-style: none; margin: 0; padding: 0; counter-reset: lp-step; max-width: 780px; }
.lp-center .lp-steps { margin-left: auto; margin-right: auto; text-align: left; }
.lp-steps > li { position: relative; counter-increment: lp-step; padding: 10px 0 34px 80px; min-height: 56px; }
.lp-steps > li:last-child { padding-bottom: 0; }
.lp-steps > li::before {
	content: counter(lp-step, decimal-leading-zero);
	position: absolute;
	left: 0;
	top: 0;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	border: 2px solid var(--lp-orange);
	background: #fff;
	color: var(--lp-orange);
	font-family: var(--lp-font-heading);
	font-weight: 700;
	font-size: 20px;
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 1;
}
.lp-steps > li:not(:last-child)::after { content: ""; position: absolute; left: 27px; top: 56px; bottom: 0; width: 2px; background: var(--lp-orange); opacity: .4; }
.lp-steps h3 { margin-bottom: 6px; }
.lp-steps p { font-size: 15px; margin: 0; }

/* Selbstcheck – ohne JS als zweispaltige Checkliste, mit JS als Klick-Karte */
.lp-selfcheck { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 0 52px; }
.lp-selfcheck > li { display: flex; flex-direction: column; padding: 18px 0 18px 30px; border-bottom: 1px solid var(--lp-line); position: relative; }
.lp-selfcheck > li::before { content: ""; position: absolute; left: 0; top: 22px; width: 16px; height: 16px; border: 1.6px solid var(--lp-orange); border-radius: 3px; }
.lp-selfcheck h3 { margin: 0 0 4px; font-family: var(--lp-font); font-size: 16px; }
.lp-selfcheck p { margin: 0; font-size: 14.5px; line-height: 1.45; }
@media (max-width: 767px) { .lp-selfcheck { grid-template-columns: 1fr; } }
.lp-selfcheck[hidden] { display: none; }

.lp-sc-card { display: flex; flex-direction: column; min-height: 170px; background: #fff; border: 1px solid var(--lp-line); border-radius: 14px; padding: 30px 32px; box-shadow: 0 10px 30px rgba(10, 28, 58, .05); }
.lp-sc-count { font-weight: 700; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--lp-orange); margin-bottom: 14px; }
.lvg-lp .lp-sc-q { font-family: var(--lp-font); font-size: 18px; line-height: 1.35; margin-bottom: 8px; }
.lp-sc-sub { font-size: 15px; line-height: 1.55; margin: 0 0 22px; }
.lp-sc-nav { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: auto; padding-top: 24px; }
.lp-sc-arrow { width: 46px; height: 46px; border-radius: 50%; border: 1.5px solid var(--lp-line); background: #fff; color: var(--lp-heading-strong); cursor: pointer; display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: 20px; line-height: 1; padding: 0; transition: background .15s, color .15s, border-color .15s; }
.lp-sc-arrow:hover:not(:disabled) { border-color: var(--lp-blue); background: var(--lp-blue); color: #fff; }
.lp-sc-arrow:disabled { opacity: .3; cursor: default; }
.lp-sc-dots { display: flex; gap: 8px; flex-wrap: wrap; justify-content: center; }
.lp-sc-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--lp-line); border: 0; padding: 0; cursor: pointer; transition: width .25s, background .2s, border-radius .25s; }
.lp-sc-dot.is-active { background: var(--lp-orange); width: 26px; border-radius: 5px; }

/* Zitat / Testimonial */
.lp-quote { background: #fff; border-radius: var(--lp-radius); padding: 30px 32px; max-width: 640px; box-shadow: var(--lp-shadow); border-left: 4px solid var(--lp-hellblau); margin: 0; color: var(--lp-text); }
.lp-quote p { font-style: italic; font-size: 16.5px; }
.lp-quote cite, .lp-quote footer { display: block; font-style: normal; font-family: var(--lp-font-heading); font-weight: 700; font-size: 14px; color: var(--lp-blue); }

/* ---------- Bilder ---------- */

.lp-img-rounded img { border-radius: var(--lp-radius); }
.lp-img-icon img { width: 96px; height: 96px; object-fit: contain; }
.lp-img-icon { margin-bottom: 14px !important; }
.lp-avatar img { width: 190px; height: 190px; object-fit: cover; border-radius: 50%; border: 5px solid #fff; box-shadow: 0 10px 26px rgba(10, 28, 58, .15); }
.lp-avatar { margin-bottom: 16px !important; }

/* ---------- FAQ (WPBakery Akkordeon mit Klasse lp-faq) ---------- */

.lvg-lp .lp-faq { max-width: 820px; }
.lvg-lp .lp-faq .vc_tta-panel { border: 0 !important; }
.lvg-lp .lp-faq .vc_tta-panel-heading { background: transparent !important; border: 0 !important; border-bottom: 1px solid var(--lp-line) !important; border-radius: 0 !important; margin: 0 !important; }
.lvg-lp .lp-faq .vc_tta-panel-title { font-family: var(--lp-font-heading) !important; font-size: 16px !important; font-weight: 700; margin: 0 !important; }
.lvg-lp .lp-faq .vc_tta-panel-title > a { color: var(--lp-heading-strong) !important; padding: 18px 40px 18px 0 !important; display: block; text-decoration: none; position: relative; }
.lvg-lp .lp-faq .vc_tta-controls-icon { display: none !important; }
.lvg-lp .lp-faq .vc_tta-panel-title > a::after { content: ""; position: absolute; right: 6px; top: 50%; margin-top: -7px; border-top: 7px solid transparent; border-bottom: 7px solid transparent; border-left: 9px solid var(--lp-orange); transition: transform .18s ease; }
.lvg-lp .lp-faq .vc_tta-panel.vc_active .vc_tta-panel-title > a::after { transform: rotate(90deg); }
.lvg-lp .lp-faq .vc_tta-panel-body { background: transparent !important; border: 0 !important; border-bottom: 1px solid var(--lp-line) !important; padding: 0 0 18px !important; font-size: 15px; max-width: 70ch; }
.lvg-lp .lp-faq .vc_tta-panel.vc_active .vc_tta-panel-heading { border-bottom-color: transparent !important; }

/* ---------- Formulare (Contact Form 7 / WPForms im LP-Design) ---------- */

.lvg-lp .wpcf7 label, .lvg-lp .wpforms-field-label { display: block; font-family: var(--lp-font-heading); font-size: 13.5px; font-weight: 700; color: var(--lp-heading-strong); margin-bottom: 6px; }
.lvg-lp .wpcf7 input[type="text"], .lvg-lp .wpcf7 input[type="email"], .lvg-lp .wpcf7 input[type="tel"], .lvg-lp .wpcf7 select, .lvg-lp .wpcf7 textarea,
.lvg-lp .wpforms-form input[type="text"], .lvg-lp .wpforms-form input[type="email"], .lvg-lp .wpforms-form input[type="tel"], .lvg-lp .wpforms-form select, .lvg-lp .wpforms-form textarea {
	width: 100%;
	max-width: 100%;
	font-family: var(--lp-font);
	font-size: 15px;
	color: var(--lp-text);
	padding: 11px 13px;
	border: 1.5px solid var(--lp-line);
	border-radius: var(--lp-radius-sm);
	background: #fff;
	margin-top: 6px;
}
.lvg-lp .wpcf7 textarea { min-height: 110px; resize: vertical; }
.lvg-lp .wpcf7 input:focus, .lvg-lp .wpcf7 textarea:focus, .lvg-lp .wpcf7 select:focus { outline: none; border-color: var(--lp-orange); }
.lvg-lp .wpcf7 p { margin-bottom: 15px; }
.lvg-lp .lp-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
@media (max-width: 600px) { .lvg-lp .lp-field-row { grid-template-columns: 1fr; } }
.lvg-lp .wpcf7-acceptance label, .lvg-lp .lp-consent { font-family: var(--lp-font); font-weight: 400; font-size: 13px; color: var(--lp-text); line-height: 1.5; display: flex; gap: 10px; align-items: flex-start; }
.lvg-lp .wpcf7-acceptance .wpcf7-list-item { margin: 0; }
.lvg-lp .wpcf7 .req { color: var(--lp-orange); }
.lvg-lp .wpcf7 input[type="submit"], .lvg-lp .wpforms-submit {
	width: 100%;
	font-family: var(--lp-font-heading);
	font-weight: 700;
	font-size: 15px;
	padding: 15px 28px;
	border-radius: var(--lp-radius-sm);
	border: 0;
	background: var(--lp-orange);
	color: #fff;
	cursor: pointer;
}
.lvg-lp .wpcf7 input[type="submit"]:hover { background: var(--lp-orange-dark); }
.lvg-lp .wpcf7-spinner { display: block; margin: 8px auto 0; }

/* Platzhalter-Hinweis in Vorlagen */
.lp-placeholder { border: 2px dashed var(--lp-orange); border-radius: var(--lp-radius); padding: 18px; font-size: 14px; color: var(--lp-orange-dark); background: #FFF7F0; }

/* ---------- Header / Footer (Bausteine) ---------- */

.lvg-lp .lp-header { position: sticky; top: 0; z-index: 30; background: #fff; border-bottom: 1px solid var(--lp-line); padding-top: 14px; padding-bottom: 14px; }
.lvg-lp .lp-header .wpb_content_element { margin-bottom: 0; }
.lvg-lp .lp-header .lp-logo img { height: 34px; width: auto; display: block; }
.lvg-lp .lp-header-cta { text-align: right; margin: 0; }
.lvg-lp .lp-header-cta a { font-family: var(--lp-font-heading); font-weight: 700; color: var(--lp-orange); text-decoration: none; white-space: nowrap; }
.admin-bar .lp-header { top: 32px; }

.lvg-lp .lp-footer { background: var(--lp-navy); color: #C9D6E8; font-size: 13.5px; padding-top: 32px; padding-bottom: 32px; }
.lvg-lp .lp-footer .wpb_content_element { margin-bottom: 0; }
.lvg-lp .lp-footer a { color: #fff; text-decoration: none; font-weight: 600; }
.lvg-lp .lp-footer a:hover { color: var(--lp-orange); }
.lvg-lp .lp-footer-links { text-align: right; }
.lvg-lp .lp-footer-links a + a { margin-left: 18px; }
@media (max-width: 767px) {
	.lvg-lp .lp-footer-links { text-align: left; margin-top: 8px; }
	.lvg-lp .lp-header > .vc_column_container { width: 50%; float: left; }
	.lvg-lp .lp-header .lp-logo img { height: 28px; }
	.lvg-lp .lp-header-cta a { font-size: 14px; }
}

/* Pflicht-Footer aus den Plugin-Einstellungen */
.lvg-lp-legal { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; justify-content: center; padding: 1.5rem 24px; font-size: .875rem; color: #6B6B6B; }
.lvg-lp-legal a { color: inherit; }

/* Spalten mit vertikal zentriertem Inhalt in schmalen Viewports */
@media (max-width: 767px) {
	.lvg-lp .lp-mobile-first { order: -1; }
}

/* ---------- Zeilen, die einen Baustein enthalten ----------
   Klasse lp-block-row an die äußere Zeile: kein doppelter Innenabstand.
   Zusätzlich lp-sticky (z. B. für den Header-Baustein). */
.lvg-lp-main > .vc_row.lp-block-row { padding-left: 0; padding-right: 0; padding-top: 0; padding-bottom: 0; }
.lvg-lp .lp-block-row > .vc_column_container > .vc_column-inner { padding-left: 0; padding-right: 0; padding-top: 0; }
.lvg-lp .lp-block-row .wpb_content_element,
.lvg-lp .lp-block-row .lvg-lp-block { margin-bottom: 0; }
.lvg-lp .lp-block-row > .vc_column_container > .vc_column-inner > .wpb_wrapper > p:empty { display: none; }
.lvg-lp .lp-sticky { position: sticky; top: 0; z-index: 30; }
.admin-bar .lp-sticky { top: 32px; }
.lvg-lp .lp-sticky .lp-header { position: static; }

/* Abstands-Helfer für Zeilen */
.lp-section--no-top { padding-top: 0; }
.lp-section--no-bottom { padding-bottom: calc(var(--lp-section-y) * .5); }
.lp-actions--end { justify-content: flex-end; margin: 0; }
@media (max-width: 767px) { .lp-actions--end { justify-content: flex-start; } }
