/* Freunde Schöner – Ergänzungen zu theme.json */

/* Datentabelle: nur horizontale Linien, Zahlen in Mono (Tufte: keine Chartjunk-Rahmen) */
.wp-block-table.is-style-fs-daten table { border-collapse: collapse; width: 100%; }
.wp-block-table.is-style-fs-daten th,
.wp-block-table.is-style-fs-daten td { border: 0; border-bottom: 1px solid var(--wp--preset--color--linie); padding: 0.9rem 1rem 0.9rem 0; text-align: left; vertical-align: baseline; }
.wp-block-table.is-style-fs-daten thead { border: 0; }
.wp-block-table.is-style-fs-daten thead th { border-bottom: 2px solid var(--wp--preset--color--tinte); font-family: var(--wp--preset--font-family--mono); font-size: var(--wp--preset--font-size--x-small); font-weight: 500; letter-spacing: 0.06em; text-transform: uppercase; color: var(--wp--preset--color--grau); }
.wp-block-table.is-style-fs-daten td:first-child { font-family: var(--wp--preset--font-family--mono); font-size: 0.9375rem; white-space: nowrap; }
.wp-block-table.is-style-fs-daten strong { font-family: var(--wp--preset--font-family--display); font-size: 1.25rem; }
.wp-block-table.is-style-fs-daten figcaption { text-align: left; }

/* Rubrik: Linie oben, Mono-Versal */
.wp-block-heading.is-style-fs-rubrik { border-top: 2px solid var(--wp--preset--color--tinte); padding-top: 1rem; font-family: var(--wp--preset--font-family--mono); font-size: var(--wp--preset--font-size--x-small); font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase; line-height: 1.4; font-stretch: normal; }

/* Kopfzeile */
.fs-header { border-bottom: 1px solid var(--wp--preset--color--tinte); }
.fs-header .wp-block-navigation a { text-decoration: none; padding: 0.6rem 0; }
.fs-header .wp-block-navigation .current-menu-item > a,
.fs-header .wp-block-navigation a[aria-current="page"] { text-decoration: underline; text-decoration-color: var(--wp--preset--color--akzent); text-decoration-thickness: 2px; text-underline-offset: 6px; }

/* Fußzeile: Links hell */
.fs-footer a { color: var(--wp--preset--color--papier); }
.fs-footer a:hover { color: #F08A6A; }
.fs-footer .fs-mail a { text-decoration: none; border-bottom: 2px solid var(--wp--preset--color--akzent); }

/* Bilder ohne Rundungen, Cover-Raster quadratisch */
.fs-cover-raster img { aspect-ratio: 1 / 1; object-fit: cover; width: 100%; }
.fs-portraits img { aspect-ratio: 1 / 1; object-fit: cover; width: 100%; }

/* Sprungmarken unter fixer Kopfzeile nicht verstecken */
:target { scroll-margin-top: 1rem; }

/* Fokus sichtbar für Tastatur */
:where(a, button, input, summary):focus-visible { outline: 2px solid var(--wp--preset--color--akzent); outline-offset: 3px; }

/* Bewegung reduzieren */
@media (prefers-reduced-motion: reduce) { * { scroll-behavior: auto !important; transition: none !important; animation: none !important; } }

/* Überschriften nie mitten im Wort trennen; lieber kleiner (siehe Schriftgrößen in theme.json) */
:where(h1, h2, h3, .wp-block-heading, .wp-block-site-title) { overflow-wrap: normal; word-break: normal; hyphens: manual; text-wrap: balance; }
/* Fließtext darf trennen (Deutsch, lange Komposita) */
:where(p, li, td, figcaption) { hyphens: auto; overflow-wrap: break-word; }

/* --- Typografie-Feinschliff 1.0.3 --- */
/* Display-Schrift als Absatz (Datum, Album-Hinweis, Mail): kompakter Zeilenabstand, fett */
p.has-display-font-family { font-weight: 700; line-height: 1.05; letter-spacing: -0.01em; text-wrap: balance; }
/* Rubrik-Zeilen (Mono, klein): Versal, gesperrt */
p.has-mono-font-family.has-x-small-font-size { text-transform: uppercase; letter-spacing: 0.08em; line-height: 1.4; }
.fs-footer p.has-mono-font-family.has-x-small-font-size { text-transform: none; letter-spacing: 0.02em; }
/* Abstände: Rubrik → Titel → Unterzeile eng zusammen (Gestaltgesetz der Nähe) */
:where(.wp-block-column, .wp-block-group) > p.has-mono-font-family.has-x-small-font-size + * { margin-block-start: 0.5rem; }
:where(.wp-block-column, .wp-block-group) > p.has-display-font-family + p { margin-block-start: 0.6rem; }
:where(.wp-block-column, .wp-block-group) > .wp-block-heading + p { margin-block-start: 1rem; }
/* Kleiner Sekundärtext */
p.has-small-font-size { line-height: 1.5; }

/* --- 1.0.4: Zeilenabstand nach Schriftgröße, Satzbreite, Bildunterschriften --- */
.has-large-font-size { line-height: 1.4; }
.has-x-large-font-size { line-height: 1.2; }
.has-xx-large-font-size, .has-huge-font-size { line-height: 0.95; }
/* Lesbare Zeilenlänge für Fließtext (ca. 60–70 Zeichen) */
.wp-block-column > p, .wp-block-group > p { max-width: 68ch; }
.wp-block-column > p.has-large-font-size { max-width: 40ch; }
/* Bildunterschriften linksbündig, eng am Bild */
.wp-element-caption, .wp-block-image figcaption { text-align: left; margin-top: 0.5rem; margin-bottom: 0; line-height: 1.4; }
/* Überschrift → Lead enger */
:where(.wp-block-column, .wp-block-group) > h2.wp-block-heading + p { margin-block-start: 1.25rem; }

/* --- 1.0.5: Claim passt sich der Spaltenbreite an, egal welche Schrift geladen ist --- */
.wp-block-column:has(> h1.wp-block-heading),
.wp-block-group:has(> h1.wp-block-heading) { container-type: inline-size; }
.wp-block-column > h1.wp-block-heading,
.wp-block-group > h1.wp-block-heading { font-size: clamp(2.5rem, 14cqi, 6.5rem); max-width: 100%; }
/* Schmale Schnitte nutzen, wo die Schrift sie hat (Archivo variabel, Helvetica Neue) */
/* Nie über den Rand laufen lassen */
html, body { overflow-x: clip; }
.fs-header .wp-block-navigation { flex-wrap: wrap; row-gap: 0.25rem; }

/* --- 1.1.3: Tabellen --- */
/* Tabellen nie silbentrennen; lange Wörter/URLs dürfen umbrechen statt zu scrollen */
.wp-block-table.is-style-fs-daten :where(th, td) { hyphens: manual; overflow-wrap: anywhere; }
.wp-block-table.is-style-fs-daten td:first-child { white-space: normal; }
/* Datumsspalte nur in der Konzertliste zusammenhalten */
.fs-konzerte td:first-child { white-space: nowrap; }
/* Zweispaltige Tabellen (Eckdaten) – egal ob neu eingefügt oder schon gespeichert */
.wp-block-table.is-style-fs-daten:has(tbody tr > td:nth-child(2):last-child) { overflow-x: visible; }
.wp-block-table.is-style-fs-daten:has(tbody tr > td:nth-child(2):last-child) table { table-layout: fixed; width: 100%; }
.wp-block-table.is-style-fs-daten:has(tbody tr > td:nth-child(2):last-child) :where(thead th, td):first-child { width: 36%; }
.wp-block-table.is-style-fs-daten:has(tbody tr > td:nth-child(2):last-child) td:first-child { color: var(--wp--preset--color--grau); font-size: 0.75rem; letter-spacing: 0.04em; padding-right: 0.75rem; }
