/* ------------------------------------------------------------
   SEKTION: Profil-Hero, Titelbild B "Porträtkarte" (Nicholas, 15.10.2026;
   ersetzt den Split-Look mit Foto-Hintergrund und Verlauf). Kernel-Komponente
   `.hero-full` (style.css Abschnitt 22). Der Hero bleibt navy, das Hauptfoto
   steht als GANZE Hochformat-Karte (nicht abgedunkelt, Radius-Token, kein
   Verlauf, kein Schatten) neben dem Text. Regel von Nicholas: nirgends Text
   über dem Foto oder Gesicht, auf keiner Breite.
   hero.php setzt `.hero-full--darling` und die Figur nur, wenn es ein
   Hauptfoto gibt. Ohne Hauptfoto (nur Entwurfsvorschau) steht nur Text auf
   Navy in Kernel-Höhe.
   - Ab 981 px: Text links (Kopf oben, Fuß unten), Karte rechts, mittig in der
     Höhe. Breite 32vw (300 bis 560 px), Seitenverhältnis 3:4, nie höher als der Hero.
   - Bis 980 px: Karte oben (4:5, höchstens 440 px, linksbündig), Text darunter.
     Die Hero-Höhe richtet sich nach dem Inhalt, zwischen Signatur und Chips
     bleibt nur ein normaler Abstand (--gap-lg, 28 bis 48 px).
   - Höhe 2vh niedriger als die Kernel-Regel (98svh), Nicholas 13.10.2026.
   ------------------------------------------------------------ */
#hero.hero-full--sub { min-height: calc(96svh - var(--nav-h) - 20px); }

.sedcard-titelbild {
  position: relative; margin: 0; min-width: 0;
  border-radius: var(--radius-media); overflow: clip;
}
/* Das Bild liegt absolut in der Karte: nur das Seitenverhältnis der Karte bestimmt ihre Höhe,
   nicht die Maße des Bildes (sonst wird die Karte auf dem Handy 3:4 statt 4:5). */
.sedcard-titelbild img {
  position: absolute; inset: 0; display: block; width: 100%; height: 100%;
  object-fit: cover; object-position: 50% 20%;
}

/* Kategorie als erster Chip: helle Fläche statt Linie (Ivory auf Navy, 14:1) */
.on-navy .chip.chip--kategorie { background: var(--ivory); color: var(--navy); border-color: var(--ivory); }

@media (min-width: 981px) {
  #hero.hero-full--darling .hero-content {
    --karte-hoehe-max: calc(96svh - var(--nav-h) - 20px - 2 * clamp(24px, 3.2vw, 44px));
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-rows: auto 1fr auto;
    column-gap: var(--gap-xl);
  }
  #hero.hero-full--darling .hero-top { grid-column: 1; grid-row: 1; }
  #hero.hero-full--darling .hero-foot { grid-column: 1; grid-row: 3; }
  #hero.hero-full--darling .sedcard-titelbild {
    grid-column: 2; grid-row: 1 / -1; align-self: center;
    width: min(clamp(300px, 32vw, 560px), calc(var(--karte-hoehe-max) * 3 / 4));
    aspect-ratio: 3 / 4;
    max-height: var(--karte-hoehe-max);
  }
}

@media (max-width: 980px) {
  #hero.hero-full--darling { min-height: auto; }
  #hero.hero-full--darling .hero-content { justify-content: flex-start; gap: var(--gap-lg); }
  #hero.hero-full--darling .sedcard-titelbild {
    order: -1; align-self: flex-start;
    width: min(100%, 440px); aspect-ratio: 4 / 5;
  }
}

/* R2-2-17: Instagram-Zeile im Hero war ein <a class="textlink"> ohne href
   (aria-disabled) - sah trotzdem wie ein aktiver, unterstrichener Textlink
   aus. Jetzt ein reiner <div class="row caption">, Icon braucht die von
   .textlink sonst gelieferte Größe hier selbst (13px, wie zuvor). */
.hero-foot .row.caption svg { width: 13px; height: 13px; flex-shrink: 0; }


/* ============================================================
   Seitenspezifisches CSS: model-profil.html
   Korrekturschleife 30.09.2026 (Paket W2 Sedcard-Seite): Die Profilseite
   folgt jetzt dem Muster der übrigen Seiten (Academy, Events, Über uns):
   jede Sektion trägt den Kernel-Kopf `.section-head` (Eyebrow + große H2,
   ggf. Lead rechts), Karten sind rund und weiß, Flächen wechseln zwischen
   Ivory, Sand-Bühne und Navy-Bühne.
   Nur Layout-Feinheiten, die dieser Seite vorbehalten sind: keine
   Farben/Radius/Typografie-Rohwerte, alles über :root-Tokens aus
   assets/style.css (Schrift ausschließlich --fs-* bzw. clamp()).

   Inhalt:
   1. Sektions-Abstände
   2. Galerie „Eindrücke“ (.profil-galerie, Punkt 7, bis 8 Fotos)
   3. Sedcard-Datenblatt (.datenblatt, .spec-grid)
   4. Honorar (.honorar-table, .honorar-reise, .reise-card)
   5. Über mich und Leila (.ueber-paar)
   6. Interview und „Dinge, die Melanie liebt“ (.interview-grid)
   7. Verfügbarkeit und Vibe-Check (.verf-grid, Kalender)
   8. Weitere Darlinge (.weitere-grid)

   Sektionsfolge und Fläche (1440): Hero N · Galerie S · Sedcard I ·
   Honorar S (Bögen) · Über mich I · Interview S · Verfügbarkeit N
   (Bögen) · Weitere Darlinge I · Footer N. Nie drei gleiche Flächen
   in Folge. Die Sektion „Das Fotoshooting“ (Video) ist entfernt
   (Punkt 6), Kommentar in model-profil.html markiert den Platz.
   ============================================================ */

/* ------------------------------------------------------------
   1. SEKTIONS-ABSTÄNDE
   Ivory-Sektionen und Bühnen tragen denselben Innenabstand. Der Kernel-
   Standard .section--tight (bis 72px) war für die kleinen H3-Köpfe gedacht,
   mit großer H2 braucht der Kopf mehr Luft. Die Kopf-zu-Inhalt-Lücke
   kommt aus dem Kernel (.section-head margin-bottom).
   ------------------------------------------------------------ */
#galerie, #video, #sedcard, #honorar, #ueber-mich, #interview, #verfuegbarkeit, #weitere-darlings {
  padding-top: clamp(52px, 5.8vw, 88px);
  padding-bottom: clamp(52px, 5.8vw, 88px);
}

/* ------------------------------------------------------------
   2. GALERIE "EINDRÜCKE" (Punkt 7, Runde 15.10.2026)
   Hauptfoto (Hochformat) plus 0 bis 8 Fotos. Die Reihen legt
   od_sedcard_galerie_reihen() fest (funktionen.php): Querformat allein in
   einer Reihe, Hochformate paarweise, ein übriges Hochformat bekommt die
   Anfrage-Kachel daneben. Jede Reihe ist zwei Spalten breit, es gibt nie
   Lücken. Der Rahmen `.profil-galerie-rahmen` ist ein Container, alle Maße
   rechnen mit seiner Breite (100cqi), dadurch bleiben die Reihen gleich hoch
   und das Hauptfoto schließt bündig mit der letzten Reihe ab.
   Layouts (data-layout): block (Standard, 4 Spalten, ab 2 Reihen), paar
   (Hauptfoto + 1 Hochformat), trio (Hauptfoto + 2 Hochformate), quer
   (Hauptfoto + 1 Querformat), leer (nur Hauptfoto).
   Ab 721 px (block): 4 Spalten, Reihenhöhe = 3:4-Kachel einer Spalte,
   Hauptfoto über Spalte 1 und 2 und genau zwei Reihen hoch (ab 3 Reihen
   klebt es unter der Navigation, data-sticky). Bis 720 px: 2 Spalten,
   Hauptfoto oben über beide Spalten, darunter die Reihen.
   Der Platzhalter (.ph) liegt absolut im Rahmen und füllt ihn.
   ------------------------------------------------------------ */
.profil-galerie-rahmen { container-type: inline-size; }
.profil-galerie { display: grid; gap: var(--gap-md); }
.profil-galerie > .profil-foto,
.profil-galerie > .profil-kachel {
  position: relative; min-width: 0; min-height: 0; border-radius: var(--radius-media); overflow: clip;
}
.profil-galerie .ph { position: absolute; inset: 0; width: 100%; height: 100%; aspect-ratio: auto; }

/* Echte Fotos statt Platzhalter: füllen ihre Zelle, Ausschnitt per object-fit (Hochformat: Gesicht oben frei) */
.profil-galerie img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 25%; display: block; }

/* Anfrage-Kachel: Navy-Fläche, Text unten links, kein Foto (also kein Text über einem Foto). Maße nach Kachelbreite. */
.profil-kachel--anfrage {
  container-type: inline-size;
  display: flex; flex-direction: column; justify-content: flex-end; align-items: flex-start; gap: var(--gap-xs);
  padding: clamp(16px, 2vw, 28px);
  background: var(--navy); color: var(--ivory);
}
.profil-kachel--anfrage .h3 {
  margin: 0; color: var(--ivory); font-family: var(--font-head); letter-spacing: var(--ls-head);
  overflow-wrap: anywhere; hyphens: manual;
}
/* Fix-Runde 1: Der Link läuft als Fließtext, damit der Pfeil beim Umbruch am letzten Wort hängt (nicht allein am Rand). */
.profil-kachel--anfrage .textlink { display: inline; color: var(--ivory); overflow-wrap: anywhere; }
.profil-kachel--anfrage .textlink__ende { white-space: nowrap; }
.profil-kachel--anfrage .textlink svg { display: inline-block; vertical-align: middle; margin-left: 6px; }
@container (max-width: 190px) {
  .profil-kachel--anfrage .h3 { font-size: var(--fs-h3-sm); }
  .profil-kachel--anfrage .textlink { font-size: var(--fs-caption); }
}

/* Ab 721 px */
@media (min-width: 721px) {
  .profil-galerie { grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: calc((100cqi - 3 * var(--gap-md)) / 3); }
  .profil-galerie > .profil-foto {
    grid-column: 1 / span 2; grid-row: 1 / span var(--zeilen, 2); align-self: start;
    height: calc(2 * ((100cqi - 3 * var(--gap-md)) / 3) + var(--gap-md));
  }
  .profil-galerie > .profil-kachel { grid-row: var(--reihe, 1); }
  .profil-kachel--links { grid-column: 3; }
  .profil-kachel--rechts { grid-column: 4; }
  .profil-kachel--breit { grid-column: 3 / span 2; }
  .profil-galerie-rahmen[data-sticky] .profil-galerie > .profil-foto { position: sticky; top: calc(var(--nav-h) + 24px); }

  /* paar: Hauptfoto und ein Hochformat, die Anfrage-Kachel bleibt weg */
  .profil-galerie-rahmen[data-layout="paar"] { max-width: 860px; }
  [data-layout="paar"] .profil-galerie { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: auto; }
  [data-layout="paar"] .profil-galerie > .profil-foto { grid-column: 1; grid-row: 1; height: auto; aspect-ratio: 3 / 4; }
  [data-layout="paar"] .profil-galerie > .profil-kachel { grid-column: 2; grid-row: 1; aspect-ratio: 3 / 4; }
  [data-layout="paar"] .profil-kachel--anfrage { display: none; }

  /* trio: Hauptfoto über Spalte 1 und 2, zwei Hochformate übereinander in Spalte 3 */
  .profil-galerie-rahmen[data-layout="trio"] { max-width: 960px; }
  [data-layout="trio"] .profil-galerie { grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-rows: calc((100cqi - 2 * var(--gap-md)) / 3 * 4 / 3); }
  [data-layout="trio"] .profil-galerie > .profil-foto { grid-column: 1 / span 2; grid-row: 1 / span 2; height: auto; align-self: stretch; }
  [data-layout="trio"] .profil-galerie > .profil-kachel { grid-column: 3; }

  /* quer: Hauptfoto (3:4) und ein Querformat, das sich auf dieselbe Höhe streckt */
  [data-layout="quer"] .profil-galerie { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); grid-auto-rows: auto; }
  [data-layout="quer"] .profil-galerie > .profil-foto { grid-column: 1; grid-row: 1; height: auto; aspect-ratio: 3 / 4; }
  [data-layout="quer"] .profil-galerie > .profil-kachel { grid-column: 2; grid-row: 1; }

  /* leer: nur das Hauptfoto, schmal und links */
  .profil-galerie-rahmen[data-layout="leer"] { max-width: 520px; }
  [data-layout="leer"] .profil-galerie { grid-template-columns: minmax(0, 1fr); grid-auto-rows: auto; }
  [data-layout="leer"] .profil-galerie > .profil-foto { grid-column: 1 / -1; grid-row: auto; height: auto; aspect-ratio: 3 / 4; }
}

/* In den schmalen Kacheln (unter rund 190px Breite) lief der mehrzeilige Motivtext
   (.ph::after, unten) in das zentrierte Maß (.ph::before) hinein. Das Maß bleibt sichtbar
   (BAU-REGELN Abschnitt 6), der Motivtext entfällt dort, er steht weiter im data-motiv. */
@media (min-width: 721px) and (max-width: 860px) {
  .profil-kachel .ph::after { display: none; }
}

/* Bis 720 px: zwei Spalten, Hauptfoto oben, danach die Reihen (Kachel = 3:4, Querformat über beide Spalten = 3:2) */
@media (max-width: 720px) {
  .profil-galerie {
    grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--gap-sm);
    grid-template-rows: auto; grid-auto-rows: calc((100cqi - var(--gap-sm)) / 2 * 4 / 3);
  }
  .profil-galerie > .profil-foto { grid-column: 1 / -1; grid-row: 1; aspect-ratio: 3 / 4; }
  .profil-galerie > .profil-kachel { grid-row: var(--reihe-m, 2); }
  .profil-kachel--links { grid-column: 1; }
  .profil-kachel--rechts { grid-column: 2; }
  .profil-kachel--breit { grid-column: 1 / -1; }
}
@media (max-width: 560px) {
  .profil-kachel .ph::after { display: none; }
}

/* ------------------------------------------------------------
   3. SEDCARD-DATENBLATT
   Zwei weiße Karten (Eckdaten, Persönlichkeit) wie ein editoriales
   Datenblatt: Kopf mit Icon-Badge (Navy) und H3, darunter ein Raster mit
   je zwei Einträgen pro Zeile. Beschriftung klein in Warm Grey (Ink,
   6:1 auf Weiß), Wert groß in Navy (Geist 600, --fs-h3). Haarlinien
   zwischen den Zeilen. Die Werte (derzeit „folgt“) kommen beim Onboarding.
   ------------------------------------------------------------ */
.datenblatt { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--gap-lg); align-items: stretch; }
.datenblatt-card { gap: 0; padding: clamp(26px, 3.2vw, 44px); }
.datenblatt-head {
  display: flex; align-items: center; gap: 16px;
  padding-bottom: clamp(18px, 2.2vw, 28px); border-bottom: 1px solid var(--line-1);
}
.datenblatt-head .h3 { margin: 0; }
.spec-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(20px, 2.6vw, 40px); }
.spec-cell {
  display: flex; flex-direction: column; gap: 6px; min-width: 0;
  padding: clamp(16px, 1.7vw, 24px) 0; border-top: 1px solid var(--line-1);
}
.spec-cell:nth-child(-n + 2) { border-top: 0; }
.spec-cell dt { font-size: var(--fs-caption); line-height: 1.3; font-weight: 500; color: var(--warm-grey-ink); }
.spec-cell dd {
  font-family: var(--font-head); font-size: var(--fs-h3); line-height: var(--lh-snug); font-weight: 600;
  letter-spacing: var(--ls-head); color: var(--navy); overflow-wrap: anywhere;
}
@media (max-width: 980px) {
  .datenblatt { grid-template-columns: minmax(0, 1fr); }
}

/* ------------------------------------------------------------
   4. HONORAR (Sand-Bühne mit Bögen)
   Links die Honorar-Tabelle, rechts Reisekosten als Karte mit Icon und
   darunter Mindestbuchung und Link. Tabelle: Navy-Kopfzeile, größere
   Beträge (Geist 600, --fs-h3-sm), dezente Ivory-Zebra auf Weiß. Rund wie
   jede Karte (--radius-card), der Rahmen clippt die Kopfzeile.
   ------------------------------------------------------------ */
.honorar-reise { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--gap-xl); align-items: start; }
.table-wrap { border: 1px solid var(--line-1); border-radius: var(--radius-card); overflow: hidden; background: var(--surface-card); }
.honorar-table { width: 100%; border-collapse: collapse; }
.honorar-table thead { background: var(--navy); }
.honorar-table th, .honorar-table td { padding: 14px clamp(20px, 2.6vw, 32px); text-align: left; }
.honorar-table thead th {
  background: var(--navy); color: var(--ivory); padding-top: 18px; padding-bottom: 18px;
  font-size: var(--fs-caption); font-weight: 600; letter-spacing: var(--ls-eyebrow); text-transform: uppercase;
}
.honorar-table thead th:last-child { text-align: right; }
.honorar-table tbody th, .honorar-table tbody td { border-top: 1px solid var(--line-1); }
.honorar-table tbody tr:first-child > * { border-top: 0; }
.honorar-table tbody th { font-size: var(--fs-body); font-weight: 500; color: var(--navy); }
.honorar-table tbody td {
  font-family: var(--font-head); font-size: var(--fs-h3-sm); line-height: var(--lh-snug); font-weight: 600;
  letter-spacing: var(--ls-head); color: var(--navy); text-align: right; font-variant-numeric: tabular-nums;
}
.honorar-table tbody tr:nth-child(even) { background: var(--ivory); }
/* Zeilenflächen werden im Tabellenmodell je Zelle gemalt; an der Zellgrenze (Bruchteilspixel)
   blitzt sonst eine helle Naht durch. Der 1px-Überstand der ersten Zelle in Zeilenfarbe schließt sie. */
.honorar-table thead th:first-child { box-shadow: 1px 0 0 0 var(--navy); }
.honorar-table tbody tr:nth-child(even) > th { box-shadow: 1px 0 0 0 var(--ivory); }

.honorar-side { display: flex; flex-direction: column; gap: var(--gap-md); }
.reise-card { gap: 16px; padding: clamp(26px, 3.2vw, 44px); }
.reise-card .h3 { margin: 0; }
.reise-card .chip-row { margin-top: 4px; }
.honorar-info { display: flex; align-items: center; gap: 16px; padding-block: 6px; }
.honorar-info .card-desc { margin: 0; }
@media (max-width: 980px) {
  .honorar-reise { grid-template-columns: minmax(0, 1fr); }
}

/* ------------------------------------------------------------
   5. ÜBER MICH UND LEILA
   Zwei gleich hohe Karten (Raster mit stretch): links der Profiltext,
   rechts „Das sagt Leila über Melanie“ mit dem Zitat im Kernel-Stil
   .pullquote. Beide Karten beginnen mit einer Kopfzeile aus Icon-Badge
   (rechts zusätzlich mit der H3), dieselbe Polsterung, die Textgröße ist
   Fließtext (--fs-body, ≥ 15px).
   ------------------------------------------------------------ */
.ueber-paar { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--gap-lg); align-items: stretch; }
.ueber-card { gap: 18px; padding: clamp(28px, 3.4vw, 48px); }
.ueber-card > p { font-size: var(--fs-body); line-height: var(--lh-body); color: var(--navy); }
.ueber-card > p + p { color: var(--navy-70); }
.ueber-head { display: flex; align-items: center; gap: 16px; }
.ueber-head .h3 { margin: 0; }
.leila-card .pullquote { margin-top: auto; }
.leila-card .pullquote blockquote p { hyphens: manual; }
@media (max-width: 980px) {
  .ueber-paar { grid-template-columns: minmax(0, 1fr); }
}

/* ------------------------------------------------------------
   6. INTERVIEW UND „DINGE, DIE MELANIE LIEBT“
   2:1-Raster nur ab 981px (mobil einspaltig, die Chips stehen unter dem
   Interview). Die rechte Karte ist weiß wie die Fragen (Kartensprache) und
   klebt ab 981px unter der Navigation, solange die Fragen daneben laufen.
   ------------------------------------------------------------ */
.interview-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--gap-lg); align-items: start; }
.liebt-card { gap: 16px; padding: clamp(26px, 3vw, 36px); }
.liebt-card .h3 { margin: 0; }
@media (min-width: 981px) {
  .interview-grid { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
  .liebt-card { position: sticky; top: calc(var(--nav-h) + 24px); }
}

/* ------------------------------------------------------------
   7. VERFÜGBARKEIT UND VIBE-CHECK (Navy-Bühne mit Bögen)
   Kopf im Seitenmuster (Status-Chip unter der H2, Lead rechts), darunter
   zwei Spalten: links die helle Kalenderkarte, rechts der Vibe-Check mit
   Icon-Badge, H3 und Text, der Hinweis zu späteren Terminen und der Button.
   Die helle .calendar-card bleibt hell und rund (Kernel-Oberflächen-Reset,
   Abschnitt 22g); .cal14 liefert der Kernel.
   ------------------------------------------------------------ */
.verf-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--gap-xl); align-items: start; }
.verf-side { display: flex; flex-direction: column; gap: var(--gap-lg); }
.vibe { display: flex; flex-direction: column; gap: 16px; }
.vibe .h3 { margin: 0; }
.vibe .card-desc { margin: 0; max-width: 62ch; }
.calendar-note { padding-top: clamp(20px, 2.2vw, 28px); border-top: 1px solid var(--ivory-18); }
@media (max-width: 980px) {
  .verf-grid { grid-template-columns: minmax(0, 1fr); gap: var(--gap-lg); }
}

.calendar-card { margin-top: 0; }
.calendar-foot { margin-top: 0; }
.cal14 { margin-top: 6px; }

/* Beispiel-Caption UND der Kalender-Intro-Satz ("Hier siehst du...") gehören
   zur hellen .calendar-card. Die Kernel-Regeln .on-navy .caption/.card-desc
   (style.css) greifen dort mit, weil die Karte innerhalb der Navy-Sektion
   liegt (Nachkommen-Selektor, unabhängig von der eigenen Kartenfarbe) -
   deshalb hier auf die Navy-Textrollen zurückgesetzt (sonst Ivory-82 auf
   Weiß, WCAG-Fail). */
.calendar-card .caption { color: var(--navy-ink-2); margin-top: 4px; }
.calendar-card .card-desc { color: var(--navy-70); }

/* R2-2-07 (Seitenregel, Kernel-Regel für .cal14-range/.cal14-legend liegt
   beim Global-Agenten): ohne JS bleibt .cal14-grid leer, dann stehen der
   Intro-Satz ("Hier siehst du...") und die Beispielansicht-Caption sinnlos
   über/unter dem Fallback-Satz. :has() ist im Projekt bereits im Einsatz
   (models.css). */
.calendar-card:has(.cal14-grid:empty) > :is(.card-desc, .caption) { display: none; }

/* D-18: Vor- und Nachname sowie „Onboarding" sollen nicht automatisch
   getrennt werden (Kernel .card { hyphens: auto }, style.css). Betrifft
   den Kalender-Intro-Satz („… wann Melanie ab heute Zeit hat.") und die
   Beispielansicht-Caption („… beim Onboarding gepflegt."). */
.calendar-card p { hyphens: manual; }

/* Runde 15.10.2026 (Punkte 5 und 6): "Auf Anfrage" bekommt eine Champagner-Fläche mit durchgezogenem Goldrand
   statt der gestrichelten Linie (Leila: "sieht leer aus"). Bewusste Ausnahme von "Gold nur Academy" auf Leilas
   Wunsch; im Admin steht derselbe Punkt (--od-champagner / --od-gold). Nur im Kalender der Sedcard, die Farben
   kommen aus den Academy-Tokens. Zahl Navy (11,15:1), Wochentag und Monat Navy-70 (rund 5:1). */
.calendar-card .cal14-legend li[data-status="anfrage"]::before,
.calendar-card .cal14-day[data-status="anfrage"] {
  background: var(--academy-surface); border: 1.5px solid var(--academy-deep);
}
.calendar-card .cal14-day[data-status="anfrage"] { color: var(--navy); }
.calendar-card .cal14-day[data-status="anfrage"] :is(.cal14-weekday, .cal14-month) { color: var(--navy-70); }

/* ------------------------------------------------------------
   8. WEITERE DARLINGE
   Bewusst NICHT .sedcard-grid: dieser Class-Name triggert in script.js das
   Merkliste-Aufräumen anhand ALLER auf der Seite vorhandenen data-merken-IDs.
   Mit .sedcard-grid hier würden gemerkte IDs von models.html (die auf dieser
   Seite nicht vorkommen) beim Besuch fälschlich als verwaist gelöscht.
   Drei Karten bleiben ab 561px dreispaltig. Unter 561px zwei Spalten wie
   „Darlinge“ auf der Startseite (Motivtext im Platzhalter aus, sonst läuft er
   in das Maß hinein), die dritte Karte steht mittig darunter, genau so breit
   wie eine Spalte (gleiche Waisen-Regel wie .quality-grid im Kernel).
   Die Profil-Links stehen in jeder Karte auf einer Fußlinie, auch wenn die
   Ortszeile in der schmalen Karte umbricht (20-Fehler-Liste Nr. 19).
   ------------------------------------------------------------ */
.weitere-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--gap-lg); }
.weitere-grid .sedcard-body > .sedcard-cta { margin-top: auto; }
@media (max-width: 560px) {
  .weitere-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--gap-md); }
  .weitere-grid .sedcard-media .ph::after { display: none; }
  .weitere-grid > :last-child:nth-child(odd) {
    grid-column: 1 / -1; justify-self: center; width: calc((100% - var(--gap-md)) / 2);
  }
}

/* ============================================================
   WORDPRESS-ERGÄNZUNGEN (Paket P-B, Launch 2026-10)
   Zustände, die es im v5-Muster nicht gab, weil dort alle Felder gefüllt waren:
   fehlende Karten und Spalten (die Galerie-Zustände stehen in Abschnitt 2).
   Nur Tokens aus assets/css/style.css, keine neuen Rohwerte.
   ============================================================ */

/* Datenblatt mit nur einer Karte: volle Breite */
.datenblatt--einzeln { grid-template-columns: minmax(0, 1fr); }

/* Über mich mit nur einer Karte: volle Breite, Lesebreite begrenzt */
/* F2 (Review R1-D, Wichtig 2): die einzelne Karte (Über mich ohne "Das sagt Leila", oder umgekehrt) füllt die
   ganze Zeile wie die einzelne Eckdaten-Karte, nur der Text hält die Lesebreite. */
.ueber-paar--einzeln { grid-template-columns: minmax(0, 1fr); }
.ueber-paar--einzeln .ueber-card { grid-column: 1 / -1; max-width: none; }
.ueber-paar--einzeln .ueber-card > p,
.ueber-paar--einzeln .ueber-card .pullquote { max-width: 68ch; }

/* Interview ohne Lieblingsdinge bzw. Lieblingsdinge ohne Interview */
.interview-grid--solo,
.interview-grid--liebt { grid-template-columns: minmax(0, 1fr); }
.interview-grid--liebt .liebt-card { position: static; max-width: 640px; }

/* Honorar ohne Beträge: der Satz steht in einer ruhigen Karte */
.honorar-leer { padding: clamp(26px, 3.2vw, 44px); }
.honorar-leer .card-desc { margin: 0; font-size: var(--fs-body); color: var(--navy); }

/* Lange Werte in den Chips (Hero, Lieblingsdinge) umbrechen statt über den Rand zu laufen */
.chip { max-width: 100%; white-space: normal; overflow-wrap: anywhere; }

/* Kalender-Hinweis ohne Raster: Textlink in der hellen Karte in Navy */
.calendar-card .textlink { color: var(--navy); }
