/* Hallmark · macrostructure: Photographic · tone: calm, personal · anchor hue: forest green
 * pre-emit critique: P5 H5 E5 S5 R5 V4 · genre: modern-minimal · theme: custom #1d3a3a
 * audience: families + international caregivers · use: compact 4-step consultation or job application · tone: calm, practical, human
 * nav: N9 multilingual edge bar · footer: Ft5 statement · enrichment: E8 full-bleed + inline story photography
 * components: inquiry wizard + testimonials + language control + career application + thank-you flow + Cal.com embed
 * states: default · hover · focus · active · disabled · loading · error · success
 * contrast: pass (40–41) · slop: pass (42–49) · mobile: pass (34, 49–57)
 */
@import url("tokens.css");

*, *::before, *::after { box-sizing: border-box; }
html, body { overflow-x: clip; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--color-bg); color: var(--color-text); font-family: var(--font-body); font-size: var(--text-base); line-height: 1.65; }
img { display: block; max-width: 100%; height: auto; }
[hidden] { display: none !important; }
a { color: inherit; }
button, input, textarea, select { font: inherit; }
h1, h2, h3, p { margin-block-start: 0; }
h1, h2, h3 { margin-block-end: var(--space-md); font-family: var(--font-display); font-style: normal; line-height: 1.08; letter-spacing: -0.04em; overflow-wrap: normal; hyphens: manual; text-wrap: balance; min-width: 0; }
h1 { max-width: 12ch; font-size: var(--text-display); font-weight: 700; }
h2 { max-width: 17ch; font-size: var(--text-2xl); font-weight: 700; }
h3 { font-size: var(--text-lg); font-weight: 700; letter-spacing: -0.025em; }
.wrap { width: min(100% - 2rem, 76rem); margin-inline: auto; }
.section { padding-block: var(--space-2xl); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; inset: var(--space-sm) auto auto var(--space-sm); z-index: 100; padding: var(--space-xs) var(--space-sm); background: var(--color-brand); color: var(--color-brand-ink); transform: translateY(-180%); }
.skip-link:focus { transform: translateY(0); }
:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 3px; }

.site-header { position: sticky; inset-block-start: 0; z-index: var(--z-sticky-nav); background: color-mix(in oklch, var(--color-bg) 92%, transparent); border-block-end: var(--rule) solid var(--color-line); backdrop-filter: blur(16px); }
.site-header::after { content: ""; position: absolute; inset: auto 0 -1px; height: 2px; background: var(--color-brand); transform: scaleX(var(--scroll-progress, 0)); transform-origin: left center; }
.site-header.is-scrolled { box-shadow: 0 var(--space-3xs) var(--space-md) var(--color-shadow); }
.nav { position: relative; display: grid; grid-auto-flow: column; grid-template-columns: minmax(0, 1fr); grid-auto-columns: auto; min-height: 72px; align-items: center; gap: var(--space-xs); }
.brand { display: inline-flex; align-items: center; flex: 0 1 auto; min-width: 0; line-height: 1; text-decoration: none; }
.brand__logo { display: block; width: auto; max-width: 100%; height: clamp(2rem, 6vw, 2.5rem); }
.nav__links { position: absolute; inset: 100% 0 auto; display: none; padding: var(--space-sm); background: var(--color-surface); border: var(--rule) solid var(--color-line); border-radius: 0 0 var(--radius-md) var(--radius-md); box-shadow: 0 var(--space-xs) var(--space-lg) var(--color-shadow); }
.nav__links.is-open { display: grid; }
.nav__links a { min-height: 44px; display: flex; align-items: center; color: var(--color-text-soft); font-size: var(--text-sm); font-weight: 600; text-decoration: none; white-space: nowrap; }
.nav__links a[aria-current="page"] { color: var(--color-brand); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 0.35rem; }
.nav__toggle { width: 44px; height: 44px; display: grid; place-content: center; gap: 4px; border: 0; border-radius: var(--radius-pill); background: var(--color-brand-soft); color: var(--color-brand); }
.nav__toggle > span:not(.sr-only) { width: 18px; height: 2px; display: block; background: currentColor; transition: transform var(--dur-short) var(--ease-out), opacity var(--dur-short) var(--ease-out); }
.nav__toggle[aria-expanded="true"] > span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.nav__toggle[aria-expanded="true"] > span:nth-child(2) { opacity: 0; }
.nav__toggle[aria-expanded="true"] > span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

.button { display: inline-flex; min-height: 50px; align-items: center; justify-content: center; gap: var(--space-xs); padding-inline: var(--space-md); border: var(--rule) solid var(--color-brand); border-radius: var(--radius-pill); background: var(--color-brand); color: var(--color-brand-ink); font-weight: 700; text-align: center; text-decoration: none; white-space: nowrap; transition: transform var(--dur-short) var(--ease-out); }
.button--nav { display: none; min-height: 44px; font-size: var(--text-sm); }
.button--light { border-color: var(--color-brand-ink); background: var(--color-brand-ink); color: var(--color-brand); }
.button--outline { background: transparent; color: var(--color-brand); }
.button:active { transform: translateY(1px); }
.button:disabled, .button[aria-disabled="true"] { opacity: 0.52; cursor: not-allowed; }
.eyebrow { display: flex; align-items: center; gap: var(--space-xs); margin-block-end: var(--space-md); color: var(--color-brand); font-size: var(--text-sm); font-weight: 700; }
.eyebrow > span { width: 2rem; height: 2px; background: var(--color-brand); }
.section-label { display: block; margin-block-end: var(--space-sm); color: var(--color-brand); font-size: var(--text-sm); font-weight: 800; }
.section-label--light { color: var(--color-brand-ink); opacity: 0.72; }
.text-link { display: inline-flex; min-height: 44px; align-items: center; gap: var(--space-xs); color: var(--color-brand); font-weight: 800; text-decoration: none; white-space: nowrap; }
.text-link span, .call-link__icon { transition: transform var(--dur-short) var(--ease-out); }

.hero { position: relative; min-height: clamp(40rem, 78dvh, 52rem); display: grid; overflow: clip; isolation: isolate; padding-block: var(--space-xl) var(--space-2xl); background: var(--color-text); color: var(--color-brand-ink); }
.hero__grid { min-height: 100%; display: grid; grid-template-columns: minmax(0, 1fr); align-items: center; }
.hero__content { position: relative; z-index: var(--z-raised); max-width: 44rem; align-self: center; }
.hero h1 { color: var(--color-brand-ink); }
.hero__content > * { animation: hero-rise 720ms var(--ease-out) both; }
.hero__content > :nth-child(2) { animation-delay: 70ms; }
.hero__content > :nth-child(3) { animation-delay: 130ms; }
.hero__content > :nth-child(4) { animation-delay: 190ms; }
.hero__content > :nth-child(5) { animation-delay: 250ms; }
.hero .eyebrow { color: var(--color-brand-ink); }
.hero .eyebrow > span { background: var(--color-brand-ink); }
.hero__lead { max-width: 57ch; margin-block-end: var(--space-lg); color: color-mix(in oklch, var(--color-brand-ink) 84%, transparent); font-size: var(--text-md); }
.hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-sm) var(--space-md); }
.hero .button { border-color: var(--color-brand-ink); background: var(--color-brand-ink); color: var(--color-brand); }
.hero .button:hover { border-color: var(--color-brand-soft); background: var(--color-brand-soft); color: var(--color-brand); }
.call-link { min-height: 50px; display: inline-flex; align-items: center; gap: var(--space-xs); color: var(--color-brand); font-weight: 800; line-height: 1.2; text-decoration: none; white-space: nowrap; }
.call-link small { display: block; color: var(--color-muted); font-size: var(--text-xs); font-weight: 600; }
.call-link__icon { width: 2.5rem; height: 2.5rem; display: grid; place-items: center; border: var(--rule) solid var(--color-line); border-radius: 50%; background: var(--color-surface); }
.hero .call-link { color: var(--color-brand-ink); }
.hero .call-link small { color: color-mix(in oklch, var(--color-brand-ink) 72%, transparent); }
.hero .call-link__icon { border-color: color-mix(in oklch, var(--color-brand-ink) 42%, transparent); background: color-mix(in oklch, var(--color-overlay) 54%, transparent); }
.trust-list { display: flex; flex-wrap: wrap; gap: var(--space-xs) var(--space-md); margin: var(--space-lg) 0 0; padding: 0; color: var(--color-text-soft); font-size: var(--text-sm); list-style: none; }
.trust-list li { display: flex; align-items: center; gap: var(--space-2xs); }
.trust-list li span { color: var(--color-success); font-weight: 800; }
.hero .trust-list { color: color-mix(in oklch, var(--color-brand-ink) 78%, transparent); }
.hero .trust-list li span { color: var(--color-brand-ink); }
.hero__visual { position: absolute; inset: 0; z-index: var(--z-base); min-width: 0; }
.hero__visual figure { position: absolute; inset: 0; margin: 0; overflow: hidden; animation: image-in 900ms 120ms var(--ease-out) both; }
.hero__visual figure::after { content: ""; position: absolute; inset: 0; z-index: var(--z-base); background: linear-gradient(180deg, var(--color-overlay-soft), var(--color-overlay)); pointer-events: none; }
.hero__visual img { width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: 68% center; transform: translateY(var(--hero-parallax, 0)) scale(1.04); will-change: transform; }
.hero__note { position: absolute; inset: auto var(--space-sm) var(--space-sm) auto; z-index: var(--z-raised); display: none; max-width: 23rem; align-items: center; gap: var(--space-sm); padding: var(--space-sm); background: var(--color-surface); border: var(--rule) solid var(--color-line); border-radius: var(--radius-md); box-shadow: 0 var(--space-xs) var(--space-lg) var(--color-shadow); animation: note-in 680ms 420ms var(--ease-out) both; }
.hero__note p { margin: 0; color: var(--color-text-soft); font-size: var(--text-sm); line-height: 1.45; }
.hero__note strong { color: var(--color-text); }
.hero__note-mark { width: 2.75rem; height: 2.75rem; flex: 0 0 auto; display: grid; place-items: center; border-radius: 50%; background: var(--color-brand-soft); color: var(--color-brand); }

.quick-contact { background: var(--color-brand); color: var(--color-brand-ink); }
.quick-contact__inner { display: flex; min-height: 112px; flex-direction: column; align-items: flex-start; justify-content: center; gap: var(--space-md); padding-block: var(--space-md); }
.quick-contact__inner div { display: grid; }
.quick-contact__inner span { opacity: 0.75; }
.local-entry { padding-block: var(--space-2xl); background: var(--color-surface-alt); }
.local-entry__grid { display: grid; gap: var(--space-xl); }
.local-entry__grid p { max-width: 55ch; margin: 0; color: var(--color-text-soft); font-size: var(--text-md); }
.local-entry__links { display: grid; gap: var(--space-sm); }
.local-entry__links a { display: flex; min-height: 7rem; flex-direction: column; justify-content: space-between; padding: var(--space-md); border: var(--rule) solid var(--color-line); border-radius: var(--radius-md); background: var(--color-surface); color: var(--color-text); text-decoration: none; transition: border-color var(--dur-short) var(--ease-out), transform var(--dur-short) var(--ease-out); }
.local-entry__links strong { font-size: var(--text-lg); }
.local-entry__links span { color: var(--color-brand); font-size: var(--text-sm); font-weight: 800; }
.section-head { display: grid; gap: var(--space-md); margin-block-end: var(--space-xl); }
.section-head p { max-width: 52ch; color: var(--color-text-soft); font-size: var(--text-md); }
.service-layout { display: grid; gap: var(--space-md); }
.service-card { display: grid; grid-template-rows: auto 1fr; overflow: hidden; background: var(--color-surface); border: var(--rule) solid var(--color-line); border-radius: var(--radius-lg); }
.service-card img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
.service-card > div { padding: var(--space-md); }
.service-card h3 { margin: 0 0 var(--space-2xs); hyphens: manual; }
.service-card p { margin: 0; color: var(--color-text-soft); }
@media (min-width: 40rem) { .service-layout { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 68rem) { .service-layout { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.scope-note { max-width: 72ch; margin: var(--space-md) 0 0; color: var(--color-muted); font-size: var(--text-xs); }

.journey { background: var(--color-surface-alt); }
.journey__grid { display: grid; gap: var(--space-xl); }
.journey__intro > p { max-width: 50ch; color: var(--color-text-soft); }
.journey__steps { margin: 0; padding: 0; list-style: none; }
.journey__steps li { display: grid; grid-template-columns: 3rem minmax(0, 1fr); gap: var(--space-md); padding-block: var(--space-lg); border-block-end: var(--rule) solid var(--color-line); }
.journey__steps li:first-child { border-block-start: var(--rule) solid var(--color-line); }
.journey__steps li > span { width: 2.5rem; height: 2.5rem; display: grid; place-items: center; border-radius: 50%; background: var(--color-brand); color: var(--color-brand-ink); font-weight: 800; }
.journey__steps h3 { margin-block-end: var(--space-2xs); }
.journey__steps p { margin: 0; color: var(--color-text-soft); }

.why-us { background: var(--color-brand); color: var(--color-brand-ink); }
.why-us__grid { display: grid; gap: var(--space-xl); }
.why-us__statement p { max-width: 52ch; opacity: 0.78; }
.facts { display: grid; margin: 0; border-block-start: var(--rule) solid color-mix(in oklch, var(--color-brand-ink) 24%, transparent); }
.facts div { padding-block: var(--space-md); border-block-end: var(--rule) solid color-mix(in oklch, var(--color-brand-ink) 24%, transparent); }
.facts dt { font-size: var(--text-lg); font-weight: 800; }
.facts dd { margin: var(--space-3xs) 0 0; opacity: 0.7; }
.testimonials { background: var(--color-surface-alt); color: var(--color-text); }
.testimonials__layout { display: grid; gap: var(--space-xl); }
.testimonials__intro p { max-width: 52ch; margin: 0; color: var(--color-text-soft); font-size: var(--text-md); }
.testimonials__grid { display: grid; gap: var(--space-md); }
.testimonial { display: grid; align-content: space-between; gap: var(--space-lg); min-width: 0; margin: 0; padding-block: var(--space-lg); border-block-start: var(--rule) solid var(--color-line); }
.testimonial--featured { padding: var(--space-lg); border: var(--rule) solid var(--color-line); border-radius: var(--radius-md); background: var(--color-surface); }
.testimonial p { max-width: 48ch; margin: 0; font-size: clamp(1.1rem, 2.3vw, 1.55rem); font-weight: 600; line-height: 1.45; letter-spacing: -0.02em; }
.testimonial footer { color: var(--color-brand); font-size: var(--text-sm); font-weight: 800; }
.costs__grid, .faq__grid { display: grid; gap: var(--space-xl); }
.costs__copy > p, .faq__grid > div:first-child > p { max-width: 58ch; color: var(--color-text-soft); font-size: var(--text-md); }
.faq { background: var(--color-surface); }
.faq__list { border-block-start: var(--rule) solid var(--color-line); }
details { border-block-end: var(--rule) solid var(--color-line); }
summary { min-height: 72px; display: flex; align-items: center; justify-content: space-between; gap: var(--space-sm); font-weight: 700; cursor: pointer; }
summary::-webkit-details-marker { display: none; }
summary span { color: var(--color-brand); font-size: var(--text-xl); font-weight: 400; transition: transform var(--dur-short) var(--ease-out); }
details[open] summary span { transform: rotate(45deg); }
details p { max-width: 62ch; padding-block-end: var(--space-md); color: var(--color-text-soft); }
details[open] p { animation: answer-in var(--dur-base) var(--ease-out) both; }

.contact { background: var(--color-brand); color: var(--color-brand-ink); }
.contact__grid { display: grid; gap: var(--space-xl); }
.contact__copy > p { max-width: 52ch; opacity: 0.78; }
.contact__phone { display: inline-grid; margin-block-start: var(--space-md); font-size: var(--text-xl); font-weight: 800; line-height: 1.2; text-decoration: none; white-space: nowrap; }
.contact__phone small { font-size: var(--text-xs); font-weight: 600; opacity: 0.68; }
.inquiry { padding: var(--space-md); background: var(--color-surface); color: var(--color-text); border-radius: var(--radius-lg); box-shadow: 0 var(--space-md) var(--space-xl) var(--color-shadow); }
.form-row { display: grid; gap: var(--space-sm); }
.field { margin-block-end: var(--space-sm); }
.field label { display: block; margin-block-end: var(--space-3xs); font-size: var(--text-sm); font-weight: 700; }
.field input, .field textarea, .field select { width: 100%; min-height: 50px; padding: var(--space-xs) var(--space-sm); padding-inline-end: 2.5rem; border: var(--rule) solid var(--color-line); border-radius: var(--radius-sm); outline: 2px solid transparent; outline-offset: 1px; background: var(--color-bg); color: var(--color-text); }
.field textarea { min-height: 7rem; resize: vertical; }
.field input:focus-visible, .field textarea:focus-visible, .field select:focus-visible { border-color: var(--color-brand); outline-color: var(--color-focus); }
.field input[aria-invalid="true"], .field textarea[aria-invalid="true"], .field select[aria-invalid="true"] { border-color: var(--color-error); }
.field input.is-success, .field textarea.is-success, .field select.is-success { border-color: var(--color-success); }
.field input:disabled, .field textarea:disabled, .field select:disabled { opacity: 0.55; cursor: not-allowed; }
.field__help { display: block; min-height: 1lh; margin-block-start: var(--space-3xs); color: var(--color-muted); font-size: var(--text-xs); }
.field__help.is-error { color: var(--color-error); }
.field__help:empty { display: none; }
.consent { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--space-xs); margin-block: var(--space-md); color: var(--color-text-soft); font-size: var(--text-xs); }
.consent input { width: 1.25rem; height: 1.25rem; margin-block-start: 0.1rem; accent-color: var(--color-brand); }
.consent input[aria-invalid="true"] { outline: 2px solid var(--color-error); outline-offset: 2px; }
.inquiry__submit { width: 100%; }
.button__spinner { display: none; width: 1rem; height: 1rem; border: 2px solid var(--color-line); border-block-start-color: var(--color-brand-ink); border-radius: 50%; }
.inquiry.is-loading .button__spinner { display: block; animation: spin 700ms linear infinite; }
.inquiry.is-loading .button__label { opacity: 0.7; }
.inquiry.is-success .inquiry__submit { background: var(--color-success); border-color: var(--color-success); }
.inquiry.is-error .inquiry__submit { background: var(--color-error); border-color: var(--color-error); }
.form-status { min-height: 1.5lh; margin: var(--space-xs) 0 0; font-size: var(--text-sm); font-weight: 700; }
.inquiry.is-success .form-status { color: var(--color-success); }
.inquiry.is-error .form-status { color: var(--color-error); }
.wizard__head { display: grid; gap: var(--space-xs); margin-block-end: var(--space-lg); }
.wizard__meta { display: flex; align-items: center; justify-content: space-between; gap: var(--space-sm); color: var(--color-text-soft); font-size: var(--text-sm); }
.wizard__meta p { margin: 0; }
.wizard__region { overflow: hidden; text-overflow: ellipsis; font-weight: 700; white-space: nowrap; }
.wizard__progress { width: 100%; height: 0.45rem; border: 0; border-radius: var(--radius-pill); overflow: hidden; accent-color: var(--color-brand); }
.wizard__progress::-webkit-progress-bar { background: var(--color-line); }
.wizard__progress::-webkit-progress-value { background: var(--color-brand); }
.wizard__progress::-moz-progress-bar { background: var(--color-brand); }
.wizard__step { min-width: 0; margin: 0; padding: 0; border: 0; }
.wizard__step[hidden], .wizard__submit[hidden], .wizard__back[hidden], .wizard__success[hidden] { display: none; }
.wizard__step legend { width: 100%; margin-block-end: var(--space-lg); padding: 0; font-family: var(--font-display); font-size: var(--text-xl); font-weight: 700; line-height: 1.18; letter-spacing: -0.035em; }
.wizard__hint { margin: calc(var(--space-md) * -1) 0 var(--space-md); color: var(--color-text-soft); }
.wizard__choices { display: grid; gap: var(--space-xs); }
.wizard__choice { position: relative; display: grid; min-height: 56px; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: var(--space-sm); padding: var(--space-sm); border: var(--rule) solid var(--color-line); border-radius: var(--radius-sm); background: var(--color-bg); color: var(--color-text); cursor: pointer; }
.wizard__choice input { width: 1.2rem; height: 1.2rem; margin: 0; accent-color: var(--color-brand); }
.wizard__choice strong { display: block; line-height: 1.35; }
.wizard__choice small { display: block; margin-block-start: var(--space-3xs); color: var(--color-text-soft); font-size: var(--text-sm); line-height: 1.45; }
.wizard__choice:has(input:checked) { border-color: var(--color-brand); background: var(--color-brand-soft); }
.wizard__choice:has(input:focus-visible) { outline: 3px solid var(--color-focus); outline-offset: 2px; }
.wizard__choice:active { transform: translateY(1px); }
.wizard__choice:has(input:disabled) { opacity: 0.55; cursor: not-allowed; }
.wizard__choices[aria-invalid="true"] .wizard__choice { border-color: var(--color-error); }
.wizard__actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-xs); margin-block-start: var(--space-lg); }
.wizard__actions .button { flex: 1 1 auto; }
.wizard__back { order: -1; }
.wizard__error { min-height: 1.5lh; margin: var(--space-sm) 0 0; color: var(--color-error); font-size: var(--text-sm); font-weight: 700; }
.wizard__success { padding-block: var(--space-sm); }
.wizard__success h3 { max-width: 18ch; font-size: var(--text-xl); }
.wizard__success p { color: var(--color-text-soft); }
.wizard__success a { color: var(--color-brand); font-weight: 800; white-space: nowrap; }
.wizard__success .button { margin-block-start: var(--space-md); color: var(--color-brand-ink); }
.inquiry.is-loading .wizard__submit .button__spinner { display: block; }
.inquiry.is-loading .wizard__submit .button__label { opacity: 0.7; }
.inquiry.is-success { box-shadow: 0 var(--space-md) var(--space-xl) var(--color-shadow); }

.footer { padding-block: var(--space-2xl) calc(var(--space-3xl) + env(safe-area-inset-bottom)); background: var(--color-text); color: var(--color-brand-ink); }
.footer__grid { display: grid; gap: var(--space-xl); }
.brand--footer .brand__logo { height: 2.75rem; }
.footer__grid > div { display: grid; align-content: start; gap: var(--space-xs); }
.footer__grid p, .footer__grid span { color: color-mix(in oklch, var(--color-brand-ink) 65%, transparent); }
.footer__grid a { text-decoration: none; }
.footer__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--space-xs) var(--space-md); margin-block-start: var(--space-xl); padding-block-start: var(--space-md); border-block-start: var(--rule) solid color-mix(in oklch, var(--color-brand-ink) 16%, transparent); color: color-mix(in oklch, var(--color-brand-ink) 55%, transparent); font-size: var(--text-xs); }
.footer__bottom div { display: flex; flex-wrap: wrap; gap: var(--space-xs) var(--space-md); }
.footer__bottom a { white-space: nowrap; }
.mobile-call { position: fixed; inset: auto var(--space-sm) max(var(--space-sm), env(safe-area-inset-bottom)); z-index: 60; display: flex; min-height: 58px; align-items: center; justify-content: center; gap: var(--space-sm); padding-inline: var(--space-md); border-radius: var(--radius-pill); background: var(--color-brand); color: var(--color-brand-ink); box-shadow: 0 var(--space-xs) var(--space-lg) var(--color-shadow); font-weight: 800; line-height: 1; text-decoration: none; white-space: nowrap; }
.mobile-call span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mobile-call small { display: block; font-size: var(--text-xs); font-weight: 500; opacity: 0.7; }
.mobile-call strong { white-space: nowrap; }
.mobile-consultation { opacity: 0; pointer-events: none; transform: translateY(calc(100% + var(--space-lg))); transition: opacity var(--dur-short) var(--ease-out), transform var(--dur-base) var(--ease-out); }
.mobile-consultation.is-visible { opacity: 1; pointer-events: auto; transform: translateY(0); }
.mobile-consultation.is-visible:active { transform: translateY(1px); }

/* Multilingual navigation · N9 edge bar */
/* Hallmark · component: language sheet · genre: modern-minimal · theme: custom Pflegeservice green
 * pre-emit critique: P5 H5 E5 S5 R5 V5
 * states: default · hover · focus · active · disabled · loading · error · success
 * studied interaction reference: illermobility.de · adapted to the existing brand
 */
.language-control { display: inline-flex; align-items: center; }
.language-trigger { min-width: 4.5rem; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2xs); padding-inline: var(--space-xs); border: var(--rule) solid var(--color-line); border-radius: var(--radius-pill); background: var(--color-surface); color: var(--color-text); font-size: var(--text-sm); font-weight: 800; line-height: 1; cursor: pointer; transition: background-color var(--dur-short) var(--ease-out), border-color var(--dur-short) var(--ease-out), color var(--dur-short) var(--ease-out), transform var(--dur-short) var(--ease-out); }
.language-trigger svg { width: 1.15rem; height: 1.15rem; fill: none; stroke: currentColor; stroke-width: 1.8; }
.language-trigger:focus-visible, .language-dialog__close:focus-visible, .language-option:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 3px; }
.language-trigger:active, .language-dialog__close:active, .language-option:active { transform: translateY(1px); }
.language-trigger[aria-expanded="true"] { border-color: var(--color-brand); background: var(--color-brand-soft); color: var(--color-brand); }
.language-trigger:disabled, .language-trigger[aria-disabled="true"], .language-option[aria-disabled="true"] { opacity: 0.52; cursor: not-allowed; pointer-events: none; }
.language-trigger[aria-busy="true"], .language-option[data-state="loading"] { cursor: progress; }
.language-trigger[data-state="error"], .language-option[data-state="error"] { border-color: var(--color-error); color: var(--color-error); }
.language-dialog-open { overflow: hidden; }
.language-dialog { width: 100%; max-width: none; height: 100dvh; max-height: none; margin: 0; padding: 0; overflow: hidden; border: 0; background: transparent; color: var(--color-text); }
.language-dialog::backdrop { background: var(--color-overlay-soft); }
.language-dialog__sheet { position: relative; min-height: 100dvh; overflow-y: auto; overscroll-behavior: contain; background: var(--color-surface); opacity: 0; transform: translateY(-100%); transition: opacity var(--dur-long) var(--ease-out), transform var(--dur-long) var(--ease-out); }
.language-dialog[open][data-state="open"] .language-dialog__sheet { opacity: 1; transform: translateY(0); }
.language-dialog[open][data-state="closing"] .language-dialog__sheet { opacity: 0; transform: translateY(-100%); transition-duration: var(--dur-short); transition-timing-function: var(--ease-in); }
.language-dialog__close { position: absolute; inset-block-start: var(--space-sm); inset-inline-end: var(--space-sm); z-index: var(--z-raised); width: 48px; height: 48px; display: grid; place-items: center; padding: 0; border: 0; border-radius: 50%; background: var(--color-surface-alt); color: var(--color-text); cursor: pointer; transition: background-color var(--dur-short) var(--ease-out), transform var(--dur-short) var(--ease-out); }
.language-dialog__close svg { width: 1.5rem; height: 1.5rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
.language-dialog__content { padding-block: var(--space-3xl) var(--space-2xl); }
.language-dialog__content h2 { max-width: 18ch; margin-block-end: var(--space-xl); font-size: clamp(2rem, 7vw, 3.75rem); }
.language-dialog__grid { display: grid; gap: var(--space-2xs); }
.language-option { min-height: 56px; display: flex; align-items: center; justify-content: space-between; gap: var(--space-sm); padding-inline: var(--space-sm); border: var(--rule) solid transparent; border-radius: var(--radius-pill); color: var(--color-text); font-weight: 700; line-height: 1; text-decoration: none; white-space: nowrap; transition: background-color var(--dur-short) var(--ease-out), border-color var(--dur-short) var(--ease-out), color var(--dur-short) var(--ease-out), transform var(--dur-short) var(--ease-out); }
.language-option small { color: var(--color-muted); font-size: var(--text-xs); font-weight: 800; letter-spacing: 0.08em; }
.language-option[aria-current="page"] { background: var(--color-brand); color: var(--color-brand-ink); }
.language-option[aria-current="page"] small { color: var(--color-brand-ink); }
.language-option[data-state="loading"]::after { content: ""; width: 1rem; height: 1rem; flex: 0 0 auto; border: 2px solid currentColor; border-inline-end-color: transparent; border-radius: 50%; animation: spin var(--dur-long) linear infinite; }

/* Regional photographic heroes */
.regional-hero { position: relative; min-height: clamp(36rem, 78dvh, 52rem); display: grid; overflow: hidden; background-color: var(--color-text); background-position: center; background-size: cover; color: var(--color-brand-ink); }
.regional-hero--bad-berleburg { background-image: url("/assets/care-joy-conversation.webp"); background-position: center; }
.regional-hero--bad-laasphe { background-image: url("/assets/care-cooking-together.webp"); background-position: center; }
.regional-hero--erndtebrueck { background-image: url("/assets/care-man-daily-support.webp"); background-position: center; }
.regional-hero--wittgenstein { background-image: url("/assets/care-wittgenstein-walk.webp"); background-position: center; }
.regional-hero__shade, .career-hero__shade { position: absolute; inset: 0; z-index: var(--z-base); background: linear-gradient(90deg, var(--color-overlay), var(--color-overlay-soft)); pointer-events: none; }
.regional-hero__inner { position: relative; z-index: var(--z-raised); display: flex; flex-direction: column; justify-content: space-between; padding-block: var(--space-lg) var(--space-2xl); }
.breadcrumbs--light { color: var(--color-brand-ink); }
.breadcrumbs--light a { color: inherit; }
.regional-hero__copy { max-width: 48rem; }
.regional-hero__place, .career-hero__caption { margin-block-end: var(--space-sm); font-size: var(--text-sm); font-weight: 800; }
.regional-hero h1 { max-width: 15ch; margin-block-end: var(--space-md); font-size: clamp(2.4rem, 6vw, 5.25rem); color: var(--color-brand-ink); }
.regional-hero__copy > p:not(.regional-hero__place) { max-width: 58ch; font-size: var(--text-md); }
.regional-hero__actions, .career-hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-sm) var(--space-md); margin-block-start: var(--space-lg); }
.regional-hero__phone, .career-hero__phone { display: inline-flex; min-height: 50px; flex-direction: column; justify-content: center; color: var(--color-brand-ink); font-weight: 800; line-height: 1.3; text-decoration: none; white-space: nowrap; }
.regional-hero__phone small, .career-hero__phone small { font-size: var(--text-xs); font-weight: 500; opacity: 0.75; }

/* Careers · Photographic */
.career-hero { position: relative; min-height: clamp(36rem, 82dvh, 54rem); display: grid; overflow: hidden; background: var(--color-text); color: var(--color-brand-ink); }
.career-hero__image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 38%; }
.career-hero__inner { position: relative; z-index: var(--z-raised); display: flex; flex-direction: column; justify-content: space-between; padding-block: var(--space-lg) var(--space-2xl); }
.career-hero__copy { max-width: 48rem; }
.career-hero h1 { max-width: 13ch; margin-block-end: var(--space-md); font-size: clamp(2.65rem, 6vw, 5.25rem); color: var(--color-brand-ink); }
.career-hero__copy > p:not(.career-hero__caption) { max-width: 61ch; font-size: var(--text-md); }
.career-index { position: sticky; inset-block-start: var(--banner-height); z-index: var(--z-sticky); border-block-end: var(--rule) solid var(--color-line); background: color-mix(in oklch, var(--color-bg) 96%, transparent); backdrop-filter: blur(16px); }
.career-index__inner { display: flex; min-height: 58px; align-items: center; gap: var(--space-lg); overflow-x: auto; scrollbar-width: none; }
.career-index__inner::-webkit-scrollbar { display: none; }
.career-index strong { flex: 0 0 auto; color: var(--color-muted); font-size: var(--text-sm); }
.career-index a { flex: 0 0 auto; color: var(--color-text); font-size: var(--text-sm); font-weight: 700; text-decoration: none; white-space: nowrap; }
.career-intro, .career-facts, .career-role, .career-fit, .career-process, .career-apply { padding-block: var(--space-2xl); }
.career-intro__grid, .career-role__grid, .career-process__grid, .career-apply__grid { display: grid; gap: var(--space-xl); }
.career-sticky-head, .career-role__grid > div:first-child, .career-process__grid > div:first-child { max-width: 35rem; }
.career-sticky-head p, .career-role__grid > div:first-child p, .career-process__grid > div:first-child p, .career-apply__copy > p { color: var(--color-text-soft); font-size: var(--text-md); }
.career-benefits { margin: 0; }
.career-benefits > div { display: grid; gap: var(--space-xs); padding-block: var(--space-lg); border-block-start: var(--rule) solid var(--color-line); }
.career-benefits > div:last-child { border-block-end: var(--rule) solid var(--color-line); }
.career-benefits dt { font-size: var(--text-lg); font-weight: 800; letter-spacing: -0.025em; }
.career-benefits dd { margin: 0; color: var(--color-text-soft); }
.career-facts { background: var(--color-surface-alt); }
.career-facts__head { max-width: 60ch; margin-block-end: var(--space-xl); }
.career-facts__head p { color: var(--color-text-soft); font-size: var(--text-md); }
.career-facts__grid { display: grid; border-block-start: var(--rule) solid var(--color-line); }
.career-fact { padding-block: var(--space-lg); border-block-end: var(--rule) solid var(--color-line); }
.career-fact h3 { margin-block-end: var(--space-xs); }
.career-fact p { max-width: 68ch; margin-block-end: var(--space-sm); color: var(--color-text-soft); }
.career-fact .text-link { margin-block-start: var(--space-xs); }
.career-role { background: var(--color-brand); color: var(--color-brand-ink); }
.career-role h2, .career-role h3, .career-role strong { color: var(--color-brand-ink); }
.career-role__grid > div:first-child p, .career-role__list span { color: color-mix(in oklch, var(--color-brand-ink) 75%, transparent); }
.career-role__list { display: grid; margin: 0; padding: 0; list-style: none; }
.career-role__list li { display: grid; gap: var(--space-2xs); padding-block: var(--space-md); border-block-start: var(--rule) solid color-mix(in oklch, var(--color-brand-ink) 18%, transparent); }
.career-role__list li:last-child { border-block-end: var(--rule) solid color-mix(in oklch, var(--color-brand-ink) 18%, transparent); }
.career-role__list strong { font-size: var(--text-md); }
.career-fit { background: var(--color-surface-alt); }
.career-fit__grid { display: grid; gap: var(--space-xl); }
.career-fit__yes ul { margin: 0; padding-inline-start: 1.25rem; }
.career-fit__yes li + li { margin-block-start: var(--space-sm); }
.career-fit__extra { align-self: end; padding: var(--space-lg); border: var(--rule) solid var(--color-line); border-radius: var(--radius-md); background: var(--color-surface); }
.career-fit__extra p { color: var(--color-text-soft); }
.career-steps { display: grid; margin: 0; padding: 0; list-style: none; border-block-start: var(--rule) solid var(--color-line); }
.career-steps li { display: grid; grid-template-columns: 3rem minmax(0, 1fr); gap: var(--space-md); padding-block: var(--space-lg); border-block-end: var(--rule) solid var(--color-line); }
.career-steps li > span { color: var(--color-brand); font-weight: 800; font-variant-numeric: tabular-nums; }
.career-steps h3 { margin-block-end: var(--space-xs); }
.career-steps p { margin: 0; color: var(--color-text-soft); }
.career-apply { background: var(--color-brand-soft); }
.career-apply__direct { display: grid; gap: var(--space-sm); margin-block-start: var(--space-lg); }
.career-apply__direct a { display: flex; min-height: 50px; flex-direction: column; justify-content: center; color: var(--color-brand); font-weight: 800; line-height: 1.35; text-decoration: none; white-space: nowrap; }
.career-apply__direct small { color: var(--color-text-soft); font-size: var(--text-xs); font-weight: 600; }
.career-form { padding: var(--space-md); border-radius: var(--radius-lg); background: var(--color-surface); }
.career-form__choices { display: grid; gap: var(--space-xs); margin: 0 0 var(--space-md); padding: 0; border: 0; }
.career-form__choices legend { margin-block-end: var(--space-xs); font-weight: 800; }
.career-form__choices label { display: flex; min-height: 44px; align-items: center; gap: var(--space-xs); }
.career-form__choices input { width: 1.1rem; height: 1.1rem; accent-color: var(--color-brand); }
.career-form__submit { width: 100%; }
.career-form.is-loading .button__spinner { display: block; }
.career-form.is-loading .button__label { opacity: 0.7; }
.career-form.is-error .form-status { color: var(--color-error); }
.career-form.is-success .form-status { color: var(--color-success); }
.career-form.is-success .career-form__submit { border-color: var(--color-success); background: var(--color-success); }
.footer__statement > p { max-width: 20ch; margin: var(--space-md) 0 0; color: var(--color-brand-ink); font-size: clamp(1.5rem, 3vw, 2.4rem); font-weight: 700; line-height: 1.15; letter-spacing: -0.035em; }

/* Inner pages · Long Document */
.page-hero { padding-block: var(--space-xl) var(--space-2xl); background: var(--color-brand-soft); }
.page-hero__grid { display: grid; gap: var(--space-lg); }
.breadcrumbs { display: flex; flex-wrap: wrap; gap: var(--space-2xs); margin-block-end: var(--space-lg); color: var(--color-muted); font-size: var(--text-sm); }
.breadcrumbs a { white-space: nowrap; }
.page-hero h1 { max-width: 22ch; font-size: clamp(1.75rem, 5vw, 5rem); line-height: 1.08; letter-spacing: -0.035em; }
.page-hero__lead { max-width: 62ch; margin: 0; color: var(--color-text-soft); font-size: var(--text-md); }
.page-hero__actions { margin-block-start: var(--space-lg); }
@media (max-width: 39.99rem) { .page-hero__actions .button { width: 100%; } }
.page-hero__aside { align-self: end; padding-block-start: var(--space-md); border-block-start: var(--rule) solid var(--color-line); }
.page-hero__aside strong, .page-hero__aside span { display: block; }
.page-hero__aside span { color: var(--color-text-soft); }
.page-hero__visual { position: relative; min-width: 0; padding-block-end: var(--space-md); }
.page-hero__visual figure { margin: 0; overflow: hidden; border-radius: var(--radius-lg); box-shadow: 0 var(--space-md) var(--space-xl) var(--color-shadow); }
.page-hero__visual img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; object-position: center; }
.page-hero__caption { position: absolute; inset: auto var(--space-sm) 0; margin: 0; padding: var(--space-sm) var(--space-md); border: var(--rule) solid var(--color-line); border-radius: var(--radius-md); background: var(--color-surface); box-shadow: 0 var(--space-xs) var(--space-lg) var(--color-shadow); color: var(--color-text-soft); font-size: var(--text-sm); line-height: 1.45; }
.page-hero__caption strong { display: block; margin-block-end: var(--space-3xs); color: var(--color-text); }
.story-visual { margin: var(--space-xl) 0; overflow: hidden; border-radius: var(--radius-lg); background: var(--color-brand-soft); box-shadow: 0 var(--space-sm) var(--space-xl) var(--color-shadow); }
.story-visual img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; object-position: center; }
.page-body { padding-block: clamp(3.5rem, 8vw, 6rem); }
.document-layout { display: grid; gap: clamp(2.5rem, 7vw, 5rem); }
.document-layout > * { min-width: 0; }
.document-nav { align-self: start; padding: var(--space-md); background: var(--color-surface-alt); border-radius: var(--radius-md); }
.document-nav strong { display: block; margin-block-end: var(--space-xs); }
.document-nav a { display: block; min-height: 40px; color: var(--color-text-soft); text-decoration: none; }
.prose { max-width: 68ch; }
.prose h2 { margin-block: clamp(3rem, 7vw, 5rem) var(--space-md); font-size: clamp(1.6rem, 4vw, 2.75rem); }
.prose h2:first-child { margin-block-start: 0; }
.prose h3 { margin-block: var(--space-2xl) var(--space-sm); }
.prose p, .prose li { color: var(--color-text-soft); line-height: 1.8; }
.prose p { margin-block: 0 var(--space-md); }
.prose p + p { margin-block-start: var(--space-lg); }
.prose ul, .prose ol { padding-inline-start: 1.25rem; }
.prose li + li { margin-block-start: var(--space-xs); }
.prose blockquote { margin: var(--space-xl) 0; padding: var(--space-md); border-inline-start: 3px solid var(--color-brand); background: var(--color-brand-soft); color: var(--color-text); font-size: var(--text-md); }
.link-grid { display: grid; gap: var(--space-sm); margin-block: var(--space-xl); }
.link-card { min-height: 11rem; display: flex; flex-direction: column; justify-content: space-between; padding: var(--space-md); border: var(--rule) solid var(--color-line); border-radius: var(--radius-md); background: var(--color-surface); text-decoration: none; }
.link-card p { margin: 0; color: var(--color-text-soft); }
.link-card span { color: var(--color-brand); font-weight: 800; }
.page-cta { padding-block: var(--space-xl); background: var(--color-brand); color: var(--color-brand-ink); }
.page-cta__inner { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-md); }
.page-cta h2 { margin: 0; }
.legal-draft { padding: var(--space-sm) var(--space-md); border-inline-start: 3px solid var(--color-line); color: var(--color-text-soft); font-size: 0.9em; }
.legal-missing { padding-inline: 0.25em; background: #fff3c4; color: #5c4400; border-radius: 3px; }
.table-scroll { overflow-x: auto; margin-block: var(--space-md); }
.prose table { width: 100%; min-width: 34rem; border-collapse: collapse; font-size: 0.92em; }
.prose th, .prose td { padding: 0.6rem 0.75rem; border-block-end: var(--rule) solid var(--color-line); text-align: start; vertical-align: top; }
.prose th { background: var(--color-surface-alt); }
.prose code { font-size: 0.9em; overflow-wrap: anywhere; }
.legal-note { padding: var(--space-md); border: var(--rule) solid var(--color-line); border-radius: var(--radius-sm); background: var(--color-surface-alt); }
.contact-options { display: grid; gap: var(--space-sm); }
.contact-option { padding: var(--space-md); border-block-start: var(--rule) solid var(--color-line); }
.contact-option strong, .contact-option a { display: block; }
.about-intro { display: grid; gap: clamp(2.5rem, 7vw, 5rem); }
.about-intro__copy { max-width: 58ch; }
.about-intro__copy h2 { max-width: none; font-size: clamp(1.7rem, 3.2vw, 2.75rem); line-height: 1.14; letter-spacing: -0.025em; }
.about-intro__copy p { color: var(--color-text-soft); font-size: var(--text-md); }
.about-values { display: grid; gap: var(--space-sm); }
.about-values article { padding-block: var(--space-md); border-block-start: var(--rule) solid var(--color-line); }
.about-values article:last-child { border-block-end: var(--rule) solid var(--color-line); }
.about-values article > span { color: var(--color-brand); font-size: var(--text-sm); font-weight: 800; }
.about-values h3 { margin-block: var(--space-xs) var(--space-2xs); }
.about-values p { margin: 0; color: var(--color-text-soft); }
.structured-page { display: grid; gap: clamp(2.5rem, 6vw, 4rem); }
.structured-intro { max-width: 58ch; }
.structured-intro h2 { max-width: 18ch; }
.structured-intro p { color: var(--color-text-soft); font-size: var(--text-md); }
.service-cards, .cost-grid { display: grid; gap: var(--space-sm); }
.service-cards article, .cost-grid article { padding: clamp(1.25rem, 4vw, 2rem); border: var(--rule) solid var(--color-line); border-radius: var(--radius-md); background: var(--color-surface); }
.service-cards article { overflow: hidden; padding: 0; }
.service-cards article:not(:has(img)) { padding: clamp(1.25rem, 4vw, 2rem); }
.regional-hero .breadcrumbs, .regional-hero .breadcrumbs a { color: var(--color-brand-ink); }
.service-cards img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; object-position: center; }
.service-card__body { padding: clamp(1.25rem, 4vw, 2rem); }
.service-card__body > span, .cost-grid article > span { color: var(--color-brand); font-size: var(--text-sm); font-weight: 800; }
.service-cards h3, .cost-grid h3 { margin-block: var(--space-sm) var(--space-xs); }
.service-cards p, .cost-grid p { margin: 0; color: var(--color-text-soft); }
.step-list { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; border-block-start: var(--rule) solid var(--color-line); }
.step-list li { display: grid; grid-template-columns: 3rem minmax(0, 1fr); gap: var(--space-md); padding-block: var(--space-lg); border-block-end: var(--rule) solid var(--color-line); }
.step-list li > span { width: 2.5rem; height: 2.5rem; display: grid; place-items: center; border-radius: 50%; background: var(--color-brand); color: var(--color-brand-ink); font-size: var(--text-sm); font-weight: 800; }
.step-list h3 { margin-block-end: var(--space-2xs); }
.step-list p { margin: 0; color: var(--color-text-soft); }
.structured-note { padding: clamp(1.25rem, 4vw, 2rem); border-inline-start: 3px solid var(--color-brand); background: var(--color-brand-soft); }
.structured-note strong { display: block; margin-block-end: var(--space-xs); }
.structured-note p { margin: 0 0 var(--space-sm); color: var(--color-text-soft); }
.structured-note--accent { border-inline-start-color: var(--color-brand-ink); }
.team-section { padding-block: clamp(3.5rem, 8vw, 6rem); background: var(--color-surface-alt); }
.team-grid { display: grid; gap: var(--space-md); }
.person-card { display: grid; gap: var(--space-md); overflow: hidden; border: var(--rule) solid var(--color-line); border-radius: var(--radius-lg); background: var(--color-surface); }
.person-card--owner { background: var(--color-brand-soft); border-color: transparent; }
.person-card__photo { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; object-position: center; }
.person-card__photo--owner { aspect-ratio: 16 / 10; object-position: center 30%; }
.person-card__body { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--space-md); padding: 0 clamp(1.25rem, 4vw, 2rem) clamp(1.25rem, 4vw, 2rem); }
.person-card__mark { width: 3.5rem; height: 3.5rem; display: grid; place-items: center; flex: 0 0 auto; border-radius: 50%; background: var(--color-brand); color: var(--color-brand-ink); font-size: var(--text-sm); font-weight: 800; letter-spacing: 0.04em; }
.person-card__eyebrow { display: block; margin-block-end: var(--space-2xs); color: var(--color-brand); font-size: var(--text-sm); font-weight: 800; }
.person-card h3 { margin-block-end: var(--space-sm); }
.person-card p { margin: 0; color: var(--color-text-soft); }
.person-card p + p { margin-block-start: var(--space-sm); }
.team-home { background: var(--color-surface); }
.team-home__grid { display: grid; gap: var(--space-xl); }
.team-home__copy > p { max-width: 52ch; color: var(--color-text-soft); font-size: var(--text-md); }
.team-home__photo { margin: 0; overflow: hidden; border-radius: var(--radius-lg); }
.team-home__photo img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; object-position: center 45%; }
.lead-card { display: grid; grid-template-columns: 4.5rem minmax(0, 1fr); gap: var(--space-xs) var(--space-sm); align-items: center; max-width: 30rem; margin-block-start: var(--space-lg); padding: var(--space-md); border-radius: var(--radius-md); background: var(--color-brand-soft); }
.lead-card img { width: 4.5rem; height: 4.5rem; border-radius: 50%; object-fit: cover; }
.lead-card strong, .lead-card span { display: block; }
.lead-card span { color: var(--color-brand); font-size: var(--text-sm); font-weight: 800; }
.lead-card p { grid-column: 1 / -1; margin: 0; color: var(--color-text-soft); }
@media (min-width: 60rem) {
  .team-home__grid { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: center; gap: var(--space-3xl); }
}

@keyframes spin { to { transform: rotate(360deg); } }
@keyframes hero-rise { from { opacity: 0; transform: translateY(1.5rem); } to { opacity: 1; transform: translateY(0); } }
@keyframes image-in { from { opacity: 0; transform: translateY(2rem) scale(0.98); } to { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes note-in { from { opacity: 0; transform: translateY(1rem); } to { opacity: 1; transform: translateY(0); } }
@keyframes answer-in { from { opacity: 0; transform: translateY(-0.5rem); } to { opacity: 1; transform: translateY(0); } }
@media (hover: hover) and (pointer: fine) {
  .button:hover { background: var(--color-brand-hover); transform: translateY(-2px); }
  .button--light:hover { background: var(--color-surface-alt); color: var(--color-brand); }
  .button--outline:hover { color: var(--color-brand-ink); }
  .nav__links a:hover, .text-link:hover { color: var(--color-brand); }
  .text-link:hover span { transform: translateX(0.25rem); }
  .call-link:hover .call-link__icon { transform: translate(0.15rem, -0.15rem); }
  .local-entry__links a:hover { border-color: var(--color-brand); transform: translateY(-0.2rem); }
  .mobile-consultation.is-visible:hover { background: var(--color-brand-hover); }
  .field input:hover, .field textarea:hover, .field select:hover { background-color: var(--color-brand-soft); }
  .wizard__choice:hover { background: var(--color-brand-soft); }
  .language-trigger:hover, .language-dialog__close:hover { background: var(--color-brand-soft); color: var(--color-brand); }
  .language-option:not([aria-current="page"]):hover { background: var(--color-brand-soft); }
  .career-index a:hover { color: var(--color-brand); }
}
@media (min-width: 40rem) {
  .wrap { width: min(100% - 3rem, 76rem); }
  .button--nav { display: inline-flex; }
  .hero__visual figure::after { background: linear-gradient(90deg, var(--color-overlay) 0%, var(--color-overlay) 38%, var(--color-overlay-soft) 76%, color-mix(in oklch, var(--color-overlay-soft) 38%, transparent) 100%); }
  .hero__visual img { object-position: 62% center; }
  .hero__note { display: flex; }
  .quick-contact__inner { min-height: 96px; flex-direction: row; align-items: center; justify-content: space-between; }
  .local-entry__links { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .form-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .testimonials__grid { grid-template-columns: minmax(0, 1fr); }
  .testimonial--featured { grid-row: span 2; }
  .footer__grid { grid-template-columns: minmax(0, 1.4fr) repeat(3, minmax(0, 1fr)); }
  .link-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .document-nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--space-md); }
  .document-nav strong { grid-column: 1 / -1; }
  .story-visual img { aspect-ratio: 16 / 8; }
  .page-cta__inner { flex-direction: row; align-items: center; justify-content: space-between; }
  .career-form { padding: var(--space-lg); }
  .career-benefits > div { grid-template-columns: minmax(10rem, 4fr) minmax(0, 8fr); gap: var(--space-lg); }
  .career-facts__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--space-xl); }
  .career-fact--wide { grid-column: 1 / -1; }
  .language-dialog__close { inset-block-start: var(--space-lg); inset-inline-end: var(--space-lg); }
  .language-dialog__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-sm) var(--space-lg); }
}
@media (min-width: 60rem) {
  .section { padding-block: var(--space-3xl); }
  .hero { padding-block: var(--space-2xl) var(--space-3xl); }
  .hero__grid { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); align-items: center; }
  .hero__content { grid-column: 1; }
  .hero__note { inset-inline-end: max(var(--space-lg), calc((100vw - 76rem) / 2)); inset-block-end: var(--space-lg); }
  .local-entry { padding-block: var(--space-3xl); }
  .local-entry__grid { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: end; gap: var(--space-3xl); }
  .testimonials__layout { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); align-items: start; gap: var(--space-3xl); }
  .section-head { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); align-items: end; }
  .journey__grid, .costs__grid, .faq__grid, .contact__grid, .why-us__grid { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--space-3xl); }
  .journey__intro { position: sticky; inset-block-start: 8rem; align-self: start; }
  .inquiry { padding: var(--space-lg); }
  .mobile-call { display: none; }
  .footer { padding-block-end: var(--space-2xl); }
  .page-hero__grid { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); align-items: end; }
  .page-hero__visual { padding-block-end: var(--space-lg); }
  .page-hero__visual img { aspect-ratio: 4 / 3; }
  .page-hero__caption { inset-inline-start: calc(var(--space-lg) * -1); inset-inline-end: var(--space-md); }
  .document-layout { grid-template-columns: minmax(12rem, 3fr) minmax(0, 9fr); gap: var(--space-3xl); }
  .document-nav { position: sticky; inset-block-start: 8rem; display: block; }
  .link-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .team-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; }
  .about-intro { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: start; }
  .service-cards, .cost-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .regional-hero__inner, .career-hero__inner { padding-block: var(--space-xl) var(--space-3xl); }
  .regional-hero__copy, .career-hero__copy { margin-inline-start: min(8vw, 6rem); }
  .career-intro, .career-facts, .career-role, .career-fit, .career-process, .career-apply { padding-block: var(--space-3xl); }
  .career-intro__grid, .career-role__grid, .career-process__grid, .career-apply__grid { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--space-3xl); }
  .career-sticky-head, .career-role__grid > div:first-child, .career-process__grid > div:first-child { position: sticky; inset-block-start: calc(var(--banner-height) + 5rem); align-self: start; }
  .career-fit__grid { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--space-3xl); }
  .career-fit__yes { padding-inline-end: var(--space-xl); }
  .career-apply__copy { align-self: start; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: 1ms !important; animation-iteration-count: 1 !important; transition-duration: 1ms !important; }
  .hero__visual img { transform: none !important; }
}

@media (max-width: 39.99rem) {
  .hero { min-height: clamp(36rem, 78svh, 42rem); padding-block: var(--space-lg) var(--space-xl); }
  .hero__content { align-self: end; }
  .hero .eyebrow { max-width: none; margin-block-end: var(--space-sm); font-size: var(--text-xs); line-height: 1.45; }
  .hero .eyebrow > span { width: 1.25rem; }
  .hero h1 { max-width: 9ch; margin-block-end: var(--space-sm); font-size: clamp(2.45rem, 12vw, 3.3rem); }
  .hero__lead { max-width: none; margin-block-end: var(--space-md); font-size: 1rem; line-height: 1.5; }
  .hero__actions { display: block; }
  .hero__actions .button { width: 100%; }
  .hero__actions .call-link, .hero .trust-list, .quick-contact { display: none; }
  .hero__visual img { object-position: 72% center; }
  .regional-hero--bad-berleburg { background-position: 66% center; }
  .regional-hero--bad-laasphe { background-position: 50% center; }
  .regional-hero--erndtebrueck { background-position: 50% center; }
  .regional-hero--wittgenstein { background-position: 64% center; }
}

/* Hallmark · component: compact post-submit choices + calendar embed · genre: modern-minimal · theme: Pflegeservice green
 * pre-emit critique: P5 H5 E5 S5 R5 V5
 * states: default · hover · focus · active · disabled · loading · error · success
 * contrast: pass (40–41) · responsive: pass (49–57)
 */
.thank-hero { padding-block: var(--space-xl) var(--space-2xl); background: var(--color-brand-soft); }
.thank-hero__inner { display: grid; gap: var(--space-lg); }
.thank-confirmation { width: 4rem; height: 4rem; display: grid; place-items: center; border-radius: 50%; background: var(--color-brand); color: var(--color-brand-ink); }
.thank-confirmation svg { width: 2rem; height: 2rem; fill: none; stroke: currentColor; stroke-width: 2.25; stroke-linecap: round; stroke-linejoin: round; }
.thank-kicker { margin-block-end: var(--space-sm); color: var(--color-brand); font-size: var(--text-sm); font-weight: 800; }
.thank-hero h1 { max-width: 14ch; margin-block-end: var(--space-md); }
.thank-hero__lead { max-width: 64ch; margin-block-end: var(--space-lg); color: var(--color-text-soft); font-size: var(--text-md); }
.thank-preview-note { max-width: 64ch; display: grid; gap: var(--space-2xs); margin-block-end: var(--space-lg); padding: var(--space-sm) var(--space-md); border-inline-start: 3px solid var(--color-brand); background: var(--color-surface); color: var(--color-text-soft); font-size: var(--text-sm); }
.thank-preview-note strong { color: var(--color-text); }
.thank-hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-sm) var(--space-md); }

.thank-booking { padding-block: var(--space-2xl); scroll-margin-block-start: calc(var(--banner-height) + var(--space-md)); }
.thank-booking__grid { display: grid; gap: var(--space-xl); }
.thank-booking__intro { align-self: start; }
.thank-booking__intro > p { max-width: 48ch; margin: 0; color: var(--color-text-soft); font-size: var(--text-md); }
.booking-panel { min-width: 0; min-height: 30rem; display: grid; border: var(--rule) solid var(--color-line); border-radius: var(--radius-lg); overflow: clip; background: var(--color-surface); color: var(--color-text); }
.booking-panel [hidden] { display: none !important; }
.booking-panel[data-state="loading"] { border-color: var(--color-line); }
.booking-panel[data-state="error"] { border-color: var(--color-error); }
.booking-panel[data-state="ready"] { border-color: var(--color-brand); }
.booking-panel[data-state="unconfigured"] { border-style: dashed; }
.booking-panel__state { min-height: 30rem; display: grid; align-content: center; justify-items: start; gap: var(--space-sm); padding: var(--space-lg); }
.booking-panel__state strong { font-size: var(--text-lg); line-height: 1.25; }
.booking-panel__state p { max-width: 52ch; margin: 0; color: var(--color-text-soft); }
.booking-panel__spinner { width: 2rem; height: 2rem; border: 3px solid var(--color-line); border-block-start-color: var(--color-brand); border-radius: 50%; animation: booking-spin 800ms linear infinite; }
.booking-panel__calendar { min-width: 0; min-height: 42rem; overflow: auto; }
.booking-panel__calendar iframe { min-width: 0 !important; }
.booking-panel__actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-sm); }

@keyframes booking-spin { to { transform: rotate(360deg); } }

@media (min-width: 40rem) {
  .thank-hero__inner { grid-template-columns: auto minmax(0, 1fr); gap: var(--space-xl); align-items: start; }
}

@media (min-width: 60rem) {
  .thank-hero { padding-block: var(--space-2xl) var(--space-3xl); }
  .thank-booking { padding-block: var(--space-3xl); }
  .thank-booking__grid { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: var(--space-2xl); }
  .thank-booking__intro { position: sticky; inset-block-start: calc(var(--banner-height) + var(--space-xl)); }
  .booking-panel__state { padding: var(--space-xl); }
}

@media (max-width: 39.99rem) {
  body[data-thank-flow] .mobile-call { display: none; }
  .thank-hero { padding-block: var(--space-lg) var(--space-xl); }
  .thank-confirmation { width: 3.25rem; height: 3.25rem; }
  .thank-confirmation svg { width: 1.6rem; height: 1.6rem; }
  .thank-kicker { margin-block-end: var(--space-xs); }
  .thank-hero h1 { margin-block-end: var(--space-sm); font-size: clamp(2.25rem, 11vw, 3rem); }
  .thank-hero__lead { margin-block-end: var(--space-md); font-size: 1rem; line-height: 1.5; }
  .thank-hero__actions { display: grid; }
  .thank-hero__actions .button { width: 100%; }
  .thank-booking { padding-block: var(--space-xl); }
  .booking-panel, .booking-panel__state { min-height: 20rem; }
  .booking-panel__state { padding: var(--space-md); }
}

@media (prefers-reduced-motion: reduce) {
  .booking-panel__spinner { animation-duration: 1.5s !important; }
}

/* ---------------------------------------------------------------------------
   Self-hosted Manrope (no request to Google Fonts)
   --------------------------------------------------------------------------- */
@font-face { font-family: "Manrope"; font-style: normal; font-weight: 400 800; font-display: swap; src: url("/assets/fonts/manrope-latin-ext.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Manrope"; font-style: normal; font-weight: 400 800; font-display: swap; src: url("/assets/fonts/manrope-latin.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

/* ---------------------------------------------------------------------------
   Conversion flow additions (2026-09): hero, trust strip, short form,
   sticky mobile bar, cookie banner, thank-you steps
   --------------------------------------------------------------------------- */
.hero h1 { max-width: 17ch; font-size: clamp(2.3rem, 4.4vw, 3.9rem); line-height: 1.05; }
.hero h1 { margin-block-end: var(--space-lg); }
.hero__title-soft { display: block; margin-block-start: 0.15em; font-size: 0.62em; font-weight: 600; letter-spacing: -0.02em; color: color-mix(in oklch, var(--color-brand-ink) 84%, transparent); }
.hero__reassurance { margin: var(--space-md) 0 0; color: color-mix(in oklch, var(--color-brand-ink) 72%, transparent); font-size: var(--text-sm); }
.button--call { border-color: color-mix(in oklch, var(--color-brand-ink) 45%, transparent); background: color-mix(in oklch, var(--color-brand-ink) 10%, transparent); color: var(--color-brand-ink); backdrop-filter: blur(6px); }
.button--call > span:last-child { display: grid; line-height: 1.15; text-align: start; font-size: var(--text-xs); font-weight: 600; }
.button--call strong { font-size: var(--text-base); font-weight: 800; white-space: nowrap; }
.button__icon { font-size: 1.25rem; }

.trust { border-block-end: var(--rule) solid var(--color-line); background: var(--color-surface-alt); }
.trust__list { display: grid; gap: var(--space-md); margin: 0; padding: var(--space-lg) 0; list-style: none; }
.trust__list li { display: grid; gap: var(--space-3xs); padding-inline-start: var(--space-sm); border-inline-start: 3px solid var(--color-brand); }
.trust__list strong { font-size: var(--text-md); line-height: 1.25; }
.trust__list span { color: var(--color-text-soft); font-size: var(--text-sm); }

.facts div dd { max-width: 34ch; }

.contact__qualifier { max-width: 52ch; margin: var(--space-lg) 0 0; padding: var(--space-sm) var(--space-md); border-inline-start: 3px solid color-mix(in oklch, var(--color-brand-ink) 55%, transparent); background: color-mix(in oklch, var(--color-brand-ink) 8%, transparent); font-size: var(--text-sm); line-height: 1.5; opacity: 0.92; }
.inquiry__head { margin-block-end: var(--space-md); }
.inquiry__head h3 { margin: 0 0 var(--space-3xs); font-size: var(--text-lg); }
.inquiry__head p { margin: 0; color: var(--color-text-soft); font-size: var(--text-sm); }
.inquiry__note { margin: var(--space-xs) 0 0; color: var(--color-muted); font-size: var(--text-xs); text-align: center; }
.field label small { color: var(--color-muted); font-weight: 500; }
.field--trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.form-status a { color: inherit; font-weight: 800; white-space: nowrap; }

.mobile-bar { position: fixed; inset: auto var(--space-sm) max(var(--space-sm), env(safe-area-inset-bottom)); z-index: var(--z-sticky); display: none; grid-template-columns: auto minmax(0, 1fr); gap: var(--space-xs); opacity: 0; pointer-events: none; transform: translateY(calc(100% + var(--space-lg))); transition: opacity var(--dur-short) var(--ease-out), transform var(--dur-base) var(--ease-out); }
.mobile-bar.is-visible { opacity: 1; pointer-events: auto; transform: translateY(0); }
.mobile-bar a { min-height: 56px; display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2xs); padding-inline: var(--space-md); border-radius: var(--radius-pill); font-weight: 800; text-decoration: none; white-space: nowrap; box-shadow: 0 var(--space-xs) var(--space-lg) var(--color-shadow); }
.mobile-bar__call { border: var(--rule) solid var(--color-line); background: var(--color-surface); color: var(--color-brand); }
.mobile-bar__cta { border: var(--rule) solid var(--color-brand); background: var(--color-brand); color: var(--color-brand-ink); }
body[data-thank-flow] .mobile-bar { display: none; }

.cookie-banner { position: fixed; inset: auto var(--space-sm) max(var(--space-sm), env(safe-area-inset-bottom)); z-index: var(--z-modal); }
.cookie-banner__inner { display: grid; gap: var(--space-md); width: min(100%, 40rem); margin-inline: auto; padding: var(--space-md) var(--space-lg); border: var(--rule) solid var(--color-line); border-radius: var(--radius-md); background: var(--color-surface); color: var(--color-text); box-shadow: 0 var(--space-md) var(--space-xl) var(--color-shadow); }
.cookie-banner__copy strong { display: block; margin-block-end: var(--space-3xs); }
.cookie-banner__copy p { margin: 0; color: var(--color-text-soft); font-size: var(--text-sm); line-height: 1.5; }
.cookie-banner__copy a { color: var(--color-brand); font-weight: 700; }
.cookie-banner__actions { display: grid; gap: var(--space-xs); }
.cookie-banner__actions .button { width: 100%; min-height: 48px; font-size: var(--text-sm); }
.footer__bottom a[data-consent-settings] { opacity: 0.8; }
.footer__grid span { display: block; margin-block-start: var(--space-xs); color: color-mix(in oklch, var(--color-brand-ink) 70%, transparent); font-size: var(--text-sm); line-height: 1.5; }

.thank-steps { max-width: 64ch; margin-block-end: var(--space-lg); }
.thank-steps h2 { margin-block-end: var(--space-sm); font-size: var(--text-lg); }
.thank-steps ol { display: grid; gap: var(--space-sm); margin: 0; padding-inline-start: 1.4rem; color: var(--color-text-soft); }
.thank-steps li { padding-inline-start: var(--space-3xs); line-height: 1.5; }
.thank-steps strong { color: var(--color-text); }
.thank-optional { margin: var(--space-md) 0 0; padding: var(--space-sm) var(--space-md); border-inline-start: 3px solid var(--color-brand); background: var(--color-surface); color: var(--color-text-soft); font-size: var(--text-sm); line-height: 1.5; }
.thank-booking[hidden] { display: none; }

@media (min-width: 40rem) {
  .trust__list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-lg); }
  .cookie-banner__actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mobile-bar { display: none !important; }
}
@media (min-width: 60rem) {
  .trust__list { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .local-entry__links { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .facts { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--space-xl); }
  .cookie-banner__inner { grid-template-columns: minmax(0, 1fr) auto; align-items: center; width: min(100%, 60rem); }
  .cookie-banner__actions { grid-template-columns: auto auto; }
  .cookie-banner__actions .button { width: auto; }
}
@media (max-width: 39.99rem) {
  .hero h1 { max-width: none; font-size: clamp(2rem, 8.6vw, 2.6rem); }
  .hero__lead-more { display: none; }
  .hero__actions { display: grid; gap: var(--space-xs); }
  .hero__actions .button { width: 100%; }
  .button--call { justify-content: center; }
  .hero__reassurance { margin-block-start: var(--space-sm); font-size: var(--text-xs); }
  .hero__visual img { object-position: 80% center; }
  .mobile-bar { display: grid; }
  .mobile-call { display: none; }
  main { padding-block-end: 0; }
  body:has(.mobile-bar.is-visible) .footer { padding-block-end: calc(var(--space-2xl) + 56px); }
}

/* ---------------------------------------------------------------------------
   Detailed questionnaire (/fragebogen/)
   --------------------------------------------------------------------------- */
.page-hero--compact { padding-block-end: var(--space-lg); }
.questionnaire { background: var(--color-surface-alt); }
.questionnaire__wrap { display: grid; gap: var(--space-xl); align-items: start; }
.questionnaire__form { padding: var(--space-md); }
.questionnaire__form .wizard__head { margin-block-end: var(--space-md); }
.questionnaire__reset { padding: 0; border: 0; background: none; color: var(--color-muted); font: inherit; font-size: var(--text-xs); font-weight: 700; text-decoration: underline; cursor: pointer; }
.questionnaire__reset:hover { color: var(--color-error); }
.questionnaire__form .wizard__step legend { margin-block-end: var(--space-sm); font-size: var(--text-lg); }
.questionnaire__form .wizard__hint { margin: 0 0 var(--space-lg); font-size: var(--text-sm); }
.questionnaire__group { margin: var(--space-lg) 0 var(--space-sm); padding-block-start: var(--space-md); border-block-start: var(--rule) solid var(--color-line); font-size: var(--text-md); }
.questionnaire__group:first-of-type { margin-block-start: 0; padding-block-start: 0; border: 0; }
.field__label { display: block; margin-block-end: var(--space-2xs); font-size: var(--text-sm); font-weight: 700; }
.field__label small { color: var(--color-muted); font-weight: 500; }
.wizard__choices--inline { display: flex; flex-wrap: wrap; gap: var(--space-2xs); }
.wizard__choices--inline .wizard__choice { min-height: 46px; flex: 1 1 auto; padding: var(--space-2xs) var(--space-sm); }
.wizard__choices--inline .wizard__choice strong { font-size: var(--text-sm); font-weight: 700; }
.wizard__choices[aria-invalid="true"] .wizard__choice { border-color: var(--color-error); }
.questionnaire__terms { margin-block-end: var(--space-md); padding: var(--space-sm) var(--space-md); border-radius: var(--radius-sm); background: var(--color-brand-soft); color: var(--color-text-soft); font-size: var(--text-sm); }
.questionnaire__terms ul { margin: 0; padding-inline-start: 1.1rem; display: grid; gap: var(--space-2xs); }
.questionnaire__form .consent { font-size: var(--text-sm); }
.questionnaire__form .consent a { color: var(--color-brand); font-weight: 700; }
.questionnaire__form .wizard__actions .button { min-width: 8rem; }
.questionnaire__aside { display: grid; gap: var(--space-sm); padding: var(--space-md); border: var(--rule) solid var(--color-line); border-radius: var(--radius-md); background: var(--color-surface); }
.questionnaire__aside p { margin: 0; color: var(--color-text-soft); }
.questionnaire__aside .button { justify-self: start; }
.questionnaire__aside-note { font-size: var(--text-xs); color: var(--color-muted); }
.thank-optional a { color: var(--color-brand); font-weight: 800; white-space: nowrap; }
@media (min-width: 40rem) {
  .questionnaire__form { padding: var(--space-lg); }
}
@media (min-width: 60rem) {
  .questionnaire__wrap { max-width: 52rem; }
}

body.questionnaire-page .mobile-bar { display: none !important; }

/* Direct access to the calculator from the landing-page hero. */
.hero .hero__calculator { background:transparent; color:var(--color-brand-ink); border-color:currentColor; }
.hero__visual .hero__note-photo { width: 3.25rem; height: 3.25rem; max-width: none; flex: 0 0 auto; border-radius: 50%; object-fit: cover; object-position: center; transform: none; will-change: auto; }
.hero .hero__calculator:hover { border-color: var(--color-brand-ink); background: var(--color-brand-ink); color: var(--color-brand); }
/* Reserve the JS-rendered header height (nav 72px + rule) so subpages do not jump. */
[data-site-header] { display: block; min-height: 73px; }

/* Mobile header: call button instead of the language button on family pages (Dennis, 2026-09-28) */
.nav__call { width: 44px; height: 44px; display: grid; place-items: center; border-radius: var(--radius-pill); background: var(--color-brand); color: var(--color-brand-ink); }
.nav__call svg { width: 1.25rem; height: 1.25rem; fill: currentColor; }
@media (max-width: 79.99rem) {
  .nav__links .language-control { min-height: 56px; padding-block-start: var(--space-xs); border-block-start: var(--rule) solid var(--color-line); }
}

/* Cost page: confirmed price (hidden until set in site-config.js) and grant table */
.price-callout { display: grid; gap: var(--space-2xs); margin-block-end: var(--space-xl); padding: var(--space-lg); border-radius: var(--radius-lg); background: var(--color-brand); color: var(--color-brand-ink); }
.price-callout__label { font-size: var(--text-sm); font-weight: 800; opacity: 0.75; }
.price-callout strong { font-family: var(--font-display); font-size: clamp(1.8rem, 5vw, 2.6rem); line-height: 1.1; letter-spacing: -0.03em; }
.price-callout__includes { opacity: 0.85; }
.price-callout p { margin: var(--space-xs) 0 0; color: color-mix(in oklch, var(--color-brand-ink) 82%, transparent); font-size: var(--text-sm); }
.grant-table { width: 100%; margin-block: 0 var(--space-lg); border-collapse: collapse; }
.grant-table th, .grant-table td { padding: var(--space-xs) 0; border-block-end: var(--rule) solid var(--color-line); text-align: start; }
.grant-table th { color: var(--color-muted); font-size: var(--text-sm); font-weight: 700; }
.grant-table td:last-child, .grant-table th:last-child { text-align: end; font-weight: 800; color: var(--color-text); }
.hero-facts { margin: calc(var(--space-md) * -1) 0 var(--space-lg); font-size: var(--text-sm); font-weight: 800; color: var(--color-brand-ink); opacity: 0.9; }
.regional-hero .hero-facts { margin: var(--space-md) 0 0; }

/* Contact page: what happens next + face (JEV: lowest reassurance score) */
.next-steps { margin-block: var(--space-lg); padding: var(--space-md) var(--space-lg); border: var(--rule) solid color-mix(in oklch, var(--color-brand-ink) 24%, transparent); border-radius: var(--radius-md); }
.next-steps ol { margin: var(--space-xs) 0 var(--space-sm); padding-inline-start: 1.25rem; }
.next-steps li + li { margin-block-start: var(--space-2xs); }
.next-steps p { margin: 0; font-size: var(--text-sm); opacity: 0.78; }
.contact .lead-card { color: var(--color-text); }
@media (max-width: 59.99rem) {
  /* Mobile contact page: form right after heading + phone, reassurance below it */
  #anfrage .contact__copy:has(.next-steps) { display: contents; }
  #anfrage:has(.next-steps) .contact__grid > .inquiry { order: 1; }
  #anfrage .contact__copy > .next-steps, #anfrage .contact__copy > .lead-card, #anfrage .contact__copy > .contact__qualifier { order: 2; margin-block: 0; }
}

/* Questionnaire: visible confidentiality promise */
.privacy-box { max-width: 62ch; margin-block-start: var(--space-md); padding: var(--space-md); border-radius: var(--radius-md); background: var(--color-surface); border: var(--rule) solid var(--color-line); }
.privacy-box ul { margin: var(--space-xs) 0 0; padding-inline-start: 1.2rem; color: var(--color-text-soft); font-size: var(--text-sm); }
.privacy-box li + li { margin-block-start: var(--space-3xs); }

/* Very small phones: keep the logo clear of the call + menu buttons */
@media (max-width: 22.5rem) {
  .nav .brand__logo { height: 1.75rem; }
}

/* Hero: rotating Google reviews (5 stars, one quote at a time) */
.reviews { background: var(--color-brand); color: var(--color-brand-ink); }
.reviews__inner { display: grid; justify-items: center; gap: var(--space-md); text-align: center; }
.reviews__stars { color: #e5a50a; font-size: 1.25rem; letter-spacing: 0.15em; line-height: 1; }
.reviews__items { display: grid; width: 100%; max-width: 46rem; }
.reviews__item { grid-area: 1 / 1; margin: 0; opacity: 0; visibility: hidden; transition: opacity 600ms var(--ease-out), visibility 0s linear 600ms; }
.reviews__item.is-active { opacity: 1; visibility: visible; transition: opacity 600ms var(--ease-out); }
.reviews blockquote { margin: 0 0 var(--space-sm); color: inherit; font-size: clamp(1.2rem, 2.6vw, 1.7rem); font-weight: 600; line-height: 1.4; letter-spacing: -0.02em; }
.reviews figcaption { color: inherit; opacity: 0.75; font-size: var(--text-sm); font-weight: 800; }
@media (prefers-reduced-motion: reduce) { .reviews__item, .reviews__item.is-active { transition: none; } }
.faq__grid--list { grid-template-columns: minmax(0, 1fr) !important; max-width: 52rem; gap: var(--space-md) !important; }
.faq__title { max-width: none; margin: 0 0 var(--space-sm); }
.reviews__cta { margin-block-start: var(--space-sm); }

/* Ratgeber (help center) */
.guide-hub { padding-block-start: var(--space-xl); }
.guide-grid { display: grid; gap: var(--space-md); }
.guide-card { display: grid; align-content: start; gap: var(--space-xs); padding: clamp(1.25rem, 3vw, 1.75rem); border: var(--rule) solid var(--color-line); border-radius: var(--radius-lg); background: var(--color-surface); color: inherit; text-decoration: none; transition: border-color var(--dur-short) var(--ease-out), transform var(--dur-short) var(--ease-out); }
.guide-card:hover, .guide-card:focus-visible { border-color: var(--color-brand); transform: translateY(-2px); }
.guide-card h2 { margin: 0; font-size: var(--text-lg, 1.35rem); }
.guide-card p { margin: 0; color: var(--color-text-soft); }
.guide-card__tag { color: var(--color-brand); font-size: var(--text-xs); font-weight: 800; letter-spacing: 0.04em; text-transform: uppercase; }
.guide-card__go { margin-block-start: var(--space-xs); color: var(--color-brand); font-weight: 700; }
.guide-card--tool { background: var(--color-brand-soft); border-color: transparent; }
.guide-paths { display: grid; gap: var(--space-lg); margin-block: clamp(3rem, 7vw, 5rem); }
.guide-paths__intro p { color: var(--color-text-soft); }
.guide-paths__list { display: grid; gap: var(--space-sm); margin: 0; padding: 0; list-style: none; counter-reset: path; }
.guide-paths__list li { position: relative; display: grid; gap: var(--space-2xs); padding: var(--space-md) var(--space-md) var(--space-md) 3.5rem; border-radius: var(--radius-md); background: var(--color-surface-alt); counter-increment: path; }
.guide-paths__list li::before { content: counter(path); position: absolute; inset: var(--space-md) auto auto var(--space-md); width: 1.75rem; height: 1.75rem; display: grid; place-items: center; border-radius: 50%; background: var(--color-brand); color: var(--color-brand-ink); font-size: var(--text-sm); font-weight: 800; }
.guide-paths__list span { color: var(--color-text-soft); }
.guide-source { margin-block-start: var(--space-xl) !important; color: var(--color-muted) !important; font-size: var(--text-xs); line-height: 1.6 !important; }
.guide-more { display: grid; gap: var(--space-xs); margin-block-start: var(--space-xl); padding-block-start: var(--space-md); border-block-start: var(--rule) solid var(--color-line); }
.checklist { padding: 0 !important; list-style: none; }
.checklist li + li { margin-block-start: var(--space-2xs) !important; }
.checklist label { display: flex; align-items: flex-start; gap: var(--space-sm); min-height: 44px; padding-block: var(--space-2xs); cursor: pointer; }
.checklist input { width: 1.25rem; height: 1.25rem; flex: 0 0 auto; margin-block-start: 0.3rem; accent-color: var(--color-brand); }
.prose .grant-table td:first-child { padding-inline-end: var(--space-md); }
@media (min-width: 40rem) { .guide-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 64rem) { .guide-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } .guide-paths { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: var(--space-3xl); } }
@media print {
  [data-site-header], .site-header, .footer, .page-cta, .document-nav, .guide-print, .guide-more, .mobile-call, .cookie-banner, .skip-link, .breadcrumbs { display: none !important; }
  .document-layout { display: block; }
  body { background: #fff; }
}

/* Inline navigation only where all items fit next to the logo */
@media (min-width: 80rem) {
  .nav { gap: var(--space-md); }
  .nav__links { position: static; display: flex; justify-content: center; gap: var(--space-lg); padding: 0; background: transparent; border: 0; border-radius: 0; box-shadow: none; }
  .nav > .button { justify-self: end; }
  .nav__toggle { display: none; }
}

/* Very small phones only: a heading word wider than the screen breaks at a syllable instead of overflowing */
@media (max-width: 21rem) { h1, h2 { hyphens: auto; } }

/* Home: Kosten & Fördermöglichkeiten */
.costs__copy h2 { margin-block-end: var(--space-sm); }
.costs__price { margin: 0 0 var(--space-md); color: var(--color-text); font-size: var(--text-md); }
.costs__price strong { color: var(--color-brand); }
.costs__actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-sm) var(--space-lg); margin-block-start: var(--space-lg); }
.funding { padding: var(--space-lg); border: var(--rule) solid var(--color-line); border-radius: var(--radius-md); background: var(--color-surface); }
.funding__title { margin: 0 0 var(--space-md); font-family: inherit; font-size: var(--text-sm); font-weight: 800; letter-spacing: 0; color: var(--color-brand); }
.funding { container-type: inline-size; }
.funding__grades { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-sm); margin: 0; padding: 0; list-style: none; }
.funding__grades li { display: grid; align-content: space-between; gap: var(--space-xs); min-width: 0; padding: var(--space-md); border-radius: var(--radius-sm, 0.5rem); background: var(--color-surface-alt); }
.funding__grades span { color: var(--color-text-soft); font-size: var(--text-sm); white-space: nowrap; }
.funding__grades strong { font-family: var(--font-display); font-size: 1.5rem; font-size: clamp(1.5rem, 9cqi, var(--text-xl)); line-height: 1.1; letter-spacing: -0.03em; color: var(--color-text); white-space: nowrap; font-variant-numeric: tabular-nums; }
.funding__more { display: grid; margin: var(--space-lg) 0 0; }
.funding__more div { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--space-2xs) var(--space-md); padding-block: var(--space-sm); border-block-start: var(--rule) solid var(--color-line); }
.funding__more dt { max-width: 34ch; color: var(--color-text-soft); font-size: var(--text-sm); }
.funding__more dd { margin: 0; font-weight: 800; white-space: nowrap; }
.funding__note { margin: var(--space-md) 0 0; color: var(--color-text-soft); font-size: var(--text-xs); }
.funding__note a { color: var(--color-brand); font-weight: 700; }
@container (min-width: 36rem) {
  .funding__grades { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .funding__grades strong { font-size: clamp(1.5rem, 4.5cqi, var(--text-xl)); }
}
@container (max-width: 22rem) { .funding__grades li { padding: var(--space-sm); } }

/* Home "Unsere Unterstützung": swipeable row on phones instead of a stack */
@media (max-width: 39.99rem) {
  .service-layout { grid-auto-flow: column; grid-auto-columns: 78%; gap: var(--space-sm); overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-padding-inline: 1rem; margin-inline: -1rem; padding-inline: 1rem; padding-block-end: var(--space-2xs); scrollbar-width: none; }
  .service-layout::-webkit-scrollbar { display: none; }
  .service-card { scroll-snap-align: start; }
}

/* ---------------------------------------------------------------------------
   Google-Ads landing pages (/lp/…): minimal header, hero with funnel, proof.
   --------------------------------------------------------------------------- */
.lp i[data-local], .lp i[data-wide] { font-style: normal; }
.lp [data-wide] { display: none; }
.lp-wide .lp [data-local], html.lp-wide [data-local] { display: none; }
html.lp-wide [data-wide] { display: inline; }
.lp-header { position: sticky; top: 0; z-index: var(--z-header, 50); background: var(--color-bg); border-block-end: var(--rule) solid var(--color-line); }
.lp-header__inner { display: flex; align-items: center; justify-content: space-between; gap: var(--space-sm); min-height: 4.25rem; }
.lp-header .brand__logo { width: 9.5rem; height: auto; }
.lp-header__phone { display: inline-flex; align-items: center; gap: var(--space-2xs); padding: 0.55rem 1rem; border-radius: var(--radius-pill); background: var(--color-brand); color: var(--color-brand-ink); font-weight: 800; text-decoration: none; white-space: nowrap; }
.lp-hero { padding-block: clamp(2rem, 5vw, 4.5rem); background: var(--color-brand); color: var(--color-brand-ink); }
.lp-hero__grid { display: grid; gap: var(--space-xl); align-items: start; }
.lp-hero .eyebrow { color: var(--color-brand-ink); }
.lp-hero .eyebrow > span { background: var(--color-brand-ink); }
.lp-hero h1 { max-width: 16ch; margin-block-end: var(--space-md); color: var(--color-brand-ink); font-size: clamp(2.1rem, 4.6vw, 3.6rem); line-height: 1.05; }
.lp-hero .hero__title-soft { color: color-mix(in oklch, var(--color-brand-ink) 84%, transparent); }
.lp-hero__lead { max-width: 52ch; margin-block-end: var(--space-md); color: color-mix(in oklch, var(--color-brand-ink) 86%, transparent); font-size: var(--text-md); }
.lp-checks { display: grid; gap: var(--space-2xs); margin: 0 0 var(--space-lg); padding: 0; list-style: none; font-weight: 700; }
.lp-checks li { display: flex; gap: var(--space-xs); align-items: baseline; }
.lp-checks li::before { content: "✓"; color: #e5a50a; font-weight: 800; }
.lp-hero__call { display: grid; width: fit-content; color: var(--color-brand-ink); font-size: var(--text-lg); font-weight: 800; text-decoration: none; }
.lp-hero__call small { font-size: var(--text-sm); font-weight: 600; opacity: 0.8; }
.funnel { padding: clamp(1.25rem, 3.5vw, 2rem); border-radius: var(--radius-lg); background: var(--color-surface); color: var(--color-text); box-shadow: 0 1.5rem 3rem var(--color-shadow); }
.funnel__person { display: flex; align-items: center; gap: var(--space-sm); margin-block-end: var(--space-md); padding-block-end: var(--space-md); border-block-end: var(--rule) solid var(--color-line); }
.funnel__person img { width: 3.25rem; height: 3.25rem; border-radius: 50%; object-fit: cover; }
.funnel__person p { display: grid; margin: 0; line-height: 1.3; }
.funnel__person span { color: var(--color-text-soft); font-size: var(--text-sm); }
.funnel__head { display: grid; gap: var(--space-2xs); margin-block-end: var(--space-md); }
.funnel__title { margin: 0; font-family: var(--font-display); font-size: var(--text-lg); font-weight: 800; }
.funnel .wizard__step legend { margin-block-end: var(--space-md); font-size: var(--text-lg); }
.wizard__choices--grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.funnel .wizard__choice { min-height: 52px; }
.funnel .field { margin-block-end: var(--space-sm); }
.funnel__next, .funnel__submit { width: 100%; margin-block-start: var(--space-sm); }
.funnel .consent { margin-block: var(--space-sm) 0; }
.funnel__foot { display: flex; align-items: center; justify-content: space-between; gap: var(--space-sm); margin-block-start: var(--space-sm); }
.funnel__back { padding: 0; border: 0; background: none; color: var(--color-text-soft); font: inherit; font-weight: 700; cursor: pointer; }
.funnel__back[hidden] { display: none; }
.funnel .form-status { margin: 0; color: var(--color-error); font-size: var(--text-sm); font-weight: 700; }
.funnel__note { margin: var(--space-sm) 0 0; padding: var(--space-sm); border-radius: var(--radius-sm); background: var(--color-surface-alt); font-size: var(--text-sm); }
.funnel__note[hidden] { display: none; }
.funnel__privacy { margin: var(--space-sm) 0 0; color: var(--color-text-soft); font-size: var(--text-xs); text-align: center; }
.funnel.is-loading { opacity: 0.7; pointer-events: none; }
.lp-reviews { padding-block: var(--space-2xl); text-align: center; }
.lp-reviews .reviews__stars { margin: 0 0 var(--space-md); }
.lp-reviews__grid { display: grid; gap: var(--space-lg); }
.lp-reviews figure { margin: 0; }
.lp-reviews blockquote { margin: 0 0 var(--space-2xs); font-size: var(--text-md); font-weight: 600; line-height: 1.45; }
.lp-reviews figcaption { color: var(--color-text-soft); font-size: var(--text-sm); font-weight: 800; }
.lp-steps h2 { margin-block-end: var(--space-lg); }
.lp-final { background: var(--color-brand); color: var(--color-brand-ink); text-align: center; }
.lp-final__inner { display: grid; justify-items: center; gap: var(--space-sm); }
.lp-final h2 { margin: 0; color: var(--color-brand-ink); max-width: 20ch; }
.lp-final p { margin: 0; opacity: 0.85; }
.lp-final__actions { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: var(--space-md); margin-block-start: var(--space-sm); }
.lp-final__phone { color: var(--color-brand-ink); font-size: var(--text-lg); font-weight: 800; text-decoration: none; }
.lp-footer { padding-block: var(--space-lg) calc(var(--space-lg) + 4rem); border-block-start: var(--rule) solid var(--color-line); color: var(--color-text-soft); font-size: var(--text-sm); }
.lp-footer__inner { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--space-sm); }
.lp-footer nav { display: flex; flex-wrap: wrap; gap: var(--space-md); }
.lp-footer a { color: inherit; }
.lp-mobile-call { position: fixed; inset-inline: var(--space-sm); bottom: calc(var(--space-sm) + env(safe-area-inset-bottom)); z-index: 40; display: flex; justify-content: center; padding: 0.9rem; border-radius: var(--radius-pill); background: var(--color-brand); color: var(--color-brand-ink); font-weight: 800; text-decoration: none; box-shadow: 0 0.75rem 1.5rem var(--color-shadow); }
@media (min-width: 40rem) {
  .lp-reviews__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); text-align: start; }
  .lp-reviews { text-align: start; }
  .lp-mobile-call { display: none; }
  .lp-footer { padding-block-end: var(--space-lg); }
}
@media (min-width: 60rem) {
  .lp-hero__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 28rem); grid-template-rows: auto 1fr; grid-template-areas: "copy form" "trust form"; column-gap: var(--space-3xl); row-gap: 0; }
  .lp-hero__trust { align-self: start; }
  .lp-hero__copy { grid-area: copy; padding-block-start: var(--space-lg); }
  .lp-hero__form { grid-area: form; }
  .lp-hero__trust { grid-area: trust; }
}
body.funnel-in-view .lp-mobile-call { opacity: 0; pointer-events: none; }
.lp-mobile-call { transition: opacity 200ms var(--ease-out); }
@media (max-width: 39.99rem) {
  .lp-header__phone span:last-child { display: none; }
  .lp-header__phone { padding: 0.6rem 0.8rem; }
  .lp-hero h1 { font-size: clamp(1.9rem, 8.4vw, 2.5rem); }
  .lp-hero__call { display: none; }
  .lp-checks { margin-block-end: 0; }
  .lp-hero__grid { gap: var(--space-lg); }
  .lp-hero__lead { margin-block-end: 0; font-size: 1rem; }
  .funnel__title { font-size: var(--text-md); }
}

/* Kosten: packages, price factors, steps (2026-09-29) */
.packages { display: grid; gap: var(--space-md); margin: var(--space-md) 0 var(--space-sm); }
.package { display: grid; gap: .75rem; align-content: start; padding: clamp(1.25rem, 4vw, 1.75rem); border: 1.5px solid var(--color-line); border-radius: var(--radius-lg); background: var(--color-surface); }
.package--highlight { border-color: var(--color-brand); background: var(--color-brand-soft); }
.package__label { margin: 0; color: var(--color-brand); font-size: var(--text-xs); font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.package h3 { margin: 0; font-size: var(--text-xl); }
.package__price { display: grid; gap: .1rem; margin: 0; }
.package__price strong, .package__price [data-offer-price] { font-family: var(--font-display); font-size: 1.7rem; font-weight: 800; line-height: 1.1; color: var(--color-brand); }
.package__price-note { color: var(--color-text-soft); font-size: var(--text-sm); }
.package__list { display: grid; gap: .45rem; margin: 0; padding: 0; list-style: none; }
.package__list li { display: grid; grid-template-columns: 1.2rem 1fr; gap: .5rem; font-size: .95rem; line-height: 1.45; }
.package__list li::before { content: "✓"; color: var(--color-brand); font-weight: 800; }
.package .button { justify-self: start; margin-top: .25rem; }
.package__fineprint { color: var(--color-text-soft); font-size: var(--text-xs); line-height: 1.5; }
.price-factors { display: grid; gap: .5rem; }
.price-steps { display: grid; gap: .6rem; padding-left: 1.2rem; }
@media (min-width: 48rem) { .packages { grid-template-columns: 1fr 1fr; } }
.prose .package__list { margin: 0; padding: 0; } .prose .package__list li { margin: 0; } .prose .package h3 { margin: 0; }
.trial-teaser { display: grid; gap: .3rem; margin-top: var(--space-lg); padding: 1.1rem 1.25rem; border: 1.5px solid var(--color-brand); border-radius: var(--radius-md); background: var(--color-brand-soft); color: var(--color-text); text-decoration: none; transition: transform 150ms var(--ease-out); }
.trial-teaser:hover { transform: translateY(-2px); }
.trial-teaser__label { color: var(--color-brand); font-size: var(--text-xs); font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.trial-teaser strong { font-family: var(--font-display); font-size: var(--text-lg); }
.trial-teaser > span:not([class]) { color: var(--color-text-soft); font-size: .95rem; line-height: 1.45; }
.trial-teaser__more { color: var(--color-brand); font-weight: 800; font-size: .95rem; }

/* Kosten page sections (2026-09-29): packages, steps graphic, factors, funding */
.cost-head { display: grid; gap: .5rem; margin-bottom: var(--space-lg); }
.cost-head h2 { margin: 0; }
.cost-head p { margin: 0; max-width: 40rem; color: var(--color-text-soft); font-size: var(--text-md); }
.cost-head--center { justify-items: center; text-align: center; }
.cost-head--center h2 { max-width: 22ch; }
.cost-packages .packages { margin: 0 0 var(--space-md); }
.cost-packages .package__list { margin: 0; padding: 0; }
.cost-packages .package h3 { margin: 0; }
.cost-steps { background: var(--color-brand-soft); }
.steps-graphic { position: relative; display: grid; gap: var(--space-md); margin: 0; padding: 0; list-style: none; counter-reset: none; }
.steps-graphic li { position: relative; display: grid; grid-template-columns: 3.5rem 1fr; grid-template-rows: auto 1fr; column-gap: 1rem; align-items: start; }
.steps-graphic__icon { grid-row: 1 / span 2; position: relative; z-index: 1; display: grid; place-items: center; width: 3.5rem; height: 3.5rem; border-radius: 50%; background: var(--color-surface); color: var(--color-brand); box-shadow: 0 0 0 5px var(--color-brand-soft), 0 6px 18px color-mix(in oklch, var(--color-text) 10%, transparent); }
.steps-graphic__icon svg { width: 1.6rem; height: 1.6rem; }
.steps-graphic__num { position: absolute; left: 2.35rem; top: -.15rem; z-index: 2; display: grid; place-items: center; width: 1.4rem; height: 1.4rem; border-radius: 50%; background: var(--color-brand); color: var(--color-brand-ink); font-size: .72rem; font-weight: 800; }
.steps-graphic h3 { margin: .35rem 0 .2rem; font-size: var(--text-lg); }
.steps-graphic p { margin: 0; color: var(--color-text-soft); font-size: .95rem; line-height: 1.45; }
.steps-graphic li:not(:last-child)::after { content: ""; position: absolute; left: 1.75rem; top: 3.5rem; bottom: calc(var(--space-md) * -1); width: 2px; background: color-mix(in oklch, var(--color-brand) 35%, transparent); }
.cost-steps__cta { display: flex; flex-wrap: wrap; gap: var(--space-md); align-items: center; justify-content: center; margin-top: var(--space-xl); }
.factor-tiles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; margin: 0; padding: 0; list-style: none; }
.factor-tiles li { display: grid; gap: .25rem; padding: 1rem 1.1rem; border: 1px solid var(--color-line); border-radius: var(--radius-md); background: var(--color-surface); }
.factor-tiles strong { color: var(--color-brand); }
.factor-tiles span { color: var(--color-text-soft); font-size: .9rem; line-height: 1.4; }
.cost-included { display: grid; gap: var(--space-md); margin-top: var(--space-lg); }
.cost-box { padding: clamp(1.25rem, 3vw, 1.75rem); border: 1px solid var(--color-line); border-radius: var(--radius-lg); background: var(--color-surface); }
.cost-box--in { border-color: var(--color-brand); background: var(--color-brand-soft); }
.cost-box h3 { margin: 0 0 .75rem; font-size: var(--text-lg); }
.cost-box ul { display: grid; gap: .45rem; margin: 0; padding: 0; list-style: none; }
.cost-box li { display: grid; grid-template-columns: 1.2rem 1fr; gap: .5rem; }
.cost-box--in li::before { content: "✓"; color: var(--color-brand); font-weight: 800; }
.cost-box:not(.cost-box--in) li::before { content: "+"; color: var(--color-text-soft); font-weight: 800; }
.cost-box p { margin: .9rem 0 0; color: var(--color-text-soft); font-size: .9rem; }
.cost-funding__grid { display: grid; gap: var(--space-lg); align-items: start; }
@media (min-width: 48rem) {
  .cost-included { grid-template-columns: 3fr 2fr; }
}
@media (min-width: 60rem) {
  .factor-tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .cost-factors__grid, .cost-funding__grid { grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: var(--space-2xl); align-items: start; }
  .cost-factors__grid .cost-head, .cost-funding__grid .cost-head { position: sticky; top: 6.5rem; }
  .steps-graphic { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-lg); }
  .steps-graphic li { grid-template-columns: 1fr; grid-template-rows: auto; align-content: start; justify-items: center; text-align: center; }
  .steps-graphic__icon { grid-row: auto; width: 4.5rem; height: 4.5rem; margin-bottom: .6rem; }
  .steps-graphic__icon svg { width: 2rem; height: 2rem; }
  .steps-graphic__num { left: calc(50% + 1.25rem); top: -.2rem; }
  .steps-graphic li:not(:last-child)::after { left: calc(50% + 2.25rem); right: calc(-50% + 2.25rem - var(--space-lg)); top: 2.25rem; bottom: auto; width: auto; height: 2px; }
}

/* Ablauf page (2026-09-29): key facts strip, timeline graphic, after-start tiles */
.flow-intro { padding-block: var(--space-lg) 0; }
.flow-strip { display: grid; gap: .75rem; }
.flow-strip > div { display: grid; gap: .2rem; padding: 1rem 1.2rem; border-radius: var(--radius-md); background: var(--color-surface); border: 1px solid var(--color-line); }
.flow-strip > div:first-child { background: var(--color-brand); border-color: var(--color-brand); color: var(--color-brand-ink); }
.flow-strip strong { font-family: var(--font-display); font-size: var(--text-lg); }
.flow-strip span { font-size: .92rem; opacity: .85; }
.timeline { display: grid; gap: 0; max-width: 56rem; margin: 0 auto; padding: 0; list-style: none; }
.timeline__step { position: relative; display: grid; grid-template-columns: 3.75rem minmax(0, 1fr); gap: 1rem; padding-bottom: var(--space-lg); }
.timeline__step:not(:last-child)::after { content: ""; position: absolute; left: 1.85rem; top: 3.9rem; bottom: .25rem; width: 2px; background: color-mix(in oklch, var(--color-brand) 30%, transparent); }
.timeline__marker { position: relative; }
.timeline__icon { display: grid; place-items: center; width: 3.75rem; height: 3.75rem; border-radius: 50%; background: var(--color-brand); color: var(--color-brand-ink); box-shadow: 0 8px 20px color-mix(in oklch, var(--color-brand) 30%, transparent); }
.timeline__icon svg { width: 1.7rem; height: 1.7rem; }
.timeline__num { position: absolute; right: -.35rem; top: -.35rem; display: grid; place-items: center; width: 1.5rem; height: 1.5rem; border: 2px solid var(--color-bg); border-radius: 50%; background: var(--color-surface); color: var(--color-brand); font-size: .75rem; font-weight: 800; }
.timeline__card { padding: clamp(1.1rem, 3vw, 1.6rem); border: 1px solid var(--color-line); border-radius: var(--radius-lg); background: var(--color-surface); }
.timeline__card h3 { margin: 0 0 .4rem; font-size: var(--text-lg); }
.timeline__card p { margin: 0 0 .75rem; color: var(--color-text-soft); line-height: 1.55; }
.timeline__card ul { display: grid; gap: .4rem; margin: 0; padding: 0; list-style: none; }
.timeline__card li { display: grid; grid-template-columns: 1.1rem 1fr; gap: .45rem; font-size: .93rem; line-height: 1.45; }
.timeline__card li::before { content: "✓"; color: var(--color-brand); font-weight: 800; }
.flow-after { background: var(--color-brand-soft); }
.flow-after__tiles { grid-template-columns: 1fr; }
@media (min-width: 48rem) { .flow-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 60rem) {
  .flow-after__tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .timeline__step { grid-template-columns: 4.5rem minmax(0, 1fr); gap: 1.5rem; }
  .timeline__icon { width: 4.5rem; height: 4.5rem; }
  .timeline__icon svg { width: 2rem; height: 2rem; }
  .timeline__step:not(:last-child)::after { left: 2.2rem; top: 4.7rem; }
  .timeline__card { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 1.75rem; }
  .timeline__card h3 { grid-column: 1 / -1; }
  .timeline__card p { margin: 0; }
}

/* Home costs section (2026-09-29): three funding cards */
.aid-cards { display: grid; gap: var(--space-md); margin: 0; padding: 0; list-style: none; }
.aid-card { display: grid; align-content: start; gap: .5rem; padding: clamp(1.25rem, 3vw, 1.75rem); border: 1px solid var(--color-line); border-radius: var(--radius-lg); background: var(--color-surface); }
.aid-card--main { border-color: var(--color-brand); background: var(--color-brand-soft); }
.aid-card__label { color: var(--color-brand); font-size: var(--text-xs); font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.aid-card__value { font-family: var(--font-display); font-size: clamp(1.6rem, 3vw, 2rem); line-height: 1.1; }
.aid-card__value small { font-family: var(--font-body, inherit); font-size: .95rem; font-weight: 500; color: var(--color-text-soft); }
.aid-card p { margin: 0; color: var(--color-text-soft); font-size: .95rem; line-height: 1.5; }
.aid-card p a { color: var(--color-brand); font-weight: 800; text-decoration: none; white-space: nowrap; }
.aid-card__grades { display: grid; gap: .3rem; margin: .25rem 0 0; padding: 0; list-style: none; }
.aid-card__grades li { display: flex; justify-content: space-between; padding-top: .3rem; border-top: 1px solid color-mix(in oklch, var(--color-brand) 18%, transparent); font-size: .95rem; }
.aid-note { margin: var(--space-md) 0 0; text-align: center; color: var(--color-text-soft); font-size: .85rem; }
.aid-note a { color: var(--color-brand); font-weight: 700; }
@media (min-width: 60rem) { .aid-cards { grid-template-columns: 1.15fr 1fr 1fr; } }

/* Leistungen + Ablauf additions (2026-09-29) */
.services-extra, .flow-needs { background: var(--color-brand-soft); }
.flow-needs + .flow-after { background: transparent; }
.services-extra__tiles, .flow-needs__tiles { grid-template-columns: 1fr; }
.factor-tiles span a { color: var(--color-brand); font-weight: 800; text-decoration: none; }
.service-card__body p a { color: var(--color-brand); font-weight: 800; text-decoration: none; }
@media (min-width: 40rem) { .services-extra__tiles, .flow-needs__tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 60rem) { .services-extra__tiles { grid-template-columns: repeat(4, minmax(0, 1fr)); } .flow-needs__tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* Phone field: country picker + fixed dialling prefix (phone-field.js) */
.phone-input { display: flex; }
.field .phone-input .phone-input__cc { flex: 0 0 auto; width: 5.25rem; padding-inline: .85rem 1.9rem; border-start-end-radius: 0; border-end-end-radius: 0; border-inline-end: 0; background-color: var(--color-brand-soft); font-weight: 700; }
.phone-input__box { flex: 1 1 auto; min-width: 0; display: flex; align-items: center; min-height: 50px; border: var(--rule) solid var(--color-line); border-start-end-radius: var(--radius-sm); border-end-end-radius: var(--radius-sm); background: var(--color-bg); cursor: text; }
.phone-input__box:focus-within { border-color: var(--color-brand); outline: 2px solid var(--color-focus); outline-offset: 1px; }
.phone-input__box:has(input[aria-invalid="true"]) { border-color: var(--color-error); }
.phone-input__box:has(input.is-success) { border-color: var(--color-success); }
.phone-input__prefix { padding-inline-start: var(--space-sm); font-weight: 700; color: var(--color-text); white-space: nowrap; }
.field .phone-input__box input { min-height: 48px; padding-inline-start: .4rem; border: 0; border-radius: 0; outline: none; background: transparent; }
.field .phone-input__box input:hover { background: transparent; }

/* Selects in the site design: no native arrow, brand chevron */
.field select { appearance: none; -webkit-appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%231d3a3a' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right .95rem center; background-size: 12px 8px; cursor: pointer; font-weight: 600; }
.field select:has(option[value=""]:checked) { color: var(--color-muted); font-weight: 500; }
.field select option { color: var(--color-text); }

/* Salutation + name in one field */
.name-input { display: flex; }
.field .name-input select { flex: 0 0 auto; width: 8.75rem; border-start-end-radius: 0; border-end-end-radius: 0; border-inline-end: 0; background-color: var(--color-brand-soft); }
.field .name-input input { flex: 1 1 auto; min-width: 0; border-start-start-radius: 0; border-end-start-radius: 0; }

/* Two-line section headings on the homepage (team, Ablauf) */
.h2-split { max-width: none; }
.h2-split span { display: block; }
@media (min-width: 48rem) {
  .h2-split { font-size: clamp(1.8rem, 2.85vw, 2.65rem); }
  .h2-split span { white-space: nowrap; }
}

/* Home: centred FAQ block (2026-09-29) */
.faq__grid--list { margin-inline: auto; }
.faq__title { text-align: center; margin-inline: auto; }
.faq__list > .text-link { display: flex; justify-content: center; }
/* Translated headings have other lengths: let them wrap instead of overflowing */
html:not([lang="de"]) .h2-split span { white-space: normal; }
/* Long translated button labels (NL/PL) must wrap on phones */
.inquiry__submit, .calc-gate__submit { white-space: normal; text-align: center; }

/* Landing pages: stars on every review, CTA below (2026-09-29) */
.lp-reviews__stars { margin: 0 0 var(--space-2xs); color: var(--color-focus); font-size: 1.05rem; letter-spacing: .12em; }
.lp-reviews figure { padding: var(--space-md); border: 1px solid var(--color-line); border-radius: var(--radius-lg); background: var(--color-surface); }
.lp-reviews__cta { display: flex; justify-content: center; margin-top: var(--space-xl); }
/* LP hero title: max. two lines + one subline */
.lp-hero h1 { max-width: 20ch; font-size: clamp(2.05rem, 3.6vw, 3.4rem); }
.lp-hero .hero__title-soft { font-size: 0.56em; }

/* LP funnel: constant size. All steps share one grid cell; inactive steps keep their space
   (visibility: hidden), so the box is always as tall as the tallest step and the hero never jumps. */
.funnel { display: grid; grid-template-columns: minmax(0, 1fr); }
.funnel > * { grid-column: 1; }
.funnel > .funnel__person { grid-row: 1; }
.funnel > .funnel__head { grid-row: 2; }
.funnel > [data-step] { grid-row: 3; align-self: start; min-width: 0; }
.funnel > [data-step][hidden] { display: block !important; visibility: hidden; pointer-events: none; }
.funnel > .funnel__foot { grid-row: 4; min-height: 1.75rem; }
.funnel > .funnel__privacy { grid-row: 5; }
.funnel > noscript { grid-row: 6; }
.funnel__back[hidden] { display: inline !important; visibility: hidden; }

/* ---------- Landing pages: visual upgrade (2026-09-29) ---------- */
.lp-hero { position: relative; isolation: isolate; overflow: clip; }
.lp-hero__media { position: absolute; inset: 0; z-index: -1; }
.lp-hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: 62% 30%; animation: lp-zoom 14s ease-out both; }
.lp-hero__media::after { content: ""; position: absolute; inset: 0; background:
  linear-gradient(180deg, color-mix(in oklch, var(--color-brand) 88%, transparent) 0%, color-mix(in oklch, var(--color-brand) 94%, transparent) 55%, var(--color-brand) 100%); }
@media (min-width: 60rem) {
  .lp-hero__media::after { background: linear-gradient(90deg, var(--color-brand) 0%, color-mix(in oklch, var(--color-brand) 94%, transparent) 38%, color-mix(in oklch, var(--color-brand) 55%, transparent) 62%, color-mix(in oklch, var(--color-brand) 35%, transparent) 100%); }
}
.lp-hero__copy > *, .lp-hero__trust { animation: hero-rise 720ms var(--ease-out) both; }
.lp-hero__copy > :nth-child(2) { animation-delay: 80ms; }
.lp-hero__copy > :nth-child(3) { animation-delay: 160ms; }
.lp-hero__trust { animation-delay: 240ms; }
.lp-hero__form { animation: image-in 800ms 120ms var(--ease-out) both; }
.lp-hero .funnel { box-shadow: 0 24px 60px oklch(15% 0.03 195 / 0.35); }
@keyframes lp-zoom { from { transform: scale(1.08); } to { transform: scale(1); } }

/* Services with photos */
.lp-services__grid { display: grid; gap: var(--space-md); }
.lp-services article { overflow: hidden; border: 1px solid var(--color-line); border-radius: var(--radius-lg); background: var(--color-surface); transition: transform 300ms var(--ease-out), box-shadow 300ms var(--ease-out); }
.lp-services img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; transition: transform 600ms var(--ease-out); }
.lp-services article > div { padding: var(--space-md); }
.lp-services h3 { margin: 0 0 .3rem; font-size: var(--text-lg); }
.lp-services p { margin: 0; color: var(--color-text-soft); }
@media (hover: hover) {
  .lp-services article:hover { transform: translateY(-4px); box-shadow: 0 18px 40px var(--color-shadow); }
  .lp-services article:hover img { transform: scale(1.04); }
}
@media (min-width: 48rem) { .lp-services__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* Funnel: smooth step changes, animated progress, tactile choices */
.funnel > [data-step]:not([hidden]) { animation: lp-step-in 380ms var(--ease-out) both; }
@keyframes lp-step-in { from { opacity: 0; transform: translateX(1.25rem); } to { opacity: 1; transform: none; } }
.funnel .wizard__progress::-webkit-progress-value { transition: width 450ms var(--ease-out); }
.funnel .wizard__progress::-moz-progress-bar { transition: width 450ms var(--ease-out); }
.funnel .wizard__choice { transition: border-color 160ms, background-color 160ms, transform 160ms; }
.funnel .wizard__choice:has(input:checked) { animation: lp-pick 260ms var(--ease-out); }
@keyframes lp-pick { 50% { transform: scale(0.98); } }

/* Scroll reveal (only once JS has marked the page) */
html.lp-reveal [data-reveal] { opacity: 0; transform: translateY(1.25rem); transition: opacity 650ms var(--ease-out), transform 650ms var(--ease-out); transition-delay: calc(var(--i, 0) * 90ms); }
html.lp-reveal [data-reveal].is-visible { opacity: 1; transform: none; }
html.lp-reveal .steps-graphic li[data-reveal]::after { clip-path: inset(0 100% 100% 0); transition: clip-path 700ms var(--ease-out) calc(var(--i, 0) * 90ms + 250ms); }
html.lp-reveal .steps-graphic li[data-reveal].is-visible::after { clip-path: inset(0); }

@media (prefers-reduced-motion: reduce) {
  .lp-hero__media img, .lp-hero__copy > *, .lp-hero__trust, .lp-hero__form, .funnel > [data-step]:not([hidden]), .funnel .wizard__choice:has(input:checked) { animation: none; }
  html.lp-reveal [data-reveal] { opacity: 1; transform: none; transition: none; }
  html.lp-reveal .steps-graphic li[data-reveal]::after { clip-path: none; }
}
.nowrap { white-space: nowrap; }

/* Kontakt: just the essentials – heading, call button, form (2026-09-29) */
.contact--page { padding-block: clamp(2rem, 5vw, 4.5rem) var(--space-2xl); }
.contact--page h1 { margin: var(--space-md) 0 var(--space-sm); color: var(--color-brand-ink); font-size: clamp(2.2rem, 5vw, 3.6rem); }
.contact--page .contact__copy > p { max-width: 36ch; margin: 0 0 var(--space-lg); opacity: .85; font-size: var(--text-md); }
.contact__call { gap: .5rem; }
.contact__mail { display: block; width: fit-content; margin-top: var(--space-sm); color: var(--color-brand-ink); font-weight: 700; opacity: .85; }
.breadcrumbs--light, .breadcrumbs--light a { color: color-mix(in oklch, var(--color-brand-ink) 75%, transparent); }
@media (max-width: 39.99rem) { .field .name-input select { width: 7.5rem; padding-inline-start: .75rem; } }

/* Thank-you page v2 (2026-09-30): 24h promise, timeline, questionnaire CTA, preparation list */
.thank-next { display: grid; gap: var(--space-lg); margin-block: var(--space-md) var(--space-lg); }
.thank-timeline { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.thank-timeline li { position: relative; display: grid; grid-template-columns: 2.25rem 1fr; gap: var(--space-sm); padding-bottom: var(--space-md); }
.thank-timeline li:not(:last-child)::after { content: ""; position: absolute; left: 1.1rem; top: 2.3rem; bottom: .2rem; width: 2px; background: color-mix(in oklch, var(--color-brand) 25%, transparent); }
.thank-timeline span { display: grid; place-items: center; width: 2.25rem; height: 2.25rem; border-radius: 50%; background: var(--color-surface); border: 2px solid var(--color-brand); color: var(--color-brand); font-weight: 800; font-size: .9rem; }
.thank-timeline li.is-done span { background: var(--color-brand); color: var(--color-brand-ink); }
.thank-timeline strong { display: block; margin-top: .3rem; }
.thank-timeline p { margin: .15rem 0 0; color: var(--color-text-soft); }
.thank-cta-card { display: grid; gap: .6rem; justify-items: start; padding: clamp(1.25rem, 3vw, 1.75rem); border-radius: var(--radius-lg); background: var(--color-surface); border: 1.5px solid var(--color-brand); }
.thank-cta-card__label { margin: 0; color: var(--color-brand); font-size: var(--text-xs); font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.thank-cta-card h2 { margin: 0; font-size: clamp(1.35rem, 2.6vw, 1.7rem); }
.thank-cta-card p { margin: 0; color: var(--color-text-soft); }
.thank-prepare h2 { margin: 0 0 .5rem; font-size: var(--text-lg); }
.thank-prepare ul { display: grid; gap: .35rem; margin: 0; padding: 0; list-style: none; }
.thank-prepare li { display: grid; grid-template-columns: 1.2rem 1fr; gap: .5rem; } .thank-prepare li::before { content: "✓"; color: var(--color-brand); font-weight: 800; }
@media (min-width: 60rem) { .thank-next { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; } .thank-next .thank-timeline { grid-row: span 2; } }
.thank-hero h1 { max-width: 21ch; font-size: clamp(2.1rem, 4.2vw, 3.5rem); }

/* Cookie banner v2 (2026-09-30): accept all / necessary only / preferences with category switches */
.cookie-banner__prefs { display: none; gap: .6rem; }
.cookie-banner__inner.is-prefs .cookie-banner__prefs { display: grid; }
.cookie-banner__save { display: none; }
.cookie-banner__inner.is-prefs .cookie-banner__save { display: inline-flex; }
.cookie-banner__inner.is-prefs .cookie-banner__prefs-toggle { display: none; }
.cookie-banner__prefs-toggle { justify-self: center; padding: .4rem; border: 0; background: none; color: var(--color-brand); font: inherit; font-size: var(--text-sm); font-weight: 800; text-decoration: underline; cursor: pointer; }
.cookie-cat { display: flex; align-items: center; justify-content: space-between; gap: var(--space-sm); padding: .7rem .85rem; border: 1px solid var(--color-line); border-radius: var(--radius-sm); background: var(--color-bg); cursor: pointer; }
.cookie-cat__text { display: grid; gap: .15rem; }
.cookie-cat__text strong { font-size: var(--text-sm); }
.cookie-cat__text small { color: var(--color-text-soft); font-size: var(--text-xs); line-height: 1.45; }
.cookie-cat__always { flex: 0 0 auto; color: var(--color-success); font-size: var(--text-xs); font-weight: 800; white-space: nowrap; }
.cookie-switch { flex: 0 0 auto; appearance: none; -webkit-appearance: none; width: 2.75rem; height: 1.6rem; margin: 0; border-radius: 999px; background: var(--color-line); position: relative; cursor: pointer; transition: background-color 180ms; }
.cookie-switch::after { content: ""; position: absolute; top: .2rem; left: .2rem; width: 1.2rem; height: 1.2rem; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px oklch(20% 0.02 200 / .3); transition: transform 180ms var(--ease-out); }
.cookie-switch:checked { background: var(--color-brand); }
.cookie-switch:checked::after { transform: translateX(1.15rem); }
.cookie-switch:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 2px; }
@media (min-width: 48rem) {
  .cookie-banner__inner { grid-template-columns: minmax(0, 1fr) auto; }
  .cookie-banner__inner.is-prefs { grid-template-columns: minmax(0, 1fr); width: min(100%, 44rem); }
  .cookie-banner__inner.is-prefs .cookie-banner__actions { grid-template-columns: repeat(3, auto); justify-content: end; }
  .cookie-banner__actions { grid-template-columns: auto auto; }
  .cookie-banner__prefs-toggle { grid-column: 1 / -1; }
}

/* ---------- Motion & polish (2026-09-30) ---------- */
/* Smooth cross-page transitions (Chrome/Edge/Safari 18.2+); header stays in place */
@view-transition { navigation: auto; }
.site-header, .lp-header { view-transition-name: site-header; }
::view-transition-old(root) { animation: vt-out 220ms var(--ease-out) both; }
::view-transition-new(root) { animation: vt-in 380ms var(--ease-out) both; }
@keyframes vt-out { to { opacity: 0; transform: translateY(-6px); } }
@keyframes vt-in { from { opacity: 0; transform: translateY(10px); } }
/* Glass header while scrolling */
.site-header.is-scrolled { background: color-mix(in oklch, var(--color-bg) 78%, transparent); -webkit-backdrop-filter: saturate(1.5) blur(14px); backdrop-filter: saturate(1.5) blur(14px); }
/* Slow zoom on the homepage hero image (independent of the parallax transform) */
.hero__visual img { animation: hero-zoom 16s ease-out both; }
@keyframes hero-zoom { from { scale: 1.08; } to { scale: 1; } }
/* Tactile buttons and cards */
.button { transition: transform 180ms var(--ease-out), box-shadow 180ms var(--ease-out), background-color 180ms, color 180ms, border-color 180ms; }
@media (hover: hover) {
  .button:hover { transform: translateY(-2px); box-shadow: 0 10px 24px color-mix(in oklch, var(--color-brand) 22%, transparent); }
  .service-cards article { transition: transform 300ms var(--ease-out), box-shadow 300ms var(--ease-out); }
  .service-cards article:hover { transform: translateY(-4px); box-shadow: 0 18px 40px var(--color-shadow); }
  .service-cards article img { transition: transform 600ms var(--ease-out); }
  .service-cards article:hover img { transform: scale(1.04); }
  .aid-card, .factor-tiles li, .package, .timeline__card, .link-card { transition: transform 250ms var(--ease-out), box-shadow 250ms var(--ease-out); }
  .aid-card:hover, .factor-tiles li:hover, .package:hover, .timeline__card:hover, .link-card:hover { transform: translateY(-3px); box-shadow: 0 14px 32px var(--color-shadow); }
}
.button:active { transform: translateY(0) scale(0.98); }
@media (prefers-reduced-motion: reduce) {
  @view-transition { navigation: none; }
  .hero__visual img { animation: none; }
  .button, .button:hover, .service-cards article, .aid-card, .factor-tiles li, .package, .timeline__card, .link-card { transition: none; transform: none; }
}

/* Mobile polish (2026-09-30): no sticky bar, cost CTAs side by side, funding cards as swipe slider, FAQ button */
.mobile-bar { display: none !important; }
.costs .cost-steps__cta { flex-wrap: nowrap; gap: .6rem; }
.costs .cost-steps__cta .button { flex: 1 1 0; min-width: 0; padding-inline: .9rem; white-space: nowrap; }
@media (min-width: 40rem) { .costs .cost-steps__cta .button { flex: 0 0 auto; padding-inline: 1.6rem; } }
.faq__all { justify-self: center; margin-top: var(--space-lg); }
.faq__list > .faq__all { display: flex; width: fit-content; margin-inline: auto; }
@media (max-width: 47.99rem) {
  .aid-cards { display: flex; gap: .75rem; margin-inline: calc(var(--space-sm) * -1); padding: .25rem var(--space-sm) .75rem; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: var(--space-sm); scrollbar-width: none; }
  .aid-cards::-webkit-scrollbar { display: none; }
  .aid-cards > .aid-card { flex: 0 0 84%; scroll-snap-align: start; }
  .aid-dots { display: flex; justify-content: center; gap: .4rem; margin: .25rem 0 0; }
  .aid-dots span { width: .5rem; height: .5rem; border-radius: 50%; background: var(--color-line); transition: background-color 200ms, width 200ms; }
  .aid-dots span.is-active { width: 1.25rem; border-radius: 999px; background: var(--color-brand); }
}
@media (min-width: 48rem) { .aid-dots { display: none; } }

/* ---------- Brand mark (2026-09-30): animated logo symbol + small brand accents ---------- */
.brand__svg { color: #064e49; overflow: visible; }
.brand-mark, .brand-mark__a, .brand-mark__b { transform-box: fill-box; transform-origin: center; }
.brand-mark { transition: rotate 700ms cubic-bezier(.34, 1.4, .64, 1); }
@media (hover: hover) { .brand:hover .brand-mark { rotate: 180deg; } }
/* Intro only on entry pages (home, ads landing pages): the two arcs swing together */
body:has(.hero, .lp-hero) .brand-mark { animation: mark-turn 1000ms cubic-bezier(.22, 1, .36, 1) both; }
body:has(.hero, .lp-hero) .brand-mark__a { animation: arc-a 850ms cubic-bezier(.22, 1, .36, 1) both; }
body:has(.hero, .lp-hero) .brand-mark__b { animation: arc-b 850ms cubic-bezier(.22, 1, .36, 1) both; }
body:has(.hero, .lp-hero) .brand-word { animation: word-in 600ms 300ms var(--ease-out) both; }
@keyframes mark-turn { from { transform: rotate(-120deg) scale(.7); } }
@keyframes arc-a { from { opacity: 0; transform: translate(35%, -35%); } }
@keyframes arc-b { from { opacity: 0; transform: translate(-35%, 35%); } }
@keyframes word-in { from { opacity: 0; transform: translateX(-4px); } }
/* Small mark in front of section labels */
.section-label::before { content: ""; display: inline-block; width: .95em; height: .9em; margin-inline-end: .45em; vertical-align: -.12em; background: currentColor; -webkit-mask: url("/assets/logo-mark.svg") center / contain no-repeat; mask: url("/assets/logo-mark.svg") center / contain no-repeat; }
.cost-head--center .section-label::before, .section-label--center::before { margin-inline-end: .4em; }
/* Large, faint, slowly turning mark in the dark sections */
.contact, .page-cta, .lp-final, .reviews { position: relative; isolation: isolate; overflow: hidden; }
.contact::after, .page-cta::after, .lp-final::after, .reviews::after {
  content: ""; position: absolute; z-index: -1; right: -6rem; bottom: -8rem; width: clamp(16rem, 34vw, 30rem); aspect-ratio: 346 / 322;
  background: var(--color-brand-ink); opacity: .07; -webkit-mask: url("/assets/logo-mark.svg") center / contain no-repeat; mask: url("/assets/logo-mark.svg") center / contain no-repeat;
  animation: mark-drift 90s linear infinite; pointer-events: none; }
@keyframes mark-drift { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
  .brand-mark, .brand-mark__a, .brand-mark__b, .brand-word, .contact::after, .page-cta::after, .lp-final::after, .reviews::after { animation: none !important; transition: none; }
}
.lp-footer { padding-block-end: var(--space-lg); }

/* Homepage 2026-09-30 b: full-screen hero, statement section, step graphic for "So läuft es ab", tactile service cards */
body:has(#versprechen) .hero { min-height: calc(100svh - var(--header-h, 4.6rem)); }
.hero__scroll { position: absolute; left: 50%; bottom: clamp(1rem, 3vh, 2rem); z-index: 2; display: grid; place-items: center; width: 2.6rem; height: 2.6rem; translate: -50% 0; border: 1.5px solid color-mix(in oklch, var(--color-brand-ink) 55%, transparent); border-radius: 50%; color: var(--color-brand-ink); }
.hero__scroll span { width: .55rem; height: .55rem; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; rotate: 45deg; translate: 0 -2px; animation: hero-scroll 1.8s var(--ease-out) infinite; }
.hero__scroll:hover { background: color-mix(in oklch, var(--color-brand-ink) 14%, transparent); }
@keyframes hero-scroll { 0%, 100% { translate: 0 -3px; opacity: 1; } 55% { translate: 0 3px; opacity: .45; } }
@media (max-height: 40rem) { .hero__scroll { display: none; } }

.statement { padding-block: clamp(4.5rem, 12vw, 8.5rem); background: var(--color-bg); }
.statement__text { max-width: 30ch; margin: 0 auto; font-family: var(--font-display, inherit); font-size: clamp(1.6rem, 3.6vw, 2.9rem); line-height: 1.22; letter-spacing: -.01em; text-align: center; text-wrap: balance; color: var(--color-text); }
html.lp-reveal .statement__text { background: linear-gradient(90deg, var(--color-text) 46%, color-mix(in oklch, var(--color-text) 16%, transparent) 54%); background-size: 230% 100%; background-position: 100% 0; -webkit-background-clip: text; background-clip: text; color: transparent; transition: background-position 1.8s var(--ease-out) .15s, opacity 700ms var(--ease-out), translate 700ms var(--ease-out); }
html.lp-reveal .statement__text.is-visible { background-position: 0 0; }

.journey-graphic .steps-graphic { margin-top: var(--space-lg); }
.journey-graphic { background: var(--color-brand-soft); }

.service-card { transition: translate 380ms var(--ease-out), box-shadow 380ms var(--ease-out), border-color 380ms var(--ease-out); -webkit-tap-highlight-color: transparent; }
.service-card img { transition: scale 900ms var(--ease-out); }
.service-card h3 { position: relative; display: inline-block; }
.service-card h3::after { content: ""; position: absolute; left: 0; right: 0; bottom: -.2rem; height: 2px; background: var(--color-brand); scale: 0 1; transform-origin: left; transition: scale 450ms var(--ease-out); }
.service-card:hover, .service-card.is-touched { translate: 0 -6px; border-color: color-mix(in oklch, var(--color-brand) 40%, var(--color-line)); box-shadow: 0 18px 40px -18px color-mix(in oklch, var(--color-text) 35%, transparent); }
.service-card:hover img, .service-card.is-touched img { scale: 1.06; }
.service-card:hover h3::after, .service-card.is-touched h3::after { scale: 1 1; }
.service-card:active { translate: 0 -2px; transition-duration: 120ms; }
@media (prefers-reduced-motion: reduce) {
  .hero__scroll span { animation: none; }
  .service-card, .service-card img, .service-card h3::after { transition: none; }
}

/* Contact form as two-step wizard (2026-09-30) */
.wizard-progress { height: 4px; border-radius: 99px; background: color-mix(in oklch, var(--color-brand) 16%, transparent); overflow: hidden; }
.wizard-progress__bar { display: block; height: 100%; width: var(--wizard-progress, 50%); border-radius: inherit; background: var(--color-brand); transition: width 500ms var(--ease-out); }
.wizard-count { margin: .55rem 0 0; color: var(--color-text-soft); font-size: var(--text-sm); font-weight: 600; }
.wizard-count [data-step-label] { color: var(--color-brand); font-weight: 800; }
.wizard-step { display: grid; gap: inherit; gap: var(--space-md); }
.wizard-step[hidden] { display: none; }
.wizard-step.is-active { animation: wizard-in 420ms var(--ease-out) both; }
@keyframes wizard-in { from { opacity: 0; translate: 14px 0; } to { opacity: 1; translate: 0 0; } }
.wizard-next { justify-self: stretch; }
.wizard-actions { display: flex; gap: .75rem; align-items: center; }
.wizard-actions .inquiry__submit { flex: 1; }
.wizard-back { flex: none; padding: .85rem 1rem; border: var(--rule) solid var(--color-line); border-radius: var(--radius-md, 12px); background: transparent; color: var(--color-text); font: inherit; font-weight: 700; cursor: pointer; }
.wizard-back:hover { border-color: var(--color-brand); color: var(--color-brand); }
@media (max-width: 30rem) { .wizard-actions { flex-direction: column-reverse; align-items: stretch; } .wizard-back { padding: .7rem; } }
@media (prefers-reduced-motion: reduce) { .wizard-step.is-active { animation: none; } .wizard-progress__bar { transition: none; } }
@media (max-width: 47.99rem) { .hero__scroll { display: none; } .statement__text { font-size: clamp(1.4rem, 5.6vw, 1.75rem); } }
