/* ============================================================
   hannahjulian.de — Designsprache "Hausmarke"
   Tokens 1:1 aus /lostandfound/ (siehe _shared/HAUSMARKE.md).
   Monochrom, System-Schriften (keine Webfonts), weisse Karten
   auf hellgrauem Grund. Kein JavaScript noetig.
   ============================================================ */

:root {
  /* --- Farbe --- */
  --bg:          #F2F2F5;
  --bg-tief:     #EAEAEE;
  --card:        #FFFFFF;
  --ink:         #1A1A1A;
  --ink-soft:    #6B6F76;
  --ink-faint:   #9BA0A8;
  --accent:      #1A1A1A;
  --accent-deep: #000000;
  --accent-soft: rgba(26,26,26,.06);
  --muted:       #6B7280;
  --hairline:    rgba(0,0,0,.09);
  --hairline-kraeftig: rgba(0,0,0,.14);

  /* --- Schrift (System, kein Webfont-Download) --- */
  --sans: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", system-ui, Roboto, "Helvetica Neue", sans-serif;

  /* --- Groessen (fluid) --- */
  --t-display: clamp(2.15rem, 1.35rem + 3.4vw, 3.9rem);
  --t-h2:      clamp(1.5rem, 1.15rem + 1.5vw, 2.3rem);
  --t-h3:      clamp(1.12rem, 1rem + .5vw, 1.4rem);
  --t-body:    clamp(1rem, .96rem + .18vw, 1.09rem);
  --t-klein:   .875rem;
  --t-mikro:   .76rem;

  /* --- Abstand (4/8-Rhythmus) --- */
  --s-1: .25rem; --s-2: .5rem;  --s-3: .75rem; --s-4: 1rem;
  --s-5: 1.5rem; --s-6: 2rem;   --s-7: 3rem;   --s-8: 4rem;
  --s-sektion: clamp(3.5rem, 2rem + 6vw, 7rem);

  /* --- Form --- */
  --r-klein: 10px;  --r-mittel: 14px;  --r-gross: 20px;  --r-pill: 999px;
  --schatten-karte: 0 1px 2px rgba(0,0,0,.04), 0 8px 24px rgba(0,0,0,.05);
  --schatten-hoch:  0 2px 4px rgba(0,0,0,.05), 0 16px 40px rgba(0,0,0,.08);

  /* --- Bewegung --- */
  --ease: cubic-bezier(.32,.72,0,1);
  --dauer: 220ms;
}

/* ---------------- Grundlage ---------------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: var(--sans);
  font-size: var(--t-body);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-underline-offset: .18em; text-decoration-thickness: from-font; }
a:hover { text-decoration-color: var(--ink-faint); }
:focus-visible { outline: 3px solid var(--ink); outline-offset: 3px; border-radius: 4px; }
/* Fokusring auf dunklen Flaechen (CTA-Block, Footer-Invers): heller Ring, sonst 1,11:1 Kontrast */
.cta :focus-visible, .btn--primary:focus-visible, [data-dunkel] :focus-visible { outline-color: #FFFFFF; }

h1, h2, h3, h4 { font-weight: 700; letter-spacing: -.022em; line-height: 1.12; margin: 0 0 var(--s-4); color: var(--ink); }
h1 { font-size: var(--t-display); letter-spacing: -.032em; }
h2 { font-size: var(--t-h2); }
h3 { font-size: var(--t-h3); letter-spacing: -.015em; line-height: 1.3; }
p  { margin: 0 0 var(--s-4); max-width: 68ch; }
strong { font-weight: 650; }
.mb-0 { margin-bottom: 0; }
.text-klein { font-size: var(--t-klein); }
.text-soft  { color: var(--ink-soft); }
.zahl { font-variant-numeric: tabular-nums; font-weight: 650; }

/* ---------------- Layout ---------------- */
.wrap { width: min(100% - 2.5rem, 1180px); margin-inline: auto; }
.wrap--text { width: min(100% - 2.5rem, 760px); margin-inline: auto; }
.section { padding-block: var(--s-sektion); }
.section--tight { padding-block: clamp(2rem, 1.4rem + 2.6vw, 3.5rem); }

.skiplink {
  position: absolute; left: -9999px; top: 0; z-index: 100;
  background: var(--ink); color: #fff; padding: var(--s-3) var(--s-5);
  border-radius: 0 0 var(--r-klein) 0; font-weight: 600;
}
.skiplink:focus { left: 0; }

/* ---------------- Kopfzeile ---------------- */
.site-header {
  position: sticky; top: 0; z-index: 40;
  background: color-mix(in srgb, var(--bg) 88%, transparent);
  border-bottom: 1px solid var(--hairline);
}
@supports (backdrop-filter: blur(1px)) {
  .site-header { backdrop-filter: saturate(180%) blur(14px); }
}
.site-header__inner {
  display: flex; align-items: center; gap: var(--s-5);
  justify-content: space-between; flex-wrap: wrap;
  padding-block: var(--s-3);
}
/* Wortmarke mit HJ-Kreis */
.brand { display: inline-flex; align-items: center; gap: .6rem; font-weight: 650; text-decoration: none; letter-spacing: -.01em; }
.brand::before {
  content: "HJ";
  display: grid; place-items: center;
  width: 2rem; height: 2rem; border-radius: var(--r-pill);
  background: var(--ink); color: #fff;
  font-size: .68rem; font-weight: 700; letter-spacing: .02em;
}
.brand__kontext {
  font-size: var(--t-mikro); text-transform: uppercase; letter-spacing: .14em;
  color: var(--ink-soft); border: 1px solid var(--hairline-kraeftig);
  border-radius: var(--r-pill); padding: .28rem .7rem; white-space: nowrap;
}
.nav { display: flex; align-items: center; gap: var(--s-4); flex-wrap: wrap; font-size: var(--t-klein); }
.nav a { color: var(--ink-soft); text-decoration: none; padding: .35rem 0; transition: color var(--dauer) var(--ease); }
.nav a:hover, .nav a[aria-current="page"] { color: var(--ink); }
.nav a[aria-current="page"] { font-weight: 600; box-shadow: inset 0 -2px 0 var(--ink); }
.nav__firmen { font-weight: 600; color: var(--ink) !important; }
/* Sprachumschalter als Pill (Hausmarke) */
.nav__lang {
  display: inline-flex; align-items: center; gap: .4rem;
  background: var(--card); border: 1px solid var(--hairline);
  border-radius: var(--r-pill); padding: .35rem .8rem;
  font-size: var(--t-klein); text-decoration: none; color: var(--ink) !important;
  box-shadow: 0 1px 2px rgba(0,0,0,.04);
  transition: box-shadow var(--dauer) var(--ease), transform var(--dauer) var(--ease);
}
.nav__lang:hover { box-shadow: var(--schatten-karte); transform: translateY(-1px); }

.breadcrumb { font-size: var(--t-klein); color: var(--ink-faint); padding-top: var(--s-5); }
.breadcrumb a { color: var(--ink-soft); text-decoration: none; }
.breadcrumb a:hover { color: var(--ink); text-decoration: underline; }

/* ---------------- Eyebrow-Pills ---------------- */
.eyebrow {
  display: inline-flex; align-items: center; gap: .45rem;
  font-size: var(--t-mikro); font-weight: 600;
  text-transform: uppercase; letter-spacing: .16em; color: var(--ink-soft);
  background: var(--accent-soft); border-radius: var(--r-pill);
  padding: .35rem .85rem; margin: 0 0 var(--s-4);
}
.eyebrow::before { content: "●"; font-size: .5em; color: var(--ink); }
.eyebrow--warm { background: var(--accent-soft); }
.eyebrow--hell { background: rgba(255,255,255,.75); }

/* ---------------- Hero ---------------- */
.hero { padding-block: clamp(2.5rem, 1.5rem + 4vw, 5rem) var(--s-7); }
.hero--split { display: grid; gap: clamp(1.5rem, 1rem + 3vw, 3.5rem); align-items: center; }
@media (min-width: 62em) { .hero--split { grid-template-columns: 1.05fr .95fr; } }
.hero__body { min-width: 0; }
.hero__media { min-width: 0; }
.hero__img {
  border-radius: var(--r-gross); box-shadow: var(--schatten-karte);
  aspect-ratio: 4 / 3; object-fit: cover; width: 100%;
}
.lead { font-size: clamp(1.05rem, 1rem + .35vw, 1.22rem); color: var(--ink-soft); max-width: 62ch; }
.lead strong { color: var(--ink); }

/* Eckdaten-Chips */
.eckdaten { display: flex; flex-wrap: wrap; gap: var(--s-2); list-style: none; padding: 0; margin: var(--s-5) 0 0; }
.eckdaten li {
  background: var(--card); border: 1px solid var(--hairline);
  border-radius: var(--r-pill); padding: .4rem .9rem;
  font-size: var(--t-klein); font-weight: 550;
}

/* ---------------- Karten ---------------- */
.karten { display: grid; gap: var(--s-5); grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr)); }
.karte {
  background: var(--card); border: 1px solid var(--hairline);
  border-radius: var(--r-gross); overflow: hidden;
  display: flex; flex-direction: column;
  box-shadow: 0 1px 2px rgba(0,0,0,.03);
  transition: box-shadow var(--dauer) var(--ease), transform var(--dauer) var(--ease);
}
.karte:hover { box-shadow: var(--schatten-hoch); transform: translateY(-2px); }
.karte img { aspect-ratio: 3 / 2; object-fit: cover; width: 100%; }
.karte__body { padding: var(--s-5); display: flex; flex-direction: column; gap: var(--s-3); flex: 1; }
.karte__body h3 { margin: 0; }
.karte__links { display: flex; flex-wrap: wrap; gap: var(--s-3); margin-top: auto; padding-top: var(--s-2); font-size: var(--t-klein); }
.karte__links a { color: var(--ink-soft); }
.karte__links a:first-child { color: var(--ink); font-weight: 600; }

/* ---------------- Tabellen ---------------- */
.tabelle-wrap {
  background: var(--card); border: 1px solid var(--hairline);
  border-radius: var(--r-gross); overflow-x: auto;
  box-shadow: 0 1px 2px rgba(0,0,0,.03);
}
.fakten, .vergleich { width: 100%; border-collapse: collapse; font-size: var(--t-klein); }
.fakten th, .fakten td, .vergleich th, .vergleich td {
  padding: .85rem 1.1rem; text-align: left; border-bottom: 1px solid var(--hairline); vertical-align: top;
}
.fakten tr:last-child td, .vergleich tr:last-child td { border-bottom: 0; }
.fakten th { color: var(--ink-soft); font-weight: 550; width: 42%; }
.fakten td { font-weight: 550; }
.vergleich thead th { background: var(--accent-soft); color: var(--ink); font-weight: 650; white-space: nowrap; }
.vergleich tbody tr:nth-child(even) { background: rgba(0,0,0,.015); }

/* ---------------- Fotos ---------------- */
.fotos { display: grid; gap: var(--s-3); grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); }
.fotos figure { margin: 0; }
.fotos img {
  width: 100%; aspect-ratio: 4 / 3; object-fit: cover;
  border-radius: var(--r-mittel); background: var(--bg-tief);
  transition: transform var(--dauer) var(--ease), box-shadow var(--dauer) var(--ease);
}
.fotos figure:hover img { transform: translateY(-2px); box-shadow: var(--schatten-karte); }
.fotos figcaption { font-size: var(--t-mikro); color: var(--ink-faint); padding: .45rem .2rem 0; }
@media (min-width: 48em) {
  .fotos--bento figure:nth-child(6n+1) { grid-column: span 2; grid-row: span 2; }
  .fotos--bento figure:nth-child(6n+1) img { aspect-ratio: 1 / 1; }
}

/* ---------------- Prosa / Listen ---------------- */
.prosa { display: grid; gap: var(--s-6); }
@media (min-width: 62em) { .prosa { grid-template-columns: repeat(2, 1fr); gap: var(--s-6) var(--s-7); } }
.prosa__block h3 { margin-bottom: var(--s-2); }
.prosa__block p:last-child { margin-bottom: 0; }
.liste-spalten { columns: 2; column-gap: var(--s-6); list-style: none; padding: 0; margin: 0; font-size: var(--t-klein); }
.liste-spalten li { break-inside: avoid; padding: .3rem 0 .3rem 1.25rem; position: relative; color: var(--ink-soft); }
.liste-spalten li::before { content: ""; position: absolute; left: 0; top: .95em; width: .4rem; height: 1px; background: var(--ink-faint); }
@media (max-width: 40em) { .liste-spalten { columns: 1; } }

/* ---------------- Hinweise / Zitate ---------------- */
.hinweis, .hinweis--warm, .bewertung {
  background: var(--card); border: 1px solid var(--hairline);
  border-left: 3px solid var(--ink); border-radius: var(--r-mittel);
  padding: var(--s-5); margin-block: var(--s-5); box-shadow: 0 1px 2px rgba(0,0,0,.03);
}
.hinweis p:last-child, .bewertung p:last-child { margin-bottom: 0; }
.zitat {
  margin: var(--s-4) 0; padding: var(--s-4) var(--s-5);
  background: var(--accent-soft); border-radius: var(--r-mittel);
  font-size: var(--t-klein); color: var(--ink); border: 0;
}
.zitat footer, .zitat cite { display: block; margin-top: var(--s-2); color: var(--ink-faint); font-size: var(--t-mikro); font-style: normal; }

/* ---------------- FAQ ---------------- */
.faq { display: grid; gap: var(--s-2); }
.faq details {
  background: var(--card); border: 1px solid var(--hairline);
  border-radius: var(--r-mittel); padding: var(--s-4) var(--s-5);
  transition: box-shadow var(--dauer) var(--ease);
}
.faq details[open] { box-shadow: var(--schatten-karte); }
.faq summary {
  cursor: pointer; font-weight: 600; list-style: none;
  display: flex; align-items: flex-start; justify-content: space-between; gap: var(--s-4);
  min-height: 44px; align-content: center;
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after {
  content: "+"; flex: 0 0 auto; font-weight: 400; font-size: 1.35rem; line-height: 1;
  color: var(--ink-faint); transition: transform var(--dauer) var(--ease);
}
.faq details[open] summary::after { transform: rotate(45deg); }
.faq summary h3 { font-size: 1rem; margin: 0; font-weight: 600; }
.faq details > *:not(summary) { margin-top: var(--s-3); color: var(--ink-soft); }
.faq details > p:last-child { margin-bottom: 0; }

/* ---------------- Buttons / CTA ---------------- */
.btn {
  display: inline-flex; align-items: center; gap: .6rem;
  background: var(--card); color: var(--ink);
  border: 1px solid var(--hairline-kraeftig); border-radius: var(--r-pill);
  padding: .8rem 1.35rem; font: inherit; font-size: var(--t-klein); font-weight: 600;
  text-decoration: none; cursor: pointer; min-height: 44px;
  transition: transform var(--dauer) var(--ease), box-shadow var(--dauer) var(--ease), background var(--dauer) var(--ease);
}
.btn:hover { box-shadow: var(--schatten-karte); transform: translateY(-1px); }
.btn:active { transform: scale(.985); }
.btn--primary { background: var(--ink); color: #fff; border-color: var(--ink); }
.btn--primary:hover { background: var(--accent-deep); }
.btn__pfeil {
  display: grid; place-items: center; width: 1.6rem; height: 1.6rem;
  border-radius: var(--r-pill); background: var(--accent-soft);
  font-size: .8rem; transition: transform var(--dauer) var(--ease);
}
.btn--primary .btn__pfeil { background: rgba(255,255,255,.16); }
.btn:hover .btn__pfeil { transform: translateX(2px); }

.cta {
  background: var(--ink); color: #fff;
  border-radius: var(--r-gross); padding: clamp(1.75rem, 1.2rem + 2.4vw, 3rem);
  margin-block: var(--s-6);
}
.cta h2, .cta h3 { color: #fff; }
.cta p { color: rgba(255,255,255,.76); }
.cta .eyebrow { background: rgba(255,255,255,.12); color: rgba(255,255,255,.9); }
.cta .eyebrow::before { color: #fff; }
.cta__aktionen { display: flex; flex-wrap: wrap; gap: var(--s-3); margin-top: var(--s-5); }
.cta .btn { background: #fff; color: var(--ink); border-color: transparent; }
.cta .btn--sekundaer, .cta .btn:not(.btn--primary) { background: rgba(255,255,255,.08); color: #fff; border-color: rgba(255,255,255,.22); }
.cta .btn:not(.btn--primary) .btn__pfeil { background: rgba(255,255,255,.16); }

/* ---------------- Fusszeile ---------------- */
.site-footer {
  background: var(--card); border-top: 1px solid var(--hairline);
  padding-block: var(--s-7) var(--s-5); margin-top: var(--s-8);
  font-size: var(--t-klein);
}
.footer-grid { display: grid; gap: var(--s-5); grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); }
.footer-grid h3 { font-size: var(--t-mikro); text-transform: uppercase; letter-spacing: .14em; color: var(--ink-faint); font-weight: 600; margin-bottom: var(--s-3); }
.footer-grid ul { list-style: none; padding: 0; margin: 0; display: grid; gap: .45rem; }
.footer-grid a { color: var(--ink-soft); text-decoration: none; }
.footer-grid a:hover { color: var(--ink); text-decoration: underline; }
.nap { color: var(--ink-soft); font-style: normal; line-height: 1.75; }
.footer-schluss {
  margin-top: var(--s-6); padding-top: var(--s-4); border-top: 1px solid var(--hairline);
  display: flex; flex-wrap: wrap; gap: var(--s-3) var(--s-5); justify-content: space-between;
  color: var(--ink-faint); font-size: var(--t-mikro);
}
.stand { color: var(--ink-faint); font-size: var(--t-mikro); }

/* ---------------- Firmen-Variante (ruhiger, sachlicher) ---------------- */
.seite--firmen { --r-gross: 14px; --r-mittel: 10px; }
.seite--firmen h1 { letter-spacing: -.026em; }
.seite--firmen .fotos--bento figure:nth-child(6n+1) { grid-column: auto; grid-row: auto; }
.seite--firmen .fotos--bento figure:nth-child(6n+1) img { aspect-ratio: 4 / 3; }
.seite--firmen .section + .section { border-top: 1px solid var(--hairline); }

/* ---------------- Verfuegbarkeitskalender ---------------- */
.kal-legende { display: flex; gap: var(--s-5); flex-wrap: wrap; margin: 0 0 var(--s-5); font-size: var(--t-klein); color: var(--ink-soft); }
.kal-legende__item { display: inline-flex; align-items: center; gap: .5rem; }
.kal-punkt { width: .85rem; height: .85rem; border-radius: .25rem; display: inline-block; }
.kal-punkt--frei   { background: var(--card); box-shadow: inset 0 0 0 1px var(--hairline-kraeftig); }
.kal-punkt--belegt { background: #D4D4D9; box-shadow: inset 0 0 0 1px var(--hairline-kraeftig); }
.kal-jahr { display: grid; grid-template-columns: repeat(auto-fill, minmax(15.5rem, 1fr)); gap: var(--s-6) var(--s-5); }
.kal-monat__titel { font-size: var(--t-klein); font-weight: 650; letter-spacing: -.01em; margin: 0 0 var(--s-3); }
.kal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 3px; }
.kal-wt { font-size: var(--t-mikro); text-transform: uppercase; letter-spacing: .08em; color: var(--ink-faint); text-align: center; padding-bottom: .35rem; }
.kal-tag { aspect-ratio: 1 / 1; display: grid; place-items: center; font-size: .8rem; border-radius: 7px; font-variant-numeric: tabular-nums; }
.kal-tag--frei { background: var(--card); color: var(--ink); box-shadow: inset 0 0 0 1px var(--hairline); }
.kal-tag--belegt { background: #D4D4D9; color: #55585E; text-decoration: line-through; text-decoration-thickness: 1px; }
.kal-tag--vergangen { background: transparent; color: var(--ink-faint); opacity: .5; }
.kal-tag--leer { background: transparent; }
.kal-stand { margin-top: var(--s-5); color: var(--ink-faint); font-size: var(--t-mikro); }
.kal-hinweis { background: var(--accent-soft); border-radius: var(--r-mittel); padding: var(--s-4) var(--s-5); margin-bottom: var(--s-5); }
@media (max-width: 30em) { .kal-jahr { grid-template-columns: 1fr; } }

/* ---------------- Bewegung (nur CSS, mit sichtbarem Grundzustand) ---------------- */
.reveal, .reveal-gruppe > * { opacity: 1; }   /* Grundzustand: IMMER sichtbar */
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    @keyframes auftauchen { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
    .reveal { animation: auftauchen linear both; animation-timeline: view(); animation-range: entry 0px entry 320px; }
    .reveal-gruppe > * { animation: auftauchen linear both; animation-timeline: view(); animation-range: entry 0px entry 300px; }
  }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
}

/* ---------------- Druck ---------------- */
@media print {
  .site-header, .nav, .cta, .skiplink, .fotos, .kal-jahr { display: none !important; }
  body { background: #fff; color: #000; font-size: 11pt; }
  .karte, .tabelle-wrap, .faq details { box-shadow: none; border: 1px solid #ccc; }
  .faq details { break-inside: avoid; }
  a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 9pt; color: #555; }
}

/* Screenreader-Text im Kalender + Listen-Reset (Barrierefreiheit) */
.kal-sr { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.kal-grid { list-style: none; padding: 0; margin: 0; }
.kal-tag { position: relative; }

/* ---------- Korrekturen nach visueller Pruefung ---------- */
/* Breadcrumb war eine nummerierte Liste (1. 2. 3.) — inline mit Trennern */
.breadcrumb ol, .breadcrumb ul { list-style: none; display: flex; flex-wrap: wrap; gap: .45rem; padding: 0; margin: 0; }
.breadcrumb li { display: inline-flex; align-items: center; gap: .45rem; }
.breadcrumb li + li::before { content: "›"; color: var(--ink-faint); }

/* Hero: Bild fuellt seine Spalte, Text und Bild oben buendig */
.hero--split { align-items: start; }
.hero__media { position: sticky; top: calc(var(--s-7) + 2rem); }
@media (max-width: 62em) { .hero__media { position: static; } }
.hero__img { aspect-ratio: 3 / 4; max-height: 34rem; }
@media (max-width: 62em) { .hero__img { aspect-ratio: 4 / 3; max-height: none; } }

/* Meta-Zeile unter dem Hero: ruhiger, nicht als Fliesstext-Wurst */
.stand { display: block; margin-top: var(--s-4); color: var(--ink-faint); }
.stand a { color: var(--ink-soft); text-decoration: underline; text-decoration-color: var(--hairline-kraeftig); }
.stand a:hover { color: var(--ink); }

/* ---------------- Icons (SVG-Sprite) ----------------
   Sprite: /assets/icons.svg (Lucide, ISC). Anleitung + ID-Liste: _shared/ICONS.md
   Einbindung: <svg class="ic" aria-hidden="true"><use href="/assets/icons.svg#icon-bett"></use></svg>
   Groesse haengt an der Schriftgroesse (em), Farbe kommt ueber currentColor
   aus dem umgebenden Text. Keine festen Farben, kein JavaScript. */
.ic {
  width: 1.15em;
  height: 1.15em;
  flex-shrink: 0;                 /* in Flex-Listen nicht zusammenquetschen */
  vertical-align: -.18em;         /* Grundlinie an der Schrift ausrichten */
  fill: none;
  stroke: currentColor;
  stroke-width: 1.75;             /* erbt in den <use>-Inhalt der Sprite */
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* Groessere Variante fuer Vorteilsbloecke und Fakten-Karten.
   Etwas duennere Strichstaerke, damit die optische Schwere gleich bleibt. */
.ic--gross {
  width: 1.6em;
  height: 1.6em;
  vertical-align: -.34em;
  stroke-width: 1.5;
}

/* Icon als reines Beiwerk zuruecknehmen (Text bleibt fuehrend) */
.ic--leise { color: var(--ink-faint); }

@media print { .ic { stroke-width: 1.6; } }

/* ---------------- Grundriss-Diorama ----------------
   Das SVG liegt direkt im HTML, damit die Raumnamen im Quelltext stehen
   (Suchmaschinen und KI-Crawler rendern kein JavaScript) und damit das
   Antippen eines Raums ohne Skript funktioniert. Aufbau: engine/build_etage_svg.py */
.grundriss {
  margin: var(--s-6) 0 0;
  background: var(--card);
  border: 1px solid var(--hairline);
  border-radius: var(--r-gross);
  padding: var(--s-4) var(--s-4) var(--s-3);
  overflow: hidden;
}

/* Auf schmalen Geraeten waere das Modell sonst briefmarkengross:
   lieber eine Mindestbreite behalten und seitlich schieben lassen. */
.grundriss__buehne {
  overflow-x: auto;
  overscroll-behavior-x: contain;
  -webkit-overflow-scrolling: touch;
}

.grundriss__buehne .etage {
  display: block;
  width: 100%;
  min-width: 660px;
  height: auto;
}

.grundriss figcaption {
  margin-top: var(--s-3);
  color: var(--ink-soft);
  font-size: var(--t-klein);
  line-height: 1.55;
}

/* Dieselben Angaben noch einmal als echte Liste. Sie traegt die Information
   fuer Vorlesesoftware und fuer alles, was nur Text liest. */
.grundriss__liste {
  list-style: none;
  margin: var(--s-5) 0 0;
  padding: 0;
  display: grid;
  gap: var(--s-2) var(--s-5);
  grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
}

.grundriss__liste li {
  padding: var(--s-2) 0;
  border-top: 1px solid var(--hairline);
  font-size: var(--t-klein);
  line-height: 1.5;
}

.grundriss__liste strong {
  display: block;
  font-weight: 600;
  color: var(--ink);
}

.grundriss__liste span { color: var(--ink-soft); }

@media print {
  .grundriss__buehne { overflow: visible; }
  .grundriss__buehne .etage { min-width: 0; }
}
