/* ==========================================================================
   ORFO Website – Stylesheet 2026
   Grundlage: ORFO Stylesheet 2022-08-25 (Poppins, Grün #AAC341, Gelb #F9BE37,
   Dunkelgrau #3A3C3C, Hellgrau #D9D9D9) + Bereichsfarben der Website.
   Breakpoints: 640 / 900 / 1180 / 1680
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Tokens
   -------------------------------------------------------------------------- */
:root {
    /* Marke */
    --c-green: #AAC341;
    --c-yellow: #F9BE37;
    --c-orange: #EFA65D;
    --c-red: #ED8F70;
    --c-blue: #95B1BA;
    --c-dark: #3A3C3C;
    --c-gray: #BFC4C1;
    --c-light: #D9D9D9;
    --c-surface: #F6F7F4;
    --c-white: #FFFFFF;
    --c-error: #BE1C1C;
    --c-success: #5E8F1F;

    /* Bereichsfarbe: wird per <body style="--area-color"> gesetzt (Seitenbaum) */
    --area-color: var(--c-green);
    --accent: var(--area-color);

    /* Text */
    --text: var(--c-dark);
    --text-muted: #6B6E6E;
    --text-on-color: var(--c-dark); /* WCAG AA: dunkle Schrift auf allen Markenfarben */

    /* Typografie */
    --font: "Poppins", "Segoe UI", Arial, sans-serif;
    --fs-xs: 0.75rem;
    --fs-sm: 0.875rem;
    --fs-base: clamp(1rem, 0.95rem + 0.25vw, 1.125rem);
    --fs-lead: clamp(1.125rem, 1.05rem + 0.4vw, 1.375rem);
    --fs-h3: clamp(1.125rem, 1.05rem + 0.45vw, 1.375rem);
    --fs-h2: clamp(1.625rem, 1.3rem + 1.3vw, 2.5rem);
    --fs-h1: clamp(2rem, 1.5rem + 2.3vw, 3.5rem);
    --fs-display: clamp(3rem, 2rem + 6vw, 7rem);
    --lh: 1.65;
    --lh-tight: 1.2;
    --user-scale: 1;

    /* Abstände */
    --space-1: 0.25rem;
    --space-2: 0.5rem;
    --space-3: 1rem;
    --space-4: 1.5rem;
    --space-5: 2rem;
    --space-6: 3rem;
    --space-7: 4.5rem;
    --space-8: 6rem;
    --section-gap: clamp(3rem, 2rem + 5vw, 7rem);
    --block-gap: clamp(1.5rem, 1rem + 2vw, 3rem);

    /* Layout */
    --page-max: 1680px;
    --content-max: 1180px;
    --narrow-max: 820px;
    --gutter: clamp(1.25rem, 0.5rem + 4vw, 6rem);
    --nav-height: 5.25rem;
    --radius: 12px;
    --radius-lg: 20px;
    --radius-xl: 24px;
    --shadow: 0 18px 40px rgba(58, 60, 60, 0.12);
    --shadow-sm: 0 2px 8px rgba(58, 60, 60, 0.08);
    --line: #E6E8E4;
    --c-green-text: #66771D;
    --accent-text: var(--c-green-text);
    --tint: #F2F6E0;
    --ease: cubic-bezier(0.22, 1, 0.36, 1);
    --dur: 0.35s;
}

@media (max-width: 899px) {
    :root { --nav-height: 4rem; }
}
/* Bereichs-Tönungen und lesbare Akzentfarbe (Text auf Weiß) je Bereich */
body[data-area="home"], body[data-area="orfo"] { --tint: #F2F6E0; --accent-text: #66771D; }
body[data-area="solutions"] { --tint: #FCEEE9; --accent-text: #A84F31; }
body[data-area="concepts"] { --tint: #FBF1E6; --accent-text: #9A5F19; }
body[data-area="consulting"] { --tint: #FEF5DD; --accent-text: #8A6610; }
body[data-area="contact"] { --tint: #EEF3F5; --accent-text: #54717B; }

/* Farbvarianten: .bg-<farbe> auf Sektionen, Kacheln, Blasen */
.bg-green { --accent: var(--c-green); --bg: var(--c-green); --text-on-color: var(--c-dark); }
.bg-yellow { --accent: var(--c-yellow); --bg: var(--c-yellow); --text-on-color: var(--c-dark); }
.bg-orange { --accent: var(--c-orange); --bg: var(--c-orange); --text-on-color: var(--c-dark); }
.bg-red { --accent: var(--c-red); --bg: var(--c-red); --text-on-color: var(--c-dark); }
.bg-blue { --accent: var(--c-blue); --bg: var(--c-blue); --text-on-color: var(--c-dark); }
.bg-lightgray { --accent: var(--area-color); --bg: var(--c-surface); --text-on-color: var(--c-dark); }
.bg-white { --bg: var(--c-white); --text-on-color: var(--c-dark); }

/* --------------------------------------------------------------------------
   2. Basis
   -------------------------------------------------------------------------- */
@font-face {
    font-family: "Poppins";
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url("../Fonts/Poppins-Regular.woff2") format("woff2"), url("../Fonts/Poppins-Regular.woff") format("woff");
}
@font-face {
    font-family: "Poppins";
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url("../Fonts/Poppins-SemiBold.woff2") format("woff2"), url("../Fonts/Poppins-SemiBold.woff") format("woff");
}

*, *::before, *::after { box-sizing: border-box; }
html {
    font-size: calc(100% * var(--user-scale));
    -webkit-text-size-adjust: 100%;
    scroll-behavior: smooth;
    scroll-padding-top: calc(var(--nav-height) + 1rem);
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}
body {
    margin: 0;
    font-family: var(--font);
    font-size: var(--fs-base);
    line-height: var(--lh);
    color: var(--text);
    background: var(--c-white);
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
}
body.is-locked { overflow: hidden; }

img, svg, video { display: block; max-width: 100%; height: auto; }
picture { display: contents; }
figure { margin: 0; }
address { font-style: normal; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 0.15em; }
a:hover { text-decoration-color: var(--accent); }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
ul, ol { margin: 0; padding: 0; }
p { margin: 0 0 1em; }
p:last-child { margin-bottom: 0; }
strong, b { font-weight: 600; }
hr { border: 0; border-top: 1px solid var(--c-light); margin: var(--space-5) 0; }
table { border-collapse: collapse; width: 100%; font-size: var(--fs-sm); }
th, td { text-align: left; padding: 0.6em 0.8em; border-bottom: 1px solid var(--c-light); vertical-align: top; }
th { font-weight: 600; background: var(--c-surface); }

:focus-visible { outline: 3px solid var(--c-dark); outline-offset: 3px; border-radius: 2px; }
.bg-green :focus-visible, .bg-yellow :focus-visible, .bg-orange :focus-visible, .bg-red :focus-visible, .bg-blue :focus-visible { outline-color: var(--c-dark); }

.visually-hidden {
    position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.skip-link {
    position: absolute; left: var(--space-3); top: -4rem; z-index: 1000;
    background: var(--c-dark); color: var(--c-white); padding: 0.6em 1em; border-radius: var(--radius);
    transition: top 0.2s;
}
.skip-link:focus { top: var(--space-3); }

.icon { width: 1.25em; height: 1.25em; fill: currentColor; flex: none; }
.icon--back { transform: rotate(180deg); }

/* --------------------------------------------------------------------------
   3. Typografie
   -------------------------------------------------------------------------- */
.heading { font-weight: 600; line-height: 1.15; margin: 0 0 0.6em; letter-spacing: -0.015em; text-wrap: balance; overflow-wrap: break-word; hyphens: auto; }
.heading--large { line-height: 1.08; letter-spacing: -0.02em; }
.eyebrow { display: block; font-size: var(--fs-xs); font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--accent-text); margin: 0 0 0.9em; }
.chip { display: inline-flex; align-items: center; gap: 0.5em; height: 2.125rem; padding: 0 0.9em; border-radius: 999px; background: var(--c-surface); font-size: 0.8125rem; font-weight: 600; white-space: nowrap; }
.chip--glass { background: rgba(255,255,255,0.16); color: var(--c-white); backdrop-filter: blur(6px); }
.heading--small { font-size: var(--fs-h3); }
.heading--medium { font-size: clamp(1.25rem, 1.1rem + 0.8vw, 1.75rem); }
.heading--default { font-size: var(--fs-h2); }
.heading--large { font-size: var(--fs-h1); margin-bottom: 0.5em; }
.heading--display { font-size: var(--fs-display); line-height: 1; }
.subheading { font-size: var(--fs-lead); color: var(--text-muted); margin: -0.4em 0 1.2em; }
.text-accent { color: var(--accent); }
.text-lead { font-size: var(--fs-lead); line-height: 1.55; }
.text-small { font-size: var(--fs-sm); }
.text-label { display: inline-block; min-width: 1.6em; font-weight: 600; color: var(--accent-text); }
.text-muted { color: var(--text-muted); }

/* RTE-Inhalte */
.ce h2:not(.heading), .ce h3:not(.heading), .ce h4:not(.heading) { font-weight: 600; line-height: var(--lh-tight); margin: 1.4em 0 0.5em; }
.ce h2:not(.heading) { font-size: var(--fs-h2); }
.ce h3:not(.heading) { font-size: var(--fs-h3); }
.ce h4:not(.heading) { font-size: var(--fs-base); }
.ce ul:not([class]), .ce ol:not([class]) { margin: 0 0 1.2em; padding-left: 1.4em; }
.ce ul:not([class]) li { padding-left: 0.3em; margin-bottom: 0.35em; }
.ce ul:not([class]) li::marker { color: var(--accent-text); content: "• "; }
.ce ol:not([class]) li::marker { color: var(--accent-text); font-weight: 600; }
.ce-bodytext, .textpic__text, .steps__intro, .accordion-ce__intro, .facts__intro, .topics__intro, .cardslider__intro, .team__intro, .locations__intro { max-width: 68ch; }

/* Buttons und Links */
.button, .btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 0.6em;
    min-height: 3rem; padding: 0 1.5em; border-radius: 999px;
    border: 2px solid var(--c-dark); background: transparent;
    font-weight: 600; font-size: 0.9375rem; line-height: 1.2;
    color: var(--c-dark); text-decoration: none; cursor: pointer;
    transition: transform var(--dur) var(--ease), background-color var(--dur), color var(--dur), border-color var(--dur), box-shadow var(--dur);
}
.button:hover, .button:focus-visible, .btn:hover { transform: translateY(-2px); background: var(--c-dark); color: var(--c-white); }
.button--primary, .btn-primary { background: var(--c-green); border-color: var(--c-green); color: #2E3030; }
.button--primary:hover, .button--primary:focus-visible, .btn-primary:hover { background: #9BB434; border-color: #9BB434; color: #2E3030; }
.button--dark { background: var(--c-dark); border-color: var(--c-dark); color: var(--c-white); }
.button--dark:hover, .button--dark:focus-visible { background: #2A2C2C; border-color: #2A2C2C; color: var(--c-white); }
.button--ghost { background: transparent; }
.button--light { border-color: currentColor; color: inherit; }
.button--light:hover, .button--light:focus-visible { background: var(--c-dark); color: var(--c-white); border-color: var(--c-dark); }
.button--small { min-height: 2.625rem; padding: 0 1.1em; font-size: 0.875rem; }
.button .icon { width: 1.1em; height: 1.1em; }
p + .button, .ce__inner > .button { margin-top: var(--space-4); }
.bg-orange .button:not(.button--dark):not(.button--primary):not(.contactcard__actions *), .bg-red .button:not(.button--dark):not(.button--primary):not(.contactcard__actions *), .bg-blue .button:not(.button--dark):not(.button--primary):not(.contactcard__actions *) { border-color: var(--c-dark); color: var(--c-dark); }
.bg-orange .button:not(.button--dark):not(.button--primary):not(.contactcard__actions *):hover, .bg-red .button:not(.button--dark):not(.button--primary):not(.contactcard__actions *):hover, .bg-blue .button:not(.button--dark):not(.button--primary):not(.contactcard__actions *):hover { background: var(--c-white); color: var(--c-dark); }

.link--arrow {
    display: inline-flex; align-items: center; gap: 0.6em; font-weight: 600; text-decoration: none;
    font-size: 0.9375rem; margin-top: var(--space-3);
}
.link--arrow::after {
    content: ""; width: 1.625em; height: 1.625em; border-radius: 50%; background: var(--accent);
    -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='black' d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm-1.3 6.3 3.7 3.7-3.7 3.7-1.4-1.4 2.3-2.3-2.3-2.3z'/></svg>") center/contain no-repeat;
    mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='black' d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm-1.3 6.3 3.7 3.7-3.7 3.7-1.4-1.4 2.3-2.3-2.3-2.3z'/></svg>") center/contain no-repeat;
    transition: transform var(--dur) var(--ease);
}
.link--arrow:hover::after { transform: translateX(4px); }

/* --------------------------------------------------------------------------
   4. Seitenraster
   -------------------------------------------------------------------------- */
.page { max-width: var(--page-max); margin: 0 auto; min-height: 100vh; display: flex; flex-direction: column; }
.page__main { flex: 1; padding-top: var(--nav-height); }
.ce { position: relative; margin: 0 0 var(--section-gap); }
.ce:first-child { margin-top: 0; }
.ce__inner { max-width: var(--content-max); margin: 0 auto; padding: 0 var(--gutter); }
.ce--compact .ce__inner { max-width: var(--narrow-max); }
.ce--wide .ce__inner { max-width: none; }
.ce--centered .ce__inner { text-align: center; }
.ce--centered .button, .ce--centered .link--arrow { margin-left: auto; margin-right: auto; }
.ce.bg-green, .ce.bg-yellow, .ce.bg-orange, .ce.bg-red, .ce.bg-blue, .ce.bg-lightgray {
    background: var(--bg); color: var(--text-on-color);
    padding: var(--section-gap) 0;
}
.ce.bg-green .eyebrow, .ce.bg-yellow .eyebrow, .ce.bg-orange .eyebrow, .ce.bg-red .eyebrow, .ce.bg-blue .eyebrow { color: inherit; opacity: 0.85; }
.ce__anchor { position: relative; top: calc(-1 * var(--nav-height) - 1rem); display: block; height: 0; }
.space-before-small { margin-top: var(--space-4); }
.space-before-medium { margin-top: var(--space-6); }
.space-before-large { margin-top: var(--space-8); }
.space-after-small { margin-bottom: var(--space-4); }
.space-after-medium { margin-bottom: var(--space-6); }
.space-after-large { margin-bottom: var(--space-8); }
.ce--layout-20 .ce__inner { background: var(--tint); border-radius: var(--radius-xl); padding-top: var(--block-gap); padding-bottom: var(--block-gap); }

/* --------------------------------------------------------------------------
   5. Navigation (Polish 2026: eine Zeile, Aktionen rechts, dunkles Overlay)
   -------------------------------------------------------------------------- */
.nav {
    position: fixed; top: 0; left: 0; right: 0; z-index: 100;
    background: rgba(255, 255, 255, 0.92); backdrop-filter: saturate(1.3) blur(12px); -webkit-backdrop-filter: saturate(1.3) blur(12px);
    border-bottom: 1px solid transparent; transition: box-shadow var(--dur), border-color var(--dur);
}
.nav.is-scrolled { box-shadow: var(--shadow-sm); border-bottom-color: var(--line); }
.nav__bar {
    max-width: var(--page-max); margin: 0 auto; height: var(--nav-height);
    padding: 0 var(--gutter); display: flex; align-items: center; gap: var(--space-5);
}
.nav__logo { display: block; flex: none; }
.nav__logo .logo { height: clamp(2.4rem, 1.8rem + 1.6vw, 3.4rem); width: auto; display: block; }
.nav__main { margin-left: auto; }
.nav__main > ul { display: flex; gap: clamp(0.25rem, 0.5vw, 0.75rem); list-style: none; }
.nav__item { position: relative; }
.nav__link {
    display: block; padding: 0.55em 0.9em; font-size: var(--fs-sm); font-weight: 600; text-decoration: none; color: var(--c-dark);
    border-radius: 999px; transition: background-color var(--dur), color var(--dur);
}
.nav__item:hover > .nav__link, .nav__item:focus-within > .nav__link { background: var(--c-surface); }
.nav__item.is-active > .nav__link { background: var(--tint); color: var(--accent-text); }
.nav__sub {
    position: absolute; left: 50%; top: calc(100% + 0.5rem); transform: translate(-50%, 0.5rem);
    min-width: 17rem; background: var(--c-white); border-radius: var(--radius-lg); box-shadow: var(--shadow); border: 1px solid var(--line);
    padding: var(--space-2); opacity: 0; visibility: hidden; transition: opacity var(--dur), transform var(--dur), visibility var(--dur);
}
.nav__sub::before { content: ""; position: absolute; left: 0; right: 0; top: -0.75rem; height: 0.75rem; }
.nav__item:hover .nav__sub, .nav__item:focus-within .nav__sub { opacity: 1; visibility: visible; transform: translate(-50%, 0); }
.nav__sub ul { list-style: none; }
.nav__sub a { display: block; padding: 0.55em 0.9em; font-size: var(--fs-sm); text-decoration: none; border-radius: var(--radius); }
.nav__sub a:hover, .nav__sub a[aria-current] { background: var(--c-surface); color: var(--c-dark); }
.nav__sub-overview a { font-weight: 600; color: var(--item-color, var(--accent-text)); }
.nav__actions { display: flex; align-items: center; gap: var(--space-2); flex: none; }
.nav__main + .nav__actions { margin-left: var(--space-3); }
.nav__iconbtn, .nav__toggle { width: 2.75rem; height: 2.75rem; display: grid; place-items: center; border-radius: 50%; border: 1px solid var(--line); background: var(--c-white); color: var(--c-dark); transition: background-color var(--dur), border-color var(--dur); }
.nav__iconbtn .icon, .nav__toggle .icon { width: 1.3em; height: 1.3em; }
.nav__iconbtn:hover, .nav__toggle:hover { background: var(--c-surface); border-color: var(--c-gray); }
.nav__contact { white-space: nowrap; }
.nav__toggle { display: none; }
@media (max-width: 1179px) {
    .nav__main { display: none; }
    .nav__actions { margin-left: auto; }
    .nav__toggle { display: grid; }
}
@media (max-width: 639px) {
    .nav__contact { display: none; }
}

/* Overlay-Navigation (dunkel) */
.nav-overlay {
    position: fixed; inset: 0; z-index: 200; background: var(--c-dark); color: var(--c-white); overflow-y: auto;
    display: grid; grid-template-rows: auto 1fr;
}
.nav-overlay[hidden] { display: none; }
.nav-overlay a { color: inherit; }
.nav-overlay__header { display: flex; align-items: center; justify-content: space-between; height: var(--nav-height); padding: 0 var(--gutter); max-width: var(--page-max); margin: 0 auto; width: 100%; }
.nav-overlay__logo .logo { height: clamp(2.4rem, 1.8rem + 1.6vw, 3.4rem); width: auto; display: block; }
.nav-overlay__close { width: 2.75rem; height: 2.75rem; border-radius: 50%; border: 1px solid rgba(255,255,255,0.35); display: grid; place-items: center; color: var(--c-white); }
.nav-overlay__close:hover { background: var(--c-white); color: var(--c-dark); }
.nav-overlay__close .icon { width: 1.2em; height: 1.2em; }
.nav-overlay__body { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: var(--space-8); padding: var(--space-6) var(--gutter) var(--space-8); max-width: var(--page-max); margin: 0 auto; width: 100%; }
.nav-overlay__menu > ul { list-style: none; display: grid; }
.nav-overlay__item { border-bottom: 1px solid rgba(255,255,255,0.14); padding: var(--space-3) 0; }
.nav-overlay__item-head { display: flex; align-items: center; gap: var(--space-3); }
.nav-overlay__link { text-decoration: none; flex: 1; display: grid; gap: 0.15em; min-width: 0; }
.nav-overlay__title { font-size: clamp(1.5rem, 1.2rem + 1.4vw, 2.5rem); font-weight: 600; line-height: 1.15; transition: color var(--dur); }
.nav-overlay__link:hover .nav-overlay__title, .nav-overlay__item.is-active .nav-overlay__title { color: var(--item-color, var(--c-green)); }
.nav-overlay__sub-title { font-size: var(--fs-sm); color: rgba(255,255,255,0.65); }
.nav-overlay__dot { width: 0.85rem; height: 0.85rem; border-radius: 50%; background: var(--item-color, var(--c-green)); flex: none; }
.nav-overlay__expand { width: 2.5rem; height: 2.5rem; border-radius: 50%; border: 1px solid rgba(255,255,255,0.35); display: grid; place-items: center; color: var(--c-white); flex: none; transition: transform var(--dur), background-color var(--dur), border-color var(--dur); }
.nav-overlay__expand .icon { width: 1.1em; height: 1.1em; fill: currentColor; }
.nav-overlay__expand:hover { background: var(--item-color, var(--c-green)); border-color: var(--item-color, var(--c-green)); color: var(--c-dark); }
.nav-overlay__expand[aria-expanded="true"] { transform: rotate(45deg); }
.nav-overlay__sub { list-style: none; display: none; padding: var(--space-3) 0 var(--space-2) 0; }
.nav-overlay__item.is-open .nav-overlay__sub { display: grid; gap: 0.35em; }
.nav-overlay__sub a { text-decoration: none; font-size: var(--fs-base); color: rgba(255,255,255,0.8); display: inline-flex; align-items: center; gap: 0.6em; }
.nav-overlay__sub a::before { content: ""; width: 0.4rem; height: 0.4rem; border-radius: 50%; background: var(--item-color, var(--c-green)); opacity: 0.8; }
.nav-overlay__sub a:hover { color: var(--c-white); }
.nav-overlay__aside { display: grid; align-content: start; gap: var(--space-5); }
.nav-overlay__bubble { display: none; width: min(100%, 380px); aspect-ratio: 1; border-radius: 50%; overflow: hidden; border: 8px solid var(--item-color, var(--c-green)); margin-left: auto; }
.nav-overlay__bubble.is-active { display: block; }
.nav-overlay__bubble-img { width: 100%; height: 100%; object-fit: cover; }
.nav-overlay__search { display: flex; gap: var(--space-2); background: rgba(255,255,255,0.08); border: 1px solid rgba(255,255,255,0.2); border-radius: 999px; padding: 0.3rem 0.3rem 0.3rem 1.25rem; }
.nav-overlay__search input { flex: 1; border: 0; background: none; color: var(--c-white); font: inherit; min-width: 0; padding: 0.5em 0; }
.nav-overlay__search input::placeholder { color: rgba(255,255,255,0.55); }
.nav-overlay__search input:focus { outline: none; }
.nav-overlay__search .button { min-height: 2.6rem; padding: 0 1.2em; }
.nav-overlay__service, .nav-overlay__legal { list-style: none; display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-4); font-size: var(--fs-sm); }
.nav-overlay__service { margin-top: var(--space-5); }
.nav-overlay__service a { text-decoration: none; font-weight: 600; color: rgba(255,255,255,0.85); }
.nav-overlay__service a:hover { color: var(--c-green); }
.nav-overlay__legal a { text-decoration: none; color: rgba(255,255,255,0.55); }
.nav-overlay__legal a:hover { color: var(--c-white); }
.nav-overlay__contact { display: grid; gap: 0.25em; }
.nav-overlay__phone { display: inline-flex; align-items: center; gap: 0.5em; font-size: var(--fs-h3); font-weight: 600; text-decoration: none; }
.nav-overlay__phone .icon { width: 1.1em; height: 1.1em; fill: currentColor; color: var(--c-green); }
.nav-overlay__phone:hover { color: var(--c-green); }
.nav-overlay__hours { font-size: var(--fs-sm); color: rgba(255,255,255,0.65); }
.nav-overlay .socials a { border: 1px solid rgba(255,255,255,0.25); }
.nav-overlay .socials a:hover { background: var(--c-green); border-color: var(--c-green); }
@media (max-width: 899px) {
    .nav-overlay__body { grid-template-columns: 1fr; gap: var(--space-6); padding-bottom: calc(var(--space-8) + 4rem); }
    .nav-overlay__bubble { display: none !important; }
}

/* Mobile Aktionsleiste */
.actionbar { display: none; }
@media (max-width: 899px) {
    .actionbar {
        position: fixed; left: 0; right: 0; bottom: 0; z-index: 140;
        display: grid; grid-template-columns: 1fr 1fr 1.3fr; gap: 0.4rem; padding: 0.5rem 0.75rem calc(0.5rem + env(safe-area-inset-bottom));
        background: rgba(255,255,255,0.94); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-top: 1px solid var(--line);
    }
    .actionbar__item { display: inline-flex; align-items: center; justify-content: center; gap: 0.45em; min-height: 2.9rem; border-radius: 999px; background: var(--c-surface); color: var(--c-dark); font-size: var(--fs-sm); font-weight: 600; text-decoration: none; }
    .actionbar__item .icon { width: 1.15em; height: 1.15em; fill: currentColor; }
    .actionbar__item--main .icon { fill: none; stroke: currentColor; }
    .actionbar__item--main { background: var(--c-green); color: #2E3030; }
    .drawer-toggle { display: none; }
    body { padding-bottom: calc(3.9rem + env(safe-area-inset-bottom)); }
    .footer { padding-bottom: 0; }
}

/* Socials (SVGs sind Kreis-Icons mit Kontur) */
.socials { list-style: none; display: flex; gap: var(--space-3); }
.socials a { display: block; width: 2.5rem; height: 2.5rem; border-radius: 50%; transition: transform var(--dur), background-color var(--dur); }
.socials a:hover { transform: translateY(-2px); background: var(--c-green); }
.socials .icon { width: 2.5rem; height: 2.5rem; fill: none; }

/* --------------------------------------------------------------------------
   6. Seitenkopf, Breadcrumb, Seitennavigation (Polish 2026)
   -------------------------------------------------------------------------- */
.ce-orfo_pageheader { margin-bottom: var(--section-gap); position: relative; }
.pageheader__media { position: relative; width: 100%; height: clamp(18rem, 58vh, 40rem); overflow: hidden; background: var(--c-surface); }
.pageheader__img { width: 100%; height: 100%; object-fit: cover; }
.pageheader__media::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 45%; background: linear-gradient(to bottom, rgba(255,255,255,0), rgba(255,255,255,0.75) 60%, #fff); pointer-events: none; }
@media (max-width: 639px) { .pageheader__media { height: clamp(14rem, 48vh, 24rem); } }
.breadcrumb { font-size: var(--fs-xs); color: var(--text-muted); margin-bottom: var(--space-4); }
.breadcrumb ol { list-style: none; display: flex; flex-wrap: wrap; gap: 0.5em; align-items: center; }
.breadcrumb li + li::before { content: "/"; margin-right: 0.5em; color: var(--c-gray); }
.breadcrumb a { text-decoration: none; }
.breadcrumb a:hover { color: var(--c-dark); }
.breadcrumb [aria-current] { color: var(--c-dark); font-weight: 600; }
.pageheader__body { position: relative; z-index: 2; max-width: var(--content-max); margin: var(--space-6) auto 0; padding: 0 var(--gutter); display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--block-gap); }
.pageheader__body--overlap { margin-top: clamp(-3rem, -6vw, -7rem); }
.pageheader__eyebrow { color: var(--accent-text); margin-bottom: var(--space-2); }
.pageheader__content .heading--large { margin-top: 0; max-width: 20ch; text-wrap: balance; }
.pageheader__intro { max-width: 60ch; margin-top: var(--space-4); }
.pageheader__meta { list-style: none; display: flex; flex-wrap: wrap; gap: var(--space-2); margin-top: var(--space-4); }
.pageheader__side { order: 2; }
.pageheader__toc { background: var(--c-white); border: 1px solid var(--line); box-shadow: var(--shadow-sm); border-radius: var(--radius-lg); padding: var(--space-4); align-self: start; }
.pageheader__toc[hidden] { display: none; }
.pageheader__toc-title { margin-bottom: var(--space-3); color: var(--accent-text); }
.pageheader__toc ul { list-style: none; display: grid; gap: 0.1em; border-left: 2px solid var(--line); }
.pageheader__toc a { text-decoration: none; font-size: var(--fs-sm); display: block; padding: 0.45em 0 0.45em 1em; margin-left: -2px; border-left: 2px solid transparent; color: var(--text-muted); transition: color var(--dur), border-color var(--dur); }
.pageheader__toc a:hover, .pageheader__toc a.is-current { color: var(--c-dark); border-left-color: var(--accent); }
.pageheader__toc-cta { margin-top: var(--space-4); padding-top: var(--space-4); border-top: 1px solid var(--line); display: grid; gap: var(--space-2); font-size: var(--fs-sm); font-weight: 600; }
.pageheader__toc-cta .button { justify-self: start; }
@media (min-width: 900px) {
    .pageheader__body { grid-template-columns: 16rem minmax(0, 1fr); gap: var(--space-7); }
    .pageheader__side { order: 0; }
    .pageheader__toc { position: sticky; top: calc(var(--nav-height) + 1.25rem); }
    .pageheader__body:has(.pageheader__toc[hidden]) { grid-template-columns: minmax(0, 1fr); }
    .pageheader__body:has(.pageheader__toc[hidden]) .pageheader__side { display: none; }
}

/* Schnellzugriff (Kontaktseite) */
.quicklinks { display: grid; gap: var(--space-2); margin-top: var(--space-5); max-width: 40rem; }
.quicklinks__item { display: grid; grid-template-columns: 3rem minmax(0, 1fr) auto; align-items: center; gap: var(--space-3); padding: var(--space-3) var(--space-4); border-radius: var(--radius-lg); border: 1px solid var(--line); background: var(--c-white); text-decoration: none; color: var(--c-dark); transition: transform var(--dur) var(--ease), box-shadow var(--dur), border-color var(--dur); }
.quicklinks__item:hover { transform: translateY(-2px); box-shadow: var(--shadow); border-color: transparent; }
.quicklinks__item--dark { background: var(--c-dark); color: var(--c-white); border-color: var(--c-dark); }
.quicklinks__icon { width: 3rem; height: 3rem; border-radius: 50%; background: var(--tint); color: var(--accent-text); display: grid; place-items: center; }
.quicklinks__item--dark .quicklinks__icon { background: rgba(255,255,255,0.12); color: var(--c-green); }
.quicklinks__icon .icon { width: 1.3rem; height: 1.3rem; fill: currentColor; }
.quicklinks__text { display: grid; gap: 0.1em; min-width: 0; }
.quicklinks__text strong { font-weight: 600; }
.quicklinks__text small { font-size: var(--fs-xs); color: var(--text-muted); }
.quicklinks__item--dark .quicklinks__text small { color: rgba(255,255,255,0.65); }
.quicklinks__arrow { width: 1.1rem; height: 1.1rem; fill: currentColor; opacity: 0.6; transition: transform var(--dur), opacity var(--dur); }
.quicklinks__item:hover .quicklinks__arrow { transform: translateX(3px); opacity: 1; }

/* --------------------------------------------------------------------------
   7. Hero (Startseite, Polish 2026)
   -------------------------------------------------------------------------- */
.ce-orfo_hero { margin-top: calc(-1 * var(--nav-height)); }
.page__main > .ce-orfo_hero:first-child { margin-top: 0; }
.hero { position: relative; background: var(--c-dark); color: var(--c-white); overflow: hidden; }
.hero__track { list-style: none; display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
.hero__track::-webkit-scrollbar { display: none; }
.hero__slide { position: relative; flex: 0 0 100%; scroll-snap-align: start; aspect-ratio: 16 / 8; max-height: 86vh; min-height: 34rem; }
.hero__img { width: 100%; height: 100%; object-fit: cover; }
.hero__slide::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(20,22,22,0.78), rgba(20,22,22,0.25) 45%, rgba(20,22,22,0.05) 70%), linear-gradient(to right, rgba(20,22,22,0.35), transparent 60%); }
.hero__caption { position: absolute; left: 0; right: 0; bottom: clamp(5.5rem, 12vh, 9rem); z-index: 2; padding: 0 var(--gutter); display: grid; justify-items: start; gap: var(--space-4); max-width: var(--page-max); margin: 0 auto; }
.hero__title { color: var(--c-white); margin: 0; max-width: 16ch; text-shadow: 0 2px 16px rgba(0,0,0,0.3); }
.hero__title-text { display: block; font-size: var(--fs-lead); font-weight: 400; line-height: 1.4; margin-top: 0.5em; max-width: 34rem; opacity: 0.92; }
.hero__actions { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.hero__footer { position: absolute; left: 0; right: 0; bottom: 0; z-index: 3; display: flex; justify-content: space-between; align-items: flex-end; gap: var(--space-4); padding: 0 var(--gutter) var(--space-5); max-width: var(--page-max); margin: 0 auto; pointer-events: none; }
.hero__footer > * { pointer-events: auto; }
.hero__controls { display: flex; align-items: center; gap: var(--space-3); }
.slider__prev, .slider__next { width: 2.75rem; height: 2.75rem; border-radius: 50%; background: rgba(255,255,255,0.14); border: 1px solid rgba(255,255,255,0.45); backdrop-filter: blur(6px); display: grid; place-items: center; color: var(--c-white); transition: background-color var(--dur), color var(--dur); }
.slider__prev .icon, .slider__next .icon { width: 1.1rem; height: 1.1rem; fill: currentColor; }
.slider__prev .icon { transform: rotate(180deg); }
.slider__prev:hover, .slider__next:hover { background: var(--c-white); color: var(--c-dark); }
.slider__dots { list-style: none; display: flex; gap: 0.4rem; }
.slider__dots button { width: 1.6rem; height: 0.3rem; border-radius: 999px; background: rgba(255,255,255,0.4); transition: width var(--dur), background-color var(--dur); }
.slider__dots button[aria-current="true"] { background: var(--c-white); width: 2.8rem; }
.hero__claim-svg { height: clamp(2rem, 1.5rem + 1.5vw, 3rem); width: auto; display: block; }
@media (max-width: 639px) {
    .hero__slide { aspect-ratio: 4 / 5; min-height: 0; max-height: none; }
    .hero__caption { bottom: 5.5rem; }
    .hero__title-text { display: none; }
    .hero__actions .button--light { display: none; }
    .hero__claim-svg { height: 1.6rem; }
    .hero__footer { padding-bottom: var(--space-4); }
}

/* --------------------------------------------------------------------------
   8. Inhaltselemente
   -------------------------------------------------------------------------- */

/* Text mit Infokasten */
.textinfobox { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--block-gap); align-items: start; }
.textinfobox__box { background: var(--bg, var(--accent)); color: var(--text-on-color); border-radius: var(--radius-lg); overflow: hidden; }
.ce-orfo_textinfobox.bg-lightgray .textinfobox__box, .ce--layout-20 .textinfobox__box { color: var(--c-dark); background: var(--c-surface); }
.textinfobox__img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; }
.textinfobox__box-text { padding: var(--space-5); font-size: var(--fs-base); }
.textinfobox__box-text a { color: inherit; }
@media (min-width: 900px) {
    .textinfobox { grid-template-columns: minmax(0, 1.6fr) minmax(18rem, 1fr); gap: var(--space-7); }
    .ce--reverse .textinfobox__box { order: -1; }
}

/* Farbige Teaser */
.teasers__backdrop { position: relative; width: 100%; height: clamp(18rem, 55vh, 36rem); overflow: hidden; margin-bottom: calc(-1 * var(--space-8)); }
.teasers__backdrop-img { width: 100%; height: 100%; object-fit: cover; }
.teasers__backdrop::after { content: ""; position: absolute; inset: 0; background: rgba(0,0,0,0.3); }
.teasers__title { position: absolute; inset: 0; z-index: 2; display: grid; place-items: center; color: var(--c-white); text-align: center; padding: 0 var(--gutter); text-shadow: 0 2px 12px rgba(0,0,0,0.4); margin: 0; }
.teasers__list { list-style: none; display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); gap: var(--space-4); position: relative; z-index: 3; }
.teaser { background: var(--bg, var(--accent)); color: var(--text-on-color); border-radius: var(--radius-lg); overflow: hidden; display: flex; }
.teaser__link, .teaser > span { display: grid; gap: var(--space-3); padding: var(--space-5); text-decoration: none; width: 100%; justify-items: center; text-align: center; transition: transform var(--dur) var(--ease); }
.teaser__link:hover { transform: translateY(-4px); }
.teaser__icon { width: 4.5rem; height: 4.5rem; border-radius: 50%; border: 2px solid currentColor; display: grid; place-items: center; }
.teaser__icon svg { width: 2.6rem; height: 2.6rem; fill: currentColor; }
.teaser__title { margin: 0; font-size: clamp(1.15rem, 1rem + 0.6vw, 1.5rem); overflow-wrap: anywhere; hyphens: auto; }
.teaser__text { font-size: var(--fs-sm); }
.teaser__link .button { margin-top: auto; }
@media (max-width: 899px) { .teasers__backdrop { margin-bottom: var(--space-4); } }

/* Kacheln */
.tiles__grid { list-style: none; display: grid; gap: var(--space-4); grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: minmax(14rem, auto); }
.tile { position: relative; border-radius: var(--radius-lg); overflow: hidden; display: flex; min-height: 14rem; }
.tile--image { background: var(--c-surface); }
.tile--text { background: var(--bg, var(--accent)); color: var(--text-on-color); }
.tile__link, .tile > .tile__body { display: flex; flex-direction: column; width: 100%; text-decoration: none; color: inherit; }
.tile__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 0.8s var(--ease); }
.tile__link:hover .tile__img { transform: scale(1.04); }
.tile__body { position: relative; z-index: 2; margin-top: auto; padding: var(--space-4); display: grid; gap: var(--space-2); align-content: end; }
.tile--image .tile__body { background: linear-gradient(to top, rgba(0,0,0,0.55), transparent); color: var(--c-white); padding-top: var(--space-7); }
.tile--text .tile__body { height: 100%; align-content: center; padding: var(--space-5); }
.tile__title { font-weight: 600; font-size: var(--fs-h3); }
.tile__text { font-size: var(--fs-sm); }
.tile__heading { color: inherit; }
.tile__body .button { margin-top: var(--space-2); }
@media (min-width: 900px) {
    .tiles__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: minmax(16rem, auto); }
    .tiles__grid > :first-child { grid-column: span 2; grid-row: span 2; }
}
@media (max-width: 639px) { .tiles__grid { grid-template-columns: 1fr; } }

/* Themenliste */
.topics { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--block-gap); align-items: start; }
.topics__list { list-style: none; display: grid; gap: var(--space-4); }
.topic { display: grid; grid-template-columns: 4rem minmax(0, 1fr); gap: var(--space-4); padding-bottom: var(--space-4); border-bottom: 1px solid var(--c-light); }
.topic:last-child { border-bottom: 0; }
.topic__icon { grid-column: 1; width: 4rem; height: 4rem; border-radius: 50%; background: var(--accent); color: var(--c-white); display: grid; place-items: center; }
.topic__body { grid-column: 2; min-width: 0; }
.topic:not(:has(.topic__icon)) { grid-template-columns: minmax(0, 1fr); }
.topic:not(:has(.topic__icon)) .topic__body { grid-column: 1; }
.topic__icon svg { width: 2.3rem; height: 2.3rem; fill: currentColor; }
.topic__title { margin-bottom: 0.3em; }
.topic__title a { text-decoration: none; }
.topic__title a:hover { color: var(--accent); }
.topic__text { font-size: var(--fs-base); }
.topics__illustration { max-width: 28rem; margin: 0 auto; }
@media (min-width: 900px) {
    .topics--illustrated { grid-template-columns: minmax(0, 1.4fr) minmax(16rem, 1fr); gap: var(--space-7); }
    .topics__illustration { position: sticky; top: calc(var(--nav-height) + 2rem); }
    .ce--centered .topics__list { text-align: left; }
}
.ce--compact .topic { grid-template-columns: 3rem 1fr; }
.ce--compact .topic__icon { width: 3rem; height: 3rem; }

/* Akkordeon / FAQ */
.accordion { border-top: 1px solid var(--c-light); }
.accordion__item { border-bottom: 1px solid var(--c-light); }
.accordion__head { margin: 0; font-size: inherit; }
.accordion__button { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); padding: var(--space-3) 0; text-align: left; font-weight: 600; font-size: var(--fs-base); }
.accordion__button:hover { color: var(--accent); }
.accordion__icon { width: 1.75rem; height: 1.75rem; border-radius: 50%; border: 2px solid currentColor; padding: 0.3rem; transition: transform var(--dur) var(--ease); }
.accordion__button[aria-expanded="true"] .accordion__icon { transform: rotate(45deg); }
.accordion__panel[hidden] { display: none; }
.accordion__content { padding: 0 0 var(--space-4); max-width: var(--narrow-max); }
.accordion-ce__intro { max-width: var(--narrow-max); margin-bottom: var(--space-5); }

/* Schritte */
.steps__list { list-style: none; display: grid; gap: var(--space-5); counter-reset: step; max-width: var(--narrow-max); }
.step { display: grid; grid-template-columns: 3.25rem minmax(0, 1fr); gap: var(--space-4); position: relative; }
.step:not(:last-child)::before { content: ""; position: absolute; left: 1.6rem; top: 3.5rem; bottom: calc(-1 * var(--space-5)); border-left: 2px dashed var(--c-light); }
.step__number { width: 3.25rem; height: 3.25rem; border-radius: 50%; background: var(--accent); color: var(--c-dark); font-weight: 600; font-size: var(--fs-h3); display: grid; place-items: center; position: relative; z-index: 1; }
.step__title { margin-bottom: 0.3em; }
.step__sub { color: var(--text-muted); font-size: var(--fs-sm); margin-bottom: 0.6em; }
.step__media { grid-column: 2; border-radius: var(--radius); overflow: hidden; }
.steps__intro { max-width: var(--narrow-max); margin-bottom: var(--space-5); }

/* Galerie */
.gallery__grid { list-style: none; display: grid; gap: var(--space-3); grid-template-columns: repeat(2, 1fr); }
.gallery__item { border-radius: var(--radius); overflow: hidden; background: var(--c-surface); }
.gallery__img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: 1; transition: transform 0.8s var(--ease); }
.gallery__item:hover .gallery__img { transform: scale(1.03); }
.gallery__item figcaption { font-size: var(--fs-xs); color: var(--text-muted); padding: 0.5em 0.75em; }
@media (min-width: 900px) {
    .gallery__grid { grid-template-columns: repeat(3, 1fr); }
    .gallery__grid > :nth-child(3n+1) { grid-row: span 2; }
    .gallery__grid > :nth-child(3n+1) .gallery__img { aspect-ratio: 3 / 4; height: 100%; }
}

/* Produkt-Slider (Karten) */
.cardslider__wrap { position: relative; }
.cardslider__track { list-style: none; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(16rem, 22rem); gap: var(--space-4); overflow-x: auto; scroll-snap-type: x mandatory; padding: var(--space-2) var(--space-2) var(--space-4); scrollbar-width: none; }
.cardslider__track::-webkit-scrollbar { display: none; }
.card { scroll-snap-align: start; color: var(--c-dark); background: var(--c-white); border: 1px solid var(--c-light); border-radius: var(--radius-lg); overflow: hidden; display: flex; flex-direction: column; box-shadow: var(--shadow-sm); }
.card__media { background: var(--c-surface); }
.card__img { width: 100%; aspect-ratio: 1; object-fit: cover; }
.card__body { padding: var(--space-4); display: flex; flex-direction: column; gap: var(--space-2); flex: 1; }
.card__title { margin: 0; }
.card__sub { color: var(--text-muted); font-size: var(--fs-sm); margin: 0; }
.card__text { font-size: var(--fs-sm); }
.card .link--arrow { margin-top: auto; }
.cardslider__prev, .cardslider__next { position: absolute; top: 40%; width: 2.75rem; height: 2.75rem; border-radius: 50%; background: var(--c-white); box-shadow: var(--shadow); display: grid; place-items: center; z-index: 2; }
.cardslider__prev { left: -1rem; }
.cardslider__next { right: -1rem; }
.cardslider__prev .icon { transform: rotate(180deg); }
.cardslider__prev[disabled], .cardslider__next[disabled] { opacity: 0.3; cursor: default; }
.cardslider__intro { max-width: var(--narrow-max); margin-bottom: var(--space-4); }

/* Sticky Slider */
.stickyslider__heading { margin-bottom: var(--space-5); }
.stickyslider__stage { position: relative; }
.stickyslider__media { position: sticky; top: var(--nav-height); height: calc(100vh - var(--nav-height)); overflow: hidden; background: var(--c-dark); }
.stickyslider__img { position: absolute; inset: 0; opacity: 0; transition: opacity 0.6s var(--ease); }
.stickyslider__img.is-active { opacity: 1; }
.stickyslider__picture { width: 100%; height: 100%; object-fit: cover; }
.stickyslider__steps { list-style: none; position: relative; z-index: 2; margin-top: calc(-100vh + var(--nav-height)); }
.stickyslider__step { min-height: calc(100vh - var(--nav-height)); display: flex; align-items: center; padding: var(--space-6) var(--gutter); }
.stickyslider__step .bubble { transform: translateY(2rem); opacity: 0.4; transition: transform 0.6s var(--ease), opacity 0.6s; }
.stickyslider__step.is-active .bubble { transform: none; opacity: 1; }
@media (max-width: 899px) {
    .stickyslider__media { position: relative; height: auto; aspect-ratio: 4 / 3; }
    .stickyslider__img { position: relative; opacity: 1; display: none; }
    .stickyslider__img.is-active { display: block; }
    .stickyslider__steps { margin-top: 0; }
    .stickyslider__step { min-height: 0; padding: var(--space-4) var(--gutter); }
}

/* Blase */
.bubble { width: min(100%, 26rem); aspect-ratio: 1; border-radius: 50%; display: grid; place-content: center; text-align: center; padding: clamp(2rem, 2rem + 3vw, 4rem); background: var(--accent); color: var(--c-dark); }
.bubble--green { background: var(--c-green); } .bubble--yellow { background: var(--c-yellow); } .bubble--orange { background: var(--c-orange); } .bubble--red { background: var(--c-red); } .bubble--blue { background: var(--c-blue); }
.bubble--lightgray { background: var(--c-surface); color: var(--c-dark); }
.bubble__title { margin-bottom: 0.4em; }
.bubble__text { font-size: var(--fs-sm); }
.bubble .link--arrow::after { background: var(--c-dark); }
.bubble .button { border-color: var(--c-dark); color: var(--c-dark); margin: var(--space-3) auto 0; }
@media (max-width: 639px) { .bubble { aspect-ratio: auto; border-radius: var(--radius-lg); padding: var(--space-5); } }

/* Text in Blase */
.textbubble { position: relative; min-height: 32rem; display: grid; align-items: center; background: var(--c-surface); overflow: hidden; }
.textbubble__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.textbubble__bubble { position: relative; z-index: 2; margin: var(--space-6) var(--gutter); box-shadow: var(--shadow); }
.ce--reverse .textbubble__bubble { margin-left: auto; }
.textbubble__bubble .bubble__title { color: inherit; }

/* Zitat */
.quote { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--block-gap); align-items: center; max-width: var(--content-max); }
.quote__media { width: min(100%, 20rem); margin: 0 auto; border-radius: 50%; overflow: hidden; border: 8px solid var(--accent); }
.quote__img { aspect-ratio: 1; object-fit: cover; }
.quote__body { margin: 0; position: relative; padding-left: var(--space-5); }
.quote__body::before { content: "„"; position: absolute; left: 0; top: -0.3em; font-size: 4rem; line-height: 1; color: var(--accent); font-weight: 600; }
.quote__text { font-size: var(--fs-lead); line-height: 1.5; }
.quote__author { margin-top: var(--space-3); font-size: var(--fs-sm); color: var(--text-muted); }
@media (min-width: 900px) { .quote { grid-template-columns: 18rem minmax(0, 1fr); gap: var(--space-7); } }

/* Fakten */
.facts__list { list-style: none; display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--space-4); text-align: center; }
@media (min-width: 760px) { .facts__list { grid-template-columns: repeat(3, 1fr); } }
.fact { min-width: 0; overflow-wrap: break-word; hyphens: auto; }
.fact { display: grid; gap: var(--space-1); justify-items: center; padding: var(--space-4); border-radius: var(--radius-lg); background: var(--c-surface); }
.ce.bg-green .fact, .ce.bg-yellow .fact, .ce.bg-orange .fact, .ce.bg-red .fact, .ce.bg-blue .fact { background: rgba(255,255,255,0.18); }
.fact__icon { width: 3rem; height: 3rem; }
.fact__icon svg { fill: var(--accent); }
.fact__value { font-size: clamp(2rem, 1.5rem + 1.5vw, 2.75rem); font-weight: 600; line-height: 1; color: var(--accent); }
.ce.bg-green .fact__value, .ce.bg-yellow .fact__value, .ce.bg-orange .fact__value, .ce.bg-red .fact__value, .ce.bg-blue .fact__value { color: inherit; }
.fact__label { font-weight: 600; }
.fact__text { font-size: var(--fs-sm); color: var(--text-muted); }
.facts__intro { max-width: var(--narrow-max); margin-bottom: var(--space-5); }

/* CTA */
.ce-orfo_cta:not([class*="bg-"]) { background: var(--accent); color: var(--c-white); padding: var(--section-gap) 0; }
.ce-orfo_cta:not([class*="bg-"]) .button { border-color: var(--c-white); color: var(--c-white); }
.ce-orfo_cta:not([class*="bg-"]) .button:hover { background: var(--c-white); color: var(--c-dark); }
.cta { text-align: center; max-width: var(--narrow-max); }
.cta__text { font-size: var(--fs-lead); }
.cta__actions { display: flex; flex-wrap: wrap; gap: var(--space-4); justify-content: center; align-items: center; margin-top: var(--space-5); }
.cta__phone { display: inline-flex; align-items: center; gap: 0.5em; font-weight: 600; text-decoration: none; }

/* Linkliste */
.linklist { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--block-gap); align-items: center; }
.linklist__list { list-style: none; display: grid; gap: var(--space-2); grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); }
.linklist__link { display: flex; align-items: center; gap: 0.6em; text-decoration: none; font-weight: 600; padding: 0.6em 0; border-bottom: 1px solid var(--c-light); }
.linklist__link .icon { color: var(--accent); }
.linklist__link:hover { color: var(--accent); }
.linklist__illustration { max-width: 26rem; margin: 0 auto; }
@media (min-width: 900px) { .linklist--illustrated { grid-template-columns: minmax(0, 1.5fr) minmax(14rem, 1fr); gap: var(--space-7); } }

/* Standorte */
.locations__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--block-gap); align-items: start; }
.locations__list { list-style: none; display: grid; gap: var(--space-5); }
.location { border-left: 4px solid var(--accent); padding-left: var(--space-4); }
.location__title { margin-bottom: 0.3em; }
.location__hours .text-label { min-width: 3.5em; }
.location__phone a, .location__email a { text-decoration: none; font-weight: 600; }
@media (min-width: 900px) { .locations__grid { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: var(--space-7); } }

/* Team */
.team__list { list-style: none; display: grid; gap: var(--space-4); grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr)); }
.person { display: grid; gap: var(--space-3); padding: var(--space-4); border-radius: var(--radius-lg); background: var(--c-surface); border-top: 4px solid var(--accent); }
.person__media { border-radius: 50%; overflow: hidden; width: 8rem; }
.person__img { aspect-ratio: 1; object-fit: cover; }
.person__name { margin: 0; font-size: var(--fs-base); font-weight: 600; }
.person__role { font-size: var(--fs-sm); color: var(--text-muted); margin: 0; }
.person__contact { list-style: none; font-size: var(--fs-sm); display: grid; gap: 0.2em; }
.person__contact a { text-decoration: none; }
.person__contact a:hover { color: var(--accent); }
.team__intro { max-width: var(--narrow-max); margin-bottom: var(--space-5); }

/* Downloads */
.downloads__list { list-style: none; display: grid; gap: var(--space-3); max-width: var(--narrow-max); }
.download__link { display: grid; grid-template-columns: 4rem minmax(0, 1fr) auto; gap: var(--space-3); align-items: center; padding: var(--space-3); border: 1px solid var(--c-light); border-radius: var(--radius); text-decoration: none; transition: border-color var(--dur), box-shadow var(--dur); }
.download__link:hover { border-color: var(--accent); box-shadow: var(--shadow-sm); }
.download__type { background: var(--accent); color: var(--c-dark); font-weight: 600; font-size: var(--fs-xs); border-radius: var(--radius); padding: 0.6em 0; text-align: center; }
.download__title { font-weight: 600; display: block; }
.download__desc, .download__meta { display: block; font-size: var(--fs-xs); color: var(--text-muted); }

/* Unterseiten-Übersicht und Passende Seiten */
.subpages__grid, .related__grid { list-style: none; display: grid; gap: var(--space-4); grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr)); }
.pagecard { border-radius: var(--radius-lg); overflow: hidden; background: var(--c-surface); display: flex; }
.pagecard__link { display: flex; flex-direction: column; width: 100%; text-decoration: none; transition: transform var(--dur) var(--ease), box-shadow var(--dur); }
.pagecard__link:hover { transform: translateY(-4px); box-shadow: var(--shadow); }
.pagecard__media { aspect-ratio: 4 / 3; background: var(--c-light); }
.pagecard__img { width: 100%; height: 100%; object-fit: cover; }
.pagecard__icon { width: 4rem; height: 4rem; margin: var(--space-4) var(--space-4) 0; border-radius: 50%; background: var(--accent); color: var(--c-white); display: grid; place-items: center; }
.pagecard__icon svg { width: 2.3rem; height: 2.3rem; fill: currentColor; }
.pagecard__body { padding: var(--space-4); display: grid; gap: var(--space-2); flex: 1; align-content: start; }
.pagecard__title { margin: 0; }
.pagecard__text { font-size: var(--fs-sm); color: var(--text-muted); }
.pagecard .link--arrow { margin-top: auto; }
.relcard { border-radius: var(--radius-lg); background: var(--item-color, var(--area-color, var(--accent))); color: var(--c-dark); display: flex; }
.relcard__link { display: grid; gap: var(--space-3); padding: var(--space-5); width: 100%; text-decoration: none; justify-items: center; text-align: center; transition: transform var(--dur) var(--ease); }
.relcard__link:hover { transform: translateY(-4px); }
.relcard__icon { width: 4rem; height: 4rem; border-radius: 50%; border: 2px solid currentColor; display: grid; place-items: center; }
.relcard__icon svg { width: 2.3rem; height: 2.3rem; fill: currentColor; }
.relcard__title { margin: 0; }
.relcard__text { font-size: var(--fs-sm); }
.relcard .button { margin-top: auto; }

/* Fachliche Prüfung */
.review, .ce-review__inner { max-width: var(--narrow-max); font-size: var(--fs-sm); color: var(--text-muted); border-top: 1px solid var(--c-light); padding-top: var(--space-4); }
.ce-review { max-width: var(--content-max); margin: 0 auto var(--section-gap); padding: 0 var(--gutter); }

/* Jobs */
.jobs__list { list-style: none; display: grid; gap: var(--space-3); max-width: var(--narrow-max); }
.job__link { display: grid; gap: var(--space-1); padding: var(--space-4); border: 1px solid var(--c-light); border-radius: var(--radius-lg); text-decoration: none; transition: border-color var(--dur), box-shadow var(--dur); }
.job__link:hover { border-color: var(--accent); box-shadow: var(--shadow-sm); }
.job__title { margin: 0; }
.job__meta { display: flex; flex-wrap: wrap; gap: var(--space-3); font-size: var(--fs-xs); color: var(--text-muted); }
.jobs__empty { max-width: var(--narrow-max); }

/* fluid_styled_content: text, textpic, image (eigene Templates) */
.ce-bodytext { max-width: var(--narrow-max); }
.ce-bodytext > p:last-child { margin-bottom: 0; }
.textpic { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--block-gap); align-items: start; }
@media (min-width: 900px) { .textpic--left .textpic__media, .textpic--right .textpic__media { position: sticky; top: 6rem; } }
.textpic__figure { border-radius: var(--radius-lg); overflow: hidden; }
.textpic__img { width: 100%; height: auto; }
.textpic__caption { font-size: var(--fs-xs); color: var(--text-muted); padding: 0.5em 0; }
.textpic__media--2, .textpic__media--3 { display: grid; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); gap: var(--space-3); }
@media (min-width: 900px) {
    .textpic--left, .textpic--right { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--space-7); }
    .textpic--left .textpic__media { order: -1; }
    .textpic--multi.textpic--left, .textpic--multi.textpic--right { grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); }
}
/* Layout 5: farbig hinterlegt */
.ce--layout-5 { background: var(--accent); color: var(--c-dark); padding: var(--section-gap) 0; }
.ce--layout-5 .button { border-color: var(--c-dark); color: var(--c-dark); }
.ce--layout-5 .button:hover { background: var(--c-dark); color: var(--c-white); }
.ce--layout-5 .link--arrow::after { background: var(--c-dark); }
.ce--layout-5 .textpic__figure { box-shadow: var(--shadow); }
/* Layout 10: Parallax-Bild */
.parallax { position: relative; min-height: 32rem; display: grid; align-items: center; color: var(--c-white); overflow: hidden; background: var(--c-dark); }
.parallax__media { position: absolute; inset: -10% 0; }
.parallax__img { width: 100%; height: 100%; object-fit: cover; }
.parallax__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(58,60,60,0.75), rgba(58,60,60,0.35)); }
.parallax__content { position: relative; z-index: 1; padding-top: var(--space-7); padding-bottom: var(--space-7); }
.parallax__content .ce-bodytext { max-width: 40rem; }
.parallax .button { border-color: var(--c-white); color: var(--c-white); }
.imageblock__grid { display: grid; gap: var(--space-3); }
.imageblock__grid--2 { grid-template-columns: repeat(2, 1fr); }
.imageblock__grid--3 { grid-template-columns: repeat(3, 1fr); }
.imageblock__img { border-radius: var(--radius-lg); }

/* Formulare */
.form-group, .form-element { margin-bottom: var(--space-4); }
fieldset { border: 0; padding: 0; margin: 0 0 var(--space-5); }
legend { font-weight: 600; font-size: var(--fs-h3); margin-bottom: var(--space-3); }
label, .control-label { display: block; font-weight: 600; font-size: var(--fs-sm); margin-bottom: 0.35em; }
input[type="text"], input[type="email"], input[type="tel"], input[type="date"], input[type="search"], input[type="file"], select, textarea, .form-control {
    width: 100%; font: inherit; color: inherit; min-height: 3.25rem; padding: 0.75em 1em; border: 1px solid var(--c-gray); border-radius: var(--radius); background: var(--c-white); transition: border-color var(--dur), box-shadow var(--dur);
}
input:focus, select:focus, textarea:focus { border-color: var(--c-dark); outline: none; box-shadow: 0 0 0 4px rgba(170, 195, 65, 0.3); }
textarea { min-height: 8rem; resize: vertical; }
.form-check, .form-check-inline, .checkbox, .radio { display: flex; gap: 0.6em; align-items: flex-start; font-weight: 400; font-size: var(--fs-sm); }
.form-check input, .checkbox input, .radio input { width: 1.2em; height: 1.2em; margin-top: 0.2em; accent-color: var(--accent); flex: none; }
.form-check label, .checkbox label, .radio label { font-weight: 400; margin: 0; }
.help-block, .form-text { font-size: var(--fs-xs); color: var(--text-muted); margin-top: 0.3em; }
.has-error input, .has-error textarea, .has-error select, .f3-form-error { border-color: var(--c-error); }
.error, .has-error .help-block, .alert-danger { color: var(--c-error); font-size: var(--fs-sm); }
.alert-success { color: var(--c-success); }
.btn { display: inline-flex; align-items: center; gap: 0.5em; border: 2px solid var(--c-dark); border-radius: var(--radius); padding: 0.7em 1.6em; font-weight: 600; font-size: var(--fs-sm); color: var(--c-dark); background: none; transition: background-color var(--dur), color var(--dur); }
.btn:hover { background: var(--c-dark); color: var(--c-white); }
.btn-primary { background: var(--c-dark); color: var(--c-white); }
.btn-primary:hover { background: var(--accent); border-color: var(--accent); }
.form-honeypot { position: absolute; left: -9999px; }

/* Suche */
.search__form { display: flex; gap: var(--space-2); max-width: var(--narrow-max); margin-bottom: var(--space-5); }
.search__form input { flex: 1; }
.search__result { padding: var(--space-4) 0; border-bottom: 1px solid var(--c-light); max-width: var(--narrow-max); }
.search__result h3 { margin: 0 0 0.3em; font-size: var(--fs-h3); }
.search__result h3 a { text-decoration: none; }
.search__result h3 a:hover { color: var(--accent); }
.search__result p { font-size: var(--fs-sm); color: var(--text-muted); }
.search__empty { max-width: var(--narrow-max); }
.search__count { font-weight: 600; color: var(--text-muted); margin-bottom: var(--space-2); }
.search__paging { margin-top: var(--space-5); }
.search__paging ul { display: flex; flex-wrap: wrap; gap: var(--space-2); list-style: none; padding: 0; margin: 0; }
.search__paging a, .search__paging span { display: inline-flex; align-items: center; justify-content: center; min-width: 2.5rem; height: 2.5rem; padding: 0 0.75rem; border-radius: 999px; border: 2px solid var(--c-light); text-decoration: none; font-weight: 600; }
.search__paging a:hover { border-color: var(--accent); color: var(--accent); }
.search__paging span[aria-current] { background: var(--accent); border-color: var(--accent); color: #fff; }

/* --------------------------------------------------------------------------
   9. Kontakt-Drawer
   -------------------------------------------------------------------------- */
.drawer-toggle {
    position: fixed; right: var(--space-4); bottom: var(--space-4); z-index: 150;
    display: inline-flex; align-items: center; gap: 0.6em; padding: 0.8em 1.2em;
    background: var(--c-dark); color: var(--c-white); border-radius: 999px; box-shadow: var(--shadow);
    font-weight: 600; font-size: var(--fs-sm); transition: transform var(--dur) var(--ease), background-color var(--dur);
}
.drawer-toggle:hover { transform: translateY(-2px); background: var(--c-green); }
.drawer-toggle .icon { width: 1.5em; height: 1.5em; }
@media (max-width: 639px) { .drawer-toggle__label { display: none; } .drawer-toggle { padding: 0.9em; } }
.drawer {
    position: fixed; top: 0; right: 0; bottom: 0; z-index: 300; width: min(100%, 32rem);
    background: var(--c-white); box-shadow: -10px 0 40px rgba(0,0,0,0.15); overflow-y: auto;
    padding: var(--space-5) var(--space-5) var(--space-7); display: grid; align-content: start; gap: var(--space-4);
    transform: translateX(100%); transition: transform var(--dur) var(--ease);
}
.drawer.is-open { transform: none; }
.drawer[hidden] { display: none; }
.drawer__head { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); }
.drawer__title { margin: 0; font-size: var(--fs-h2); font-weight: 600; }
.drawer__close { width: 2.5rem; height: 2.5rem; border-radius: 50%; border: 2px solid var(--c-dark); display: grid; place-items: center; }
.drawer__channels { list-style: none; display: grid; gap: var(--space-2); }
.drawer__channel { display: flex; align-items: center; gap: var(--space-3); padding: var(--space-3); border-radius: var(--radius-lg); background: var(--c-surface); text-decoration: none; transition: background-color var(--dur); }
.drawer__channel:hover { background: var(--c-green); color: var(--c-dark); }
.drawer__channel .icon { width: 1.75rem; height: 1.75rem; }
.drawer__channel-text { min-width: 0; }
.drawer__status { display: block; margin-top: 0.2em; font-size: var(--fs-xs); font-weight: 600; color: var(--text-muted); line-height: 1.35; }
.drawer__channel.is-open .drawer__status { color: var(--c-success); }
.drawer__channel.is-closed .drawer__status { color: var(--text-muted); }
/* Öffnungsschild in der Anrufen-Box: klein, rechts, zeigt offen/geschlossen (Klasse aus orfo.js) */
.drawer__sign { flex: 0 0 auto; margin-left: auto; width: 3.5rem; line-height: 0; }
.drawer__sign-img { width: 100%; height: auto; display: none; }
.drawer__channel.is-open .drawer__sign-img--open, .drawer__channel.is-closed .drawer__sign-img--closed { display: block; }
.drawer__channel:not(.is-open):not(.is-closed) .drawer__sign-img--open { display: block; }
.drawer__hint { margin: calc(-1 * var(--space-2)) 0 0; font-size: var(--fs-sm); color: var(--text-muted); line-height: 1.5; }
.drawer__note { font-size: var(--fs-xs); color: var(--text-muted); }
.drawer__forms .accordion__content { padding-top: var(--space-2); }
.drawer-backdrop { position: fixed; inset: 0; z-index: 250; background: rgba(58,60,60,0.4); }
.drawer-backdrop[hidden] { display: none; }

/* --------------------------------------------------------------------------
   10. Footer (Polish 2026)
   -------------------------------------------------------------------------- */
.footer { position: relative; background: var(--c-surface); margin-top: auto; border-top: 1px solid var(--line); }
.footer__top { position: absolute; top: -1.5rem; left: 50%; transform: translateX(-50%); width: 3rem; height: 3rem; border-radius: 50%; background: var(--c-dark); color: var(--c-white); display: grid; place-items: center; box-shadow: var(--shadow-sm); transition: background-color var(--dur), color var(--dur); }
.footer__top:hover { background: var(--c-green); color: #2E3030; }
.footer__top .icon { transform: rotate(-90deg); }
.footer__inner { max-width: var(--content-max); margin: 0 auto; padding: var(--space-7) var(--gutter) var(--space-5); }
.footer__grid { display: grid; gap: var(--space-6) var(--space-5); grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); font-size: var(--fs-sm); }
.footer__brand { grid-column: 1 / -1; display: grid; gap: var(--space-4); justify-items: start; }
@media (min-width: 900px) { .footer__grid { grid-template-columns: 1.4fr 1fr 1fr 1fr; } .footer__brand { grid-column: auto; padding-right: var(--space-5); } }
.footer__logo { height: 3rem; width: auto; display: block; }
.footer__about { max-width: 30ch; color: var(--text-muted); }
.footer__col p { margin-bottom: var(--space-2); }
.footer__col .eyebrow { color: var(--accent-text); margin-bottom: var(--space-3); }
.footer__col a { text-decoration: none; }
.footer__col a:hover { color: var(--accent-text); }
.footer__col .link--arrow { font-size: var(--fs-sm); }
.footer__hours-note { color: var(--text-muted); display: block; margin-top: 0.3em; }
.footer__themes ul { list-style: none; display: grid; gap: 0.4em; font-weight: 600; }
.footer__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--space-3); margin-top: var(--space-6); padding-top: var(--space-4); border-top: 1px solid var(--line); font-size: var(--fs-xs); color: var(--text-muted); }
.footer__legal ul { list-style: none; display: flex; flex-wrap: wrap; gap: var(--space-4); align-items: center; }
.footer__legal a { text-decoration: none; }
.footer__legal a:hover { color: var(--c-dark); }
.footer__fontsize { display: inline-flex; align-items: center; gap: 0.4em; }
.footer__fontsize[aria-pressed="true"] { color: var(--c-dark); font-weight: 600; }

/* --------------------------------------------------------------------------
   11. Vertrauensleiste (Bewertungen) – als Fakten-Variante
   -------------------------------------------------------------------------- */
.fact--rating .fact__value::after { content: " ★"; font-size: 0.6em; vertical-align: 0.25em; }

/* --------------------------------------------------------------------------
   12. Animationen beim Scrollen (dezent)
   -------------------------------------------------------------------------- */
[data-reveal] { opacity: 0; transform: translateY(1.5rem); transition: opacity 0.7s var(--ease), transform 0.7s var(--ease); }
[data-reveal].is-visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { [data-reveal] { opacity: 1; transform: none; } }

/* --------------------------------------------------------------------------
   13. Druck
   -------------------------------------------------------------------------- */
@media print {
    .nav, .nav-overlay, .drawer, .drawer-toggle, .footer__top, .hero__controls, .cardslider__prev, .cardslider__next { display: none !important; }
    .page__main { padding-top: 0; }
    .ce { break-inside: avoid; }
    a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 0.8em; color: #666; }
    .actionbar, .pageheader__side, .footer__a11y, .skip-link, .lightbox { display: none !important; }
    .accordion__panel[hidden] { display: block !important; }
    .pageheader__body { display: block; }
    .cardslider__track { display: block; }
    .card { margin-bottom: 1rem; }
}
/* Bild über/unter dem Text: nicht volle Breite, sondern begrenzt und zentriert */
.textpic--above .textpic__media { order: -1; }
.textpic--above .textpic__media--1, .textpic--below .textpic__media--1 { max-width: 46rem; justify-self: center; width: 100%; }
@media (max-width: 759px) {
    .cardslider__prev { left: 0.25rem; }
    .cardslider__next { right: 0.25rem; }
}

/* --------------------------------------------------------------------------
   14. Komponenten-Polish 2026 (Design-Canvas Freigabe)
   -------------------------------------------------------------------------- */
/* Teaser */
.teaser { color: var(--text-on-color); border-radius: var(--radius-lg); box-shadow: none; transition: transform var(--dur) var(--ease), box-shadow var(--dur); }
.teaser:hover { transform: translateY(-4px); box-shadow: var(--shadow); }
.teaser__link, .teaser > span { position: relative; justify-items: start; text-align: left; padding: var(--space-5); gap: var(--space-3); transition: none; }
.teaser__link:hover { transform: none; }
.teaser__icon { width: 3.5rem; height: 3.5rem; border: 0; background: rgba(255,255,255,0.18); }
.teaser__icon svg { width: 2rem; height: 2rem; }
.teaser__text { font-size: var(--fs-sm); }
.teaser__go { margin-top: auto; width: 2.5rem; height: 2.5rem; border-radius: 50%; background: var(--c-white); color: var(--c-dark); display: grid; place-items: center; transition: transform var(--dur) var(--ease); }
.teaser__go .icon { width: 1rem; height: 1rem; fill: currentColor; }
.teaser__link:hover .teaser__go { transform: translateX(4px); }
.teaser.bg-green .teaser__go, .teaser.bg-yellow .teaser__go { color: #2E3030; }

/* Passende Seiten: getönte Karten mit Pfeil */
.relcard { background: var(--c-white); color: var(--c-dark); border: 1px solid var(--line); box-shadow: none; transition: transform var(--dur) var(--ease), box-shadow var(--dur); position: relative; overflow: hidden; }
.relcard::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 6px; background: var(--item-color, var(--accent)); }
.relcard:hover { transform: translateY(-4px); box-shadow: var(--shadow); }
.relcard__link { justify-items: start; text-align: left; padding: var(--space-5) var(--space-5) var(--space-5) calc(var(--space-5) + 6px); gap: var(--space-2); color: inherit; }
.relcard__link:hover { transform: none; }
.relcard__eyebrow { color: var(--text-muted); }
.relcard__title { margin: 0; }
.relcard__text { font-size: var(--fs-sm); color: var(--text-muted); }
.relcard__arrow { margin-top: auto; width: 2.25rem; height: 2.25rem; border-radius: 50%; background: var(--item-color, var(--accent)); color: var(--c-white); display: grid; place-items: center; transition: transform var(--dur) var(--ease); }
.relcard__arrow .icon { width: 0.95rem; height: 0.95rem; fill: currentColor; }
.relcard__link:hover .relcard__arrow { transform: translateX(4px); }

/* Schritte als Karten */
.step { gap: var(--space-4); }
.step:not(:last-child)::before { border-left: 2px solid var(--line); top: 3.75rem; }
.step__number { background: var(--c-white); color: var(--accent-text); border: 2px solid var(--accent); font-size: var(--fs-base); width: 3rem; height: 3rem; }
.step__card { background: var(--c-white); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: var(--space-4) var(--space-5); box-shadow: var(--shadow-sm); }
.step__title { margin-bottom: 0.2em; }
.step__text { font-size: var(--fs-base); }
.step__text > :last-child { margin-bottom: 0; }
.step__card .link--arrow { margin-top: var(--space-3); display: inline-flex; }
.step__media { grid-column: 2; border-radius: var(--radius-lg); }

/* Akkordeon */
.accordion { border-top: 1px solid var(--line); }
.accordion__item { border-bottom: 1px solid var(--line); }
.accordion__button { padding: var(--space-4) 0; font-size: var(--fs-lead); gap: var(--space-4); }
.accordion__button:hover { color: var(--accent-text); }
.accordion__icon { width: 2.25rem; height: 2.25rem; border: 1px solid var(--c-gray); padding: 0.55rem; flex: none; color: var(--c-dark); transition: transform var(--dur) var(--ease), background-color var(--dur), border-color var(--dur); }
.accordion__button[aria-expanded="true"] .accordion__icon { background: var(--accent); border-color: var(--accent); color: var(--c-white); }
.bg-green .accordion__button[aria-expanded="true"] .accordion__icon, .bg-yellow .accordion__button[aria-expanded="true"] .accordion__icon { color: #2E3030; }
.accordion__content { padding-bottom: var(--space-5); }

/* Themenliste: Pfeil rechts */
.topic { grid-template-columns: 3.5rem minmax(0, 1fr) auto; gap: var(--space-4); padding: var(--space-4) 0; border-bottom: 1px solid var(--line); align-items: start; }
.topic:not(:has(.topic__icon)) { grid-template-columns: minmax(0, 1fr) auto; }
.topic__icon { width: 3.5rem; height: 3.5rem; background: var(--tint); color: var(--accent-text); }
.topic__icon svg { width: 2rem; height: 2rem; }
.topic__title a:hover { color: var(--accent-text); }
.topic__arrow { grid-column: -1; width: 2.5rem; height: 2.5rem; border-radius: 50%; border: 1px solid var(--line); display: grid; place-items: center; color: var(--c-dark); transition: background-color var(--dur), color var(--dur), border-color var(--dur); align-self: center; }
.topic__arrow .icon { width: 1rem; height: 1rem; fill: currentColor; }
.topic:hover .topic__arrow { background: var(--accent); border-color: var(--accent); color: var(--c-white); }
.topic__body .link--arrow { margin-top: var(--space-2); }
@media (max-width: 639px) { .topic__arrow { display: none; } .topic { grid-template-columns: 3rem minmax(0, 1fr); } .topic:not(:has(.topic__icon)) { grid-template-columns: minmax(0, 1fr); } }

/* Fakten: 3 Spalten, Trennlinien statt Kacheln */
.facts__list { gap: 0; }
.fact { background: none; border-radius: 0; padding: var(--space-4) var(--space-4); border-left: 1px solid var(--line); text-align: left; justify-items: start; gap: var(--space-2); }
.ce.bg-green .fact, .ce.bg-yellow .fact, .ce.bg-orange .fact, .ce.bg-red .fact, .ce.bg-blue .fact { background: none; border-left-color: rgba(255,255,255,0.35); }
@media (min-width: 760px) { .fact:nth-child(3n+1) { border-left: 0; padding-left: 0; } .fact:nth-child(n+4) { border-top: 1px solid var(--line); } }
@media (max-width: 759px) { .fact:nth-child(odd) { border-left: 0; padding-left: 0; } .fact:nth-child(n+3) { border-top: 1px solid var(--line); } }
.ce.bg-green .fact, .ce.bg-yellow .fact, .ce.bg-orange .fact, .ce.bg-red .fact, .ce.bg-blue .fact { border-top-color: rgba(255,255,255,0.35); }
.fact__value { color: var(--accent-text); font-size: clamp(1.75rem, 1.2rem + 1.6vw, 2.75rem); letter-spacing: -0.02em; }
.fact__text { font-size: var(--fs-sm); }

/* Produktkarten */
.card { border-color: var(--line); box-shadow: none; transition: transform var(--dur) var(--ease), box-shadow var(--dur); }
.card:hover { transform: translateY(-4px); box-shadow: var(--shadow); }
.card__media { background: var(--c-surface); padding: var(--space-4); }
.card__img { object-fit: contain; mix-blend-mode: multiply; }
.cardslider__prev, .cardslider__next { border: 1px solid var(--line); box-shadow: var(--shadow); }
.cardslider__prev .icon, .cardslider__next .icon { width: 1rem; height: 1rem; fill: currentColor; }

/* Zitat */
.quote__media { border-width: 6px; border-color: var(--tint); box-shadow: var(--shadow-sm); }
.quote__body { padding-left: 0; }
.quote__body::before { content: none; }
.quote__mark { width: 2.5rem; height: 2.5rem; fill: var(--accent); margin-bottom: var(--space-3); display: block; }
.quote__text { font-size: clamp(1.25rem, 1.1rem + 0.7vw, 1.75rem); line-height: 1.4; font-weight: 500; letter-spacing: -0.01em; }
.quote__text > :last-child { margin-bottom: 0; }
.quote__author { margin-top: var(--space-4); font-size: var(--fs-sm); color: var(--text-muted); }
.quote__author strong { color: var(--c-dark); }

/* Standorte: Karte mit Zustimmung, Routen */
.locations__mapcol { display: grid; gap: var(--space-3); }
.mapconsent { position: relative; aspect-ratio: 4 / 3; border-radius: var(--radius-lg); overflow: hidden; border: 1px solid var(--line); background: var(--c-surface) repeating-linear-gradient(0deg, transparent 0 39px, rgba(58,60,60,0.06) 39px 40px), repeating-linear-gradient(90deg, transparent 0 39px, rgba(58,60,60,0.06) 39px 40px); }
.mapconsent::before { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 50% 45%, rgba(170,195,65,0.25), transparent 45%); }
.mapconsent__pin { position: absolute; left: 50%; top: 42%; transform: translate(-50%, -100%); display: grid; justify-items: center; gap: 0.4rem; }
.mapconsent__label { background: var(--c-white); border: 1px solid var(--line); border-radius: 999px; padding: 0.35em 0.9em; font-size: var(--fs-xs); font-weight: 600; white-space: nowrap; box-shadow: var(--shadow-sm); }
.mapconsent__pin-svg { width: 2.25rem; height: 2.25rem; fill: var(--c-red); filter: drop-shadow(0 4px 6px rgba(0,0,0,0.2)); }
.mapconsent__overlay { position: absolute; left: 0; right: 0; bottom: 0; padding: var(--space-4); display: grid; justify-items: center; gap: var(--space-2); background: linear-gradient(to top, rgba(255,255,255,0.95), rgba(255,255,255,0.6) 70%, transparent); text-align: center; }
.mapconsent__note { font-size: var(--fs-xs); color: var(--text-muted); max-width: 30ch; }
.mapconsent iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.mapconsent.is-loaded::before, .mapconsent.is-loaded .mapconsent__pin, .mapconsent.is-loaded .mapconsent__overlay { display: none; }
.locations__routes { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.locations__routes .button .icon { width: 1.05em; height: 1.05em; fill: currentColor; }
.location { border-left: 0; padding: var(--space-4) var(--space-5); border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--c-white); }
.location + .location { margin-top: 0; }
.locations__list { gap: var(--space-3); }
.location__title { margin-bottom: 0.4em; }
.location__address, .location__hours { margin-bottom: var(--space-2); font-size: var(--fs-sm); }
.location__phone, .location__email { margin: 0; font-size: var(--fs-sm); }
.location__phone a, .location__email a { font-weight: 600; text-decoration: none; }
.location .button { margin-top: var(--space-3); }

/* CTA */
.ce-orfo_cta:not([class*="bg-"]) { background: var(--c-dark); color: var(--c-white); }
.ce-orfo_cta:not([class*="bg-"]) .button--dark { background: var(--c-green); color: #2E3030; border-color: var(--c-green); }
.ce-orfo_cta:not([class*="bg-"]) .button--dark:hover { background: var(--c-white); color: var(--c-dark); border-color: var(--c-white); }
.ce-orfo_cta:not([class*="bg-"]) .button--ghost { border-color: rgba(255,255,255,0.5); color: var(--c-white); }
.ce-orfo_cta:not([class*="bg-"]) .button--ghost:hover { background: var(--c-white); color: var(--c-dark); border-color: var(--c-white); }
.ce-orfo_cta:not([class*="bg-"]) .eyebrow { color: var(--c-green); }
.ce-orfo_cta .heading { color: inherit; }
.cta { max-width: 44rem; margin-left: auto; margin-right: auto; }
.cta__text { max-width: 36rem; margin: 0 auto; }
.cta__phone .icon { width: 1.05em; height: 1.05em; fill: currentColor; }
.cta__hours { margin-top: var(--space-4); font-size: var(--fs-xs); opacity: 0.7; }

/* Download, Jobs, Pagecards: Linien statt Grau */
.download__link, .job__link { border-color: var(--line); border-radius: var(--radius-lg); }
.download__link:hover, .job__link:hover { border-color: var(--accent); box-shadow: var(--shadow); transform: translateY(-2px); }
.download__type { background: var(--tint); color: var(--accent-text); }
.pagecard { background: var(--c-white); border: 1px solid var(--line); }
.pagecard__link:hover { box-shadow: var(--shadow); }
.person { background: var(--c-white); border: 1px solid var(--line); border-top: 4px solid var(--accent); }
.textinfobox__box { box-shadow: var(--shadow-sm); }

/* Kontakt-Drawer */
.drawer { border-radius: var(--radius-xl) 0 0 var(--radius-xl); }
.drawer__close { border: 1px solid var(--line); }
.drawer__channel { border: 1px solid var(--line); background: var(--c-white); }
.drawer__channel:hover { background: var(--tint); color: var(--c-dark); border-color: transparent; }
.drawer-toggle { background: var(--c-green); color: #2E3030; }
.drawer-toggle:hover { background: var(--c-dark); color: var(--c-white); }

/* Suche */
.search__form { gap: var(--space-2); }
.search__paging a, .search__paging span { border-color: var(--line); }

/* Allgemein: Section-Überschriften mit Eyebrow bekommen etwas Luft */
.ce .eyebrow + .heading { margin-top: 0; }
/* Große Überschriften in schmalen Spalten eine Stufe kleiner */
.textinfobox .heading--large, .topics .heading--large, .linklist .heading--large, .textpic--left .heading--large, .textpic--right .heading--large { font-size: var(--fs-h2); }
.footer__top .icon { width: 1.1rem; height: 1.1rem; fill: currentColor; }
/* Linien-Icons (stroke) nie füllen */
svg.icon[stroke="currentColor"], .quicklinks__arrow[stroke="currentColor"] { fill: none !important; }
@media (min-width: 640px) { .topic:has(.topic__arrow) .topic__body .link--arrow { display: none; } }
@media (max-width: 899px) {
    .drawer-toggle { display: none !important; }
    .hero__caption .chip { white-space: normal; max-width: 100%; text-align: left; line-height: 1.3; padding-top: 0.45em; padding-bottom: 0.45em; }
    .hero__claim-svg { height: 2rem; }
}
.nav-overlay__search input[type="search"] { background: none; border: 0; min-height: 0; box-shadow: none; color: var(--c-white); }
.nav-overlay .socials svg [stroke]:not([stroke="none"]) { stroke: currentColor; }
.nav-overlay .socials svg [fill]:not([fill="none"]) { fill: currentColor; }
.nav-overlay .socials a { color: var(--c-white); }
.nav-overlay .socials a:hover { color: var(--c-dark); }
.nav-overlay__phone .icon [stroke]:not([stroke="none"]) { stroke: currentColor; }
.nav-overlay__phone .icon [fill]:not([fill="none"]) { fill: currentColor; }
@media (max-width: 639px) {
    .hero__footer { flex-wrap: wrap; row-gap: var(--space-3); }
    .hero__claim { order: -1; width: 100%; display: flex; justify-content: flex-end; }
    .hero__claim-svg { height: 1.9rem; max-width: none; }
    .hero__caption { bottom: 8.25rem; }
    .hero__slide { min-height: 36rem; }
}
.hero__slide { min-width: 0; width: 100%; }
.hero__caption { max-width: 100%; }
@media (max-width: 899px) { .hero__caption .chip { height: auto; min-height: 2.125rem; } }
.fact__value { white-space: normal; overflow-wrap: break-word; text-wrap: balance; }
@media (max-width: 639px) { .fact__value { font-size: 1.5rem; } .fact { padding-left: var(--space-3); padding-right: var(--space-2); } }
.fact__label, .fact__text, .fact__value { overflow-wrap: anywhere; hyphens: auto; }

/* Team: Namen wie auf der Visitenkarte (Vorname fett, Versalien) */
.ce h3.person__name, .person__name { text-transform: uppercase; font-weight: 400; letter-spacing: 0.04em; font-size: var(--fs-base); line-height: 1.3; margin: 0; }
.person__first { font-weight: 700; }
.person__role { margin-top: 0.15em; }
.team__list--compact { grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr)); }
.team__list--compact .person { border-top-width: 1px; border-top-color: var(--line); padding: var(--space-3) var(--space-4); gap: var(--space-1); }
.ce .team__list--compact h3.person__name { text-transform: none; letter-spacing: 0; font-weight: 600; }
/* Bereichsfarbe: --accent muss auf body neu ausgewertet werden (Custom Properties vererben den berechneten Wert) */
body { --accent: var(--area-color); }

/* Illustrationen (SVG/PNG) im Parallax-Band: nicht als Hintergrund dehnen, sondern links neben den Text stellen */
.parallax:has(.parallax__img[src$=".svg"]), .parallax:has(.parallax__img[src$=".png"]) { display: block; min-height: 0; background: var(--c-dark); }
.parallax:has(.parallax__img[src$=".svg"]) .parallax__media, .parallax:has(.parallax__img[src$=".png"]) .parallax__media { position: static; inset: auto; }
.parallax:has(.parallax__img[src$=".svg"]) .parallax__media::after, .parallax:has(.parallax__img[src$=".png"]) .parallax__media::after { content: none; }
.parallax:has(.parallax__img[src$=".svg"]) .parallax__img, .parallax:has(.parallax__img[src$=".png"]) .parallax__img { width: 100%; height: auto; max-height: 28rem; object-fit: contain; object-position: center bottom; }
.parallax:has(.parallax__img[src$=".svg"]) .parallax__content, .parallax:has(.parallax__img[src$=".png"]) .parallax__content { padding-top: var(--space-6); padding-bottom: var(--space-6); }
@media (min-width: 900px) {
    .parallax:has(.parallax__img[src$=".svg"]), .parallax:has(.parallax__img[src$=".png"]) { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); align-items: center; }
    .parallax:has(.parallax__img[src$=".svg"]) .parallax__media, .parallax:has(.parallax__img[src$=".png"]) .parallax__media { padding: var(--space-6) 0 0 var(--gutter); align-self: end; }
    .parallax:has(.parallax__img[src$=".svg"]) .parallax__content, .parallax:has(.parallax__img[src$=".png"]) .parallax__content { padding-left: var(--space-6); padding-right: var(--gutter); margin: 0; max-width: none; }
}

/* Silbentrennung: keine automatische Trennung in Titeln (deutsche Trennung im Browser ist unzuverlässig) */
.heading, .teaser__title, .card__title, .relcard__title, .tile__title, .step__title, .topic__title, .accordion__button, .person__name, .bubble__title, .nav-overlay__title, .pageheader__content .heading--large { hyphens: manual; -webkit-hyphens: manual; overflow-wrap: break-word; }
body { hyphens: manual; }
.fact__label, .fact__text { hyphens: manual; overflow-wrap: anywhere; }

/* Blase: kompakter, Text größer */
.bubble { width: min(100%, 24rem); padding: clamp(1.75rem, 1.5rem + 2vw, 3rem); }
.bubble__title { font-size: clamp(1.25rem, 1.1rem + 0.7vw, 1.625rem); text-wrap: balance; margin-bottom: 0.5em; }
.bubble__text { font-size: var(--fs-base); line-height: 1.5; }
@media (min-width: 900px) { .textbubble__bubble { width: min(100%, 26rem); } }

/* Kontakt-Drawer: Titel enger, Icon im Button weiß */
.drawer__title { line-height: 1.15; }
.drawer-toggle .icon { fill: none; stroke: currentColor; }
.ce-orfo_team.ce--compact .ce__inner { max-width: var(--content-max); }
/* Galerie: einheitliches Raster ohne Lücken */
.gallery__grid { gap: var(--space-3); }
.gallery__item { border-radius: var(--radius-lg); display: block; }
.gallery__img { aspect-ratio: 4 / 3; width: 100%; height: auto; object-fit: cover; }
@media (min-width: 900px) {
    .gallery__grid > :nth-child(3n+1) { grid-row: auto; }
    .gallery__grid > :nth-child(3n+1) .gallery__img { aspect-ratio: 4 / 3; height: auto; }
}
/* Lange Komposita in Titeln dürfen trennen, aber nur mit mindestens 5 Zeichen vor und 4 nach dem Trennstrich */
.heading, .teaser__title, .card__title, .relcard__title, .tile__title, .step__title, .topic__title, .accordion__button, .bubble__title, .nav-overlay__title, .fact__label { hyphens: auto; -webkit-hyphens: auto; hyphenate-limit-chars: 14 6 4; -webkit-hyphenate-limit-before: 6; -webkit-hyphenate-limit-after: 4; overflow-wrap: break-word; }
.pageheader__content .heading--large, .person__name { hyphens: manual; -webkit-hyphens: manual; }

/* Teaser-Icons: weiße Plakette, Glyphe in Kachelfarbe (Themen-Icons bringen ihren eigenen Kreis mit) */
.teaser__icon { background: var(--c-white); color: var(--bg, var(--accent)); width: 3.75rem; height: 3.75rem; }
.teaser__icon svg { width: 2.9rem; height: 2.9rem; }
/* Runde Icon-Buttons: Flex statt Grid (Safari rendert Grid in <button> unzuverlässig), Icon exakt zentriert */
.drawer__close, .nav__toggle, .nav__iconbtn, .nav-overlay__close, .nav-overlay__expand, .slider__prev, .slider__next, .cardslider__prev, .cardslider__next, .footer__top { display: inline-flex; align-items: center; justify-content: center; padding: 0; line-height: 0; flex: none; box-sizing: border-box; }
.drawer__close .icon, .nav-overlay__close .icon { width: 1.1rem; height: 1.1rem; display: block; }
.drawer__close { width: 2.75rem; height: 2.75rem; color: var(--c-dark); background: var(--c-white); }
.drawer__close:hover { background: var(--c-surface); }
.drawer__head { align-items: flex-start; }
.drawer__title { font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem); }

.plugin__intro { max-width: 60ch; margin-bottom: var(--space-5); }
/* Illustrationsbänder: helle Bereichstönung statt Anthrazit, damit die Zeichnungen mit ihrem Kreis stimmig wirken */
.parallax:has(.parallax__img[src$=".svg"]), .parallax:has(.parallax__img[src$=".png"]) { background: var(--tint); color: var(--c-dark); }
.parallax:has(.parallax__img[src$=".svg"]) .button, .parallax:has(.parallax__img[src$=".png"]) .button { border-color: var(--c-dark); color: var(--c-dark); }
.parallax:has(.parallax__img[src$=".svg"]) .button:hover, .parallax:has(.parallax__img[src$=".png"]) .button:hover { background: var(--c-dark); color: var(--c-white); }
.parallax:has(.parallax__img[src$=".svg"]) .eyebrow, .parallax:has(.parallax__img[src$=".png"]) .eyebrow { color: var(--accent-text); }
.parallax:has(.parallax__img[src$=".svg"]) .parallax__img, .parallax:has(.parallax__img[src$=".png"]) .parallax__img { max-height: 26rem; }
@media (min-width: 900px) { .parallax:has(.parallax__img[src$=".svg"]) .parallax__media, .parallax:has(.parallax__img[src$=".png"]) .parallax__media { padding: var(--space-6) 0 var(--space-6) var(--gutter); align-self: center; } }

/* Partner-Badge (z. B. Schuchmann Fachhandelspartner) */
.partner-badge { display: inline-flex; align-items: center; gap: 0.9rem; padding: 0.7rem 1.1rem 0.7rem 0.7rem; border: 1px solid var(--line); border-radius: 999px; background: var(--c-white); margin: var(--space-3) 0 var(--space-2); max-width: 100%; }
.partner-badge__seal { width: 3rem; height: 3rem; border-radius: 50%; background: var(--c-green); color: #2E3030; display: inline-flex; align-items: center; justify-content: center; flex: none; }
.partner-badge__seal::before { content: ""; width: 0.6rem; height: 1.1rem; border-right: 3px solid currentColor; border-bottom: 3px solid currentColor; transform: translateY(-0.15rem) rotate(45deg); }
.partner-badge__text { display: grid; line-height: 1.2; }
.partner-badge__text small { font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--text-muted); }
.partner-badge__text strong { font-size: 1.0625rem; font-weight: 600; letter-spacing: 0.02em; }
.partner-badge__text span { font-size: var(--fs-sm); color: var(--text-muted); }
/* Grenzstein-Zeitleiste: Karten mit Monatsangabe, Figur freigestellt auf Bereichstönung */
.ce--timeline .cardslider__track { grid-auto-columns: minmax(15rem, 18rem); }
.ce--timeline .card__media { background: var(--tint); padding: var(--space-4) var(--space-5); }
.ce--timeline .card__img { aspect-ratio: 16 / 10; object-fit: contain; mix-blend-mode: normal; }
.ce--timeline .card__title { font-size: var(--fs-h2); color: var(--accent-text); letter-spacing: -0.02em; }
.ce--timeline .card__text ul { padding-left: 1.1em; margin: 0; }
.ce--timeline .card__text li { margin-bottom: 0.35em; }
/* Themen-Icons bringen ihren eigenen Kreis mit: kein zusätzlicher getönter Kreis dahinter */
.topic__icon { background: none; width: 3.5rem; height: 3.5rem; }
.topic__icon svg { width: 3.5rem; height: 3.5rem; }
.ce--compact .topic__icon, .ce--compact .topic__icon svg { width: 3rem; height: 3rem; }
/* Feature-Reihen (ersetzt Sticky Slider) */
.featurelist__intro { max-width: 60ch; margin-bottom: var(--space-6); }
.featurelist__list { list-style: none; display: grid; gap: var(--space-7); }
.feature { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-4); align-items: center; }
.feature__media { border-radius: var(--radius-xl); overflow: hidden; background: var(--c-surface); }
.feature__img { width: 100%; height: 100%; object-fit: cover; }
.feature__body { display: grid; gap: var(--space-2); align-content: center; max-width: 52ch; }
.feature__index { display: inline-flex; align-items: center; justify-content: center; width: 2.5rem; height: 2.5rem; border-radius: 50%; background: var(--tint); color: var(--accent-text); font-weight: 600; font-size: var(--fs-sm); font-variant-numeric: tabular-nums; margin-bottom: var(--space-1); }
.feature__title { margin: 0; }
.feature__text > :last-child { margin-bottom: 0; }
@media (min-width: 900px) {
    .feature { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--space-7); }
    .feature--flip .feature__media { order: 2; }
    .feature--flip .feature__body { justify-self: end; }
    .feature:not(:has(.feature__media)) { grid-template-columns: minmax(0, 1fr); }
}

/* Logo: beim Scrollen wechselt die Wort-Punkt-Marke zur schmalen Label-Variante (wie auf der alten Site) */
.nav__logo { position: relative; display: block; }
.nav__logo .logo { transition: opacity 0.35s var(--ease), transform 0.35s var(--ease); }
.nav__logo .logo--compact { position: absolute; left: 0; top: 50%; transform: translateY(-50%) scale(0.92); transform-origin: left center; opacity: 0; height: clamp(2rem, 1.5rem + 1.2vw, 2.6rem); width: auto; pointer-events: none; }
.nav.is-scrolled .nav__logo .logo--full { opacity: 0; transform: scale(0.92); transform-origin: left center; }
.nav.is-scrolled .nav__logo .logo--compact { opacity: 1; transform: translateY(-50%) scale(1); }
@media (prefers-reduced-motion: reduce) { .nav__logo .logo { transition: none; } }
.download__icon { width: 1.5rem; height: 1.5rem; color: var(--accent-text); }
.download__meta { color: var(--text-muted); }

/* Fakten: flexible Spaltenzahl (3 oder 4), Trennlinie links; erste Spalte verbirgt ihre Linie per Überlauf */
.facts__list { clip-path: inset(0 0 0 1px); }
.facts__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-5) 0; margin-left: -1px; }
@media (min-width: 760px) { .facts__list { grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); } }
.fact, .fact:first-child, .fact:nth-child(odd), .fact:nth-child(3n+1), .fact:nth-child(n+3), .fact:nth-child(n+4) { border-left: 1px solid var(--line); border-top: 0; padding-left: var(--space-4); }
.ce.bg-green .fact, .ce.bg-yellow .fact, .ce.bg-orange .fact, .ce.bg-red .fact, .ce.bg-blue .fact { border-left-color: rgba(255,255,255,0.35); }
/* Themenliste als Kartenraster (z. B. Benefits) */
.ce--grid .topics__list { grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr)); gap: var(--space-3); }
.ce--grid .topic { grid-template-columns: minmax(0, 1fr); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: var(--space-4) var(--space-5); background: var(--c-white); border-bottom: 1px solid var(--line); }
.ce--grid .topic::before { content: ""; display: block; width: 2.5rem; height: 4px; border-radius: 2px; background: var(--accent); margin-bottom: var(--space-3); }
.ce--grid .topic__arrow { display: none; }
.ce--grid .topic__text { font-size: var(--fs-sm); }
/* Durchwahl-Kacheln */
.team__list--compact { grid-template-columns: minmax(0, 1fr); gap: var(--space-3); }
@media (min-width: 760px) { .team__list--compact { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.ce .team__list--compact .person { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--space-2) var(--space-5); align-items: start; padding: var(--space-4) var(--space-5); border: 1px solid var(--line); border-top-width: 1px; border-radius: var(--radius-lg); background: var(--tint); }
.ce .team__list--compact .person__body { display: contents; }
.ce .team__list--compact h3.person__name { font-size: var(--fs-h3); grid-column: 1; }
.team__list--compact .person__text { grid-column: 1; font-size: var(--fs-sm); color: var(--text-muted); }
.team__list--compact .person__text p { margin: 0; }
.team__list--compact .person__contact { grid-column: 2; grid-row: 1 / span 2; text-align: right; display: grid; gap: 0.3em; font-size: var(--fs-base); }
.team__list--compact .person__contact a { font-weight: 600; color: var(--c-dark); white-space: nowrap; }
.team__list--compact .person__contact a:hover { color: var(--accent-text); }
@media (max-width: 639px) { .ce .team__list--compact .person { grid-template-columns: minmax(0, 1fr); } .team__list--compact .person__contact { grid-column: 1; grid-row: auto; text-align: left; } }
/* Bild neben Text: ruhiges, einheitliches Format; Köpfe bleiben im Bild */
@media (min-width: 900px) { .textpic--left .textpic__media--1 .textpic__img, .textpic--right .textpic__media--1 .textpic__img { aspect-ratio: 1 / 1; object-fit: cover; object-position: center top; } }
.textpic__img[src$=".png"], .textpic__img[src$=".svg"] { object-fit: contain; }
.textpic__img[src$=".svg"] { padding: 6%; box-sizing: border-box; }
.ce--timeline .card__media { padding: var(--space-3) var(--space-4); }
.ce--timeline .card__img { aspect-ratio: 4 / 3; }
.ce--timeline .card__title { font-size: clamp(1.5rem, 1.2rem + 0.9vw, 1.9rem); white-space: nowrap; }
.ce--timeline .cardslider__track { grid-auto-columns: minmax(16rem, 19rem); }
.fact, .fact__label, .fact__text, .fact__value { overflow-wrap: anywhere; min-width: 0; }

.partner-badge__logo { height: 2rem; width: auto; margin: 0.15rem 0; display: block; }
/* Logo-Wechsel beim Scrollen: Wortmarke bleibt exakt an Ort und Stelle (Label = 47 % der Logohöhe, unten links), danach rückt sie in die Mitte der schmaleren Leiste */
.nav__logo { --logo-h: clamp(2.4rem, 1.8rem + 1.6vw, 3.4rem); position: relative; display: block; height: var(--logo-h); }
.nav__logo .logo--full { height: var(--logo-h); width: auto; transition: opacity 0.3s var(--ease); }
.nav__logo .logo--compact { position: absolute; left: 0; bottom: 0; top: auto; height: calc(var(--logo-h) * 0.47); width: auto; opacity: 0; transform: none; pointer-events: none; transition: opacity 0.3s var(--ease), bottom 0.4s var(--ease), transform 0.4s var(--ease); }
.nav.is-scrolled .nav__logo .logo--full { opacity: 0; transform: none; }
.nav.is-scrolled .nav__logo .logo--compact { opacity: 1; bottom: 50%; transform: translateY(50%); transition: opacity 0.3s var(--ease), bottom 0.4s 0.35s var(--ease), transform 0.4s 0.35s var(--ease); }
.nav__bar { transition: height 0.4s var(--ease); }
@media (min-width: 900px) { .nav.is-scrolled .nav__bar { height: 4.25rem; transition-delay: 0.35s; } }
@media (prefers-reduced-motion: reduce) { .nav__logo .logo, .nav__bar { transition: none !important; } }

/* Footer: neutrale Zwischentitel, Akzent nur im gelben Punkt (wie im Logo), auf allen Seiten gleich */
.footer__col .eyebrow { color: var(--c-dark); }
.footer__col a:hover, .footer__legal a:hover { color: var(--c-dark); text-decoration: underline; }
.footer .link--arrow::after { background: var(--c-yellow); }
.footer .text-label { color: var(--c-dark); font-weight: 600; }
.footer__top:hover { background: var(--c-yellow); color: #2E3030; }

/* Lightbox */
.is-zoomable { cursor: zoom-in; }
.lightbox { position: fixed; inset: 0; z-index: 400; background: rgba(28,30,30,0.92); display: grid; place-items: center; padding: clamp(1rem, 4vw, 3rem); }
.lightbox[hidden] { display: none; }
.lightbox__figure { margin: 0; max-width: min(1200px, 100%); max-height: 100%; display: grid; gap: var(--space-3); justify-items: center; }
.lightbox__img { max-width: 100%; max-height: calc(100vh - 8rem); width: auto; height: auto; object-fit: contain; border-radius: var(--radius-lg); background: var(--c-white); }
.lightbox__caption { color: rgba(255,255,255,0.8); font-size: var(--fs-sm); text-align: center; max-width: 60ch; }
.lightbox__close { position: fixed; top: max(1rem, env(safe-area-inset-top, 0px)); right: max(1rem, env(safe-area-inset-right, 0px)); width: 2.75rem; height: 2.75rem; border-radius: 50%; background: var(--c-white); color: var(--c-dark); display: inline-flex; align-items: center; justify-content: center; }
.lightbox__close svg { width: 1.1rem; height: 1.1rem; }
body.has-lightbox { overflow: hidden; }
/* Kartenslider mit bis zu drei Karten: als Raster über die volle Breite, ohne Pfeile */
@media (min-width: 760px) {
    .cardslider__track:not(:has(> li:nth-child(4))) { grid-auto-flow: row; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); overflow: visible; padding-left: 0; padding-right: 0; }
    .cardslider__wrap:has(.cardslider__track:not(:has(> li:nth-child(4)))) .cardslider__prev, .cardslider__wrap:has(.cardslider__track:not(:has(> li:nth-child(4)))) .cardslider__next { display: none; }
    .cardslider__track:not(:has(> li:nth-child(4))) .card__img { aspect-ratio: 4 / 3; }
}

.nowrap { white-space: nowrap; }

/* Silbentrennung: keine automatische Trennung mehr; lange Fachwörter bekommen weiche Trennstellen per JS (orfo.js, SHY-Wörterbuch) */
*, .heading, .teaser__title, .card__title, .relcard__title, .tile__title, .step__title, .topic__title, .accordion__button, .bubble__title, .nav-overlay__title, .fact, .fact__label, .fact__text, .fact__value { hyphens: manual !important; -webkit-hyphens: manual !important; }
.fact__label, .fact__text, .fact__value, .teaser__title { overflow-wrap: break-word; }

/* Kontaktkarte (Startseite, textinfobox--contact) */
.textinfobox--contact { align-items: center; }
.textinfobox--contact .textinfobox__text .ce-bodytext, .textinfobox--contact .textinfobox__text p { max-width: 36rem; }
.textinfobox--contact .checklist { list-style: none; padding: 0; margin: var(--space-4) 0 0; display: grid; gap: 0.6rem; max-width: 36rem; }
.textinfobox--contact .checklist li { display: flex; gap: 0.75rem; align-items: flex-start; font-weight: 500; }
.textinfobox--contact .checklist .icon { flex: 0 0 auto; width: 1.5rem; height: 1.5rem; margin-top: 0.1rem; border-radius: 50%; background: rgba(255,255,255,0.22); padding: 0.25rem; }
.textinfobox--contact .textinfobox__text .button { margin-top: var(--space-5); }
.contactcard { background: var(--c-white); color: var(--c-dark); border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-md, 0 18px 40px rgba(0,0,0,0.12)); display: flex; flex-direction: column; }
.contactcard__img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; }
.contactcard__body { padding: var(--space-5); display: grid; gap: var(--space-4); }
.contactcard__title { margin: 0; }
.contactcard__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.9rem; }
.contactcard__list li { display: flex; gap: 0.85rem; align-items: flex-start; line-height: 1.45; }
.contactcard__list .icon { flex: 0 0 auto; width: 2.25rem; height: 2.25rem; padding: 0.55rem; border-radius: 50%; background: var(--c-surface); color: var(--c-dark); }
.contactcard__label { display: block; font-size: 0.75rem; letter-spacing: 0.08em; text-transform: uppercase; font-weight: 600; color: var(--c-muted, #6b6f6a); margin-bottom: 0.1rem; }
.contactcard__list a { color: var(--c-dark); text-decoration: none; font-weight: 600; }
.contactcard__list a:hover { text-decoration: underline; }
.contactcard__list small { color: var(--c-muted, #6b6f6a); }
.contactcard__actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3) var(--space-4); padding-top: var(--space-2); border-top: 1px solid var(--c-line, #e6e8e3); }
.contactcard__actions .button { background: var(--c-dark); color: var(--c-white); border-color: var(--c-dark); }
.contactcard__actions .button:hover, .contactcard__actions .button:focus-visible { background: var(--c-yellow); color: var(--c-dark); border-color: var(--c-yellow); }
.contactcard__actions .link--arrow { color: var(--c-dark); }
@media (min-width: 1024px) { .textinfobox--contact { grid-template-columns: minmax(0, 1.5fr) minmax(20rem, 1fr); } }

/* Bildkacheln: lesbarer Verlauf, Überschrift in Weiß */
.tile--image .tile__body { background: linear-gradient(to top, rgba(32,34,34,0.88) 0%, rgba(32,34,34,0.55) 45%, rgba(32,34,34,0) 100%); padding-top: var(--space-8); }
.tile__heading, .tile--image .subheading { color: var(--c-white); }
.tile__heading { margin-bottom: 0.2em; }
.tile--image .tile__title { font-size: var(--fs-h4, 1.25rem); }
.tile--image .tile__text { color: rgba(255,255,255,0.92); }
.tile--text .tile__title { font-size: var(--fs-h3); }
.tile--text .button--light { border-color: currentColor; color: inherit; }
.tile--text .button--light:hover { background: var(--c-dark); color: var(--c-white); border-color: var(--c-dark); }
.tile__link:focus-visible { outline: 3px solid var(--c-yellow); outline-offset: 2px; }
@media (min-width: 1024px) { .tiles__grid--3 > :nth-child(n+2) { grid-row: span 2; } }

/* Partner-Badge: Logo im Vordergrund, Zeile darüber, kein Haken */
.partner-badge { gap: 0; padding: 0.9rem 1.5rem; border-radius: var(--radius-md, 1rem); border: 1px solid var(--line); text-decoration: none; }
.partner-badge__text { gap: 0.45rem; text-decoration: none; }
.partner-badge__text small { text-decoration: none; }
.partner-badge__logo { height: 3.25rem; margin: 0; }
.partner-badge:hover { border-color: var(--c-dark); }

/* Logo-Wand (Partner, Mitgliedschaften) */
.logowall { list-style: none; margin: var(--space-4) 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr)); gap: var(--space-3); max-width: 60rem; }
.logowall li { margin: 0; }
.logowall a { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.6rem; min-height: 9rem; padding: 1.1rem 1rem; background: var(--c-white); border: 1px solid var(--line); border-radius: var(--radius-md, 1rem); text-decoration: none; color: var(--c-dark); text-align: center; transition: border-color 0.2s var(--ease), transform 0.3s var(--ease); }
.logowall a:hover { border-color: var(--c-dark); transform: translateY(-2px); }
.logowall img { max-height: 4.25rem; width: auto; max-width: 100%; object-fit: contain; }
.logowall__word { font-size: 1.5rem; font-weight: 500; letter-spacing: -0.01em; line-height: 1; }
.logowall__word strong { font-weight: 700; }
.logowall small { font-size: 0.75rem; line-height: 1.3; color: var(--text-muted); }

/* Text mit Video (Fräsroboter): Hochformat, stumm, Schleife, Pause-Schalter */
.textpic__figure--video { position: relative; margin: 0; border-radius: var(--radius-lg); overflow: hidden; background: var(--c-dark); }
.textpic__video { display: block; width: 100%; height: auto; max-height: 36rem; object-fit: cover; aspect-ratio: 454 / 736; }
.textpic--video .textpic__media { max-width: 26rem; justify-self: center; width: 100%; }
.textpic__videotoggle { position: absolute; right: 0.75rem; bottom: 0.75rem; width: 2.5rem; height: 2.5rem; border-radius: 50%; border: 0; background: rgba(255,255,255,0.9); color: var(--c-dark); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; box-shadow: var(--shadow-sm); }
.textpic__videotoggle .icon { width: 1.25rem; height: 1.25rem; }
.textpic__videotoggle[aria-pressed="true"] .icon--play, .textpic__videotoggle[aria-pressed="false"] .icon--pause { display: none; }
@media (prefers-reduced-motion: reduce) { .textpic__video { animation: none; } }

/* Letzte Sicherung gegen Überlauf in schmalen Spalten (greift nur, wenn ein Wort trotz Trennstellen nicht passt) */
.fact__text, .fact__label, .job__title, .job__meta, .relcard__title, .pagecard__title, .card__title, .topic__title { overflow-wrap: anywhere; }

/* Kartenslider: Pfeile immer dunkel auf Weiß, Schatten der Karten nicht abschneiden */
.cardslider__prev, .cardslider__next { color: var(--c-dark); background: var(--c-white); border: 1px solid var(--line); box-shadow: 0 6px 18px rgba(0,0,0,0.14); }
.cardslider__prev .icon, .cardslider__next .icon { color: var(--c-dark); width: 1.1rem; height: 1.1rem; }
.cardslider__prev:hover, .cardslider__next:hover { background: var(--c-dark); color: var(--c-white); }
.cardslider__prev:hover .icon, .cardslider__next:hover .icon { color: var(--c-white); }
.cardslider__prev[disabled], .cardslider__next[disabled] { opacity: 0.45; }
.cardslider__track { padding: 0.75rem 0.75rem 2.75rem; margin: -0.75rem -0.75rem -1.75rem; scroll-padding: 0 0.75rem; }
@media (min-width: 1024px) { .cardslider__track:not(:has(> li:nth-child(4))) { margin-left: 0; margin-right: 0; padding-left: 0; padding-right: 0; } }
/* Fußzeile: Schriftgrößen-Schalter auf einer Linie mit Impressum/Datenschutz */
.footer__legal ul { align-items: center; }
.footer__fontsize { font: inherit; color: inherit; background: none; border: 0; padding: 0; line-height: inherit; cursor: pointer; }
.footer__fontsize .icon { width: 1em; height: 1em; }
/* Partner-Badge zentriert */
.partner-badge { justify-content: center; }
.partner-badge__text { justify-items: center; text-align: center; }

/* Durchwahl-Kacheln (Team-Variante compact) */
.contacttiles { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-4); grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr)); }
.contacttile { position: relative; display: flex; flex-direction: column; gap: 0.6rem; padding: var(--space-5); background: var(--c-white); border: 1px solid var(--line); border-radius: var(--radius-lg); transition: transform var(--dur) var(--ease), box-shadow var(--dur), border-color var(--dur); }
.contacttile::before { content: ""; position: absolute; left: var(--space-5); top: 0; width: 2.5rem; height: 4px; border-radius: 0 0 4px 4px; background: var(--accent); }
.contacttile:hover { transform: translateY(-3px); box-shadow: var(--shadow); border-color: transparent; }
.contacttile__num { position: absolute; right: var(--space-4); top: var(--space-4); font-size: 0.75rem; font-weight: 600; letter-spacing: 0.08em; color: var(--text-muted); }
.ce .contacttile__title, .contacttile__title { margin: 0.4rem 0 0; font-size: 1.125rem; font-weight: 600; line-height: 1.25; text-transform: none; letter-spacing: 0; padding-right: 2rem; }
.contacttile__text { font-size: var(--fs-sm); color: var(--text-muted); line-height: 1.5; }
.contacttile__text p { margin: 0; }
.contacttile__contact { list-style: none; margin: auto 0 0; padding: var(--space-3) 0 0; border-top: 1px solid var(--line); display: grid; gap: 0.5rem; }
.contacttile__contact a { display: inline-flex; align-items: center; gap: 0.6rem; font-weight: 600; color: var(--c-dark); text-decoration: none; word-break: break-all; }
.contacttile__contact a:hover span { text-decoration: underline; }
.contacttile__contact .icon { flex: none; width: 1.9rem; height: 1.9rem; padding: 0.45rem; border-radius: 50%; background: var(--c-surface); color: var(--c-dark); }
/* Kartenraster mit Icon (Berufsfelder): Icon oben, kein Akzentstrich, klarere Titel */
.ce--grid .topic:has(.topic__icon) { grid-template-columns: minmax(0, 1fr); align-content: start; padding: var(--space-5); }
.ce--grid .topic:has(.topic__icon)::before { content: none; }
.ce--grid .topic:has(.topic__icon) .topic__icon { grid-column: 1; width: 3.5rem; height: 3.5rem; background: var(--c-surface); color: var(--accent); margin-bottom: var(--space-3); }
.ce--grid .topic:has(.topic__icon) .topic__icon svg { width: 2.2rem; height: 2.2rem; }
.ce--grid .topic:has(.topic__icon) .topic__body { grid-column: 1; }
.ce--grid .topic__title { font-size: 1.125rem; margin-bottom: 0.35rem; }
.ce--grid .topic__text { color: var(--text-muted); line-height: 1.5; }
.ce--grid .topic__text em { font-style: normal; }
.stars { display: inline-flex; gap: 0.15rem; }
.stars svg { width: 1.1rem; height: 1.1rem; fill: var(--c-yellow); }
.logowall a { min-height: 11rem; gap: 0.75rem; }
.logowall img { max-height: 4rem; max-width: 11rem; }
.ce--layout-20 .textpic--video .textpic__text { padding: 0; }

/* Fachbeiträge */
.articles__intro { max-width: 46rem; margin-bottom: var(--space-5); }
.articles__list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-4); }
.article { display: grid; gap: 0.5rem; padding: var(--space-5); background: var(--c-white); border: 1px solid var(--line); border-radius: var(--radius-lg); }
.article__meta { margin: 0; display: flex; flex-wrap: wrap; gap: 0.5rem 1rem; font-size: 0.75rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--accent-text, var(--accent)); }
.article__year { color: var(--text-muted); }
.ce .article__title, .article__title { margin: 0; }
.article__title a { color: inherit; text-decoration: none; }
.article__title a:hover { text-decoration: underline; }
.article__authors { margin: 0; font-weight: 600; color: var(--text-muted); font-size: var(--fs-sm); }
.article__abstract { max-width: 52rem; color: var(--c-dark); }
.article__abstract p:last-child { margin-bottom: 0; }
.article__link { justify-self: start; margin-top: 0.5rem; }
.article__note { margin: 0; font-size: var(--fs-sm); color: var(--text-muted); }
.source { font-size: var(--fs-sm); color: var(--text-muted); }

/* Sprachen-Chips (Kontakt): Sprachname in eigener Schrift, neutrales Sprechblasen-Icon, keine Flaggen */
.langs { list-style: none; margin: 0.5rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.6rem; }
.langs__item { display: inline-flex; align-items: center; gap: 0.55rem; padding: 0.45rem 0.9rem 0.45rem 0.7rem; border: 1px solid var(--border, rgba(0,0,0,0.12)); border-radius: 999px; background: var(--c-surface, #fff); line-height: 1.25; }
.langs__item::before { content: ""; flex: 0 0 1.25rem; width: 1.25rem; height: 1.25rem; background: currentColor; -webkit-mask: url("../Icons/ChatLine.svg") center / contain no-repeat; mask: url("../Icons/ChatLine.svg") center / contain no-repeat; color: var(--accent-text, var(--accent, #66771D)); }
.langs__item[dir="rtl"] { flex-direction: row-reverse; padding: 0.45rem 0.7rem 0.45rem 0.9rem; }
.langs__name { font-weight: 700; }
.langs__text { font-size: var(--fs-sm); color: var(--text-muted); }
.langs__text::before { content: "·"; margin-right: 0.45rem; color: var(--text-muted); }
.langs__item[dir="rtl"] .langs__text::before { margin-right: 0; margin-left: 0.45rem; }
@media (max-width: 600px) { .langs__text { display: none; } }
.article__link { white-space: nowrap; }
.article__meta span { display: inline-flex; align-items: center; }
.article__meta .article__source::after { content: "·"; margin-left: 1rem; color: var(--text-muted); }
.contacttiles { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 700px) { .contacttiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1200px) { .contacttiles { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.contacttile__num { display: none; }
.ce .contacttile__title, .contacttile__title { padding-right: 0; }
.ce-bodytext:has(.logowall), .textpic__text:has(.logowall) { max-width: none; }
.logowall { max-width: none; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); gap: var(--space-4); }
.logowall a { min-height: 13rem; padding: 1.5rem 1.25rem; }
.logowall img { max-height: 4.5rem; max-width: 13rem; }
.logowall small { font-size: 0.8125rem; max-width: 16rem; }

.textpic--video-landscape .textpic__media { max-width: none; }
.textpic--video-landscape .textpic__video { max-height: none; aspect-ratio: 16 / 9; }
.cardslider__track { margin-left: 0; margin-right: 0; padding-left: 0.25rem; padding-right: 0.25rem; }
@media (min-width: 1024px) { .cardslider__track { margin-left: -0.75rem; margin-right: -0.75rem; padding-left: 0.75rem; padding-right: 0.75rem; } .cardslider__track:not(:has(> li:nth-child(4))) { margin-left: 0; margin-right: 0; padding-left: 0; padding-right: 0; } }
.articles__list, .article { min-width: 0; max-width: 100%; }
.article__abstract, .article__title { overflow-wrap: anywhere; }
.card__text, .topic__text, .article__abstract { overflow-wrap: anywhere; }
.step__text, .accordion__panel { overflow-wrap: anywhere; }

/* Team-Block mit Bild neben der Einleitung */
.team__head { display: grid; gap: var(--space-4); margin-bottom: var(--space-5); align-items: center; }
.team__figure { margin: 0; border-radius: var(--radius-lg); overflow: hidden; }
.team__img { width: 100%; height: auto; display: block; }
@media (min-width: 900px) { .team__head { grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: var(--space-6); } }
/* Durchwahl-Kacheln: maximal zwei Spalten, nichts abschneiden */
@media (min-width: 1200px) { .contacttiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.contacttile__contact a { font-size: 0.95rem; word-break: normal; overflow-wrap: anywhere; min-width: 0; }
.contacttile__contact a span { min-width: 0; }
.contacttile__contact li { min-width: 0; }
/* Produktfotos in Infoboxen: ganzes Objekt zeigen statt oben beschneiden */
@media (min-width: 900px) { .ce--layout-20 .textpic--left .textpic__media--1 .textpic__img, .ce--layout-20 .textpic--right .textpic__media--1 .textpic__img { aspect-ratio: 4 / 5; object-fit: contain; object-position: center; background: rgba(255,255,255,0.6); } }

/* ORFO in Zahlen (Startseite): dunkle Bühne, große Zahlen, gelber Punkt wie im Logo */
.ce-orfo_facts.ce--showcase { background: var(--c-dark); color: var(--c-white); padding: calc(var(--section-gap) * 1.1) 0; }
.ce-orfo_facts.ce--showcase .heading, .ce-orfo_facts.ce--showcase .eyebrow { color: var(--c-white); }
.ce-orfo_facts.ce--showcase .facts__list { gap: var(--space-4); grid-template-columns: repeat(2, 1fr); }
@media (min-width: 900px) { .ce-orfo_facts.ce--showcase .facts__list { grid-template-columns: repeat(3, 1fr); } }
.ce-orfo_facts.ce--showcase .fact, .ce-orfo_facts.ce--showcase .fact:nth-child(n) { border: 1px solid rgba(255,255,255,0.12); border-radius: var(--radius-lg); background: rgba(255,255,255,0.05); padding: var(--space-5); gap: var(--space-2); transition: background var(--dur) var(--ease), transform var(--dur) var(--ease); }
.ce-orfo_facts.ce--showcase .fact:hover { background: rgba(255,255,255,0.09); transform: translateY(-3px); }
.ce-orfo_facts.ce--showcase .fact__value { color: var(--c-green); font-size: clamp(1.9rem, 1.2rem + 1.5vw, 2.6rem); line-height: 1.05; letter-spacing: -0.03em; white-space: nowrap; text-wrap: nowrap; }
.ce-orfo_facts.ce--showcase .fact__value::after { content: ""; display: inline-block; width: 0.22em; height: 0.22em; border-radius: 50%; background: var(--c-yellow); margin-left: 0.08em; vertical-align: 0; }
.ce-orfo_facts.ce--showcase .fact__label { font-size: var(--fs-lead); color: var(--c-white); line-height: 1.25; }
.ce-orfo_facts.ce--showcase .fact__text { color: rgba(255,255,255,0.72); font-size: var(--fs-sm); line-height: 1.55; }
.ce-orfo_facts.ce--showcase .fact__text a, .ce-orfo_facts.ce--showcase .fact .link--arrow { color: var(--c-white); }
.ce-orfo_facts.ce--showcase .fact .link--arrow::after { background: var(--c-green); color: var(--c-dark); }
@media (max-width: 639px) { .ce-orfo_facts.ce--showcase .fact__value { font-size: 1.6rem; } .ce-orfo_facts.ce--showcase .fact { padding: var(--space-4); } .ce-orfo_facts.ce--showcase .facts__list { grid-template-columns: 1fr; } }

/* Zitat (Startseite, Variante feature): getönte Bühne, großes Portrait, große Anführungszeichen */
.ce-orfo_quote.ce--feature { background: linear-gradient(135deg, rgba(170,195,65,0.14), rgba(249,190,55,0.12)); padding: calc(var(--section-gap) * 1.1) 0; }
.ce-orfo_quote.ce--feature .quote { max-width: var(--content-max); align-items: center; }
@media (min-width: 900px) { .ce-orfo_quote.ce--feature .quote { grid-template-columns: 22rem minmax(0, 1fr); gap: var(--space-8); } }
.ce-orfo_quote.ce--feature .quote__media { width: min(100%, 22rem); border: 10px solid var(--c-white); box-shadow: 0 24px 60px -24px rgba(58,60,60,0.45); position: relative; }
.ce-orfo_quote.ce--feature .quote__wrap { position: relative; width: min(100%, 22rem); margin: 0 auto; }
.ce-orfo_quote.ce--feature .quote__dot { position: absolute; right: 4%; bottom: 6%; width: 3.25rem; height: 3.25rem; border-radius: 50%; background: var(--c-yellow); border: 5px solid var(--c-white); box-shadow: var(--shadow-sm); }
.ce-orfo_quote.ce--feature .quote__mark { width: 3.25rem; height: 3.25rem; color: var(--c-green); fill: var(--c-green); }
.ce-orfo_quote.ce--feature .quote__mark path, .ce-orfo_quote.ce--feature .quote__mark * { fill: currentColor; }
.ce-orfo_quote.ce--feature .quote__text { font-size: clamp(1.15rem, 1rem + 0.6vw, 1.5rem); line-height: 1.45; font-weight: 500; letter-spacing: -0.01em; color: var(--c-dark); }
.ce-orfo_quote.ce--feature .quote__author { margin-top: var(--space-5); display: grid; gap: 0.35rem; }
.ce-orfo_quote.ce--feature .quote__author strong { font-size: var(--fs-lead); }
.ce-orfo_quote.ce--feature .quote__author span { display: inline-block; background: var(--c-white); border: 1px solid var(--line); border-radius: 999px; padding: 0.3rem 0.8rem; font-size: var(--fs-xs); font-weight: 600; letter-spacing: 0.02em; color: var(--c-dark); }
.ce-orfo_quote.ce--feature .quote__author br { display: none; }

/* Bild unter dem Video (z. B. BUKO in Anwendung) und Hinweis unter dem Video */
.textpic--video .textpic__media { display: grid; gap: var(--space-3); }
.textpic__figure--under { margin: 0; border-radius: var(--radius-lg); overflow: hidden; }
.textpic__img--under { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.textpic__figure--video .textpic__caption { padding: 0.6em 0.9em 0.7em; color: rgba(255,255,255,0.85); background: var(--c-dark); font-size: var(--fs-xs); line-height: 1.4; }
.textpic--video-landscape .textpic__media { max-width: none; }
.textpic--video-landscape .textpic__img--under { aspect-ratio: 16 / 10; object-position: center 20%; }
.ce--layout-20 .textpic__img--under { object-fit: cover; aspect-ratio: 4 / 5; }
.ce--layout-20.textpic--video-landscape .textpic__img--under, .textpic--video-landscape .textpic__img--under { aspect-ratio: 16 / 10; }

/* Foto-Slider (echte Fotos statt Freisteller): Bild füllt die Karte */
.ce--photo .card__media { padding: 0; background: var(--c-surface); }
.ce--photo .card__img { object-fit: cover; mix-blend-mode: normal; aspect-ratio: 4 / 5; }
.partner-badges { display: flex; flex-wrap: wrap; gap: var(--space-3); align-items: stretch; }
.partner-badges .partner-badge { margin: var(--space-2) 0 0; }
.gallery__intro { max-width: 68ch; margin-bottom: var(--space-4); }
.gallery figcaption { font-size: var(--fs-xs); color: var(--text-muted); padding: 0.5em 0.1em 0; }

/* Benefits-Raster mit Bildkachel in der Mitte */
@media (min-width: 900px) { .ce--grid .topics__list:has(.topic--image) { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.ce--grid .topic--image { padding: 0; overflow: hidden; border: 0; background: var(--c-surface); min-height: 14rem; }
.ce--grid .topic--image::before { content: none; }
.topic__figure { margin: 0; height: 100%; }
.topic__img { display: block; width: 100%; height: 100%; object-fit: cover; aspect-ratio: 1; }
@media (min-width: 900px) { .ce--grid .topic--image .topic__img { aspect-ratio: auto; } }

/* Overlay-Menü: Logo nicht am oberen Rand kleben lassen */
.nav-overlay__header { height: auto; min-height: var(--nav-height); padding-top: clamp(1rem, 0.6rem + 1.4vw, 2rem); padding-bottom: var(--space-3); align-items: center; }
@media (min-width: 900px) { .team__head { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: var(--space-7); } }
.team__head .team__intro { font-size: var(--fs-lead); line-height: 1.55; margin-bottom: 0; max-width: 34em; }
.team__head .team__img { aspect-ratio: 16 / 10; object-fit: cover; object-position: center 30%; }

/* Öffnungszeiten tabellarisch ausgerichtet */
.hours { display: grid; grid-template-columns: max-content max-content; column-gap: 0.75em; row-gap: 0.1em; font-variant-numeric: tabular-nums; }
.hours__t { white-space: nowrap; }
.quicklinks__text small.hours { display: grid; }
.contactcard__list .hours + small { display: block; margin-top: 0.3em; }
.fact__link { margin-top: var(--space-2); font-size: var(--fs-sm); }
/* Feature-Reihen mit Produktfotos: nichts abschneiden */
.ce--product .feature__media { background: var(--c-surface); border-radius: var(--radius-lg); overflow: hidden; }
.ce--product .feature__img { object-fit: contain; mix-blend-mode: multiply; padding: var(--space-3); box-sizing: border-box; }
@media (min-width: 900px) {
    .ce--grid .topic--image { position: relative; min-height: 15rem; }
    .ce--grid .topic--image .topic__figure { position: absolute; inset: 0; }
    .ce--grid .topic--image .topic__figure picture, .ce--grid .topic--image .topic__img { position: absolute; inset: 0; width: 100%; height: 100%; }
}
.ce--grid .topic { align-content: start; }

/* Nachricht an eine Person: Hinweis im Formular, Button in der Personenkarte, Portraits */
.form__recipient { display: flex; flex-wrap: wrap; gap: 0.35em; align-items: center; background: var(--tint, var(--c-surface)); border-radius: var(--radius-md, 0.75rem); padding: 0.6rem 0.9rem; font-size: var(--fs-sm); margin: 0 0 var(--space-3); }
.form__recipient-reset { background: none; border: 0; padding: 0; color: var(--accent-text); text-decoration: underline; cursor: pointer; font: inherit; }
.person__img { display: block; width: 100%; }
/* Zwei Partner-Badges mit Luft */
.partner-badges { gap: var(--space-4); }
/* Fünf Fakten nebeneinander auf breiten Bildschirmen */
@media (min-width: 1100px) { .facts__list:has(> li:nth-child(5):last-child) { grid-template-columns: repeat(5, minmax(0, 1fr)); } .facts__list:has(> li:nth-child(5):last-child) .fact:nth-child(n+4) { border-top: 0; } .facts__list:has(> li:nth-child(5):last-child) .fact:nth-child(3n+1) { border-left: 1px solid var(--line); padding-left: var(--space-4); } .facts__list:has(> li:nth-child(5):last-child) .fact:first-child { border-left: 0; padding-left: 0; } }

/* Personenkarten: Kopf (Portrait + Name), Fuß (Button oder Kontakt) bündig am Kartenende */
.team__list--cards .person { display: flex; flex-direction: column; gap: var(--space-4); padding: var(--space-4) var(--space-4) var(--space-4); min-width: 0; }
.person__head { display: grid; grid-template-columns: 4.5rem minmax(0, 1fr); gap: var(--space-3); align-items: center; min-width: 0; }
.team__list--cards .person__media { width: 4.5rem; height: 4.5rem; margin: 0; border-radius: 50%; overflow: hidden; border: 3px solid var(--c-white); box-shadow: var(--shadow-sm); background: var(--c-surface); flex: none; }
.person__media--dummy { display: grid; place-items: center; background: var(--tint, var(--c-surface)); color: var(--accent-text); font-weight: 600; font-size: 1.25rem; letter-spacing: 0.04em; }
.person__body { min-width: 0; }
.person__foot { margin-top: auto; }
.person__message { width: 100%; justify-content: center; gap: 0.5em; white-space: nowrap; min-height: 2.5rem; }
.person__message .icon { width: 1rem; height: 1rem; flex: none; }
.person__foot .person__contact { margin: 0; }
@media (max-width: 420px) { .person__message { white-space: normal; } }

/* Mini-Prozess (Rezept-Upload) und Formularhinweis */
.miniprocess { list-style: none; counter-reset: mp; display: grid; gap: var(--space-2); margin: var(--space-3) 0 var(--space-4); padding: 0; max-width: 68ch; }
.miniprocess li { position: relative; padding-left: 2.4rem; font-size: var(--fs-sm); line-height: 1.5; }
.miniprocess li::before { counter-increment: mp; content: counter(mp); position: absolute; left: 0; top: 0.05em; width: 1.75rem; height: 1.75rem; border-radius: 50%; background: var(--accent); color: var(--c-dark); font-weight: 700; font-size: 0.85rem; display: grid; place-items: center; }
.form__hint { font-size: var(--fs-sm); background: var(--tint, var(--c-surface)); border-radius: var(--radius-md, 0.75rem); padding: 0.7rem 0.9rem; margin: 0 0 var(--space-3); }

/* Teaser mit Bild (Startseite): ruhiges, helles Layout statt dunkler Überlagerung, Kacheln darunter ohne Überlappung */
.teasers--illustrated .teasers__backdrop { height: auto; aspect-ratio: 21 / 9; margin: 0 0 var(--space-5); border-radius: var(--radius-xl, 1.5rem); overflow: hidden; box-shadow: var(--shadow-sm); }
.teasers--illustrated .teasers__backdrop::after { background: linear-gradient(to top, rgba(40,42,42,0.55) 0%, rgba(40,42,42,0.15) 40%, rgba(40,42,42,0) 65%); }
.teasers--illustrated .teasers__title { inset: auto 0 0 0; place-items: end start; text-align: left; padding: var(--space-5) var(--space-6); text-shadow: 0 1px 8px rgba(0,0,0,0.35); }
.teasers--illustrated .teasers__title { font-size: clamp(1.5rem, 1.1rem + 1.8vw, 2.6rem); }
.teasers--illustrated .teasers__title > * { max-width: 22ch; }
.teasers--illustrated .teasers__list { z-index: auto; }
@media (max-width: 899px) { .teasers--illustrated .teasers__backdrop { aspect-ratio: 4 / 3; margin-bottom: var(--space-4); } .teasers--illustrated .teasers__title { padding: var(--space-4); } }
@media (max-width: 639px) { .teasers--illustrated .teasers__backdrop { aspect-ratio: 1 / 1; border-radius: var(--radius-lg); } }

/* Social-Icons: Kreis und Icon exakt deckungsgleich, auch mit Rahmen und beim Hover */
.socials a { box-sizing: border-box; display: grid; place-items: center; overflow: hidden; }
.socials a .icon, .socials a svg { width: 100%; height: 100%; display: block; }
.socials a:hover { transform: none; }
/* Galerie-Bildunterschriften: eingerückt, damit die abgerundete Ecke nichts abschneidet */
.gallery__item figcaption, .gallery figcaption { padding: 0.6em 1rem 0.8em; }
.gallery__item:has(figcaption) { background: var(--c-white); border: 1px solid var(--line); }
.gallery__item:has(figcaption) figure { display: flex; flex-direction: column; height: 100%; }
/* Zwei Badges nebeneinander: der RTE packt die Links in ein <p>, deshalb auch dort Abstand erzwingen */
.partner-badges p { display: flex; flex-wrap: wrap; gap: var(--space-4); margin: 0; }
.partner-badges .partner-badge + .partner-badge { margin-left: 0; }

/* --------------------------------------------------------------------------
   Barrierefreiheit: Schriftgröße und Kontrast (Fußzeile unten rechts)
   -------------------------------------------------------------------------- */
.footer__bottom { align-items: center; }
.footer__a11y { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-4); margin-left: auto; }
/* Abstand zum fest stehenden Kontakt-Knopf unten rechts */
@media (min-width: 640px) { .footer__bottom { padding-bottom: 4.5rem; } .footer__a11y { padding-right: 1rem; } }
.a11y-button { display: inline-flex; align-items: center; gap: 0.5em; font: inherit; font-size: var(--fs-sm); font-weight: 600; color: var(--c-dark); background: none; border: 0; padding: 0; line-height: 1; cursor: pointer; border-radius: var(--radius); }
.a11y-button:hover { text-decoration: underline; }
.a11y-button:focus-visible { outline: 3px solid var(--c-dark); outline-offset: 3px; }
.a11y-button__glyph { display: inline-flex; align-items: center; height: 1.5em; font-size: 1.5em; font-weight: 700; line-height: 1; letter-spacing: -0.02em; }
.a11y-button__icon { width: 1.5em; height: 1.5em; flex: none; display: block; }
.a11y-button__label { display: inline-block; line-height: 1; }
.a11y-button[aria-pressed="true"] { text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 2px; }
@media (max-width: 640px) { .footer__a11y { margin-left: 0; width: 100%; justify-content: flex-start; } }

/* Kontrastmodus: dunkler Text, kräftige Flächen, unterstrichene Links */
html[data-contrast="high"] {
    --text: #000000;
    --text-muted: #1A1A1A;
    --c-dark: #000000;
    --c-surface: #FFFFFF;
    --tint: #FFFFFF;
    --line: #000000;
    --c-gray: #000000;
    --c-light: #767676;
    --accent: #000000;
    --accent-text: #000000;
    --c-green-text: #000000;
    --shadow: none;
    --shadow-sm: none;
}
html[data-contrast="high"] body,
html[data-contrast="high"] [style*="--area-color"],
html[data-contrast="high"] [style*="--item-color"] {
    --area-color: #000000 !important;
    --item-color: #000000 !important;
    --accent: #000000 !important;
    --accent-text: #000000 !important;
    --tint: #FFFFFF !important;
    background-color: #FFFFFF;
}
html[data-contrast="high"] .eyebrow, html[data-contrast="high"] .text-label, html[data-contrast="high"] .fact__value, html[data-contrast="high"] .person__media--dummy { color: #000000; }
html[data-contrast="high"] .drawer-toggle { background: #000000; color: #FFFFFF; border: 2px solid #FFFFFF; }
html[data-contrast="high"] .drawer-toggle:hover { background: #FFFFFF; color: #000000; border-color: #000000; }
html[data-contrast="high"] .nav-overlay__dot, html[data-contrast="high"] .quote__dot { background: #000000; }
html[data-contrast="high"] .page__main a:not(.button):not(.a11y-button) { text-decoration: underline; text-underline-offset: 2px; }
html[data-contrast="high"] .button, html[data-contrast="high"] button.button { background: #000000; color: #FFFFFF; border-color: #000000; }
html[data-contrast="high"] .button--ghost, html[data-contrast="high"] .button--outline { background: #FFFFFF; color: #000000; border: 2px solid #000000; }
html[data-contrast="high"] .ce, html[data-contrast="high"] .ce--color, html[data-contrast="high"] [class*="--color-"] { background-image: none; }
html[data-contrast="high"] .card, html[data-contrast="high"] .person, html[data-contrast="high"] .contacttile, html[data-contrast="high"] .download, html[data-contrast="high"] .job { border: 2px solid #000000; background: #FFFFFF; }
html[data-contrast="high"] .hero__media::after, html[data-contrast="high"] .teasers--illustrated .teasers__backdrop::after { background: none; }
html[data-contrast="high"] img, html[data-contrast="high"] video { filter: contrast(1.15); }
html[data-contrast="high"] :focus-visible { outline: 3px solid #000000; outline-offset: 3px; }

/* --------------------------------------------------------------------------
   Kopfzeile: Burger nur, wenn die Hauptnavigation ausgeblendet ist;
   Suche, Kontakt und Burger bleiben immer am rechten Rand
   -------------------------------------------------------------------------- */
.nav__toggle { display: none; }
.nav__main + .nav__actions { margin-left: var(--space-3); }
@media (max-width: 1179px) {
    .nav__toggle { display: inline-flex; }
    .nav__actions, .nav__main + .nav__actions { margin-left: auto; }
}
.footer__copyright { margin: 0; }

/* Bewertungs-Badge (Google-Durchschnitt, Verzeichnisse) */
.ratingbadge { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: var(--space-3) var(--space-6); margin-top: var(--space-6); }
.ratingbadge__google { display: inline-flex; align-items: center; gap: var(--space-3); text-decoration: none; color: inherit; background: var(--c-surface); border-radius: 999px; padding: 0.55rem 1.1rem 0.55rem 0.9rem; font-size: var(--fs-sm); transition: background-color var(--dur); }
.ratingbadge__google:hover { background: var(--tint); }
.ratingbadge__stars { position: relative; display: inline-block; width: 6.2em; height: 1.2em; background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='%23D9DBD7' d='M12 2.5l2.9 6.3 6.9.8-5.1 4.7 1.4 6.8L12 17.7 5.9 21.1l1.4-6.8L2.2 9.6l6.9-.8z'/></svg>") 0 0 / 1.24em 1.2em repeat-x; }
.ratingbadge__stars-fill { position: absolute; inset: 0; width: var(--rating, 0%); background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='%23F9BE37' d='M12 2.5l2.9 6.3 6.9.8-5.1 4.7 1.4 6.8L12 17.7 5.9 21.1l1.4-6.8L2.2 9.6l6.9-.8z'/></svg>") 0 0 / 1.24em 1.2em repeat-x; }
.ratingbadge__demo { font-style: normal; font-size: var(--fs-xs); color: var(--c-dark); background: var(--c-red); border-radius: 999px; padding: 0.1em 0.6em; margin-left: 0.4em; }
.ratingbadge__dir { font-size: var(--fs-sm); font-weight: 600; }
html[data-contrast="high"] .ratingbadge__google { border: 2px solid #000; background: #fff; }
.quote .ratingbadge { grid-column: 1 / -1; justify-content: center; margin-top: 0; }
.ce--layout-5 .eyebrow, .bg-green .eyebrow, .bg-yellow .eyebrow, .bg-orange .eyebrow, .bg-red .eyebrow, .bg-blue .eyebrow { color: var(--c-dark); }

/* Layout 21: "Kurz gesagt"-Kasten, wird vom Seitenkopf in der Textspalte gerendert (TypoScript lib.dynamicContent lässt ihn aus) */
.pageheader__content .ce--layout-21 { margin: var(--space-6) 0 0; }
.pageheader__content .ce--layout-21 .ce__inner { max-width: none; background: var(--tint); border-radius: var(--radius-lg); padding: var(--space-5); }
.pageheader__content .ce--layout-21 .heading { font-size: var(--fs-h3); margin: 0 0 var(--space-3); }
.pageheader__content .ce--layout-21 p { font-size: var(--fs-base); }
.pageheader__content .ce--layout-21 p:last-child { margin-bottom: 0; }
.ce--layout-21:not(.pageheader__content *) .ce__inner { background: var(--tint); border-radius: var(--radius-lg); padding-top: var(--space-5); padding-bottom: var(--space-5); }

/* Bewertungs-Slider (Google-Rezensionen als Zitatkarten) */
.reviews__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-3) var(--space-5); margin-bottom: var(--space-5); padding-right: var(--space-2); }
.ce--reviews .ratingbadge { justify-content: flex-start; margin: 0; order: 2; }
.reviews__intro { order: 1; }
.reviews__intro { margin: 0; max-width: none; }
.reviews__intro p { margin: 0; }
.ce--reviews .cardslider__track { grid-auto-columns: minmax(18rem, 24rem); }
.card--review { background: var(--tint); border: 0; }
.card--review .card__body { margin: 0; padding: var(--space-5); gap: var(--space-3); }
.card--review .card__quotemark { width: 2rem; height: 2rem; color: var(--accent-text); }
.card--review .card__text { font-size: var(--fs-base); line-height: 1.55; flex: 1; }
.card--review .card__text p { margin: 0; }
.card--review .card__author { display: flex; flex-direction: column; font-size: var(--fs-sm); }
.card--review .card__author span { color: var(--muted, #6B6E6E); }
html[data-contrast="high"] .card--review { border: 2px solid #000; background: #fff; }
