/* ============================================================
   Bühne'78 – Stylesheet

   Die Farben stammen direkt aus eurer Logodatei.
   Wenn du nur Inhalte ändern willst, ist diese Datei für dich
   nicht relevant. Dafür gibt es daten.js.
   ============================================================ */

:root{
  /* „only light" verbietet dem Browser, die Seite im Dunkelmodus
     eigenmächtig umzufärben. Sonst wird aus dem Creme ein Braun. */
  color-scheme: only light;

  --creme:#FBF4EE;        /* Seitenhintergrund */
  --creme-dunkel:#F5EBE1; /* abgesetzte Flächen */
  --navy:#12293D;         /* Kopf, Fuß, Überschriften */
  --navy-hell:#24405A;
  --orange:#EE7504;       /* das Orange aus eurem Logo, für Knöpfe */
  --hell:#F7AF70;         /* das helle Orange aus eurem Logo, für Flächen */
  --link:#A84D00;         /* dunkler, damit Links im Fließtext lesbar bleiben */
  --text:#33383D;
  --rand:#E6DBD0;
  --breite:1140px;
  --breite-schmal:760px;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}

body{
  margin:0;
  background:var(--creme);
  color:var(--text);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  font-size:17px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3,h4{
  font-family:Georgia,"Iowan Old Style","Times New Roman",serif;
  color:var(--navy);
  line-height:1.2;
  font-weight:400;
  margin:0 0 .55em;
  /* verteilt die Wörter gleichmäßig auf die Zeilen, statt die letzte
     Zeile als Rest übrig zu lassen */
  text-wrap:balance;
}
/* Wortgruppen, die nie getrennt werden sollen */
.zusammen{white-space:nowrap}
h1{font-size:clamp(1.9rem,4.5vw,2.7rem)}
h2{font-size:clamp(1.5rem,3.2vw,2rem)}
h3{font-size:1.18rem}
p{margin:0 0 1.1em}

a{color:var(--link)}
a:hover{text-decoration:none}

img{max-width:100%;height:auto;display:block}
:focus-visible{outline:3px solid var(--orange);outline-offset:2px}

.sprung{position:absolute;left:-9999px;top:0;background:var(--navy);color:#fff;padding:12px 18px;z-index:100}
.sprung:focus{left:0}

/* ---------- Grundraster ---------- */
.bahn{max-width:var(--breite);margin:0 auto;padding:0 24px}
.bahn-schmal{max-width:var(--breite-schmal);margin:0 auto;padding:0 24px}
.abschnitt{padding:64px 0}
.abschnitt-eng{padding:38px 0}
.flaeche-creme-dunkel{background:var(--creme-dunkel)}
.flaeche-hell{background:var(--hell)}
.flaeche-hell h1,.flaeche-hell h2,.flaeche-hell h3,.flaeche-hell p{color:var(--navy)}

/* ---------- Kopfbereich ---------- */
.kopf{background:var(--navy)}
.kopf-innen{
  max-width:var(--breite);margin:0 auto;padding:14px 24px;
  display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px;
}
.kopf-logo{display:inline-block;line-height:0}
.kopf-logo img{height:58px;width:auto}
.navi{display:flex;flex-wrap:wrap;gap:2px 24px}
.navi a{color:#E6ECF1;text-decoration:none;font-size:.98rem;padding:6px 0;border-bottom:2px solid transparent}
.navi a:hover{color:var(--hell)}
.navi a[aria-current="page"]{border-bottom-color:var(--orange);color:#fff}

/* ---------- Stückblock ---------- */
.stueck-raster{display:grid;grid-template-columns:minmax(0,42%) minmax(0,1fr);gap:44px;align-items:start}
.flyer-rahmen{border-radius:4px;overflow:hidden}
/* Ankündigung, solange es keinen Flyer gibt */
.ankuendigung{
  aspect-ratio:1/1.414;background:var(--navy);border-radius:4px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:8% 9%;position:relative;overflow:hidden;
}
.ankuendigung::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:10px;background:var(--orange);
}
.ankuendigung-logo{width:52%;max-width:190px;margin:0 auto 8%}
.ankuendigung-vorspann{
  color:var(--hell);font-size:.78rem;letter-spacing:2px;text-transform:uppercase;
  margin:0 0 .7em;font-weight:700;
}
.ankuendigung-titel{
  font-family:Georgia,"Iowan Old Style",serif;color:#fff;
  font-size:clamp(1.7rem,4.4vw,2.6rem);line-height:1.1;margin:0 0 .35em;
}
.ankuendigung-zeitraum{color:#C8D2DB;font-size:1rem;line-height:1.45;margin:0 0 .35em}
.ankuendigung-ort{color:#8EA0B0;font-size:.92rem;margin:0 0 1.5em}
.ankuendigung-hinweis{
  background:var(--hell);color:var(--navy);font-weight:700;
  padding:11px 20px;border-radius:3px;margin:0;font-size:.98rem;line-height:1.3;
}
.ankuendigung-web{
  margin:1.15em 0 0;display:flex;flex-direction:column;gap:.2em;
  border-top:1px solid rgba(255,255,255,.18);padding-top:1.1em;width:100%;
}
.ankuendigung-web-vorspann{
  color:var(--hell);font-size:.72rem;letter-spacing:1.6px;
  text-transform:uppercase;font-weight:700;
}
.ankuendigung-web-adresse{
  color:#fff;font-size:1.02rem;font-weight:700;letter-spacing:.3px;
  overflow-wrap:anywhere;
}

.flyer-platzhalter{
  aspect-ratio:1/1.414;display:flex;align-items:center;justify-content:center;
  text-align:center;color:#9A8875;font-size:.9rem;padding:24px;
  border:2px dashed #C6B5A3;border-radius:4px;background:var(--creme-dunkel);
}
.vorspann{color:var(--link);font-size:.82rem;letter-spacing:1.6px;text-transform:uppercase;font-weight:700;margin:0 0 8px}
.untertitel{color:var(--link);font-size:1.06rem;margin-top:-.4em}

/* ---------- Termine und Fakten ---------- */
.termine{list-style:none;padding:0;margin:0 0 24px}
.termine li{padding:10px 2px;border-bottom:1px solid var(--rand)}
.termine li:first-child{border-top:1px solid var(--rand)}

.fakten{background:var(--creme-dunkel);border-left:4px solid var(--hell);padding:18px 22px;margin:0 0 26px;font-size:.98rem}
.fakten dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:6px 14px}
.fakten dt{font-weight:700;color:var(--navy)}
.fakten dd{margin:0}

/* ---------- Knöpfe ---------- */
.knopf{
  display:inline-block;text-decoration:none;font-weight:700;font-size:1rem;
  padding:14px 28px;border-radius:4px;margin:0 10px 10px 0;
  transition:transform .08s ease, filter .15s ease;
}
.knopf:hover{filter:brightness(1.06)}
.knopf:active{transform:translateY(1px)}
.knopf-orange{background:var(--orange);color:var(--navy)}
.knopf-navy{background:var(--navy);color:#fff}
.knopfreihe{display:flex;flex-wrap:wrap;margin-bottom:8px}
.knopf-mit-zeichen{display:inline-flex;align-items:center;gap:10px}
.knopf-mit-zeichen svg{flex:0 0 auto}
.fuss-social{display:inline-flex;align-items:center;gap:9px;text-decoration:none}
.fuss-social:hover{color:var(--hell)}
.fuss-social:hover svg path{fill:var(--hell)}
.mitte{text-align:center}
.mitte .knopfreihe{justify-content:center}

.wege{font-size:.97rem;margin-top:14px}
.wege p{margin-bottom:.7em}
.wege strong{color:var(--navy)}
.vvk-liste{list-style:none;padding:0;margin:-.4em 0 1.1em}
.vvk-liste li{padding:10px 0 10px 16px;border-left:3px solid var(--hell);margin-bottom:9px;line-height:1.5}
.vvk-liste li:last-child{margin-bottom:0}
.vvk-zeiten{color:#7C7266;font-size:.9rem}
.vvk-gebuehr{font-size:.88rem;color:#7C7266;margin:-.7em 0 1.1em}

/* ---------- Bilder ---------- */
.bilder-drei{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.bild-platzhalter{
  aspect-ratio:4/3;border:2px dashed #C6B5A3;border-radius:4px;background:var(--creme-dunkel);
  display:flex;align-items:center;justify-content:center;color:#9A8875;font-size:.85rem;text-align:center;padding:12px;
}
.reihenbild{aspect-ratio:4/3;object-fit:cover;width:100%;border-radius:4px;display:block}
figure{margin:0}
figcaption{font-size:.85rem;color:#7C7266;margin-top:6px}

/* Das breite Bild oben auf „Über uns" */
.band{width:100%;overflow:hidden;border-radius:5px}
.bandbild{
  display:block;width:100%;height:auto;
  aspect-ratio:2/1;object-fit:cover;object-position:center 38%;
}

/* Bild mit Bildunterschrift darunter */
.bildkarte figcaption{
  margin-top:9px;font-size:.84rem;line-height:1.4;color:#6F6458;
  border-left:3px solid var(--orange);padding-left:9px;
}

/* ---------- Textbausteine ---------- */
.zwei-spalten{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:44px;align-items:start}
.hinweiskasten{background:var(--creme-dunkel);border-left:4px solid var(--orange);padding:18px 22px;margin:0 0 28px}
.hinweiskasten p:last-child{margin-bottom:0}
.liste-schlicht{list-style:none;padding:0;margin:0}
.liste-schlicht li{padding:12px 0;border-bottom:1px solid var(--rand)}
.liste-schlicht li:last-child{border-bottom:none}
.linie{height:3px;background:var(--hell);border:none;margin:48px 0}

/* ---------- Chronik ---------- */
.chronik{list-style:none;padding:0;margin:0}
.chronik li{display:grid;grid-template-columns:88px 1fr;gap:18px;align-items:start;
  padding:16px 0;border-bottom:1px solid var(--rand)}
.chronik li:last-child{border-bottom:none}
.chronik-jahr{font-family:Georgia,serif;font-size:1.45rem;color:var(--link);line-height:1.1}
.chronik-stuecke p{margin:0 0 4px}
.chronik-stuecke p:last-child{margin-bottom:0}
.chronik-marke{display:inline-block;min-width:168px;font-size:.78rem;letter-spacing:1.1px;
  text-transform:uppercase;color:#7C7266}
.chronik-titel{color:var(--navy);font-weight:600}
.chronik-pause{color:#8A8178;font-style:italic}

/* ---------- Bildkacheln ---------- */
.kacheln{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:22px}
.kachel{margin:0}
.kachel img{border-radius:4px;aspect-ratio:4/3;object-fit:cover;width:100%}
.kachel figcaption{font-size:.9rem;color:var(--text);margin-top:8px;line-height:1.35}
.kachel figcaption strong{color:var(--navy)}

.zitat{background:var(--hell);color:var(--navy);padding:32px 28px;font-family:Georgia,serif;font-size:1.25rem;line-height:1.45}
.zitat cite{display:block;font-size:.78rem;letter-spacing:1.4px;text-transform:uppercase;font-style:normal;font-family:inherit;margin-bottom:12px;opacity:.75}

/* ---------- Schlussaufruf ---------- */
.aufruf-band{background:var(--navy);color:#E6ECF1;padding:44px 0}
.aufruf-band h2{color:#fff}
.aufruf-band p{color:#C8D2DB}

/* ---------- Fußbereich ---------- */
.fuss{background:var(--navy);color:#C8D2DB;padding:52px 0 28px}
.fuss-raster{display:grid;grid-template-columns:2fr 1fr 1fr;gap:38px}
.fuss h2{color:#fff;font-size:1.12rem;margin-bottom:14px}
.fuss a{color:#C8D2DB}
.fuss ul{list-style:none;padding:0;margin:0}
.fuss li{margin-bottom:9px}
.fuss-motto{color:var(--hell);margin-top:-.5em}
.fuss-klein{border-top:1px solid var(--navy-hell);margin-top:36px;padding-top:18px;font-size:.83rem;color:#8EA0B0}

/* ---------- Mobil ---------- */
@media(max-width:860px){
  .stueck-raster,.zwei-spalten{grid-template-columns:1fr;gap:28px}
  .bilder-drei{grid-template-columns:1fr}
  .bandbild{aspect-ratio:16/9}
  .fuss-raster{grid-template-columns:1fr;gap:28px}
  .abschnitt{padding:44px 0}
  .kopf-innen{flex-direction:column;align-items:flex-start}
  .kopf-logo img{height:50px}
  .navi{gap:2px 18px}
}

@media print{
  .kopf,.navi,.knopf,.aufruf-band{display:none}
  body{background:#fff}
}
