/*
 * Stylesheet der Gästeseite. Gestaltung „Plakat“ (Entscheidung 2026-10-05): große, breite Versalien,
 * harte Kanten, randlose Farbbänder. Mobil zuerst, hell und dunkel über Variablen.
 *
 * Jede Wohnung hat ihre Farbwelt: die Akzentfarbe kommt als /akzent/<farbe>.css (Wohnungsseite,
 * überschreibt --akzent und --akzent-text) und als /akzent/welten/<farben>.css (Bänder der Startseite).
 * Ein Thema (body.thema-burg) tauscht stattdessen den ganzen Satz: Farben, Schrift, Schmuck.
 *
 * Farbwerte stehen nur in den beiden :root-Blöcken; alles andere nutzt Variablen (Wächtertest).
 * Die Schriften liegen unter /static/schrift/ (SIL Open Font License), nichts kommt von fremden Servern.
 */

@font-face {
  font-family: "Archivo";
  src: url("/static/schrift/archivo.woff2") format("woff2");
  font-weight: 400 900;
  font-stretch: 62% 125%;
  font-display: swap;
}

@font-face {
  font-family: "Grenze Gotisch";
  src: url("/static/schrift/grenze-gotisch.woff2") format("woff2");
  font-weight: 400 900;
  font-display: swap;
}

:root {
  --grund: #f4f5ef;
  --flaeche: #ffffff;
  --text: #0f0f10;
  --text-leise: #55554f;
  --rand: #c9cac2;
  --rand-stark: #6a6b64;
  --akzent: #1f6f5c;
  --akzent-text: #ffffff;
  --fokus: #0b57d0;
  --warnung-grund: #fff4d6;
  --fehler-grund: #fde8e8;
  --hinweis-grund: #e8f1fb;
  /* Tinte: das dunkle Band der Anfrage, in beiden Modi dunkel */
  --tinte: #0f0f10;
  --tinte-flaeche: #1c1d1f;
  --tinte-text: #f5f5f0;
  --tinte-text-leise: #b9bab2;
  --tinte-rand: #3a3b3e;
  --tinte-rand-stark: #9a9b94;
  --tinte-fokus: #8ab4f8;
  --tinte-warnung-grund: #3d3417;
  --tinte-fehler-grund: #4a1c1c;
  --tinte-hinweis-grund: #1c2a3a;
  /* Farbwelten der Startseite für Wohnungen ohne eigene Akzentfarbe */
  --welt-a: #1f6f5c;
  --welt-a-text: #ffffff;
  --welt-b: #f2c230;
  --welt-b-text: #1a1400;
  --welt-c: #24406e;
  --welt-c-text: #ffffff;
  /* Thema Burg: Stein, Pergament, Gold; in beiden Modi dunkel */
  --burg-grund: #14110d;
  --burg-flaeche: #221d17;
  --burg-mauer: #2b2620;
  --burg-text: #efe6d2;
  --burg-text-leise: #b8ae9a;
  --burg-rand: #4a4136;
  --burg-rand-stark: #8f8573;
  --burg-gold: #e2b04a;
  --burg-gold-text: #1a1408;
  --burg-fokus: #8ab4f8;
  --burg-warnung-grund: #3d3417;
  --burg-fehler-grund: #4a1c1c;
  --burg-hinweis-grund: #1f2a33;
  --schrift: "Archivo", system-ui, -apple-system, "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  --schrift-plakat: "Archivo", "Arial Black", system-ui, sans-serif;
  --schrift-burg: "Grenze Gotisch", "Old English Text MT", Georgia, serif;
  --schrift-burg-lauf: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
  --plakat-gewicht: 900;
  --plakat-breite: 125%;
  --plakat-schreibung: uppercase;
  --plakat-sperrung: -0.01em;
  color-scheme: light dark;
}

@media (prefers-color-scheme: dark) {
  :root {
    --grund: #0f0f10;
    --flaeche: #1c1d1f;
    --text: #f5f5f0;
    --text-leise: #b9bab2;
    --rand: #3a3b3e;
    --rand-stark: #9a9b94;
    --akzent: #5fb89f;
    --akzent-text: #0b1a15;
    --fokus: #8ab4f8;
    --warnung-grund: #3d3417;
    --fehler-grund: #4a1c1c;
    --hinweis-grund: #1c2a3a;
    --tinte: #1c1d1f;
    --tinte-flaeche: #0f0f10;
    --tinte-text: #f5f5f0;
    --tinte-text-leise: #b9bab2;
    --tinte-rand: #3a3b3e;
    --tinte-rand-stark: #9a9b94;
    --tinte-fokus: #8ab4f8;
    --tinte-warnung-grund: #3d3417;
    --tinte-fehler-grund: #4a1c1c;
    --tinte-hinweis-grund: #1c2a3a;
    --welt-a: #1f6f5c;
    --welt-a-text: #ffffff;
    --welt-b: #f2c230;
    --welt-b-text: #1a1400;
    --welt-c: #24406e;
    --welt-c-text: #ffffff;
    --burg-grund: #14110d;
    --burg-flaeche: #221d17;
    --burg-mauer: #2b2620;
    --burg-text: #efe6d2;
    --burg-text-leise: #b8ae9a;
    --burg-rand: #4a4136;
    --burg-rand-stark: #8f8573;
    --burg-gold: #e2b04a;
    --burg-gold-text: #1a1408;
    --burg-fokus: #8ab4f8;
    --burg-warnung-grund: #3d3417;
    --burg-fehler-grund: #4a1c1c;
    --burg-hinweis-grund: #1f2a33;
  }
}

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  background: var(--grund);
  color: var(--text);
  font: 1.0625rem/1.55 var(--schrift);
}

.spalte { max-width: 72rem; margin: 0 auto; padding: 0 1.25rem; }

/* Plakatschrift: Überschriften und die großen Zahlen. Ein Thema stellt sie über die Variablen um. */
h1, h2, .karte__titel, .kennzahlen dd {
  font-family: var(--schrift-plakat); font-weight: var(--plakat-gewicht); font-stretch: var(--plakat-breite);
  text-transform: var(--plakat-schreibung); letter-spacing: var(--plakat-sperrung); line-height: 0.95;
}
/* Lange Wörter: erst trennen (wo der Browser Deutsch trennen kann), nur im Notfall mitten im Wort umbrechen. */
h1, h2, .karte__titel { overflow-wrap: break-word; hyphens: auto; }
h1 { font-size: clamp(1.9rem, 7vw, 5rem); margin: 2.5rem 0 1.25rem; }
h2 { font-size: clamp(1.5rem, 4vw, 2.75rem); margin: 3.5rem 0 1.25rem; }
h3 { font-size: 1.1rem; margin: 0 0 0.5rem; }

a { color: inherit; text-underline-offset: 0.18em; }
a:hover { text-decoration-thickness: 2px; }

:focus-visible { outline: 3px solid var(--fokus); outline-offset: 2px; }
main:focus { outline: none; }

.nur-lesen {
  position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden;
  clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0;
}

.sprung {
  position: absolute; left: 0.5rem; top: -4rem; background: var(--flaeche); color: var(--text);
  padding: 0.5rem 0.75rem; border: 2px solid var(--text); z-index: 10;
}
.sprung:focus { top: 0.5rem; }

.kopf { border-bottom: 2px solid var(--text); }
.kopf .spalte { padding-top: 0.6rem; padding-bottom: 0.6rem; }
.kopf__name {
  display: inline-block; padding: 0.6rem 0; font-weight: 800; font-stretch: 125%; font-size: 1rem;
  text-transform: uppercase; letter-spacing: 0.04em; text-decoration: none;
}

.fuss { margin-top: 4rem; border-top: 2px solid var(--text); color: var(--text-leise); }
.fuss .spalte { padding-top: 1.25rem; padding-bottom: 2rem; }
.fuss nav a { display: inline-block; padding: 0.6rem 0; margin-right: 1.25rem; }

.betrag { white-space: nowrap; }
.klein { font-size: 0.9rem; color: var(--text-leise); }
.hilfe { font-size: 0.9rem; color: var(--text-leise); font-weight: 400; text-transform: none; letter-spacing: 0; }

/* ---------- Knöpfe ---------- */

.knopf {
  display: inline-flex; align-items: center; min-height: 3rem; padding: 0.7rem 1.4rem; border: 2px solid var(--text); border-radius: 0;
  background: var(--flaeche); color: var(--text); font: inherit; font-size: 0.95rem; font-weight: 800; text-transform: uppercase;
  letter-spacing: 0.04em; text-decoration: none; cursor: pointer;
}
.knopf:hover { text-decoration: underline; text-decoration-thickness: 2px; }
.knopf--haupt { background: var(--akzent); color: var(--akzent-text); border-color: var(--akzent); }
.knopf[disabled], fieldset[disabled] .knopf { opacity: 0.55; cursor: not-allowed; }

/* ---------- Startseite: je Wohnung ein randloses Farbband ---------- */

.auftakt { padding-top: 2rem; padding-bottom: 2.5rem; }
.auftakt h1 { margin: 0; font-size: clamp(1.5rem, 7.2vw, 6rem); }

.welten { list-style: none; padding: 0; margin: 0; }
.welt {
  --welt: var(--welt-a); --welt-text: var(--welt-a-text); --fokus: var(--welt-text);
  background: var(--welt); color: var(--welt-text); padding: 3rem 0 3.5rem;
}
.welt:nth-child(3n+2) { --welt: var(--welt-b); --welt-text: var(--welt-b-text); }
.welt:nth-child(3n) { --welt: var(--welt-c); --welt-text: var(--welt-c-text); }
.welt.welt--burg { --welt: var(--burg-mauer); --welt-text: var(--burg-text); padding-top: 0; }

.karte__titel { margin: 0 0 1.5rem; font-size: clamp(1.5rem, 7.2vw, 6rem); }
.karte__titel a { text-decoration: none; }
.karte__titel a:hover { text-decoration: underline; text-decoration-thickness: 0.08em; }

.welt__reihe { display: grid; gap: 1.5rem 2.5rem; align-items: end; }
.karte__bild, .titelbild { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.karte__bild--leer { background: repeating-linear-gradient(135deg, currentColor 0 2px, transparent 2px 0.9rem); opacity: 0.35; }
.karte__text p { margin: 0 0 1rem; }
.karte__text p:last-child { margin-bottom: 0; }
.karte__daten { font-weight: 700; font-size: 1.15rem; }
.knopf--welt { background: var(--welt-text); color: var(--welt); border-color: var(--welt-text); }

@media (min-width: 46rem) {
  .welt__reihe { grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); }
  .welt:nth-child(even) .welt__reihe { grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); }
  .welt:nth-child(even) .karte__bild { order: 2; }
}

/* ---------- Wohnungsseite: Bühne in der Farbe der Wohnung ---------- */

.buehne { --fokus: var(--akzent-text); background: var(--akzent); color: var(--akzent-text); padding: 0.75rem 0 2.5rem; }
.brot { margin: 0 0 1.25rem; }
.brot a { display: inline-block; padding: 0.6rem 0; }
.buehne h1 { margin: 0 0 1.75rem; font-size: clamp(1.5rem, 7.2vw, 6rem); line-height: 0.9; }
.buehne__reihe { display: grid; gap: 1.75rem 3rem; align-items: end; }

.kennzahlen { display: flex; flex-wrap: wrap; gap: 1.25rem 2.5rem; margin: 0; }
.kennzahlen div { display: flex; flex-direction: column-reverse; }
.kennzahlen dd { margin: 0; font-size: clamp(2rem, 6vw, 3.5rem); font-variant-numeric: tabular-nums; }
.kennzahlen dt { font-size: 0.82rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; }

/* Mit Titelbild: das Bild ragt unten aus der Bühne in den Inhalt. */
.titelbild { max-height: 28rem; }
.buehne--bild { padding-bottom: 0; }
.buehne--bild .titelbild { margin-bottom: -3rem; }
.buehne--bild .kennzahlen { order: -1; }
.buehne--bild + .spalte { padding-top: 3rem; }
@media (min-width: 46rem) {
  .buehne--bild .buehne__reihe { grid-template-columns: minmax(0, 1fr) auto; }
  .buehne--bild .kennzahlen { order: 0; flex-direction: column; padding-bottom: 2.5rem; }
}

.vorspann { max-width: 46rem; padding-top: 2.5rem; }
.vorspann p { margin: 0 0 1rem; }
.vorspann p:first-child { font-size: clamp(1.2rem, 2.4vw, 1.6rem); line-height: 1.35; font-weight: 500; }

.tabelle { overflow-x: auto; }
.tabelle table { border-collapse: collapse; width: 100%; min-width: 34rem; font-size: 0.98rem; font-variant-numeric: tabular-nums; }
.tabelle th, .tabelle td { text-align: left; padding: 0.75rem 0.9rem 0.75rem 0; border-bottom: 1px solid var(--text); vertical-align: top; }
.tabelle thead th { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.08em; border-bottom-width: 3px; }

dl.daten { display: grid; grid-template-columns: max-content 1fr; gap: 0.35rem 1.25rem; background: var(--flaeche); border: 2px solid var(--text); padding: 1rem 1.25rem; }
dl.daten dt { color: var(--text-leise); }
dl.daten dd { margin: 0; font-weight: 700; }

/* ---------- Kalender ---------- */

.kalender__nav { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; margin-bottom: 0.75rem; flex-wrap: wrap; }
.kalender__bereich { font-weight: 700; }
.blaettern { display: inline-flex; align-items: center; min-height: 2.75rem; padding: 0.4rem 0.9rem; border: 2px solid var(--text); text-decoration: none; font-weight: 700; background: var(--flaeche); }
.blaettern--aus { opacity: 0.45; border-style: dashed; }
.kalender__monate { display: grid; gap: 1.5rem 2rem; }
@media (min-width: 46rem) { .kalender__monate { grid-template-columns: 1fr 1fr; } }

table.monat { width: 100%; border-collapse: separate; border-spacing: 2px; table-layout: fixed; }
table.monat caption { text-align: left; font-weight: 800; font-size: 0.9rem; text-transform: uppercase; letter-spacing: 0.08em; padding: 0.5rem 0.1rem; caption-side: top; }
table.monat th { font-size: 0.8rem; font-weight: 700; color: var(--text-leise); padding: 0.2rem 0; text-align: center; }
table.monat abbr { text-decoration: none; }

.tag { position: relative; text-align: center; height: 2.75rem; padding: 0; border: 1px solid var(--rand); font-variant-numeric: tabular-nums; }
td.leer { border: 0; }
.tag__zahl { display: block; line-height: 2.2rem; font-size: 1rem; }
.tag__marke { position: absolute; right: 0.2rem; bottom: 0.1rem; font-size: 0.7rem; line-height: 1; }
.tag--frei { background: var(--flaeche); font-weight: 600; }
/* Belegt: umgekehrte Farben, durchgestrichen und mit Zeichen — nicht nur an der Farbe zu erkennen. */
.tag--belegt { background: var(--text); color: var(--grund); border-color: var(--text); }
.tag--belegt .tag__zahl { text-decoration: line-through; }
.tag--kein-preis, .tag--vergangen { color: var(--text-leise); border-style: dashed; }
.tag--zwischen { box-shadow: inset 0 0 0 3px var(--akzent); }
.tag--gewaehlt { background: var(--akzent); color: var(--akzent-text); border-color: var(--akzent); font-weight: 800; }

.tag__knopf { all: unset; box-sizing: border-box; display: block; width: 100%; height: 100%; cursor: pointer; }
.tag__knopf:hover { box-shadow: inset 0 0 0 3px var(--akzent); }
.tag__knopf:focus-visible { outline: 3px solid var(--fokus); outline-offset: -2px; }

.legende { display: flex; flex-wrap: wrap; gap: 0.5rem 1.5rem; list-style: none; padding: 0; margin: 1rem 0 0.25rem; }
.legende li { display: flex; align-items: center; gap: 0.5rem; }
.legende__zelle { display: inline-block; width: 2.5rem; height: 2.25rem; }
.legende__zelle .tag__zahl { line-height: 2rem; }

/* ---------- Anfrage: dunkles Band, das die Farbnamen örtlich auf „Tinte“ umstellt ---------- */

.anfrage {
  --grund: var(--tinte); --flaeche: var(--tinte-flaeche); --text: var(--tinte-text); --text-leise: var(--tinte-text-leise);
  --rand: var(--tinte-rand); --rand-stark: var(--tinte-rand-stark); --fokus: var(--tinte-fokus);
  --warnung-grund: var(--tinte-warnung-grund); --fehler-grund: var(--tinte-fehler-grund); --hinweis-grund: var(--tinte-hinweis-grund);
  color-scheme: dark; background: var(--grund); color: var(--text); margin-top: 4rem; padding: 3.5rem 0 4rem;
}
.anfrage h2 { margin-top: 0; font-size: clamp(1.5rem, 3vw, 2.1rem); }
.anfrage__reihe { display: grid; gap: 1.5rem 4rem; }
@media (min-width: 60rem) { .anfrage__reihe { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); } }
.anfrage .knopf--haupt { background: var(--text); color: var(--grund); border-color: var(--text); }

.formular fieldset {
  border: 0; padding: 0; margin: 0; min-width: 0;
  display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr)); gap: 1.1rem 1.5rem; align-items: start;
}
.feld { display: grid; gap: 0.35rem; }
.feld label { font-weight: 700; font-size: 0.82rem; text-transform: uppercase; letter-spacing: 0.08em; }
.feld input[type="text"], .feld input[type="email"], .feld input[type="tel"], .feld input[type="date"], .feld input[type="number"], .feld textarea {
  width: 100%; min-height: 2.9rem; font: inherit; padding: 0.6rem 0.8rem; color: var(--text); background: var(--flaeche);
  border: 2px solid var(--rand-stark); border-radius: 0;
}
.feld textarea { resize: vertical; }
/* iOS zoomt beim Fokussieren in Felder unter 16 px hinein; nur bei Touch, damit die Desktop-Optik bleibt. */
@media (pointer: coarse) {
  .feld input, .feld textarea, .feld select { font-size: max(1rem, 16px); min-height: 2.75rem; }
}
.feld--breit, .formular .vorschau, .formular .klein, .formular .knopf { grid-column: 1 / -1; }
.formular .klein { margin: 0; max-width: 46rem; }
.formular .knopf { justify-self: start; }

.fallen-feld { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.meldung { padding: 0.75rem 1rem; margin: 1rem 0; border: 2px solid var(--rand-stark); scroll-margin-top: 1rem; }
.meldung p, .meldung ul { margin: 0.25rem 0; }
.meldung--fehler { background: var(--fehler-grund); border-left-width: 0.4rem; }
.meldung--warnung { background: var(--warnung-grund); border-left-width: 0.4rem; }
.meldung--hinweis { background: var(--hinweis-grund); border-left-width: 0.4rem; }

.vorschau { background: var(--flaeche); border: 2px solid var(--rand-stark); padding: 1rem 1.25rem; }
.vorschau[hidden] { display: none; }
.vorschau table { width: 100%; border-collapse: collapse; font-size: 0.98rem; font-variant-numeric: tabular-nums; }
.vorschau th, .vorschau td { text-align: left; padding: 0.4rem 0.4rem 0.4rem 0; border-bottom: 1px solid var(--rand); vertical-align: top; }
.vorschau td:nth-child(n+2), .vorschau th:nth-child(n+2) { text-align: right; white-space: nowrap; padding-right: 0; }
.vorschau tfoot td { font-weight: 800; font-size: 1.3rem; border-bottom: 0; border-top: 3px solid var(--text); padding-top: 0.6rem; }
.vorschau--hinweis { background: var(--hinweis-grund); }
.vorschau .pos-detail { display: none; }
/* Handy: Menge und Einzelpreis wandern als Zeile unter die Beschreibung, sonst läuft die Tabelle über den Rand. */
@media (max-width: 34rem) {
  .vorschau th:nth-child(2), .vorschau td:nth-child(2), .vorschau th:nth-child(3), .vorschau td:nth-child(3) { display: none; }
  .vorschau .pos-detail { display: block; color: var(--text-leise); font-size: 0.85rem; }
}

/* Rechtstexte des Betreibers: lesbar gesetzt, ohne Plakatschrift in den Zwischenüberschriften. */
.rechtstext { max-width: 45rem; }
.rechtstext h1 { font-size: clamp(1.75rem, 5vw, 3rem); }
.rechtstext h2 { font-size: 1.3rem; font-stretch: 100%; font-weight: 800; text-transform: none; letter-spacing: 0; line-height: 1.3; margin-top: 2rem; }

/* ---------- Thema Burg: Stein, Gold, gebrochene Schrift, Zinnen, Torbogen ---------- */

body.thema-burg {
  --grund: var(--burg-grund); --flaeche: var(--burg-flaeche); --text: var(--burg-text); --text-leise: var(--burg-text-leise);
  --rand: var(--burg-rand); --rand-stark: var(--burg-rand-stark); --akzent: var(--burg-gold); --akzent-text: var(--burg-gold-text);
  --fokus: var(--burg-fokus); --warnung-grund: var(--burg-warnung-grund); --fehler-grund: var(--burg-fehler-grund); --hinweis-grund: var(--burg-hinweis-grund);
  --tinte: var(--burg-mauer); --tinte-flaeche: var(--burg-grund); --tinte-text: var(--burg-text); --tinte-text-leise: var(--burg-text-leise);
  --tinte-rand: var(--burg-rand); --tinte-rand-stark: var(--burg-rand-stark); --tinte-fokus: var(--burg-fokus);
  --tinte-warnung-grund: var(--burg-warnung-grund); --tinte-fehler-grund: var(--burg-fehler-grund); --tinte-hinweis-grund: var(--burg-hinweis-grund);
  --schrift: var(--schrift-burg-lauf); --schrift-plakat: var(--schrift-burg);
  --plakat-gewicht: 700; --plakat-breite: 100%; --plakat-schreibung: none; --plakat-sperrung: 0;
  color-scheme: dark; font-size: 1.125rem;
}
.thema-burg h1, .thema-burg h2, .welt--burg .karte__titel { color: var(--burg-gold); }
.welt--burg .karte__titel {
  font-family: var(--schrift-burg); font-weight: 700; font-stretch: 100%; text-transform: none; letter-spacing: 0;
  font-size: clamp(2.75rem, 12vw, 9rem); line-height: 0.85;
}
.welt--burg .knopf--welt { background: var(--burg-gold); color: var(--burg-gold-text); border-color: var(--burg-gold); }

/* Zinnen: Kerben in der Farbe des Nachthimmels am oberen Rand der Mauer. */
.thema-burg .buehne::before, .welt--burg::before {
  content: ""; display: block; height: 2rem; margin-bottom: 1.5rem;
  background: repeating-linear-gradient(90deg, var(--burg-mauer) 0 3.5rem, var(--burg-grund) 3.5rem 7rem);
}
.thema-burg .buehne { --fokus: var(--burg-gold); background: var(--burg-mauer); color: var(--burg-text); padding-top: 0; }
.thema-burg .buehne h1 { font-size: clamp(3rem, 13vw, 10rem); line-height: 0.85; }
.thema-burg .kennzahlen dd { font-family: var(--schrift); font-weight: 700; }

/* Torbogen: das Titelbild steht als Fenster auf dem Mauerfuß, statt aus der Bühne zu ragen. */
.thema-burg .titelbild {
  justify-self: center; max-width: 22rem; max-height: none; aspect-ratio: 3 / 4; margin-bottom: 0;
  border: 6px solid var(--burg-gold); border-bottom: 0; border-radius: 999px 999px 0 0;
}
.thema-burg .buehne--bild .kennzahlen { order: -1; padding-bottom: 2.5rem; }
.thema-burg .buehne--bild + .spalte { padding-top: 0; }

.thema-burg .kopf__name { font-stretch: 100%; font-size: 1.2rem; text-transform: none; letter-spacing: 0; }
.thema-burg .knopf { font-size: 1.05rem; font-weight: 700; text-transform: none; letter-spacing: 0; }
.thema-burg .anfrage .knopf--haupt { background: var(--akzent); color: var(--akzent-text); border-color: var(--akzent); }
.thema-burg .feld label, .thema-burg .kennzahlen dt, .thema-burg table.monat caption, .thema-burg .tabelle thead th { text-transform: none; letter-spacing: 0; font-size: 1rem; }
/* Urkunde: die Preisvorschau auf Pergament. */
.thema-burg .vorschau {
  --text: var(--burg-grund); --text-leise: var(--burg-rand); --rand: var(--burg-rand-stark);
  background: var(--burg-text); color: var(--burg-grund); border: 0; outline: 1px solid var(--burg-grund); outline-offset: -0.5rem; padding: 1.5rem 1.75rem;
}

/* Bestätigung und Preise lassen sich ausdrucken: ohne Bedienelemente, Tabellen ohne Scrollrahmen. */
@media print {
  .sprung, .fuss, .kalender__nav, .blaettern, .knopf, .formular { display: none; }
  .tabelle { overflow: visible; }
  .welt, .tabelle, dl.daten { break-inside: avoid; }
}

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