/* Lynxmann – ergänzende Styles zu theme.json. Bewusst kompakt halten. */

:root {
	--lx-radius: 14px;
	--lx-radius-lg: 22px;
	--lx-ease: cubic-bezier(.2, .7, .2, 1);
	--lx-header-h: 76px;
}

html { scroll-behavior: smooth; scroll-padding-top: calc(var(--lx-header-h) + 12px); }
body { overflow-x: clip; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
img { max-width: 100%; height: auto; }
:where(h1, h2, h3) { text-wrap: balance; }
:where(p, li) { text-wrap: pretty; }
.lx-main > .wp-block-post-content > :first-child { margin-block-start: 0; }
.lx-main { margin-block-start: 0; }

/* Fokus immer sichtbar */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 3px solid var(--wp--preset--color--primary);
	outline-offset: 3px;
	border-radius: 4px;
}

.lx-skip {
	position: absolute; left: 1rem; top: -100px; z-index: 1000;
	background: var(--wp--preset--color--ink); color: #fff; padding: .75rem 1rem; border-radius: 8px;
}
.lx-skip:focus { top: 1rem; color: #fff; }

/* ---------- Kopfbereich ---------- */
.lx-header-wrap { position: sticky; top: 0; z-index: 50; }
.admin-bar .lx-header-wrap { top: var(--wp-admin--admin-bar--height, 32px); }
@media (max-width: 600px) { .admin-bar .lx-header-wrap { top: 0; } }
.lx-header { border-bottom: 1px solid transparent; transition: box-shadow .25s var(--lx-ease), border-color .25s; }
.lx-header.is-scrolled { border-bottom-color: var(--wp--preset--color--line); box-shadow: 0 6px 24px rgba(45, 40, 51, .07); }
.lx-header .wp-block-site-logo img { width: clamp(132px, 16vw, 168px); height: auto; }
.lx-header__nav { gap: 1.5rem; }
.lx-header .wp-block-navigation-item__content { padding-block: .4rem; position: relative; color: var(--wp--preset--color--ink); }
.lx-header .wp-block-navigation-item__content::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px;
	background: var(--wp--preset--color--primary); transform: scaleX(0); transform-origin: left;
	transition: transform .25s var(--lx-ease);
}
.lx-header .wp-block-navigation-item__content:hover::after,
.lx-header .current-menu-item > .wp-block-navigation-item__content::after,
.lx-header [aria-current="page"]::after { transform: scaleX(1); }
.wp-block-navigation__responsive-container-open,
.wp-block-navigation__responsive-container-close { width: 48px; height: 48px; display: inline-flex; align-items: center; justify-content: center; }
.wp-block-navigation__responsive-container-open svg,
.wp-block-navigation__responsive-container-close svg { width: 28px; height: 28px; }
.lx-header .wp-block-navigation__responsive-container.is-menu-open { padding: 1rem clamp(1rem, 5vw, 2rem) 2rem; }
.lx-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
.lx-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	align-items: stretch !important; justify-content: flex-start !important; padding-top: 3.5rem; gap: 0 !important; width: 100%;
}
.lx-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { padding-top: 0; }
.lx-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { width: 100%; border-bottom: 1px solid var(--wp--preset--color--line); }
.lx-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	font-size: 1.3rem; font-weight: 650; padding-block: .9rem; display: block; width: 100%; white-space: normal;
}
.lx-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content::after { display: none; }
.lx-header .wp-block-navigation__container { flex-wrap: nowrap; }
.lx-header .wp-block-navigation-item__content { white-space: nowrap; }
@media (max-width: 1280px) and (min-width: 1181px) {
	.lx-header .wp-block-navigation, .lx-header .wp-block-navigation__container { gap: 1.1rem !important; }
}
/* Overlay-Menü schon unter 1180px nutzen (Standard von WP: 600px), damit nichts umbricht */
@media (max-width: 1180px) {
	.lx-header .wp-block-navigation .wp-block-navigation__responsive-container:not(.is-menu-open):not(.hidden-by-default) { display: none; }
	.lx-header .wp-block-navigation .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.lx-header__cta .wp-block-button__link { padding: .6rem .9rem !important; font-size: .95rem; }
}
@media (max-width: 1180px) {
	.lx-header__nav { gap: .5rem; }
	.lx-header .wp-block-navigation { order: 2; }
	.lx-header__cta .wp-block-button__link { white-space: nowrap; }
}
@media (max-width: 480px) {
	.lx-header .wp-block-site-logo img { width: 118px; }
	.lx-header__cta .wp-block-button__link { padding: .5rem .7rem !important; font-size: .85rem; min-height: 44px; }
}
@media (max-width: 340px) {
	.lx-header__cta { display: none; }
}

/* ---------- Bausteine ---------- */
.is-style-lx-eyebrow {
	font-size: .8125rem !important; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
	color: var(--wp--preset--color--primary-dark);
}
.has-ink-background-color .is-style-lx-eyebrow,
.is-style-lx-dark .is-style-lx-eyebrow { color: #D9CEDB; }

.is-style-lx-card {
	background: #fff; border: 1px solid var(--wp--preset--color--line); border-radius: var(--lx-radius-lg);
	box-shadow: var(--wp--preset--shadow--soft); padding: clamp(1.25rem, 3vw, 2rem);
	transition: transform .3s var(--lx-ease), box-shadow .3s var(--lx-ease);
}
.is-style-lx-dark { background: var(--wp--preset--color--ink); color: #fff; border-radius: var(--lx-radius-lg); }
.is-style-lx-dark :where(h1, h2, h3, h4) { color: #fff; }
.is-style-lx-dark a:not(.wp-element-button) { color: #fff; }

.is-style-lx-check { list-style: none; padding-left: 0; }
.is-style-lx-check li { position: relative; padding-left: 2rem; margin-block: .55rem; }
.is-style-lx-check li::before {
	content: ""; position: absolute; left: 0; top: .2em; width: 1.25rem; height: 1.25rem; border-radius: 50%;
	background: var(--wp--preset--color--tint) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10.5l3 3 7-7' fill='none' stroke='%235E4F61' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/70% no-repeat;
}
.has-ink-background-color .is-style-lx-check li::before { background-color: rgba(255,255,255,.12); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10.5l3 3 7-7' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }

.wp-element-button, .wp-block-button__link {
	min-height: 48px; display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
	transition: background-color .2s, color .2s, transform .2s var(--lx-ease), box-shadow .2s;
}
.wp-block-button__link:hover { transform: translateY(-1px); box-shadow: 0 8px 20px rgba(94, 79, 97, .25); }
.is-style-lx-ghost .wp-block-button__link {
	background: transparent !important; color: var(--wp--preset--color--ink) !important;
	box-shadow: inset 0 0 0 2px var(--wp--preset--color--ink);
}
.is-style-lx-ghost .wp-block-button__link:hover { background: var(--wp--preset--color--ink) !important; color: #fff !important; }
.has-ink-background-color .is-style-lx-ghost .wp-block-button__link,
.has-primary-dark-background-color .is-style-lx-ghost .wp-block-button__link,
.wp-block-cover .is-style-lx-ghost .wp-block-button__link { color: #fff !important; box-shadow: inset 0 0 0 2px rgba(255,255,255,.85); }
.has-ink-background-color .is-style-lx-ghost .wp-block-button__link:hover,
.has-primary-dark-background-color .is-style-lx-ghost .wp-block-button__link:hover,
.wp-block-cover .is-style-lx-ghost .wp-block-button__link:hover { background: #fff !important; color: var(--wp--preset--color--ink) !important; }

/* ---------- Hero ---------- */
.lx-hero.wp-block-cover { min-height: min(86vh, 760px); align-items: flex-end; }
.lx-hero .wp-block-cover__inner-container { padding-block: clamp(3rem, 9vw, 6.5rem) clamp(2.5rem, 6vw, 4.5rem); }
.lx-hero .wp-block-cover__background {
	background: linear-gradient(100deg, rgba(45,40,51,.94) 0%, rgba(45,40,51,.82) 45%, rgba(45,40,51,.35) 100%) !important; opacity: 1 !important;
}
/* Zeilenlänge begrenzen, ohne die linke Ausrichtung im Layout-Container zu verlieren */
.lx-hero h1 { color: #fff; padding-right: max(0px, calc(100% - 11.5em)); }
.lx-hero .wp-block-cover__inner-container > p:not(.is-style-lx-eyebrow) { padding-right: max(0px, calc(100% - 38em)); }
.lx-subhero h1 { padding-right: max(0px, calc(100% - 14em)); }
.lx-subhero .wp-block-cover__inner-container > p:not(.is-style-lx-eyebrow) { padding-right: max(0px, calc(100% - 40em)); }
.wp-block-cover .is-style-lx-eyebrow { color: #E2D7E4; }
.lx-hero__chips { gap: .5rem !important; }
.lx-hero__chips p {
	margin: 0; font-size: .9rem; padding: .35rem .8rem; border-radius: 99px;
	background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.25); color: #fff;
}
.lx-subhero.wp-block-cover { min-height: 460px; align-items: flex-end; }
.lx-subhero .wp-block-cover__background { background: linear-gradient(100deg, rgba(45,40,51,.93) 0%, rgba(45,40,51,.78) 55%, rgba(45,40,51,.4) 100%) !important; opacity: 1 !important; }
.lx-subhero h1 { color: #fff; }

/* ---------- Leistungskacheln ---------- */
.lx-services { gap: clamp(1rem, 2.5vw, 1.75rem) !important; }
.lx-service {
	position: relative; display: flex; flex-direction: column; overflow: hidden;
	background: #fff; border: 1px solid var(--wp--preset--color--line); border-radius: var(--lx-radius-lg);
	box-shadow: var(--wp--preset--shadow--soft); transition: transform .35s var(--lx-ease), box-shadow .35s var(--lx-ease);
}
.lx-service:hover, .lx-service:focus-within { transform: translateY(-4px); box-shadow: var(--wp--preset--shadow--lift); }
.lx-service .wp-block-image { margin: 0; overflow: hidden; }
.lx-service .wp-block-image img { aspect-ratio: 16/10; object-fit: cover; width: 100%; border-radius: 0; transition: transform .6s var(--lx-ease); }
.lx-service:hover .wp-block-image img { transform: scale(1.04); }
.lx-service__body { padding: 1.4rem 1.5rem 1.6rem; display: flex; flex-direction: column; gap: .75rem; flex: 1; }
.lx-service__body > * { margin: 0 !important; }
.lx-service__body h3 { font-size: clamp(1.3rem, 1.1rem + .6vw, 1.6rem) !important; hyphens: auto; overflow-wrap: break-word; }
:where(h1, h2, h3) { hyphens: auto; -webkit-hyphens: auto; hyphenate-limit-chars: 10 4 4; }
.lx-service__body .is-style-lx-check { margin-top: .25rem !important; }
.lx-service__body .is-style-lx-check li { margin-block: .3rem; font-size: .975rem; }
.lx-service__link { margin-top: auto !important; padding-top: .5rem; font-weight: 650; }
.lx-service__link a { text-decoration: none; color: var(--wp--preset--color--primary-dark); }
.lx-service__link a::after { content: " →"; transition: margin .2s; }
.lx-service__link a:hover::after { margin-left: .25rem; }
/* ganze Karte klickbar, ohne verschachtelte Links */
.lx-service__link a::before { content: ""; position: absolute; inset: 0; z-index: 1; }
.lx-service__num { font-size: .8rem !important; font-weight: 700; letter-spacing: .12em; color: var(--wp--preset--color--primary-dark); }

/* ---------- Vorteile / Ablauf ---------- */
.lx-features { gap: clamp(1rem, 2.5vw, 1.5rem) !important; }
.lx-feature { border-top: 3px solid var(--wp--preset--color--primary); padding-top: 1.1rem; }
.lx-feature h3 { margin-bottom: .4rem; }
.lx-feature p { margin-top: 0; color: var(--wp--preset--color--muted); }
.has-ink-background-color .lx-feature p { color: #D7D2DA; }
.has-ink-background-color .lx-feature { border-top-color: #A794A9; }

.lx-steps { counter-reset: lxstep; gap: clamp(1rem, 2.5vw, 1.5rem) !important; }
.lx-step { counter-increment: lxstep; position: relative; padding-top: 3.6rem !important; }
.lx-step::before {
	content: counter(lxstep, decimal-leading-zero); position: absolute; top: 1.4rem; left: clamp(1.25rem, 3vw, 2rem);
	font-weight: 800; font-size: 1.05rem; color: #fff; background: var(--wp--preset--color--primary);
	width: 2.4rem; height: 2.4rem; border-radius: 50%; display: grid; place-items: center;
}
.lx-step h3 { margin-top: .6rem; }
.lx-step p { color: var(--wp--preset--color--muted); }

/* Nachweis-Hinweis (z. B. Erlaubnis nach AÜG) */
.lx-badge {
	display: flex; gap: .65rem; align-items: flex-start; margin-top: 1.5rem !important;
	background: #fff; border: 1px solid var(--wp--preset--color--line); border-radius: 12px;
	padding: .85rem 1rem; font-weight: 600; color: var(--wp--preset--color--ink); font-size: .975rem;
}
.lx-badge::before {
	content: ""; flex: none; width: 1.4rem; height: 1.4rem; margin-top: .05rem; border-radius: 50%;
	background: var(--wp--preset--color--primary) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10.5l3 3 7-7' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/70% no-repeat;
}
.lx-badge:empty, .lx-hero__chips p:empty { display: none; }

/* Fakten / Daten */
.lx-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1rem; margin: 0; padding: 0; list-style: none; }
.lx-facts li { background: var(--wp--preset--color--tint); border-radius: var(--lx-radius); padding: 1rem 1.2rem; margin: 0; }
.lx-facts strong { display: block; color: var(--wp--preset--color--ink); }

/* Einsatzgebiet */
.lx-region { position: relative; }
.lx-region__map { width: 100%; height: auto; display: block; }

/* FAQ */
.lx-faq .wp-block-details { border-bottom: 1px solid var(--wp--preset--color--line); padding-block: 1.05rem; }
.lx-faq .wp-block-details summary {
	cursor: pointer; font-weight: 650; color: var(--wp--preset--color--ink); font-size: 1.075rem;
	list-style: none; position: relative; padding-right: 2.5rem; min-height: 44px; display: flex; align-items: center;
}
.lx-faq .wp-block-details summary::-webkit-details-marker { display: none; }
.lx-faq .wp-block-details summary::after {
	content: ""; position: absolute; right: .25rem; top: 50%; width: 1.6rem; height: 1.6rem; margin-top: -.8rem; border-radius: 50%;
	background: var(--wp--preset--color--tint) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M10 4v12M4 10h12' stroke='%235E4F61' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") center/60% no-repeat;
	transition: transform .25s var(--lx-ease);
}
.lx-faq .wp-block-details[open] summary::after { transform: rotate(45deg); }
.lx-faq .wp-block-details > :not(summary) { margin-top: .6rem; color: var(--wp--preset--color--body-text); max-width: 70ch; }

/* CTA-Band */
.lx-cta { border-radius: var(--lx-radius-lg); overflow: hidden; position: relative; }
.lx-cta::after {
	content: ""; position: absolute; right: -120px; top: -120px; width: 360px; height: 360px; border-radius: 50%;
	border: 56px solid rgba(255,255,255,.06); pointer-events: none;
}
.lx-contactline a { color: #fff; font-weight: 650; text-decoration: none; border-bottom: 1px solid rgba(255,255,255,.4); }
.lx-contactline a:hover { border-bottom-color: #fff; }

/* Bilder */
.lx-img-tall img { aspect-ratio: 4/5; object-fit: cover; width: 100%; }
.lx-img-wide img { aspect-ratio: 16/10; object-fit: cover; width: 100%; }
.lx-figure-note { font-size: .8rem; color: var(--wp--preset--color--muted); margin-top: .4rem; }

/* Seitenkopf + Brotkrumen */
.lx-breadcrumb { font-size: .9rem; margin: 0 0 .75rem; }
.lx-breadcrumb ol { list-style: none; display: flex; flex-wrap: wrap; gap: .35rem; padding: 0; margin: 0; }
.lx-breadcrumb li + li::before { content: "/"; margin-right: .35rem; color: var(--wp--preset--color--muted); }
.lx-breadcrumb a { color: var(--wp--preset--color--muted); }
.lx-subhero .lx-breadcrumb a, .lx-subhero .lx-breadcrumb li, .lx-subhero .lx-breadcrumb li::before { color: #E4DDE6; }
.lx-main > .lx-breadcrumb { max-width: var(--wp--style--global--wide-size); margin-inline: auto; padding-top: 1rem; }

/* Interne Hinweise (nur für angemeldete Redakteure sichtbar, siehe Plugin) */
.lx-unbestaetigt { outline: 2px dashed #B7791F; outline-offset: 6px; position: relative; }
.lx-unbestaetigt::before {
	content: "Nur intern sichtbar – vor Veröffentlichung bestätigen"; display: block; margin-bottom: .5rem;
	font: 700 .75rem/1.2 system-ui, sans-serif; color: #7A4E0E; background: #FDF1D6; padding: .35rem .6rem; border-radius: 6px; width: fit-content;
}
.lx-platzhalter, mark.lx-platzhalter { background: #FDF1D6; color: #5A3A0A; padding: 0 .25em; border-radius: 4px; }

/* ---------- Formulare ---------- */
.lx-form { display: grid; gap: 1.1rem; }
.lx-form__row { display: grid; gap: 1.1rem; grid-template-columns: 1fr; }
@media (min-width: 640px) { .lx-form__row--2 { grid-template-columns: 1fr 1fr; } }
.lx-field { display: grid; gap: .4rem; }
.lx-field label, .lx-form legend { font-weight: 650; color: var(--wp--preset--color--ink); font-size: .975rem; }
.lx-field .lx-opt { font-weight: 400; color: var(--wp--preset--color--muted); }
.lx-form input[type=text], .lx-form input[type=email], .lx-form input[type=tel], .lx-form input[type=number],
.lx-form input[type=date], .lx-form select, .lx-form textarea {
	width: 100%; font: inherit; font-size: 1rem; color: var(--wp--preset--color--body-text);
	background: #fff; border: 1.5px solid #C9C1CB; border-radius: 10px; padding: .8rem .9rem; min-height: 50px;
	transition: border-color .15s, box-shadow .15s;
}
.lx-form textarea { min-height: 140px; resize: vertical; }
.lx-form :is(input, select, textarea):hover { border-color: var(--wp--preset--color--primary); }
.lx-form :is(input, select, textarea):focus { outline: none; border-color: var(--wp--preset--color--primary-dark); box-shadow: 0 0 0 3px rgba(123,107,125,.3); }
.lx-form [aria-invalid=true] { border-color: #B42318 !important; }
.lx-field__error { color: #B42318; font-size: .9rem; font-weight: 600; }
.lx-field__hint { color: var(--wp--preset--color--muted); font-size: .875rem; }
.lx-form fieldset { border: 0; padding: 0; margin: 0; }
.lx-choice { display: grid; gap: .6rem; grid-template-columns: 1fr; }
@media (min-width: 640px) { .lx-choice { grid-template-columns: repeat(3, 1fr); } }
.lx-choice label {
	display: flex; align-items: center; gap: .65rem; min-height: 54px; padding: .7rem .9rem; cursor: pointer;
	border: 1.5px solid #C9C1CB; border-radius: 12px; font-weight: 600; color: var(--wp--preset--color--ink); background: #fff;
}
.lx-choice input { width: 1.2rem; height: 1.2rem; accent-color: var(--wp--preset--color--primary-dark); flex: none; }
.lx-choice label:has(input:checked) { border-color: var(--wp--preset--color--primary-dark); background: var(--wp--preset--color--tint); }
.lx-choice label:has(input:focus-visible) { outline: 3px solid var(--wp--preset--color--primary); outline-offset: 2px; }
.lx-extra { display: grid; gap: 1.1rem; padding: 1.1rem; border-radius: 12px; background: var(--wp--preset--color--tint); }
.lx-extra[hidden] { display: none; }
.lx-extra__title { margin: 0; font-weight: 700; color: var(--wp--preset--color--ink); font-size: .95rem; }
.lx-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.lx-form__submit { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; }
.lx-form button[type=submit] {
	font: inherit; font-weight: 700; font-size: 1.05rem; border: 0; cursor: pointer; color: #fff;
	background: var(--wp--preset--color--primary); border-radius: 10px; padding: .95rem 1.6rem; min-height: 52px;
	transition: background-color .2s, transform .2s var(--lx-ease);
}
.lx-form button[type=submit]:hover { background: var(--wp--preset--color--primary-dark); transform: translateY(-1px); }
.lx-form button[type=submit][disabled] { opacity: .7; cursor: progress; }
.lx-form__privacy { font-size: .875rem; color: var(--wp--preset--color--muted); margin: 0; }
.lx-notice { border-radius: 12px; padding: 1rem 1.2rem; margin-bottom: 1.2rem; font-weight: 550; }
.lx-notice--ok { background: #E7F5EC; color: #135C33; border: 1px solid #A8D9BA; }
.lx-notice--error { background: #FDECEA; color: #8A1C12; border: 1px solid #F4B7B0; }
.lx-notice ul { margin: .4rem 0 0; }
.lx-file input[type=file] { font: inherit; padding: .6rem 0; }

/* Kontaktblock (Footer + Kontaktseite) */
.lx-contact { list-style: none; padding: 0; margin: 0; display: grid; gap: .55rem; font-style: normal; }
.lx-contact li { margin: 0; display: flex; gap: .6rem; align-items: flex-start; }
.lx-contact svg { flex: none; width: 1.1rem; height: 1.1rem; margin-top: .25em; opacity: .8; }
.lx-contact a { text-decoration: none; }
.lx-contact a:hover { text-decoration: underline; }

/* ---------- Footer ---------- */
.lx-footer { font-size: .975rem; }
.lx-footer a { color: #fff; text-decoration: none; }
.lx-footer a:hover { text-decoration: underline; }
.lx-footer p { color: #D7D2DA; }
.lx-footer__title { font-size: .8125rem !important; letter-spacing: .12em; text-transform: uppercase; color: #CDBFD0 !important; margin-bottom: .9rem; }
.lx-footer__links { list-style: none; padding: 0; margin: 0; }
.lx-footer__links li { margin: 0; }
.lx-footer__links a { display: inline-block; padding-block: .4rem; hyphens: auto; }
.lx-footer__sep { border-color: rgba(255,255,255,.14) !important; opacity: 1; margin-block: 2.5rem 1.25rem !important; }
.lx-footer__bottom p { margin: 0; font-size: .875rem; }
.lx-footer__bottom a, .lx-credits a { text-decoration: underline; text-underline-offset: 2px; }
.lx-footer .lx-logo-img { width: 170px; height: auto; margin-bottom: 1rem; }
/* Platz für schwebenden WhatsApp-Button, damit nichts verdeckt wird */
.lx-footer { padding-bottom: calc(var(--wp--preset--spacing--40) + 72px) !important; }

/* ---------- WhatsApp-Button ---------- */
.lx-wa {
	position: fixed; right: max(16px, env(safe-area-inset-right)); bottom: max(16px, env(safe-area-inset-bottom)); z-index: 40;
	width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center;
	background: #1E7F4F; color: #fff; box-shadow: 0 8px 24px rgba(0,0,0,.18);
	transition: transform .25s var(--lx-ease), opacity .25s, visibility .25s;
}
.lx-wa:hover { transform: scale(1.06); background: #176B42; color: #fff; }
.lx-wa svg { width: 28px; height: 28px; }
.lx-wa.is-hidden { opacity: 0; visibility: hidden; transform: translateY(12px); }
.lx-wa__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---------- Scroll-Einblendungen (nur mit JS + ohne reduzierte Bewegung) ---------- */
.lx-anim .lx-reveal { opacity: 0; transform: translateY(18px); transition: opacity .7s var(--lx-ease), transform .7s var(--lx-ease); }
.lx-anim .lx-reveal.is-visible { opacity: 1; transform: none; }
.lx-anim .lx-reveal-group > * { opacity: 0; transform: translateY(18px); transition: opacity .6s var(--lx-ease), transform .6s var(--lx-ease); }
.lx-anim .lx-reveal-group.is-visible > * { opacity: 1; transform: none; }
.lx-anim .lx-reveal-group.is-visible > :nth-child(2) { transition-delay: .08s; }
.lx-anim .lx-reveal-group.is-visible > :nth-child(3) { transition-delay: .16s; }
.lx-anim .lx-reveal-group.is-visible > :nth-child(4) { transition-delay: .24s; }
.block-editor-page .lx-reveal, .editor-styles-wrapper .lx-reveal, .editor-styles-wrapper .lx-reveal-group > * { opacity: 1 !important; transform: none !important; }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}

/* ---------- Mobile Feinschliff ---------- */
@media (max-width: 781px) {
	.lx-hero.wp-block-cover { min-height: 0; }
	.lx-hero .wp-block-buttons, .lx-cta .wp-block-buttons { flex-direction: column; align-items: stretch; }
	.lx-hero .wp-block-button, .lx-cta .wp-block-button { width: 100%; }
	.lx-hero .wp-block-button__link, .lx-cta .wp-block-button__link { width: 100%; }
	.wp-block-columns.lx-stack-gap { gap: 2rem; }
}
@media print {
	.lx-header-wrap, .lx-wa, .lx-footer { display: none !important; }
}

/* ==========================================================================
   Feinschliff 1.0.2 – einheitlicher Seitenkopf, mobile Formulare, Überschriften
   ========================================================================== */

/* Box-Modell: Eingabefelder dürfen nie über ihre Karte hinausragen */
.lx-form, .lx-form *, .lx-form *::before, .lx-form *::after { box-sizing: border-box; }
.lx-form input[type=text], .lx-form input[type=email], .lx-form input[type=tel], .lx-form input[type=number],
.lx-form input[type=date], .lx-form select { min-height: 50px; line-height: 1.3; max-width: 100%; }
.lx-choice label { min-height: 52px; padding: .65rem .9rem; line-height: 1.3; }

/* Lange deutsche Wörter (z. B. „Arbeitnehmerüberlassung“) sauber umbrechen */
:where(h1, h2, h3, .wp-block-post-title) { overflow-wrap: break-word; hyphens: auto; -webkit-hyphens: auto; }
@media (max-width: 480px) {
	h2.wp-block-heading:not(.has-x-large-font-size):not(.lx-footer__title) { font-size: clamp(1.6rem, 7vw, 1.875rem) !important; }
}

/* Einheitlicher Seitenkopf für Seiten ohne Titelbild (Kontakt, Impressum, Datenschutz):
   gleiche Farbe, Typografie und Ausrichtung wie die Bild-Köpfe der Leistungsseiten */
.lx-pagehead {
	position: relative; overflow: hidden; margin-block-start: 0 !important;
	min-height: 300px; display: flex; flex-direction: column; justify-content: flex-end;
	padding-top: clamp(3rem, 7vw, 5rem) !important; padding-bottom: clamp(2.5rem, 5vw, 3.5rem) !important;
	background: linear-gradient(100deg, #2D2833 0%, #3a3241 60%, #4a3f4f 100%) !important;
}
.lx-pagehead::after {
	content: ""; position: absolute; right: -140px; top: -140px; width: 420px; height: 420px; border-radius: 50%;
	border: 64px solid rgba(255,255,255,.05); pointer-events: none;
}
.lx-pagehead > * { position: relative; z-index: 1; width: 100%; }
.lx-pagehead .is-style-lx-eyebrow { color: #E2D7E4 !important; margin-bottom: .25rem; }
.lx-pagehead .wp-block-post-title { color: #fff; margin-top: 0; }
@media (max-width: 781px) { .lx-pagehead { min-height: 220px; } .lx-subhero.wp-block-cover { min-height: 340px; } }

/* Brotkrumen stehen auf allen Unterseiten identisch über dem Kopfbereich */
.lx-main > .lx-breadcrumb, .lx-main > .wp-block-shortcode > .lx-breadcrumb { padding-block: .9rem; margin: 0 auto; }
.lx-main > .lx-breadcrumb + *, .lx-main > .lx-breadcrumb ~ .wp-block-post-content > .wp-block-cover:first-child { margin-block-start: 0 !important; }

/* Ablauf-Karten: Nummer und Überschrift nicht zu eng */
.lx-step { padding-top: 4.25rem !important; }

/* Kontaktseite mobil: direkte Kontaktdaten vor dem Formular */
@media (max-width: 781px) {
	.wp-block-columns:has(#anfrage) > .wp-block-column:last-child { order: -1; }
}

/* ==========================================================================
   Feinschliff 1.0.3 – Text in Bild-Kopfbereichen an Logo/Inhalt ausrichten
   ========================================================================== */
.lx-hero .wp-block-cover__inner-container,
.lx-subhero .wp-block-cover__inner-container {
	width: 100% !important; max-width: var(--wp--style--global--wide-size) !important; margin-inline: auto !important;
}
.lx-hero .wp-block-cover__inner-container > *,
.lx-subhero .wp-block-cover__inner-container > * { margin-left: 0 !important; margin-right: 0 !important; max-width: none; }
.lx-hero.wp-block-cover, .lx-subhero.wp-block-cover {
	padding-left: var(--wp--style--root--padding-left, clamp(1rem, 4vw, 2rem)) !important;
	padding-right: var(--wp--style--root--padding-right, clamp(1rem, 4vw, 2rem)) !important;
}
/* Große Überschriften im Kopfbereich auf dem Desktop nicht trennen */
@media (min-width: 782px) {
	.lx-hero h1, .lx-subhero h1 { hyphens: manual; -webkit-hyphens: manual; }
	.lx-hero h1 { padding-right: max(0px, calc(100% - 15em)); }
	.lx-subhero h1 { padding-right: max(0px, calc(100% - 16em)); }
}
/* Auswahlfelder im Anfrageformular: nie mitten im Wort umbrechen */
.lx-choice { grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)) !important; }
.lx-choice label { overflow-wrap: normal; word-break: normal; hyphens: manual; }

/* Startseite: sanfter Bildwechsel im Kopfbereich (siehe site.js) */
.lx-hero .lx-slide { opacity: 0; transition: opacity 1.8s ease-in-out; }
.lx-hero .lx-slide.is-active { opacity: 1; }
.lx-hero .wp-block-cover__image-background:first-of-type:not(.lx-slide) { opacity: 1; }

/* ==========================================================================
   Feinschliff 1.0.4 – schlankere Kopfzeile, Brotkrumen im Kopfbereich,
   einheitliche Kopfhöhen, kompakter Footer
   ========================================================================== */
/* Kopfzeile etwas schlanker */
.lx-header { padding-top: .55rem !important; padding-bottom: .55rem !important; }
.lx-header .wp-block-site-logo img { width: clamp(124px, 12vw, 150px); }

/* Brotkrumen liegen oben im dunklen Kopfbereich statt in einem eigenen weißen Streifen */
.lx-main { position: relative; }
.lx-main > .lx-breadcrumb {
	position: absolute !important; top: 0; left: 0; right: 0; z-index: 3; max-width: none !important; margin: 0 !important;
	padding: 1.1rem var(--wp--style--root--padding-right, clamp(1rem, 4vw, 2rem)) 0 var(--wp--style--root--padding-left, clamp(1rem, 4vw, 2rem)) !important;
	pointer-events: none;
}
.lx-main > .lx-breadcrumb ol { max-width: var(--wp--style--global--wide-size); margin: 0 auto; pointer-events: auto; }
.lx-main > .lx-breadcrumb a, .lx-main > .lx-breadcrumb li, .lx-main > .lx-breadcrumb li::before { color: rgba(255,255,255,.78) !important; }
.lx-main > .lx-breadcrumb a:hover { color: #fff !important; }
.lx-main > .lx-breadcrumb [aria-current] { color: #fff; }

/* Einheitliche Höhe aller Unterseiten-Kopfbereiche (mit und ohne Bild) */
.lx-subhero.wp-block-cover, .lx-pagehead { min-height: 400px !important; }
.lx-subhero.wp-block-cover { padding-top: 4rem !important; }
.lx-pagehead { padding-top: 4rem !important; }
@media (max-width: 781px) {
	.lx-subhero.wp-block-cover, .lx-pagehead { min-height: 300px !important; }
	.lx-subhero.wp-block-cover { padding-top: 3.5rem !important; }
}
/* Startseite: Kopfbereich nicht höher als nötig */
.lx-hero.wp-block-cover { min-height: min(78vh, 680px) !important; }
@media (max-width: 781px) { .lx-hero.wp-block-cover { min-height: 0 !important; } }

/* Kompakter Footer */
.lx-footer { padding-top: clamp(2.5rem, 5vw, 3.5rem) !important; padding-bottom: 1.5rem !important; font-size: .95rem; }
.lx-footer .lx-logo-img { width: 140px; margin-bottom: .6rem; }
.lx-footer p { margin-block: .4rem; }
.lx-footer__title { margin-bottom: .5rem !important; }
.lx-footer__links a { padding-block: .22rem; }
.lx-footer .lx-contact { gap: .35rem; }
.lx-footer__sep { margin-block: 1.75rem 1rem !important; }
@media (max-width: 781px) {
	.lx-footer { padding-bottom: calc(1.5rem + 64px) !important; } /* Platz für das WhatsApp-Symbol */
	.lx-footer .wp-block-columns { flex-wrap: wrap !important; row-gap: 1.5rem; column-gap: 1.25rem; }
	.lx-footer .wp-block-columns > .wp-block-column:nth-child(2),
	.lx-footer .wp-block-columns > .wp-block-column:nth-child(3) { flex-basis: calc(50% - .75rem) !important; flex-grow: 0; }
	.lx-footer .wp-block-columns > .wp-block-column:nth-child(1),
	.lx-footer .wp-block-columns > .wp-block-column:nth-child(4) { flex-basis: 100% !important; }
	.lx-footer__bottom { flex-direction: column; align-items: flex-start !important; gap: .4rem !important; }
}

/* 1.0.4b: alle Unterseiten-Köpfe exakt gleich hoch; mobil kompakter */
.lx-subhero.wp-block-cover, .lx-pagehead { min-height: 430px !important; }
@media (max-width: 781px) {
	.lx-subhero.wp-block-cover, .lx-pagehead { min-height: 300px !important; }
	.lx-hero__chips { display: none !important; }
	.lx-footer .wp-block-columns > .wp-block-column:nth-child(1) > p { display: none; }
}
