html {
-webkit-text-size-adjust: 100%;

overscroll-behavior-x: none;
overflow-x: clip;

scroll-padding-block-start: 96px;

color-scheme: light;

scrollbar-gutter: stable;
}

.ll-sanft {
scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
.ll-sanft { scroll-behavior: auto; }
}

:root {

--ll-kopf-flaeche: var(--wp--preset--color--flaeche);
--ll-kopf-flaeche-gescrollt: color-mix(in srgb, var(--wp--preset--color--flaeche) 86%, transparent);
--ll-kopf-rand: var(--wp--preset--color--rand-leise);

--ll-leiste-flaeche: var(--wp--preset--color--flaeche-ruhig);

--ll-leiste-stand: color-mix(in srgb, var(--wp--preset--color--flaeche) 55%, var(--wp--preset--color--flaeche-ruhig));

--ll-leiste-hoehe: 92px;
--ll-menue-flaeche: var(--wp--preset--color--flaeche);
}

:root :where(.wp-site-blocks) > * {
margin-block: 0;
}

body {
text-rendering: optimizeLegibility;
-webkit-font-smoothing: antialiased;

background: var(--wp--preset--color--flaeche);

position: relative;
}

body::before {
content: "";
position: absolute;
inset: 0;
z-index: 0;
pointer-events: none;
}

body::after {
content: "";
position: fixed;
inset: 0;

z-index: 0;
pointer-events: none;
}

.wp-site-blocks {
position: relative;
z-index: 1;
}

.is-layout-constrained > p,
.is-layout-constrained > ul,
.is-layout-constrained > ol {
max-width: 65ch;
}

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
outline: 2px solid var(--wp--preset--color--aktion);
outline-offset: 2px;
border-radius: var(--wp--custom--radius--sm);
}

button:not(.is-link) {
min-height: 48px;
display: inline-flex;
align-items: center;
justify-content: center;
}

input:where(:not([type="checkbox"]):not([type="radio"])), select, textarea {
font-family: inherit;
font-size: max(1rem, var(--wp--preset--font-size--klein));
min-height: 48px;
padding: var(--wp--preset--spacing--25) var(--wp--preset--spacing--25);
border: 1px solid var(--wp--preset--color--rand);
border-radius: var(--wp--custom--radius--md);
background: var(--wp--preset--color--flaeche-erhaben);
color: var(--wp--preset--color--text);
}

input[type="checkbox"], input[type="radio"] {
inline-size: 1.15rem;
block-size: 1.15rem;
margin: 0;
flex: 0 0 auto;
accent-color: var(--wp--preset--color--aktion);
}

textarea { min-height: 120px; }

label {
display: block;
font-size: var(--wp--preset--font-size--klein);
font-weight: 600;
margin-bottom: var(--wp--preset--spacing--20);
}

.ll-foto,
.ll-hero__buehne .wp-block-image {
position: relative;
filter: saturate(.92) contrast(1.02);
border-radius: var(--wp--custom--radius--lg);
overflow: hidden;
}

.ll-foto::after,
.ll-hero__buehne .wp-block-image::after {
content: "";
position: absolute;
inset: 0;
background: var(--wp--preset--color--akzent-flaeche);
opacity: .10;
mix-blend-mode: multiply;
pointer-events: none;
}

.ll-foto--rund {
border-radius: var(--wp--custom--radius--voll);
max-width: 96px;
}

.ll-status-punkt {
display: inline-block;
inline-size: 10px;
block-size: 10px;
border-radius: var(--wp--custom--radius--voll);
flex: none;
}

.ll-status-punkt--frei     { background: var(--wp--preset--color--status-frei); }
.ll-status-punkt--warteliste { background: var(--wp--preset--color--status-warteliste); }
.ll-status-punkt--anfrage  {
background: transparent;
box-shadow: inset 0 0 0 2px var(--wp--preset--color--status-anfrage);
}

@media (prefers-reduced-motion: no-preference) {

.ll-reveal {
opacity: 0;
transform: translateY(8px);
transition:
opacity var(--wp--custom--tempo--normal) ease-out,
transform var(--wp--custom--tempo--normal) ease-out;
}
.ll-reveal.is-sichtbar { opacity: 1; transform: none; }
.ll-reveal--v2 { transition-delay: 60ms; }
.ll-reveal--v3 { transition-delay: 120ms; }

.ll-schleife path,
.ll-schleife circle {
stroke-dasharray: var(--ll-schleife-laenge, 1);
stroke-dashoffset: var(--ll-schleife-laenge, 1);
transition: stroke-dashoffset var(--wp--custom--tempo--schleife) cubic-bezier(.25, .1, .25, 1);
}
.ll-schleife.is-sichtbar path,
.ll-schleife.is-sichtbar circle { stroke-dashoffset: 0; }

.ll-status-punkt--frei { animation: ll-atmen 3s ease-in-out infinite; }
@keyframes ll-atmen {
0%, 100% { opacity: .6; }
50%      { opacity: 1; }
}
}

@media (prefers-reduced-motion: reduce) {
.ll-reveal { opacity: 1; transform: none; }
.ll-schleife path,
.ll-schleife circle { stroke-dashoffset: 0; }
}

.ll-kontaktleiste {
display: none;
}

@media (max-width: 689px) {
.ll-kontaktleiste {
position: fixed;
inset-inline: 0;
inset-block-end: 0;
z-index: 70;
display: block;
border-block-start: 1px solid var(--wp--preset--color--rand);
background: var(--ll-leiste-flaeche);
padding-block-end: env(safe-area-inset-bottom, 0px);
}

.ll-leiste-bereit .ll-kontaktleiste {
transform: translateY(var(--ll-leiste-versatz, 100%));
}

@media (scripting: enabled) {
body:has(.ll-hero) .ll-kontaktleiste {
transform: translateY(var(--ll-leiste-versatz, 100%));
}
}

body:has(.ll-kontaktleiste) {
padding-block-end: calc(var(--ll-leiste-hoehe) + env(safe-area-inset-bottom, 0px));
}

body:has(input[type="text"]:focus) .ll-kontaktleiste,
body:has(input[type="tel"]:focus) .ll-kontaktleiste,
body:has(input[type="email"]:focus) .ll-kontaktleiste,
body:has(input[type="search"]:focus) .ll-kontaktleiste,
body:has(input[type="number"]:focus) .ll-kontaktleiste,
body:has(input[type="url"]:focus) .ll-kontaktleiste,
body:has(textarea:focus) .ll-kontaktleiste,
body:has(dialog[open]) .ll-kontaktleiste {
display: none;
}
}

.ll-kontaktleiste__stand {
justify-content: center;
gap: var(--wp--preset--spacing--20);
min-block-size: 26px;
padding-inline: var(--wp--preset--spacing--30);
border-block-end: 1px solid var(--wp--preset--color--rand);
background: var(--ll-leiste-stand);

font-size: var(--wp--preset--font-size--eyebrow);
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}

.ll-kontaktleiste__wege {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));

gap: var(--wp--preset--spacing--25);
padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--30);
}

.ll-kontaktleiste__weg {
display: flex;
align-items: center;
justify-content: center;
gap: var(--wp--preset--spacing--20);
min-block-size: 48px;
border-radius: var(--wp--custom--radius--md);
box-shadow: inset 0 0 0 1px var(--wp--preset--color--aktion);
text-decoration: none;
color: var(--wp--preset--color--text);
font-size: var(--wp--preset--font-size--klein);
font-weight: 500;
}

.ll-kontaktleiste.ist-offen .ll-kontaktleiste__weg--anruf,
.ll-kontaktleiste:not(.ist-offen) .ll-kontaktleiste__weg--schreiben {
background: var(--wp--preset--color--aktion);
box-shadow: none;
color: var(--wp--preset--color--aktion-kontrast);
font-weight: 600;
}

@media (prefers-reduced-motion: no-preference) {

.ll-kontaktleiste__weg {
transition:
background var(--wp--custom--tempo--normal) ease-out,
color var(--wp--custom--tempo--normal) ease-out;
}
}

@media print {

body::after {
background: none;
opacity: 0;
mix-blend-mode: normal;
}

.ll-kontaktleiste,
.wp-block-navigation { display: none; }
}

.ll-knopf,
.wp-block-button__link {
box-sizing: border-box;
display: inline-flex;
align-items: center;
justify-content: center;
gap: var(--wp--preset--spacing--25);
min-block-size: 56px;
padding-inline: var(--wp--preset--spacing--40);
border: 0;
border-radius: var(--wp--custom--radius--md);
font-family: inherit;
font-size: var(--wp--preset--font-size--fliesstext);
font-weight: 600;
line-height: 1.2;
text-align: center;
text-decoration: none;
cursor: pointer;
}

.ll-knopf svg { flex: none; }

@media (prefers-reduced-motion: no-preference) {
.ll-knopf,
.wp-block-button__link {
transition:
background-color var(--wp--custom--tempo--schnell) ease-out,
color var(--wp--custom--tempo--schnell) ease-out;
}
}

.ll-knopf--primaer,
.wp-block-button:not([class*="is-style-"]) .wp-block-button__link {
background: var(--wp--preset--color--aktion);
color: var(--wp--preset--color--aktion-kontrast);
}

.ll-knopf--primaer:hover,
.ll-knopf--primaer:active,
.ll-knopf--primaer:focus-visible,
.wp-block-button:not([class*="is-style-"]) .wp-block-button__link:hover,
.wp-block-button:not([class*="is-style-"]) .wp-block-button__link:active,
.wp-block-button:not([class*="is-style-"]) .wp-block-button__link:focus-visible {
background: var(--wp--preset--color--aktion-aktiv);
color: var(--wp--preset--color--aktion-kontrast);
}

.ll-knopf--hell,
.is-style-hell .wp-block-button__link {
background: var(--wp--preset--color--flaeche-erhaben);
color: var(--wp--preset--color--text);
}

.ll-knopf--hell:hover,
.ll-knopf--hell:active,
.ll-knopf--hell:focus-visible,
.is-style-hell .wp-block-button__link:hover,
.is-style-hell .wp-block-button__link:active,
.is-style-hell .wp-block-button__link:focus-visible {
background: var(--wp--preset--color--aktion-warm);
color: var(--wp--preset--color--text-auf-dunkel);
}

.is-style-umriss .wp-block-button__link {
background: none;
color: var(--wp--preset--color--text);
box-shadow: inset 0 0 0 1px var(--wp--preset--color--aktion);
font-weight: 500;
}

.is-style-umriss .wp-block-button__link:hover,
.is-style-umriss .wp-block-button__link:active,
.is-style-umriss .wp-block-button__link:focus-visible {
background: var(--wp--preset--color--aktion-zart);
color: var(--wp--preset--color--text);
}

.ll-knopf--text,
.is-style-text .wp-block-button__link {
min-block-size: 48px;
padding-inline: 0;
background: none;
color: var(--wp--preset--color--aktion);
font-weight: 500;
gap: var(--wp--preset--spacing--15);
}

.ll-knopf--text:hover,
.ll-knopf--text:active,
.ll-knopf--text:focus-visible,
.is-style-text .wp-block-button__link:hover,
.is-style-text .wp-block-button__link:active,
.is-style-text .wp-block-button__link:focus-visible {
color: var(--wp--preset--color--akzent-text);
text-decoration: underline;
text-underline-offset: 4px;
text-decoration-thickness: 1px;
}

.ll-knopf--text .ll-zeichen { color: inherit; }

@media (prefers-reduced-motion: no-preference) {
.ll-knopf .ll-zeichen { transition: transform var(--wp--custom--tempo--schnell) ease-out; }
.ll-knopf:hover .ll-zeichen--schraeg, .ll-knopf:active .ll-zeichen--schraeg { transform: translate(2px, -2px); }
}

@media (max-width: 689px) {
.ll-knopf--primaer,
.ll-knopf--hell,
.wp-block-button:not([class*="is-style-"]) .wp-block-button__link,
.is-style-hell .wp-block-button__link {
inline-size: 100%;
}
}

:where(p, li, dd, figcaption) {
text-wrap: var(--wp--custom--umbruch--text);
}

:where(h1, h2, h3, h4) {
-webkit-hyphens: auto;
hyphens: auto;
overflow-wrap: break-word;
}

:where(h1, h2, h3, h4) em {
font-style: italic;
font-weight: inherit;
}
