/* ==========================================================================
   Landeis – Gestaltung
   Markenfarben aus dem Logo: Landeis-Rot #b80a0e, Anthrazit #1d252c.
   Gestaltungsmotiv: die schräge Dachlinie aus dem Logo.
   Schrift: Archivo (lokal, OFL) – keine externen Verbindungen.
   ========================================================================== */

@font-face {
	font-family: "Archivo";
	src: url("../fonts/archivo-variable.woff2") format("woff2");
	font-weight: 100 900;
	font-stretch: 62% 125%;
	font-style: normal;
	font-display: swap;
}

:root {
	--ls-ink: #1d252c;
	--ls-ink-2: #2a343d;
	--ls-ink-3: #141a1f;
	--ls-text: #33404a;
	--ls-muted: #5d6973;
	--ls-line: #e3dfd7;
	--ls-sand: #f4f1ec;
	--ls-sand-2: #ebe6dd;
	--ls-white: #fff;
	--ls-red: #b80a0e;
	--ls-red-dark: #930809;
	--ls-red-tint: #fbecec;
	--ls-gold: #e2a218;
	--ls-on-dark: #e9edf0;
	--ls-on-dark-muted: #b4bec6;

	--ls-wrap: 1200px;
	--ls-gutter: clamp(1rem, 0.6rem + 2vw, 2rem);
	--ls-radius: 18px;
	--ls-radius-sm: 12px;
	--ls-shadow: 0 1px 2px rgb(20 26 31 / 6%), 0 8px 24px -8px rgb(20 26 31 / 14%);
	--ls-shadow-lg: 0 2px 4px rgb(20 26 31 / 6%), 0 24px 48px -16px rgb(20 26 31 / 28%);
	--ls-section: clamp(3.5rem, 2.5rem + 4vw, 6.5rem);
	--ls-header-h: 84px;

	--ls-font: "Archivo", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
	--ls-roof: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 16'%3E%3Cpath d='M2 15V8L38 1' fill='none' stroke='%23b80a0e' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	--ls-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m9.5 16.2-4.2-4.2-1.4 1.4 5.6 5.6 11-11-1.4-1.4z'/%3E%3C/svg%3E");
}

/* ---------- Grundlagen ---------- */
*,
*::before,
*::after { box-sizing: border-box; }

html {
	-webkit-text-size-adjust: 100%;
	scroll-padding-top: calc(var(--ls-header-h) + 1rem);
}

@media (prefers-reduced-motion: no-preference) {
	html { scroll-behavior: smooth; }
}

body {
	margin: 0;
	font-family: var(--ls-font);
	font-size: 1.0625rem;
	line-height: 1.65;
	color: var(--ls-text);
	background: var(--ls-white);
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
}

img,
svg { max-width: 100%; height: auto; display: block; }

h1, h2, h3, h4 {
	font-family: var(--ls-font);
	color: var(--ls-ink);
	font-weight: 750;
	font-stretch: 92%;
	line-height: 1.12;
	letter-spacing: -0.012em;
	margin: 0 0 0.6em;
	text-wrap: balance;
	overflow-wrap: break-word;
	-webkit-hyphens: auto;
	hyphens: auto;
	hyphenate-limit-chars: 10 4 4;
}

h1 { font-size: clamp(2.1rem, 1.4rem + 2.9vw, 3.6rem); }
h2 { font-size: clamp(1.65rem, 1.25rem + 1.6vw, 2.5rem); }
h3 { font-size: clamp(1.2rem, 1.05rem + 0.5vw, 1.4rem); font-stretch: 96%; }

p { margin: 0 0 1em; }

a { color: var(--ls-red); text-underline-offset: 0.18em; text-decoration-thickness: 1px; }
a:hover { color: var(--ls-red-dark); text-decoration-thickness: 2px; }

:focus-visible {
	outline: 3px solid var(--ls-red);
	outline-offset: 3px;
	border-radius: 4px;
}

strong { font-weight: 650; color: var(--ls-ink); }

address { font-style: normal; }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0 0 0 0);
	white-space: nowrap; border: 0;
}

.ls-skip {
	position: absolute; left: 1rem; top: -100px; z-index: 1000;
	background: var(--ls-ink); color: #fff; padding: 0.75rem 1rem; border-radius: 8px;
}
.ls-skip:focus { top: 1rem; color: #fff; }

.ls-wrap {
	width: 100%;
	max-width: calc(var(--ls-wrap) + 2 * var(--ls-gutter));
	margin-inline: auto;
	padding-inline: var(--ls-gutter);
}

.ls-icon { width: 1.15em; height: 1.15em; flex: none; display: inline-block; vertical-align: -0.18em; }

/* ---------- Kicker mit Dachlinie (Logo-Motiv) ---------- */
.ls-kicker {
	display: inline-flex; align-items: center; gap: 0.6rem;
	font-size: 0.82rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase;
	color: var(--ls-red); margin: 0 0 0.9rem;
}
.ls-kicker::before {
	content: ""; width: 34px; height: 14px; flex: none;
	background: var(--ls-roof) no-repeat center / contain;
}
.ls-kicker--light,
.ls-section--dark .ls-kicker { color: #ff8a8c; }

.ls-lead { font-size: clamp(1.075rem, 1rem + 0.35vw, 1.25rem); line-height: 1.6; color: var(--ls-text); max-width: 62ch; }
.ls-muted { color: var(--ls-muted); font-size: 0.95rem; }

/* ---------- Buttons ---------- */
.ls-btn,
.wp-block-button__link {
	display: inline-flex; align-items: center; justify-content: center; gap: 0.55rem;
	min-height: 48px; padding: 0.7rem 1.35rem;
	font: inherit; font-weight: 650; font-size: 1rem; line-height: 1.2; text-decoration: none;
	border-radius: 999px; border: 2px solid transparent; cursor: pointer;
	transition: background-color .2s, color .2s, border-color .2s, transform .2s, box-shadow .2s;
}
.ls-btn--lg { min-height: 54px; padding: 0.8rem 1.6rem; font-size: 1.05rem; }
.ls-btn--block { width: 100%; }

.ls-btn--primary,
.wp-block-button:not(.is-style-outline) .wp-block-button__link {
	background: var(--ls-red); color: #fff;
	box-shadow: 0 6px 18px -6px rgb(184 10 14 / 55%);
}
.ls-btn--primary:hover,
.wp-block-button:not(.is-style-outline) .wp-block-button__link:hover {
	background: var(--ls-red-dark); color: #fff; transform: translateY(-1px);
}

.ls-btn--ghost,
.wp-block-button.is-style-outline .wp-block-button__link {
	background: transparent; color: var(--ls-ink); border-color: var(--ls-ink);
}
.ls-btn--ghost:hover,
.wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: var(--ls-ink); color: #fff;
}

.ls-btn--dark { background: var(--ls-ink); color: #fff; }
.ls-btn--dark:hover { background: var(--ls-ink-3); color: #fff; }

.ls-btn .ls-icon--arrow { transition: transform .2s; }
.ls-btn:hover .ls-icon--arrow { transform: translateX(3px); }

.ls-cta-buttons { display: flex; flex-wrap: wrap; gap: 0.75rem; margin: 1.75rem 0 1.5rem; }
.ls-cta-buttons:not(.ls-cta-buttons--dark) { flex-direction: column; align-items: flex-start; gap: 1rem; }
.ls-cta-direct { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 1.25rem; margin: 0; color: var(--ls-muted); font-size: 0.97rem; }
.ls-cta-direct a { display: inline-flex; align-items: center; gap: 0.4rem; color: var(--ls-ink); font-weight: 650; text-decoration: none; }
.ls-cta-direct a:hover { color: var(--ls-red); text-decoration: underline; }
.ls-cta-direct .ls-icon { color: var(--ls-red); }
.ls-section--dark .ls-cta-direct { color: var(--ls-on-dark-muted); }
.ls-section--dark .ls-cta-direct a { color: #fff; }
.ls-section--dark .ls-cta-direct .ls-icon { color: #ff8a8c; }
.ls-cta-buttons--dark .ls-btn--ghost { color: #fff; border-color: rgb(255 255 255 / 55%); }
.ls-cta-buttons--dark .ls-btn--ghost:hover { background: #fff; color: var(--ls-ink); }

.wp-block-buttons { display: flex; flex-wrap: wrap; gap: 0.75rem; margin: 1.5rem 0; }
.wp-block-buttons.ls-center { justify-content: center; margin-top: 2.5rem; }

/* ---------- Servicezeile ---------- */
.ls-topbar { background: var(--ls-ink); color: var(--ls-on-dark-muted); font-size: 0.875rem; }
.ls-topbar__inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 40px; }
.ls-topbar__claim { margin: 0; }
.ls-topbar__contact { display: flex; gap: 1.25rem; list-style: none; margin: 0; padding: 0; align-items: center; }
.ls-topbar__contact a { color: #fff; text-decoration: none; display: inline-flex; gap: 0.4rem; align-items: center; }
.ls-topbar__contact a:hover { color: #ffb3b4; }
.ls-topbar__hours { display: inline-flex; gap: 0.4rem; align-items: center; }

@media (max-width: 1080px) {
	.ls-topbar__claim, .ls-topbar__hours { display: none; }
	.ls-topbar__inner { justify-content: flex-end; }
}
@media (max-width: 767px) {
	.ls-topbar { display: none; }
}

/* ---------- Kopfbereich ---------- */
.ls-header {
	position: sticky; top: 0; z-index: 50;
	background: rgb(255 255 255 / 92%);
	backdrop-filter: saturate(160%) blur(10px);
	-webkit-backdrop-filter: saturate(160%) blur(10px);
	border-bottom: 1px solid transparent;
	transition: border-color .2s, box-shadow .2s;
}
.admin-bar .ls-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .ls-header { top: 46px; } }
.ls-header.is-scrolled { border-color: var(--ls-line); box-shadow: 0 6px 20px -12px rgb(20 26 31 / 25%); }

.ls-header__inner { display: flex; align-items: center; gap: 1.5rem; min-height: var(--ls-header-h); }

.ls-logo { display: block; flex: none; }
.ls-logo img { height: 58px; width: auto; }
.custom-logo-link img { height: 58px; width: auto; }

.ls-nav { margin-left: auto; display: flex; align-items: center; gap: 1.25rem; }
.ls-nav__list { display: flex; gap: 0.25rem; list-style: none; margin: 0; padding: 0; }
.ls-nav__list > li { position: relative; }
.ls-nav__list a {
	display: block; padding: 0.6rem 0.85rem; border-radius: 10px;
	color: var(--ls-ink); text-decoration: none; font-weight: 600; font-size: 1rem;
}
.ls-nav__list a:hover { background: var(--ls-sand); color: var(--ls-ink); }
.ls-nav__list .current-menu-item > a,
.ls-nav__list .current-menu-ancestor > a,
.ls-nav__list .current_page_item > a,
.ls-nav__list .current_page_ancestor > a { color: var(--ls-red); }

.ls-nav__list .menu-item-has-children > a::after,
.ls-nav__list .page_item_has_children > a::after {
	content: ""; display: inline-block; width: 0.45em; height: 0.45em; margin-left: 0.45em;
	border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
	transform: translateY(-0.2em) rotate(45deg);
}

.ls-nav__list .sub-menu,
.ls-nav__list .children {
	list-style: none; margin: 0; padding: 0.5rem;
	position: absolute; top: calc(100% + 6px); left: -0.5rem; min-width: 260px;
	background: #fff; border: 1px solid var(--ls-line); border-radius: 14px; box-shadow: var(--ls-shadow-lg);
	opacity: 0; visibility: hidden; transform: translateY(6px);
	transition: opacity .18s, transform .18s, visibility .18s;
}
.ls-nav__list li:hover > .sub-menu,
.ls-nav__list li:focus-within > .sub-menu,
.ls-nav__list li:hover > .children,
.ls-nav__list li:focus-within > .children { opacity: 1; visibility: visible; transform: translateY(0); }
.ls-nav__list .sub-menu::before,
.ls-nav__list .children::before { content: ""; position: absolute; inset: -10px 0 auto; height: 10px; }
.ls-nav__list .sub-menu a,
.ls-nav__list .children a { font-weight: 500; padding: 0.55rem 0.8rem; }

.ls-nav__cta { flex: none; }

.ls-menu-toggle {
	display: none; margin-left: auto;
	align-items: center; gap: 0.6rem;
	min-height: 46px; padding: 0.5rem 0.9rem;
	background: var(--ls-sand); color: var(--ls-ink);
	border: 0; border-radius: 999px; font: inherit; font-weight: 650; cursor: pointer;
}
.ls-menu-toggle__bars,
.ls-menu-toggle__bars::before,
.ls-menu-toggle__bars::after {
	display: block; width: 20px; height: 2px; background: currentColor; border-radius: 2px; position: relative;
	transition: transform .2s, background-color .2s;
}
.ls-menu-toggle__bars::before,
.ls-menu-toggle__bars::after { content: ""; position: absolute; left: 0; }
.ls-menu-toggle__bars::before { top: -6px; }
.ls-menu-toggle__bars::after { top: 6px; }
.ls-menu-toggle[aria-expanded="true"] .ls-menu-toggle__bars { background: transparent; }
.ls-menu-toggle[aria-expanded="true"] .ls-menu-toggle__bars::before { transform: translateY(6px) rotate(45deg); }
.ls-menu-toggle[aria-expanded="true"] .ls-menu-toggle__bars::after { transform: translateY(-6px) rotate(-45deg); }

@media (max-width: 1023px) {
	:root { --ls-header-h: 72px; }
	.ls-logo img, .custom-logo-link img { height: 48px; }
	.ls-menu-toggle { display: inline-flex; }
	.ls-nav {
		position: fixed; inset: var(--ls-header-h) 0 0 0; z-index: 49;
		flex-direction: column; align-items: stretch; gap: 1rem;
		margin: 0; padding: 1.25rem var(--ls-gutter) 7rem;
		background: #fff; overflow-y: auto;
		opacity: 0; visibility: hidden; transform: translateY(-8px);
		transition: opacity .2s, transform .2s, visibility .2s;
	}
	.admin-bar .ls-nav { inset-block-start: calc(var(--ls-header-h) + 46px); }
	.ls-nav.is-open { opacity: 1; visibility: visible; transform: none; }
	.ls-nav__list { flex-direction: column; gap: 0; }
	.ls-nav__list > li { border-bottom: 1px solid var(--ls-line); }
	.ls-nav__list a { padding: 0.95rem 0.25rem; font-size: 1.15rem; border-radius: 0; }
	.ls-nav__list a:hover { background: none; }
	.ls-nav__list .menu-item-has-children > a::after,
	.ls-nav__list .page_item_has_children > a::after { display: none; }
	.ls-nav__list .sub-menu,
	.ls-nav__list .children {
		position: static; opacity: 1; visibility: visible; transform: none;
		box-shadow: none; border: 0; padding: 0 0 0.75rem 0.75rem; min-width: 0;
		display: grid; grid-template-columns: 1fr 1fr; gap: 0 1rem;
	}
	.ls-nav__list .sub-menu a,
	.ls-nav__list .children a { font-size: 1rem; padding: 0.5rem 0; color: var(--ls-text); }
	.ls-nav__cta { align-self: flex-start; }
	body.ls-nav-open { overflow: hidden; }
}
@media (max-width: 479px) {
	.ls-menu-toggle__label { display: none; }
	.ls-nav__list .sub-menu, .ls-nav__list .children { grid-template-columns: 1fr; }
}

/* ---------- Abschnitte ---------- */
.ls-main { display: block; }
.ls-main:focus { outline: none; }

.ls-section {
	padding-block: var(--ls-section);
	padding-inline: max(var(--ls-gutter), calc((100% - var(--ls-wrap)) / 2));
	margin: 0;
}
.ls-section > * { margin-block-start: 0; }
.ls-section--sand { background: var(--ls-sand); }
.ls-section--dark { background: var(--ls-ink); color: var(--ls-on-dark); }
.ls-section--dark h2, .ls-section--dark h3, .ls-section--dark strong { color: #fff; }
.ls-section--dark a:not(.ls-btn):not(.wp-block-button__link) { color: #fff; }
.ls-section--dark .wp-block-button.is-style-outline .wp-block-button__link { color: #fff; border-color: rgb(255 255 255 / 60%); }
.ls-section--dark .wp-block-button.is-style-outline .wp-block-button__link:hover { background: #fff; color: var(--ls-ink); }
.ls-section--narrow { --ls-wrap: 860px; }

.ls-section-head { max-width: 760px; margin-bottom: clamp(2rem, 1.5rem + 1.5vw, 3rem); }
.ls-section-head h2 { margin-bottom: 0.5rem; }
.ls-section-head .ls-lead { margin: 0.75rem 0 0; }
.ls-section--narrow .ls-section-head { text-align: left; }

.ls-group-title {
	font-size: 0.95rem; text-transform: uppercase; letter-spacing: 0.1em; color: var(--ls-muted);
	margin: 2.75rem 0 1.25rem; display: flex; align-items: center; gap: 1rem;
}
.ls-group-title::after { content: ""; flex: 1; height: 1px; background: var(--ls-line); }
.ls-section-head + .ls-group-title { margin-top: 0; }

/* ---------- Startbereich (Hero) ---------- */
.ls-hero {
	position: relative; overflow: hidden;
	background:
		radial-gradient(1200px 500px at 85% -10%, rgb(184 10 14 / 7%), transparent 60%),
		linear-gradient(180deg, var(--ls-sand) 0%, #fbfaf7 100%);
	padding: clamp(2.5rem, 1.5rem + 4vw, 5rem) max(var(--ls-gutter), calc((100% - var(--ls-wrap)) / 2)) clamp(4.5rem, 3rem + 5vw, 7.5rem);
	margin: 0;
}
.ls-hero__grid.wp-block-columns {
	display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
	gap: clamp(2rem, 1rem + 4vw, 5rem); align-items: center; margin: 0;
}
.ls-hero__grid > .wp-block-column { min-width: 0; }
.ls-hero__title { margin-bottom: 1.1rem; }
.ls-hero__title span { color: var(--ls-red); display: block; }

.ls-hero__media { position: relative; padding: 28px 0 40px 36px; }
.ls-hero__media::before {
	/* Dachlinie aus dem Logo: senkrecht links, schräg ansteigend nach rechts */
	content: ""; position: absolute; inset: 0 -4% 12% 0; z-index: 2; pointer-events: none;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 300' preserveAspectRatio='none'%3E%3Cpath d='M6 296V92L396 6' fill='none' stroke='%231d252c' stroke-width='7' stroke-linecap='round' stroke-linejoin='round' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") no-repeat 0 0 / 100% 100%;
}
.ls-hero__media .wp-block-image { margin: 0; }
.ls-hero__media img { width: 100%; object-fit: cover; border-radius: var(--ls-radius); box-shadow: var(--ls-shadow-lg); }
.ls-hero__img--main img { aspect-ratio: 4 / 3; }
.ls-hero__img--side {
	position: absolute; width: 40%; right: -2%; bottom: 0; z-index: 3;
}
.ls-hero__img--side img { aspect-ratio: 4 / 3; border: 5px solid #fff; }
.ls-hero__img--small {
	position: absolute; width: 26%; left: 0; bottom: 6%; z-index: 3;
}
.ls-hero__img--small img { aspect-ratio: 3 / 4; border: 5px solid #fff; }

@media (max-width: 899px) {
	.ls-hero__grid.wp-block-columns { grid-template-columns: 1fr; }
	.ls-hero__media { max-width: 560px; }
}
@media (max-width: 479px) {
	.ls-hero__img--small { display: none; }
	.ls-hero__media { padding-left: 22px; }
}

/* ---------- Faktenleiste ---------- */
.ls-facts {
	position: relative; z-index: 5;
	max-width: calc(var(--ls-wrap) + 2 * var(--ls-gutter)); margin: calc(-1 * clamp(2.5rem, 2rem + 2vw, 3.5rem)) auto 0;
	padding-inline: var(--ls-gutter);
}
.ls-facts__list {
	list-style: none; margin: 0; padding: clamp(1.1rem, 0.8rem + 1vw, 1.6rem) clamp(1.1rem, 0.6rem + 2vw, 2.25rem);
	display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.25rem 2rem;
	background: #fff; border-radius: var(--ls-radius); box-shadow: var(--ls-shadow-lg);
}
.ls-facts__item { display: flex; gap: 0.75rem; align-items: flex-start; font-size: 0.95rem; line-height: 1.4; color: var(--ls-muted); }
.ls-facts__item strong { display: block; color: var(--ls-ink); font-size: 1.05rem; }
.ls-facts__item .ls-icon {
	width: 30px; height: 30px; padding: 6px; border-radius: 50%;
	background: var(--ls-red-tint); color: var(--ls-red);
}
@media (max-width: 959px) { .ls-facts__list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 479px) { .ls-facts__list { grid-template-columns: 1fr; } }

/* ---------- Google-Bewertung (mit Hinweis nach § 5b UWG) ---------- */
.ls-rating { margin: 0.25rem 0 0; }
.ls-rating__score { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; margin: 0 0 0.35rem; color: var(--ls-ink); font-size: 1.05rem; }
.ls-rating__score strong { font-size: 1.25rem; }
.ls-rating__count { color: var(--ls-muted); }
.ls-stars { display: inline-flex; gap: 2px; }
.ls-stars .ls-icon { width: 20px; height: 20px; }
.ls-stars .is-on { color: var(--ls-gold); }
.ls-stars .is-off { color: #cfd5da; }
.ls-rating__note { font-size: 0.8rem; line-height: 1.5; color: var(--ls-muted); max-width: 60ch; margin: 0; }
.ls-rating__more { white-space: nowrap; }
.ls-rating--hero { padding-top: 1.25rem; border-top: 1px solid var(--ls-line); max-width: 560px; }
.ls-rating--compact { margin-top: 1.25rem; }
.ls-rating--box { margin-top: 1.5rem; padding-top: 1.25rem; border-top: 1px solid var(--ls-line); }
.ls-rating--block { background: #fff; border-radius: var(--ls-radius); padding: 1.5rem; box-shadow: var(--ls-shadow); }
.ls-section--dark .ls-rating__note, .ls-section--dark .ls-rating__count { color: var(--ls-on-dark-muted); }

/* ---------- Karten (Leistungen) ---------- */
.ls-cards { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1rem, 0.5rem + 1.5vw, 1.75rem); }
.ls-card {
	position: relative; display: flex; flex-direction: column;
	background: #fff; border: 1px solid var(--ls-line); border-radius: var(--ls-radius); overflow: hidden;
	transition: transform .25s, box-shadow .25s, border-color .25s;
}
.ls-card:hover { transform: translateY(-4px); box-shadow: var(--ls-shadow-lg); border-color: transparent; }
.ls-card:focus-within { box-shadow: 0 0 0 3px var(--ls-red); }
.ls-card__media { aspect-ratio: 4 / 3; background: var(--ls-sand); overflow: hidden; }
.ls-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.ls-card:hover .ls-card__media img { transform: scale(1.04); }
.ls-card__body { padding: 1.25rem 1.35rem 1.4rem; display: flex; flex-direction: column; flex: 1; }
.ls-card__title { margin: 0 0 0.5rem; font-size: 1.25rem; }
.ls-card__title a { color: var(--ls-ink); text-decoration: none; }
.ls-card__title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.ls-card__title a:focus-visible { outline: none; }
.ls-card__body p { color: var(--ls-muted); font-size: 0.975rem; margin: 0 0 1rem; }
.ls-card__more { margin-top: auto; display: inline-flex; align-items: center; gap: 0.4rem; color: var(--ls-red); font-weight: 650; font-size: 0.95rem; }
.ls-card:hover .ls-card__more .ls-icon { transform: translateX(3px); }
.ls-card__more .ls-icon { transition: transform .2s; }

.ls-cards--breit { grid-template-columns: 1fr; }
.ls-cards--breit .ls-card { flex-direction: row; }
.ls-cards--breit .ls-card__media { flex: 0 0 34%; aspect-ratio: auto; min-height: 230px; position: relative; }
.ls-cards--breit .ls-card__media img { position: absolute; inset: 0; }
.ls-cards--breit .ls-card__body { justify-content: center; padding: 1.75rem 2rem; }

@media (max-width: 959px) { .ls-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 599px) {
	.ls-cards { grid-template-columns: 1fr; }
	.ls-cards--breit .ls-card { flex-direction: column; }
	.ls-cards--breit .ls-card__media { aspect-ratio: 16 / 9; min-height: 0; }
	.ls-cards--breit .ls-card__body { padding: 1.25rem 1.35rem 1.4rem; }
}

/* ---------- Zwei Wege ---------- */
.ls-ways.wp-block-columns, .ls-cardrow.wp-block-columns, .ls-split.wp-block-columns, .ls-about.wp-block-columns, .ls-contact.wp-block-columns {
	display: grid; gap: clamp(1rem, 0.5rem + 2vw, 2rem); margin: 0;
}
.ls-ways.wp-block-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ls-way {
	height: 100%; background: #fff; border-radius: var(--ls-radius); padding: clamp(1.5rem, 1rem + 1.5vw, 2.5rem);
	box-shadow: var(--ls-shadow); border-top: 4px solid var(--ls-red);
}
.ls-way h3 { font-size: clamp(1.35rem, 1.1rem + 0.8vw, 1.75rem); }
.ls-way .wp-block-buttons { margin-bottom: 0; }
@media (max-width: 767px) { .ls-ways.wp-block-columns { grid-template-columns: 1fr; } }

/* ---------- Checklisten ---------- */
.ls-checklist { list-style: none; padding: 0; margin: 1rem 0 1.5rem; display: grid; gap: 0.6rem; }
.ls-checklist li { position: relative; padding-left: 2rem; }
.ls-checklist li::before {
	content: ""; position: absolute; left: 0; top: 0.2em; width: 1.3rem; height: 1.3rem; border-radius: 50%;
	background: var(--ls-red-tint);
}
.ls-checklist li::after {
	content: ""; position: absolute; left: 0.2rem; top: calc(0.2em + 0.2rem); width: 0.9rem; height: 0.9rem;
	background: var(--ls-red); -webkit-mask: var(--ls-check) no-repeat center / contain; mask: var(--ls-check) no-repeat center / contain;
}
.ls-section--dark .ls-checklist li::before { background: rgb(255 255 255 / 10%); }
.ls-section--dark .ls-checklist li::after { background: #ff8a8c; }

/* ---------- Ablauf ---------- */
.ls-steps {
	list-style: none; counter-reset: step; padding: 0; margin: 0;
	display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.5rem;
	position: relative;
}
.ls-section--steps .ls-steps::before {
	content: ""; position: absolute; left: 28px; right: 12%; top: 27px; height: 2px;
	background: repeating-linear-gradient(90deg, var(--ls-line) 0 10px, transparent 10px 18px);
}
.ls-steps li { counter-increment: step; position: relative; color: var(--ls-muted); }
.ls-steps li::before {
	content: counter(step); position: relative; z-index: 1;
	display: grid; place-items: center; width: 56px; height: 56px; margin-bottom: 1rem;
	border-radius: 50%; background: var(--ls-ink); color: #fff; font-weight: 750; font-size: 1.35rem;
	box-shadow: 0 0 0 8px #fff;
}
.ls-steps li:first-child::before { background: var(--ls-red); }
.ls-steps li strong { display: block; font-size: 1.15rem; margin-bottom: 0.35rem; }
@media (max-width: 899px) {
	.ls-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ls-section--steps .ls-steps::before { display: none; }
}
@media (max-width: 479px) { .ls-steps { grid-template-columns: 1fr; } }

/* Ablauf innerhalb von Leistungsseiten: senkrecht */
.ls-prose .ls-steps { grid-template-columns: 1fr; gap: 0; margin: 1.25rem 0 2rem; }
.ls-prose .ls-steps li { padding: 0 0 1.25rem 4rem; min-height: 56px; color: var(--ls-text); }
.ls-prose .ls-steps li::before { position: absolute; left: 0; top: 0; width: 44px; height: 44px; font-size: 1.05rem; box-shadow: none; margin: 0; }
.ls-prose .ls-steps li:not(:last-child)::after { content: ""; position: absolute; left: 21px; top: 48px; bottom: 4px; width: 2px; background: var(--ls-line); }
.ls-prose .ls-steps li strong { display: inline; font-size: inherit; }

/* ---------- Projekte ---------- */
.ls-filter { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0 0 2rem; }
.ls-filter__btn {
	font: inherit; font-weight: 600; font-size: 0.95rem; cursor: pointer;
	min-height: 44px; padding: 0.5rem 1.05rem; border-radius: 999px;
	background: #fff; color: var(--ls-ink); border: 1px solid var(--ls-line);
	transition: background-color .2s, color .2s, border-color .2s;
}
.ls-filter__btn:hover { border-color: var(--ls-ink); }
.ls-filter__btn[aria-pressed="true"] { background: var(--ls-ink); color: #fff; border-color: var(--ls-ink); }

.ls-project-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1rem, 0.5rem + 1.5vw, 1.75rem); }
.ls-project[hidden] { display: none; }
.ls-project__open {
	position: relative; display: block; border-radius: var(--ls-radius); overflow: hidden; background: var(--ls-sand);
	aspect-ratio: 4 / 3;
}
.ls-project__open img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.ls-project__open:hover img { transform: scale(1.05); }
.ls-project__badge {
	position: absolute; left: 0.75rem; bottom: 0.75rem;
	display: inline-flex; align-items: center; gap: 0.35rem;
	background: rgb(20 26 31 / 78%); color: #fff; font-size: 0.8rem; font-weight: 600;
	padding: 0.35rem 0.7rem; border-radius: 999px;
}
.ls-project__body { padding: 0.9rem 0.15rem 0; }
.ls-project__title { font-size: 1.1rem; margin: 0 0 0.3rem; }
.ls-project__body p { font-size: 0.93rem; color: var(--ls-muted); margin: 0; }
@media (max-width: 959px) { .ls-project-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 559px) { .ls-project-grid { grid-template-columns: 1fr; } }

.ls-prose .ls-project-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.ls-prose .ls-project__body p { display: none; }
.ls-prose .ls-project__title { font-size: 0.98rem; }
@media (max-width: 599px) { .ls-prose .ls-project-grid { grid-template-columns: 1fr 1fr; } }

/* Großansicht */
.ls-lightbox {
	width: min(1100px, 100vw); max-width: 100vw; max-height: 100vh; padding: 0; border: 0;
	background: transparent; color: #fff; overflow: visible;
}
.ls-lightbox::backdrop { background: rgb(14 18 22 / 92%); }
.ls-lightbox__bar { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 0.5rem 0.75rem; }
.ls-lightbox__title { margin: 0; font-weight: 650; }
.ls-lightbox__close,
.ls-lightbox__nav button {
	font: inherit; font-size: 1.75rem; line-height: 1; cursor: pointer;
	width: 48px; height: 48px; border-radius: 50%; border: 0;
	background: rgb(255 255 255 / 12%); color: #fff;
}
.ls-lightbox__close:hover, .ls-lightbox__nav button:hover { background: rgb(255 255 255 / 25%); }
.ls-lightbox__figure { margin: 0; display: grid; place-items: center; }
.ls-lightbox__figure img { max-height: calc(100vh - 190px); width: auto; max-width: 100%; border-radius: 10px; }
.ls-lightbox__caption { font-size: 0.9rem; color: #c9d1d7; padding: 0.75rem; text-align: center; max-width: 70ch; }
.ls-lightbox__nav { display: flex; justify-content: center; align-items: center; gap: 1.25rem; padding-bottom: 0.75rem; }
.ls-lightbox__nav[hidden] { display: none; }
.ls-lightbox__counter { min-width: 4.5em; text-align: center; font-variant-numeric: tabular-nums; }

/* ---------- Über uns (dunkler Abschnitt) ---------- */
.ls-about.wp-block-columns { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: clamp(2rem, 1rem + 4vw, 5rem); }
.ls-about p { color: var(--ls-on-dark-muted); }
@media (max-width: 859px) { .ls-about.wp-block-columns { grid-template-columns: 1fr; } }

.ls-tags { list-style: none; padding: 0; margin: 1rem 0 0; display: flex; flex-wrap: wrap; gap: 0.5rem; }
.ls-tags li {
	padding: 0.35rem 0.8rem; border-radius: 999px; font-size: 0.92rem;
	border: 1px solid var(--ls-line); background: #fff; color: var(--ls-ink);
}
.ls-section--dark .ls-tags li { background: rgb(255 255 255 / 6%); border-color: rgb(255 255 255 / 16%); color: #fff; }

/* ---------- FAQ ---------- */
.ls-faq { margin-bottom: 2.5rem; }
.ls-faq > h2 { font-size: clamp(1.35rem, 1.15rem + 0.8vw, 1.75rem); margin-bottom: 1rem; }
.wp-block-details {
	border-bottom: 1px solid var(--ls-line); padding: 0; margin: 0;
}
.wp-block-details:first-of-type { border-top: 1px solid var(--ls-line); }
.wp-block-details summary {
	list-style: none; cursor: pointer; position: relative;
	padding: 1.15rem 3rem 1.15rem 0; font-weight: 650; font-size: 1.075rem; color: var(--ls-ink);
}
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after {
	content: ""; position: absolute; right: 0.25rem; top: 50%; width: 30px; height: 30px; margin-top: -15px;
	border-radius: 50%; background: var(--ls-sand)
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M11 5h2v14h-2zM5 11h14v2H5z' fill='%231d252c'/%3E%3C/svg%3E") no-repeat center / 16px;
	transition: transform .2s;
}
.wp-block-details[open] summary::after { transform: rotate(45deg); background-color: var(--ls-red-tint); }
.wp-block-details summary:hover { color: var(--ls-red); }
.wp-block-details > p { margin: 0 0 1.25rem; padding-right: 3rem; color: var(--ls-text); }

/* ---------- Seitenkopf ---------- */
.ls-pagehead {
	background: linear-gradient(180deg, var(--ls-sand) 0%, #fbfaf7 100%);
	padding: clamp(1.5rem, 1rem + 2vw, 2.5rem) 0 clamp(2.5rem, 2rem + 3vw, 4.5rem);
	border-bottom: 1px solid var(--ls-line);
}
.ls-pagehead__inner { display: grid; gap: clamp(2rem, 1rem + 3vw, 4rem); align-items: center; }
.ls-pagehead__inner > * { min-width: 0; }
.ls-pagehead--media .ls-pagehead__inner { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); }
.ls-pagehead__title { margin: 1.25rem 0 1rem; max-width: 22ch; }
.ls-pagehead--media .ls-pagehead__title { max-width: none; }
.ls-pagehead .ls-lead { margin-bottom: 0; }
.ls-pagehead__media { margin: 0; position: relative; padding: 14px 0 0 18px; }
.ls-pagehead__media::before {
	content: ""; position: absolute; left: 0; top: 0; width: 70%; height: 70%; z-index: 0;
	border-left: 5px solid var(--ls-ink); border-top: 5px solid var(--ls-ink); border-top-left-radius: 4px;
	transform: skewY(-8deg); transform-origin: 0 0;
}
.ls-pagehead__media img { position: relative; z-index: 1; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--ls-radius); box-shadow: var(--ls-shadow-lg); }
@media (max-width: 799px) {
	.ls-pagehead--media .ls-pagehead__inner { grid-template-columns: 1fr; }
	.ls-pagehead__media { max-width: 520px; }
}

.ls-breadcrumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.25rem 0.5rem; font-size: 0.9rem; color: var(--ls-muted); }
.ls-breadcrumbs li { min-width: 0; overflow-wrap: anywhere; }
.ls-breadcrumbs li + li::before { content: "/"; margin-right: 0.5rem; color: #b3bac0; }
.ls-breadcrumbs a { color: var(--ls-muted); text-decoration: none; }
.ls-breadcrumbs a:hover { color: var(--ls-red); text-decoration: underline; }

/* ---------- Fließtext-Seiten ---------- */
.ls-prose { padding-block: clamp(2.5rem, 2rem + 3vw, 4.5rem); }
.ls-prose--single { max-width: 780px; }
.ls-prose > h2 { margin-top: 2.75rem; }
.ls-prose > h2:first-child { margin-top: 0; }
.ls-prose > h3 { margin-top: 2rem; }
.ls-prose ul:not([class]), .ls-prose ol:not([class]), .ls-prose .wp-block-list:not(.ls-checklist):not(.ls-steps) { padding-left: 1.25rem; margin: 0 0 1.25rem; }
.ls-prose li { margin-bottom: 0.35rem; }
.ls-prose .ls-address, .ls-address { padding-left: 1rem; border-left: 3px solid var(--ls-line); }
.ls-box, .wp-block-group.ls-box { background: var(--ls-sand); border-radius: var(--ls-radius-sm); padding: 1.25rem 1.5rem; margin: 1.5rem 0; }
.ls-box h3 { margin-top: 0; }
.ls-box p:last-child { margin-bottom: 0; }

/* Layout mit Seitenleiste */
.ls-layout { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: clamp(2rem, 1rem + 3vw, 4.5rem); align-items: start; }
.ls-layout__main { max-width: 780px; }
@media (max-width: 959px) { .ls-layout { grid-template-columns: 1fr; } }

.ls-sidebar { position: sticky; top: calc(var(--ls-header-h) + 1.5rem); padding-block: clamp(2.5rem, 2rem + 3vw, 4.5rem); display: grid; gap: 1.25rem; }
.admin-bar .ls-sidebar { top: calc(var(--ls-header-h) + 1.5rem + 32px); }
@media (max-width: 959px) { .ls-sidebar { position: static; padding-top: 0; } }

.ls-sidecard {
	background: var(--ls-ink); color: var(--ls-on-dark-muted); border-radius: var(--ls-radius);
	padding: 1.5rem; position: relative; overflow: hidden;
}
.ls-sidecard::after {
	content: ""; position: absolute; right: -10px; top: 14px; width: 120px; height: 48px; opacity: .35;
	background: var(--ls-roof) no-repeat center / contain;
}
.ls-sidecard__title { color: #fff; font-weight: 750; font-size: 1.3rem; margin: 0 0 0.5rem; font-stretch: 94%; }
.ls-sidecard p { font-size: 0.95rem; }
.ls-sidecard__contact { list-style: none; margin: 1rem 0 0; padding: 0; display: grid; gap: 0.5rem; }
.ls-sidecard__contact a { color: #fff; text-decoration: none; display: inline-flex; gap: 0.5rem; align-items: center; font-weight: 600; }
.ls-sidecard__contact a:hover { color: #ffb3b4; }

.ls-sidenav { border: 1px solid var(--ls-line); border-radius: var(--ls-radius); padding: 1.25rem 1.25rem 0.75rem; }
.ls-sidenav__title { font-weight: 700; color: var(--ls-ink); margin: 0 0 0.5rem; }
.ls-sidenav ul { list-style: none; margin: 0; padding: 0; }
.ls-sidenav li + li { border-top: 1px solid var(--ls-line); }
.ls-sidenav a { display: block; padding: 0.65rem 0; color: var(--ls-text); text-decoration: none; }
.ls-sidenav a:hover { color: var(--ls-red); }
.ls-sidenav a[aria-current="page"] { color: var(--ls-red); font-weight: 650; }

/* Bausteine in Leistungsseiten */
.ls-keyfacts { background: var(--ls-sand); border-radius: var(--ls-radius); padding: 1.5rem 1.75rem; margin: 0 0 2.5rem; }
.ls-keyfacts__title { font-size: 0.85rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; color: var(--ls-red); margin: 0 0 0.75rem; }
.ls-keyfacts .ls-checklist { grid-template-columns: 1fr 1fr; gap: 0.7rem 1.5rem; margin: 0; }
@media (max-width: 599px) { .ls-keyfacts .ls-checklist { grid-template-columns: 1fr; } }

.ls-cardrow.wp-block-columns { grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); margin: 1.25rem 0 1.75rem; }
.ls-infocard { height: 100%; background: #fff; border: 1px solid var(--ls-line); border-radius: var(--ls-radius-sm); padding: 1.25rem 1.35rem; }
.ls-infocard h3 { font-size: 1.12rem; margin: 0 0 0.4rem; }
.ls-infocard p { font-size: 0.97rem; margin: 0; color: var(--ls-muted); }
.ls-infocard .ls-checklist { margin-bottom: 0; }
.ls-section--sand .ls-infocard { border-color: transparent; box-shadow: var(--ls-shadow); }

.ls-related-projects { margin: 3rem 0 1rem; }
.ls-prose .ls-faq { margin-top: 3rem; }

.ls-split.wp-block-columns { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2rem, 1rem + 4vw, 5rem); align-items: center; }
@media (max-width: 859px) { .ls-split.wp-block-columns { grid-template-columns: 1fr; } }
.ls-rounded img { border-radius: var(--ls-radius); box-shadow: var(--ls-shadow-lg); width: 100%; object-fit: cover; aspect-ratio: 4 / 3; }
.wp-block-image { margin: 0 0 1.5rem; }

/* ---------- Kontakt ---------- */
.ls-contact.wp-block-columns { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: clamp(2rem, 1rem + 4vw, 4.5rem); align-items: start; }
@media (max-width: 899px) { .ls-contact.wp-block-columns { grid-template-columns: 1fr; } }

.ls-contactbox { background: var(--ls-sand); border-radius: var(--ls-radius); padding: clamp(1.25rem, 1rem + 1vw, 2rem); position: sticky; top: calc(var(--ls-header-h) + 1.5rem); }
@media (max-width: 899px) { .ls-contactbox { position: static; } }
.ls-contactbox__title { font-size: 1.35rem; margin: 0 0 1rem; }
.ls-contactbox__sub { font-size: 1.05rem; display: flex; align-items: center; gap: 0.5rem; margin: 1.5rem 0 0.5rem; }
.ls-contactlist { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; }
.ls-contactlist li { display: flex; gap: 0.85rem; align-items: flex-start; }
.ls-contactlist .ls-icon { width: 40px; height: 40px; padding: 10px; border-radius: 50%; background: #fff; color: var(--ls-red); }
.ls-contactlist small { display: block; color: var(--ls-muted); font-size: 0.82rem; }
.ls-contactlist a { font-weight: 650; text-decoration: none; color: var(--ls-ink); }
.ls-contactlist a:hover { color: var(--ls-red); text-decoration: underline; }

.ls-hours { margin: 0; display: grid; gap: 0.25rem; font-size: 0.95rem; }
.ls-hours__row { display: flex; justify-content: space-between; gap: 1rem; padding: 0.3rem 0; border-bottom: 1px dashed var(--ls-line); }
.ls-hours dt { font-weight: 600; color: var(--ls-ink); }
.ls-hours dd { margin: 0; font-variant-numeric: tabular-nums; }
.ls-hours__row.is-closed dd { color: var(--ls-muted); }

/* Formular */
.ls-form { display: grid; gap: 1.5rem; }
.ls-form__group { border: 1px solid var(--ls-line); border-radius: var(--ls-radius); padding: clamp(1.1rem, 0.8rem + 1vw, 1.75rem); margin: 0; display: grid; gap: 1.1rem; background: #fff; }
.ls-form__group legend { font-weight: 750; color: var(--ls-ink); font-size: 1.1rem; padding: 0 0.5rem; margin-left: -0.5rem; }
.ls-field { display: grid; gap: 0.4rem; }
.ls-field label { font-weight: 600; color: var(--ls-ink); font-size: 0.97rem; }
.ls-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.1rem; }
.ls-field-row .ls-field--plz { max-width: none; }
.ls-field-row:has(.ls-field--plz) { grid-template-columns: 9rem 1fr; }
@media (max-width: 559px) { .ls-field-row, .ls-field-row:has(.ls-field--plz) { grid-template-columns: 1fr; } }
.ls-req { color: var(--ls-red); }
.ls-opt { font-weight: 400; color: var(--ls-muted); font-size: 0.9rem; }
.ls-form input[type="text"], .ls-form input[type="tel"], .ls-form input[type="email"], .ls-form select, .ls-form textarea {
	width: 100%; font: inherit; font-size: 1rem; color: var(--ls-ink);
	min-height: 50px; padding: 0.7rem 0.9rem; border: 1px solid #c9cdd0; border-radius: 10px; background: #fff;
	transition: border-color .2s, box-shadow .2s;
}
.ls-form textarea { min-height: 130px; resize: vertical; }
.ls-form select { appearance: none; padding-right: 2.5rem; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 10l5 5 5-5' fill='none' stroke='%231d252c' stroke-width='2'/%3E%3C/svg%3E") no-repeat right 0.75rem center / 18px; }
.ls-form input:focus, .ls-form select:focus, .ls-form textarea:focus { outline: none; border-color: var(--ls-ink); box-shadow: 0 0 0 3px rgb(184 10 14 / 22%); }
.ls-form .is-invalid { border-color: var(--ls-red) !important; background-color: #fff8f8; }
.ls-field__error { color: var(--ls-red); font-size: 0.88rem; font-weight: 600; margin: 0; }
.ls-form input[type="file"] { font: inherit; font-size: 0.95rem; padding: 0.75rem; border: 2px dashed #c9cdd0; border-radius: 10px; background: var(--ls-sand); width: 100%; cursor: pointer; }
.ls-hint { font-size: 0.88rem; color: var(--ls-muted); margin: 0; }
.ls-filelist { list-style: none; padding: 0; margin: 0; font-size: 0.9rem; display: grid; gap: 0.25rem; }
.ls-filelist li.is-error { color: var(--ls-red); font-weight: 600; }
.ls-form__privacy { font-size: 0.88rem; color: var(--ls-muted); margin: 0; }
.ls-form__submit { margin: 0; }
.ls-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

.ls-notice { border-radius: var(--ls-radius-sm); padding: 1rem 1.25rem; margin: 0 0 1.5rem; }
.ls-notice p { margin: 0; }
.ls-notice--error { background: #fdeeee; border: 1px solid #f1b9ba; color: #6d0608; }

/* Karte (2-Klick) */
.ls-map { position: relative; width: 100%; min-height: 360px; border-radius: var(--ls-radius); overflow: hidden; background: #e6e8e3; }
@media (min-width: 700px) { .ls-map { min-height: 0; aspect-ratio: 16 / 10; } }
.ls-map::before {
	content: ""; position: absolute; inset: 0; opacity: .55;
	background:
		linear-gradient(90deg, rgb(255 255 255 / 70%) 1px, transparent 1px) 0 0 / 44px 44px,
		linear-gradient(rgb(255 255 255 / 70%) 1px, transparent 1px) 0 0 / 44px 44px,
		linear-gradient(115deg, transparent 47%, #fff 47% 51%, transparent 51%),
		linear-gradient(25deg, transparent 58%, #fff 58% 60.5%, transparent 60.5%);
}
.ls-map__consent {
	position: relative; z-index: 1; height: 100%; display: grid; place-content: center; text-align: center; gap: 0.25rem;
	padding: 1.5rem; max-width: 520px; margin-inline: auto; font-size: 0.95rem;
}
.ls-map__consent p { margin: 0 0 0.5rem; }
.ls-map__title { display: inline-flex; gap: 0.5rem; align-items: center; justify-content: center; font-weight: 750; color: var(--ls-ink); font-size: 1.15rem; }
.ls-map__title .ls-icon { color: var(--ls-red); }
.ls-map__alt { font-size: 0.88rem; }
.ls-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* ---------- Handlungsaufforderung ---------- */
.ls-cta {
	position: relative; overflow: hidden;
	background: var(--ls-ink); color: var(--ls-on-dark-muted);
	padding-block: clamp(3rem, 2rem + 4vw, 5.5rem);
}
.ls-cta { border-top: 4px solid var(--ls-red); }
.ls-cta__inner { position: relative; display: grid; grid-template-columns: minmax(0, 1.2fr) auto; gap: 2rem 3rem; align-items: center; }
.ls-cta__title { color: #fff; margin-bottom: 0.75rem; }
.ls-cta__text p:last-child { margin: 0; max-width: 56ch; }
.ls-cta .ls-cta-buttons { margin: 0; justify-content: flex-end; }
@media (max-width: 899px) {
	.ls-cta__inner { grid-template-columns: 1fr; }
	.ls-cta .ls-cta-buttons { justify-content: flex-start; }
}

/* ---------- Fußbereich ---------- */
.ls-footer { background: var(--ls-ink-3); color: var(--ls-on-dark-muted); font-size: 0.95rem; padding-top: clamp(3rem, 2rem + 3vw, 4.5rem); }
.ls-footer a { color: #fff; text-decoration: none; }
.ls-footer a:hover { color: #ffb3b4; text-decoration: underline; }
.ls-footer__grid { display: grid; grid-template-columns: 1.3fr 1fr 1fr 1fr; gap: 2.5rem; padding-bottom: 3rem; }
.ls-footer__brand .ls-logo img { height: 64px; margin-bottom: 1.25rem; }
.ls-footer__brand p { max-width: 34ch; }
.ls-footer__title { color: #fff; font-size: 1rem; text-transform: uppercase; letter-spacing: 0.1em; margin: 0 0 1rem; }
.ls-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.5rem; }
.ls-footer__contact { margin-top: 1rem !important; }
.ls-footer__contact a { display: inline-flex; gap: 0.5rem; align-items: center; }
.ls-footer .ls-hours__row { border-color: rgb(255 255 255 / 10%); }
.ls-footer .ls-hours dt { color: #fff; }
.ls-footer .ls-hours__row.is-closed dd { color: #8f9aa3; }
.ls-footer__bottom {
	display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 1rem;
	border-top: 1px solid rgb(255 255 255 / 10%); padding-block: 1.5rem; font-size: 0.9rem;
}
.ls-footer__bottom p { margin: 0; }
.ls-footer__legal { display: flex !important; gap: 1.5rem !important; }
@media (max-width: 959px) { .ls-footer__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 559px) { .ls-footer__grid { grid-template-columns: 1fr; } }

/* ---------- Mobile Kontaktleiste ---------- */
.ls-callbar { display: none; }
@media (max-width: 767px) {
	body { padding-bottom: 68px; }
	.ls-callbar {
		position: fixed; inset: auto 0 0 0; z-index: 60;
		display: grid; grid-auto-flow: column; grid-auto-columns: 1fr;
		background: #fff; border-top: 1px solid var(--ls-line); box-shadow: 0 -8px 24px -12px rgb(20 26 31 / 30%);
		padding: 8px 8px calc(8px + env(safe-area-inset-bottom));
		gap: 8px;
	}
	.ls-callbar a {
		display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
		min-height: 52px; border-radius: 12px; text-decoration: none; color: var(--ls-ink);
		font-size: 0.8rem; font-weight: 650; background: var(--ls-sand);
	}
	.ls-callbar a.is-primary { background: var(--ls-red); color: #fff; }
	.ls-callbar .ls-icon { width: 22px; height: 22px; }
}

/* ---------- Sanftes Einblenden (nur mit JS, nur ohne „Bewegung reduzieren“) ---------- */
@media (prefers-reduced-motion: no-preference) {
	.ls-reveal-pending { opacity: 0; transform: translateY(18px); }
	.ls-reveal-in { opacity: 1; transform: none; transition: opacity .6s ease, transform .6s ease; }
}

/* ---------- Sonstiges ---------- */
.ls-linklist { padding-left: 1.25rem; }
.ls-teaser { padding-block: 1rem; border-bottom: 1px solid var(--ls-line); }

@media print {
	.ls-topbar, .ls-header, .ls-cta, .ls-callbar, .ls-sidebar, .ls-map { display: none !important; }
	body { padding: 0; }
}
