/* sportpicsell — Design-Tokens
   Farbe:  --green (Logo-Grün), --green-dark, --ink, --paper, --sand
   Type:   Oswald (Display/Headlines), Source Sans 3 (Fließtext),
           Space Mono (Scoreboard-Ziffern: Startnummer, Preise, Dateiname)
   Signatur: die elektronische Zeitmessung am Abreiteplatz — Startnummern
             und Preise laufen in roten Digitalziffern wie auf der
             Stallzeit-Uhr, die bei jedem Turnier neben dem Parcours hängt.
*/

:root{
  --ink:#12140f;
  --paper:#f5f4ee;
  --paper-raised:#ffffff;
  --green:#7abc58;
  --green-dark:#436b2b;
  --green-glow:#b7e695;
  --line:#dcd6c4;
  --sand:#eee7d6;
  --radius:14px;
  --maxw:1080px;
}

*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%; scroll-behavior:smooth;}

body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:"Source Sans 3","Segoe UI",Arial,sans-serif;
  font-size:17px;
  line-height:1.5;
}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.001ms !important; transition-duration:0.001ms !important;}
}

a{color:var(--green-dark);}
a:focus-visible,button:focus-visible,input:focus-visible,label:focus-visible{
  outline:3px solid var(--green-dark);
  outline-offset:2px;
}

.wrap{max-width:var(--maxw); margin:0 auto; padding:0 20px;}

/* Kopfzeile */
.site-header{
  background:var(--paper-raised);
  position:sticky;
  top:0;
  z-index:40;
  border-bottom:3px solid var(--green);
}
.site-header .wrap{
  display:flex;
  align-items:center;
  gap:16px;
  padding-top:14px;
  padding-bottom:14px;
}
.site-header img.logo{height:42px; width:auto; display:block; border-radius:3px;}
.site-header .claim{
  font-family:"Oswald",Arial,sans-serif;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:12px;
  color:var(--green-dark);
  border-left:2px solid var(--line);
  padding-left:16px;
}
.warenkorb-link{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-family:"Oswald",Arial,sans-serif;
  text-transform:uppercase;
  letter-spacing:.05em;
  font-size:13px;
  color:var(--ink);
  text-decoration:none;
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:999px;
  padding:7px 14px;
  transition:background .15s ease, border-color .15s ease;
}
.warenkorb-link:hover, .warenkorb-link:focus-visible{background:var(--sand); border-color:var(--green-dark);}
.warenkorb-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:20px;
  height:20px;
  padding:0 5px;
  background:var(--green-dark);
  color:#fff;
  border-radius:999px;
  font-family:"Space Mono",ui-monospace,monospace;
  font-weight:700;
  font-size:12px;
}
.sprachwahl{
  display:flex;
  align-items:center;
  font-family:"Space Mono",ui-monospace,monospace;
  font-size:12px;
  margin-left:auto;
  border:1px solid var(--line);
  border-radius:6px;
  overflow:hidden;
}
.site-header .warenkorb-link{margin-left:14px;}
.sprachwahl a{
  display:inline-block;
  color:#8a8a7c;
  text-decoration:none;
  padding:6px 10px;
  letter-spacing:.03em;
}
.sprachwahl a + a{border-left:1px solid var(--line);}
.sprachwahl a.aktiv{color:var(--ink); background:var(--sand); font-weight:700;}
.sprachwahl a:hover, .sprachwahl a:focus-visible{color:var(--ink); background:var(--paper);}

/* Turnier-Filter (Sportart/Jahr) — bewusst derselbe Look wie die
   Sprachauswahl im Header, wie besprochen. */
.filterzeile{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:14px;
  margin-top:18px;
}
.filter{
  display:flex;
  align-items:center;
  font-family:"Space Mono",ui-monospace,monospace;
  font-size:12px;
  border:1px solid var(--line);
  border-radius:6px;
  overflow:hidden;
}
.filter-label{
  padding:6px 10px;
  color:#8a8a7c;
  background:var(--sand);
  border-right:1px solid var(--line);
  text-transform:uppercase;
  letter-spacing:.04em;
}
.filter a{
  display:inline-block;
  color:#8a8a7c;
  text-decoration:none;
  padding:6px 10px;
  letter-spacing:.03em;
}
.filter a + a{border-left:1px solid var(--line);}
.filter a.aktiv{color:var(--ink); background:var(--sand); font-weight:700;}
.filter a:hover, .filter a:focus-visible{color:var(--ink); background:var(--paper);}
.filter-anzahl{
  margin-top:10px;
  font-size:13px;
  color:#8a8a7c;
}

/* Ort/Verein-Dropdown im selben Ticket-Look wie die Lizenzauswahl in
   den Galerien (gestrichelte Kante, Space Mono) — bewusst kein
   natives Browser-Select-Aussehen wie zuvor. */
.filter-dropdown select{
  font-family:"Space Mono",ui-monospace,monospace;
  font-size:12px;
  font-weight:700;
  color:var(--ink);
  background:var(--paper-raised);
  border:1.5px dashed var(--green-dark);
  border-radius:6px;
  padding:7px 12px;
  cursor:pointer;
  max-width:220px;
}
.filter-dropdown select:focus-visible{outline:2px solid var(--green-dark);}

/* Suchfeld sitzt jetzt in derselben Zeile wie die Filter, rechtsbündig
   (statt als eigener, lose wirkender Block darunter) — bricht auf
   schmalen Bildschirmen sauber in eine eigene Zeile um. */
.filterzeile .suche-zeile{
  margin-left:auto;
}
.suche-zeile-solo{margin-top:18px;}
.suche-feld{
  width:100%;
  max-width:240px;
  font-family:"Source Sans 3",Arial,sans-serif;
  font-size:14px;
  padding:8px 14px;
  border:1.5px solid var(--line);
  border-radius:999px;
  background:var(--paper-raised);
  color:var(--ink);
}
.suche-feld:focus-visible{outline:none; border-color:var(--green-dark);}
.suche-feld::placeholder{color:#9d9a8c;}
@media (max-width:640px){
  .filterzeile .suche-zeile{margin-left:0; width:100%;}
  .suche-feld{max-width:none;}
}

.neu-badge{
  position:absolute;
  top:-10px;
  left:16px;
  font-family:"Space Mono",ui-monospace,monospace;
  text-transform:uppercase;
  letter-spacing:.06em;
  font-size:11px;
  font-weight:700;
  color:#fff;
  background:#d6336c;
  border:1.5px dashed rgba(255,255,255,.5);
  border-radius:3px;
  padding:3px 9px;
  transform:rotate(2deg);
}

.breadcrumb{
  font-size:14px;
  color:#6b6b60;
  margin:18px 0 0;
}
.breadcrumb a{color:#6b6b60; text-decoration:underline;}
.breadcrumb .current{color:var(--ink); font-weight:600;}

/* Überschriften */
h1,h2,h3{
  font-family:"Oswald",Arial,sans-serif;
  text-transform:uppercase;
  letter-spacing:.02em;
  color:var(--ink);
  margin:.2em 0 .5em;
}
h1{font-size:clamp(28px,5vw,44px);}
h2{font-size:20px; color:var(--green-dark);}
p.lead{font-size:19px; max-width:60ch; color:#3b3d34;}

main{padding:34px 0 80px;}
#turniere{scroll-margin-top:90px;}
/* Garantiert genug Scroll-Weg unterhalb der Filterzeile, damit der
   Browser #turniere IMMER an dieselbe Stelle im Fenster scrollen kann —
   auch wenn eine Filterkombination nur 1-2 Karten übrig lässt und die
   Seite sonst zu kurz für den vollen Sprung wäre. */
.ergebnis-bereich{min-height:100vh;}

/* Ablauf — echte Reihenfolge (wählen -> finden -> bestellen),
   daher ist eine Nummerierung hier inhaltlich gerechtfertigt */
.schritte{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  gap:22px;
  margin:8px 0 10px;
  padding-bottom:34px;
  border-bottom:1px solid var(--line);
}
.schritt-nr{
  display:block;
  font-family:"Space Mono",ui-monospace,monospace;
  font-weight:700;
  font-size:14px;
  color:var(--green-dark);
  letter-spacing:.08em;
}
.schritt-titel{
  font-family:"Oswald",Arial,sans-serif;
  text-transform:uppercase;
  font-size:17px;
  margin:4px 0 3px;
}
.schritt-text{font-size:14px; color:#5b5b52;}

/* Hero (Startseite) — Streifen wie eine Zeltbahn/Markise am
   Verkaufsstand: der PopUpStore ist mal da, mal woanders. Helles
   Farbschema — ganze Seite bewusst hell, nicht als Nacht-Hero. */
.hero{
  background:
    repeating-linear-gradient(78deg, var(--paper) 0 26px, var(--sand) 26px 52px);
  color:var(--ink);
  padding:70px 0 54px;
  border-bottom:4px solid var(--green-dark);
}
.hero .badge,
.hero h1,
.hero p.lead,
.hero .story,
.hero .preis-tabelle,
.hero .preis-hinweis{
  animation:hero-auf .55s ease both;
}
.hero h1{animation-delay:.05s;}
.hero p.lead{animation-delay:.1s;}
.hero .story{animation-delay:.15s;}
.hero .preis-tabelle{animation-delay:.2s;}
.hero .preis-hinweis{animation-delay:.25s;}
@keyframes hero-auf{
  from{opacity:0; transform:translateY(10px);}
  to{opacity:1; transform:translateY(0);}
}

.hero .badge{
  display:inline-block;
  font-family:"Space Mono",ui-monospace,monospace;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:12px;
  font-weight:700;
  color:var(--ink);
  background:var(--green);
  padding:6px 14px;
  border-radius:3px;
  border:1.5px dashed rgba(18,20,15,.4);
  transform:rotate(-2deg);
  margin-bottom:20px;
}
.hero h1{
  color:var(--ink);
  font-size:clamp(38px,7vw,64px);
  margin:0 0 14px;
  line-height:1.02;
}
.hero h1 span{color:var(--green-dark);}
.hero p.lead{color:#3b3d34; font-size:19px;}
.hero .story{
  margin-top:22px;
  max-width:62ch;
  color:#5b5b52;
  font-size:15px;
  border-left:2px solid var(--green-dark);
  padding-left:16px;
}
.hero .buchung-hinweis{
  margin-top:20px;
  font-size:18px;
  font-weight:700;
  color:var(--ink);
  background:var(--green);
  display:inline-block;
  padding:9px 18px;
  border-radius:6px;
  border:2px dashed rgba(18,20,15,.35);
  transform:rotate(-1deg);
}

.preis-tabelle{
  margin-top:26px;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  gap:12px;
  max-width:700px;
}
.preis-tabelle .preis-karte{
  background:var(--paper-raised);
  border:1.5px dashed var(--green-dark);
  border-radius:var(--radius);
  padding:16px 18px;
}
.preis-tabelle .preis-betrag{
  font-family:"Space Mono",ui-monospace,monospace;
  font-weight:700;
  font-size:30px;
  color:var(--green-dark);
}
.preis-tabelle .preis-label{font-size:13px; color:#5b5b52; margin-top:2px;}

.preis-hinweis{
  margin-top:10px;
  font-size:13px;
  color:#9d9a8c;
}
.preis-vertrauen{
  margin-top:8px;
  font-size:15px;
  font-weight:600;
  color:var(--green-dark);
}

/* Startnummer-Badge — Signaturelement: Ziffern wie auf der
   elektronischen Stallzeit-Uhr am Abreiteplatz (Space Mono) */
.startnummer{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:52px;
  height:52px;
  padding:0 8px;
  background:var(--green);
  border:2px solid var(--ink);
  border-radius:10px;
  color:var(--ink);
  font-family:"Space Mono",ui-monospace,monospace;
  font-weight:700;
  font-size:19px;
  flex:none;
  transform:skewX(-6deg);
  box-shadow:3px 3px 0 var(--ink);
}
.startnummer > *{transform:skewX(6deg); display:inline-block;}

/* Kartenraster (Turniere / Tage / Prüfungen) */
.card-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(230px,1fr));
  gap:16px;
  margin-top:28px;
  padding:0;
  list-style:none;
}
.card{
  display:flex;
  flex-direction:column;
  height:100%;
  box-sizing:border-box;
  position:relative;
  background:var(--paper-raised);
  border:1px solid var(--line);
  border-left:5px solid var(--green);
  border-radius:var(--radius);
  padding:22px 20px;
  text-decoration:none;
  color:var(--ink);
  transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.card:hover, .card:focus-visible{
  border-left-color:var(--green-dark);
  transform:translate(2px,-4px);
  box-shadow:-2px 6px 0 var(--sand);
}
.card .card-title{
  font-family:"Oswald",Arial,sans-serif;
  text-transform:uppercase;
  font-size:19px;
  margin:0 0 4px;
}
.card .card-meta{font-size:14px; color:#5b5b52; margin-top:auto; padding-top:8px;}
.card-badge, .page-badge{
  display:inline-block;
  font-family:"Space Mono",ui-monospace,monospace;
  text-transform:uppercase;
  letter-spacing:.06em;
  font-size:11px;
  font-weight:700;
  color:var(--green-dark);
  background:var(--paper);
  border:1.5px dashed var(--green-dark);
  border-radius:3px;
  padding:3px 9px;
  transform:rotate(-2deg);
}
.card-badge{position:absolute; top:-10px; right:16px; background:var(--paper-raised);}
.page-badge{margin-bottom:10px;}

/* Jahres-Farbvarianten für Badges — pro Jahr deterministisch zugewiesen
   (siehe jahr_farb_klasse() in funktionen.php), damit mehrere Turnierjahre
   auf einen Blick unterscheidbar sind. Neue Jahre bekommen automatisch
   eine der sechs Farben, ohne dass hier etwas gepflegt werden muss. */
.jahr-0{color:var(--green-dark); border-color:var(--green-dark);}
.jahr-1{color:#9c6b1f; border-color:#9c6b1f;}
.jahr-2{color:#2f7d78; border-color:#2f7d78;}
.jahr-3{color:#a4502f; border-color:#a4502f;}
.jahr-4{color:#7a4a82; border-color:#7a4a82;}
.jahr-5{color:#3a6ea5; border-color:#3a6ea5;}

/* Prüfungsliste (Startnummer + Text nebeneinander) */
.pruefungs-liste{list-style:none; margin:28px 0 0; padding:0;}
.pruefungs-liste li{margin-bottom:10px;}
.pruefungs-liste a{
  display:flex;
  align-items:center;
  gap:16px;
  background:var(--paper-raised);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:14px 18px;
  text-decoration:none;
  color:var(--ink);
  transition:transform .12s ease, box-shadow .12s ease;
}
.pruefungs-liste a:hover, .pruefungs-liste a:focus-visible{
  transform:translateX(4px);
  box-shadow:-4px 0 0 var(--green);
}
.pruefungs-liste .pr-text{flex:1;}
.pruefungs-liste .pr-titel{font-weight:600;}
.pruefungs-liste .pr-meta{font-size:14px; color:#5b5b52;}
.pruefungs-liste .pr-arrow{color:var(--green-dark); font-size:22px;}

.section-label{
  font-family:"Oswald",Arial,sans-serif;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:13px;
  color:#5b5b52;
  margin:34px 0 0;
  padding-bottom:6px;
  border-bottom:1px solid var(--line);
}

/* Galerie */
.gallery-header{
  display:flex;
  align-items:center;
  gap:16px;
  flex-wrap:wrap;
}
.gallery-header .titel-block h1{margin-bottom:2px; font-size:26px;}
.gallery-header .titel-block .meta{color:#5b5b52; font-size:15px;}

.preis-legende{
  display:flex;
  gap:18px;
  flex-wrap:wrap;
  margin-top:18px;
  padding:12px 16px;
  background:var(--sand);
  border-radius:var(--radius);
  font-size:14px;
}
.preis-legende b{color:var(--green-dark);}
.unbearbeitet-hinweis{
  margin-top:10px;
  font-size:13px;
  color:#8a8a7c;
  font-style:italic;
}
.team-preis-hinweis{
  margin-top:10px;
  font-size:13px;
  color:var(--green-dark);
  background:var(--sand);
  border-left:3px solid var(--green-dark);
  padding:8px 12px;
  border-radius:4px;
  max-width:70ch;
}

/* Schaufenster (Startseite) — Karussell, kein Bestell-UI. Scroll-Snap
   statt JS-Bibliothek: funktioniert nativ per Touch-Wisch, Pfeile
   sind nur ein zusätzliches Steuerelement für Maus/Tastatur. */
.schaufenster-wrap{
  position:relative;
  margin-top:22px;
  margin-bottom:50px;
}
.schaufenster-karussell{
  display:flex;
  gap:10px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;
  padding-bottom:4px;
  scrollbar-width:none;
}
.schaufenster-karussell::-webkit-scrollbar{display:none;}
.schaufenster-kachel{
  flex:0 0 clamp(150px, 22vw, 220px);
  aspect-ratio:4/5;
  overflow:hidden;
  border-radius:var(--radius);
  background:var(--sand);
  scroll-snap-align:start;
}
.schaufenster-kachel img{
  width:100%; height:100%; object-fit:cover; display:block;
  cursor:zoom-in;
  transition:transform .25s ease;
}
.schaufenster-kachel:hover img{transform:scale(1.05);}

.karussell-btn{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:42px; height:42px;
  border-radius:999px;
  background:var(--paper-raised);
  border:1.5px solid var(--line);
  color:var(--ink);
  font-size:22px;
  line-height:1;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  box-shadow:0 3px 10px rgba(0,0,0,.1);
  z-index:2;
}
.karussell-btn:hover, .karussell-btn:focus-visible{border-color:var(--green-dark); color:var(--green-dark);}
.karussell-btn.links{left:-14px;}
.karussell-btn.rechts{right:-14px;}
@media (max-width:640px){
  .karussell-btn{width:36px; height:36px; font-size:19px;}
  .karussell-btn.links{left:-8px;}
  .karussell-btn.rechts{right:-8px;}
}

.foto-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
  gap:10px;
  margin-top:26px;
}
.foto-kachel{
  position:relative;
  background:var(--paper-raised);
  border:1px solid var(--line);
  border-radius:var(--radius);
  overflow:hidden;
  transition:box-shadow .15s ease;
}
.foto-kachel.aktiv{box-shadow:0 0 0 3px var(--green-dark);}
.foto-kachel .bild-flaeche{
  position:relative;
  aspect-ratio:1/1;
  background:#e7e3d6;
  overflow:hidden;
}
.foto-kachel img{
  width:100%; height:100%; object-fit:cover; display:block;
  cursor:zoom-in;
  transition:transform .25s ease;
}
.foto-kachel:hover img{transform:scale(1.04);}
.foto-kachel .nr{
  position:absolute; top:6px; left:6px;
  max-width:calc(100% - 16px);
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  background:rgba(18,20,15,.78);
  color:#fff;
  font-family:"Space Mono",ui-monospace,monospace;
  font-size:11px;
  padding:2px 7px;
  border-radius:3px;
  pointer-events:none;
}
.foto-kachel .lizenz-wahl{
  display:block;
  width:100%;
  border:none;
  border-top:2px dashed var(--green-dark);
  background:var(--paper-raised);
  font-family:"Space Mono",ui-monospace,monospace;
  font-weight:700;
  font-size:12px;
  letter-spacing:.02em;
  padding:10px;
  color:var(--ink);
  cursor:pointer;
  text-align:center;
  text-align-last:center;
}
.foto-kachel .lizenz-wahl:focus-visible{outline:2px solid var(--green-dark);}
.foto-kachel.aktiv .lizenz-wahl{background:var(--green-glow);}

.leer-hinweis{
  margin-top:40px;
  padding:26px;
  border:1px dashed var(--line);
  border-radius:var(--radius);
  color:#5b5b52;
  background:var(--paper-raised);
}

/* Warenkorb-Seite */
.wk-pruefung{margin-top:22px;}
.wk-pruefung h3{
  font-family:"Oswald",Arial,sans-serif;
  text-transform:uppercase;
  font-size:15px;
  color:var(--green-dark);
  margin:0 0 10px;
}
.wk-liste{display:flex; flex-direction:column; gap:8px;}
.wk-item{
  display:flex;
  align-items:center;
  gap:14px;
  background:var(--paper-raised);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:10px 14px;
}
.wk-item img{
  width:56px; height:56px; object-fit:cover;
  border-radius:8px; flex:none;
  background:var(--sand);
}
.wk-item-info{flex:1; font-size:14px;}
.wk-item-info strong{font-family:"Space Mono",ui-monospace,monospace;}
.wk-entfernen{
  font-family:"Source Sans 3",Arial,sans-serif;
  font-size:13px;
  background:none;
  border:1px solid var(--line);
  border-radius:999px;
  padding:6px 14px;
  cursor:pointer;
  color:#8a3b2a;
}
.wk-entfernen:hover{background:#f6ece9; border-color:#d9a99a;}
.wk-leeren{
  display:block;
  margin:18px auto 0;
  background:none;
  border:none;
  color:#6b6b60;
  text-decoration:underline;
  font-size:13px;
  cursor:pointer;
}

/* Bestellleiste */
.bestellleiste{
  position:sticky;
  bottom:0;
  margin-top:26px;
  background:var(--paper-raised);
  color:var(--ink);
  border:2px solid var(--green-dark);
  border-radius:var(--radius);
  padding:16px 20px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
  box-shadow:0 -4px 20px rgba(0,0,0,.08);
}
.bestellleiste .anzahl{font-family:"Oswald",Arial,sans-serif; text-transform:uppercase; font-size:14px;}
.bestellleiste .anzahl strong{color:var(--green-dark); font-size:18px;}
.bestellleiste .summe{font-family:"Space Mono",ui-monospace,monospace; font-weight:700; font-size:22px; color:var(--ink);}
.btn{
  font-family:"Oswald",Arial,sans-serif;
  text-transform:uppercase;
  letter-spacing:.05em;
  background:var(--green);
  color:var(--ink);
  border:2px solid var(--ink);
  border-radius:var(--radius);
  padding:11px 26px;
  cursor:pointer;
  text-decoration:none;
  display:inline-block;
  font-size:15px;
  transition:transform .12s ease;
}
.btn[disabled]{opacity:.4; cursor:not-allowed;}
.btn:hover:not([disabled]){background:var(--green-dark); color:#fff; transform:translateY(-2px);}

/* Lightbox */
.lightbox{
  position:fixed; inset:0;
  background:rgba(15,17,12,.94);
  display:none;
  align-items:center;
  justify-content:center;
  z-index:50;
  padding:30px;
}
.lightbox.offen{display:flex;}
.lightbox .schliessen{
  position:absolute; top:18px; right:22px;
  background:none; border:none; color:#fff;
  font-size:34px; line-height:1; cursor:pointer;
  z-index:3;
}

/* Bild, Bildnummer und Lizenzauswahl als ein zusammenhängender Block —
   dieselbe Ticket-/Scoreboard-Sprache wie der Rest der Seite. */
.lb-inhalt{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:14px;
  max-width:100%;
  max-height:100%;
}
.lightbox .lb-nr{
  display:inline-block;
  font-family:"Space Mono",ui-monospace,monospace;
  font-weight:700;
  font-size:14px;
  letter-spacing:.04em;
  color:var(--ink);
  background:var(--green);
  border:1.5px dashed rgba(18,20,15,.4);
  border-radius:4px;
  padding:6px 14px;
  transform:rotate(-1.5deg);
}
.lightbox img{
  max-width:100%;
  max-height:min(66vh, 620px);
  box-shadow:0 10px 40px rgba(0,0,0,.5);
  border-radius:3px;
  display:block;
}
.lb-lizenz-wahl{
  font-family:"Space Mono",ui-monospace,monospace;
  font-size:15px;
  font-weight:700;
  color:var(--ink);
  background:var(--paper-raised);
  border:2px dashed var(--green-dark);
  border-radius:8px;
  padding:10px 18px;
  cursor:pointer;
  max-width:100%;
  text-align:center;
  text-align-last:center;
}
.lb-lizenz-wahl:focus-visible{outline:2px solid var(--green);}
@media (max-width:640px){
  .lb-lizenz-wahl{font-size:13px; padding:9px 14px;}
  .lightbox img{max-height:56vh;}
}

.lightbox .lb-nav{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:52px; height:52px;
  border-radius:999px;
  background:rgba(255,255,255,.1);
  border:1.5px solid rgba(255,255,255,.35);
  color:#fff;
  font-size:28px;
  line-height:1;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  z-index:3;
}
.lightbox .lb-nav:hover, .lightbox .lb-nav:focus-visible{background:rgba(255,255,255,.22); border-color:#fff;}
.lightbox .lb-prev{left:16px;}
.lightbox .lb-next{right:16px;}
@media (max-width:640px){
  .lightbox .lb-nav{width:42px; height:42px; font-size:22px;}
  .lightbox .lb-prev{left:6px;}
  .lightbox .lb-next{right:6px;}
}

footer{
  border-top:1px solid var(--line);
  margin-top:60px;
  padding:20px 0 40px;
  color:#5b5b52;
  font-size:13px;
}
footer .impressum{
  margin-top:4px;
  font-size:12px;
  color:#8a8a7c;
}
footer .impressum a{color:#8a8a7c; text-decoration:underline;}

/* Teilen-Leiste (Turnierseite) */
.teilen-leiste{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  margin-top:22px;
}
.teilen-label{
  font-family:"Space Mono",ui-monospace,monospace;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:#8a8a7c;
}
.teilen-btn{
  display:inline-flex;
  align-items:center;
  gap:7px;
  font-family:"Source Sans 3",Arial,sans-serif;
  font-size:14px;
  color:var(--ink);
  background:var(--paper-raised);
  border:1.5px dashed var(--green-dark);
  border-radius:999px;
  padding:7px 16px 7px 12px;
  cursor:pointer;
  text-decoration:none;
  transition:background .15s ease;
}
.teilen-btn:hover, .teilen-btn:focus-visible{background:var(--sand);}
.teilen-btn svg{width:16px; height:16px; flex:none;}
.teilen-hinweis{margin-top:8px; font-size:12px; color:#8a8a7c;}

footer .social{
  margin-top:14px;
  display:flex;
  align-items:center;
  gap:14px;
}
footer .social .social-label{
  font-family:"Space Mono",ui-monospace,monospace;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:#8a8a7c;
}
footer .social a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:34px; height:34px;
  border:1.5px solid var(--line);
  border-radius:999px;
  color:#5b5b52;
  transition:border-color .15s ease, color .15s ease;
}
footer .social a:hover, footer .social a:focus-visible{
  border-color:var(--green-dark);
  color:var(--green-dark);
}
footer .social svg{width:17px; height:17px; display:block;}

@media (max-width:600px){
  .site-header .claim{display:none;}
  .foto-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));}
}
