/* Textmodule Runde 3. Ergänzt baukasten.css; Umkehrung und Skalen bleiben zentral.
   Ableitung: SectionHeader, PrinciplesList, Quote, ScopeList, FAQ und CtaBand. */
.fm-module, .fm-module-article { min-inline-size: 0; overflow-wrap: anywhere; }
.fm-module :is(.fm-container, .fm-module-copy, .fm-module-intro, .fm-module-columns > div, .fm-module-evidence > li > div) { min-inline-size: 0; }
.fm-module :is(.fm-section-head, .fm-prose) { max-inline-size: var(--measure); }
.fm-module-intro { display: grid; gap: var(--stack-lead); }
.fm-module-intro > .fm-prose { margin: 0; }
.fm-module-intro + :is(ul, ol, dl, .fm-module-columns) { margin-block-start: var(--stack-head); }
.fm-module-link { margin-block-start: var(--stack-prose); }
.fm-module-link .fm-text-link { max-inline-size: 100%; }
.fm-module-split, .fm-module-media, .fm-module-columns { display: grid; gap: var(--stack-block); align-items: start; }
.fm-module-split > .fm-module-copy { margin-block-start: 0; }
.fm-module-media-image { min-inline-size: 0; overflow: hidden; border-radius: var(--radius-md); }
.fm-module-media-image :is(img, .fm-image-placeholder) { inline-size: 100%; }
.fm-module-media-image img { aspect-ratio: var(--ratio-image); object-fit: cover; }
/* R4: Bildbänder und Bildzitate liegen in der vorhandenen Kapitelfläche. */
.fm-module-imageband, .fm-module-imagequote { display: grid; gap: var(--stack-block); }
.fm-module-imageband figure, .fm-imagequote-stage { margin: 0; overflow: hidden; border-radius: var(--radius-md); }
.fm-module-imageband img { inline-size: 100%; aspect-ratio: var(--ratio-wide); object-fit: cover; }
.fm-module-imageband figcaption { margin-block-start: var(--stack-prose); margin-inline: auto; max-inline-size: var(--measure); text-align: center; font: var(--lead-weight) var(--section-lead-size)/var(--lead-line) var(--font-family); }
.fm-imagequote-stage { display: grid; background: var(--surface-dark); }
.fm-imagequote-stage > img { inline-size: 100%; aspect-ratio: var(--ratio-wide); object-fit: cover; }
.fm-imagequote-stage > figcaption { padding: var(--card-padding); background: var(--surface-dark); color: var(--on-dark); }
.fm-imagequote-stage blockquote { margin: 0; max-inline-size: var(--quote-measure); font: var(--title-weight) clamp(var(--quote-size-min), var(--quote-size-fluid), var(--quote-size-max))/var(--quote-line) var(--font-family); letter-spacing: var(--quote-tracking); }
.fm-imagequote-stage figcaption p { margin-block-start: var(--stack-card); color: var(--on-dark-muted); }
.fm-module-next-step { max-inline-size: var(--centered-heading-measure); margin-inline: auto; }
.fm-page-flow .fm-module-next-step > .fm-module-link { text-align: left; }
@media (min-width: 48em) {
  .fm-imagequote-stage > img, .fm-imagequote-stage > figcaption { grid-area: 1 / 1; }
  .fm-imagequote-stage > figcaption { align-self: end; justify-self: start; margin: var(--card-padding); max-inline-size: var(--measure); }
}
.fm-module-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--bk-grid-min)), 1fr)); gap: var(--card-gap); }
.fm-module-cards > li { min-inline-size: 0; }
.fm-module-cards > .fm-card { border-radius: var(--radius-md); padding: var(--card-padding); }
.fm-module-list { display: grid; gap: var(--list-gap); max-inline-size: var(--measure); }
.fm-module-list > li { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--stack-card); align-items: start; }
.fm-module-columns h3 { margin-block-end: var(--space-3); }
.fm-module-notice { display: grid; gap: var(--space-3); max-inline-size: var(--content-narrow); padding: var(--card-padding); border-radius: var(--radius-md); background: var(--bk-circle); }
.fm-module-notice > div { min-inline-size: 0; }
.fm-module-quote-grid { display: grid; gap: var(--stack-prose); align-items: start; }
.fm-module-quote { padding: var(--card-padding); border-radius: var(--radius-md); background: var(--bk-circle); }
.fm-module-quote blockquote { margin: 0; font: var(--title-weight) clamp(var(--quote-size-min), var(--quote-size-fluid), var(--quote-size-max))/var(--quote-line) var(--font-family); letter-spacing: var(--quote-tracking); max-inline-size: var(--quote-measure); }
.fm-module-quote figcaption { margin-block-start: var(--stack-card); }
.fm-module-band { display: grid; gap: var(--stack-block); align-items: center; }
.fm-module-band > div { min-inline-size: 0; }
.fm-module-band h2 { font: var(--display-mobile-weight) var(--display-mobile-size)/var(--display-mobile-line) var(--font-family); letter-spacing: var(--display-mobile-tracking); }
.fm-module-facts { margin-inline: 0; margin-block-end: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--fact-min)), 1fr)); gap: var(--grid-gap); }
.fm-module-facts > div { min-inline-size: 0; border-block-start: var(--hairline) solid var(--bk-line); padding-block-start: var(--space-3); }
.fm-module-facts dt { font-size: var(--small-size); color: var(--bk-muted); }
.fm-module-facts dd { margin: var(--space-1) 0 0; font: var(--title-weight) var(--title-size)/var(--title-line) var(--font-family); }
.fm-module--summary .fm-section, .fm-module--jump-nav .fm-section, .fm-module--trust-facts .fm-section { padding-block: var(--band-pad); }
.fm-module-summary { border-inline-start: var(--hairline) solid var(--bk-line); padding-inline-start: var(--space-3); max-inline-size: var(--measure); }
.fm-module-summary h2 { margin-block-end: var(--space-2); font: var(--small-weight) var(--small-size)/var(--small-line) var(--font-family); color: var(--bk-muted); letter-spacing: normal; }
.fm-module--faq-groups > .fm-section + .fm-section { padding-block-start: 0; }
.fm-module--faq-groups .fm-faq-answer a { display: inline-flex; align-items: center; min-block-size: var(--touch); }
.fm-module--faq-groups :is(summary, .fm-faq-button) { min-block-size: var(--faq-row-height); padding: var(--faq-row-padding) var(--card-padding); }
.fm-module--faq-groups .fm-faq-answer { padding-inline: var(--card-padding); }
.fm-module-jumps { display: flex; flex-wrap: wrap; gap: var(--space-1) var(--space-3); margin-block-start: var(--space-1); }
.fm-module-jumps li { max-inline-size: 100%; min-inline-size: 0; }
.fm-module-jumps a { display: inline-flex; align-items: center; gap: var(--space-1); min-block-size: var(--touch); max-inline-size: 100%; padding-block: var(--space-1); }
.fm-module-jumps a span:last-child { min-inline-size: 0; }
.fm-module-jumps .fm-icon { inline-size: var(--icon-small); block-size: var(--icon-small); }
.fm-module-trust { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--day-column-min)), 1fr)); gap: var(--space-3); }
.fm-module-trust li { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--space-2); align-items: start; font-size: var(--small-size); }
.fm-module-evidence { display: grid; }
.fm-module-evidence > li { display: grid; gap: var(--space-2); padding-block: var(--space-3); border-block-start: var(--hairline) solid var(--bk-line); }
.fm-module-evidence h3 { margin-block-end: var(--space-1); }
.fm-module-evidence-label { color: var(--bk-muted); }
.fm-module-article { padding: var(--card-padding); border-radius: var(--radius-md); }
.fm-module-article > :last-child { margin-block-start: auto; }
.fm-module-article :is(h2, h3) a { display: inline-flex; align-items: center; min-block-size: var(--touch); }
.fm-module-numbered > li { display: grid; gap: var(--stack-card); align-content: start; padding: var(--card-padding); border-radius: var(--radius-md); background: var(--bk-card); }
.fm-module-number { padding-block-start: var(--space-2); border-block-start: var(--hairline) solid var(--bk-line); color: var(--bk-muted); font: var(--display-weight) var(--headline-size)/var(--headline-line) var(--font-family); }
.fm-module-footnote { margin-block-start: var(--stack-block); border-block-start: var(--hairline) solid var(--bk-line); padding-block-start: var(--space-3); }

/* Katalog ist eine Leseseite. Die Demoabschnitte behalten ihre normale Breite. */
.fm-module-catalog { min-inline-size: 0; }
.fm-module-catalog-head { display: grid; gap: var(--space-3); padding-block: var(--section-pad); }
.fm-module-catalog-head h1 { max-inline-size: var(--hero-measure); }
.fm-module-catalog-index { display: flex; flex-wrap: wrap; gap: var(--space-1) var(--space-3); }
.fm-module-catalog-index li { max-inline-size: 100%; }
.fm-module-catalog-index a { display: inline-flex; align-items: center; min-block-size: var(--touch); }
.fm-module-catalog-entry { padding-block-start: var(--section-pad); border-block-start: var(--hairline) solid var(--bk-line); }
.fm-module-catalog-doc { display: grid; gap: var(--space-3); padding-block-end: var(--space-4); }
.fm-module-catalog-doc dl { margin: 0; display: grid; gap: var(--space-2); }
.fm-module-catalog-doc dt { font-weight: var(--weight-medium); }
.fm-module-catalog-doc dd { margin: 0; max-inline-size: var(--measure); }
.fm-module-catalog-code { margin: 0; max-inline-size: 100%; white-space: pre-wrap; overflow-wrap: anywhere; font: var(--small-weight) var(--small-size)/var(--small-line) var(--font-family); padding: var(--space-3); border-radius: var(--radius-sm); background: var(--surface-soft); }
.fm-module-catalog-code code { font: inherit; }
.fm-module-catalog-sample-label { padding-block: var(--space-2); font-size: var(--small-size); }
.fm-module-catalog-example > .fm-section { padding-block: var(--section-pad); }
.fm-module-catalog-example .fm-module-article { max-inline-size: var(--hero-image-max); }
.fm-module-catalog-rules { display: grid; gap: var(--space-2); list-style: decimal; padding-inline-start: var(--space-3); max-inline-size: var(--measure); }
@media (min-width: 48em) {
  .fm-module-split { grid-template-columns: var(--split-heading-columns); }
  .fm-module-media, .fm-module-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fm-module-media { align-items: center; }
  .fm-module-media[data-image-side='left'] > .fm-module-copy { grid-column: 2; grid-row: 1; }
  .fm-module-media[data-image-side='left'] > .fm-module-media-image { grid-column: 1; grid-row: 1; }
  .fm-module-notice { grid-template-columns: auto minmax(0, 1fr); }
  .fm-module-quote-grid { grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); column-gap: var(--stack-block); }
  .fm-module-quote-start { grid-column: 1; grid-row: 1; }
  .fm-module-quote-end { grid-column: 1; grid-row: 2; }
  .fm-module-quote { grid-column: 2; grid-row: 1 / span 2; }
  .fm-module-band h2 { font: var(--display-weight) var(--display-size)/var(--display-line) var(--font-family); letter-spacing: var(--display-tracking); }
  .fm-module-evidence > li { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: var(--stack-block); }
}
@media (min-width: 75em) {
  .fm-module-band[data-purpose='conversation'] { grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); }
}

/* R3: gemeinsame Montage und redaktionelle Verweise. */
.fm-editorial-byline { display: flex; flex-wrap: wrap; gap: var(--space-3); font-size: var(--small-size); }
.fm-editorial-byline p { margin: 0; }
.fm-editorial-articles, .fm-related-groups { display: grid; grid-template-columns: var(--card-grid-two); gap: var(--space-4); }
.fm-related-groups ul { padding-inline-start: var(--space-3); }
.fm-related-groups li + li { margin-block-start: var(--space-1); }
.fm-related-groups a { overflow-wrap: anywhere; text-underline-offset: var(--link-offset); }
.fm-related-groups :is(h3, h4) { font: var(--title-weight) var(--title-size)/var(--title-line) var(--font-family); }
@media (max-width: 47.9375em) {
  .fm-editorial-articles, .fm-related-groups { grid-template-columns: minmax(0, 1fr); }
}

/* R3-8: Gruppenrhythmus, kompakte Verzeichnisse und vollständige Textbreite. */
.fm-article-directory { display: grid; gap: var(--section-pad); }
.fm-article-group { min-inline-size: 0; }
.fm-editorial-articles:has(> :only-child) { grid-template-columns: minmax(0, 1fr); }
.fm-related-groups a { display: inline-flex; align-items: center; min-block-size: var(--touch); }
.fm-module--invoice-summary .fm-invoice { max-inline-size: none; inline-size: 100%; padding: 0; background: transparent; box-shadow: none; gap: var(--stack-block); }
.fm-invoice-overview { display: grid; gap: var(--space-3); align-content: start; }
.fm-module--invoice-summary .fm-module-columns { gap: var(--space-4); }
.fm-module--invoice-summary .fm-module-columns p { margin-block-end: var(--space-3); }
.fm-team-profiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--card-min)), 1fr)); gap: var(--stack-block); }
.fm-team-profiles article { min-inline-size: 0; border-block-start: var(--hairline) solid var(--bk-line); padding-block-start: var(--space-3); }
.fm-team-profiles article > div { display: grid; gap: var(--space-2); }
.fm-team-profiles figure { margin-block-end: var(--space-3); }
.fm-team-profiles img { inline-size: 100%; aspect-ratio: var(--ratio-image); object-fit: cover; border-radius: var(--radius-md); }
.fm-location-address { display: grid; gap: var(--space-2); margin-block-start: var(--stack-block); }
.fm-glossary--compact .fm-glossary-results { gap: var(--space-3); }
.fm-glossary--compact .fm-glossary-group { padding: var(--space-3); border-radius: var(--radius-md); }
.fm-glossary--compact .fm-glossary-group:nth-child(even) { background: var(--bk-card); }
.fm-glossary--compact .fm-glossary-grid { grid-template-columns: minmax(0, 1fr); gap: var(--space-3) var(--space-4); }
.fm-glossary--compact .fm-glossary-card { display: grid; align-content: start; gap: var(--space-1); min-block-size: var(--touch); padding-block: var(--space-1); color: inherit; }
.fm-glossary--compact .fm-glossary-card p { font-size: var(--small-size); line-height: var(--small-line); }
@media (min-width: 48em) {
  .fm-glossary--compact .fm-glossary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fm-module--invoice-summary .fm-invoice { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); }
  .fm-invoice-overview:only-child { grid-column: 1 / -1; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--stack-block); }
  .fm-invoice-overview:only-child h2 { grid-row: span 2; }
}
@media (min-width: 64em) {
  .fm-glossary--compact .fm-glossary-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (min-width: 64em) {
  .fm-editorial-articles[data-count="3"] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* R4-8: Kapitel tragen die Fläche; Innenabstände bleiben unter der Abschnittstrennung. */
.fm-page-flow { --section-pad: var(--section-inner-max); }
.fm-chapter { --section-divider-color: var(--bk-line); display: grid; gap: var(--flow-gap); padding-block: var(--chapter-pad); min-block-size: var(--chapter-min); align-content: center; }
/* Vor der Einladung bilden beide Kapitelpolster zusammen einen Kapitelabstand. */
.fm-chapter:has(+ .fm-chapter > .fm-flow-item:first-child > [data-section-layout='NextStep']:first-child) { padding-block-end: var(--chapter-transition-pad); }
.fm-chapter + .fm-chapter:has(> .fm-flow-item:first-child > [data-section-layout='NextStep']:first-child) { padding-block-start: var(--chapter-transition-pad); }
.fm-flow-item { min-inline-size: 0; display: grid; gap: var(--bundle-gap); }
.fm-chapter[data-chapter='statement-break'] { background: var(--surface-dark); }
.fm-chapter-statement .fm-container { display: grid; gap: var(--stack-lead); }
.fm-page-flow .fm-chapter-statement .fm-section-head h2 { font: var(--display-weight) var(--composition-statement-size)/var(--display-line) var(--font-family); letter-spacing: var(--display-tracking); max-inline-size: var(--centered-heading-measure); }
.fm-page-flow .fm-section { padding-block: 0; }
.fm-page-flow .fm-section-head h2 { font: var(--display-weight) var(--section-heading-size)/var(--section-heading-line) var(--font-family); letter-spacing: var(--display-tracking); }
.fm-page-flow .fm-recognition-quotes p { font-size: var(--recognition-quote-size); }
.fm-page-flow .fm-section-head--centered { max-inline-size: var(--centered-heading-measure); }
.fm-page-flow .fm-module-split > .fm-section-head:not(.fm-section-head--centered) h2 { font-size: var(--split-heading-size); line-height: var(--split-heading-line); }
.fm-page-flow .fm-section-head .fm-lead, .fm-page-flow .fm-module-intro > .fm-prose > .fm-lead { font-size: var(--section-lead-size); line-height: var(--lead-line); }
.fm-page-flow .fm-section-head .fm-lead { max-inline-size: var(--centered-measure); margin-block-start: var(--section-lead-gap); }
.fm-page-flow .fm-module-intro { gap: var(--section-lead-gap); }
.fm-page-flow .fm-section-head--centered + :is(ul, ol, div) { margin-block-start: var(--centered-head-gap); }
.fm-module-intro--centered { inline-size: 100%; max-inline-size: var(--centered-heading-measure); margin-inline: auto; text-align: center; }
.fm-module-intro--centered .fm-prose { max-inline-size: var(--centered-measure); margin-inline: auto; }
.fm-module-intro--centered + :is(ul, ol, dl, .fm-module-columns) { margin-block-start: var(--centered-head-gap); }
.fm-page-flow .fm-section-head--centered + .fm-prose { max-inline-size: var(--centered-measure); margin-inline: auto; margin-block-start: var(--stack-lead); text-align: center; }
.fm-page-flow .fm-module--checklist .fm-module-split { grid-template-columns: minmax(0, 1fr); gap: var(--stack-block); }
.fm-page-flow .fm-module--checklist .fm-module-copy { max-inline-size: var(--measure); margin-inline: 0; }
.fm-page-flow :is(.fm-module-notice, .fm-module-band) { grid-template-columns: minmax(0, 1fr); justify-items: start; margin-inline: 0; text-align: left; }
/* Der Gesprächszweck darf die zentrierte Seitenfassung nicht in Spalten teilen. */
.fm-page-flow .fm-module-band[data-purpose='conversation'] { grid-template-columns: minmax(0, 1fr); }
.fm-page-flow .fm-module-band > .fm-booking { justify-items: start; }
.fm-page-flow .fm-faq-layout { gap: var(--centered-head-gap); }
.fm-page-flow .fm-faq-layout > .fm-faq { margin-block-start: 0; }
.fm-page-flow .fm-faq, .fm-faq-groups { inline-size: 100%; max-inline-size: var(--content-narrow); margin-inline: auto; }
.fm-faq-groups { display: grid; gap: var(--stack-block); }
.fm-faq-group { min-inline-size: 0; }
.fm-page-flow .fm-faq-group + .fm-faq-group .fm-section-head + .fm-faq { margin-block-start: var(--space-4); }
.fm-page-flow [data-flow-item='further'] .fm-module--related .fm-related-groups { inline-size: 100%; max-inline-size: none; margin-inline: 0; }
.fm-page-flow .fm-sources { margin-inline: auto; }

/* R3b-2: ein Kopf und zusammengehörige Spalten am Seitenende. */
.fm-further-columns { display: grid; inline-size: 100%; max-inline-size: none; grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--further-column-min)), 1fr)); gap: var(--further-gap); align-items: start; }
.fm-further-columns > div { min-inline-size: 0; }
.fm-further-columns .fm-container { padding-inline: 0; max-inline-size: none; }
.fm-further-columns :is(.fm-module-split, .fm-related-groups) { grid-template-columns: minmax(0, 1fr); gap: var(--space-3); }
.fm-further-columns .fm-section-head h3 { font-size: var(--further-head-size); line-height: var(--headline-line); }
.fm-further-columns .fm-section-head + :is(ul, ol, div) { margin-block-start: var(--space-3); }
.fm-further-columns [data-further-wide] { grid-column: 1 / -1; }
.fm-further-columns .fm-sources > li > .fm-prose { min-inline-size: 0; }
.fm-page-flow [data-flow-item='split-group'] { gap: var(--split-group-gap); }
.fm-page-flow :is(.fm-module-summary, .fm-module--jump-nav nav) { inline-size: 100%; max-inline-size: var(--overview-width); margin-inline: auto; padding: var(--overview-pad); border-radius: var(--radius-md); background: var(--bk-card); border: var(--hairline) solid var(--line-soft); box-shadow: var(--card-action-shadow); }
.fm-page-flow :is(.fm-module-summary h2, .fm-module--jump-nav nav > p) { font: var(--title-weight) var(--title-size)/var(--title-line) var(--font-family); color: inherit; }
.fm-page-flow .fm-module-summary p { max-inline-size: var(--measure); }
@media (max-width: 47.999em) {
  .fm-page-flow :is(.fm-module-summary, .fm-module--jump-nav nav) { padding-inline: 0; background: transparent; border: 0; box-shadow: none; }
}
/* Seiten-H1 führt die neue Abschnittsskala; Katalogbeispiele bleiben autonom. */
main:has(.fm-page-flow) > .fm-hero .fm-section-head h1, .fm-page-flow .fm-term-head h1 { font-size: var(--page-hero-size); line-height: var(--hero-line); }

/* R4-8: Zäsuren liegen im Abschnittsabstand, ohne die Karten einzurücken. */
[data-flow-boundary] { position: relative; min-inline-size: 0; }
[data-flow-separator]::before { content: ''; position: absolute; inset-inline: var(--page-gutter); max-inline-size: var(--content-max); margin-inline: auto; inset-block-start: calc(var(--section-divider-offset) * -1); border-block-start: var(--section-divider) solid var(--section-divider-color); }
.fm-page-flow :is(.fm-cta-band-row, .fm-module-next-step, .fm-module-band[data-purpose='conversation']) { padding: var(--card-padding); border-radius: var(--radius-md); background: var(--bk-card); max-inline-size: none; margin-inline: 0; }
.fm-page-flow .fm-cta-band .fm-section { border: 0; }
.fm-page-flow .fm-faq, .fm-page-flow .fm-faq-groups, .fm-page-flow .fm-sources { margin-inline: 0; }

/* R4-9 · Ausschließlich explizite Kompositionen. 4 mobile / 12 Desktop-Spalten.
   Kein 100vw: Ausbrüche orientieren sich an der scrollbarbereinigten Flussbreite. */
[data-compositions], .fm-composition-catalog { container-type: inline-size; }
.fm-composition { min-inline-size: 0; container-type: inline-size; }
.fm-composition .fm-container { display: grid; grid-template-columns: repeat(var(--composition-columns), minmax(0, 1fr)); column-gap: var(--composition-gap); }
.fm-composition .fm-container > * { grid-column: 1 / -1; min-inline-size: 0; }
.fm-composition[data-composition] :is(.fm-section-head, .fm-module-intro, .fm-module-copy, .fm-faq, .fm-faq-groups, .fm-module-notice, .fm-module-next-step, .fm-conversation-photo, .fm-founder-copy) { max-inline-size: none; inline-size: auto; }
.fm-composition .fm-section-head { text-align: left; margin-inline: 0; }
.fm-composition[data-composition] .fm-section-head .fm-lead, .fm-composition[data-composition] .fm-founder-quote { max-inline-size: var(--measure); }
.fm-composition .fm-recognition-quotes, [data-compositions] .fm-module--related .fm-related-groups { max-inline-size: none; }
.fm-composition[data-composition] :is(.fm-prose, p, .fm-module-list) { max-inline-size: min(var(--measure), var(--composition-copy-max)); }
.fm-composition[data-composition] :is(.fm-module-split, .fm-module-media, .fm-founder, .fm-conversation, .fm-location-intro, .fm-faq-layout, .fm-faq-group) { display: grid; grid-template-columns: repeat(var(--composition-columns), minmax(0, 1fr)); gap: var(--stack-head) var(--composition-gap); align-items: start; }
.fm-composition[data-composition] :is(.fm-module-split, .fm-module-media, .fm-founder, .fm-conversation, .fm-location-intro, .fm-faq-layout, .fm-faq-group) > * { grid-column: 1 / -1; grid-row: auto; min-inline-size: 0; margin-block-start: 0; }
.fm-composition .fm-conversation { padding: var(--card-padding); border-radius: var(--radius-md); background: var(--grad-espresso); }
.fm-composition .fm-module-media-image { align-self: stretch; }
.fm-composition .fm-module-media-image img { block-size: 100%; }
/* Ein großer offener Satz, anschließend lesbarer Fließtext. */
[data-composition='statement'] :is(.fm-module-split, .fm-module-notice, .fm-module-next-step, .fm-cta-band-row, .fm-module-band) { display: grid; grid-template-columns: repeat(var(--composition-columns), minmax(0, 1fr)); gap: var(--stack-head) var(--composition-gap); padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
[data-composition='statement'] :is(.fm-module-split, .fm-module-notice, .fm-module-next-step, .fm-cta-band-row, .fm-module-band) > * { grid-column: 1 / -1; }
[data-composition='statement'] .fm-module-notice > .fm-icon-circle { display: none; }
.fm-page-flow .fm-composition[data-composition='statement'] .fm-section-head h2, .fm-composition[data-composition='statement'] .fm-section-head h2, [data-composition='statement'] .fm-cta-band-row > .fm-lead { font: var(--display-weight) var(--composition-statement-size)/var(--display-line) var(--font-family); letter-spacing: var(--display-tracking); }
.fm-page-flow .fm-composition[data-composition='statement'] .fm-section-head h2[data-statement-size='heading'], .fm-composition[data-composition='statement'] .fm-section-head h2[data-statement-size='heading'], [data-composition='statement'] .fm-cta-band-row > .fm-lead[data-statement-size='heading'] { font-size: var(--composition-statement-long-size); line-height: var(--split-heading-line); }
[data-composition='statement'] .fm-module-notice { color: inherit; }
/* Bild bis an beide Außenkanten; Satz und Link bleiben im gemeinsamen Raster. */
.fm-composition[data-composition='bleed'] .fm-container { max-inline-size: none; padding-inline: 0; }
/* Eigene Randspalten statt negativer Grid-Ränder: auch der Scrollbereich
   bleibt innerhalb des Containers, einschließlich klassischer Scrollbalken. */
[data-composition='bleed'] .fm-module-imageband { display: grid; grid-template-columns: var(--composition-edge) minmax(0, 1fr) var(--composition-edge); gap: var(--stack-head) 0; }
[data-composition='bleed'] .fm-module-imageband > * { grid-column: 2; min-inline-size: 0; }
[data-composition='bleed'] .fm-module-imageband figure { grid-column: 1 / -1; margin-inline: 0; border-radius: 0; }
[data-composition='bleed'] .fm-module-imageband img { aspect-ratio: var(--composition-bleed-ratio); border-radius: 0; }
[data-composition='bleed'] .fm-module-imageband figcaption { margin-inline: var(--composition-edge); text-align: left; }
/* Kacheln: Text bleibt auch mobil sichtbar, die gesamte Fläche ist verlinkt. */
[data-composition='bento'] :is(.fm-topic-grid, .fm-service-list) { display: grid; grid-template-columns: repeat(var(--composition-columns), minmax(0, 1fr)); gap: var(--composition-gap); }
[data-composition='bento'] :is(.fm-topic-grid, .fm-service-list) > * { grid-column: 1 / -1; min-inline-size: 0; }
[data-composition='bento'] .fm-service-overview { grid-template-columns: minmax(0, 1fr); gap: var(--stack-block); }
[data-composition='bento'] .fm-topic-copy { padding: var(--card-pad); }
[data-composition='bento'] .fm-topic-copy .fm-text-link { margin-block-start: 0; }
[data-composition='bento'] .fm-topic-copy > :is(p, .fm-text-link) { display: block; }
[data-composition='bento'] .fm-topic-copy h3 { font: var(--title-weight) var(--title-size)/var(--title-line) var(--font-family); }
[data-composition='bento'] .fm-topic-copy h3 > .fm-icon { display: none; }
[data-composition='bento'] .fm-topic-card { box-shadow: none; border-radius: var(--radius-md); }
[data-composition='bento'] .fm-topic-image { border-radius: var(--radius-md) var(--radius-md) 0 0; }
.fm-composition-sticky-media { display: grid; grid-template-columns: repeat(var(--composition-columns), minmax(0, 1fr)); gap: var(--stack-head) var(--composition-gap); }
.fm-composition-sticky-media > * { grid-column: 1 / -1; min-inline-size: 0; }
.fm-composition-sticky-aside { display: grid; gap: var(--stack-head); }
/* Schrittfolge bleibt eine geordnete Liste, liest sich rechts von oben nach unten. */
[data-composition='sticky'] .fm-timeline { grid-template-columns: minmax(0, 1fr); }
[data-composition='sticky'] .fm-timeline > li { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--space-3); }
[data-composition='sticky'] .fm-timeline-track { margin: 0; }
[data-composition='sticky'] .fm-timeline-line { display: none; }
[data-composition='sticky'] .fm-team-profiles { grid-template-columns: minmax(0, 1fr); }
[data-composition='sticky'] .fm-module-cards { grid-template-columns: minmax(0, 1fr); }
[data-composition='sticky'] .fm-module-cards > .fm-card { padding: 0; background: transparent; box-shadow: none; }
[data-compositions] :is(.fm-module-summary, .fm-module--jump-nav nav, .fm-further-columns, .fm-sources) { max-inline-size: none; }
@media (min-width: 48em) {
  .fm-composition[data-composition] :is(.fm-module-split, .fm-module-media, .fm-founder, .fm-conversation, .fm-location-intro, .fm-faq-layout, .fm-faq-group) > :first-child { grid-column: 1 / span 6; }
  .fm-composition[data-composition] :is(.fm-module-split, .fm-module-media, .fm-founder, .fm-conversation, .fm-location-intro, .fm-faq-layout, .fm-faq-group) > :nth-child(2) { grid-column: 7 / span 6; }
  .fm-composition .fm-module-media[data-image-side='left'] > .fm-module-copy, .fm-composition[data-composition] :is(.fm-founder, .fm-conversation).fm-image-left > :first-child { grid-column: 7 / span 6; grid-row: 1; }
  .fm-composition .fm-module-media[data-image-side='left'] > .fm-module-media-image, .fm-composition[data-composition] :is(.fm-founder, .fm-conversation).fm-image-left > :nth-child(2) { grid-column: 1 / span 6; grid-row: 1; }
  [data-composition='statement'] :is(.fm-module-split, .fm-module-notice, .fm-module-next-step, .fm-cta-band-row, .fm-module-band) > *, [data-composition='statement'] .fm-module-split > :first-child, [data-composition='statement'] .fm-module-split > :nth-child(2) { grid-column: 1 / span 10; }
  [data-composition='bento'] :is(.fm-topic-grid, .fm-service-list) > * { grid-column: span 4; }
  [data-composition='bento'] .fm-topic-grid[data-count='3'] .fm-topic-photo { flex: none; }
  [data-composition='bento'] .fm-topic-grid[data-count='3'] .fm-topic-photo img { block-size: auto; aspect-ratio: var(--composition-bento-ratio); }
  [data-composition='sticky'] :is(.fm-module-split, .fm-faq-layout, .fm-faq-group) > :first-child { grid-column: 1 / span 5; position: sticky; inset-block-start: var(--composition-sticky-top); align-self: start; }
  [data-composition='sticky'] :is(.fm-module-split, .fm-faq-layout, .fm-faq-group) > :nth-child(2) { grid-column: 6 / span 7; }
  [data-composition='sticky'] .fm-container:has(> .fm-timeline, > .fm-module-cards, > .fm-module-columns, > .fm-team-profiles) > :is(.fm-section-head, .fm-module-intro) { grid-column: 1 / span 5; grid-row: 1 / span 3; position: sticky; inset-block-start: var(--composition-sticky-top); align-self: start; }
  [data-composition='sticky'] .fm-container:has(> .fm-timeline, > .fm-module-cards, > .fm-module-columns, > .fm-team-profiles) > :not(.fm-section-head, .fm-module-intro) { grid-column: 6 / span 7; margin-block-start: 0; }
  .fm-composition-sticky-media > .fm-composition-sticky-aside { grid-column: 1 / span 5; position: sticky; inset-block-start: var(--composition-sticky-top); align-self: start; }
  .fm-composition-sticky-media > .fm-module-copy { grid-column: 6 / span 7; }
  [data-composition='sticky'] .fm-module-columns { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 47.999em) {
  .fm-composition[data-composition] :is(.fm-module-media[data-image-side], .fm-founder.fm-image-left, .fm-conversation.fm-image-left) > * { grid-column: 1 / -1; grid-row: auto; }
  .fm-composition[data-composition] :is(.fm-module-columns, .fm-locations, .fm-conversation-points) { grid-template-columns: minmax(0, 1fr); }
}

/* R4-Hotfix / Regel 17: Bild und Text bleiben im gemeinsamen Container. */
.fm-composition[data-composition='offset'] :is(.fm-module-media, .fm-founder) { grid-template-columns: minmax(0, 1fr); gap: var(--stack-head) var(--composition-gap); align-items: center; }
.fm-composition[data-composition='offset'] :is(.fm-module-media, .fm-founder) > :first-child {
  grid-column: 1 / -1; grid-row: 2; display: flex; flex-direction: column; justify-content: safe center;
  padding: 0; margin: 0; min-inline-size: 0; inline-size: 100%; max-inline-size: none;
  background: transparent; border: 0; border-radius: 0; box-shadow: none;
}
.fm-composition[data-composition='offset'] :is(.fm-module-media, .fm-founder) > :first-child > * { inline-size: 100%; min-inline-size: min(100%, var(--composition-copy-min)); max-inline-size: min(var(--measure), var(--composition-copy-max)); flex-shrink: 0; }
.fm-composition[data-composition='offset'] :is(.fm-module-media, .fm-founder) > :nth-child(2) {
  grid-column: 1 / -1; grid-row: 1; block-size: var(--composition-offset-mobile-height); margin: 0; border-radius: var(--radius-md); align-self: center;
}
.fm-composition[data-composition='offset'] :is(.fm-module-media-image, .fm-founder-photo) > :is(img, .fm-image-placeholder) { inline-size: 100%; block-size: 100%; min-block-size: 0; aspect-ratio: auto; object-fit: cover; border-radius: var(--radius-md); }
.fm-offset-quote { margin: 0; }
.fm-offset-quote blockquote { margin: 0; font: var(--title-weight) var(--title-size)/var(--title-line) var(--font-family); }
.fm-offset-quote figcaption, .fm-offset-quote + .fm-prose, .fm-module-copy > .fm-offset-quote { margin-block-start: var(--stack-prose); }
@media (max-width: 63.999em) {
  .fm-composition[data-composition='offset'] :is(.fm-module-media[data-image-side], .fm-founder.fm-image-left, .fm-founder.fm-image-right) > :first-child { grid-column: 1 / -1; grid-row: 2; }
  .fm-composition[data-composition='offset'] :is(.fm-module-media[data-image-side], .fm-founder.fm-image-left, .fm-founder.fm-image-right) > :nth-child(2) { grid-column: 1 / -1; grid-row: 1; }
}
@media (min-width: 64em) {
  .fm-composition[data-composition='offset'] :is(.fm-module-media, .fm-founder) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fm-composition[data-composition='offset'] :is(.fm-module-media, .fm-founder) > :first-child { grid-column: 1; grid-row: 1; }
  .fm-composition[data-composition='offset'] :is(.fm-module-media, .fm-founder) > :nth-child(2) { grid-column: 2; grid-row: 1; block-size: var(--composition-offset-height); }
  .fm-composition[data-composition='offset'] :is(.fm-module-media[data-image-side='left'], .fm-founder.fm-image-left) > :first-child { grid-column: 2; }
  .fm-composition[data-composition='offset'] :is(.fm-module-media[data-image-side='left'], .fm-founder.fm-image-left) > :nth-child(2) { grid-column: 1; }
}

/* R4-11 / Regel 20: gemeinsame, fein gerahmte Kartenfamilie auf Gegenflächen.
   Section setzt im PageFlow keinen eigenen Ton: das nächste Kapitel entscheidet. */
[data-tone='light'], [data-surface='surface'] { --card-action-surface: var(--grad-sand); --line-soft: var(--line-soft-light); }
:is([data-surface='soft'], [data-surface='sand'], [data-surface='warm'], [data-surface='mist']) { --card-action-surface: var(--surface); --line-soft: var(--line-soft-light); }
[data-tone='dark'] { --card-action-surface: var(--card-action-dark-surface); --line-soft: var(--line-soft-dark); }
:is(.fm-card, .fm-topic-card, .fm-service-row, .fm-location-card, .fm-read-more article, .fm-module-numbered > li, .fm-module-next-step, .fm-cta-band-row, .fm-module-band:where([data-purpose='conversation']), .fm-module-article, a.fm-glossary-card, .fm-team-card, .fm-answer-card, .fm-calendar-day:where(:not(:disabled)), .fm-module-notice, .fm-module-quote, .fm-doctor-profile, .fm-day-plan > li, .fm-risks li, .fm-invoice, .fm-procedure-schema, .fm-term-definition, .fm-location-block:where(:not(.fm-location-block--text))) {
  background: var(--card-action-surface); color: var(--ink);
  border: var(--hairline) solid var(--line-soft); box-shadow: var(--card-action-shadow); border-radius: var(--radius-md);
  --bk-muted: var(--ink-muted); --lead-ink: var(--ink-muted); --bk-icon: var(--earth-700);
  --bk-link: var(--earth-300); --bk-circle: var(--grad-sand); --bk-line: var(--line);
  --bk-secondary: var(--sand-100); --bk-secondary-ink: var(--ink); --bk-card: var(--surface);
  --bk-spot-ground: var(--spot-ground); --bk-spot-line: var(--earth-500);
  --bk-device: var(--diagram-device); --bk-device-line: var(--earth-300); --bk-label: var(--surface);
  --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));
  transition: box-shadow var(--duration-hover) var(--ease-out);
}
.fm-page-flow :is(.fm-module-next-step, .fm-cta-band-row, .fm-module-band[data-purpose='conversation']) {
  padding: var(--card-padding); background: var(--card-action-surface); border: var(--hairline) solid var(--line-soft); box-shadow: var(--card-action-shadow); border-radius: var(--radius-md);
}
[data-composition='bento'] .fm-topic-card { box-shadow: var(--card-action-shadow); }
:is(a.fm-card, a.fm-topic-card, a.fm-service-row, a.fm-glossary-card):is(:hover, :focus-visible),
:is(.fm-module-article, .fm-module-next-step, .fm-cta-band-row, .fm-module-band[data-purpose='conversation']):has(a:is(:hover, :focus-visible)) {
  box-shadow: var(--card-action-hover-shadow);
}
/* Unabhängige dunkle Gesprächsfläche und FAQ behalten ihren eigenen Ton. */
.fm-conversation, .fm-faq details, .fm-faq details[open], .fm-faq-item, .fm-faq-item:has([aria-expanded='true']) { border: var(--hairline) solid var(--line-soft); box-shadow: var(--card-action-shadow); }
/* Inhaltskörper und bewusst offene Kompositionen bilden keine zweite Box. */
.fm-location-card .fm-card, .fm-read-more .fm-card, [data-composition='sticky'] .fm-module-cards > .fm-card,
.fm-module--invoice-summary .fm-invoice { border: 0; box-shadow: none; }
/* Fokus bleibt unabhängig vom Schatten sichtbar. */
:is(.fm-card, .fm-topic-card, .fm-service-row, .fm-module-article, .fm-module-next-step, .fm-cta-band-row, .fm-module-band, .fm-location-card, .fm-read-more) .fm-text-link:hover .fm-icon { transform: none; }
@media (prefers-reduced-motion: reduce) {
  :is(.fm-card, .fm-topic-card, .fm-service-row, .fm-location-card, .fm-read-more article, .fm-module-numbered > li, .fm-module-next-step, .fm-cta-band-row, .fm-module-band:where([data-purpose='conversation']), .fm-module-article, a.fm-glossary-card, .fm-team-card, .fm-answer-card, .fm-calendar-day:where(:not(:disabled)), .fm-module-notice, .fm-module-quote, .fm-doctor-profile, .fm-day-plan > li, .fm-risks li, .fm-invoice, .fm-procedure-schema, .fm-term-definition, .fm-location-block:where(:not(.fm-location-block--text))) { transition: none; }
  :is(a.fm-card, a.fm-topic-card, a.fm-service-row, a.fm-glossary-card):is(:hover, :focus-visible),
  :is(.fm-module-article, .fm-module-next-step, .fm-cta-band-row, .fm-module-band[data-purpose='conversation']):has(a:is(:hover, :focus-visible)) { transform: none; }
}
.fm-module-next-step { position: relative; }
.fm-module-next-step .fm-module-link a::after { content: ''; position: absolute; inset: 0; border-radius: var(--radius-md); }
.fm-module-next-step:has(a:focus-visible) { outline: var(--focus-width) solid currentColor; outline-offset: var(--focus-offset); }
.fm-glossary--compact a.fm-glossary-card { padding: var(--card-pad); }
/* Lange Einleitungen behalten den normalen Lesetext, auch im Teamkopf. */
.fm-body, .fm-page-flow .fm-section-head .fm-body, .fm-module-intro > .fm-prose > .fm-body {
  font: var(--body-weight) var(--body-size)/var(--body-line) var(--font-family); letter-spacing: normal;
}
.fm-section-head .fm-body, .fm-cta-band-copy > .fm-body { margin-block-start: var(--section-lead-gap); }
.fm-page-flow .fm-composition[data-composition='statement'] .fm-section-head h2[data-statement-size='lead'], .fm-composition[data-composition='statement'] .fm-section-head h2[data-statement-size='lead'] {
  font: var(--lead-weight) var(--section-lead-size)/var(--lead-line) var(--font-family); letter-spacing: normal;
}
.fm-page-flow .fm-composition[data-composition='statement'] .fm-section-head h2[data-statement-size='body'], .fm-composition[data-composition='statement'] .fm-section-head h2[data-statement-size='body'] {
  font: var(--body-weight) var(--body-size)/var(--body-line) var(--font-family); letter-spacing: normal;
}
/* Die Bildaussage liegt IM Bild und der Schutzverlauf kommt aus Tokens. */
[data-composition='bleed'] .fm-module-imageband figure { display: grid; }
[data-composition='bleed'] .fm-module-imageband figure > img {
  grid-area: 1 / 1; block-size: var(--composition-bleed-max); max-block-size: var(--composition-bleed-max); object-fit: cover;
}
[data-composition='bleed'] .fm-module-imageband figcaption {
  grid-area: 1 / 1; align-self: end; max-inline-size: none; margin: 0; padding: var(--card-padding) var(--composition-edge);
  background: var(--bleed-overlay); color: var(--on-dark); --lead-ink: var(--on-dark);
  display: grid; gap: var(--stack-lead); text-align: left;
}
/* R4-Hotfix: keine intrinsisch leeren Query-Container oder verschachtelten
   12-Spalten-Spannen. Eine zweite Textspalte braucht ihr eigenes Mindestmaß. */
.fm-section-head, .fm-module-intro { min-inline-size: 0; inline-size: 100%; }
.fm-section-head:has(> h2):not(.fm-section-head--centered):has(> .fm-lead, > .fm-body),
.fm-module-intro:has(> .fm-prose) {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--composition-copy-min)), 1fr)); gap: var(--stack-lead) var(--composition-gap); align-items: start;
}
.fm-section-head:has(> h2):not(.fm-section-head--centered):has(> .fm-lead, > .fm-body) > *,
.fm-module-intro:has(> .fm-prose) > * { grid-column: auto; min-inline-size: 0; margin-block-start: 0; }
/* Ein einzelner Inhalt belegt auch in Split-/Sticky-Kompositionen das ganze Raster. */
.fm-composition[data-composition] :is(.fm-module-split, .fm-module-media, .fm-founder) > :only-child { grid-column: 1 / -1; position: static; }
.fm-cta-band-copy { flex: 1 1 var(--split-min); min-inline-size: 0; }
.fm-module-article { position: relative; }
.fm-module-article :is(h2, h3) a::after { content: ''; position: absolute; inset: 0; border-radius: var(--radius-md); }
.fm-module-article:has(a:focus-visible) { outline: var(--focus-width) solid currentColor; outline-offset: var(--focus-offset); }
@media (min-width: 48em) {
  [data-composition='statement'] .fm-container > * { grid-column: 1 / span 10; }
  .fm-composition[data-composition='statement'] :is(.fm-faq-layout, .fm-faq-group) > :first-child,
  .fm-composition[data-composition='statement'] :is(.fm-faq-layout, .fm-faq-group) > :nth-child(2) { grid-column: 1 / -1; }
}

/* R4-12: Karten/Bänder belegen ganze Rasterspannen; Textmaß ist keine Kartenbreite. */
.fm-composition[data-composition] .fm-container > :is(.fm-module-next-step, .fm-module-band, .fm-cta-band-row, .fm-module-notice, .fm-module-summary, nav, .fm-module-cards, .fm-module-numbered, .fm-article-directory, .fm-editorial-articles, .fm-locations) {
  grid-column: 1 / -1; inline-size: 100%; max-inline-size: none;
}
.fm-module-next-step, .fm-module-band, .fm-cta-band-row, .fm-module-notice { inline-size: 100%; max-inline-size: none; }
.fm-page-flow .fm-composition[data-composition] :is(.fm-module-next-step, .fm-module-band, .fm-cta-band-row),
.fm-module-next-step, .fm-module-band, .fm-cta-band-row {
  display: grid; grid-template-columns: minmax(0, 1fr); align-items: center; gap: var(--stack-card) var(--composition-gap);
}
:is(.fm-module-next-step, .fm-module-band, .fm-cta-band-row) > * { grid-column: auto; min-inline-size: 0; margin-block-start: 0; }
.fm-cta-band-row > .fm-icon-circle { display: none; }
/* Semantische Abschnitts-H2 bleibt erhalten, optisch gilt ausdrücklich H3. */
.fm-page-flow .fm-composition[data-composition] .fm-section-head[data-heading-role='card'] > :is(h2, h3),
.fm-section-head[data-heading-role='card'] > :is(h2, h3), .fm-card-heading {
  font: var(--card-heading-weight) var(--card-heading-size)/var(--card-heading-line) var(--font-family);
  letter-spacing: var(--card-heading-tracking); text-wrap: balance; overflow-wrap: anywhere;
}
.fm-module-intro:has(> [data-heading-role='card']), .fm-section-head[data-heading-role='card'] { display: block; }
.fm-module-intro:has(> [data-heading-role='card']) > .fm-prose { margin-block-start: var(--stack-prose); }
.fm-module-intro:has(> [data-heading-role='card']) > .fm-prose > p { font: var(--body-weight) var(--body-size)/var(--body-line) var(--font-family); }
/* FAQ über die ganze Breite: keine leere, mitlaufende Titelhälfte. */
.fm-composition[data-composition] :is(.fm-faq-layout, .fm-faq-group) { grid-template-columns: minmax(0, 1fr); }
.fm-composition[data-composition] :is(.fm-faq-layout, .fm-faq-group) > :first-child,
.fm-composition[data-composition] :is(.fm-faq-layout, .fm-faq-group) > :nth-child(2) { grid-column: 1 / -1; position: static; }
.fm-page-flow .fm-faq, .fm-page-flow .fm-faq-groups { inline-size: 100%; max-inline-size: none; }
.fm-module--faq-groups :is(summary, .fm-faq-button) { min-block-size: var(--faq-row-height); padding: var(--faq-row-padding) var(--card-padding); }
@media (min-width: 48em) {
  .fm-page-flow .fm-composition[data-composition] :is(.fm-module-next-step, .fm-module-band[data-purpose='conversation'], .fm-cta-band-row),
  .fm-module-next-step, .fm-module-band[data-purpose='conversation'], .fm-cta-band-row { grid-template-columns: var(--band-columns); }
  .fm-page-flow .fm-composition[data-composition] :is(.fm-module-next-step, .fm-module-band, .fm-cta-band-row) > * { grid-column: auto; }
  .fm-module-cards, .fm-module-numbered { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fm-module-cards:has(> :last-child:nth-child(2)), .fm-module-cards:has(> :last-child:nth-child(4)),
  .fm-module-numbered:has(> :last-child:nth-child(4)) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fm-module-cards:has(> :only-child), .fm-module-numbered:has(> :only-child) { grid-template-columns: minmax(0, 1fr); }
}
@media (min-width: 64em) {
  .fm-page-flow .fm-composition[data-composition] .fm-module-next-step, .fm-module-next-step { grid-template-columns: var(--next-step-columns); }
}
@media (min-width: 48em) and (max-width: 63.999em) {
  .fm-page-flow .fm-composition[data-composition] .fm-module-next-step, .fm-module-next-step { grid-template-columns: minmax(0, 1fr); }
}

.fm-composition[data-composition] .fm-container:has(> .fm-module-cards, > .fm-module-numbered) > :is(.fm-section-head, .fm-module-intro) { grid-column: 1 / -1; grid-row: auto; position: static; }
.fm-composition[data-composition] .fm-container:has(> .fm-module-cards, > .fm-module-numbered) { row-gap: var(--stack-head); }
.fm-composition[data-composition] .fm-container > :is(.fm-module-cards, .fm-module-numbered) { grid-column: 1 / -1; margin-block-start: 0; }
@media (min-width: 48em) and (max-width: 74.999em) {
  [data-composition='bento'] :is(.fm-topic-grid, .fm-service-list) > * { grid-column: span 6; }
}
@media (min-width: 75em) {
  .fm-module-cards, .fm-module-numbered { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 47.999em) {
  [data-composition='bento'] .fm-topic-copy, .fm-service-row { padding: var(--card-padding); }
}

.fm-editorial-articles, .fm-glossary--compact .fm-glossary-grid { gap: var(--composition-gap); }
@media (min-width: 48em) and (max-width: 74.999em) {
  .fm-editorial-articles[data-count="3"], .fm-glossary--compact .fm-glossary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* R4-17: leise Aktion unter jeder Brecheraussage, aus dem Buchungsvertrag. */
.fm-booking.fm-booking--quiet { container-type: normal; inline-size: fit-content; max-inline-size: 100%; justify-items: start; margin-block-start: var(--stack-card); }
.fm-booking--quiet .fm-btn.fm-btn--booking { inline-size: auto; min-inline-size: 0; max-inline-size: 100%; font-size: var(--small-size); }
.fm-booking--quiet .fm-booking-label { white-space: normal; }
@media (min-width: 48em) {
  :is(.fm-module-band[data-purpose='conversation'], .fm-cta-band-row) > .fm-booking { justify-self: end; align-self: center; justify-items: end; }
}

/* Hanging: Text bleibt auf der Rasterkante, Icon belegt nur den freien Rand.
   Der mobile Durchmesser passt in den bestehenden Seitenrand, ohne Abschneiden. */
:is(.fm-timeline, .fm-module-list, .fm-detail-list, .fm-module-trust, .fm-trust-grid, .fm-principles, .fm-scope-list, .fm-map-labels, .fm-location-card ul) > li,
.fm-module--points .fm-module-cards > li { position: relative; display: block; }
.fm-composition[data-composition] .fm-timeline > li { display: block; }
:is(.fm-timeline, .fm-module-list, .fm-detail-list, .fm-module-trust, .fm-trust-grid, .fm-principles, .fm-scope-list, .fm-map-labels, .fm-location-card ul) > li > :is(.fm-icon, .fm-icon-circle, .fm-timeline-track),
.fm-module--points .fm-module-cards > li > .fm-icon-circle {
  position: absolute; inset-inline-end: calc(100% + var(--hanging-icon-gap)); inset-inline-start: auto; inset-block-start: 0;
  margin: 0; inline-size: var(--hanging-icon-size); block-size: var(--hanging-icon-size);
}
.fm-timeline-track > .fm-icon-circle { inline-size: var(--hanging-icon-size); block-size: var(--hanging-icon-size); }
:is(.fm-timeline, .fm-trust-grid, .fm-principles, .fm-scope-list, .fm-module--points) .fm-icon-circle > .fm-icon { inline-size: min(var(--icon-size), var(--hanging-icon-size)); block-size: min(var(--icon-size), var(--hanging-icon-size)); }
.fm-timeline .fm-timeline-copy { margin-block-start: 0; }
.fm-timeline .fm-timeline-line { display: none; }
/* Offene Iconlisten teilen die Textkante ihres Kopfes, ohne Karten-Innenversatz. */
.fm-scope-list > li, .fm-map-labels > li, .fm-module--points .fm-module-cards > li { padding: 0; background: transparent; box-shadow: none; border: 0; }
.fm-module--points .fm-module-cards > li > p { margin-block-start: var(--stack-card); }
.fm-module--points .fm-module-cards > li > h3, .fm-principles > li > h3 { margin-block-start: 0; }

/* TeamSlider und TeamProfiles verwenden dieselbe, nicht klickbare Personenkarte. */
.fm-composition[data-composition] .fm-module:is(.fm-module--team-slider, .fm-module--team-profiles) .fm-container > * {
  grid-column: 1 / -1; grid-row: auto; position: static; min-inline-size: 0; max-inline-size: none;
}
.fm-team-slider { inline-size: 100%; min-inline-size: 0; max-inline-size: 100%; overflow-x: clip; }
.fm-team-controls { display: none; justify-content: end; gap: var(--space-2); margin-block-end: var(--space-3); }
.fm-team-controls[hidden] { display: none; }
.fm-team-controls button { min-inline-size: var(--touch); min-block-size: var(--touch); }
.fm-team-controls button:disabled { opacity: var(--team-disabled-opacity); cursor: default; }
.fm-team-controls [data-team-prev] .fm-icon { transform: rotate(180deg); }
.fm-team-track { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% + var(--grid-gap)) / var(--team-visible-cards) - var(--grid-gap)); gap: var(--grid-gap); overflow-x: auto; overscroll-behavior-inline: contain; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; padding-block: var(--space-1); padding-block-end: var(--space-3); inline-size: 100%; max-inline-size: 100%; min-inline-size: 0; }
.fm-team-track > li { min-inline-size: 0; scroll-snap-align: start; }
.fm-team-track::-webkit-scrollbar { display: none; }
.fm-team-slider[data-scroll-edge] .fm-team-track {
  mask-image: linear-gradient(to right, transparent, var(--team-mask-ink) var(--team-fade-start), var(--team-mask-ink) calc(100% - var(--team-fade-end)), transparent);
}
.fm-team-slider:is([data-scroll-edge='start'], [data-scroll-edge='both']) .fm-team-track { --team-fade-start: var(--team-fade-none); }
.fm-team-slider:is([data-scroll-edge='end'], [data-scroll-edge='both']) .fm-team-track { --team-fade-end: var(--team-fade-none); }
.fm-team-dots { display: flex; flex-wrap: wrap; justify-content: center; }
.fm-team-dots[hidden] { display: none; }
.fm-team-dots button { display: grid; place-items: center; inline-size: var(--touch); block-size: var(--touch); padding: 0; border: 0; background: transparent; cursor: pointer; }
.fm-team-dots button::before { content: ''; inline-size: var(--team-dot-size); block-size: var(--team-dot-size); border-radius: var(--radius-pill); background: var(--sand-300); }
.fm-team-dots button[aria-current='true']::before { background: var(--earth-700); }
.fm-team-dots button:focus-visible { outline: var(--focus-width) solid var(--bk-icon); outline-offset: calc(-1 * var(--focus-width)); }

.fm-team-track:focus-visible, .fm-team-controls button:focus-visible, .fm-team-card summary:focus-visible { outline: var(--focus-width) solid var(--bk-icon); outline-offset: var(--focus-offset); }
.fm-team-track:focus-visible, .fm-team-controls button:focus-visible { outline-offset: calc(-1 * var(--focus-width)); }
.fm-team-profiles, .fm-composition[data-composition] .fm-team-profiles { display: grid; grid-template-columns: minmax(0, 1fr); grid-auto-rows: 1fr; gap: var(--grid-gap); }
.fm-team-card, .fm-team-profiles article { height: 100%; min-inline-size: 0; padding: 0; border: var(--hairline) solid var(--line-soft); border-radius: var(--radius-md); background: var(--card-action-surface); color: var(--ink); overflow-wrap: anywhere; }
.fm-team-card figure, .fm-team-profiles figure { margin: 0; }
.fm-team-card figure > :is(img, .fm-image-placeholder), .fm-team-profiles img { inline-size: 100%; aspect-ratio: var(--team-portrait-ratio); block-size: auto; min-block-size: 0; object-fit: cover; object-position: var(--founder-focus); border-radius: var(--radius-md) var(--radius-md) 0 0; }
.fm-team-card .fm-image-placeholder { align-content: center; gap: var(--space-2); color: var(--ink); background: var(--grad-sand); }
.fm-team-card .fm-image-placeholder .fm-icon { inline-size: var(--icon-circle-small); block-size: var(--icon-circle-small); color: var(--earth-700); }
.fm-team-card-copy { display: grid; gap: var(--space-2); padding: var(--card-padding); }
.fm-team-card .fm-team-role { font-weight: var(--weight-medium); }
.fm-team-card p, .fm-team-card h3 { margin: 0; }
.fm-team-card summary { cursor: pointer; min-block-size: var(--touch); }
.fm-team-card details p { margin-block-start: var(--space-2); }
/* Regel 25: nur der Slider wird quer; TeamProfiles bleibt vollständig. */
.fm-team-track .fm-team-card { display: grid; grid-template-columns: var(--team-card-columns); }
.fm-team-track .fm-team-card figure { position: relative; min-inline-size: 0; }
.fm-team-track .fm-team-card figure > :is(img, .fm-image-placeholder) { position: absolute; inset: 0; block-size: 100%; aspect-ratio: auto; border-radius: var(--radius-md) 0 0 var(--radius-md); }
.fm-team-track .fm-team-card .fm-image-placeholder { padding: var(--space-1); }
.fm-team-track .fm-team-card-copy { min-inline-size: 0; align-content: center; gap: var(--space-1); padding: var(--team-card-padding); font-size: var(--small-size); line-height: var(--small-line); }
.fm-team-track .fm-team-card h3 { font-size: var(--body-size); }
@media (min-width: 64em) {
  .fm-team-slider { --team-visible-cards: var(--team-visible-cards-desktop); }
}

@media (min-width: 48em) {
  .fm-team-controls { display: flex; }
  .fm-team-profiles, .fm-composition[data-composition] .fm-team-profiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 75em) {
  .fm-team-profiles, .fm-composition[data-composition] .fm-team-profiles { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (prefers-reduced-motion: reduce) {
  .fm-team-track { scroll-behavior: auto; }
}

/* R4-O · Die gemeinsame Kopf- und Bildsprache gilt auch im Katalog. */
.fm-title-muted { display: block; color: var(--bk-muted, var(--ink-muted)); }
.fm-fact-photo { position: relative; min-inline-size: 0; block-size: 100%; }
.fm-fact-photo > img { display: block; inline-size: 100%; block-size: 100%; object-fit: cover; }
.fm-fact-badges { position: absolute; inset-inline: var(--fact-badge-inset); inset-block-end: var(--fact-badge-inset); display: flex; flex-wrap: wrap; align-items: end; gap: var(--space-1); margin: 0; padding: 0; list-style: none; }
.fm-fact-badges > li { display: grid; gap: 0; max-inline-size: 100%; overflow-wrap: anywhere; padding: var(--space-1); border-radius: var(--radius-sm); background: var(--fact-badge-bg); color: var(--fact-badge-ink); backdrop-filter: blur(var(--fact-badge-blur)); font: var(--small-weight) var(--fact-badge-size)/var(--small-line) var(--font-family); }
.fm-fact-label { font-size: var(--fact-badge-label-size); letter-spacing: var(--eyebrow-tracking); text-transform: uppercase; }
.fm-team-track .fm-team-card figure > .fm-fact-photo { position: absolute; inset: 0; }
.fm-team-track .fm-fact-photo > img { aspect-ratio: auto; border-radius: var(--radius-md) 0 0 var(--radius-md); }
.fm-handwritten-note { display: flex; align-items: center; gap: var(--space-1); max-inline-size: 100%; margin: 0; color: var(--bk-muted, var(--ink-muted)); font: var(--handwritten-weight) var(--handwritten-size)/var(--handwritten-line) var(--font-handwritten); }
.fm-handwritten-note .fm-icon { display: none; }
.fm-hero-action, .fm-booking-action { display: grid; gap: var(--space-2); min-inline-size: 0; }
.fm-footer-action { display: flex; flex-direction: column; gap: var(--space-3); min-inline-size: 0; }
.fm-footer-action > .fm-handwritten-note { order: 1; }
.fm-booking-action .fm-footer-person { margin-block-end: var(--space-1); }
.fm-hero--edge { position: relative; isolation: isolate; }
.fm-hero--edge .fm-hero-photo { border-radius: 0; }
.fm-hero--edge .fm-hero-photo img { block-size: var(--hero-edge-mobile-height); object-position: var(--hero-edge-focus); }
@media (min-width: 48em) {
  .fm-handwritten-note { transform: rotate(var(--handwritten-angle)); transform-origin: left center; }
  .fm-handwritten-note .fm-icon { display: inline-block; flex: none; inline-size: var(--handwritten-arrow-width); block-size: var(--handwritten-arrow-height); transform: rotate(var(--handwritten-arrow-angle)); }
  .fm-handwritten-note[data-direction='up'] .fm-icon { transform: rotate(var(--handwritten-up-angle)); }
  .fm-handwritten-note[data-direction='down'] .fm-icon { transform: rotate(var(--handwritten-down-angle)); }
  .fm-footer-action > .fm-handwritten-note { order: 0; }
  .fm-hero--edge .fm-hero-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fm-hero--edge .fm-hero-copy { grid-column: 1; padding-block: var(--space-4); }
  .fm-hero--edge .fm-hero-photo { position: absolute; inset-block: 0; inset-inline-start: var(--hero-edge-half); inset-inline-end: 0; z-index: -1; }
  .fm-hero--edge .fm-hero-photo img { block-size: 100%; }
  .fm-hero--edge .fm-hero-photo::after { content: ''; position: absolute; inset-block: 0; inset-inline-start: 0; inline-size: var(--hero-edge-fade); background: linear-gradient(to right, var(--hero-edge-surface), transparent); pointer-events: none; }
}
@media (max-width: 47.999em) and (max-height: 45em) {
  .fm-hero--edge .fm-hero-photo img { block-size: var(--hero-edge-mobile-short); }
}

.fm-cta-band-row > .fm-booking-action { flex: 0 1 var(--booking-max); }
.fm-team-card .fm-fact-photo > img { border-radius: var(--radius-md) var(--radius-md) 0 0; aspect-ratio: var(--team-portrait-ratio); }
.fm-team-track .fm-team-card .fm-fact-photo > img { aspect-ratio: auto; border-radius: var(--radius-md) 0 0 var(--radius-md); }

@media (max-width: 47.999em) and (max-height: 45em) {
  .fm-hero--edge .fm-section-head { display: contents; }
  .fm-hero--edge .fm-section-head h1 { order: 0; }
  .fm-hero--edge .fm-hero-action { order: 1; }
  .fm-hero--edge .fm-section-head > p { order: 2; margin: 0; }
  .fm-hero--edge .fm-hero-entry-links { order: 3; }
}
/* Die Person macht die Aktion zu einem Rasterkind; Buchung darf darin umbrechen. */
.fm-booking-action .fm-btn { max-inline-size: 100%; white-space: normal; }
.fm-booking-action .fm-booking-label { min-inline-size: 0; white-space: normal; }
.fm-booking-action .fm-booking { min-inline-size: 0; grid-template-columns: minmax(0, 1fr); }

/* R4-22: Orientierung direkt unter dem Hero, gemeinsam in einer sichtbaren Box. */
.fm-flow-overview { padding-block: var(--section-pad); }
.fm-overview-box { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--stack-head); padding: var(--card-padding); background: var(--grad-sand); border: var(--hairline) solid var(--line-soft); border-radius: var(--radius-md); box-shadow: var(--card-action-shadow); }
.fm-overview-box > *, .fm-overview-box .fm-module { min-inline-size: 0; }
.fm-page-flow .fm-overview-box .fm-container { padding: 0; max-inline-size: none; }
.fm-page-flow .fm-overview-box :is(.fm-module-summary, .fm-module--jump-nav nav) { padding: 0; margin: 0; background: transparent; border: 0; border-radius: 0; box-shadow: none; max-inline-size: none; }
.fm-module-jumps { flex-wrap: nowrap; overflow-x: auto; }
.fm-module-jumps li { flex: none; max-inline-size: none; }
.fm-module-jumps a { white-space: nowrap; }
/* Auch autonome Kurzfassungen im Katalog sind erkennbare Boxen. */
.fm-module-summary { color: var(--ink); --bk-muted: var(--ink); padding: var(--card-padding); background: var(--grad-sand); border: var(--hairline) solid var(--line-soft); border-radius: var(--radius-md); box-shadow: var(--card-action-shadow); }
/* Gegenüberstellungen und lange Schrittfolgen nutzen die volle Rasterbreite. */
:is(.fm-module--dodont, .fm-module--suitability, .fm-module--included-box) .fm-module-columns > div,
.fm-timeline[data-step-cards] > li,
.fm-sources {
  padding: var(--card-padding); background: var(--surface); color: var(--ink); border: var(--hairline) solid var(--line-soft); border-radius: var(--radius-md); box-shadow: var(--card-action-shadow); min-inline-size: 0;
}
[data-surface='surface'] :is(:is(.fm-module--dodont, .fm-module--suitability, .fm-module--included-box) .fm-module-columns > div, .fm-timeline[data-step-cards] > li, .fm-sources) { background: var(--grad-sand); }
:is(.fm-module--dodont, .fm-module--suitability, .fm-module--included-box) .fm-module-columns > div { padding-inline-start: calc(var(--card-padding) + var(--hanging-icon-size)); }
.fm-composition[data-composition] .fm-container:has(> .fm-module-columns, > .fm-timeline[data-step-cards]) > * { grid-column: 1 / -1; grid-row: auto; position: static; min-inline-size: 0; }
.fm-composition[data-composition] .fm-container:has(> .fm-module-columns, > .fm-timeline[data-step-cards]) { row-gap: var(--stack-head); }
.fm-composition[data-composition] .fm-timeline[data-step-cards], .fm-timeline[data-step-cards] { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--grid-gap); }
.fm-timeline[data-step-cards] > li { padding-inline-start: calc(var(--card-padding) + var(--hanging-icon-size) + var(--hanging-icon-gap)); }
.fm-timeline[data-step-cards] > li > .fm-timeline-track { inset-inline-start: var(--card-padding); inset-inline-end: auto; inset-block-start: var(--card-padding); }
.fm-module--related .fm-related-groups { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--stack-head); }
.fm-module--related .fm-related-groups ul { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, var(--related-card-min)), 1fr)); inline-size: 100%; gap: var(--space-3); padding: 0; margin-block-start: var(--space-2); }
.fm-module--related .fm-related-groups li { margin: 0; min-inline-size: 0; }
.fm-module--related .fm-related-tile { display: flex; flex-direction: column; align-items: start; justify-content: center; gap: var(--space-1); height: 100%; padding: var(--card-padding); background: var(--surface); color: var(--ink); border: var(--hairline) solid var(--line-soft); border-radius: var(--radius-md); box-shadow: var(--card-action-shadow); text-decoration: none; }
[data-surface='surface'] .fm-module--related .fm-related-tile { background: var(--grad-sand); }
.fm-module--related .fm-related-tile, .fm-module--related .fm-related-tile > span { hyphens: manual; overflow-wrap: normal; }
.fm-module--related .fm-related-tile > :first-child { text-decoration: underline; text-decoration-color: var(--bk-link); }
.fm-module--related .fm-related-tile:hover { box-shadow: var(--card-action-hover-shadow); }
.fm-sources { gap: 0; max-inline-size: none; }
.fm-sources > li { padding-block: var(--space-2); gap: var(--space-2); }
.fm-sources > li:last-child { border-block-end: 0; }
.fm-sources .fm-text-link { min-block-size: var(--touch); }
/* Eine kleine Quelle bleibt samt Bildaussage im Container. */
.fm-composition[data-composition='bleed']:has([data-bleed-ready='false']) .fm-container { max-inline-size: calc(var(--content-max) + var(--page-gutter) * 2); padding-inline: var(--page-gutter); }
[data-composition='bleed'] .fm-module-imageband[data-bleed-ready='false'] { grid-template-columns: minmax(0, 1fr); }
[data-composition='bleed'] .fm-module-imageband[data-bleed-ready='false'] > * { grid-column: 1; }
[data-composition='bleed'] .fm-module-imageband[data-bleed-ready='false'] figure { border-radius: var(--radius-md); }
[data-composition='bleed'] .fm-module-imageband[data-bleed-ready='false'] figcaption { padding: var(--card-padding); }
@media (min-width: 48em) {
  :is(.fm-module--dodont, .fm-module--suitability, .fm-module--included-box) .fm-module-columns, .fm-composition[data-composition] :is(.fm-module--dodont, .fm-module--suitability, .fm-module--included-box) .fm-module-columns,
  .fm-composition[data-composition] .fm-timeline[data-step-cards], .fm-timeline[data-step-cards] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* Rubriken: Restkarten behalten dieselbe Spaltenbreite und beginnen links. */
@media (min-width: 75em) {
  [data-composition='bento'] .fm-topic-grid[data-text-only] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  [data-composition='bento'] .fm-topic-grid[data-text-only] > * { grid-column: auto; grid-row: auto; }
}

[data-composition='bleed'] .fm-module-imageband[data-bleed-ready='false'] figure > img { border-radius: var(--radius-md); }

/* R4-25: Kartenraster teilen nach verfügbarer Breite, nie nach min-content.
   Der gemeinsame Schutz überstimmt auch verschachtelte Kompositionsspannen. */
:is(body, .fm-composition[data-composition]) :is(.fm-module-cards, .fm-module-numbered, .fm-editorial-articles, .fm-glossary-grid, .fm-team-profiles, .fm-topic-grid, .fm-service-list) {
  grid-template-columns: var(--card-grid-three); gap: var(--grid-gap); inline-size: 100%; min-inline-size: 0;
}
:is(body, .fm-composition[data-composition]) :is(.fm-locations, .fm-confirmation-grid, .fm-procedure-compare, .fm-module-columns, .fm-timeline[data-step-cards]) {
  grid-template-columns: var(--card-grid-two); gap: var(--grid-gap); inline-size: 100%; min-inline-size: 0;
}
:is(body, .fm-composition[data-composition]) :is(.fm-topic-grid, .fm-service-list) > * {
  grid-column: auto; grid-row: auto; min-inline-size: 0;
}
/* Volle Kartenbreite innerhalb des bestehenden, tokenbasierten Rasters.
   In einer einzelnen mobilen Spalte bleibt dies eine normale Listenkarte. */
:is(body, .fm-composition[data-composition]) .fm-service-list > .fm-service-item--full {
  grid-column: 1 / -1;
}
:is(body, .fm-composition[data-composition]) .fm-topic-grid { grid-template-rows: none; }
/* Das bestehende Fotomosaik verwendet zwei echte Kartenspalten. Erst ein
   ausreichend breiter Kompositionscontainer erlaubt explizite Platzierung. */
@container (min-width: 48em) {
  [data-composition='bento'] .fm-topic-grid[data-count='3']:has(.fm-topic-photo) { grid-template-columns: var(--card-grid-two); grid-template-rows: repeat(2, minmax(0, 1fr)); }
  [data-composition='bento'] .fm-topic-grid[data-count='3']:has(.fm-topic-photo) > :first-child { grid-column: 1; grid-row: 1 / span 2; }
  [data-composition='bento'] .fm-topic-grid[data-count='3']:has(.fm-topic-photo) > :nth-child(n+2) { grid-column: 2; grid-row: auto; }
}
/* Weiterlesen darf weder im äußeren Weiterführungsraster noch im inneren
   Kompositionscontainer auf eine Teilspalte reduziert werden. */
.fm-composition[data-composition] .fm-module--related .fm-container > .fm-related-groups {
  grid-column: 1 / -1; inline-size: 100%; max-inline-size: none;
}
.fm-module--related .fm-related-groups > div { min-inline-size: 0; }

@media (max-width: 39.999em) {
  .fm-team-track { grid-auto-columns: min(100%, var(--team-mobile-card-width)); }
  .fm-team-track .fm-team-card { grid-template-columns: minmax(0, 1fr); grid-template-rows: var(--team-mobile-portrait-height) auto; }
  .fm-team-track .fm-team-card figure { block-size: var(--team-mobile-portrait-height); }
  .fm-team-track .fm-team-card figure > :is(img, .fm-image-placeholder, .fm-fact-photo),
  .fm-team-track .fm-team-card .fm-fact-photo > img {
    inline-size: 100%; block-size: 100%; aspect-ratio: auto; object-fit: cover; border-radius: var(--radius-md) var(--radius-md) 0 0;
  }
  .fm-team-track .fm-team-card-copy { align-content: start; padding: var(--card-padding); font-size: var(--body-size); line-height: var(--body-line); }
}
