/* Baukasten Lauf 1. Originale: docs/claude-design/components; Abweichungen: DESIGN.md. */
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-block: var(--anchor-offset); }
body { margin: 0; background: var(--surface); color: var(--ink); font: var(--body-weight) var(--body-size)/var(--body-line) var(--font-family); }
[hidden] { display: none !important; }
img, svg { display: block; max-inline-size: 100%; }
img { block-size: auto; }
h1, h2, h3, p, ul, ol, figure { margin: 0; }
ul, ol { list-style: none; padding: 0; }
h1, h2, h3 { text-wrap: balance; overflow-wrap: break-word; }
h1 { font: var(--display-mobile-weight) var(--display-mobile-size)/var(--display-mobile-line) var(--font-family); letter-spacing: var(--display-mobile-tracking); }
h2 { font: var(--headline-mobile-weight) var(--headline-mobile-size)/var(--headline-mobile-line) var(--font-family); letter-spacing: var(--headline-tracking); }
h3 { font: var(--title-weight) var(--title-size)/var(--title-line) var(--font-family); letter-spacing: var(--title-tracking); }
p { max-inline-size: var(--measure); }
a { color: inherit; text-decoration: underline; text-decoration-color: var(--bk-link); text-decoration-thickness: var(--link-width); text-underline-offset: var(--link-offset); overflow-wrap: anywhere; }
a:hover { text-decoration-color: var(--terra-500); }
button { font: inherit; color: inherit; cursor: pointer; }
button, summary { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: var(--focus-width) solid currentColor; outline-offset: var(--focus-offset); }
summary { cursor: pointer; list-style: none; }
summary::marker, summary::-webkit-details-marker { display: none; content: ''; }
.fm-container { max-inline-size: calc(var(--content-max) + var(--page-gutter) * 2); inline-size: 100%; margin-inline: auto; padding-inline: var(--page-gutter); }
.fm-container--narrow > * { max-inline-size: var(--content-narrow); }
.fm-section { padding-block: var(--section-pad); }
[data-tone] { color: var(--ink); }
[data-tone='light'] { --bk-muted: var(--ink-muted); --bk-icon: var(--earth-700); --bk-card: var(--surface); --bk-circle: var(--grad-sand); --bk-line: var(--line); --bk-link: var(--earth-300); --bk-shadow: var(--shadow-sm); --bk-secondary: var(--sand-100); --bk-secondary-ink: var(--ink); --bk-spot-ground: var(--spot-ground); --bk-spot-line: var(--earth-500); }
[data-surface='surface'] { background: var(--surface); }
[data-surface='soft'] { background: var(--surface-soft); }
[data-surface='sand'] { background: var(--grad-sand); }
[data-surface='warm'] { background: var(--grad-warm); --bk-icon: var(--terra-700); }
[data-surface='mist'] { background: var(--grad-gold-mist); }
[data-surface='espresso'] { background: var(--grad-espresso); }
[data-surface='sand'], [data-surface='warm'], [data-surface='mist'] { --bk-muted: var(--ink); }
/* Eine zentrale Umkehrung für alle Bausteine, gemäß DESIGN.md. */
[data-tone='dark'] { color: var(--on-dark); --bk-muted: var(--on-dark-muted); --bk-icon: var(--sand-300); --bk-card: var(--glass-dark); --bk-circle: var(--bk-white-8); --bk-line: var(--bk-white-15); --bk-link: var(--on-dark-muted); --bk-shadow: none; --bk-secondary: var(--surface); --bk-secondary-ink: var(--ink); --bk-spot-ground: var(--glass-dark); --bk-spot-line: var(--bk-white-50); --bk-veil: var(--bk-veil-dark); }
.fm-small { font: var(--small-weight) var(--small-size)/var(--small-line) var(--font-family); }
.fm-caption { font: var(--caption-weight) var(--caption-size)/var(--caption-line) var(--font-family); }
.fm-eyebrow { font: var(--eyebrow-weight) var(--eyebrow-size)/var(--eyebrow-line) var(--font-family); letter-spacing: var(--eyebrow-tracking); text-transform: uppercase; color: var(--bk-muted); }
[data-tone='light'] { --lead-ink: var(--ink-muted); }
[data-surface='sand'], [data-surface='warm'], [data-surface='mist'] { --lead-ink: var(--ink); }
[data-tone='dark'] { --lead-ink: var(--on-dark-muted); }
.fm-muted { color: var(--bk-muted); }
.fm-lead { color: var(--lead-ink); font: var(--lead-weight) var(--lead-size)/var(--lead-line) var(--font-family); }
.fm-section-head { max-inline-size: var(--hero-measure); }
.fm-section-head--centered { margin-inline: auto; text-align: center; }
.fm-section-head--centered > p { margin-inline: auto; }
.fm-section-head .fm-eyebrow { margin-block-end: var(--stack-eyebrow); }
.fm-section-head .fm-lead { margin-block-start: var(--stack-lead); }
.fm-section-head + :is(ul, ol, div), .fm-location-intro + .fm-locations { margin-block-start: var(--stack-head); }
.fm-icon { display: inline-block; inline-size: var(--icon-size); block-size: var(--icon-size); flex: none; color: var(--bk-icon); background-color: currentColor; mask-image: var(--icon-image); mask-size: contain; mask-repeat: no-repeat; mask-position: center; }
.fm-icon-circle { inline-size: var(--icon-circle-large); block-size: var(--icon-circle-large); flex: none; display: grid; place-items: center; border-radius: var(--radius-pill); background: var(--bk-circle); }
.fm-icon-circle .fm-icon { inline-size: var(--icon-principle); block-size: var(--icon-principle); }
.fm-btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--stack-eyebrow); min-block-size: var(--control-md); padding: var(--stack-eyebrow) var(--control-pad); border: 0; border-radius: var(--radius-pill); font: var(--button-weight) var(--button-size)/var(--button-line) var(--font-family); letter-spacing: var(--button-tracking); text-decoration: none; text-align: center; transition: background var(--duration-hover) var(--ease-out), transform var(--duration-hover) var(--ease-out); }
.fm-btn--secondary { background: var(--bk-secondary); color: var(--bk-secondary-ink); box-shadow: var(--secondary-line); }
.fm-booking { display: grid; justify-items: start; }
.fm-text-link { display: inline-flex; align-items: center; gap: var(--stack-eyebrow); min-block-size: var(--touch); min-inline-size: 0; max-inline-size: 100%; white-space: normal; overflow-wrap: anywhere; }
.fm-text-link .fm-icon { inline-size: var(--icon-small); block-size: var(--icon-small); transition: transform var(--duration-hover) var(--ease-out); }
.fm-text-link > .fm-icon--chevron { position: static; flex: none; }
.fm-text-link:hover .fm-icon { transform: translateX(var(--link-shift)); }
.fm-hero { min-block-size: calc(100vh - var(--header-height)); min-block-size: calc(100svh - var(--header-height)); display: flex; align-items: center; padding-block: var(--hero-pad); }
.fm-hero .fm-section-head > :is(h1, h2) { font: var(--display-mobile-weight) var(--display-mobile-size)/var(--display-mobile-line) var(--font-family); letter-spacing: var(--display-mobile-tracking); }
.fm-hero-grid { display: grid; gap: var(--hero-gap); align-items: center; }
.fm-hero-copy { min-inline-size: 0; display: grid; gap: var(--stack-card); }
.fm-hero-photo { grid-row: 1; overflow: hidden; border-radius: var(--radius-md); }
.fm-hero-photo img { inline-size: 100%; block-size: var(--hero-mobile-photo); object-fit: cover; object-position: var(--hero-photo-focus); }
.fm-hero-copy .fm-section-head + div { margin: 0; }
.fm-hero-context { display: grid; justify-items: start; gap: var(--space-1); }
.fm-benefits, .fm-hero-facts { display: flex; flex-wrap: wrap; gap: var(--stack-eyebrow); font-size: var(--small-size); }
.fm-benefits li { padding: var(--stack-eyebrow) var(--stack-card); background: var(--bk-card); border-radius: var(--radius-pill); }
.fm-hero-facts li { display: flex; gap: var(--stack-eyebrow); align-items: center; }
.fm-hero-content .fm-hero-copy { max-inline-size: var(--hero-measure); }
.fm-hero-entry-links { display: grid; font-size: var(--small-size); }
.fm-hero-entry-links a { display: flex; align-items: center; min-block-size: var(--touch); inline-size: fit-content; }
@media (max-width: 47.999em) {
  .fm-hero--landing { padding-block: var(--space-2); }
  .fm-hero--landing .fm-hero-grid { gap: var(--space-2); }
  .fm-hero--landing .fm-hero-photo img { block-size: clamp(var(--hero-landing-photo-min), var(--hero-landing-photo-height), var(--hero-landing-photo-max)); object-position: var(--hero-landing-photo-focus); }
}
.fm-trust-bar .fm-section, .fm-cta-band .fm-section { padding-block: var(--band-pad); }
.fm-trust-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--bk-grid-min)), 1fr)); gap: var(--grid-gap); }
.fm-trust-grid li { display: flex; align-items: center; gap: var(--stack-card); font-size: var(--small-size); }
.fm-trust-grid .fm-icon-circle { inline-size: var(--icon-circle-trust); block-size: var(--icon-circle-trust); }
.fm-trust-grid .fm-icon { inline-size: var(--icon-size); block-size: var(--icon-size); }
.fm-card { display: flex; flex-direction: column; align-items: flex-start; gap: var(--stack-card); padding: var(--card-pad); background: var(--bk-card); border-radius: var(--radius-lg); box-shadow: var(--bk-shadow); min-inline-size: 0; }
.fm-card .fm-text-link { margin-block-start: auto; }
.fm-fact-grid, .fm-segment-grid, .fm-teaser-grid { display: grid; gap: var(--grid-gap); grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--card-min)), 1fr)); }
.fm-fact-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--fact-min)), 1fr)); }
.fm-fact-value { font-size: clamp(var(--fact-size-min), var(--fact-size-fluid), var(--fact-size-max)); font-weight: var(--display-weight); line-height: var(--fact-line); letter-spacing: var(--hero-tracking); }
.fm-fact > .fm-icon { inline-size: var(--icon-stat); block-size: var(--icon-stat); }
.fm-segment-spot { inline-size: var(--segment-spot-size); block-size: var(--segment-spot-size); }
.fm-spot-ground { fill: var(--bk-spot-ground); }
.fm-spot-sand { fill: var(--sand-200); }
.fm-spot-sand-deep { fill: var(--sand-300); }
.fm-spot-accent { fill: var(--terra-300); }
.fm-spot-terra { fill: var(--terra-500); }
.fm-spot-line { fill: var(--bk-spot-line); }
.fm-spot-stroke-line { stroke: var(--bk-spot-line); }
.fm-spot-stroke-accent { stroke: var(--earth-500); }
.fm-timeline { display: grid; gap: var(--stack-block); }
.fm-timeline > li { display: grid; grid-template-columns: auto 1fr; gap: var(--grid-gap); position: relative; }
.fm-timeline-track { position: relative; }
.fm-timeline-line { position: absolute; inset-inline-start: 50%; inset-block-start: var(--icon-circle-large); }
.fm-timeline-line--vertical { inline-size: var(--timeline-line); block-size: calc(100% + var(--stack-block) - var(--icon-circle-large)); }
.fm-timeline-line--horizontal { display: none; block-size: var(--timeline-line); }
.fm-timeline-line line { stroke: var(--sand-300); stroke-width: var(--bk-timeline-stroke); }
.fm-timeline-line .fm-flow { stroke: var(--terra-500); stroke-dasharray: var(--timeline-dash); animation: fm-flow var(--diagram-flow-slow-duration) linear infinite; }
.fm-timeline-copy { display: grid; gap: var(--stack-card); align-content: start; }
.fm-timeline-hint { margin-block-start: var(--stack-head); color: var(--bk-muted); }
@keyframes fm-flow { from { stroke-dashoffset: var(--bk-flow-zero); } to { stroke-dashoffset: var(--diagram-flow-offset); } }
.fm-faq-layout { display: grid; gap: var(--stack-head); }
.fm-faq { display: grid; gap: var(--stack-card); }
.fm-faq details, .fm-faq-item { background: var(--bk-card); border-radius: var(--radius-md); box-shadow: var(--bk-shadow); }
.fm-faq summary, .fm-faq-button { display: flex; align-items: center; gap: var(--stack-card); min-block-size: var(--faq-row-height); padding: var(--faq-row-padding) var(--card-pad); inline-size: 100%; background: transparent; border: 0; font: var(--title-weight) var(--title-size)/var(--title-line) var(--font-family); text-align: left; color: inherit; }
.fm-faq summary > span:first-child, .fm-faq-button > span:first-child { flex: 1; }
.fm-faq-toggle { display: grid; place-items: center; inline-size: var(--control-sm); block-size: var(--control-sm); flex: none; background: var(--bk-circle); border-radius: var(--radius-pill); }
.fm-faq-toggle .fm-icon { inline-size: var(--icon-small); block-size: var(--icon-small); transition: transform var(--duration-accordion) var(--ease-out); }
.fm-faq [open] .fm-faq-toggle .fm-icon, .fm-faq [aria-expanded='true'] .fm-faq-toggle .fm-icon { transform: rotate(180deg); }
.fm-faq [open], .fm-faq-item:has([aria-expanded='true']) { background: var(--bk-circle); box-shadow: none; }
.fm-faq-answer { padding: 0 var(--card-pad) var(--card-pad); }
.fm-faq-answer > * + * { margin-block-start: var(--stack-prose); }
.fm-conversation { padding: var(--card-pad); border-radius: var(--radius-lg); display: grid; gap: var(--stack-block); align-items: center; }
.fm-conversation-copy { display: grid; gap: var(--stack-card); }
.fm-conversation-copy .fm-section-head + ul { margin: 0; }
.fm-conversation-points { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--list-gap); }
.fm-conversation-points li { display: flex; align-items: center; gap: var(--stack-eyebrow); }
.fm-conversation-photo { max-inline-size: var(--conversation-portrait-max); }
.fm-conversation-photo img { aspect-ratio: var(--ratio-landing); inline-size: 100%; object-fit: cover; object-position: var(--conversation-portrait-position); border-radius: var(--shape-soft); }
.fm-conversation-photo figcaption { margin-block-start: var(--stack-card); }
.fm-cta-band-row { display: flex; flex-wrap: wrap; align-items: center; gap: var(--grid-gap); }
.fm-cta-band-row > .fm-lead { flex: 1 1 var(--split-min); }
.fm-photo-band { position: relative; isolation: isolate; overflow: hidden; padding-block: var(--section-pad); }
.fm-photo-band::before { content: ''; position: absolute; inset: 0; z-index: -1; background: var(--bk-veil); }
.fm-band-photo { position: absolute; z-index: -2; inset: 0; }
.fm-band-photo img { inline-size: 100%; block-size: 100%; object-fit: cover; }
.fm-parallax { min-block-size: var(--photo-band-min); padding-block: var(--parallax-pad); display: flex; align-items: center; }
.fm-parallax .fm-band-photo { transform: translateY(var(--parallax-offset, 0)) scale(var(--parallax-scale)); }
.fm-texture .fm-band-photo { opacity: var(--bk-photo-opacity); filter: saturate(var(--texture-saturation)); }
.fm-location-intro { display: grid; align-items: center; gap: var(--stack-block); }

.fm-map img { inline-size: 100%; border-radius: var(--radius-lg); }
.fm-locations { display: grid; align-items: start; gap: var(--grid-gap); }
.fm-location-card { background: var(--bk-card); border-radius: var(--radius-lg); overflow: hidden; display: flex; flex-direction: column; }
.fm-location-card > figure { margin: var(--stack-card) var(--stack-card) 0; }
.fm-location-card > figure :is(img, .fm-image-placeholder) { inline-size: 100%; aspect-ratio: var(--ratio-wide); object-fit: cover; border-radius: var(--radius-md); }
.fm-location-card figcaption { margin-block-start: var(--stack-eyebrow); }
.fm-location-card .fm-card { background: transparent; box-shadow: none; flex: 1; }
.fm-location-card ul { display: grid; gap: var(--list-gap); }
.fm-location-card li { display: flex; align-items: center; gap: var(--stack-card); }
/* Navigation: ein Baum, mit JavaScript im nativen Dialog. */
.fm-navigation-shell { position: sticky; inset-block-start: 0; z-index: var(--z-header); min-block-size: var(--header-height); }
.fm-navigation-shell--preview { position: relative; z-index: var(--z-dropdown); }
/* Hülle und Innenzeile behalten ihre Geometrie; Scrollen ergänzt nur Schatten. */
.fm-menu-ready .fm-header { position: absolute; inset-block-start: 0; inline-size: 100%; block-size: var(--header-height); }
.fm-header { min-block-size: var(--header-height); display: grid; grid-template-columns: minmax(0, 1fr); align-items: center; transition: box-shadow var(--duration-color) var(--ease-out); }
.fm-header[data-tone='light'] { background: var(--header-surface); }
.fm-header.is-scrolled { box-shadow: var(--shadow-sm); }
.fm-header-row { min-block-size: var(--header-height); display: flex; flex-wrap: wrap; align-items: center; gap: var(--header-gap); padding-block: var(--space-1); }
.fm-menu-ready .fm-header-row { flex-wrap: nowrap; }
.fm-header-row > * { min-inline-size: 0; }
.fm-brand { min-block-size: var(--touch); display: inline-flex; flex: none; align-items: center; gap: var(--space-1); text-decoration: none; color: inherit; }
.fm-brand img { flex: none; inline-size: var(--logo-size); block-size: var(--logo-size); }
.fm-brand-wordmark { font: var(--weight-medium) var(--small-size)/var(--small-line) var(--font-family); white-space: nowrap; }
.fm-header .fm-brand img, .fm-menu-top .fm-brand img { inline-size: var(--logo-min); block-size: var(--logo-min); }
.fm-desktop-nav { flex-basis: 100%; }
.fm-header-actions { display: flex; flex: none; align-items: center; gap: var(--header-gap); margin-inline-start: auto; }
.fm-nav-list { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-1); }
.fm-nav-list > li { min-inline-size: 0; }
.fm-nav-group > summary { display: flex; align-items: center; gap: var(--header-chevron-gap); min-block-size: var(--touch); padding: var(--header-control-padding-y) var(--header-nav-padding); font-size: var(--nav-size); font-weight: var(--nav-weight); border-radius: var(--radius-pill); text-decoration: none; white-space: nowrap; }
.fm-nav-group > summary:hover, .fm-nav-group[open] > summary { background: var(--sand-100); color: var(--ink); }
.fm-nav-group { position: relative; }
.fm-nav-group > summary > .fm-icon { inline-size: var(--icon-small); block-size: var(--icon-small); }
.fm-nav-panel { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--header-panel-gap); background: var(--surface); color: var(--ink); padding: var(--header-panel-padding); border-radius: var(--radius-md); }
.fm-nav-group a { display: flex; align-items: center; gap: var(--space-2); padding: var(--header-control-padding-y) var(--header-control-padding-x); min-block-size: var(--header-entry-height); line-height: var(--header-entry-line); border-radius: var(--radius-sm); font-size: var(--nav-size); font-weight: var(--nav-weight); text-decoration: none; }
.fm-nav-group a:hover { background: var(--sand-100); }
.fm-nav-group a .fm-icon-circle { inline-size: var(--icon-circle-small); block-size: var(--icon-circle-small); background: var(--grad-sand); }
.fm-nav-group a .fm-icon { inline-size: var(--icon-size); block-size: var(--icon-size); color: var(--earth-700); }
.fm-nav-copy { min-inline-size: 0; overflow-wrap: anywhere; }
.fm-nav-note { display: block; font-size: var(--small-size); line-height: var(--small-line); }
.fm-nav-list [aria-current='page'], .fm-nav-group[data-active='true'] > summary { background: var(--sand-100); color: var(--ink); }
.fm-menu-open { display: none; }
.fm-menu-ready .fm-menu-open { display: inline-flex; }
.fm-menu-ready .fm-desktop-nav { display: none; }
.fm-menu-open, .fm-menu-close { flex: none; min-block-size: var(--touch); padding: var(--header-control-padding-y) var(--header-control-padding-x); white-space: nowrap; }
.fm-menu-close { min-inline-size: var(--touch); }
.fm-menu-close-label { display: none; }
.fm-menu-dialog { position: fixed; inset: 0; inline-size: 100%; max-inline-size: none; block-size: 100dvh; max-block-size: none; margin: 0; border: 0; padding: var(--space-2) var(--page-gutter); overflow: auto; }
.fm-menu-dialog::backdrop { background: var(--backdrop); }
.fm-menu-inner { max-inline-size: var(--header-menu-max); margin-inline: auto; }
.fm-menu-top { display: flex; justify-content: space-between; align-items: center; gap: var(--space-2); margin-block-end: var(--stack-head); }
.fm-menu-dialog .fm-nav-list { gap: var(--space-2); }
body:has(.fm-menu-dialog[open]) { overflow: hidden; }
.fm-header-booking { display: none; }
.fm-header-booking[data-booking-enabled='false'] { visibility: hidden; pointer-events: none; }
.fm-header .fm-booking--compact .fm-btn { font-size: var(--small-size); padding: var(--header-control-padding-y) var(--header-control-padding-x); }
.fm-nav-group, .fm-nav-group summary, .fm-nav-group a { text-align: start; justify-content: flex-start; }
.fm-nav-subgroup { margin-block-start: var(--header-subgroup-gap); }
.fm-nav-subgroup-title { padding: var(--header-control-padding-y) var(--header-control-padding-x); font: var(--weight-medium) var(--small-size)/var(--small-line) var(--font-family); color: var(--ink); }
.fm-nav-subgroup > ul { padding-inline-start: var(--header-subgroup-indent); }
.fm-nav-group[open] > summary > .fm-icon { transform: rotate(180deg); }
.fm-menu-dialog .fm-nav-group > summary { justify-content: space-between; }
.fm-menu-dialog .fm-nav-panel { margin-block-start: var(--space-1); }
/* Footer: gemeinsamer Gesprächskopf, fünf Verzeichnisse, leiser Abschluss. */
.fm-footer { padding-block: var(--section-pad); border-block-start: 0; }
main + .fm-footer { margin-block-start: 0; }
.fm-footer :is(a, address, h3, p) { overflow-wrap: anywhere; }
.fm-footer a { display: inline-flex; align-items: center; min-block-size: var(--touch); text-decoration: none; }
.fm-footer a:not(.fm-btn):not(.fm-brand) { color: var(--bk-muted); }
.fm-footer a:not(.fm-btn):hover, .fm-footer a:not(.fm-btn):focus-visible { color: inherit; text-decoration: underline; }
.fm-footer-conversation { display: grid; gap: var(--footer-section-gap); padding-block-end: var(--section-pad); margin-block-end: var(--section-pad); border-block-end: var(--hairline) solid var(--bk-line); align-items: center; }
.fm-footer-invitation { display: grid; gap: var(--space-5); min-inline-size: 0; }
.fm-footer-lead { color: var(--bk-muted); }
.fm-footer-person { display: grid; grid-template-columns: var(--footer-person-columns); align-items: center; gap: var(--space-3); }
.fm-footer-person img { inline-size: var(--footer-portrait-size); block-size: var(--footer-portrait-size); object-fit: cover; object-position: var(--conversation-portrait-position); border-radius: var(--radius-pill); }
.fm-footer-name { font-size: var(--title-size); }
.fm-footer-person .fm-small { color: var(--bk-muted); }
.fm-footer-points { display: grid; gap: var(--space-2); }
.fm-footer-points li { display: grid; grid-template-columns: var(--icon-size) minmax(0, 1fr); gap: var(--space-2); align-items: start; }
.fm-footer-points .fm-icon { margin-block-start: var(--space-1); }
.fm-footer-booking { min-inline-size: 0; display: grid; gap: var(--space-3); padding: var(--space-4); border: var(--hairline) solid var(--line-soft); border-radius: var(--radius-lg); box-shadow: var(--card-action-shadow); }
.fm-footer-booking .fm-booking { justify-items: stretch; }
.fm-footer-booking .fm-btn { justify-content: space-between; white-space: normal; }
.fm-footer-booking .fm-booking-subline, .fm-footer-phone { justify-self: center; text-align: center; }
.fm-footer-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, max(var(--footer-column-min), calc((100% - var(--footer-column-gap) * (var(--footer-link-columns) - 1)) / var(--footer-link-columns)))), 1fr)); align-items: start; gap: var(--footer-section-gap) var(--footer-column-gap); }
.fm-footer-grid > div { min-inline-size: 0; }
.fm-footer-grid h3 { margin-block-end: var(--space-3); }
.fm-footer-grid ul { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-1); }
.fm-footer-grid a { align-items: center; }
.fm-footer-unlinked { display: inline-flex; align-items: center; min-block-size: var(--touch); color: var(--bk-muted); }
.fm-footer-conditions { margin-block: var(--footer-section-gap); padding-block: var(--space-4); border-block: var(--hairline) solid var(--bk-line); }
.fm-footer-conditions ul { display: flex; flex-wrap: wrap; column-gap: var(--space-2); font-size: var(--small-size); color: var(--bk-muted); }
.fm-footer-conditions li { max-inline-size: 100%; display: flex; align-items: center; gap: var(--space-2); }
.fm-footer-conditions li:not(:last-child)::after { content: '·'; }
.fm-footer-bottom { display: grid; gap: var(--footer-section-gap); align-items: start; }
.fm-footer-intro, .fm-footer-contact { display: grid; justify-items: start; gap: var(--footer-copy-gap); min-inline-size: 0; }
.fm-footer-intro p, .fm-footer address { font-size: var(--small-size); color: var(--bk-muted); }
.fm-footer address { font-style: normal; }
.fm-footer-legal { margin-block-start: var(--footer-section-gap); padding-block-start: var(--space-4); border-block-start: var(--hairline) solid var(--bk-line); display: grid; gap: var(--footer-copy-gap); }
.fm-footer-legal > p { max-inline-size: none; color: var(--bk-muted); }
.fm-footer-legal-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-3); }
.fm-footer-legal nav { display: flex; gap: var(--space-3); flex-wrap: wrap; }
.fm-breadcrumb a { display: inline-flex; align-items: center; min-block-size: var(--touch); }
@media (min-width: 768px) {
  .fm-footer-conversation { grid-template-columns: var(--footer-conversation-columns); }
  .fm-footer-bottom { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1100px) {
  .fm-footer-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, max(var(--footer-column-min), calc((100% - var(--footer-column-gap) * (var(--footer-desktop-columns) - 1)) / var(--footer-desktop-columns)))), 1fr)); }
  .fm-footer-bottom { grid-template-columns: var(--footer-bottom-columns); }
}

.fm-mobile-booking { position: fixed; inset-inline: 0; inset-block-end: 0; z-index: var(--z-booking); padding: var(--stack-eyebrow) var(--page-gutter) calc(var(--stack-eyebrow) + env(safe-area-inset-bottom)); box-shadow: var(--shadow-booking); }
.fm-mobile-booking.is-suppressed { visibility: hidden; pointer-events: none; }
.fm-mobile-booking .fm-booking, .fm-mobile-booking .fm-btn { inline-size: 100%; }
.fm-mobile-booking--preview { position: static; max-inline-size: var(--content-narrow); margin-inline: auto; box-shadow: none; }
.fm-skip { position: fixed; z-index: var(--z-skip); inset-block-start: var(--stack-card); inset-inline-start: var(--stack-card); transform: translateY(-200%); background: var(--surface); color: var(--ink); padding: var(--stack-card); }
.fm-skip:focus { transform: none; }
/* Der interne Katalog verwendet dieselben Layout-Abstände. */
.fm-catalog-nav { display: flex; flex-wrap: wrap; gap: var(--stack-card) var(--grid-gap); }
.fm-catalog-nav a { min-block-size: var(--touch); display: inline-flex; align-items: center; }
.fm-specimen-head { padding-block: var(--section-pad) var(--stack-head); }
.fm-specimen-head p { margin-block-start: var(--stack-lead); }
.fm-specimen-label { padding-block: var(--stack-card); background: var(--surface-soft); }
.fm-props { padding-block: var(--stack-head) var(--section-pad); }
.fm-props-table { inline-size: 100%; border-collapse: collapse; font-size: var(--small-size); }
.fm-props-table caption { text-align: left; font-size: var(--title-size); margin-block-end: var(--grid-gap); }
.fm-props-table :is(th, td) { padding: var(--stack-card); border-block-end: var(--hairline) solid var(--line); text-align: left; vertical-align: top; overflow-wrap: anywhere; }
.fm-props-table th:first-child { inline-size: var(--bk-table-first); }
.fm-props-table th { font-weight: var(--weight-medium); }
.fm-specimen-spots { display: flex; flex-wrap: wrap; gap: var(--grid-gap); }
.fm-cta-band-row > .fm-booking { flex: 0 1 var(--booking-max); }
@media (min-width: 48em) {
  h1 { font-size: var(--display-size); line-height: var(--display-line); letter-spacing: var(--display-tracking); }
  h2 { font-size: var(--headline-size); }
  .fm-hero .fm-section-head > :is(h1, h2) { font: var(--display-weight) var(--display-size)/var(--display-line) var(--font-family); letter-spacing: var(--display-tracking); }
  .fm-hero--short .fm-section-head > :is(h1, h2) { font: var(--hero-weight) var(--hero-size)/var(--hero-line) var(--font-family); letter-spacing: var(--hero-tracking); }
  .fm-hero-grid:has(.fm-hero-photo) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fm-hero-copy { gap: var(--grid-gap); }
  .fm-hero-photo { grid-row: auto; border-radius: var(--shape-soft); }
  .fm-hero-photo img { block-size: min(var(--hero-desktop-photo), var(--hero-viewport-photo)); }
  .fm-image-left .fm-hero-photo { grid-column: 1; grid-row: 1; }
  .fm-image-left .fm-hero-copy { grid-column: 2; }
  .fm-timeline--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .fm-timeline--3 > li { display: block; }
  .fm-timeline--3 .fm-timeline-copy { margin-block-start: var(--stack-card); }
  .fm-timeline--3 .fm-timeline-line--vertical { display: none; }
  .fm-timeline--3 .fm-timeline-line--horizontal { display: block; transform: none; inset-block-start: 50%; inset-inline-start: calc(var(--icon-circle-large) + var(--stack-card)); inline-size: calc(100% - var(--icon-circle-large)); }
  .fm-faq-layout:not(.fm-faq-layout--single), .fm-conversation { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fm-conversation.fm-image-left .fm-conversation-photo { grid-column: 1; grid-row: 1; }
  .fm-conversation.fm-image-left .fm-conversation-copy { grid-column: 2; }
  .fm-location-intro { grid-template-columns: minmax(0, var(--bk-map-copy-share)) minmax(0, var(--bk-map-share)); }
  .fm-location-intro.fm-image-left { grid-template-columns: minmax(0, var(--bk-map-share)) minmax(0, var(--bk-map-copy-share)); }
  .fm-location-intro.fm-image-left .fm-map { grid-column: 1; grid-row: 1; }
  .fm-location-intro.fm-image-left .fm-section-head { grid-column: 2; }
  .fm-locations { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fm-mobile-booking:not(.fm-mobile-booking--preview) { display: none; }
}
@media (min-width: 48em) {
  .fm-header-booking { display: block; }
  .fm-menu-close-label { display: inline; }
}
/* Viewportschwelle plus gemessene verfügbare Inhaltsbreite (menu.js). */
@media (min-width: 80em) {
  .fm-header-row { flex-wrap: wrap; }
  .fm-desktop-nav .fm-nav-group > summary { font-size: var(--header-top-size); padding-inline: var(--header-desktop-nav-padding); }
  .fm-menu-ready .fm-menu-open { display: none; }
  .fm-menu-ready .fm-desktop-nav, .fm-desktop-nav { display: block; flex: none; margin-inline-start: calc(var(--header-brand-gap) - var(--header-gap)); }
  .fm-desktop-nav .fm-nav-list { display: flex; align-items: center; gap: var(--header-nav-gap); }
  .fm-desktop-nav .fm-nav-panel { position: absolute; inset-block-start: 100%; inset-inline-start: 0; inline-size: var(--dropdown-width); max-block-size: calc(100dvh - var(--header-height) - var(--space-3)); overflow-y: auto; box-shadow: var(--shadow-md); }
  .fm-desktop-nav .fm-nav-list > li:last-child .fm-nav-panel { inset-inline-start: auto; inset-inline-end: 0; }
  .fm-menu-ready [data-navigation-compact] .fm-desktop-nav { display: none; }
  .fm-menu-ready [data-navigation-compact] .fm-menu-open { display: inline-flex; }
}
@media (min-width: 75em) {
  .fm-timeline--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--grid-gap); }
  .fm-timeline--5 > li { display: block; }
  .fm-timeline--5 .fm-timeline-copy { margin-block-start: var(--stack-card); }
  .fm-timeline--5 .fm-timeline-line--vertical { display: none; }
  .fm-timeline--5 .fm-timeline-line--horizontal { display: block; transform: none; inset-block-start: 50%; inset-inline-start: calc(var(--icon-circle-large) + var(--stack-card)); inline-size: calc(100% - var(--icon-circle-large)); }
}
@media (max-width: 47.999em) {
  .fm-booking, .fm-booking .fm-btn { inline-size: 100%; }
  .fm-benefits li { padding: var(--stack-eyebrow); }
  .fm-conversation-points { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .fm-parallax .fm-band-photo, .fm-btn:hover, .fm-text-link:hover .fm-icon { transform: none; }
}
@media print {
  .fm-navigation-shell { position: static; }
  .fm-mobile-booking, .fm-menu-open { display: none; }
  * { animation: none !important; }
}

/* Lauf 2: Originalbausteine mit gemeinsamem Absatzrhythmus und Farbumkehrung. */
[data-tone='light'] { --bk-device: var(--diagram-device); --bk-device-line: var(--earth-300); --bk-label: var(--surface); }
[data-tone='dark'] { --bk-device: var(--bk-white-8); --bk-device-line: var(--bk-white-50); --bk-label: var(--glass-dark); }
blockquote { margin: 0; }
h4 { margin: 0; font: var(--title-weight) var(--title-size)/var(--title-line) var(--font-family); }
.fm-prose > * + * { margin-block-start: var(--stack-prose); }
.fm-prose-list { list-style: disc; padding-inline-start: var(--stack-card); display: grid; gap: var(--list-gap); }
.fm-detail-list { display: grid; gap: var(--list-gap); }
.fm-detail-list li, .fm-location-detail { display: flex; align-items: flex-start; gap: var(--stack-card); }
.fm-two-columns { display: grid; gap: var(--grid-gap); grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--split-min)), 1fr)); }
.fm-block-note { margin-block-start: var(--stack-head); }
.fm-conversation-photo { inline-size: min(100%, var(--conversation-portrait-max)); }
.fm-conversation-photo img { display: block; visibility: visible; opacity: 1; }
.fm-map { inline-size: 100%; max-inline-size: none; }
.fm-map img { inline-size: 100%; aspect-ratio: var(--bk-map-ratio); object-fit: contain; }
.fm-map-labels { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--stack-card); margin-block-start: var(--stack-card); }
.fm-map-labels li { display: flex; gap: var(--stack-eyebrow); align-items: flex-start; padding: var(--stack-card); border-radius: var(--radius-md); background: var(--bk-card); font-size: var(--small-size); }
.fm-map-labels .fm-icon { inline-size: var(--icon-topic); block-size: var(--icon-topic); }
.fm-map-labels span span { display: block; }
.fm-map-labels strong { font-weight: var(--weight-medium); }
.fm-location-card .fm-eyebrow { font-size: var(--small-size); text-transform: none; letter-spacing: normal; }
.fm-medical-team { display: grid; gap: var(--stack-head); align-items: start; }
.fm-doctor-profile { background: var(--bk-card); border-radius: var(--radius-lg); padding: var(--card-pad); display: grid; gap: var(--grid-gap); align-items: start; }
.fm-doctor-profile .fm-prose { max-inline-size: var(--measure); min-inline-size: 0; }
.fm-doctor-placeholder { inline-size: var(--doctor-placeholder-size); aspect-ratio: var(--ratio-square); display: grid; place-items: center; border-radius: var(--radius-pill); background: var(--bk-circle); }
.fm-doctor-placeholder .fm-icon { inline-size: var(--icon-circle-large); block-size: var(--icon-circle-large); }
.fm-principles { display: grid; gap: var(--stack-block); grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--principle-column-min)), 1fr)); }
.fm-quote { display: grid; gap: var(--grid-gap); align-items: center; }
.fm-quote blockquote, .fm-founder-quote { font-size: clamp(var(--quote-size-min), var(--quote-size-fluid), var(--quote-size-max)); line-height: var(--quote-line); letter-spacing: var(--quote-tracking); font-weight: var(--title-weight); max-inline-size: var(--quote-measure); }
.fm-quote figcaption { margin-block-start: var(--stack-card); color: var(--bk-muted); }
.fm-quote > img { inline-size: var(--segment-spot-size); aspect-ratio: var(--ratio-square); object-fit: cover; border-radius: var(--shape-pebble); }
.fm-founder { display: grid; gap: var(--stack-block); align-items: center; }
.fm-founder-photo img { inline-size: 100%; aspect-ratio: var(--ratio-square); object-fit: cover; object-position: var(--founder-focus); border-radius: var(--shape-leaf); }
.fm-signature { display: flex; flex-wrap: wrap; align-items: center; gap: var(--grid-gap); padding-block-start: var(--stack-card); }
.fm-signature img { inline-size: var(--bk-signature-width); block-size: auto; }
[data-tone='dark'] .fm-signature img { filter: brightness(0) invert(1); }
.fm-team-grid { display: grid; gap: var(--grid-gap); grid-template-columns: repeat(auto-fill, minmax(min(100%, var(--day-column-min)), 1fr)); }
.fm-team-grid figure > img { inline-size: 100%; aspect-ratio: var(--ratio-square); object-fit: cover; object-position: var(--founder-focus); border-radius: var(--radius-md); }
.fm-team-grid figcaption { margin-block-start: var(--stack-card); }
.fm-gallery { display: grid; gap: var(--grid-gap); }
.fm-section-head + .fm-gallery { margin-block-start: var(--stack-head); }
.fm-gallery figure { min-inline-size: 0; }
.fm-gallery img { inline-size: 100%; object-fit: cover; border-radius: var(--radius-md); }
.fm-gallery figcaption { margin-block-start: var(--stack-eyebrow); }
.fm-gallery--pair img { aspect-ratio: var(--ratio-image); max-block-size: var(--gallery-strip-height); }
.fm-gallery--mosaic > figure img { aspect-ratio: var(--ratio-landing); }
.fm-gallery-small { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--grid-gap); }
.fm-gallery-small img { aspect-ratio: var(--ratio-square); }
.fm-gallery--strip { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; padding-block-end: var(--stack-card); }
.fm-gallery--strip figure { flex: 0 0 min(85%, var(--gallery-strip-height)); scroll-snap-align: start; }
.fm-gallery--strip img { block-size: var(--gallery-strip-compact); }
.fm-gallery-caption { margin-block-start: var(--stack-card); }
.fm-scope-list { display: grid; gap: var(--grid-gap); grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--card-min)), 1fr)); }
.fm-scope-list > li { display: flex; gap: var(--stack-card); padding: var(--card-pad); background: var(--bk-card); border-radius: var(--radius-md); }
.fm-scope-list .fm-icon-circle { inline-size: var(--control-md); block-size: var(--control-md); }
.fm-scope-list .fm-icon { inline-size: var(--icon-scope); block-size: var(--icon-scope); }
.fm-day-plan { display: grid; gap: var(--grid-gap); grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--day-column-min)), 1fr)); }
.fm-day-plan > li { border-radius: var(--radius-lg); overflow: hidden; background: var(--bk-card); }
.fm-day-head { display: flex; align-items: baseline; gap: var(--stack-card); background: var(--bk-circle); padding: var(--grid-gap); }
.fm-day-number { font-size: var(--headline-size); font-weight: var(--headline-weight); }
.fm-day-plan .fm-detail-list { padding: var(--grid-gap); font-size: var(--small-size); }
.fm-flow-steps { display: grid; gap: var(--grid-gap); }
.fm-flow-steps > li { position: relative; }
.fm-flow-arrow { position: absolute; inset-block-end: calc(var(--stack-card) * -1); inset-inline-start: var(--card-pad); inline-size: var(--control-sm); block-size: var(--control-sm); display: grid; place-items: center; border-radius: var(--radius-pill); background: var(--terra-300); z-index: 1; }
.fm-flow-arrow .fm-icon { transform: rotate(90deg); color: var(--terra-700); }
.fm-risks { gap: var(--grid-gap); }
.fm-risks ul { display: grid; gap: var(--list-gap); grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--principle-column-min)), 1fr)); inline-size: 100%; }
.fm-risks li { background: var(--bk-circle); border-radius: var(--radius-sm); padding: var(--stack-card); }
.fm-evidence-box { display: grid; gap: var(--stack-head); }
.fm-evidence-box .fm-section-head + div { margin: 0; }
.fm-info-box { display: flex; gap: var(--grid-gap); align-items: flex-start; }
.fm-read-more, .fm-cost-grid { display: grid; gap: var(--grid-gap); grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--read-more-column-min)), 1fr)); }
.fm-read-more article { display: flex; flex-direction: column; border-radius: var(--radius-lg); background: var(--bk-card); }
.fm-read-more figure { margin: var(--stack-card) var(--stack-card) 0; }
.fm-read-more img { inline-size: 100%; aspect-ratio: var(--ratio-read-more); object-fit: cover; border-radius: var(--radius-md); }
.fm-read-more .fm-card { flex: 1; background: transparent; box-shadow: none; }
.fm-sources { display: grid; gap: var(--list-gap); }
.fm-sources > li { display: flex; gap: var(--stack-card); padding-block: var(--stack-card); border-block-end: var(--hairline) solid var(--bk-line); font-size: var(--small-size); }
.fm-source-number { display: grid; place-items: center; flex: none; inline-size: var(--source-number-size); block-size: var(--source-number-size); background: var(--bk-circle); border-radius: var(--radius-pill); }
.fm-invoice { display: grid; gap: var(--grid-gap); max-inline-size: var(--invoice-max); margin-inline: auto; background: var(--bk-card); border-radius: var(--radius-md); padding: var(--card-pad); box-shadow: var(--bk-shadow); }
.fm-invoice header, .fm-invoice-total { display: flex; justify-content: space-between; align-items: center; gap: var(--stack-card); }
.fm-invoice-lines > li { border-block-start: var(--hairline) dashed var(--bk-line); padding-block: var(--stack-card); font-size: var(--small-size); }
.fm-invoice-total { border-block-start: var(--hairline) solid var(--bk-line); padding-block-start: var(--grid-gap); }
.fm-number { text-align: right !important; font-variant-numeric: tabular-nums; }
.fm-table-scroll { overflow-x: auto; border-radius: var(--radius-md); }
.fm-data-table { inline-size: 100%; border-collapse: collapse; background: var(--bk-card); }
.fm-data-table caption { text-align: left; font-size: var(--small-size); padding: var(--stack-card); background: var(--bk-card); }
.fm-data-table :is(th, td) { padding: var(--stack-card); border-block-start: var(--hairline) solid var(--bk-line); font-size: var(--small-size); text-align: left; vertical-align: top; }
.fm-data-table th { font-weight: var(--weight-medium); }
.fm-evidence-matrix { display: grid; gap: var(--grid-gap); }
.fm-evidence-matrix table { min-inline-size: var(--evidence-table-min); }
.fm-evidence-cell { display: flex; flex-direction: column; align-items: flex-start; gap: var(--stack-eyebrow); }
.fm-evidence-legend { display: flex; flex-wrap: wrap; gap: var(--grid-gap); font-size: var(--small-size); }
.fm-evidence-legend li { display: flex; align-items: center; gap: var(--stack-eyebrow); }
.fm-breadcrumb .fm-section { padding-block: var(--stack-card); }
.fm-breadcrumb ol, .fm-breadcrumb li { display: flex; flex-wrap: wrap; align-items: center; gap: var(--stack-eyebrow); font-size: var(--small-size); }
.fm-breadcrumb .fm-icon { inline-size: var(--icon-small); block-size: var(--icon-small); }
.fm-location-block { display: grid; gap: var(--stack-block); border-radius: var(--radius-lg); background: var(--bk-card); overflow: hidden; }
.fm-location-copy { padding: var(--card-pad); }
.fm-contact-links { display: grid; justify-items: start; gap: var(--space-2); }
.fm-contact-links a { max-inline-size: 100%; overflow-wrap: anywhere; }
.fm-location-photo img { inline-size: 100%; block-size: auto; aspect-ratio: var(--ratio-landing); object-fit: cover; }
.fm-location-photo figcaption { padding: var(--stack-card); }
.fm-legal { display: grid; gap: var(--stack-head); }
.fm-legal-section { max-inline-size: var(--measure); min-inline-size: 0; overflow-wrap: anywhere; }
.fm-legal-toc a, .fm-legal-links a { display: inline-flex; align-items: center; min-block-size: var(--touch); overflow-wrap: anywhere; }
.fm-legal-links { display: flex; flex-wrap: wrap; gap: var(--space-3); }
.fm-procedure-schema { display: flex; flex-direction: column; gap: var(--stack-card); padding: var(--card-pad); border-radius: var(--radius-lg); background: var(--bk-card); }
.fm-procedure-heading { display: flex; align-items: center; gap: var(--stack-card); }
.fm-procedure-schema svg { inline-size: 100%; block-size: auto; }
.fm-procedure-schema svg text { font-size: var(--diagram-label-size); font-weight: var(--weight-medium); font-family: var(--font-family); }
.fm-procedure-steps { list-style: decimal; padding-inline-start: var(--grid-gap); font-size: var(--small-size); display: grid; gap: var(--stack-eyebrow); }
.fm-procedure-compare { display: grid; gap: var(--grid-gap); }
.fm-procedure-schema--compact { padding: var(--grid-gap); }
.fm-procedure-compare table { grid-column: 1 / -1; }
.fm-cell-label { display: none; }
.fm-procedure-schema .fm-flow { stroke-dasharray: var(--diagram-flow-dash); animation: fm-flow var(--diagram-flow-duration) linear infinite; }
.fm-procedure-schema .fm-flow-slow { stroke-dasharray: var(--diagram-flow-slow-dash); animation: fm-flow var(--diagram-flow-slow-duration) linear infinite; }
.fm-pump-spin { transform-origin: 0 0; animation: fm-pump-spin var(--diagram-spin-duration) linear infinite; }
@keyframes fm-pump-spin { to { transform: rotate(360deg); } }
.fm-pulse { animation: fm-diagram-pulse var(--diagram-pulse-duration) var(--ease-out) infinite; }
@keyframes fm-diagram-pulse { 50% { opacity: var(--diagram-pulse-high); } }
.fm-blood-tube { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: var(--grid-gap); }
.fm-blood-tube svg { inline-size: var(--blood-tube-width); }
.fm-blood-key { display: inline-block; inline-size: var(--blood-key-size); block-size: var(--blood-key-size); border-radius: var(--blood-key-radius); margin-inline-end: var(--stack-eyebrow); }
.fm-blood-key--plasma { background: var(--plasma); border: var(--hairline) solid var(--earth-300); }
.fm-blood-key--cells { background: var(--blood); }
.fm-blood-tube--animated :is(.fm-blood-plasma, .fm-blood-cells) { transform-box: fill-box; transform-origin: bottom; animation: fm-blood-fill var(--blood-tube-fill-duration) var(--ease-out) var(--blood-tube-fill-delay) both; }
.fm-blood-tube--animated .fm-blood-plasma { transform-origin: top; }
@keyframes fm-blood-fill { from { transform: scaleY(0); } to { transform: scaleY(1); } }
.fm-aftercare { display: grid; gap: var(--stack-block); align-items: center; }
.fm-aftercare svg { inline-size: 100%; max-inline-size: var(--aftercare-size); margin-inline: auto; }
.fm-aftercare-track, .fm-aftercare-segment { fill: none; stroke-width: var(--aftercare-stroke); }
.fm-aftercare-track { stroke: var(--bk-line); }
.fm-aftercare-segment { stroke: var(--sand-300); }
.fm-aftercare text { fill: currentColor; font-family: var(--font-family); }
.fm-aftercare-month { font-size: var(--aftercare-month-size); }
.fm-aftercare-number { font-size: var(--display-size); font-weight: var(--display-weight); letter-spacing: var(--aftercare-number-tracking); }
.fm-aftercare-label { font-size: var(--small-size); }
.fm-aftercare-checkpoint { fill: var(--terra-500); }
.fm-aftercare.is-ready:not(.is-filled) .fm-aftercare-segment { opacity: 0; }
.fm-aftercare.is-filled .fm-aftercare-segment { animation: fm-ring-fill var(--aftercare-fade-duration) var(--ease-out) both; }
@keyframes fm-ring-fill { from { opacity: 0; } to { opacity: 1; } }
@media (min-width: 48em) {
  .fm-map img { min-block-size: var(--bk-map-min); }
  .fm-founder, .fm-aftercare, .fm-location-block { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fm-founder.fm-image-left .fm-founder-photo, .fm-location-block.fm-image-left .fm-location-photo { grid-column: 1; grid-row: 1; }
  .fm-founder.fm-image-left .fm-founder-copy, .fm-location-block.fm-image-left .fm-location-copy { grid-column: 2; }
  .fm-gallery--pair, .fm-gallery--mosaic, .fm-procedure-compare { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fm-gallery--pair > figure:nth-child(2) { margin-block-start: var(--stack-block); }
  .fm-procedure-steps { display: none; }
  .fm-quote--portrait { grid-template-columns: auto 1fr; }
  .fm-flow-steps { grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--flow-column-min)), 1fr)); }
  .fm-flow-arrow { inset-block-end: auto; inset-block-start: 50%; inset-inline-start: auto; inset-inline-end: calc(var(--stack-card) * -1); }
  .fm-flow-arrow .fm-icon { transform: none; }
}
@media (min-width: 64em) {
  .fm-doctor-profile { grid-template-columns: auto minmax(0, 1fr); }
}
@media (max-width: 47.999em) {
  .fm-compare-table :is(thead, caption) { display: none; }
  .fm-compare-table :is(tbody, tr, th, td) { display: block; }
  .fm-cell-label { display: inline; font-weight: var(--weight-medium); }
  .fm-map-labels li { flex-direction: column; }
}
@media (prefers-reduced-motion: reduce), print {
  .fm-aftercare .fm-aftercare-segment { opacity: 1 !important; }
  .fm-blood-tube :is(.fm-blood-plasma, .fm-blood-cells) { transform: none; }
}

/* Zwölf originale Segmente, Staffelung ohne Inline-Styles. */
.fm-aftercare.is-filled .fm-aftercare-segment:nth-of-type(1) { animation-delay: calc(var(--aftercare-step-delay) * 0); }
.fm-aftercare.is-filled .fm-aftercare-segment:nth-of-type(2) { animation-delay: calc(var(--aftercare-step-delay) * 1); }
.fm-aftercare.is-filled .fm-aftercare-segment:nth-of-type(3) { animation-delay: calc(var(--aftercare-step-delay) * 2); }
.fm-aftercare.is-filled .fm-aftercare-segment:nth-of-type(4) { animation-delay: calc(var(--aftercare-step-delay) * 3); }
.fm-aftercare.is-filled .fm-aftercare-segment:nth-of-type(5) { animation-delay: calc(var(--aftercare-step-delay) * 4); }
.fm-aftercare.is-filled .fm-aftercare-segment:nth-of-type(6) { animation-delay: calc(var(--aftercare-step-delay) * 5); }
.fm-aftercare.is-filled .fm-aftercare-segment:nth-of-type(7) { animation-delay: calc(var(--aftercare-step-delay) * 6); }
.fm-aftercare.is-filled .fm-aftercare-segment:nth-of-type(8) { animation-delay: calc(var(--aftercare-step-delay) * 7); }
.fm-aftercare.is-filled .fm-aftercare-segment:nth-of-type(9) { animation-delay: calc(var(--aftercare-step-delay) * 8); }
.fm-aftercare.is-filled .fm-aftercare-segment:nth-of-type(10) { animation-delay: calc(var(--aftercare-step-delay) * 9); }
.fm-aftercare.is-filled .fm-aftercare-segment:nth-of-type(11) { animation-delay: calc(var(--aftercare-step-delay) * 10); }
.fm-aftercare.is-filled .fm-aftercare-segment:nth-of-type(12) { animation-delay: calc(var(--aftercare-step-delay) * 11); }

/* TopicTiles: Card/FeatureTile-Bildform, ProcedureTeaser als ganzer Link. */
.fm-topic-grid { display: grid; gap: var(--space-2); grid-template-columns: repeat(2, minmax(0, 1fr)); }
.fm-topic-card { display: flex; flex-direction: column; color: inherit; text-decoration: none; min-inline-size: 0; background: var(--bk-card); border-radius: var(--radius-lg); box-shadow: var(--bk-shadow); transition: transform var(--duration-hover) var(--ease-out), box-shadow var(--duration-hover) var(--ease-out); }
.fm-topic-photo { margin: 0; }
.fm-topic-image { display: block; overflow: hidden; border-radius: var(--radius-lg) var(--radius-lg) 0 0; }
.fm-topic-photo img { inline-size: 100%; aspect-ratio: var(--topic-ratio); object-fit: cover; }
.fm-topic-copy { display: flex; flex-direction: column; flex: 1; gap: var(--stack-card); padding: var(--card-pad); }
.fm-topic-copy .fm-text-link { margin-block-start: auto; align-self: flex-start; white-space: normal; overflow-wrap: anywhere; text-decoration: underline; text-decoration-color: var(--bk-link); text-underline-offset: var(--link-offset); }
.fm-topic-copy h3 > .fm-icon { display: none; }
@media (min-width: 48em) { .fm-topic-grid { gap: var(--grid-gap); } .fm-topic-copy { padding: var(--space-3); } }
@media (min-width: 64em) { .fm-topic-grid { grid-template-columns: repeat(var(--topic-columns), minmax(0, 1fr)); } }
@media (max-width: 47.999em) {
  .fm-topic-copy { padding: var(--space-2) var(--space-1); }
  .fm-topic-copy > p, .fm-topic-copy > .fm-text-link { display: none; }
  .fm-topic-copy h3 { font-size: var(--small-size); line-height: var(--small-line); text-wrap: initial; }
  .fm-topic-copy h3 > .fm-icon { display: inline-block; inline-size: var(--icon-tiny); block-size: var(--icon-tiny); margin-inline-start: var(--space-1); vertical-align: middle; }
}

/* Inhaltsseiten aus VerfahrenPage: vollständige Texte, reduzierte belegte Schemata. */
.fm-hero-content { min-block-size: calc(100vh - var(--header-height) - var(--breadcrumb-height)); min-block-size: calc(100svh - var(--header-height) - var(--breadcrumb-height)); }
.fm-hero-content .fm-hero-copy { gap: var(--space-2); }
.fm-hero-content .fm-hero-photo { grid-row: auto; }
.fm-content-trust { display: grid; gap: var(--space-1); font: var(--small-weight) var(--small-size)/var(--small-line) var(--font-family); }
.fm-content-trust li { display: flex; gap: var(--space-1); align-items: center; }
.fm-content-trust .fm-icon { inline-size: var(--icon-small); block-size: var(--icon-small); }
.fm-anchor-links { display: flex; flex-wrap: wrap; gap: 0 var(--space-2); font-size: var(--small-size); }
.fm-anchor-links a { display: inline-flex; align-items: center; min-block-size: var(--touch); }
.fm-related-links { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-3); margin-block-start: var(--space-4); }
.fm-timeline-intro { margin-block-end: var(--stack-head); }
.fm-procedure-explanation { display: grid; gap: var(--stack-block); align-items: center; }
.fm-procedure-copy-steps { display: grid; gap: var(--space-3); }
.fm-procedure-copy-steps p { margin-block-start: var(--space-1); }
.fm-procedure-principle { background: var(--grad-sand); inline-size: 100%; padding: var(--space-2); }
.fm-procedure-principle .fm-procedure-steps { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
[data-tone='dark'] .fm-procedure-principle { background: var(--bk-card); }
.fm-procedure-principle.fm-procedure-schema--compact { padding: 0; background: none; }
@media (min-width: 48em) {
  .fm-procedure-explanation { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 47.999em) and (max-height: 45em) {
  :is(.fm-hero-content, .fm-hero--landing) { padding-block: var(--space-1); }
  :is(.fm-hero-content, .fm-hero--landing) .fm-hero-copy { gap: var(--space-1); }
  :is(.fm-hero-content, .fm-hero--landing) .fm-lead { margin-block-start: var(--space-1); font-size: var(--body-size); line-height: var(--lead-line); }
  .fm-hero--landing .fm-hero-grid { gap: var(--space-1); }
  .fm-hero--landing .fm-hero-photo img { block-size: var(--hero-landing-photo-min); }
}

/* Abschnitt 3: gleicher Vergleichsdatensatz und vollständig lesbare Belege. */
.fm-comparison-intro { margin-block-end: var(--stack-block); }
.fm-comparison-figure { display: grid; gap: var(--stack-card); }
.fm-comparison-data { grid-column: 1 / -1; min-inline-size: 0; margin-block-start: calc(var(--section-pad) - var(--grid-gap)); }
.fm-compare-table { table-layout: fixed; }
.fm-compare-table :is(th, td) { overflow-wrap: anywhere; }
.fm-invoice { margin-inline: 0; min-inline-size: 0; }
.fm-invoice--complete { max-inline-size: 100%; }
.fm-invoice header { break-after: avoid; }
.fm-invoice header .fm-icon { flex: none; }
.fm-invoice-meta, .fm-invoice-part, .fm-invoice-scope { display: grid; gap: var(--stack-card); min-inline-size: 0; }
.fm-invoice-meta > div { display: grid; gap: var(--stack-eyebrow); }
.fm-invoice-meta dt { font-size: var(--small-size); font-weight: var(--weight-medium); }
.fm-invoice-meta dd { margin: 0; overflow-wrap: anywhere; }
.fm-invoice-scope ul { list-style: disc; padding-inline-start: var(--grid-gap); }
.fm-invoice-table { table-layout: fixed; }
.fm-invoice-table :is(th, td) { overflow-wrap: anywhere; border-block-start-style: dashed; }
.fm-invoice-table thead th, .fm-invoice-table caption { font-size: var(--small-size); }
.fm-invoice-notice { break-before: avoid; }
@media (max-width: 47.999em) {
  .fm-compare-table thead, .fm-compare-table caption, .fm-invoice-table thead { display: table-header-group; position: absolute; inline-size: var(--hairline); block-size: var(--hairline); overflow: hidden; clip-path: inset(50%); }
  .fm-compare-table caption { display: block; }
  .fm-invoice { padding: var(--stack-card); }
  .fm-invoice-total { flex-wrap: wrap; }
  .fm-invoice-table, .fm-invoice-table :is(tbody, tr, th, td) { display: block; inline-size: 100%; }
  .fm-invoice-table tr { padding-block: var(--stack-card); border-block-start: var(--hairline) dashed var(--bk-line); }
  .fm-invoice-table :is(th, td) { padding: var(--stack-eyebrow) 0; border: 0; text-align: left !important; }
  .fm-invoice-table .fm-cell-label { display: block; }
}
@media print {
  .fm-invoice { box-shadow: none; border-radius: 0; padding: 0; }
  .fm-invoice-table tr, .fm-invoice-meta > div, .fm-invoice-total, .fm-invoice-notice { break-inside: avoid; }
  .fm-invoice-part, .fm-invoice header, .fm-invoice-meta { break-after: avoid; }
  .fm-invoice-table thead { display: table-header-group; }
}

/* Gemeinsame Buchung: Form B, Espresso, Entscheidung vom 24.09.2026. */
[data-tone='light'] { --booking-note-ink: var(--ink-muted); --booking-background: var(--surface-dark); --booking-ink: var(--booking-light-ink); --booking-hover-background: color-mix(in srgb, var(--booking-background), var(--ink-strong) var(--booking-hover-mix)); }
[data-surface='sand'], [data-surface='warm'], [data-surface='mist'],
.fm-hero, .fm-conversation:not([data-tone]) { --booking-note-ink: var(--earth-700); }
[data-tone='dark'] { --booking-note-ink: var(--on-dark-muted); --booking-background: var(--booking-inverse-background); --booking-ink: var(--booking-inverse-ink); --booking-hover-background: var(--booking-inverse-hover); }
.fm-booking { display: grid; justify-items: start; gap: var(--space-1); container-type: inline-size; inline-size: 100%; max-inline-size: var(--booking-max); }
.fm-booking--compact { container-type: normal; inline-size: max-content; max-inline-size: 100%; }
.fm-header-booking { flex: none; }
.fm-btn.fm-btn--booking { justify-content: center; max-inline-size: 100%; min-block-size: var(--booking-height); gap: var(--space-1); padding: var(--space-1) var(--space-2); border-radius: var(--radius-pill); background: var(--booking-background); color: var(--booking-ink); font: var(--booking-weight) var(--button-size)/var(--button-line) var(--font-family); text-align: left; box-shadow: none; }
.fm-btn.fm-btn--booking:hover { background: var(--booking-hover-background); color: var(--booking-ink); }
.fm-btn.fm-btn--booking:focus-visible { box-shadow: var(--focus-ring); }
.fm-btn--booking > .fm-icon { inline-size: var(--icon-small); block-size: var(--icon-small); color: currentColor; transition: transform var(--duration-accordion) var(--ease-out); }
.fm-btn--booking:hover > .fm-icon { transform: translateX(var(--booking-arrow-shift)); }
.fm-booking-label { white-space: nowrap; }
.fm-booking-subline { display: block; margin: 0; font: var(--caption-weight) var(--caption-size)/var(--caption-line) var(--font-family); color: var(--booking-note-ink); }
.fm-mobile-booking .fm-booking { margin-inline: auto; justify-items: center; }
@container (max-width: 25em) {
  .fm-btn.fm-btn--booking { font-size: var(--small-size); }
}
@container (max-width: 20em) {
  .fm-mobile-booking .fm-booking-subline { display: none; }
}
@media (max-width: 47.999em) {
  .fm-btn.fm-btn--booking { inline-size: 100%; font-size: var(--small-size); }
  .fm-booking { justify-items: center; }
}
@media (max-width: 47.999em) and (max-height: 45em) {
  .fm-mobile-booking .fm-booking-subline { display: none; }
}
/* In schmalen Kacheln nutzt nur die Pille etwas von deren seitlichem Innenraum. */
@container (max-width: 18em) {
  .fm-btn.fm-btn--booking { inline-size: max-content; min-inline-size: 100%; max-inline-size: none; justify-self: center; padding-inline: var(--space-1); }
}
@media (prefers-reduced-motion: reduce) {
  .fm-btn--booking > .fm-icon { transition: none; }
  .fm-btn--booking:hover > .fm-icon { transform: none; }
}

/* Kontakt ohne Ortsfoto: offene Lesespalte, keine leere Bildhälfte. */
.fm-location-block--text { display: block; overflow: visible; background: none; border-radius: 0; }
.fm-location-block--text .fm-location-copy { padding: 0; max-inline-size: var(--measure); }

/* Ratgeber und Glossar: dieselbe linke Kante, ruhige Lesespalte. */
.fm-article, .fm-term-head { display: grid; gap: var(--stack-head); }
.fm-article .fm-section-head + div { margin: 0; }
.fm-article-section { max-inline-size: var(--measure); }
.fm-article-list { list-style: disc; padding-inline-start: var(--space-3); display: grid; gap: var(--stack-card); max-inline-size: var(--measure); }
.fm-term-head { gap: var(--stack-card); }
.fm-term-head .fm-section-head + div { margin: 0; }
.fm-term-definition { padding: var(--card-pad); background: var(--sand-100); color: var(--ink); border-radius: var(--radius-lg); }
[data-tone='dark'] .fm-term-definition { background: var(--glass-dark); color: var(--on-dark); }
.fm-term-related { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.fm-term-related a { display: inline-flex; align-items: center; min-block-size: var(--touch); padding: var(--space-1) var(--space-2); border-radius: var(--radius-pill); background: var(--bk-card); }
.fm-glossary { display: grid; gap: var(--stack-head); }
.fm-glossary .fm-section-head + div { margin: 0; }
.fm-glossary-search { display: grid; gap: var(--space-1); max-inline-size: var(--measure); }
.fm-glossary-search input { inline-size: 100%; min-inline-size: 0; min-block-size: var(--control-md); padding: var(--space-1) var(--space-3); border: var(--hairline) solid var(--bk-line); border-radius: var(--radius-pill); font: inherit; color: inherit; background: var(--bk-card); }
.fm-glossary-search input::placeholder { color: var(--bk-muted); opacity: 1; }
.fm-glossary-search input:focus { outline: var(--focus-width) solid currentColor; outline-offset: var(--focus-offset); }
.fm-glossary-alphabet { display: flex; flex-wrap: wrap; gap: var(--space-1); }
.fm-glossary-alphabet > * { display: grid; place-items: center; min-inline-size: var(--touch); min-block-size: var(--touch); border-radius: var(--radius-pill); background: var(--bk-card); }
.fm-glossary-alphabet [aria-disabled='true'] { color: var(--bk-muted); background: transparent; text-decoration: none; }
.fm-glossary-results { display: grid; gap: var(--stack-head); }
.fm-glossary-group { display: grid; gap: var(--stack-card); }
.fm-glossary-group > h3 { font: var(--headline-weight) var(--headline-size)/var(--headline-line) var(--font-family); }
.fm-glossary-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--card-min)), 1fr)); gap: var(--grid-gap); }
.fm-glossary-card { block-size: 100%; text-decoration: none; box-shadow: none; }
.fm-glossary-card :is(h4, .fm-glossary-title) { margin: 0; font: var(--title-weight) var(--title-size)/var(--title-line) var(--font-family); letter-spacing: var(--title-tracking); text-decoration: underline; text-decoration-color: var(--bk-link); text-underline-offset: var(--link-offset); }
.fm-glossary-card:not([href]) :is(h4, .fm-glossary-title) { text-decoration: none; }
.fm-glossary-card .fm-icon-circle { inline-size: var(--icon-circle-trust); block-size: var(--icon-circle-trust); }
.fm-glossary-card .fm-icon { inline-size: var(--icon-size); block-size: var(--icon-size); }
.fm-glossary-link { display: inline; }
@media print {
  .fm-glossary-search, .fm-glossary-alphabet, [data-fm-glossary-empty] { display: none !important; }
  [data-fm-glossary-group][hidden] { display: grid !important; }
  [data-fm-glossary-entry][hidden] { display: list-item !important; }
  .fm-term-definition, .fm-glossary-card { break-inside: avoid; }
}

/* Schrittstrecke: eine Frage, volle Inhaltsbreite, gemeinsame Aktionszeile. */
.fm-sr-only { position: absolute; inline-size: var(--hairline); block-size: var(--hairline); overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.fm-section:has(.fm-step-flow) { padding-block: var(--space-4); }
.fm-appointment, .fm-appointment form, .fm-step-flow, .fm-step-content { min-inline-size: 0; inline-size: 100%; }
.fm-appointment fieldset { border: 0; padding: 0; margin: 0; min-inline-size: 0; }
.fm-appointment legend { padding: 0; margin-block-end: var(--space-2); }
.fm-step-flow { display: flex; flex-direction: column; gap: var(--space-4); }
.fm-step-progress { display: grid; gap: var(--space-2); font-size: var(--small-size); }
.fm-step-progress ol { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-1); list-style: none; margin: 0; padding: 0; }
.fm-step-progress li { block-size: var(--step-progress-height); background: var(--sand-200); border-radius: var(--radius-pill); }
.fm-step-progress li:is([aria-current='step'], [data-complete='true']) { background: var(--earth-700); }
.fm-step-flow h2 { scroll-margin-block-start: var(--anchor-offset); margin: 0; font: var(--headline-weight) var(--section-heading-size)/var(--section-heading-line) var(--font-family); letter-spacing: var(--headline-tracking); }
.fm-step-flow [data-fm-step-heading][tabindex='-1']:focus { outline: none; }
.fm-step-content { flex: none; }
.fm-form-stack { display: grid; gap: var(--space-3); min-inline-size: 0; }
.fm-contact-fields { display: grid; gap: var(--space-3); }
.fm-answer-card { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: var(--space-2); min-inline-size: 0; min-block-size: var(--step-card-height); padding: var(--space-3); border: 0; border-radius: var(--radius-md); background: var(--grad-sand-diagonal); color: var(--ink); box-shadow: var(--card-action-shadow); font: inherit; text-align: start; cursor: pointer; }
.fm-answer-card:hover { box-shadow: var(--card-action-hover-shadow); }
.fm-answer-card[aria-pressed='true'], .fm-calendar-day[aria-pressed='true'] { background: var(--surface-dark); color: var(--on-dark); }
.fm-answer-card .fm-icon { color: currentColor; }
.fm-field { display: grid; gap: var(--space-1); min-inline-size: 0; }
.fm-field :is(input, select, textarea) { inline-size: 100%; min-inline-size: 0; min-block-size: var(--control-md); padding: var(--space-1) var(--space-2); border: var(--hairline) solid var(--bk-line); border-radius: var(--radius-sm); background: var(--bk-secondary); color: var(--bk-secondary-ink); font: inherit; }
.fm-field textarea { resize: vertical; }
.fm-field-error { color: var(--terra-700); }
.fm-field [aria-invalid='true'] { border-color: var(--terra-700); }
.fm-preview-calendar { display: grid; gap: var(--space-1); }
.fm-calendar-heading { display: flex; align-items: center; justify-content: space-between; gap: var(--space-1); margin-block-end: var(--space-2); }
.fm-calendar-heading p { text-align: center; }
.fm-calendar-nav { display: grid; place-items: center; flex: none; border: 0; border-radius: var(--radius-pill); inline-size: var(--touch); block-size: var(--touch); background: var(--bk-secondary); color: var(--bk-secondary-ink); cursor: pointer; }
.fm-calendar-nav .fm-icon[data-direction='left'] { transform: rotate(180deg); }
.fm-calendar-nav:disabled { opacity: var(--bk-photo-opacity); cursor: default; }
.fm-calendar-weekdays, .fm-calendar-days { display: grid; grid-template-columns: repeat(var(--calendar-columns), minmax(0, 1fr)); gap: var(--space-1); text-align: center; }
.fm-calendar-weekdays { font-size: var(--small-size); margin-block-end: var(--space-1); }
.fm-calendar-day { min-inline-size: 0; min-block-size: var(--touch); padding: 0; border: 0; border-radius: var(--radius-sm); background: var(--sand-100); color: var(--ink); box-shadow: var(--card-action-shadow); font: inherit; cursor: pointer; }
.fm-calendar-day:disabled { background: transparent; color: var(--bk-muted); box-shadow: none; cursor: default; }
.fm-calendar-day:not(:disabled):hover { box-shadow: var(--card-action-hover-shadow); }
.fm-time-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-2); }
.fm-time-options .fm-answer-card { min-block-size: var(--control-lg); flex-direction: row; align-items: center; justify-content: space-between; padding: var(--space-2); }
.fm-step-actions { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-2); align-items: center; padding-block: var(--space-2); background: var(--surface); }
.fm-step-back { justify-self: start; min-block-size: var(--touch); border: 0; padding: 0; background: none; color: inherit; text-decoration: underline; text-underline-offset: var(--space-1); font: inherit; cursor: pointer; }
.fm-step-back:disabled { visibility: hidden; }
.fm-step-actions .fm-btn { inline-size: 100%; max-inline-size: 100%; white-space: normal; background: var(--booking-background); color: var(--booking-ink); border-radius: var(--radius-pill); padding: var(--space-2) var(--space-3); min-block-size: var(--control-lg); font: var(--booking-weight) var(--button-size)/var(--button-line) var(--font-family); }
.fm-step-actions .fm-btn .fm-icon { color: currentColor; inline-size: var(--icon-small); block-size: var(--icon-small); }
.fm-step-actions .fm-btn:hover { background: var(--booking-hover-background); }
.fm-step-summary { margin: 0; }
.fm-step-summary > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--space-1) var(--space-2); padding-block: var(--space-3); border-block-end: var(--hairline) solid var(--bk-line); }
.fm-step-summary dt { grid-column: 1 / -1; }
.fm-step-summary dd { margin: 0; overflow-wrap: anywhere; white-space: pre-wrap; }
.fm-step-summary a { display: inline-flex; align-items: center; min-block-size: var(--touch); }
.fm-appointment [hidden] { display: none !important; }
.fm-answer-card:focus-visible, .fm-calendar-day:focus-visible { outline: var(--focus-width) solid var(--earth-700); outline-offset: var(--focus-offset); }
[data-tone='dark'] .fm-step-actions { background: var(--surface-dark); }
[data-tone='dark'] .fm-answer-card { background: var(--surface); color: var(--ink); }
[data-tone='dark'] .fm-answer-card[aria-pressed='true'] { background: var(--sand-200); color: var(--ink-strong); }
.fm-action-confirmation { display: grid; grid-template-columns: minmax(0, 1fr); inline-size: 100%; min-inline-size: 0; gap: var(--space-3); }
.fm-action-confirmation > * { min-inline-size: 0; grid-column: 1 / -1; }
.fm-action-confirmation > .fm-section-head { max-inline-size: none; }
.fm-action-confirmation .fm-section-head h1 { font: var(--headline-weight) var(--section-heading-size)/var(--section-heading-line) var(--font-family); }
.fm-confirmation-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--grid-gap); }
@media (min-width: 48em) { .fm-confirmation-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.fm-confirmation-section { color: var(--ink); min-inline-size: 0; padding: var(--card-padding); border: var(--hairline) solid var(--line-soft); border-radius: var(--radius-md); background: var(--grad-sand); box-shadow: var(--card-action-shadow); }
.fm-confirmation-section > h2 { font: var(--title-weight) var(--title-size)/var(--title-line) var(--font-family); }
.fm-confirmation-links a { min-block-size: var(--touch); display: inline-flex; align-items: center; }
.fm-confirmation-links { display: flex; flex-wrap: wrap; gap: var(--space-3); }
@media (min-width: 48em) {
  .fm-contact-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fm-time-options { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .fm-step-actions { grid-template-columns: auto auto; justify-content: start; }
  .fm-step-actions .fm-btn { inline-size: auto; justify-self: start; }
  .fm-step-summary > div { grid-template-columns: minmax(0, 1fr) minmax(0, 3fr) auto; gap: var(--space-3); }
  .fm-step-summary dt { grid-column: auto; }
}

/* Runde 2: aus Card, TeamGrid, Quote, Badge und ProcedureTeaser. */
.fm-image-placeholder { inline-size: 100%; display: grid; place-items: center; padding: var(--space-3); background: var(--bk-circle, var(--grad-sand)); color: inherit; border-radius: var(--radius-md); overflow-wrap: anywhere; }
.fm-image-placeholder p { font: var(--small-weight) var(--small-size)/var(--small-line) var(--font-family); max-inline-size: var(--placeholder-measure); text-align: center; }
.fm-image-placeholder--portrait { aspect-ratio: var(--ratio-portrait); }
.fm-image-placeholder--landscape { aspect-ratio: var(--ratio-image); }
.fm-image-placeholder--square { aspect-ratio: var(--ratio-square); }
.fm-hero-photo .fm-image-placeholder { block-size: var(--hero-mobile-photo); aspect-ratio: auto; padding: var(--space-2); }
.fm-topic-image .fm-image-placeholder { border-radius: 0; }
.fm-provider-badge { display: inline-flex; align-items: center; align-self: flex-start; max-inline-size: 100%; padding: var(--space-1) var(--space-2); border-radius: var(--radius-pill); background: var(--sand-100); color: var(--ink); font: var(--small-weight) var(--small-size)/var(--small-line) var(--font-family); }
[data-tone='dark'] .fm-provider-badge { background: var(--bk-circle); color: var(--bk-muted); }
.fm-recognition-quotes { display: grid; gap: var(--space-5); max-inline-size: var(--content-narrow); }
.fm-recognition-quotes p { font: var(--headline-mobile-weight) var(--recognition-quote-size)/var(--headline-mobile-line) var(--font-family); letter-spacing: var(--headline-tracking); text-wrap: pretty; }
.fm-recognition-afterword { margin-block-start: var(--stack-head); color: var(--bk-muted); }
.fm-founder-motto { font: var(--lead-weight) var(--lead-size)/var(--lead-line) var(--font-family); }
.fm-service-overview { display: grid; gap: var(--stack-block); margin-block-start: var(--stack-head); }
.fm-service-column, .fm-service-list { display: grid; align-content: start; min-inline-size: 0; }
.fm-service-column { gap: var(--grid-gap); }
.fm-service-column > h3 { font: var(--headline-mobile-weight) var(--headline-mobile-size)/var(--headline-mobile-line) var(--font-family); }
.fm-service-list { gap: var(--card-gap); }
.fm-service-list > li { display: flex; min-inline-size: 0; }
.fm-service-row { display: flex; flex-direction: column; inline-size: 100%; gap: var(--stack-card); padding: var(--card-pad); border-radius: var(--radius-md); background: var(--bk-card); color: inherit; text-decoration: none; }
.fm-service-heading { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-1) var(--space-2); }
.fm-service-heading :is(h3, h4) { margin: 0; font: var(--title-weight) var(--title-size)/var(--title-line) var(--font-family); letter-spacing: var(--title-tracking); overflow-wrap: anywhere; }
a.fm-service-row :is(h3, h4) { text-decoration: underline; text-decoration-color: var(--bk-link); text-underline-offset: var(--link-offset); }
.fm-service-row p { margin: 0; }
.fm-service-row > .fm-text-link { margin-block-start: auto; align-self: start; }
.fm-team-grid figure { min-inline-size: 0; }
.fm-team-grid figcaption { display: grid; gap: var(--space-1); }
.fm-topic-grid { margin-block-start: var(--stack-head); }
/* Menüs bleiben linksbündig; nur die erste Liste ist ein Desktop-Dropdown. */
@media (min-width: 48em) {
  .fm-hero-photo .fm-image-placeholder { block-size: min(var(--hero-desktop-photo), var(--hero-viewport-photo)); }
  .fm-recognition-quotes p { font-size: var(--recognition-quote-size); line-height: var(--headline-line); }
  .fm-service-overview { grid-template-columns: minmax(0, 1fr); }
  .fm-service-list { grid-template-columns: repeat(var(--service-columns), minmax(0, 1fr)); }
  .fm-service-overview:has(> :only-child) { grid-template-columns: 1fr; }
  .fm-timeline--2, .fm-timeline--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fm-timeline--2 .fm-timeline-line, .fm-timeline--4 .fm-timeline-line { display: none; }
}
.fm-placeholder-samples { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--bk-grid-min)), 1fr)); gap: var(--grid-gap); align-items: start; }
.fm-provider-samples { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.fm-page-section { display: grid; gap: var(--stack-block); align-items: center; }
.fm-page-section img { inline-size: 100%; border-radius: var(--radius-md); }
@media (min-width: 48em) { .fm-page-section--media { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.fm-founder--text { grid-template-columns: minmax(0, 1fr); }
@media (max-width: 47.99em) { .fm-topic-image .fm-image-placeholder { padding: var(--space-1); } }

/* R3-8: gleich breite Karten ohne einzelne Restkarte; Lesekarten zeigen ihren Text. */
.fm-topic-grid[data-text-only] { grid-template-columns: minmax(0, 1fr); }
.fm-topic-grid[data-text-only] .fm-topic-copy p { display: block; }
.fm-topic-grid[data-text-only] .fm-topic-copy { padding: var(--space-3); }
@media (min-width: 48em) {
  .fm-topic-grid[data-text-only] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 64em) {
  .fm-topic-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 47.9375em) {
  .fm-breadcrumb ol { flex-wrap: nowrap; }
  .fm-breadcrumb li { flex-wrap: nowrap; min-inline-size: 0; }
  .fm-breadcrumb li:not(:last-child):not(:nth-last-child(2)) { display: none; }
  .fm-breadcrumb li:nth-last-child(2) { flex: 0 1 auto; max-inline-size: 45%; }
  .fm-breadcrumb li:last-child { flex: 1; }
  .fm-breadcrumb :is(a, [aria-current="page"]) { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-block-size: var(--touch); align-content: center; }
  .fm-breadcrumb .fm-icon { flex: none; }
  .fm-topic-grid[data-text-only] .fm-topic-copy h3 { font-size: var(--title-size); }
}
@media (prefers-reduced-motion: reduce) {
  .fm-header, .fm-header-row { transition: none; }
}
/* Lange Fragen bleiben auch bei 320 px innerhalb des Inhaltsrasters. */
.fm-faq-layout > *, .fm-faq, .fm-faq-button > span { min-inline-size: 0; }
.fm-faq-button { overflow-wrap: anywhere; }

/* Die dauerhaft sichtbare Mobilbuchung darf die letzten Footerlinks nicht verdecken. */
@media (max-width: 47.999em) {
  .fm-baukasten:has(> [data-fm-mobile-booking]) { padding-block-end: var(--booking-clearance); }
}



/* Innerhalb der schmaleren Footer-Kontaktkarte darf auch die Buchung umbrechen. */
.fm-footer-booking .fm-btn.fm-btn--booking { inline-size: 100%; min-inline-size: 0; max-inline-size: 100%; }
.fm-footer-booking .fm-booking-label { white-space: normal; }
