/*
 * Schalmeienzug Lauterach: Design
 *
 * Quelle: Claude-Design-Canvas (Artboards Main, Aktuelles, Beitrag, Galerie,
 * Sponsoren, Kontakt, Impressum, NichtGefunden). Alle Werte 1:1 aus der Vorlage,
 * Inline-Styles der Vorlage als Klassen.
 *
 * Reihenfolge (bitte einhalten):
 *   1. Variablen
 *   2. Basis
 *   3. Sektionen in Seitenreihenfolge (Startseite, dann Unterseiten)
 *   4. Breakpoints: Tablet bis 1023px, Menü bis 899px, Handy bis 767px
 *   5. Animationen nur mit prefers-reduced-motion: no-preference
 *   6. Keyframes
 *   7. prefers-reduced-motion: reduce (nur Bewegungs-Ersatz, keine Breakpoints!)
 */

/* =====================================================================
   1. Variablen
   ===================================================================== */
:root{
  --g:var(--wp--preset--color--gruen,#009640);
  --g-h:var(--wp--preset--color--gruen-h,#00AD4A);
  --bg:var(--wp--preset--color--bg,#090C0A);
  --fl:var(--wp--preset--color--flaeche,#0F1511);
  --fl-2:var(--wp--preset--color--flaeche-2,#111812);
  --fl-3:var(--wp--preset--color--flaeche-3,#1A241D);
  --tx:var(--wp--preset--color--text,#F1F4EF);
  --tx-2:var(--wp--preset--color--text-2,#A7B2AA);
  --disp:'Big Shoulders Display',sans-serif;
  --text:'Geist',system-ui,sans-serif;
}

/* =====================================================================
   2. Basis
   ===================================================================== */
body{margin:0;background:#090C0A;color:#F1F4EF;font-family:'Geist',system-ui,sans-serif;overflow-x:clip}
a{color:#F1F4EF;text-decoration:none}
h1,h2,h3{text-wrap:balance}
p{text-wrap:pretty}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #F1F4EF;outline-offset:4px;border-radius:999px}
img{max-width:100%}

/* WordPress-Eigenheiten neutralisieren */
.wp-site-blocks{position:relative;width:100%;padding:0;overflow-x:clip}
.wp-site-blocks > .wp-block-template-part{display:contents}
:where(.wp-site-blocks) > *,
:where(.is-layout-flow) > *,
:where(.is-layout-constrained) > *{margin-block-start:0;margin-block-end:0}
main#inhalt{display:block;margin:0}
.wp-block-group{box-sizing:border-box}

.screen-reader-text{border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal}
html.szl-noscroll{overflow:hidden}
.skip{position:absolute;left:16px;top:-80px;z-index:40;padding:12px 18px;border-radius:999px;background:#F1F4EF;color:#090C0A;font-weight:600}
.skip:focus{top:16px}

.disp{font-family:'Big Shoulders Display',sans-serif;text-transform:uppercase}
.navl{color:#A7B2AA;transition:color 200ms ease}
.navl:hover{color:#F1F4EF}
.cta{transition:transform 260ms cubic-bezier(0.16,1,0.3,1),background-color 200ms ease}
.cta:hover{transform:translateY(-2px);background-color:#00AD4A}
.cta:active{transform:scale(0.98)}
.ul{text-decoration:underline;text-decoration-color:rgba(241,244,239,0.3);text-underline-offset:7px;text-decoration-thickness:2px;transition:text-decoration-color 200ms ease}
.ul:hover{text-decoration-color:var(--g)}
.outline{color:transparent;-webkit-text-stroke:2px rgba(241,244,239,0.85)}
.ph{background-color:#111812;background-image:radial-gradient(120% 80% at 30% 0%,rgba(0,150,64,0.22),transparent 60%),repeating-linear-gradient(135deg,rgba(241,244,239,0.03) 0 2px,transparent 2px 20px)}
.card-link{transition:transform 300ms cubic-bezier(0.16,1,0.3,1)}
.card-link:hover{transform:translateY(-3px)}

/* Wiederkehrende Bausteine der Vorlage */
.pad{box-sizing:border-box}
.btn{height:56px;padding:0 28px;border-radius:999px;background:var(--g);color:#090C0A;font-weight:700;font-size:17px;display:inline-flex;align-items:center;white-space:nowrap;box-sizing:border-box}
.btn-xl{height:60px;padding:0 32px;font-size:18px}
.link-lg{font-weight:600;font-size:17px;min-height:44px;display:inline-flex;align-items:center}
.sec-h{margin:0 0 24px;font-weight:900;font-size:clamp(64px,9vw,132px);line-height:0.9}
.ph-label{font-size:13px;color:#7F8C83}
.loop{display:flex;width:max-content}

/* Hintergrundverlauf: ruhig, ganz dezent Vereinsgruen in Schwarz, ohne Bewegung */
.verlauf{position:fixed;inset:0;z-index:0;pointer-events:none;background:radial-gradient(90% 70% at 0% 0%,rgba(0,150,64,0.16),rgba(0,150,64,0) 70%),radial-gradient(80% 60% at 100% 100%,rgba(0,150,64,0.08),rgba(0,150,64,0) 70%)}
.progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:35;background:var(--g);transform-origin:0 50%;transform:scaleX(0)}

/* Cursor-Kreis: gruener Punkt am Cursor, heller Ring folgt verzoegert. Nur mit Maus, nie auf Touch.
   Waechst ueber Klickbarem, zeigt ueber Fotos "Ansehen" und ueber Beitragskarten "Lesen". Deko, aria-hidden. */
.cur{display:none}
@media (hover: hover) and (pointer: fine){
  .cur{display:block;position:fixed;inset:0;z-index:80;pointer-events:none;opacity:0;transition:opacity 300ms ease}
  [data-cur-on] .cur{opacity:1}
  .cur-dot,.cur-ring{position:absolute;left:0;top:0;border-radius:999px;box-sizing:border-box}
  .cur-dot{width:8px;height:8px;background:var(--g);transform:translate3d(calc(var(--mx,-100px) - 50%),calc(var(--my,-100px) - 50%),0);transition:opacity 200ms ease}
  .cur-ring{width:36px;height:36px;border:1.5px solid rgba(241,244,239,0.55);display:flex;align-items:center;justify-content:center;transform:translate3d(calc(var(--mx,-100px) - 50%),calc(var(--my,-100px) - 50%),0);transition:transform 320ms cubic-bezier(0.16,1,0.3,1),width 300ms cubic-bezier(0.16,1,0.3,1),height 300ms cubic-bezier(0.16,1,0.3,1),background-color 250ms ease,border-color 250ms ease}
  .cur-t{display:none;font-family:'Geist',sans-serif;font-size:13px;font-weight:700;color:#090C0A;white-space:nowrap}
  [data-cur="link"] .cur-ring{width:56px;height:56px;background-color:rgba(0,150,64,0.22);border-color:var(--g)}
  [data-cur="link"] .cur-dot{opacity:0}
  [data-cur="view"] .cur-ring,[data-cur="read"] .cur-ring{width:88px;height:88px;background-color:#F1F4EF;border-color:#F1F4EF}
  [data-cur="view"] .cur-dot,[data-cur="read"] .cur-dot{opacity:0}
  [data-cur="view"] .cur-t-view,[data-cur="read"] .cur-t-read{display:block}
}

/* =====================================================================
   3. Sektionen
   ===================================================================== */

/* ---------- Mobiles Vollbild-Menü (aktiv erst unter 900px) ---------- */
.mbtn{display:none;height:44px;padding:0 18px;border-radius:999px;border:1px solid rgba(241,244,239,0.2);background:transparent;color:#F1F4EF;font-family:inherit;font-size:15px;font-weight:600;align-items:center;gap:10px;cursor:pointer}
.menu{display:none}
.burger{position:relative;width:18px;height:12px}
.burger span{position:absolute;left:0;right:0;height:2px;border-radius:2px;background:currentColor}
.burger span:first-child{top:0}
.burger span:last-child{bottom:0}
.menu-top{display:flex;align-items:center;justify-content:space-between;height:64px;padding:0 10px 0 8px}
.menu-logo{width:52px;height:52px;display:block}
.menu-close{height:44px;padding:0 18px;border-radius:999px;border:none;background:#090C0A;color:#F1F4EF;font-family:inherit;font-size:15px;font-weight:600;cursor:pointer}
.menu-nav{display:flex;flex-direction:column;gap:4px;padding:24px 8px;font-weight:900;font-size:clamp(64px,19vw,96px);line-height:0.92}
.menu-foot{display:flex;flex-direction:column;align-items:flex-start;gap:20px;padding:0 8px}
.menu .menu-cta{height:56px;padding:0 28px;border-radius:999px;background:#090C0A;color:#F1F4EF;font-weight:700;font-size:17px;display:inline-flex;align-items:center}
.menu-social{display:flex;gap:24px;font-size:16px;font-weight:600}
.menu-social a{min-height:44px;display:inline-flex;align-items:center}

/* ---------- Kopf: schwebende Pill ---------- */
.site-head{position:sticky;top:16px;z-index:30;padding:16px 32px 0}
.site-nav{max-width:1216px;margin:0 auto;height:64px;padding:0 10px 0 24px;box-sizing:border-box;border-radius:999px;background:rgba(9,12,10,0.72);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(241,244,239,0.1);box-shadow:inset 0 1px 0 rgba(241,244,239,0.06);display:flex;align-items:center;justify-content:space-between;gap:20px}
.site-logo{display:inline-flex;align-items:center;margin-left:-16px}
.site-logo img{width:54px;height:54px;display:block}
.site-right{display:flex;align-items:center;gap:28px}
.site-links{display:flex;align-items:center;gap:28px;font-size:15px;font-weight:500}
.site-links a[aria-current="page"]{color:#F1F4EF}
.nav-cta{height:44px;padding:0 20px;border-radius:999px;background:var(--g);color:#090C0A;font-weight:700;font-size:15px;display:inline-flex;align-items:center;white-space:nowrap}

/* ---------- Hero: Kinetic-Type über Foto ---------- */
.hero-sec{padding:56px 32px 0}
.hero-box{position:relative;max-width:1376px;margin:0 auto;min-height:820px;border-radius:24px;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end}
.hero-img{position:absolute;inset:0}
img.hero-img{width:100%;height:100%;object-fit:cover;display:block}
.hero-shade{position:absolute;inset:0;background:linear-gradient(to top,rgba(9,12,10,0.92) 8%,rgba(9,12,10,0.15) 60%,rgba(9,12,10,0.45))}
.hero-tag{position:absolute;top:112px;right:28px;font-size:13px;color:#7F8C83}
.hero-inner{position:relative;padding:0 clamp(20px,3vw,44px) clamp(28px,3vw,44px)}
.hero-h{margin:0;font-weight:900;font-size:clamp(56px,17vw,268px);line-height:0.86;letter-spacing:-0.01em}
.split-l,.split-r{display:block;overflow:clip;padding-top:0.04em}
.split-r{color:var(--g)}
.hero-foot{margin-top:32px;display:flex;align-items:flex-end;justify-content:space-between;gap:28px}
.hero-p{margin:0;max-width:36ch;font-size:19px;line-height:1.5;color:#C9D1CB}
.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:24px}

/* ---------- Band: nächster Auftritt ---------- */
.band-sec{padding:96px 0 40px}
.band-inner{transform:rotate(-2.5deg);background:var(--g);color:#090C0A;padding:18px 0;overflow:hidden}
.band{display:flex;width:max-content;white-space:nowrap;font-weight:900;font-size:clamp(36px,5vw,72px);line-height:1}
/* Abstand als margin statt gap, damit beide Hälften exakt gleich breit sind (nahtlose Schleife) */
.band > span{margin-right:56px}
.band-o{color:transparent;-webkit-text-stroke:2px #090C0A}

/* ---------- Wer wir sind: Text leuchtet Wort für Wort ---------- */
.about-sec{max-width:1280px;margin:0 auto;padding:120px 32px 140px;box-sizing:border-box}
.about-sec p{margin:0;max-width:24ch;font-size:clamp(34px,4.6vw,64px);line-height:1.12;font-weight:600;letter-spacing:-0.025em}
.about-sec p a{text-decoration:underline;text-decoration-color:rgba(241,244,239,0.3);text-underline-offset:0.14em;text-decoration-thickness:2px}
.wd{display:inline-block;margin-right:0.24em}

/* ---------- Termine: Lineup wie im Club ---------- */
.dates-sec{max-width:1280px;margin:0 auto;padding:40px 32px 120px;box-sizing:border-box}
.dates-list{list-style:none;margin:0;padding:0}
.row{display:grid;grid-template-columns:300px minmax(0,1fr) auto;gap:32px;align-items:baseline;padding:32px 0;border-bottom:1px solid rgba(241,244,239,0.12)}
.row:last-child{border-bottom:0}
.r-date{font-weight:800;font-size:clamp(44px,4.4vw,64px);line-height:1}
.r-date.is-next{color:var(--g)}
.r-title{font-size:24px;font-weight:600;letter-spacing:-0.01em}
.r-meta{font-size:16px;color:#A7B2AA}

/* ---------- Aktuelles: Bento mit genau 3 Zellen ---------- */
.news-sec{max-width:1280px;margin:0 auto;padding:40px 32px 120px;box-sizing:border-box}
.news-title{margin-bottom:40px}
.bento{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:16px}
.feat{grid-row:span 2;display:flex;flex-direction:column;border-radius:24px;overflow:hidden;background:#111812;border:1px solid rgba(241,244,239,0.08)}
.feat-img{height:420px;overflow:hidden}
.feat-img img{width:100%;height:100%;object-fit:cover;display:block}
.feat-img .ph{width:100%;height:100%;display:flex;align-items:flex-end;padding:20px;box-sizing:border-box;font-size:13px;color:#7F8C83}
.feat-body{padding:28px 32px 34px;display:flex;flex-direction:column;gap:12px}
.feat-date{font-size:15px;color:#A7B2AA}
.feat-h{margin:0;font-weight:700;font-size:34px;line-height:1.05;letter-spacing:-0.025em}
.feat-p{margin:0;max-width:50ch;font-size:17px;line-height:1.55;color:#A7B2AA}
.news-sm{display:flex;flex-direction:column;justify-content:space-between;gap:40px;border-radius:24px;background:#1A241D;padding:32px;border:1px solid rgba(241,244,239,0.08)}
.sm-date{font-size:15px;color:#B9C3BC}
.sm-body{display:flex;flex-direction:column;gap:10px}
.sm-h{margin:0;font-weight:700;font-size:28px;line-height:1.08;letter-spacing:-0.02em}
.sm-p{margin:0;font-size:16px;line-height:1.55;color:#B9C3BC}
.news-sm.is-gruen{background:var(--g);color:#090C0A;border:0}
.news-sm.is-gruen .sm-date{font-weight:600;color:#090C0A}
.news-sm.is-gruen .sm-h,.news-sm.is-gruen .sm-p{color:#090C0A}
.more-link{margin-top:28px}

/* ---------- Galerie: zwei Endlos-Slider, gegenläufig ---------- */
.gal-sec{padding:40px 0 120px}
.gal-title{max-width:1280px;margin:0 auto 40px;padding:0 32px;box-sizing:border-box}
.gal-row{--gs:1;padding:0 0 16px;overflow-x:auto;scroll-snap-type:x mandatory}
.gal-item{margin:0 16px 0 0;width:calc(var(--w,400px) * var(--gs));height:calc(300px * var(--gs));border-radius:24px;flex-shrink:0;overflow:hidden;scroll-snap-align:start}
.loop-b .gal-item{height:calc(380px * var(--gs))}
.gal-item img{width:100%;height:100%;object-fit:cover;display:block}
.gal-more{max-width:1280px;margin:20px auto 0;padding:0 32px;box-sizing:border-box}

/* ---------- Kontakt: Spotlight geht beim Reinscrollen auf ---------- */
.kontakt-sec{padding:40px 32px 120px}
.kontakt-box{position:relative;max-width:1376px;margin:0 auto;border-radius:24px;overflow:hidden;background:#0F1511;border:1px solid rgba(241,244,239,0.08);padding:clamp(48px,8vw,120px) clamp(24px,5vw,72px);box-sizing:border-box}
.spot{position:absolute;left:50%;bottom:-55%;width:120%;height:130%;margin-left:-60%;background:radial-gradient(closest-side,rgba(0,150,64,0.55),rgba(0,150,64,0) 100%)}
.kontakt-inner{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:28px}
.kontakt-h{margin:0;max-width:11ch;font-weight:900;font-size:clamp(44px,9vw,140px);line-height:0.88}
.kontakt-p{margin:0;max-width:44ch;font-size:19px;line-height:1.55;color:#C9D1CB}
/* Core-Button im Kontakt-Muster auf die Pill der Vorlage zurücksetzen */
.wp-block-buttons.szl-buttons{display:flex;flex-wrap:wrap;align-items:center;gap:28px;margin:0}
.szl-buttons .wp-block-button{margin:0}
.szl-buttons .wp-block-button__link{height:56px;padding:0 28px;border-radius:999px;background:var(--g);color:#090C0A;font-family:inherit;font-weight:700;font-size:17px;line-height:1;display:inline-flex;align-items:center;white-space:nowrap;box-sizing:border-box;border:0;text-decoration:none;transition:transform 260ms cubic-bezier(0.16,1,0.3,1),background-color 200ms ease}
.szl-buttons .wp-block-button__link:hover{transform:translateY(-2px);background-color:#00AD4A}
.szl-buttons .wp-block-button__link:active{transform:scale(0.98)}
.szl-buttons.is-xl .wp-block-button__link{height:60px;padding:0 32px;font-size:18px}

/* ---------- Sponsoren: nur Logos ---------- */
.spons-sec{max-width:1280px;margin:0 auto;padding:0 32px 120px;box-sizing:border-box}
.spons-h{margin:0 0 28px;font-weight:600;font-size:22px;letter-spacing:-0.01em;color:#A7B2AA}
/* Alle Sponsoren, Reihen zu 6, eine unvollständige letzte Reihe steht mittig */
.logos{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}
.logos > *{flex:0 0 calc((100% - 60px) / 6);box-sizing:border-box}
.spons-tile{height:104px;border-radius:24px;background:rgba(241,244,239,0.04);border:1px solid rgba(241,244,239,0.08);display:flex;align-items:center;justify-content:center;text-align:center;padding:0 10px;font-size:13px;color:#7F8C83}
.spons-img{display:block;max-width:100%;max-height:64%;width:auto;height:auto;object-fit:contain}
.logo-link{transition:transform 300ms cubic-bezier(0.16,1,0.3,1),border-color 200ms ease,background-color 200ms ease}
.logo-link:hover{transform:translateY(-3px);border-color:rgba(241,244,239,0.3);background-color:rgba(241,244,239,0.07)}
.logo-link:focus-visible{border-radius:24px}

/* ---------- Fuß: riesige Wortmarke als Kontur ---------- */
.site-foot{overflow:hidden;border-top:1px solid rgba(241,244,239,0.08)}
.foot-mark{padding-top:48px;overflow:hidden}
.foot-loop{white-space:nowrap;font-weight:900;font-size:clamp(96px,16vw,240px);line-height:0.85}
.foot-loop span{padding-right:0.4em}
.foot-row{max-width:1280px;margin:0 auto;padding:40px 32px 48px;box-sizing:border-box;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px;font-size:15px;color:#A7B2AA}
.foot-brand{display:inline-flex;align-items:center;gap:14px}
.foot-brand img{width:56px;height:56px;display:block}
.foot-links{display:flex;flex-wrap:wrap;gap:28px}
/* Touch-Ziel 44px in allen Breiten; die Zeile ist durch das Logo ohnehin 56px hoch */
.foot-links a{min-height:44px;display:inline-flex;align-items:center}

/* =====================================================================
   Unterseiten
   ===================================================================== */

/* ---------- Gemeinsam: Seitenkopf, Kacheln, Ghost-Knopf ---------- */
.h-line{display:block;overflow:clip;padding-top:0.04em}
.gruen{color:var(--g)}
.link-md{font-weight:600;font-size:16px;min-height:44px;display:inline-flex;align-items:center}
.ghost{height:52px;padding:0 26px;border-radius:999px;border:1px solid rgba(241,244,239,0.2);background:transparent;color:#F1F4EF;font-family:inherit;font-size:16px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;transition:background-color 200ms ease,border-color 200ms ease}
.ghost:hover{background-color:rgba(241,244,239,0.08);border-color:rgba(241,244,239,0.4)}
.ghost:active{transform:scale(0.98)}
.ghost[hidden]{display:none}
.tile{display:block;grid-column:span var(--span,4);height:var(--h,300px);padding:0;border:none;border-radius:24px;overflow:hidden;cursor:zoom-in;background:transparent;font-family:inherit;color:#F1F4EF;text-align:left;box-sizing:border-box}
.tile:focus-visible{border-radius:24px}
.tile img{width:100%;height:100%;object-fit:cover;display:block}
.tile .ph{width:100%;height:100%;display:flex;align-items:flex-end;padding:16px;box-sizing:border-box;font-size:13px;color:#7F8C83}

/* ---------- Aktuelles ---------- */
.ak-head{max-width:1280px;margin:0 auto;padding:96px 32px 72px;box-sizing:border-box}
.ak-h,.g-h,.k-h{margin:0;font-weight:900;font-size:clamp(88px,15vw,232px);line-height:0.84;letter-spacing:-0.01em}
.ak-intro{margin:28px 0 0;max-width:34ch;font-size:19px;line-height:1.5;color:#C9D1CB}
.ak-feat-sec{padding:0 32px}
.ak-feat{max-width:1376px;margin:0 auto;display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);border-radius:24px;overflow:hidden;background:#111812;border:1px solid rgba(241,244,239,0.08)}
.ak-feat:active,.ak-item:active{transform:scale(0.99)}
.ak-feat-img{height:560px;overflow:hidden}
.ak-feat-img img{width:100%;height:100%;object-fit:cover;display:block}
.ak-feat-img .ph{width:100%;height:100%;display:flex;align-items:flex-end;padding:20px;box-sizing:border-box;font-size:13px;color:#7F8C83}
.ak-feat-body{padding:48px 44px;display:flex;flex-direction:column;justify-content:space-between;gap:40px}
.ak-feat-text{display:flex;flex-direction:column;gap:16px}
.ak-date{font-size:15px;color:#A7B2AA}
.ak-feat-h{margin:0;font-weight:700;font-size:48px;line-height:1.02;letter-spacing:-0.03em}
.ak-feat-p{margin:0;max-width:40ch;font-size:18px;line-height:1.55;color:#A7B2AA}
.ak-read{align-self:flex-start;height:52px;padding:0 26px;border-radius:999px;background:var(--g);color:#090C0A;font-weight:700;font-size:16px;display:inline-flex;align-items:center;white-space:nowrap}
.ak-arch{max-width:1280px;margin:0 auto;padding:140px 32px 120px;box-sizing:border-box}
.ak-arch .sec-h{margin-bottom:40px}
.ak-year{display:grid;grid-template-columns:280px minmax(0,1fr);gap:48px;padding:48px 0;border-top:1px solid rgba(241,244,239,0.12)}
.ak-year-h{position:sticky;top:120px;align-self:start;font-weight:900;font-size:148px;line-height:0.82}
.ak-items{display:flex;flex-direction:column;gap:48px}
.ak-item{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:40px;align-items:center}
.ak-item-text{display:flex;flex-direction:column;gap:12px}
.ak-item-h{margin:0;font-weight:700;font-size:38px;line-height:1.05;letter-spacing:-0.025em;transition:color 200ms ease}
.ak-item:hover .ak-item-h{color:var(--g)}
.ak-item-p{margin:0;max-width:46ch;font-size:17px;line-height:1.55;color:#A7B2AA}
.ak-thumb{width:260px;height:190px;border-radius:24px;overflow:hidden}
.ak-thumb > *{width:100%;height:100%;display:block;object-fit:cover;transition:transform 600ms cubic-bezier(0.16,1,0.3,1)}
.ak-thumb .ph{display:flex;align-items:flex-end;padding:16px;box-sizing:border-box;font-size:13px;color:#7F8C83}
.ak-item:hover .ak-thumb > *{transform:scale(1.06)}
.ak-pages{display:flex;flex-wrap:wrap;gap:8px;margin-top:48px}
.ak-pages .page-numbers{height:44px;min-width:44px;padding:0 18px;border-radius:999px;border:1px solid rgba(241,244,239,0.2);display:inline-flex;align-items:center;justify-content:center;font-size:15px;font-weight:600;box-sizing:border-box;transition:background-color 200ms ease,color 200ms ease,border-color 200ms ease}
.ak-pages a.page-numbers:hover{border-color:rgba(241,244,239,0.45)}
.ak-pages .page-numbers.current{background:#F1F4EF;color:#090C0A;border-color:#F1F4EF}
.ak-pages .page-numbers.dots{border-color:transparent}
.insta-sec{padding:0 32px 120px}
.insta-box{max-width:1376px;margin:0 auto;border-radius:24px;background:#0F1511;border:1px solid rgba(241,244,239,0.08);padding:clamp(48px,6vw,88px) clamp(24px,5vw,72px);box-sizing:border-box;display:flex;align-items:flex-end;justify-content:space-between;gap:40px}
.insta-text{display:flex;flex-direction:column;gap:20px}
.insta-h{margin:0;max-width:12ch;font-weight:900;font-size:clamp(48px,7vw,112px);line-height:0.88}
.insta-p{margin:0;max-width:40ch;font-size:18px;line-height:1.55;color:#A7B2AA}

/* ---------- Beitrag ---------- */
.bt-head{max-width:1280px;margin:0 auto;padding:72px 32px 56px;box-sizing:border-box;display:flex;flex-direction:column;align-items:flex-start;gap:28px}
.bt-date{font-size:16px;color:#A7B2AA}
.bt-h{margin:0;max-width:13ch;font-weight:900;font-size:clamp(56px,8.4vw,132px);line-height:0.88;letter-spacing:-0.005em}
.bt-lead{margin:0;max-width:40ch;font-size:23px;line-height:1.45;color:#C9D1CB}
.bt-hero-sec{padding:0 32px}
.bt-hero{max-width:1376px;margin:0 auto;height:680px;border-radius:24px;overflow:hidden}
.bt-hero img{width:100%;height:100%;object-fit:cover;display:block}
.bt-hero .ph{width:100%;height:100%;display:flex;align-items:flex-end;padding:22px;box-sizing:border-box;font-size:13px;color:#7F8C83}
.bt-body{max-width:1280px;margin:0 auto;padding:96px 32px 120px;box-sizing:border-box;display:grid;grid-template-columns:260px minmax(0,1fr);gap:80px}
.bt-body.ohne-aside{grid-template-columns:minmax(0,1fr)}
.bt-aside{position:sticky;top:120px;align-self:start;margin:0;display:flex;flex-direction:column;gap:28px}
.bt-aside > div{display:flex;flex-direction:column;gap:6px}
.bt-aside dt{font-size:14px;color:#A7B2AA}
.bt-aside dd{margin:0;font-size:18px;font-weight:600}
.bt-text{max-width:66ch;display:flex;flex-direction:column;gap:28px}
.bt-text > *{margin:0}
.bt-text p,.bt-text li{font-size:19px;line-height:1.7;color:#C9D1CB}
.bt-text h2,.bt-text h3{font-size:24px;font-weight:700;letter-spacing:-0.015em;line-height:1.2}
.bt-text a{text-decoration:underline;text-decoration-color:rgba(241,244,239,0.3);text-underline-offset:7px;text-decoration-thickness:2px;transition:text-decoration-color 200ms ease}
.bt-text a:hover{text-decoration-color:var(--g)}
.bt-text img{max-width:100%;height:auto;border-radius:24px}
.bt-text .wp-block-image{margin:0}
.bt-text .wp-block-quote{margin:24px 0;padding:0;border:0;display:flex;flex-direction:column;gap:16px}
.bt-text .wp-block-quote p{margin:0;font-family:'Big Shoulders Display',sans-serif;text-transform:uppercase;font-weight:900;font-size:clamp(44px,5.2vw,80px);line-height:0.92;color:var(--g)}
.bt-text .wp-block-quote cite{font-style:normal;font-size:15px;color:#A7B2AA}
.bt-photos{max-width:1376px;margin:0 auto;padding:0 32px 120px;box-sizing:border-box}
.bt-photos-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-bottom:32px}
.bt-photos-head .sec-h{margin:0}
.bt-photos-hint{font-size:16px;color:#A7B2AA;padding-bottom:10px}
.bt-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:14px}
.bt-grid.is-zu > [data-mehr]{display:none}
.bt-grid .tile{transition:transform 300ms cubic-bezier(0.16,1,0.3,1)}
.bt-grid .tile:hover{transform:translateY(-3px)}
.bt-grid .tile:active{transform:scale(0.98)}
.bt-more{margin-top:28px}
.bt-next-sec{padding:0 32px 120px}
.bt-next{max-width:1376px;margin:0 auto;border-radius:24px;padding:clamp(40px,5vw,72px) clamp(24px,5vw,72px);box-sizing:border-box;display:flex;flex-direction:column;gap:20px;background:#1A241D;color:#F1F4EF;transition:background-color 300ms ease,color 300ms ease,transform 300ms cubic-bezier(0.16,1,0.3,1)}
.bt-next:hover{background:var(--g);color:#090C0A;transform:translateY(-3px)}
.bt-next:focus-visible{border-radius:24px}
.bt-next-l{font-size:16px;font-weight:600;color:#B9C3BC;transition:color 300ms ease}
.bt-next:hover .bt-next-l{color:#090C0A}
.bt-next-h{max-width:16ch;font-weight:900;font-size:clamp(48px,7vw,112px);line-height:0.88}

/* ---------- Lightbox (Beitrag und Galerie) ---------- */
.lb{position:fixed;inset:0;z-index:70;background:rgba(9,12,10,0.96);display:flex;flex-direction:column;padding:20px clamp(16px,3vw,40px) 28px;box-sizing:border-box;gap:20px}
.lb[hidden]{display:none}
.lb-top{display:flex;align-items:center;justify-content:space-between;gap:16px}
.lb-count{font-size:15px;font-weight:600;color:#C9D1CB}
.lb-close{height:44px;padding:0 20px;font-size:15px}
.lb-stage{flex:1;display:flex;align-items:center;justify-content:center;min-height:0}
.lb-img{display:block;max-width:min(100%,1200px);max-height:min(72vh,760px);width:auto;height:auto;border-radius:24px;object-fit:contain}
.lb-nav{display:flex;justify-content:center;gap:12px}
.lb-next{height:52px;padding:0 26px;border-radius:999px;border:none;background:var(--g);color:#090C0A;font-family:inherit;font-size:16px;font-weight:700;cursor:pointer}

/* ---------- Galerie ---------- */
.g-head{max-width:1376px;margin:0 auto;padding:96px 32px 64px;box-sizing:border-box;display:flex;align-items:flex-end;justify-content:space-between;gap:40px}
.g-intro{margin:0 0 12px;max-width:30ch;font-size:19px;line-height:1.5;color:#C9D1CB}
.g-photos{max-width:1376px;margin:0 auto;padding:0 32px;box-sizing:border-box}
.g-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:14px}
.g-grid .tile{position:relative}
.g-grid .tile:active{transform:scale(0.99)}
.g-grid .tile-img{position:absolute;inset:0;transition:transform 700ms cubic-bezier(0.16,1,0.3,1)}
.g-grid .tile:hover .tile-img,.g-grid .tile:focus-visible .tile-img{transform:scale(1.05)}
.g-more{margin-top:36px;display:flex;flex-wrap:wrap;align-items:center;gap:24px}
.g-more-btn{height:56px;padding:0 30px;border-color:rgba(241,244,239,0.28);font-size:17px;font-weight:700;white-space:nowrap}
.g-count{font-size:16px;color:#A7B2AA}
.g-video{max-width:1376px;margin:0 auto;padding:140px 32px 120px;box-sizing:border-box}
.g-video .sec-h{margin-bottom:40px}
.g-videos{display:flex;flex-direction:column;gap:24px}
.video-box{position:relative;height:680px;border-radius:24px;overflow:hidden;background:#0F1511}
.video-box video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#0F1511}
.video-ph{position:absolute;inset:0;display:flex;justify-content:flex-end;padding:22px;box-sizing:border-box;font-size:13px;color:#7F8C83}
.video-shade{position:absolute;inset:0;background:linear-gradient(to top,rgba(9,12,10,0.9) 6%,rgba(9,12,10,0.1) 62%)}
.video-in{position:absolute;left:0;right:0;bottom:0;padding:44px;display:flex;align-items:flex-end;justify-content:space-between;gap:28px;flex-wrap:wrap}
.video-meta{display:flex;flex-direction:column;gap:12px}
.video-h{margin:0;font-weight:900;font-size:clamp(72px,10vw,168px);line-height:0.84}
.video-sub{font-size:16px;color:#C9D1CB}
.g-insta{max-width:1376px;margin:0 auto;padding:0 32px 120px;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;gap:32px}
.g-photos + .g-insta{padding-top:140px}
.g-insta-h{margin:0;max-width:16ch;font-weight:800;font-size:clamp(40px,5vw,76px);line-height:0.92}

/* ---------- Sponsoren ---------- */
.s-head{max-width:1280px;margin:0 auto;padding:96px 32px 64px;box-sizing:border-box}
.s-h{margin:0;font-weight:900;font-size:clamp(80px,13vw,204px);line-height:0.84;letter-spacing:-0.01em}
.s-thanks{max-width:1280px;margin:0 auto;padding:0 32px 120px;box-sizing:border-box}
.s-thanks .wp-block-post-content{display:flex;flex-direction:column;gap:28px}
.s-thanks .wp-block-post-content > *{margin:0}
.s-thanks p{margin:0;font-size:19px;line-height:1.5;color:#A7B2AA}
.s-thanks p:first-child{max-width:26ch;font-size:clamp(32px,4.2vw,58px);line-height:1.14;font-weight:600;letter-spacing:-0.025em;color:#F1F4EF}
.s-logos-sec{max-width:1280px;margin:0 auto;padding:0 32px 140px;box-sizing:border-box}
.s-logos{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:12px}
.s-logos > li{flex:0 0 calc((100% - 36px) / 4);box-sizing:border-box;height:168px;display:flex}
.s-logos .spons-tile{flex:1;height:auto;font-size:14px}
.logo-add{flex:1;border-radius:24px;border:2px dashed rgba(241,244,239,0.22);display:flex;align-items:center;justify-content:center;font-size:17px;font-weight:700;color:#F1F4EF;transition:border-color 300ms ease,background-color 300ms ease,color 300ms ease,transform 300ms cubic-bezier(0.16,1,0.3,1)}
.logo-add:hover{border-color:var(--g);background-color:var(--g);color:#090C0A;transform:translateY(-3px)}
.logo-add:focus-visible{border-radius:24px}
.s-box-sec{padding:0 32px 120px}
.s-box{max-width:1376px;margin:0 auto;border-radius:24px;overflow:hidden;background:var(--g);color:#090C0A;padding:clamp(48px,7vw,104px) clamp(24px,5vw,72px);box-sizing:border-box;display:flex;flex-direction:column;align-items:flex-start;gap:28px}
.s-box-h{margin:0;font-weight:900;font-size:clamp(56px,10vw,160px);line-height:0.86;white-space:nowrap}
.s-box-p{margin:0;max-width:42ch;font-size:19px;line-height:1.55;font-weight:500}
.szl-buttons.is-dark .wp-block-button__link{background:#090C0A;color:#F1F4EF}
.szl-buttons.is-dark .wp-block-button__link:hover{background-color:#1A241D}

/* ---------- Kontakt ---------- */
.k-head{max-width:1280px;margin:0 auto;padding:96px 32px 64px;box-sizing:border-box}
.k-intro{margin:28px 0 0;max-width:30ch;font-size:24px;line-height:1.4;color:#C9D1CB}
.k-mail-sec{padding:0 32px 24px}
.k-mail-box{position:relative;max-width:1376px;margin:0 auto;border-radius:24px;overflow:hidden;background:#0F1511;border:1px solid rgba(241,244,239,0.08);padding:clamp(48px,7vw,104px) clamp(24px,5vw,72px);box-sizing:border-box}
.spot.k-spot{left:-30%;bottom:-70%;width:110%;height:150%;margin-left:0;background:radial-gradient(closest-side,rgba(0,150,64,0.5),rgba(0,150,64,0) 100%)}
.k-mail-inner{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:24px}
.k-mail-h{margin:0;font-size:17px;font-weight:600;color:#C9D1CB}
.mail{font-weight:600;font-size:clamp(30px,4.6vw,68px);line-height:1.1;letter-spacing:-0.035em;overflow-wrap:anywhere;background-image:linear-gradient(var(--g),var(--g));background-size:100% 4px;background-position:0 100%;background-repeat:no-repeat;transition:background-size 400ms cubic-bezier(0.16,1,0.3,1),color 300ms ease;padding-bottom:6px}
.mail:hover{background-size:100% 100%;color:#090C0A}
.mail:focus-visible{border-radius:12px}
.k-phones-sec{padding:0 32px 140px}
.k-phones{max-width:1376px;margin:0 auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.k-phone{border-radius:24px;background:#111812;border:1px solid rgba(241,244,239,0.08);padding:44px 44px 48px;display:flex;flex-direction:column;gap:10px}
.k-phone-l{font-size:15px;color:#A7B2AA}
.k-phone-n{font-size:24px;font-weight:600;letter-spacing:-0.015em}
.phone{margin-top:18px;font-weight:600;font-size:40px;letter-spacing:-0.03em;min-height:44px;display:inline-flex;align-items:center;align-self:flex-start;transition:color 200ms ease}
.phone:hover{color:var(--g)}
.phone:focus-visible{border-radius:8px}
.k-faq-sec{max-width:1280px;margin:0 auto;padding:0 32px 140px;box-sizing:border-box}
.k-faq{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:64px}
.k-faq-h{position:sticky;top:120px;align-self:start;margin:0;font-weight:900;font-size:clamp(64px,8vw,124px);line-height:0.86}
.k-faq-list{display:flex;flex-direction:column}
.faq{border-top:1px solid rgba(241,244,239,0.12)}
.faq:last-child{border-bottom:1px solid rgba(241,244,239,0.12)}
.faq summary{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:28px 0;min-height:48px;list-style:none;cursor:pointer}
.faq summary::-webkit-details-marker{display:none}
.faq summary:focus-visible{border-radius:16px}
.faq-t{font-size:34px;font-weight:600;letter-spacing:-0.025em;transition:color 200ms ease}
.faq summary:hover .faq-t{color:var(--g)}
.faq-x{position:relative;flex-shrink:0;width:48px;height:48px;border-radius:999px;border:1px solid rgba(241,244,239,0.2);transition:background-color 300ms ease,border-color 300ms ease}
.faq-x::before,.faq-x::after{content:"";position:absolute;left:50%;top:50%;width:16px;height:2px;margin:-1px 0 0 -8px;border-radius:2px;background:#F1F4EF;transition:transform 400ms cubic-bezier(0.16,1,0.3,1),background-color 300ms ease}
.faq-x::after{transform:rotate(90deg)}
.faq[open] .faq-x{background-color:var(--g);border-color:var(--g)}
.faq[open] .faq-x::before,.faq[open] .faq-x::after{background:#090C0A}
.faq[open] .faq-x::after{transform:rotate(0deg)}
.faq-body{padding:0 0 32px;display:flex;flex-direction:column;align-items:flex-start;gap:16px}
.faq-body p{margin:0;max-width:46ch;font-size:18px;line-height:1.6;color:#A7B2AA}

/* ---------- Textseiten (Impressum, Datenschutz, weitere Seiten) ---------- */
.t-grid{max-width:1280px;margin:0 auto;padding:96px 32px 140px;box-sizing:border-box;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:80px}
.t-side{position:sticky;top:120px;align-self:start;display:flex;flex-direction:column;align-items:flex-start;gap:28px;container-type:inline-size}
.t-h{margin:0;max-width:100%;font-weight:900;font-size:clamp(56px,6.4vw,104px);line-height:0.84;overflow-wrap:break-word;hyphens:manual}
/* Lange Titel (z. B. Datenschutzerklärung) brechen nur an der Wortfuge (&shy;).
   Damit der längste Wortteil samt Trennstrich in die Spalte passt, ist die Schrift
   höchstens 18 % der Spaltenbreite groß („Datenschutz-“ ist ca. 5,4 × Schriftgröße breit). */
.t-h.ist-lang{font-size:min(clamp(56px,6.4vw,104px),18cqi);line-height:0.98}
/* Zweizeilig: etwas mehr Zeilenabstand, sonst verschwinden Umlaut-Punkte (ERKLÄRUNG) in der Zeile darüber */
.t-line{display:block;overflow-x:visible;overflow-y:clip;padding-top:0.04em}
.t-switch{display:flex;flex-wrap:wrap;gap:8px}
.pill-sw{height:44px;padding:0 18px;border-radius:999px;background:transparent;color:#F1F4EF;border:1px solid rgba(241,244,239,0.2);font-size:15px;font-weight:600;display:inline-flex;align-items:center;transition:background-color 200ms ease,color 200ms ease,border-color 200ms ease}
.pill-sw:hover{border-color:rgba(241,244,239,0.45)}
.pill-sw[aria-current="page"]{background:#F1F4EF;color:#090C0A;border-color:#F1F4EF}
.t-text{display:flex;flex-direction:column;gap:56px;max-width:64ch}
.t-section{display:flex;flex-direction:column;gap:28px}
.t-text h2{margin:0;font-size:24px;font-weight:700;letter-spacing:-0.015em}
.t-text h3{margin:0;font-size:20px;font-weight:700;letter-spacing:-0.01em}
.t-text .wp-block-post-content{display:flex;flex-direction:column;gap:18px}
.t-text .wp-block-post-content > *{margin:0}
.t-text .wp-block-post-content > h2:not(:first-child),.t-text .wp-block-post-content > h3:not(:first-child){margin-top:38px}
.t-text p,.t-text li{font-size:18px;line-height:1.7;color:#C9D1CB}
.t-text ul,.t-text ol{padding-left:1.2em}
.t-text a{text-decoration:underline;text-decoration-color:rgba(241,244,239,0.3);text-underline-offset:7px;text-decoration-thickness:2px;transition:text-decoration-color 200ms ease;overflow-wrap:anywhere}
.t-text a:hover{text-decoration-color:var(--g)}
.t-text dl{margin:0;display:flex;flex-direction:column;gap:22px}
.t-row{display:grid;grid-template-columns:200px minmax(0,1fr);gap:24px}
.t-text dt{font-size:16px;color:#A7B2AA}
.t-text dd{margin:0;font-size:18px;line-height:1.5}
.t-leer{color:#A7B2AA}
/* Tabellen ohne Trennlinien, wie die Angaben-Zeilen */
.t-text .wp-block-table{margin:0;overflow-x:auto}
.t-text table{border-collapse:collapse;width:100%}
.t-text .wp-block-table td,.t-text .wp-block-table th,.t-text .wp-block-table thead,.t-text .wp-block-table tfoot{border:0}
.t-text td,.t-text th{padding:11px 24px 11px 0;vertical-align:top;text-align:left;font-size:18px;line-height:1.5;font-weight:400}
.t-text td:first-child,.t-text th{font-size:16px;color:#A7B2AA}

/* ---------- 404 ---------- */
.nf{max-width:1376px;margin:0 auto;padding:72px 32px 140px;box-sizing:border-box;display:flex;flex-direction:column;align-items:flex-start;gap:40px}
.nf-num{display:flex;font-weight:900;font-size:clamp(200px,34vw,520px);line-height:0.8;letter-spacing:-0.02em}
.nf-num > span{display:block;overflow:clip;padding-top:0.04em}
.nf-text{display:flex;flex-direction:column;align-items:flex-start;gap:20px}
.nf-h{margin:0;font-weight:700;font-size:44px;line-height:1.05;letter-spacing:-0.03em}
.nf-p{margin:0;max-width:40ch;font-size:19px;line-height:1.55;color:#A7B2AA}
.nf-actions{margin-top:12px;display:flex;flex-wrap:wrap;align-items:center;gap:28px}
.error404 .progress{display:none}

/* =====================================================================
   4. Breakpoints
   ===================================================================== */

/* ---------- Tablet ---------- */
@media (max-width: 1023px){
  .hero-box{min-height:680px}
  .row{grid-template-columns:220px minmax(0,1fr) auto;gap:24px}
  .bento{grid-template-columns:repeat(2,minmax(0,1fr))}
  .bento > .feat{grid-column:1 / -1;grid-row:auto}
  .feat-img{height:360px}
  .news-sm{min-height:240px}
  .gal-row{--gs:0.8}
  .logos > *{flex-basis:calc((100% - 36px) / 4)}
  /* Aktuelles */
  .ak-feat{grid-template-columns:1fr}
  .ak-feat-img{height:420px}
  .ak-year{grid-template-columns:1fr;gap:12px}
  .ak-year-h{position:static}
  /* Beitrag */
  .bt-body{grid-template-columns:1fr;gap:40px}
  .bt-aside{position:static;flex-direction:row;flex-wrap:wrap;gap:24px 40px}
  .bt-hero{height:460px}
  /* Galerie */
  .g-grid > *{grid-column:span 3;height:300px}
  .g-grid > :nth-child(3n+1){grid-column:1 / -1;height:400px}
  .g-grid{grid-template-columns:repeat(6,minmax(0,1fr))}
  /* Steht die letzte Kachel allein in einer halben Reihe, füllt sie die Reihe */
  .g-grid > :last-child:nth-child(3n+2){grid-column:1 / -1}
  .video-box{height:520px}
  /* Sponsoren */
  .s-logos > li{flex-basis:calc((100% - 24px) / 3)}
  /* Kontakt */
  .k-faq{grid-template-columns:1fr;gap:24px}
  .k-faq-h{position:static}
  /* Textseiten */
  .t-grid{grid-template-columns:1fr;gap:40px}
  .t-side{position:static}
}

/* ---------- Handy ---------- */
@media (max-width: 767px){
  .pad{padding-left:16px;padding-right:16px}
  .site-head{top:8px;padding-top:8px}
  .site-nav{height:60px;padding:0 8px 0 20px}

  /* Hero */
  .hero-sec{padding-top:28px}
  .hero-box{min-height:580px}
  .hero-inner{padding:0 20px 24px}
  .hero-h{font-size:16vw}
  .hero-tag{top:84px;right:auto;left:20px}
  .hero-foot{flex-direction:column;align-items:flex-start;margin-top:20px;gap:20px}
  .hero-p{font-size:17px}
  .hero-cta{height:52px;padding:0 24px;font-size:16px}

  /* Band */
  .band-sec{padding:56px 0 16px}
  .band-inner{padding:12px 0}

  /* Wer wir sind */
  .about-sec{padding-top:64px;padding-bottom:80px}

  /* Termine: Datum, Titel und Ort untereinander */
  .dates-sec{padding-top:16px;padding-bottom:80px}
  .row{grid-template-columns:1fr;gap:6px;padding:22px 0}
  .r-date{font-size:44px}
  .r-title{font-size:20px}
  .r-meta{font-size:15px}

  /* Aktuelles: eine Spalte, kompaktere Abstände und Schriftgrößen */
  .news-sec{padding-top:16px;padding-bottom:80px}
  .news-title{margin-bottom:24px}
  .bento{grid-template-columns:1fr;gap:12px}
  .bento > *,.bento > .feat{grid-row:auto;grid-column:auto}
  .feat-img{height:220px}
  .feat-body{padding:22px 20px 26px;gap:10px}
  .feat-h{font-size:28px}
  .feat-p{font-size:16px}
  .news-sm{min-height:0;padding:22px 20px 24px;gap:20px}
  .sm-h{font-size:23px}
  .card-link:hover{transform:none}

  /* Galerie: Bilder auf 60 % skaliert, Proportionen bleiben */
  .gal-sec{padding:16px 0 80px}
  .gal-title{margin-bottom:24px}
  .gal-row{--gs:0.6;padding-bottom:12px}

  /* Kontakt */
  .kontakt-sec{padding-top:8px;padding-bottom:80px}
  .kontakt-box{padding:40px 22px 44px}
  .kontakt-h{font-size:13vw}
  .kontakt-p{font-size:17px}

  /* Sponsoren: 2 pro Reihe, ein einzelnes letztes Logo steht mittig */
  .spons-sec{padding-bottom:80px}
  .logos{gap:10px}
  .logos > *{flex-basis:calc((100% - 10px) / 2)}
  .logos > *{height:88px}

  /* Fuß */
  .foot-mark{padding-top:32px}
  .foot-row{flex-direction:column;align-items:flex-start;padding-top:28px;padding-bottom:36px}
  .foot-links{gap:0 24px}

  /* Aktuelles */
  .ak-head{padding-top:48px;padding-bottom:48px}
  .ak-h{font-size:17vw}
  .ak-intro{font-size:17px}
  .ak-feat-img{height:240px}
  .ak-feat-body{padding:24px 20px 28px;gap:24px}
  .ak-feat-h{font-size:30px}
  .ak-feat-p{font-size:16px}
  .ak-arch{padding-top:72px;padding-bottom:80px}
  .ak-year{padding:28px 0}
  .ak-year-h{font-size:88px}
  .ak-item{grid-template-columns:1fr;gap:16px}
  .ak-thumb{width:100%;height:200px;order:-1}
  .ak-item-h{font-size:26px}
  .insta-sec{padding-bottom:80px}
  .insta-box{padding:40px 22px 44px;flex-direction:column;align-items:flex-start}
  /* Vorlage: 15vw; „Zwischendurch“ passt erst ab 12vw in die Box (Entscheidung, siehe ENTSCHEIDUNGEN.md) */
  .insta-h{font-size:12vw}

  /* Beitrag */
  .bt-head{padding-top:32px;padding-bottom:36px}
  .bt-h{font-size:13vw}
  .bt-lead{font-size:19px}
  .bt-hero{height:260px}
  .bt-body{padding-top:48px;padding-bottom:64px}
  .bt-text p,.bt-text li{font-size:17px}
  .bt-text .wp-block-quote p{font-size:40px}
  .bt-photos{padding-bottom:72px}
  .bt-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .bt-grid > *{grid-column:auto;height:150px}
  .bt-grid > :first-child{grid-column:1 / -1;height:220px}
  .bt-next{padding:32px 22px}
  .bt-next-h{font-size:12vw}
  .lb-img{max-height:56vh}

  /* Galerie */
  .g-head{padding-top:48px;padding-bottom:40px;flex-direction:column;align-items:flex-start}
  .g-h{font-size:21vw}
  .g-intro{font-size:17px}
  .g-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .g-grid > *{grid-column:auto;height:170px}
  .g-grid > :nth-child(3n+1){grid-column:1 / -1;height:240px}
  .g-grid > :last-child:nth-child(3n+2){grid-column:1 / -1}
  .g-video{padding-top:80px;padding-bottom:80px}
  .video-box{height:420px}
  .video-in{padding:24px 20px}
  .video-h{font-size:18vw}
  .g-insta{flex-direction:column;align-items:flex-start;padding-bottom:80px}
  .g-insta-h{font-size:12vw}
  .g-photos + .g-insta{padding-top:80px}

  /* Sponsoren */
  .s-head{padding-top:48px;padding-bottom:40px}
  .s-h{font-size:17vw}
  .s-thanks{padding-bottom:64px}
  .s-thanks p:first-child{font-size:30px}
  .s-logos-sec{padding-bottom:80px}
  .s-logos{gap:10px}
  .s-logos > li{flex-basis:calc((100% - 10px) / 2)}
  .s-logos > li{height:104px}
  .s-box-sec{padding-bottom:80px}
  .s-box{padding:44px 22px 48px}
  .s-box-h{font-size:17vw;white-space:normal}
  .s-box-p{font-size:17px}

  /* Kontakt */
  .k-head{padding-top:48px;padding-bottom:40px}
  .k-h{font-size:21vw}
  .k-intro{font-size:19px}
  .k-mail-box{padding:40px 20px 44px}
  .mail{font-size:6.4vw}
  .k-phones{grid-template-columns:1fr;gap:12px}
  .k-phone{padding:28px 22px}
  .phone{font-size:28px}
  .k-phones-sec{padding-bottom:80px}
  .k-faq-sec{padding-bottom:80px}
  .faq-t{font-size:26px}

  /* Textseiten */
  .t-grid{padding-top:48px;padding-bottom:80px}
  .t-h{font-size:17vw}
  .t-h.ist-lang{font-size:min(17vw,18cqi)}
  .t-row{grid-template-columns:1fr;gap:4px}

  /* 404 */
  .nf{padding-top:56px;padding-bottom:88px}
  .nf-num{font-size:52vw}
  .nf-h{font-size:32px}
  .nf-p{font-size:17px}
}

/* ---------- Menü: unter 900px Vollbild-Menü statt Linkleiste ---------- */
@media (max-width: 899px){
  .nav-links{display:none}
  .mbtn{display:inline-flex}
  .menu{display:flex;position:fixed;inset:0;z-index:60;flex-direction:column;justify-content:space-between;padding:20px 16px 32px;box-sizing:border-box;background:var(--g);color:#090C0A;overflow-y:auto;
    clip-path:circle(0px at calc(100% - 58px) 52px);visibility:hidden;
    transition:clip-path 650ms cubic-bezier(0.76,0,0.24,1),visibility 0s linear 650ms}
  .menu.is-open{clip-path:circle(160% at calc(100% - 58px) 52px);visibility:visible;
    transition:clip-path 800ms cubic-bezier(0.76,0,0.24,1),visibility 0s}
  .menu a{color:#090C0A}
  .menu .menu-cta{color:#F1F4EF}
  .mi{display:block;overflow:clip;padding-top:0.06em}
  .mi > a{display:block;transform:translateY(115%) rotate(4deg);transform-origin:0 100%;transition:transform 700ms cubic-bezier(0.16,1,0.3,1)}
  .menu.is-open .mi > a{transform:none}
  .menu.is-open .mi:nth-child(1) > a{transition-delay:260ms}
  .menu.is-open .mi:nth-child(2) > a{transition-delay:320ms}
  .menu.is-open .mi:nth-child(3) > a{transition-delay:380ms}
  .menu.is-open .mi:nth-child(4) > a{transition-delay:440ms}
  .menu-foot{opacity:0;transform:translateY(16px);transition:opacity 400ms ease,transform 600ms cubic-bezier(0.16,1,0.3,1)}
  .menu.is-open .menu-foot{opacity:1;transform:none;transition-delay:560ms}
  .mi > a:active{transform:scale(0.98)}
}

/* =====================================================================
   5. Animationen: nur wenn Bewegung erlaubt ist
   ===================================================================== */
@media (prefers-reduced-motion: no-preference){
  html{scroll-behavior:smooth}
  .ld{display:block;animation:rise 1000ms cubic-bezier(0.16,1,0.3,1) both}
  .ld-2{animation-delay:110ms}
  .ld-3{animation-delay:220ms}
  .fade{animation:fadeUp 900ms cubic-bezier(0.16,1,0.3,1) 380ms both}
  .gal-row{overflow:hidden}
  .loop-a{animation:loop 60s linear infinite}
  .loop-b{animation:loop 60s linear infinite reverse}
  .gal-row:hover .loop{animation-play-state:paused}
  .loop-w{animation:loop 32s linear infinite}
  /* Band „Nächster Termin“: läuft dauerhaft durch, auch unter der Maus */
  .band{animation:loop 40s linear infinite}
  .lb{animation:fadeIn 280ms ease both}
  .lb-img{animation:popIn 500ms cubic-bezier(0.16,1,0.3,1) both}
  .faq[open] .faq-body{animation:fadeUp 500ms cubic-bezier(0.16,1,0.3,1) both}
  /* 404: Text erscheint etwas spaeter */
  .nf-text.fade{animation-delay:480ms}
  @supports (animation-timeline: view()){
    .progress{animation:grow linear both;animation-timeline:scroll(root)}
    .split-l{animation:toL linear both;animation-timeline:view();animation-range:exit 0% exit 100%}
    .split-r{animation:toR linear both;animation-timeline:view();animation-range:exit 0% exit 100%}
    .wd{animation:lit linear both;animation-timeline:view();animation-range:entry 30% cover 45%}
    .slide{animation:slideIn linear both;animation-timeline:view();animation-range:entry 0% entry 90%}
    .zoom{animation:zoom linear both;animation-timeline:view();animation-range:entry 0% cover 55%}
    .spot{animation:spot linear both;animation-timeline:view();animation-range:entry 0% cover 50%}
    .wordmark{animation:toL linear both;animation-timeline:view();animation-range:entry 0% cover 100%}
    .yr{animation:yrIn linear both;animation-timeline:view();animation-range:entry 0% entry 80%}
    .rise-in{animation:fadeUp linear both;animation-timeline:view();animation-range:entry 0% entry 60%}
    .bt-text .wp-block-quote p{animation:quoteIn linear both;animation-timeline:view();animation-range:entry 10% cover 40%}
    .video-ph{animation:zoom linear both;animation-timeline:view();animation-range:entry 0% cover 55%}
    .s-box-h{animation:toLBox linear both;animation-timeline:view();animation-range:entry 0% exit 40%}
  }
}

/* =====================================================================
   6. Keyframes
   ===================================================================== */
@keyframes rise{from{transform:translateY(108%)}to{transform:none}}
@keyframes fadeUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@keyframes grow{to{transform:scaleX(1)}}
@keyframes toL{to{transform:translateX(-14%)}}
@keyframes toR{to{transform:translateX(14%)}}
@keyframes lit{from{opacity:0.16}to{opacity:1}}
@keyframes slideIn{from{opacity:0;transform:translateX(12%)}to{opacity:1;transform:none}}
@keyframes zoom{from{transform:scale(1.22)}to{transform:scale(1)}}
@keyframes loop{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes spot{from{transform:scale(0.35);opacity:0}to{transform:scale(1);opacity:1}}
@keyframes yrIn{from{opacity:0;transform:translateY(40%)}to{opacity:1;transform:none}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes popIn{from{opacity:0;transform:scale(0.94)}to{opacity:1;transform:none}}
@keyframes quoteIn{from{opacity:0.15;transform:translateX(-6%)}to{opacity:1;transform:none}}
@keyframes toLBox{from{transform:translateX(8%)}to{transform:translateX(-4%)}}

/* =====================================================================
   7. Reduzierte Bewegung: nur Bewegungs-Ersatz.
   Hier stehen NIE Breakpoint-Regeln (max-width/min-width), sonst gelten
   sie nur für Nutzer mit reduzierter Bewegung.
   ===================================================================== */
@media (prefers-reduced-motion: reduce){
  /* Cursor-Kreis ohne Nachlauf, nur Farbwechsel */
  .cur-ring{transition:background-color 150ms ease,border-color 150ms ease}
  /* Menü erscheint ohne Kreis-Animation */
  .menu,.menu.is-open,.mi > a,.menu-foot,.menu.is-open .menu-foot{transition:none}
}
/* ENDE reduced motion */
