/* Narrenzunft Strohglonki 1777 Leipferdingen e.V.
   Farben aus dem Häs: Leinen-Blau, Haferstroh, rote Schleife. */
/* Schriften liegen auf dem eigenen Server (DSGVO: kein Abruf bei Google). Lizenz: SIL Open Font License. */
@font-face { font-family: 'Alegreya Sans'; font-style: italic; font-weight: 400; font-display: swap; src: url(fonts/alegreya-sans-400-italic.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Alegreya Sans'; font-style: normal; font-weight: 400; font-display: swap; src: url(fonts/alegreya-sans-400.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Alegreya Sans'; font-style: normal; font-weight: 500; font-display: swap; src: url(fonts/alegreya-sans-500.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Alegreya Sans'; font-style: normal; font-weight: 700; font-display: swap; src: url(fonts/alegreya-sans-700.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Alegreya Sans SC'; font-style: normal; font-weight: 500; font-display: swap; src: url(fonts/alegreya-sans-sc-500.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Alegreya Sans Ersatz'; src: local('Arial'), local('ArialMT'), local('Roboto'); size-adjust: 86.4%; ascent-override: 104%; descent-override: 35%; line-gap-override: 0%; }
@font-face { font-family: 'Alegreya Sans Ersatz'; font-weight: 700; src: local('Arial Bold'), local('Arial-BoldMT'), local('Roboto Bold'), local('Roboto-Bold'); size-adjust: 83.3%; ascent-override: 108%; descent-override: 36%; line-gap-override: 0%; }
@font-face { font-family: 'Alegreya Sans SC Ersatz'; src: local('Arial'), local('ArialMT'), local('Roboto'); size-adjust: 95.7%; ascent-override: 94%; descent-override: 31%; line-gap-override: 0%; }
@font-face { font-family: 'Grenze Gotisch Ersatz'; src: local('Georgia'); size-adjust: 80.4%; ascent-override: 137%; descent-override: 47%; line-gap-override: 0%; }
@font-face { font-family: 'Grenze Gotisch'; font-style: normal; font-weight: 500; font-display: swap; src: url(fonts/grenze-gotisch-500.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

:root {
  --haes: #1b2f6b;        /* blauer Leinenstoff des Hansele */
  --haes-tief: #101d47;   /* Nachtumzug */
  --stroh: #e4b43a;       /* Haferstroh */
  --stroh-hell: #f4dc93;
  --schleife: #c62d2a;    /* rote Schleife am Strohmann */
  --leinen: #eef1f7;      /* heller Grund, kühl statt creme */
  --tinte: #16203f;
  --tinte-soft: #4a5577;
  --linie: #d5dbe8;

  --f-display: "Grenze Gotisch", "Grenze Gotisch Ersatz", Georgia, serif;
  --f-body: "Alegreya Sans", "Alegreya Sans Ersatz", "Segoe UI", system-ui, sans-serif;
  --f-sc: "Alegreya Sans SC", "Alegreya Sans SC Ersatz", "Alegreya Sans", system-ui, sans-serif;

  --wrap: 1180px;
  --gutter: clamp(16px, 4vw, 40px);
  --radius: 4px;

  /* Schräge Streifen als kleine Kachel – repeating-linear-gradient mit Winkel zeichnet Safari extrem langsam (Ruckler beim Scrollen) */
  --streifen: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='70' height='14'%3E%3Cpath d='M0 14 70 0M0 0 70-14M0 28 70 14' stroke='%23f4dc93' stroke-width='2'/%3E%3C/svg%3E") 0 0 / 70px 14px;
  --muster: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='72' viewBox='0 0 56 72'%3E%3Cg fill='%23e4b43a'%3E%3Cpath id='m' transform='translate(2 2) scale(.6)' d='M20 0 19.3 2 18.6 3.4 19 4.4 18.3 6 18.8 7.4 18.6 9 19.2 11 19 13.2 18.5 14.4 14.2 11.6 11.2 9.6 12 12.3 15 14.6 18.1 16.4 17.5 20 16.3 24.2 15 26.4 13.6 28 8.4 34.4 5.6 38.8 3.4 41.4 1.2 45.4 0.2 49 1.8 48 2.4 50.6 3.8 48.8 4.8 51.2 5.8 48.6 7.4 49.6 7.2 46.4 8 42.6 10.6 38.2 12.2 36.4 11.6 40.6 10.8 45.2 10.2 49.6 11.6 52.2 13 50.8 14.2 53.4 15.8 51.6 17.4 53.8 18.8 52 20 54 21.2 52 22.6 53.8 24.2 51.6 25.8 53.4 27 50.8 28.4 52.2 29.8 49.6 29.2 45.2 28.4 40.6 27.8 36.4 29.4 38.2 32 42.6 32.8 46.4 32.6 49.6 34.2 48.6 35.2 51.2 36.2 48.8 37.6 50.6 38.2 48 39.8 49 38.8 45.4 36.6 41.4 34.4 38.8 31.6 34.4 26.4 28 25 26.4 23.7 24.2 22.5 20 21.9 16.4 25 14.6 28 12.3 28.8 9.6 25.8 11.6 21.5 14.4 21 13.2 20.8 11 21.4 9 21.2 7.4 21.7 6 21 4.4 21.4 3.4 20.7 2 20 0Z'/%3E%3Cuse href='%23m' x='28' y='36'/%3E%3C/g%3E%3C/svg%3E");
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
body {
  margin: 0;
  background: var(--leinen);
  color: var(--tinte);
  font: 400 1.125rem/1.6 var(--f-body);
  overflow-x: hidden;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; }
:focus-visible { outline: 3px solid var(--stroh); outline-offset: 3px; border-radius: 2px; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.wrap { max-width: var(--wrap); margin: 0 auto; padding: 0 var(--gutter); }

/* ---------- Typo ---------- */
.gotisch { font-family: var(--f-display); font-weight: 400; letter-spacing: .01em; }
h1, h2, h3 { margin: 0; line-height: 1.05; }
h2 {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: clamp(2.4rem, 5.5vw, 4rem);
  color: var(--haes);
}
h3 { font: 700 1.35rem/1.2 var(--f-body); }
.eyebrow {
  font: 500 .95rem/1.2 var(--f-sc);
  letter-spacing: .14em;
  text-transform: lowercase;
  color: var(--schleife);
  margin: 0 0 .9rem;
}
.lead { font-size: clamp(1.2rem, 2vw, 1.4rem); line-height: 1.5; max-width: 38em; }
.mundart {
  font-family: var(--f-display);
  font-size: clamp(1.6rem, 3.4vw, 2.5rem);
  line-height: 1.25;
  margin: 0;
}
.mundart + .uebersetzung { margin-top: .6rem; color: var(--tinte-soft); font-style: italic; }

/* ---------- Buttons ---------- */
.btn {
  display: inline-flex; align-items: center; gap: .5em;
  font: 700 1.05rem/1 var(--f-body);
  padding: .95em 1.4em;
  border-radius: var(--radius);
  text-decoration: none;
  border: 2px solid transparent;
  transition: transform .15s ease, background-color .15s ease, color .15s ease;
}
.btn:hover { transform: translateY(-2px); }
.btn-stroh { background: var(--stroh); color: var(--haes-tief); }
.btn-stroh:hover { background: var(--stroh-hell); }
.btn-rahmen { border-color: currentColor; color: #fff; }
.btn-rahmen:hover { background: rgba(255,255,255,.1); }
button.btn-rahmen { background: transparent; }
button.btn-rahmen:hover { background: rgba(255,255,255,.1); }
.btn-blau { background: var(--haes); color: #fff; }
.btn-blau:hover { background: var(--haes-tief); }

/* ---------- Kopf ---------- */
.kopf {
  position: sticky; top: 0; z-index: 50;
  background: var(--haes-tief);
  color: #fff;
  border-bottom: 3px solid var(--stroh);
}
.kopf .wrap { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 64px; }
.marke { display: flex; align-items: center; gap: .6rem; text-decoration: none; }
.marke svg { width: 32px; height: 43px; flex: none; }
.marke b { font: 400 1.7rem/1 var(--f-display); color: var(--stroh); }
.marke small { display: block; font: 500 .72rem/1.2 var(--f-sc); letter-spacing: .12em; color: #c9d1ea; }
.nav ul { list-style: none; display: flex; gap: .2rem; margin: 0; padding: 0; }
.nav a {
  display: block; padding: .55rem .75rem;
  font: 500 1rem/1 var(--f-body); text-decoration: none; color: #e6eaf6;
  border-radius: var(--radius); white-space: nowrap;
}
.nav a:hover, .nav a[aria-current="page"] { color: var(--stroh); }
.nav .nav-mitglied { background: var(--schleife); color: #fff; margin-left: .4rem; }
.nav .nav-mitglied:hover { background: #a82320; color: #fff; }
.nav-toggle { display: none; }
/* Knapp über der Handy-Ansicht: Menü etwas enger, damit alle Punkte samt „Mitglied werden“ in eine Zeile passen */
@media (max-width: 1240px) {
  .nav ul { gap: 0; }
  .nav a { padding: .55rem .55rem; font-size: .97rem; }
  .nav .nav-mitglied { margin-left: .3rem; }
}
.marke small { white-space: nowrap; }
h1, h2, h3, .eyebrow, .lead { text-wrap: balance; }
p, li { text-wrap: pretty; }

@media (max-width: 1080px) {
  .nav-toggle {
    display: inline-flex; align-items: center; gap: .5rem;
    background: none; border: 2px solid var(--stroh); color: var(--stroh);
    font: 700 1rem/1 var(--f-body); padding: .55rem .8rem; border-radius: var(--radius); cursor: pointer;
  }
  .nav {
    position: fixed; left: 0; right: 0; top: 67px; bottom: 0; overflow-y: auto; overscroll-behavior: contain;
    background: var(--haes-tief); isolation: isolate;
    visibility: hidden; opacity: 0; transform: translateY(-10px);
    transition: opacity .25s ease, transform .3s ease, visibility 0s linear .3s;
  }
  .nav::before { content: ""; position: fixed; inset: 67px 0 0; z-index: -1; background-image: var(--muster); background-size: 56px 72px; opacity: .06; pointer-events: none; }
  .nav.offen { visibility: visible; opacity: 1; transform: none; transition-delay: 0s; }
  .nav ul { flex-direction: column; gap: 0; max-width: 560px; margin: 0 auto; padding: 1.2rem var(--gutter) calc(2.5rem + env(safe-area-inset-bottom)); }
  .nav a { padding: .7rem 0; font: 400 clamp(1.9rem, 7.5vw, 2.5rem)/1.1 var(--f-display); color: #fff; border-bottom: 1px solid rgba(255, 255, 255, .09); border-radius: 0; }
  .nav a[aria-current="page"]:not(.nav-treffen), .nav a.aktiv:not(.nav-mitglied):not(.nav-treffen) { color: var(--stroh); }
  .nav .nav-treffen, .nav .nav-mitglied { margin: 1rem 0 0; padding: 1rem; text-align: center; font: 700 1.15rem/1 var(--f-body); border-radius: var(--radius); }
  .nav .nav-treffen { border: 2px solid var(--stroh); }
  .nav .nav-mitglied { margin-top: .7rem; border: 0; }
  .nav.offen li { animation: menue-rein .45s cubic-bezier(.2, .8, .2, 1) both; }
  .nav.offen li:nth-child(2) { animation-delay: 30ms; } .nav.offen li:nth-child(3) { animation-delay: 60ms; }
  .nav.offen li:nth-child(4) { animation-delay: 90ms; } .nav.offen li:nth-child(5) { animation-delay: 120ms; }
  .nav.offen li:nth-child(6) { animation-delay: 150ms; } .nav.offen li:nth-child(7) { animation-delay: 180ms; }
  .nav.offen li:nth-child(8) { animation-delay: 210ms; } .nav.offen li:nth-child(9) { animation-delay: 240ms; }
  html.menue-offen { overflow: hidden; }
  html.menue-offen .marsch { visibility: hidden; }
}
@keyframes menue-rein { from { opacity: 0; transform: translateY(12px); } }
.nav a.aktiv:not(.nav-mitglied):not(.nav-treffen) { color: var(--stroh); }

/* ---------- Hero ---------- */
.hero {
  position: relative;
  background: var(--haes);
  color: #fff;
  overflow: hidden;
  isolation: isolate;
}
.hero::before {
  content: ""; position: absolute; inset: -72px 0 0; z-index: -1;
  background-image: var(--muster);
  background-size: 56px 72px;
  opacity: .16;
  animation: rieseln 6s linear infinite; /* eine Musterhöhe (72 px) pro Durchlauf = nahtlos */
}
@keyframes rieseln { to { transform: translateY(72px); } }
.hero .wrap {
  display: grid;
  grid-template-columns: 1.15fr .85fr;
  gap: clamp(2rem, 5vw, 4rem);
  align-items: center;
  padding-top: clamp(3rem, 7vw, 6rem);
  padding-bottom: clamp(3rem, 7vw, 6rem);
}
.hero .eyebrow { color: var(--stroh-hell); }
.hero h1 {
  font-family: var(--f-display);
  font-weight: 400;
  color: var(--stroh);
  font-size: clamp(4.2rem, 13vw, 10rem);
  line-height: .86;
  margin: 0 0 1.6rem;
  text-shadow: 0 3px 0 var(--haes-tief);
}
.hero h1 > span { display: block; }
.hero h1 > span:last-child { padding-left: .5em; }
.hero .lead { color: #e7ebf7; margin: 0 0 2rem; }
.hero .knoepfe { display: flex; flex-wrap: wrap; gap: .8rem; }
.hero-bild { position: relative; justify-self: end; max-width: 440px; width: 100%; }
.hero-bild img {
  width: 100%;
  aspect-ratio: 823 / 1080;
  object-fit: cover;
  border: 6px solid var(--stroh);
  border-radius: 2px;
  transform: rotate(1.5deg);
  box-shadow: 0 24px 48px rgba(6, 12, 34, .45);
}
.hero-bild figcaption {
  position: absolute; left: -1.2rem; bottom: 1.6rem;
  background: var(--schleife); color: #fff;
  font: 500 .9rem/1.3 var(--f-sc); letter-spacing: .08em;
  padding: .6rem .9rem;
  transform: rotate(-2deg);
  max-width: 16rem;
}
@media (max-width: 820px) {
  .hero .wrap { grid-template-columns: 1fr; }
  .hero-bild { justify-self: center; max-width: 340px; }
  .hero-bild figcaption { left: .5rem; }
}

/* ---------- Save the date ---------- */
.termin-band { background: var(--schleife); color: #fff; }
.termin-band .wrap {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  gap: 1rem 2rem; padding-top: 1.4rem; padding-bottom: 1.4rem;
}
.termin-band p { margin: 0; }
.termin-band .gotisch { font-size: clamp(1.8rem, 3.5vw, 2.4rem); color: var(--stroh-hell); line-height: 1; }
.termin-band .datum { font: 700 clamp(1.2rem, 2.4vw, 1.6rem)/1.2 var(--f-body); }
.termin-band .klein { font: 500 .9rem/1.3 var(--f-sc); letter-spacing: .1em; opacity: .9; }
.termin-band .btn { background: #fff; color: var(--schleife); }

/* ---------- Sektionen ---------- */
.sektion { padding: clamp(4rem, 9vw, 7rem) 0; scroll-margin-top: 60px; }
.sektion-kopf { max-width: 44rem; margin-bottom: clamp(2rem, 5vw, 3.5rem); }
.sektion-kopf p:not(.eyebrow) { color: var(--tinte-soft); margin: 1rem 0 0; font-size: 1.2rem; }
.blau { background: var(--haes); color: #fff; }
.blau h2 { color: var(--stroh); }
.blau .eyebrow { color: var(--stroh-hell); }
.blau .sektion-kopf p:not(.eyebrow) { color: #c9d1ea; }
.tief { background: var(--haes-tief); color: #fff; }
.tief h2 { color: var(--stroh); }
.tief .eyebrow { color: var(--stroh-hell); }
.tief .sektion-kopf p:not(.eyebrow) { color: #aeb8d8; }

/* ---------- Warum Stroh ---------- */
.warum { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 6vw, 5rem); align-items: start; }
.warum-text p { margin: 0 0 1.1rem; }
.warum-text .lead { margin-bottom: 1.6rem; }
.warum-bild { position: relative; }
.warum-bild img { filter: grayscale(1) contrast(1.05); border-radius: 2px; }
.warum-bild figcaption { font: 500 .9rem/1.4 var(--f-sc); letter-spacing: .06em; color: var(--tinte-soft); margin-top: .7rem; }
.vers {
  margin: 2.2rem 0 0; padding: 1.4rem 0 0;
  border-top: 3px solid var(--stroh);
}
.vers .mundart { color: var(--haes); font-size: clamp(1.4rem, 2.6vw, 1.9rem); }
@media (max-width: 820px) { .warum { grid-template-columns: 1fr; } .warum-bild { max-width: 420px; } }

/* ---------- Chronik ---------- */
.chronik { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; }
.chronik li {
  position: relative;
  padding: 1.8rem 1.4rem 1.8rem 0;
  border-top: 3px solid var(--stroh);
}
.chronik li::before {
  content: ""; position: absolute; top: -9px; left: 0;
  width: 15px; height: 15px; border-radius: 50%;
  background: var(--schleife); border: 3px solid var(--haes);
}
.chronik .jahr { display: block; font: 400 clamp(2.6rem, 4vw, 3.4rem)/1 var(--f-display); color: var(--stroh); margin-bottom: .6rem; }
.chronik p { margin: 0; color: #dfe4f3; font-size: 1.05rem; }
@media (max-width: 960px) { .chronik { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .chronik { grid-template-columns: 1fr; } .chronik li { padding-right: 0; } }

/* ---------- Figuren ---------- */
.figuren { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(1.2rem, 2.5vw, 2rem); }
.figur {
  background: #fff;
  border-radius: var(--radius);
  overflow: hidden;
  display: flex; flex-direction: column;
  box-shadow: 0 1px 0 var(--linie), 0 10px 30px rgba(22, 32, 63, .06);
}
.figur-bild { aspect-ratio: 4 / 3; overflow: hidden; background: var(--haes); }
.figur-bild img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.figur:hover .figur-bild img { transform: scale(1.04); }
.figur-text { padding: 1.4rem 1.5rem 1.6rem; display: flex; flex-direction: column; gap: .6rem; flex: 1; }
.figur-text .seit { font: 500 .85rem/1 var(--f-sc); letter-spacing: .12em; color: var(--schleife); }
.figur-text h3 { font: 400 2rem/1 var(--f-display); color: var(--haes); }
.figur-text p { margin: 0; font-size: 1.05rem; color: var(--tinte-soft); }
.figur details { margin-top: auto; padding-top: .6rem; }
.figur summary {
  cursor: pointer; font-weight: 700; color: var(--haes); list-style: none;
  display: inline-flex; align-items: center; gap: .4rem;
}
.figur summary::-webkit-details-marker { display: none; }
.figur summary::after { content: "+"; font-size: 1.3rem; line-height: 1; color: var(--schleife); }
.figur details[open] summary::after { content: "–"; }
.figur details div { font-size: 1rem; color: var(--tinte); padding-top: .6rem; }
.figur details div p { margin: 0 0 .8rem; }
.figur.breit { grid-column: span 2; flex-direction: row; }
.figur.breit .figur-bild { aspect-ratio: auto; flex: 1.1; min-height: 320px; }
.figur.breit .figur-text { flex: 1; }
@media (max-width: 960px) {
  .figuren { grid-template-columns: repeat(2, 1fr); }
  .figur.breit { grid-column: span 2; }
}
@media (max-width: 620px) {
  .figuren { grid-template-columns: 1fr; }
  .figur.breit { grid-column: auto; flex-direction: column; }
  .figur.breit .figur-bild { aspect-ratio: 4 / 3; min-height: 0; }
}

/* ---------- Schmutzige Dunschdig ---------- */
.fasnet { display: grid; grid-template-columns: 1.2fr .8fr; gap: clamp(2rem, 5vw, 4rem); align-items: start; }
.tag-liste { list-style: none; margin: 0; padding: 0; }
.tag-liste li {
  display: grid; grid-template-columns: 5.2rem 1fr; gap: 1rem;
  padding: 1rem 0; border-bottom: 1px solid rgba(255,255,255,.12);
}
.tag-liste time { font: 700 1.25rem/1.3 var(--f-body); color: var(--stroh); font-variant-numeric: tabular-nums; }
.tag-liste b { display: block; font-size: 1.15rem; }
.tag-liste span { color: #aeb8d8; font-size: 1rem; }
.woche h3 { font: 400 1.9rem/1 var(--f-display); color: var(--stroh); margin: 0 0 1rem; }
.woche dl { margin: 0; }
.woche dt { font: 500 .9rem/1.2 var(--f-sc); letter-spacing: .1em; color: var(--stroh-hell); margin-top: 1.1rem; }
.woche dd { margin: .25rem 0 0; color: #dfe4f3; }
.hinweis { margin-top: 2rem; padding: 1.2rem 1.3rem; background: rgba(255,255,255,.06); border-left: 4px solid var(--schleife); font-size: 1rem; color: #dfe4f3; }
.hinweis a { color: var(--stroh); font-weight: 700; }
@media (max-width: 860px) { .fasnet { grid-template-columns: 1fr; } }

/* ---------- Narrenbaum ---------- */
.baum { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 6vw, 5rem); align-items: center; }
.baum-foto { border-radius: 2px; }
.baum p { margin: 0 0 1.1rem; }
.fakten { display: flex; flex-wrap: wrap; gap: 1rem 2.4rem; margin: 1.8rem 0; padding: 1.4rem 0; border-top: 1px solid var(--linie); border-bottom: 1px solid var(--linie); }
.fakten div { display: flex; flex-direction: column; }
.fakten b { font: 400 2.6rem/1 var(--f-display); color: var(--haes); }
.fakten span { font: 500 .85rem/1.3 var(--f-sc); letter-spacing: .1em; color: var(--tinte-soft); }
.spruch { margin-top: clamp(3rem, 7vw, 5rem); text-align: center; max-width: 52rem; margin-left: auto; margin-right: auto; }
.spruch .mundart { color: var(--haes); font-size: clamp(2rem, 5vw, 3.4rem); }
.spruch footer { margin-top: 1rem; color: var(--tinte-soft); }
@media (max-width: 860px) { .baum { grid-template-columns: 1fr; } }

/* ---------- Archiv ---------- */
.archiv { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 1.4rem; }
.dokument { text-decoration: none; display: flex; flex-direction: column; gap: .6rem; }
.dokument img {
  aspect-ratio: 305 / 413; object-fit: cover; object-position: top;
  background: #fff; border: 1px solid var(--linie);
  box-shadow: 4px 4px 0 var(--linie);
  transition: transform .2s ease, box-shadow .2s ease;
}
.dokument:hover img { transform: translate(-3px, -3px); box-shadow: 7px 7px 0 var(--stroh); }
.dokument b { font-size: 1.02rem; line-height: 1.25; }
.dokument span { font: 500 .8rem/1 var(--f-sc); letter-spacing: .1em; color: var(--tinte-soft); }
.archiv-links { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-top: 3rem; }
.archiv-links a {
  display: block; padding: 1.3rem 1.4rem; background: #fff; border-radius: var(--radius);
  text-decoration: none; border-left: 4px solid var(--stroh);
  box-shadow: 0 1px 0 var(--linie);
}
.archiv-links a:hover { border-left-color: var(--schleife); }
.archiv-links b { display: block; font: 400 1.6rem/1.1 var(--f-display); color: var(--haes); margin-bottom: .3rem; }
.archiv-links span { font-size: 1rem; color: var(--tinte-soft); }
@media (max-width: 860px) { .archiv-links { grid-template-columns: 1fr; } }

/* ---------- Mitglied ---------- */
.mitglied { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(2rem, 5vw, 4rem); align-items: start; }
.beitraege { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; align-self: center; }
.beitraege::before { content: "Jahresbeiträge"; grid-column: 1 / -1; font: 400 1.6rem/1 var(--f-display); color: var(--stroh-hell); }
.beitrag { background: #fff; color: var(--tinte); border-radius: var(--radius); padding: 1.6rem 1.5rem; border-top: 5px solid var(--stroh); box-shadow: 0 18px 40px rgba(0, 0, 0, .25); }
.beitrag.familie { border-top-color: var(--schleife); }
.beitrag b { display: block; font: 400 2.8rem/1 var(--f-display); color: var(--haes); }
.beitrag h3 { font-size: 1.15rem; margin: .5rem 0 .2rem; }
.beitrag p { margin: 0; font-size: .98rem; color: var(--tinte-soft); }
.drin { list-style: none; padding: 0; margin: 1.4rem 0 2rem; }
.drin li { padding: .5rem 0 .5rem 1.8rem; position: relative; }
.drin li::before { content: ""; position: absolute; left: 0; top: .95rem; width: 12px; height: 12px; background: var(--stroh); transform: rotate(45deg); }
.downloads { display: flex; flex-wrap: wrap; gap: .8rem; }
.klein-link { color: #c9d1ea; font-size: .98rem; }
@media (max-width: 860px) { .mitglied { grid-template-columns: 1fr; } }
@media (max-width: 420px) { .beitraege { grid-template-columns: 1fr; } }

/* ---------- Kontakt / Fuß ---------- */
.kontakt { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 5vw, 4rem); }
.kontakt address { font-style: normal; font-size: 1.2rem; line-height: 1.7; }
.kontakt address a { color: var(--haes); font-weight: 700; }
.kontakt-karte { background: var(--haes); color: #fff; padding: clamp(1.6rem, 4vw, 2.4rem); border-radius: var(--radius); position: relative; overflow: hidden; isolation: isolate; }
.kontakt-karte::before { content: ""; position: absolute; inset: 0; z-index: -1; background-image: var(--muster); background-size: 56px 72px; opacity: .1; }
.kontakt-karte h3 { font: 400 2rem/1 var(--f-display); color: var(--stroh); margin-bottom: .8rem; }
.kontakt-karte p { color: #dfe4f3; margin: 0 0 1.4rem; }
.kontakt-karte .knoepfe { display: flex; flex-wrap: wrap; gap: .7rem; }
@media (max-width: 860px) { .kontakt { grid-template-columns: 1fr; } }

.fuss { position: relative; isolation: isolate; overflow: hidden; background: var(--haes-tief); color: #aeb8d8; padding: clamp(3.5rem, 7vw, 5rem) 0 1.6rem; font-size: 1rem; border-top: 3px solid var(--stroh); }
.fuss::before { content: ""; position: absolute; inset: 0; z-index: -1; background-image: var(--muster); background-size: 56px 72px; opacity: .05; }
.fuss-raster { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1.25fr; gap: 2.4rem clamp(1.6rem, 4vw, 3.5rem); }
.fuss-logo { display: inline-block; }
.fuss-logo svg { width: 46px; height: 62px; }
.fuss .ruf { font: 400 clamp(2.4rem, 4vw, 3rem)/1 var(--f-display); color: var(--stroh); margin: .8rem 0 .6rem; }
.fuss-marke p:not(.ruf) { margin: 0; line-height: 1.55; }
.fuss-spalte { display: flex; flex-direction: column; align-items: flex-start; gap: .55rem; }
.fuss-spalte h2 { margin: .3rem 0 .5rem; font: 400 1.5rem/1 var(--f-display); color: #fff; }
.fuss-spalte address { font-style: normal; line-height: 1.7; }
.fuss a { color: #dfe4f3; text-decoration: none; }
.fuss a:hover { color: var(--stroh); text-decoration: underline; text-underline-offset: 3px; }
.fuss-fb { margin-top: .4rem; font-weight: 700; }
.fuss-fb + .fuss-fb { margin-top: 0; }
.fuss-unten { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .8rem 1.5rem; margin-top: clamp(2.6rem, 5vw, 3.5rem); padding-top: 1.4rem; border-top: 1px solid rgba(255, 255, 255, .1); font-size: .92rem; }
.fuss-unten p { margin: 0; }
.fuss-unten nav { display: flex; gap: 1.4rem; }
@media (max-width: 900px) { .fuss-raster { grid-template-columns: 1fr 1fr; } .fuss-marke { grid-column: 1 / -1; } }
@media (max-width: 480px) { .fuss-raster { grid-template-columns: 1fr; } }

/* ---------- Unterseiten (Chronik, Impressum) ---------- */
.seitenkopf { background: var(--haes); color: #fff; position: relative; overflow: hidden; isolation: isolate; }
.seitenkopf::before { content: ""; position: absolute; inset: 0; z-index: -1; background-image: var(--muster); background-size: 56px 72px; opacity: .14; }
.seitenkopf .wrap { padding-top: clamp(3rem, 7vw, 5rem); padding-bottom: clamp(2.5rem, 6vw, 4rem); }
.seitenkopf h1 { font: 400 clamp(3rem, 8vw, 6rem)/.95 var(--f-display); color: var(--stroh); }
.seitenkopf .eyebrow { color: var(--stroh-hell); }
.seitenkopf p:not(.eyebrow) { color: #dfe4f3; max-width: 40rem; margin: 1.2rem 0 0; font-size: 1.2rem; }

.archiv-layout { display: grid; grid-template-columns: 250px 1fr; gap: clamp(2rem, 5vw, 4rem); padding-top: clamp(3rem, 6vw, 5rem); padding-bottom: clamp(3rem, 6vw, 5rem); align-items: start; }
.inhalt { position: sticky; top: 90px; }
.inhalt p { font: 500 .85rem/1 var(--f-sc); letter-spacing: .12em; color: var(--schleife); margin: 0 0 .8rem; }
.inhalt ol { list-style: none; margin: 0; padding: 0; border-left: 2px solid var(--linie); }
.inhalt li { break-inside: avoid; }
.inhalt a { display: block; padding: .4rem 0 .4rem 1rem; text-decoration: none; color: var(--tinte-soft); font-size: 1rem; margin-left: -2px; border-left: 2px solid transparent; }
.inhalt a:hover { color: var(--haes); border-left-color: var(--stroh); }
.text-block { max-width: 44rem; padding-bottom: 3.5rem; margin-bottom: 3.5rem; border-bottom: 1px solid var(--linie); scroll-margin-top: 90px; }
.text-block:last-child { border-bottom: 0; }
.text-block h2 { font-size: clamp(2.2rem, 4.5vw, 3.2rem); margin-bottom: .4rem; }
.text-block .quelle { font: 500 .9rem/1.3 var(--f-sc); letter-spacing: .08em; color: var(--schleife); margin: 0 0 1.6rem; }
.text-block p { margin: 0 0 1.1rem; }
.text-block .gedicht { font-family: var(--f-body); font-style: italic; padding-left: 1rem; border-left: 3px solid var(--stroh); }
.text-block h3 { margin: 2rem 0 .8rem; color: var(--haes); }
.text-block .jahrmarke { display: inline-block; font: 400 1.8rem/1 var(--f-display); color: var(--schleife); margin: 1.6rem 0 .4rem; }
.aemter { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1.6rem; }
.aemter h3 { margin-top: 0; }
.aemter ul { list-style: none; padding: 0; margin: 0; }
.aemter li { padding: .35rem 0; border-bottom: 1px dashed var(--linie); font-size: 1rem; }
.aemter li span { display: inline-block; min-width: 6.5rem; font-variant-numeric: tabular-nums; color: var(--tinte-soft); }
.audio { margin: 1rem 0 1.6rem; width: 100%; }
@media (max-width: 860px) {
  .archiv-layout { grid-template-columns: 1fr; }
  .inhalt { position: static; }
  .inhalt ol { columns: 2 180px; }
}
.recht { max-width: 48rem; padding: clamp(3rem, 6vw, 5rem) 0; }
.recht h2 { font: 700 1.5rem/1.2 var(--f-body); color: var(--haes); margin: 2.2rem 0 .8rem; }
.recht h3 { font-size: 1.15rem; margin: 1.6rem 0 .5rem; }
.recht p { margin: 0 0 1rem; font-size: 1.05rem; }

/* Einblenden beim Scrollen */
.einblenden { opacity: 0; transform: translateY(18px); transition: opacity .7s ease, transform .7s ease; }
.einblenden.sichtbar { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .einblenden { opacity: 1; transform: none; } }

/* =========================================================
   WOW-Ebene: Narrensprung, Countdown, Zeitreise, Halm, Tageshimmel, Narrenbaum, Marsch
   ========================================================= */

/* ---------- Hero, bühnenfüllend ---------- */
.hero { min-height: calc(100svh - 67px); display: flex; flex-direction: column; justify-content: center; }
.hero .wrap { width: 100%; }
.narrensprung { position: absolute; inset: 0; width: 100%; height: 100%; z-index: -1; pointer-events: none; }
.js .hero::before { display: none; }
.hero h1 { font-size: clamp(4.4rem, 14vw, 11rem); }
.huepf .b { display: inline-block; will-change: transform; }
.js .huepf .b { animation: sprung .95s cubic-bezier(.28, 1.55, .5, 1) both; animation-delay: calc(var(--i) * 55ms + .15s); }
.js .huepf.gelandet .b { animation: none; }
.js .huepf.gelandet .b.hopp { animation: hopp .6s cubic-bezier(.3, 1.6, .5, 1); }
@keyframes sprung {
  0% { transform: translateY(-130%) rotate(-14deg); opacity: 0; }
  60% { opacity: 1; }
  100% { transform: none; opacity: 1; }
}
@keyframes hopp {
  0%, 100% { transform: none; }
  40% { transform: translateY(-22%) rotate(-8deg); }
}
.js .hero .eyebrow, .js .hero .lead, .js .hero .knoepfe { animation: auftauchen .9s ease both; }
.js .hero .lead { animation-delay: .75s; }
.js .hero .knoepfe { animation-delay: .9s; }
.js .hero-bild { animation: bildkommt 1.2s cubic-bezier(.2, .9, .3, 1.1) .35s both; }
@keyframes auftauchen { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
@keyframes bildkommt { from { opacity: 0; transform: translateY(60px) rotate(8deg) scale(.9); } to { opacity: 1; transform: none; } }
.hero-bild img { transform: rotate(calc(1.5deg + var(--dreh, 0deg))) translateY(var(--hub, 0px)); transition: none; }
.scroll-hinweis {
  position: absolute; left: 50%; bottom: 1.2rem; transform: translateX(-50%);
  display: flex; flex-direction: column; align-items: center; gap: .5rem;
  font: 500 .8rem/1 var(--f-sc); letter-spacing: .16em; color: var(--stroh-hell); text-decoration: none;
}
.scroll-hinweis::after { content: ""; width: 2px; height: 42px; background: linear-gradient(var(--stroh), transparent); animation: halmfall 1.8s ease-in-out infinite; transform-origin: top; }
@keyframes halmfall { 0% { transform: scaleY(0); } 50% { transform: scaleY(1); } 100% { transform: scaleY(1); opacity: 0; } }
@media (max-width: 820px) { .scroll-hinweis { display: none; } .hero { min-height: 0; } }

/* ---------- Countdown ---------- */
.countdown {
  background: var(--schleife); color: #fff;
  padding: clamp(3.5rem, 8vw, 6rem) 0;
  position: relative; overflow: hidden; isolation: isolate;
  scroll-margin-top: 60px;
}
.countdown::before {
  content: ""; position: absolute; inset: 0; z-index: -1; opacity: .09;
  background: var(--streifen);
}
.countdown-kopf { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .5rem 2rem; margin-bottom: 1.5rem; }
.countdown .eyebrow { color: var(--stroh-hell); margin: 0; }
.countdown h2 { color: #fff; font-size: clamp(2rem, 4.5vw, 3.4rem); }
.uhr { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 2px solid rgba(255,255,255,.35); border-bottom: 2px solid rgba(255,255,255,.35); }
.uhr div { padding: 1.2rem 0 1rem; text-align: center; }
.uhr div + div { border-left: 2px solid rgba(255,255,255,.35); }
.uhr b {
  display: block; font: 400 clamp(4rem, 13vw, 11rem)/.9 var(--f-display);
  color: var(--stroh-hell); font-variant-numeric: tabular-nums;
  text-shadow: 0 4px 0 rgba(90, 10, 10, .35);
}
.uhr b.tick { animation: tick .45s ease; }
@keyframes tick { 0% { transform: translateY(-14%); opacity: .4; } 100% { transform: none; opacity: 1; } }
.uhr span { font: 500 .9rem/1 var(--f-sc); letter-spacing: .16em; }
.countdown-fuss { margin: 1.4rem 0 0; font-size: 1.15rem; }
.countdown-fuss a { color: var(--stroh-hell); font-weight: 700; }
@media (max-width: 620px) {
  .uhr { grid-template-columns: repeat(2, 1fr); }
  .uhr div:nth-child(3) { border-left: 0; }
  .uhr div:nth-child(n+3) { border-top: 2px solid rgba(255,255,255,.35); }
}

/* ---------- Zeitreise (horizontal) ---------- */
.zeitreise { background: var(--haes-tief); color: #fff; position: relative; }
.zeitreise-buehne { padding: clamp(4rem, 8vw, 6rem) 0; overflow: hidden; }
.zeitreise-kopf h2 { color: var(--stroh); }
.zeitreise .eyebrow { color: var(--stroh-hell); }
.zeitreise-spur {
  list-style: none; margin: 2.5rem 0 0;
  padding: 0 var(--gutter) 0 max(var(--gutter), calc((100vw - var(--wrap)) / 2 + var(--gutter)));
  display: flex; gap: clamp(2rem, 5vw, 5rem);
  overflow-x: auto; will-change: transform;
}
.zeitreise-spur li { flex: 0 0 min(80vw, 520px); }
.zeitreise-spur li:last-child { margin-right: 10vw; }
.zeitreise-spur .jahr {
  display: block;
  font: 400 clamp(7rem, 21vw, 16rem)/.85 var(--f-display);
  color: transparent; -webkit-text-stroke: 2px var(--stroh);
  transition: color .4s ease, transform .4s ease;
}
.zeitreise-spur li.aktiv .jahr { color: var(--stroh); transform: translateY(-6px); }
.zeitreise-spur li.jetzt .jahr { -webkit-text-stroke-color: var(--schleife); }
.zeitreise-spur li.jetzt.aktiv .jahr { color: var(--schleife); }
.zeitreise-spur p { font-size: clamp(1.1rem, 1.6vw, 1.3rem); color: #dfe4f3; max-width: 26rem; margin: 1.2rem 0 0; }
.zeitreise-halm { display: none; }
.js .zeitreise { height: var(--reise, 400vh); }
.js .zeitreise-buehne { position: sticky; top: 0; height: 100vh; display: flex; flex-direction: column; justify-content: center; padding: 60px 0 0; }
.js .zeitreise-spur { overflow: visible; }
.js .zeitreise-halm { display: block; position: absolute; left: var(--gutter); right: var(--gutter); bottom: 2.4rem; height: 3px; background: rgba(255,255,255,.12); }
.zeitreise-halm i { display: block; height: 100%; background: var(--stroh); transform-origin: left; transform: scaleX(var(--p, 0)); }

/* ---------- Vom Halm zum Häs ---------- */
.halm { padding: clamp(4rem, 9vw, 7rem) 0; scroll-margin-top: 60px; }
.halm-raster { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 6vw, 5rem); align-items: start; }
.halm-bild { position: sticky; top: 90px; height: calc(100vh - 130px); display: flex; flex-direction: column; gap: 1rem; }
.halm-rahmen { position: relative; flex: 1; overflow: hidden; border-radius: 2px; border: 6px solid var(--haes); background: var(--haes); }
.halm-rahmen img {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
  object-position: var(--pos, 50% 50%);
  opacity: 0; transform: scale(1.04);
  transition: opacity .7s ease, transform 1.6s cubic-bezier(.2, .8, .2, 1);
}
.halm-rahmen img.aktiv { opacity: 1; transform: none; }
.halm-zaehler { margin: 0; font: 400 1.6rem/1 var(--f-display); color: var(--tinte-soft); }
.halm-zaehler b { font-size: 3.4rem; color: var(--schleife); font-weight: 400; }
.halm-intro { font-size: 1.25rem; color: var(--tinte-soft); margin: 1rem 0 0; }
.halm-schritte { list-style: none; margin: 0; padding: 0; counter-reset: schritt; }
.halm-schritte li {
  counter-increment: schritt;
  min-height: 62vh; display: flex; flex-direction: column; justify-content: center;
  padding-left: 1.6rem; border-left: 4px solid var(--linie);
  opacity: .28; transition: opacity .5s ease, border-color .5s ease;
}
.halm-schritte li:first-child { min-height: 50vh; }
.halm-schritte li.aktiv { opacity: 1; border-left-color: var(--stroh); }
.halm-schritte h3 { font: 400 clamp(2.4rem, 4.5vw, 3.6rem)/1 var(--f-display); color: var(--haes); display: flex; align-items: baseline; gap: .8rem; }
.halm-schritte h3::before { content: counter(schritt); font-size: .6em; color: var(--schleife); }
.halm-schritte p { font-size: 1.2rem; margin: .8rem 0 0; max-width: 30rem; }
.mehr-link { margin-top: auto; padding-top: .6rem; font-weight: 700; color: var(--haes); text-decoration: none; }
.mehr-link:hover { color: var(--schleife); }
@media (max-width: 860px) {
  .halm-raster { grid-template-columns: 1fr; }
  .halm-bild {
    top: 67px; height: calc(38vh + 1.4rem); z-index: 2; flex-direction: row; align-items: end;
    background: var(--leinen); margin: 0 calc(-1 * var(--gutter)); padding: .6rem var(--gutter) .8rem;
    box-shadow: 0 12px 16px -12px rgba(22, 32, 63, .25);
  }
  .halm-zaehler { right: calc(var(--gutter) + .8rem) !important; bottom: 1.4rem !important; }
  .halm-zaehler { position: absolute; right: .8rem; bottom: .6rem; background: var(--leinen); padding: .2rem .6rem; border-radius: 3px; }
  .halm-rahmen { align-self: stretch; }
  .halm-text { position: relative; }
  .halm-schritte li { min-height: 46vh; }
  .halm-schritte li:first-child { min-height: 40vh; }
  .halm-schritte h3 { font-size: 2.2rem; }
  .halm-schritte p { font-size: 1.08rem; }
}

/* ---------- Schmutzige Dunschdig: Tageshimmel ---------- */
.dunschdig { position: relative; color: #fff; background: var(--haes-tief); padding-bottom: clamp(3rem, 7vw, 5rem); scroll-margin-top: 60px; }
.himmel-schicht { position: absolute; inset: 0; }
.himmel {
  position: sticky; top: 0; height: 100vh;
  background: linear-gradient(var(--h1, #070d24), var(--h2, #1b2550));
  overflow: hidden;
}
.gestirn {
  position: absolute; width: 90px; height: 90px; border-radius: 50%;
  left: var(--gx, 10%); top: var(--gy, 70%); transform: translate(-50%, -50%);
  background: var(--gf, #fbeec4);
  box-shadow: 0 0 60px 20px var(--gg, rgba(251, 238, 196, .25));
}
.sterne {
  position: absolute; inset: 0; opacity: var(--nacht, 1);
  background-image:
    radial-gradient(1.5px 1.5px at 12% 18%, #fff 50%, transparent 51%),
    radial-gradient(1px 1px at 28% 32%, #fff 50%, transparent 51%),
    radial-gradient(1.5px 1.5px at 44% 12%, #fff 50%, transparent 51%),
    radial-gradient(1px 1px at 63% 26%, #fff 50%, transparent 51%),
    radial-gradient(1.5px 1.5px at 78% 9%, #fff 50%, transparent 51%),
    radial-gradient(1px 1px at 90% 30%, #fff 50%, transparent 51%),
    radial-gradient(1px 1px at 7% 42%, #fff 50%, transparent 51%),
    radial-gradient(1.5px 1.5px at 55% 44%, #fff 50%, transparent 51%);
}
.dorf { position: absolute; left: 0; right: 0; bottom: 0; width: 100%; height: 34vh; }
.dorf .huegel { fill: var(--hg, #0e1a44); }
.dorf .silhouette, .dorf .narrenbaum-sil { fill: #081030; }
.dorf .narrenbaum-sil { stroke: #081030; opacity: var(--baum, 0); transition: opacity .6s ease; }
.dorf .narrenbaum-sil .baender { stroke: var(--schleife); }
.dorf .fenster { fill: #ffd57a; opacity: var(--licht, 1); }
.dorf .lampions circle { fill: #ffb347; filter: drop-shadow(0 0 6px #ffb347); opacity: var(--lampion, 0); }
.dunschdig-raster { position: relative; display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(2rem, 5vw, 4rem); align-items: start; }
.dunschdig-uhr { position: sticky; top: 90px; padding-top: clamp(3rem, 7vw, 5rem); }
.dunschdig-uhr .eyebrow { color: var(--stroh-hell); }
.dunschdig-uhr h2 { color: #fff; text-shadow: 0 2px 16px rgba(8, 16, 48, .5); }
.grosse-uhr {
  margin: .5rem 0 0;
  font: 400 clamp(5.5rem, 13vw, 10.5rem)/1 var(--f-display);
  color: var(--stroh); font-variant-numeric: tabular-nums;
  text-shadow: 0 4px 30px rgba(8, 16, 48, .45);
}
.dunschdig-sub { margin: .4rem 0 0; font-size: 1.1rem; color: #eef1f7; text-shadow: 0 1px 8px rgba(8, 16, 48, .6); max-width: 24rem; }
.stationen { list-style: none; margin: 0; padding: 40vh 0 30vh; }
.stationen li {
  margin-bottom: 38vh;
  background: rgba(10, 18, 50, .8);
  border-left: 4px solid var(--stroh); border-radius: var(--radius);
  padding: 1.3rem 1.5rem;
  opacity: .45; transform: scale(.97); transition: opacity .4s ease, transform .4s ease;
}
.stationen li:last-child { margin-bottom: 0; }
@media (hover: hover) and (pointer: fine) {
  .stationen li { background: rgba(10, 18, 50, .62); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
}
.stationen li.aktiv { opacity: 1; transform: none; }
.stationen li::before { content: attr(data-zeit) " Uhr"; display: block; font: 500 .85rem/1 var(--f-sc); letter-spacing: .14em; color: var(--stroh-hell); margin-bottom: .5rem; }
.stationen b { display: block; font: 400 clamp(1.8rem, 3vw, 2.4rem)/1.05 var(--f-display); color: #fff; }
.stationen span { display: block; margin-top: .4rem; color: #dfe4f3; }
.woche-wrap { position: relative; margin-top: clamp(3rem, 8vw, 6rem); }
.woche { background: var(--haes); border-radius: var(--radius); padding: clamp(1.6rem, 4vw, 2.6rem); }
.woche h3 { font: 400 2.2rem/1 var(--f-display); color: var(--stroh); margin: 0 0 1.4rem; }
.woche dl { display: grid; grid-template-columns: repeat(5, 1fr); gap: 1.4rem; margin: 0; }
.woche dl div { border-top: 3px solid var(--stroh); padding-top: .8rem; }
.woche dt { margin: 0; }
@media (max-width: 960px) { .woche dl { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 860px) {
  .dunschdig-raster { grid-template-columns: 1fr; }
  .dunschdig-uhr { top: 64px; z-index: 2; padding-top: 2rem; }
  .dunschdig-uhr h2, .dunschdig-sub { display: none; }
  .grosse-uhr { font-size: 4.6rem; }
  .gestirn { width: 54px; height: 54px; }
  /* Karten gleiten über die klebende Uhr statt darunter durchzuscheinen */
  .stationen { position: relative; z-index: 3; padding-top: 22vh; }
  .stationen li { background: rgba(10, 18, 50, .86); margin-bottom: 30vh; }
}
@media (max-width: 480px) { .woche dl { grid-template-columns: 1fr; } }

/* ---------- Narrenbaum wird aufgestellt ---------- */
.baum { grid-template-columns: 300px 1fr; align-items: stretch; }
.baum-mass { position: sticky; top: 100px; align-self: start; height: min(660px, calc(100vh - 140px)); margin: 0; }
.szene {
  position: relative; height: 100%; overflow: hidden; border-radius: var(--radius);
  background: linear-gradient(#c9d7ec, #e9eef6 72%);
  box-shadow: 0 1px 0 var(--linie), 0 18px 40px rgba(22, 32, 63, .12);
}
.szene-land { position: absolute; left: 0; bottom: 12%; width: 100%; height: 28%; }
.szene-land .fern { fill: #b4c3db; }
.szene-land .nah { fill: #9fb1cc; }
.boden { position: absolute; left: 0; right: 0; bottom: 0; height: 14%; background: linear-gradient(#fdfeff, #e3e9f2); box-shadow: 0 -1px 0 rgba(255,255,255,.8); }
.boden::before { content: ""; position: absolute; left: 50%; top: -4px; width: 90px; height: 12px; transform: translateX(-50%); border-radius: 50%; background: radial-gradient(rgba(40, 50, 80, .28), transparent 70%); }
.baum-wachs {
  --spitze: 124px;
  position: absolute; left: 50%; bottom: 14%; width: 0;
  height: calc(86% - var(--spitze) * 1.65 - 14px);
  transform-origin: 50% 100%;
  transform: rotate(calc((1 - var(--auf, 0)) * -84deg));
  z-index: 1;
}
.stamm {
  position: absolute; bottom: 0; left: -11px; width: 22px; height: 100%;
  clip-path: polygon(33% 0, 67% 0, 100% 100%, 0 100%);
  background:
    radial-gradient(ellipse 2px 5px at 42% 30px, rgba(70, 45, 20, .75), transparent),
    radial-gradient(ellipse 2px 4px at 60% 75px, rgba(70, 45, 20, .6), transparent),
    linear-gradient(90deg, #6e4b2a, #c29868 30%, #ecd7b0 48%, #d4b183 60%, #7a5430);
  background-size: 100% 110px, 100% 140px, 100% 100%;
}
.spitze { position: absolute; bottom: calc(100% - 1px); left: calc(var(--spitze) / -2); width: var(--spitze); height: auto; max-width: none; }
.baum-strohmann {
  position: absolute; top: 4px; left: -34px; width: 68px; height: auto; max-width: none;
  transform-origin: 50% 0; animation: baumeln 3.6s ease-in-out infinite;
  filter: drop-shadow(0 4px 4px rgba(40, 30, 10, .25));
}
@keyframes baumeln { 0%, 100% { transform: rotate(-2.5deg); } 50% { transform: rotate(2.5deg); } }
.skala {
  position: absolute; left: 0; right: 0; top: 14px; bottom: 14%; margin: 0; padding: 0; list-style: none;
  display: flex; flex-direction: column; justify-content: space-between; pointer-events: none;
}
.skala li {
  height: 0; overflow: visible; border-top: 1px dashed rgba(22, 32, 63, .2);
  font: 500 .78rem/1.6 var(--f-sc); letter-spacing: .08em; color: var(--tinte-soft); padding-left: 10px;
}
.skala li:last-child { border-top-color: transparent; }
.meter { position: absolute; right: 14px; bottom: 3%; margin: 0; font: 400 1.4rem/1 var(--f-display); color: var(--tinte-soft); z-index: 2; }
.meter b { font-size: 3rem; color: var(--haes); font-weight: 400; font-variant-numeric: tabular-nums; }
.baum-foto { margin-top: 1.8rem; border-radius: 2px; box-shadow: 10px 10px 0 var(--stroh); }
@media (max-width: 860px) {
  .baum { grid-template-columns: 1fr; }
  .baum-mass { position: relative; top: 0; height: 520px; }
}

/* ---------- Narrenmarsch ---------- */
.marsch {
  position: fixed; z-index: 60;
  right: max(1rem, env(safe-area-inset-right)); bottom: max(1rem, env(safe-area-inset-bottom));
}
.marsch-start {
  display: inline-flex; align-items: center; gap: .6rem;
  background: var(--haes-tief); color: var(--stroh-hell);
  border: 2px solid var(--stroh); border-radius: 999px;
  padding: .6rem 1rem .6rem .8rem;
  font: 700 .95rem/1 var(--f-body); cursor: pointer;
  box-shadow: 0 10px 30px rgba(6, 12, 34, .35);
  transition: transform .15s ease;
}
.marsch-start:hover { transform: translateY(-2px); }
.marsch-start[hidden], .marsch-spieler[hidden] { display: none; }
.marsch-balken { display: inline-flex; align-items: end; gap: 2px; height: 16px; }
.marsch-balken i { width: 3px; height: 45%; background: var(--stroh); border-radius: 1px; transform-origin: 50% 100%; }
.marsch-balken i:nth-child(2) { height: 85%; }
.marsch-balken i:nth-child(3) { height: 60%; }
.marsch-balken i:nth-child(4) { height: 100%; }
.marsch.laeuft .marsch-start { background: var(--stroh); color: var(--haes-tief); }
.marsch.laeuft .marsch-balken i { animation: pegel .7s ease-in-out infinite alternate; }
.marsch.laeuft .marsch-start .marsch-balken i { background: var(--haes-tief); }
.marsch.laeuft .marsch-balken i:nth-child(2) { animation-delay: -.3s; }
.marsch.laeuft .marsch-balken i:nth-child(3) { animation-delay: -.5s; }
.marsch.laeuft .marsch-balken i:nth-child(4) { animation-delay: -.15s; }
.marsch.laeuft .marsch-balken i { height: 100%; }
@keyframes pegel { from { transform: scaleY(.2); } to { transform: scaleY(1); } }

.marsch-spieler {
  display: flex; align-items: center; gap: .5rem;
  width: min(380px, calc(100vw - 2rem));
  background: var(--haes-tief); color: #fff;
  border: 2px solid var(--stroh); border-radius: 18px;
  padding: .55rem .55rem .55rem .6rem;
  box-shadow: 0 14px 40px rgba(6, 12, 34, .45);
  animation: marsch-auf .25s cubic-bezier(.2, .8, .2, 1);
}
@keyframes marsch-auf { from { opacity: 0; transform: translateY(10px) scale(.97); } }
.marsch-knopf {
  flex: none; display: grid; place-items: center;
  width: 44px; height: 44px; border-radius: 50%;
  border: 0; background: transparent; color: var(--stroh-hell); cursor: pointer;
}
.marsch-knopf svg { width: 24px; height: 24px; fill: currentColor; }
.marsch-knopf:hover { background: rgba(228, 180, 58, .14); }
.marsch-knopf:focus-visible, .marsch-start:focus-visible { outline: 3px solid var(--stroh-hell); outline-offset: 2px; }
.marsch-play { width: 48px; height: 48px; background: var(--stroh); color: var(--haes-tief); }
.marsch-play:hover { background: var(--stroh-hell); }
.marsch-play .ic-pause, .marsch.laeuft .marsch-play .ic-play { display: none; }
.marsch.laeuft .marsch-play .ic-pause { display: block; }
.marsch-ton .ic-stumm, .marsch.stumm .marsch-ton .ic-laut { display: none; }
.marsch.stumm .marsch-ton .ic-stumm { display: block; }
.marsch-mitte { flex: 1; min-width: 0; }
.marsch-titel { margin: 0 0 .15rem; display: flex; justify-content: space-between; gap: .5rem; font-size: .92rem; line-height: 1.2; }
.marsch-titel b { color: var(--stroh-hell); }
.marsch-zeit { color: #c9d1ea; font-variant-numeric: tabular-nums; white-space: nowrap; }
.marsch-pos {
  --wert: 0%;
  -webkit-appearance: none; appearance: none; display: block;
  width: 100%; height: 24px; margin: 0; background: transparent; cursor: pointer;
}
.marsch-pos::-webkit-slider-runnable-track {
  height: 5px; border-radius: 3px;
  background: linear-gradient(90deg, var(--stroh) var(--wert), rgba(255, 255, 255, .22) var(--wert));
}
.marsch-pos::-moz-range-track { height: 5px; border-radius: 3px; background: rgba(255, 255, 255, .22); }
.marsch-pos::-moz-range-progress { height: 5px; border-radius: 3px; background: var(--stroh); }
.marsch-pos::-webkit-slider-thumb {
  -webkit-appearance: none; width: 16px; height: 16px; margin-top: -5.5px;
  border-radius: 50%; background: var(--stroh-hell); border: 2px solid var(--haes-tief);
}
.marsch-pos::-moz-range-thumb { width: 14px; height: 14px; border-radius: 50%; background: var(--stroh-hell); border: 2px solid var(--haes-tief); }
.marsch-pos:focus-visible { outline: 2px solid var(--stroh-hell); outline-offset: 2px; border-radius: 4px; }

@media (max-width: 620px) {
  /* Mobil: kompakter runder Knopf, der keinen Text verdeckt */
  .marsch-start { width: 52px; height: 52px; padding: 0; justify-content: center; }
  .marsch-start .marsch-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .marsch-start .marsch-balken { height: 18px; }
  .marsch.offen { left: max(.75rem, env(safe-area-inset-left)); right: max(.75rem, env(safe-area-inset-right)); bottom: max(.75rem, env(safe-area-inset-bottom)); }
  .marsch-spieler { width: 100%; }
}

/* Figuren lebendiger */
.figur { transition: transform .35s cubic-bezier(.2, .8, .2, 1), box-shadow .35s ease; }
.figur:hover { transform: translateY(-6px) rotate(-.4deg); box-shadow: 0 1px 0 var(--linie), 0 22px 44px rgba(22, 32, 63, .14); }

@media (prefers-reduced-motion: reduce) {
  .js .zeitreise { height: auto; }
  .js .zeitreise-buehne { position: static; height: auto; padding: clamp(4rem, 8vw, 6rem) 0; }
  .js .zeitreise-spur { overflow-x: auto; transform: none !important; }
  .zeitreise-spur .jahr { color: var(--stroh); }
  .halm-schritte li { opacity: 1; }
  .halm-rahmen img { transition: none; transform: none; }
  .marsch-spieler, .marsch.laeuft .marsch-balken i { animation: none; }
}

/* =========================================================
   Service-Seite
   ========================================================= */
.schnell {
  display: grid; grid-template-columns: repeat(6, 1fr); gap: .75rem;
  margin-top: -2rem; position: relative; z-index: 2;
}
.schnell a {
  background: #fff; border-radius: var(--radius); padding: 1rem 1.1rem;
  text-decoration: none; border-top: 4px solid var(--stroh);
  box-shadow: 0 10px 30px rgba(22, 32, 63, .1);
  transition: transform .2s ease, border-color .2s ease;
}
.schnell a:hover { transform: translateY(-3px); border-top-color: var(--schleife); }
.schnell b { display: block; font: 400 1.35rem/1.1 var(--f-display); color: var(--haes); }
.schnell span { display: block; margin-top: .3rem; font-size: .92rem; line-height: 1.35; color: var(--tinte-soft); }
@media (max-width: 1100px) { .schnell { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 560px) { .schnell { grid-template-columns: repeat(2, 1fr); } }

.svc { padding: clamp(3.5rem, 8vw, 6rem) 0; scroll-margin-top: 60px; }
.svc-blau { background: var(--haes); color: #fff; }
.svc-blau h2 { color: var(--stroh); }
.svc-blau .eyebrow { color: var(--stroh-hell); }
.svc-hell { background: #fff; }
.svc-kopf { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: end; gap: 1.2rem 2rem; margin-bottom: 2.2rem; }
.svc-kopf > div { max-width: 40rem; }
.svc-kopf p:not(.eyebrow) { color: var(--tinte-soft); margin: .8rem 0 0; font-size: 1.1rem; }
.svc-blau .svc-kopf p:not(.eyebrow) { color: #c9d1ea; }
.svc-hinweis { margin: 1.4rem 0 0; font-size: .98rem; color: var(--tinte-soft); }

/* Termine */
.svc-hinweis.laedt { min-height: 20rem; }
.termine { list-style: none; margin: 0; padding: 0; display: grid; gap: .8rem; }
.termin {
  display: grid; grid-template-columns: 7.5rem 1fr auto; gap: 1.4rem; align-items: center;
  background: #fff; border-radius: var(--radius); padding: 1.1rem 1.3rem;
  box-shadow: 0 1px 0 var(--linie);
}
.termin-gross { background: var(--schleife); color: #fff; }
.termin-datum { margin: 0; display: flex; flex-direction: column; line-height: 1.1; }
.termin-datum b { font: 400 2.3rem/1 var(--f-display); color: var(--haes); }
.termin-datum span { font: 500 .85rem/1.3 var(--f-sc); letter-spacing: .08em; color: var(--tinte-soft); }
.termin-gross .termin-datum b { color: var(--stroh-hell); }
.termin-gross .termin-datum span, .termin-gross .termin-text p { color: #fde9e7; }
.termin-art { font: 500 .78rem/1 var(--f-sc); letter-spacing: .14em; color: var(--schleife); }
.termin-gross .termin-art { color: var(--stroh-hell); }
.termin-text h3 { font: 400 1.7rem/1.1 var(--f-display); color: var(--haes); margin: .3rem 0 .2rem; }
.termin-gross .termin-text h3 { color: #fff; }
.termin-text p { margin: 0; color: var(--tinte-soft); font-size: 1rem; }
.termin-text .termin-ort { margin-top: .2rem; font-size: .92rem; }
.termin-ort::before { content: "📍 "; }
.btn-rahmen-blau { border-color: var(--haes); color: var(--haes); background: transparent; white-space: nowrap; }
.btn-rahmen-blau:hover { background: var(--haes); color: #fff; }
.termin-gross .btn-rahmen-blau { border-color: #fff; color: #fff; }
.termin-gross .btn-rahmen-blau:hover { background: #fff; color: var(--schleife); }
@media (max-width: 700px) {
  .termin { grid-template-columns: 5.5rem 1fr; }
  .termin .btn { grid-column: 1 / -1; justify-content: center; }
}

/* Anfahrt */
.anfahrt { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(2rem, 5vw, 4rem); align-items: center; }
.fakten-liste { margin: 1.6rem 0 0; }
.fakten-liste div { padding: .9rem 0; border-top: 1px solid var(--linie); }
.fakten-liste dt { font: 500 .85rem/1.2 var(--f-sc); letter-spacing: .1em; color: var(--schleife); }
.fakten-liste dd { margin: .3rem 0 0; font-size: 1.1rem; }
.karten-karte {
  position: relative; overflow: hidden; isolation: isolate;
  background: var(--haes); color: #fff; border-radius: var(--radius); padding: clamp(1.8rem, 4vw, 2.6rem);
}
.karten-karte::before { content: ""; position: absolute; inset: 0; z-index: -1; background-image: var(--muster); background-size: 56px 72px; opacity: .1; }
.karten-motiv { position: absolute; right: -10px; bottom: -14px; width: 150px; fill: var(--stroh); opacity: .22; z-index: -1; }
.karten-karte .gotisch { font-size: clamp(2.4rem, 5vw, 3.4rem); color: var(--stroh); margin: 0; line-height: 1; }
.karten-karte p { margin: .3rem 0 0; color: #dfe4f3; }
.karten-karte .knoepfe { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: 1.6rem; }
.klein-hinweis { font-size: .85rem; opacity: .8; margin-top: 1rem !important; }
@media (max-width: 860px) { .anfahrt { grid-template-columns: 1fr; } }

/* Fasnet-ABC */
.suche input {
  font: 400 1.05rem/1 var(--f-body); width: min(100%, 22rem);
  border: 2px solid var(--linie); border-radius: 999px; padding: .8rem 1.1rem .8rem 2.6rem;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none' stroke='%234a5577' stroke-width='2'%3E%3Ccircle cx='8' cy='8' r='6'/%3E%3Cpath d='M12.5 12.5L17 17'/%3E%3C/svg%3E") no-repeat 1rem 50%;
}
.suche input:focus { outline: none; border-color: var(--haes); }
.abc { margin: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 0 2.4rem; }
.abc div { padding: 1rem 0; border-top: 1px solid var(--linie); break-inside: avoid; }
.abc div[hidden] { display: none; }
.abc dt { font: 400 1.5rem/1.1 var(--f-display); color: var(--haes); }
.abc dd { margin: .35rem 0 0; color: var(--tinte-soft); font-size: 1rem; }
.abc-leer a { color: var(--haes); font-weight: 700; }
@media (max-width: 960px) { .abc { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .abc { grid-template-columns: 1fr; } }

/* Downloads */
.dl-raster { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1.2rem; }
.dl-gruppe { background: #fff; border-radius: var(--radius); padding: 1.3rem; box-shadow: 0 1px 0 var(--linie); }
.dl-gruppe h3 { font: 400 1.7rem/1 var(--f-display); color: var(--haes); margin: 0 0 .8rem; }
.dl-gruppe a {
  display: flex; flex-direction: column; gap: .25rem;
  padding: .75rem 0; border-top: 1px solid var(--linie); text-decoration: none;
}
.dl-gruppe a b { font-weight: 500; }
.dl-gruppe a span { font: 500 .78rem/1.2 var(--f-sc); letter-spacing: .06em; color: var(--tinte-soft); }
.dl-gruppe a:hover b { color: var(--schleife); }
@media (max-width: 1000px) { .dl-raster { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .dl-raster { grid-template-columns: 1fr; } }

/* Presse */
.presse { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 5vw, 4rem); align-items: start; }
.presse h3 { font: 400 1.9rem/1 var(--f-display); color: var(--stroh); margin: 0 0 1rem; }
.presse-text p { color: #eef1f7; margin: 0 0 1.2rem; }
.eckdaten { width: 100%; border-collapse: collapse; margin-top: 2rem; font-size: 1rem; }
.eckdaten caption { text-align: left; font: 500 .85rem/1 var(--f-sc); letter-spacing: .12em; color: var(--stroh-hell); padding-bottom: .6rem; }
.eckdaten th, .eckdaten td { text-align: left; padding: .6rem 0; border-top: 1px solid rgba(255,255,255,.15); vertical-align: top; }
.eckdaten th { font-weight: 500; color: #c9d1ea; width: 38%; padding-right: 1rem; }
.eckdaten a { color: var(--stroh); }
.pb-raster { display: grid; grid-template-columns: repeat(2, 1fr); gap: .8rem; }
.pb { display: block; text-decoration: none; background: rgba(255,255,255,.06); border-radius: var(--radius); overflow: hidden; }
.pb img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; background: #e9eef6; }
.pb img[src$=".webp"] { object-fit: contain; padding: .6rem; }
.pb span { display: flex; justify-content: space-between; gap: .5rem; padding: .6rem .8rem; font-size: .92rem; }
.pb span::after { content: "↓"; color: var(--stroh); font-weight: 700; }
.pb:hover { background: rgba(228, 180, 58, .16); }
@media (max-width: 860px) { .presse { grid-template-columns: 1fr; } }

/* =========================================================
   Inhalte aus der Verwaltung: News, Downloads
   ========================================================= */
.nav .nav-treffen { color: var(--stroh); border: 2px solid var(--stroh); }
.nav .nav-treffen:hover, .nav .nav-treffen[aria-current="page"] { background: var(--stroh); color: var(--haes-tief); }

.aktuelles { background: #fff; }
.news-raster { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: clamp(1rem, 2.5vw, 1.6rem); }
.news {
  display: flex; flex-direction: column; gap: .5rem;
  background: var(--leinen); border-top: 5px solid var(--stroh); border-radius: var(--radius);
  padding: clamp(1.2rem, 3vw, 1.8rem);
}
.news time { font: 500 .85rem/1 var(--f-sc); letter-spacing: .12em; color: var(--schleife); }
.news h3 { font: 400 clamp(1.7rem, 3vw, 2.1rem)/1.05 var(--f-display); color: var(--haes); margin: 0; }
.news-fuss { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: auto; padding-top: .6rem; }
.dl-dynamisch { display: contents; }
.zeitreise-spur .jetzt a { color: var(--stroh); font-weight: 700; }

/* =========================================================
   Freundschaftstreffen 2027
   ========================================================= */
.news-mit-bild { padding-top: 0; overflow: hidden; }
.news-bild { display: block; width: calc(100% + 2 * clamp(1.2rem, 3vw, 1.8rem)); max-width: none; margin: 0 calc(-1 * clamp(1.2rem, 3vw, 1.8rem)) .6rem; aspect-ratio: 16 / 10; object-fit: cover; }

/* Aufmacher: Nacht-Umzug */
.tf-nacht {
  position: relative; overflow: hidden; isolation: isolate; color: #fff;
  min-height: calc(100svh - 64px); display: flex; flex-direction: column; justify-content: center;
  padding: clamp(2.5rem, 6vw, 4rem) 0 clamp(7.5rem, 14vw, 10rem);
  background: radial-gradient(ellipse at 50% 115%, #2d4290 0%, var(--haes) 34%, var(--haes-tief) 72%, #070d24 100%);
}
.tf-buehne { position: absolute; inset: 0; width: 100%; height: 100%; z-index: -1; pointer-events: none; }
.tf-zahl-hinten {
  position: absolute; z-index: -2; left: 50%; top: 44%; transform: translate(-50%, -50%);
  font: 400 clamp(11rem, 40vw, 34rem)/.8 var(--f-display); color: transparent; white-space: nowrap; user-select: none;
  -webkit-text-stroke: 2px rgba(228, 180, 58, .2);
}
.tf-nacht-inhalt { display: flex; flex-direction: column; align-items: center; text-align: center; }
.tf-nacht .eyebrow { color: var(--stroh-hell); }
.tf-titel { margin: .5rem 0 1.1rem; font: 400 clamp(2.6rem, 8.4vw, 7.4rem)/.9 var(--f-display); color: var(--stroh); text-shadow: 0 6px 30px rgba(0, 0, 0, .45); }
.tf-titel > span { display: block; white-space: nowrap; } /* Hüpf-Buchstaben nicht mitten im Wort umbrechen */
.tf-voll {
  display: inline-flex; align-items: center; gap: .5rem; margin: 0 0 1.4rem;
  background: rgba(7, 13, 36, .55); border: 1px solid rgba(244, 220, 147, .45); border-radius: 999px;
  padding: .45rem 1rem .45rem .5rem; font: 700 .95rem/1.25 var(--f-body); color: #fff; text-align: left;
}
.tf-voll span { display: grid; place-items: center; width: 1.6rem; height: 1.6rem; flex: none; border-radius: 50%; background: var(--stroh); color: var(--haes-tief); font-size: .9rem; }

/* Countdown als Fallblatt-Anzeige */
.tf-uhr { border: 0; gap: clamp(.35rem, 1.4vw, .9rem); width: min(100%, 720px); margin: .2rem auto 1.9rem; perspective: 600px; }
.tf-uhr div { padding: 0; border: 0 !important; }
.tf-uhr b {
  position: relative; display: block; padding: .2em 0 .14em; border-radius: 10px;
  font-size: clamp(2.4rem, 7.6vw, 5.4rem); line-height: 1; color: var(--stroh); text-shadow: none;
  background: linear-gradient(#1d2d63 0 50%, #16234f 50% 100%);
  box-shadow: 0 12px 26px rgba(0, 0, 0, .4), inset 0 1px 0 rgba(255, 255, 255, .08);
}
.tf-uhr b::after { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 2px; background: rgba(0, 0, 0, .5); }
.tf-uhr b.tick { animation: tf-blatt .45s ease; }
@keyframes tf-blatt { from { transform: rotateX(75deg); opacity: .4; } to { transform: none; opacity: 1; } }
.tf-uhr span { display: block; margin-top: .55rem; font: 500 .78rem/1 var(--f-sc); letter-spacing: .16em; text-transform: uppercase; color: #c9d1ea; }

.tf-knoepfe { display: flex; flex-wrap: wrap; justify-content: center; gap: .8rem; }
.tf-narro { position: relative; font-size: 1.15rem; padding: 1.05em 1.6em; }
.tf-narro::after {
  content: ""; position: absolute; inset: -2px; border-radius: inherit; pointer-events: none;
  border: 3px solid rgba(228, 180, 58, .85); animation: tf-puls 2.4s ease-out infinite;
}
@keyframes tf-puls { from { transform: scale(1); opacity: .9; } 70%, to { transform: scale(1.1, 1.45); opacity: 0; } }
.gerufen { animation: tf-ruf .5s cubic-bezier(.3, 1.6, .5, 1) !important; }
@keyframes tf-ruf { from { transform: scale(.86); } to { transform: none; } }
.tf-runter { position: absolute; left: 50%; bottom: clamp(5.4rem, 10vw, 7.6rem); transform: translateX(-50%); width: 2.4rem; height: 2.4rem; }
.tf-runter span { display: block; width: 14px; height: 14px; margin: 6px auto 0; border-right: 3px solid var(--stroh-hell); border-bottom: 3px solid var(--stroh-hell); transform: rotate(45deg); animation: tf-runter 1.8s ease-in-out infinite; }
@keyframes tf-runter { 50% { transform: translateY(6px) rotate(45deg); opacity: .5; } }

/* Gekreuzte Laufbänder */
.tf-baender { position: relative; height: clamp(110px, 13vw, 150px); overflow: hidden; background: var(--haes-tief); }
.tf-band { position: absolute; left: -5%; width: 110%; top: 50%; overflow: hidden; box-shadow: 0 8px 22px rgba(0, 0, 0, .35); }
.tf-band-gold { z-index: 2; background: var(--stroh); color: var(--haes-tief); transform: translateY(-50%) rotate(-3deg); }
.tf-band-rot { background: var(--schleife); color: #fff; transform: translateY(-50%) rotate(2.6deg); }
.tf-band-spur { display: flex; width: max-content; animation: tf-laufen 60s linear infinite; }
.tf-rueckwaerts { animation-direction: reverse; animation-duration: 70s; }
.tf-band span { display: flex; align-items: center; gap: 2.4rem; padding: .7rem 1.2rem; white-space: nowrap; font: 400 clamp(1.3rem, 2.8vw, 1.9rem)/1 var(--f-display); }
.tf-band span::after { content: "✦"; font: 1rem/1 var(--f-body); }
.tf-band-gold span::after { color: var(--schleife); }
.tf-band-rot span::after { color: var(--stroh); }
@keyframes tf-laufen { to { transform: translateX(-50%); } }

/* Zeitmaschine 1777 → 2027 */
.tf-zeit { position: relative; isolation: isolate; background: var(--leinen); }
.tf-zeit::before { content: ""; position: absolute; inset: 0; z-index: -1; background-image: var(--muster); background-size: 56px 72px; opacity: .05; }
.tf-zeit-buehne { padding: clamp(3.5rem, 8vw, 6rem) 0; }
.tf-zeit-titel { margin: .35rem 0 0; font: 400 clamp(2.1rem, 4.6vw, 3.4rem)/1.02 var(--f-display); color: var(--haes); }
.tf-zaehler, .tf-zeit-strahl, .tf-zeit-marken, .tf-zeit-tipp { display: none; }

/* Stationen als Karten (ohne Animation) */
.tf-stationen { list-style: none; margin: 2rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr)); gap: 1.4rem; }
.tf-stationen li { background: #fff; border-radius: var(--radius); padding: .7rem .7rem 0; box-shadow: 0 14px 34px rgba(16, 29, 71, .14); }
.tf-bild { position: relative; margin: 0; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 6px; background: var(--haes-tief); }
.tf-bild img { width: 100%; height: 100%; object-fit: cover; }
.tf-bild.oben img { object-position: 50% 22%; }
.tf-bild.zoom img { transform: scale(1.12); }
.tf-bild.beleg { background: radial-gradient(circle at 30% 20%, #faf5e8, #e6d9bb 75%); }
.tf-bild.beleg img { object-fit: contain; padding-top: 7%; transform: rotate(-2.5deg) translateY(4%); filter: drop-shadow(0 10px 16px rgba(70, 45, 10, .35)); }
.tf-bild figcaption { position: absolute; left: .7rem; bottom: .7rem; max-width: calc(100% - 1.4rem); padding: .42rem .65rem; border-radius: 6px; background: rgba(16, 29, 71, .88); color: var(--stroh-hell); font: 500 .78rem/1.1 var(--f-sc); letter-spacing: .08em; }
.tf-stationen p { margin: 0; padding: .9rem .5rem 1.1rem; font-size: 1.08rem; line-height: 1.45; }
.tf-stationen b { display: block; margin-bottom: .25rem; font: 400 2rem/1 var(--f-display); color: var(--schleife); }

/* Mit Animation: Bühne bleibt stehen, die Jahre laufen */
.tf-zeit-aktiv { height: 460vh; }
.tf-zeit-aktiv .tf-zeit-buehne { position: sticky; top: 64px; height: calc(100vh - 64px); height: calc(100svh - 64px); display: flex; align-items: center; overflow: hidden; padding: clamp(1rem, 3vh, 2.5rem) 0; }
.tf-zeit-aktiv .tf-zeit-raster { width: 100%; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2rem, 5vw, 5rem); align-items: center; }
.tf-zeit-aktiv .tf-zaehler { display: block; margin: .9rem 0 0; font: 400 clamp(5.5rem, 12.5vw, 11.5rem)/.85 var(--f-display); color: var(--haes); font-variant-numeric: tabular-nums; transition: color .4s ease; }
.tf-zeit-aktiv.am-ziel .tf-zaehler { color: var(--schleife); }
.tf-zeit-aktiv .tf-zeit-strahl { display: block; height: 6px; margin: 1.5rem 0 0; border-radius: 3px; background: var(--linie); overflow: hidden; }
.tf-zeit-strahl i { display: block; height: 100%; background: linear-gradient(90deg, var(--stroh), var(--schleife)); transform-origin: left; transform: scaleX(0); }
.tf-zeit-aktiv .tf-zeit-marken { display: block; position: relative; height: 2.4rem; margin: 0; padding: 0; list-style: none; }
.tf-zeit-marken li { position: absolute; top: -12px; left: calc(var(--k) / 7 * 100%); transform: translateX(-50%); }
.tf-zeit-marken li:first-child { transform: none; }
.tf-zeit-marken li:last-child { transform: translateX(-100%); }
.tf-zeit-marken button { display: flex; flex-direction: column; align-items: center; gap: .35rem; padding: 0; border: 0; background: none; cursor: pointer; font: 500 .8rem/1 var(--f-sc); letter-spacing: .05em; color: var(--tinte-soft); }
.tf-zeit-marken li:first-child button { align-items: flex-start; }
.tf-zeit-marken li:last-child button { align-items: flex-end; }
.tf-zeit-marken button::before { content: ""; width: 12px; height: 12px; border-radius: 50%; background: var(--leinen); border: 2px solid var(--linie); transition: background .3s ease, border-color .3s ease, transform .3s ease; }
.tf-zeit-marken .erreicht button { color: var(--haes); }
.tf-zeit-marken .erreicht button::before { background: var(--stroh); border-color: var(--stroh); }
.tf-zeit-marken [aria-current] button { color: var(--schleife); font-weight: 700; }
.tf-zeit-marken [aria-current] button::before { background: var(--schleife); border-color: var(--schleife); transform: scale(1.35); }
.tf-zeit-marken button:hover { color: var(--schleife); }
.tf-zeit-aktiv .tf-zeit-tipp { display: flex; align-items: center; gap: .6rem; margin: 1.6rem 0 0; font-weight: 700; color: var(--tinte-soft); transition: opacity .4s ease; }
.tf-zeit-tipp::after { content: ""; width: 10px; height: 10px; border-right: 3px solid var(--schleife); border-bottom: 3px solid var(--schleife); transform: rotate(45deg); animation: tf-runter 1.8s ease-in-out infinite; }
.tf-zeit.unterwegs .tf-zeit-tipp { opacity: 0; }
.tf-zeit-aktiv .tf-stationen { display: grid; grid-template-columns: 1fr; margin: 0; gap: 0; }
.tf-zeit-aktiv .tf-stationen li {
  grid-area: 1 / 1; align-self: center; justify-self: center; width: min(100%, 31rem);
  padding: .8rem .8rem 0; box-shadow: 0 30px 60px rgba(16, 29, 71, .25);
  opacity: 0; visibility: hidden; transform: translateY(40px) rotate(var(--dreh)) scale(.95);
  transition: opacity .45s ease, transform .6s cubic-bezier(.2, .8, .2, 1), visibility 0s linear .6s;
}
.tf-zeit-aktiv .tf-stationen li:nth-child(odd) { --dreh: -1.8deg; }
.tf-zeit-aktiv .tf-stationen li:nth-child(even) { --dreh: 1.5deg; }
.tf-zeit-aktiv .tf-stationen li.vorbei { transform: translateY(-40px) rotate(calc(var(--dreh) * -2)) scale(.95); }
.tf-zeit-aktiv .tf-stationen li.aktiv { opacity: 1; visibility: visible; transform: rotate(var(--dreh)); transition-delay: 0s; }
.tf-zeit-aktiv .tf-stationen p { font-size: 1.15rem; }
@media (max-width: 860px) {
  .tf-zeit-aktiv .tf-zeit-raster { grid-template-columns: 1fr; gap: 1.1rem; }
  .tf-zeit-aktiv .tf-zeit-titel { font-size: clamp(1.7rem, 7vw, 2.4rem); }
  .tf-zeit-aktiv .tf-zaehler { margin-top: .4rem; font-size: clamp(4.2rem, 21vw, 7rem); }
  .tf-zeit-aktiv .tf-zeit-strahl { margin-top: 1rem; }
  .tf-zeit-marken button { font-size: .66rem; letter-spacing: 0; }
  .tf-zeit-aktiv .tf-zeit-tipp { display: none; }
  .tf-zeit-aktiv .tf-stationen li { width: min(100%, 25rem); padding: .6rem .6rem 0; }
  .tf-zeit-aktiv .tf-bild { aspect-ratio: 16 / 9; }
  .tf-zeit-aktiv .tf-stationen p { font-size: 1.02rem; padding: .7rem .4rem .9rem; }
  .tf-zeit-aktiv .tf-stationen b { font-size: 1.6rem; }
}
@media (max-width: 860px) and (max-height: 760px) {
  .tf-zeit-aktiv .tf-zeit-titel { display: none; }
  .tf-zeit-aktiv .tf-bild { aspect-ratio: 2 / 1; }
}
/* Save-the-Date-Karte immer ganz zeigen */
.tf-bild.ziel, .tf-zeit-aktiv .tf-bild.ziel { aspect-ratio: 900 / 514; }
.tf-bild.ziel figcaption { display: none; }

/* Programm */
.tf-programm { position: relative; isolation: isolate; overflow: hidden; background: var(--schleife); color: #fff; padding: clamp(4rem, 9vw, 7rem) 0; }
.tf-programm::before { content: ""; position: absolute; inset: 0; z-index: -1; opacity: .09; background: var(--streifen); }
.tf-programm .eyebrow { color: #ffe9b0; }
.tf-programm h2 { color: var(--stroh-hell); }
.tf-programm .sektion-kopf p:not(.eyebrow) { color: #fff3ea; }
.tf-tage { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: clamp(1rem, 2.5vw, 1.6rem); }
.tf-tag { background: #fff; color: var(--tinte); border-radius: var(--radius); overflow: hidden; box-shadow: 0 22px 46px rgba(70, 8, 8, .35); transform: rotate(var(--kipp, 0deg)); transition: transform .3s ease; }
.tf-tag:nth-child(1) { --kipp: -1.2deg; }
.tf-tag:nth-child(2) { --kipp: .9deg; }
.tf-tag:nth-child(3) { --kipp: -.6deg; }
.tf-tag:nth-child(4) { --kipp: .7deg; }
@media (min-width: 900px) { .tf-tage.vier-tage { grid-template-columns: repeat(2, 1fr); } }
.tf-tag:hover { transform: rotate(0deg) translateY(-6px); }
.tf-tag h3 { margin: 0; padding: 1.1rem 1.4rem; background: var(--haes); color: #fff; display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
.tf-tag h3 span { font: 400 2.3rem/1 var(--f-display); color: var(--stroh); }
.tf-tag h3 b { font: 500 .9rem/1 var(--f-sc); letter-spacing: .1em; }
.tf-tag ol { list-style: none; margin: 0; padding: .4rem 1.4rem 1.2rem; }
.tf-tag li { display: grid; grid-template-columns: 5.5rem 1fr; gap: .8rem; padding: .9rem 0; border-bottom: 1px dashed var(--linie); }
.tf-tag li:last-child { border-bottom: 0; }
.tf-tag .tf-uhrzeit { margin: 0; font-weight: 700; color: var(--schleife); }
.tf-tag .tf-uhrzeit.offen { font-size: .85rem; line-height: 1.3; padding-top: .2rem; color: var(--tinte-soft); font-weight: 600; }
.tf-tag h4 { margin: 0; font-size: 1.15rem; color: var(--haes-tief); }
.tf-tag li p:not(.tf-uhrzeit) { margin: .2rem 0 0; color: var(--tinte-soft); }
.tf-ort { font-size: .95rem; }
.tf-platzhalter p { position: relative; isolation: isolate; margin: 0; padding: 2.8rem 1.4rem; text-align: center; font: 400 1.9rem/1 var(--f-display); color: var(--tinte-soft); }
.tf-platzhalter p::before { content: ""; position: absolute; inset: 0; z-index: -1; background-image: var(--muster); background-size: 56px 72px; opacity: .13; }

/* Gastzünfte */
.tf-zuenfte-sektion { background: #fff; }
.tf-zahl { font: 400 1.6em/1 var(--f-display); color: var(--schleife); }
.tf-zuenfte { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr)); gap: .8rem; counter-reset: zunft; }
.tf-zuenfte li {
  position: relative; display: flex; flex-direction: column; justify-content: center; gap: .15rem; min-height: 4.6rem;
  padding: .85rem 1.1rem .85rem 3.9rem; border-radius: var(--radius); background: var(--leinen); border: 1px solid var(--linie);
  counter-increment: zunft; transition: transform .25s ease, box-shadow .25s ease;
}
.tf-zuenfte li::before {
  content: counter(zunft); position: absolute; left: .9rem; top: 50%; transform: translateY(-50%);
  display: grid; place-items: center; width: 2.3rem; height: 2.3rem; border-radius: 50%;
  background: var(--haes); color: var(--stroh); font: 400 1.15rem/1 var(--f-display);
}
.tf-zuenfte li:hover { transform: translateY(-3px); box-shadow: 0 12px 24px rgba(16, 29, 71, .12); }
.tf-zuenfte b { font-size: 1.1rem; line-height: 1.2; color: var(--haes-tief); }
.tf-zuenfte span { font-size: .92rem; color: var(--tinte-soft); }
.js .tf-zuenfte li { animation: auftauchen .6s ease both; animation-delay: calc(min(var(--i, 0), 20) * 40ms); }
.tf-sponsoren-sektion { background: #fff; }
/* Umzugsstrecke: eigene Karte (SVG, OpenStreetMap-Daten), antippen öffnet sie groß */
.tf-strecke { background: var(--leinen); }
.tf-karte { margin: 0; }
.tf-karte a { display: block; border-radius: 14px; overflow: hidden; border: 1px solid var(--linie); background: #edf0e6;
  box-shadow: 0 18px 40px rgba(16, 29, 71, .12); transition: transform .25s ease, box-shadow .25s ease; }
.tf-karte a:hover { transform: translateY(-3px); box-shadow: 0 24px 48px rgba(16, 29, 71, .18); }
.tf-karte img { display: block; width: 100%; height: auto; aspect-ratio: 1560 / 1040; }
.tf-karte figcaption { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .3rem 1.2rem; margin-top: .8rem; font-size: .95rem; color: var(--tinte-soft); }
.tf-karte figcaption a { display: inline; border: 0; border-radius: 0; background: none; box-shadow: none; color: inherit; }
.tf-karte figcaption a:hover { transform: none; box-shadow: none; }

/* Sponsoren gestaffelt nach Paket: --n Kacheln pro Zeile, --h Kachelhöhe, --img Logohöhe, --medaille Farbe des Pakets */
.tf-sponsoren { display: grid; gap: clamp(2.2rem, 5vw, 3.2rem); }
.tf-stufe { --n: 6; --h: 6.4rem; --img: 3.3rem; --pad: .8rem 1rem; --medaille: #a8683a; }
.tf-stufe-premium { --n: 3; --h: 11.5rem; --img: 7.8rem; --pad: 1.4rem 1.8rem; --medaille: var(--haes); }
.tf-stufe-platin { --n: 3; --h: 10rem; --img: 6rem; --pad: 1.2rem 1.6rem; --medaille: #6b7891; }
.tf-stufe-gold { --n: 4; --h: 8.6rem; --img: 5rem; --pad: 1.1rem 1.4rem; --medaille: #b8860b; }
.tf-stufe-silber { --n: 5; --h: 7.4rem; --img: 4rem; --medaille: #7d8699; }
.tf-stufe-titel { display: flex; align-items: center; gap: 1rem; margin: 0 0 1.1rem; font: 700 .82rem/1 var(--f-sc); letter-spacing: .2em; text-transform: uppercase; color: var(--medaille); }
.tf-stufe-titel::before, .tf-stufe-titel::after { content: ""; flex: 1; height: 1px; background: var(--linie); }
.tf-stufe-titel span { display: inline-flex; align-items: center; gap: .55rem; }
.tf-stufe-titel span::before { content: ""; width: .7rem; height: .7rem; border-radius: 50%; background: var(--medaille); box-shadow: 0 0 0 3px #fff, 0 0 0 4px var(--medaille); }
.tf-stufe ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: .8rem; }
.tf-stufe li { flex: 0 0 calc((100% - (var(--n) - 1) * .8rem) / var(--n)); min-width: 0; }
.tf-stufe li > * {
  display: flex; align-items: center; justify-content: center; height: 100%; min-height: var(--h); padding: var(--pad);
  border-radius: var(--radius); background: #fff; border: 1px solid var(--linie); text-align: center; color: var(--haes-tief);
  transition: transform .25s ease, box-shadow .25s ease;
}
.tf-stufe-premium li > *, .tf-stufe-platin li > * { border-top: 3px solid var(--stroh); }
.tf-stufe a { text-decoration: none; }
.tf-stufe a:hover { transform: translateY(-3px); box-shadow: 0 12px 24px rgba(16, 29, 71, .12); }
.tf-stufe img { max-width: 100%; height: calc(var(--img) * var(--f, 1)); width: auto; object-fit: contain; }
.tf-stufe b { font-size: 1.05rem; line-height: 1.25; overflow-wrap: anywhere; }
.tf-stufe-premium b, .tf-stufe-platin b { font: 400 1.6rem/1.1 var(--f-display); }
.tf-stufe .tf-platz > * { background: var(--leinen); border: 2px dashed var(--linie); color: var(--tinte-soft); font-size: .95rem; letter-spacing: .04em; }
@media (max-width: 900px) {
  .tf-stufe { --n: 4; }
  .tf-stufe-premium, .tf-stufe-platin { --n: 2; }
  .tf-stufe-gold { --n: 3; }
  .tf-stufe-silber { --n: 4; }
}
@media (max-width: 560px) {
  .tf-stufe { --n: 3; --h: 4.8rem; --img: 2.4rem; --pad: .5rem .6rem; }
  .tf-stufe-premium { --n: 2; --h: 8rem; --img: 4.8rem; --pad: .9rem 1rem; }
  .tf-stufe-platin { --n: 2; --h: 7rem; --img: 4.2rem; --pad: .8rem 1rem; }
  .tf-stufe-gold { --n: 2; --h: 6.4rem; --img: 3.6rem; --pad: .7rem .9rem; }
  .tf-stufe-silber { --h: 5.4rem; --img: 2.8rem; }
  .tf-stufe ul { gap: .6rem; }
  .tf-stufe li { flex-basis: calc((100% - (var(--n) - 1) * .6rem) / var(--n)); }
}

/* Bilderband */
.tf-eindruecke { background: var(--haes-tief); color: #fff; padding: clamp(3.5rem, 8vw, 6rem) 0 0; }
.tf-eindruecke .eyebrow { color: var(--stroh-hell); }
.tf-eindruecke h2 { color: var(--stroh); }
.tf-mosaik { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: clamp(150px, 18vw, 240px); gap: 4px; }
.tf-mosaik figure { position: relative; margin: 0; overflow: hidden; }
.tf-mosaik .gross { grid-column: span 2; grid-row: span 2; }
.tf-mosaik .hoch { grid-row: span 2; }
.tf-mosaik .breit { grid-column: span 2; }
.tf-mosaik img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.2, .8, .2, 1); }
.tf-mosaik figure:hover img { transform: scale(1.05); }
.tf-mosaik figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 2.2rem 1rem .8rem; background: linear-gradient(transparent, rgba(8, 14, 38, .85)); font: 400 1.5rem/1 var(--f-display); color: var(--stroh-hell); }

/* Mitmachen: Stroh-Narro! */
.tf-mitmachen { position: relative; isolation: isolate; overflow: hidden; background: var(--haes-tief); color: #fff; text-align: center; padding: clamp(4rem, 9vw, 7rem) 0; }
.tf-mitmachen::before { content: ""; position: absolute; inset: 0; z-index: -1; background-image: var(--muster); background-size: 56px 72px; opacity: .08; }
.tf-mitmachen .eyebrow { color: var(--stroh-hell); }
.tf-mitmachen h2 { color: var(--stroh); font-size: clamp(3rem, 9vw, 6rem); }
.tf-mitmachen p { color: #c9d1ea; font-size: 1.2rem; margin: .6rem 0 0; }
.tf-ruf {
  display: grid; place-content: center; width: clamp(210px, 48vw, 300px); aspect-ratio: 1; margin: 2rem auto 1rem;
  border: 0; border-radius: 50%; cursor: pointer; color: var(--haes-tief); font: 400 clamp(2.4rem, 7vw, 3.6rem)/.92 var(--f-display);
  background: radial-gradient(circle at 35% 30%, var(--stroh-hell), var(--stroh) 55%, #b8891f);
  box-shadow: 0 0 0 10px rgba(228, 180, 58, .18), 0 0 0 22px rgba(228, 180, 58, .08), 0 24px 50px rgba(0, 0, 0, .45);
  transition: transform .15s ease;
}
.tf-ruf span { display: block; }
.tf-ruf:hover { transform: scale(1.04); }
.tf-ruf:active { transform: scale(.95); }
.tf-ruf:focus-visible { outline: 4px solid #fff; outline-offset: 6px; }
.tf-ruf-zahl { min-height: 1.6em; font-weight: 700; color: var(--stroh-hell) !important; }
.tf-konfetti { position: fixed; inset: 0; width: 100vw; height: 100vh; pointer-events: none; z-index: 70; }

/* Gastgeber, Gut zu wissen, Weitersagen */
.tf-gastgeber { background: var(--haes); color: #fff; }
.tf-gruppenbild { margin: 0; }
.tf-gruppenbild img { width: 100%; height: clamp(220px, 34vw, 440px); object-fit: cover; object-position: 50% 60%; }
.tf-gastgeber-text { display: grid; grid-template-columns: .8fr 1.2fr; gap: 1rem clamp(2rem, 5vw, 4rem); padding-top: clamp(2.5rem, 6vw, 4rem); padding-bottom: clamp(2.5rem, 6vw, 4rem); align-items: start; }
.tf-gastgeber .eyebrow { color: var(--stroh-hell); }
.tf-gastgeber h2 { color: var(--stroh); }
.tf-gastgeber p { font-size: 1.15rem; color: #e7ebf7; margin: 0 0 1rem; }
.tf-gastgeber .mehr-link { color: var(--stroh); }
.tf-wissen { background: var(--leinen); }
.tf-wissen-raster { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(2rem, 5vw, 4rem); align-items: start; }
.tf-wissen-kopf p:not(.eyebrow) { color: var(--tinte-soft); font-size: 1.12rem; }
.tf-infos { display: grid; gap: 1rem; }
.tf-info { background: #fff; border-left: 5px solid var(--schleife); border-radius: var(--radius); padding: 1.2rem 1.4rem; box-shadow: 0 1px 0 var(--linie); }
.tf-info h3 { margin: 0 0 .3rem; font: 400 1.7rem/1.05 var(--f-display); color: var(--haes); }
.tf-info p { margin: .4rem 0 0; }
.tf-wissen .tf-downloads { margin-top: 1.2rem; }
.tf-downloads h3 { margin: 0 0 .6rem; font: 400 1.6rem/1 var(--f-display); color: var(--haes); }
.tf-dl { display: grid; gap: .5rem; }
.tf-dl a { display: flex; justify-content: space-between; gap: 1rem; background: #fff; border-radius: var(--radius); padding: .8rem 1rem; text-decoration: none; color: var(--tinte); box-shadow: 0 1px 0 var(--linie); }
.tf-dl a span { color: var(--tinte-soft); white-space: nowrap; }
.tf-dl a:hover b { color: var(--schleife); }
.tf-weitersagen { position: relative; isolation: isolate; overflow: hidden; background: var(--schleife); color: #fff; text-align: center; padding: clamp(3.5rem, 8vw, 6rem) 0; }
.tf-weitersagen::before { content: ""; position: absolute; inset: 0; z-index: -1; opacity: .09; background: var(--streifen); }
.tf-weitersagen h2 { font: 400 clamp(3rem, 9vw, 6.4rem)/.95 var(--f-display); color: var(--stroh-hell); margin: 0; }
.tf-weitersagen p { font-size: 1.2rem; margin: 1rem auto 1.8rem; max-width: 34rem; color: #fff3ea; }
.tf-weitersagen .knoepfe { display: flex; flex-wrap: wrap; justify-content: center; gap: .8rem; }

@media (max-width: 860px) {
  .tf-gastgeber-text, .tf-wissen-raster { grid-template-columns: 1fr; }
  .tf-mosaik { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 42vw; }
  .tf-mosaik .gross, .tf-mosaik .breit, .tf-mosaik .breit-mobil { grid-column: span 2; grid-row: span 1; }
  .tf-mosaik .hoch { grid-row: span 2; }
}
@media (max-width: 620px) {
  .tf-uhr { grid-template-columns: repeat(4, 1fr); }
  .tf-uhr span { font-size: .62rem; letter-spacing: .1em; }
  .tf-voll { font-size: .85rem; }
  .tf-tag { --kipp: 0deg !important; }
}
@media (prefers-reduced-motion: reduce) {
  .tf-band-spur, .tf-narro::after, .tf-runter span, .tf-zeit-tipp::after { animation: none; }
}
body:has(.marsch) .fuss { padding-bottom: 5.5rem; } /* Platz für den Narrenmarsch-Knopf */

/* =========================================================
   Artikel & Aktuelles
   ========================================================= */
.news h3 a { color: inherit; text-decoration: none; }
.news h3 a:hover { color: var(--schleife); }
.news-vorschau { margin: .2rem 0 0; color: var(--tinte-soft); }
.news-bild-link { display: block; }
.news-weiter { font-weight: 700; color: var(--schleife); text-decoration: none; }
.news-weiter:hover { text-decoration: underline; }
.news-alle { margin: 1.6rem 0 0; }

.artikel-kopf { background: var(--haes); color: #fff; position: relative; overflow: hidden; isolation: isolate; }
.artikel-kopf::before { content: ""; position: absolute; inset: 0; z-index: -1; background-image: var(--muster); background-size: 56px 72px; opacity: .14; }
.artikel-kopf .wrap { max-width: 900px; padding-top: clamp(2.6rem, 6vw, 4.5rem); padding-bottom: clamp(2.6rem, 6vw, 4.5rem); }
.artikel-kopf .eyebrow { color: var(--stroh-hell); }
.artikel-kopf .eyebrow a { color: inherit; }
.artikel-kopf h1 { margin: .4rem 0 0; font: 400 clamp(2.4rem, 6vw, 4.4rem)/1 var(--f-display); color: var(--stroh); }
.artikel-bild { margin: clamp(-2rem, -3vw, -1rem) auto 0; max-width: 960px; padding: 0 var(--gutter); position: relative; }
.artikel-bild img { width: 100%; max-height: 640px; object-fit: cover; border-radius: var(--radius); box-shadow: 0 24px 48px rgba(16, 29, 71, .22); }
.artikel-text { max-width: 44rem; margin: 0 auto; padding: clamp(2rem, 5vw, 3rem) var(--gutter) 0; font-size: 1.18rem; line-height: 1.7; }
.artikel-text p { margin: 0 0 1.1rem; }
.artikel-text h2 { margin: 2.2rem 0 .6rem; font: 400 clamp(1.9rem, 4vw, 2.5rem)/1.05 var(--f-display); color: var(--haes); }
.artikel-text h3 { margin: 1.8rem 0 .4rem; font-size: 1.3rem; color: var(--haes-tief); }
.artikel-text ul { margin: 0 0 1.2rem; padding-left: 1.3rem; }
.artikel-text li { margin: .3rem 0; }
.artikel-text li::marker { color: var(--schleife); }
.artikel-text a { color: var(--schleife); word-break: break-word; }
.artikel-fuss { max-width: 44rem; margin: 0 auto; padding: 1.4rem var(--gutter) clamp(3rem, 7vw, 5rem); display: flex; flex-wrap: wrap; align-items: center; gap: .8rem 1.2rem; border-top: 1px solid var(--linie); }
.artikel-zurueck { font-weight: 700; color: var(--haes); text-decoration: none; margin-left: auto; }
.artikel-weitere { background: var(--leinen); }
.artikel-leer { padding: clamp(4rem, 10vw, 7rem) 0; }
.artikel-leer h1 { font: 400 clamp(2.4rem, 6vw, 4rem)/1 var(--f-display); color: var(--haes); margin: .4rem 0 1rem; }
.artikel-keine { font-size: 1.15rem; color: var(--tinte-soft); }
@media (max-width: 560px) { .artikel-zurueck { margin-left: 0; width: 100%; } }

/* Fehlerseite 404 */
.fehlerseite { position: relative; isolation: isolate; overflow: hidden; min-height: calc(100svh - 64px - 9rem); display: flex; align-items: center; }
.fehlerseite::before { content: ""; position: absolute; inset: 0; z-index: -1; background-image: var(--muster); background-size: 56px 72px; opacity: .1; }
.fehlerseite .wrap { width: 100%; }
.fehlerseite p:not(.eyebrow) { font-size: 1.2rem; color: var(--tinte-soft); max-width: 36rem; }
.fehlerseite .knoepfe { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 1.6rem; }

/* Aktuelles: nächste Termine und Treffen-Hinweis */
.als-naechstes { background: var(--leinen); }
.als-naechstes-raster { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 340px); gap: clamp(1.6rem, 4vw, 3rem); align-items: start; }
.als-naechstes .sektion-kopf { margin-bottom: 1.6rem; }
.treffen-hinweis {
  position: sticky; top: 84px; isolation: isolate; overflow: hidden; border-radius: var(--radius);
  background: radial-gradient(ellipse at 50% 120%, #2d4290, var(--haes-tief) 70%); color: #fff;
  padding: 1.8rem 1.6rem; box-shadow: 0 24px 48px rgba(16, 29, 71, .25);
}
.treffen-hinweis::before { content: ""; position: absolute; inset: 0; z-index: -1; background-image: var(--muster); background-size: 56px 72px; opacity: .12; }
.treffen-hinweis .eyebrow { color: var(--stroh-hell); }
.treffen-hinweis h3 { margin: .3rem 0 .6rem; font: 400 clamp(2rem, 4vw, 2.6rem)/1 var(--f-display); color: var(--stroh); hyphens: manual; }
.treffen-hinweis-zahl { display: flex; align-items: baseline; gap: .5rem; margin: 0 0 .8rem; }
.treffen-hinweis-zahl b { font: 400 4rem/1 var(--f-display); color: #fff; }
.treffen-hinweis-zahl span { font: 500 .9rem/1 var(--f-sc); letter-spacing: .12em; text-transform: uppercase; color: #c9d1ea; }
.treffen-hinweis p:not(.eyebrow):not(.treffen-hinweis-zahl) { color: #dfe4f3; margin: 0 0 1.3rem; }
@media (max-width: 860px) {
  .als-naechstes-raster { grid-template-columns: 1fr; }
  .treffen-hinweis { position: static; }
}

/* Programm: Höhepunkte hervorheben */
.tf-tag li.tf-hoehepunkt { position: relative; margin: .2rem -1.4rem; padding: .9rem 1.4rem; background: #fff7e0; border-bottom-color: transparent; box-shadow: inset 4px 0 0 var(--stroh); }
.tf-hoehepunkt-marke { display: inline-block; margin-bottom: .25rem; padding: .1rem .5rem; border-radius: 99px; background: var(--schleife); color: #fff; font: 500 .72rem/1.4 var(--f-sc); letter-spacing: .08em; }
