/* ================================================================
   FSV Großpösna 1990 e.V. — Marken-CSS (Design System)
   Blau #232C96 · Gelb #FFE100 · Rot #DC1E2E · Pitch #3F8B32
   Type: Barlow / Barlow Condensed / Barlow Semi Condensed
   ================================================================ */

:root{
  --fsv-blue:#232C96;
  --fsv-blue-700:#1b2277;
  --fsv-ink:#14163A;
  --fsv-ink-deep:#111653;
  --fsv-yellow:#FFE100;
  --fsv-yellow-600:#e6cb00;
  --fsv-red:#DC1E2E;
  --fsv-green:#3F8B32;
  --fsv-paper:#F7F8FB;
  --fsv-paper-2:#EEF0F6;
  --fsv-body:#3A3E63;
  --fsv-muted:#6B6F8F;
  --fsv-line:#E2E5F0;
  --fsv-radius-md:12px;
  --fsv-radius-sm:8px;
  --fsv-shadow-sm:0 1px 2px rgba(20,22,58,.06),0 4px 14px rgba(20,22,58,.07);
  --fsv-shadow-lg:0 6px 28px rgba(20,22,58,.14);
  --fsv-ease:cubic-bezier(.2,.7,.3,1);
  --fsv-stripe:repeating-linear-gradient(90deg,var(--fsv-blue) 0 22px,var(--fsv-yellow) 22px 44px);
}

body{font-family:'Barlow',system-ui,sans-serif;color:var(--fsv-body);background:var(--fsv-paper);}
h1,h2,h3{font-family:'Barlow Condensed','Barlow',sans-serif;font-weight:800;text-transform:uppercase;line-height:1;letter-spacing:-.01em;color:var(--fsv-ink);}
h1{font-size:clamp(44px,6vw,82px);}
h2{font-size:clamp(32px,4vw,52px);}
h4,h5{font-family:'Barlow Semi Condensed',sans-serif;font-weight:700;color:var(--fsv-ink);}
a{color:var(--fsv-blue);}
a:hover{color:var(--fsv-blue-700);}

/* ---------- Kicker + Section Heading ---------- */
.fsv-kicker{font-family:'Barlow Semi Condensed',sans-serif;font-weight:700;font-size:14px;text-transform:uppercase;letter-spacing:.16em;color:var(--fsv-blue);display:flex;align-items:center;gap:10px;margin:0 0 10px;}
.fsv-kicker:before{content:"";width:26px;height:3px;background:var(--fsv-yellow);flex:none;}
.fsv-on-dark .fsv-kicker,.fsv-hero .fsv-kicker{color:var(--fsv-yellow);}
.fsv-on-dark h1,.fsv-on-dark h2,.fsv-hero h1,.fsv-hero h2{color:#fff;}
.fsv-hl{color:var(--fsv-yellow);}
.fsv-lead{font-size:20px;line-height:1.45;}
.fsv-hero .fsv-lead{color:rgba(255,255,255,.9);}

/* ---------- Buttons (Elementor-Buttons mit diesen Klassen) ---------- */
.fsv-btn .elementor-button,a.fsv-btn{font-family:'Barlow Semi Condensed',sans-serif;font-weight:700;text-transform:uppercase;letter-spacing:.06em;border-radius:var(--fsv-radius-sm);border:2px solid transparent;transition:background .15s var(--fsv-ease),transform .12s var(--fsv-ease);}
.fsv-btn--accent .elementor-button,a.fsv-btn--accent{background:var(--fsv-yellow);color:var(--fsv-ink);border-color:var(--fsv-yellow);}
.fsv-btn--accent .elementor-button:hover,a.fsv-btn--accent:hover{background:var(--fsv-yellow-600);border-color:var(--fsv-yellow-600);color:var(--fsv-ink);}
.fsv-btn--primary .elementor-button,a.fsv-btn--primary{background:var(--fsv-blue);color:#fff;border-color:var(--fsv-blue);}
.fsv-btn--primary .elementor-button:hover,a.fsv-btn--primary:hover{background:var(--fsv-blue-700);border-color:var(--fsv-blue-700);}
.fsv-btn--secondary .elementor-button,a.fsv-btn--secondary{background:rgba(255,255,255,.12);color:#fff;border-color:rgba(255,255,255,.55);}
.fsv-btn--secondary .elementor-button:hover,a.fsv-btn--secondary:hover{background:rgba(255,255,255,.2);}
.fsv-btn .elementor-button:active,a.fsv-btn:active{transform:translateY(1px);}

/* ---------- Header ---------- */
.fsv-header{background:var(--fsv-blue);border-bottom:3px solid var(--fsv-yellow);}
.fsv-header .elementor-nav-menu a,.fsv-header a{color:rgba(255,255,255,.86);font-family:'Barlow Semi Condensed',sans-serif;font-weight:700;text-transform:uppercase;letter-spacing:.04em;font-size:14px;}
.fsv-header .elementor-nav-menu a:hover{color:#fff;}
.fsv-header .elementor-nav-menu .current-menu-item a,.fsv-header .elementor-item-active{background:var(--fsv-yellow)!important;color:var(--fsv-blue)!important;border-radius:var(--fsv-radius-sm);}

/* ---------- Hero über Foto ---------- */
.fsv-hero{position:relative;min-height:500px;display:flex;align-items:center;background-position:center 30%;background-size:cover;overflow:hidden;}
.fsv-hero>.elementor-background-overlay,.fsv-hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(17,22,83,.92) 0%,rgba(17,22,83,.7) 45%,rgba(17,22,83,.25) 100%);}
.fsv-hero>.e-con-inner,.fsv-hero>.elementor-container,.fsv-hero>.elementor-element{position:relative;z-index:1;}
.fsv-hero h1{text-shadow:0 2px 18px rgba(0,0,0,.28);}

/* ---------- Sections ---------- */
.fsv-section{padding:64px 0;}
.fsv-section--alt{background:var(--fsv-paper-2);}
.fsv-section--dark{background:var(--fsv-ink-deep);color:rgba(255,255,255,.8);}

/* ---------- Grids ---------- */
.fsv-grid{display:grid;gap:18px;}
.fsv-grid--matches{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));}
.fsv-grid--news{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));}
.fsv-grid--teams{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));}

/* ---------- Card ---------- */
.fsv-card{display:block;background:#fff;border:1px solid var(--fsv-line);border-radius:var(--fsv-radius-md);box-shadow:var(--fsv-shadow-sm);overflow:hidden;text-decoration:none;color:inherit;transition:transform .15s var(--fsv-ease),box-shadow .15s var(--fsv-ease);}
.fsv-card:hover{transform:translateY(-2px);box-shadow:var(--fsv-shadow-lg);}
.fsv-card--accent{border-left:4px solid var(--fsv-yellow);}
.fsv-card__media img{display:block;width:100%;height:auto;}
.fsv-card__body{padding:26px 26px 28px;}
.fsv-card__title{margin:10px 0 4px;font-size:17px;line-height:1.2;}
.fsv-card__text{margin:0;font-size:14px;line-height:1.5;color:var(--fsv-muted);}

/* ---------- Badge ---------- */
.fsv-badge{display:inline-block;padding:3px 10px;border-radius:999px;font-family:'Barlow Semi Condensed',sans-serif;font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.08em;}
.fsv-badge--yellow{background:var(--fsv-yellow);color:var(--fsv-ink);}
.fsv-badge--blue{background:rgba(35,44,150,.1);color:var(--fsv-blue);}
.fsv-badge--green{background:rgba(63,139,50,.12);color:var(--fsv-green);}
.fsv-badge--finished{background:rgba(35,44,150,.1);color:var(--fsv-blue);}
.fsv-badge--scheduled{background:var(--fsv-yellow);color:var(--fsv-ink);}
.fsv-badge--live{background:var(--fsv-red);color:#fff;}

/* ---------- Spielkarte ---------- */
.fsv-match{background:#fff;border:1px solid var(--fsv-line);border-radius:var(--fsv-radius-md);box-shadow:var(--fsv-shadow-sm);padding:24px 26px;transition:transform .15s var(--fsv-ease),box-shadow .15s var(--fsv-ease);}
.fsv-match:hover{transform:translateY(-2px);box-shadow:var(--fsv-shadow-lg);}
.fsv-match__top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;}
.fsv-match__comp{font-family:'Barlow Semi Condensed',sans-serif;font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--fsv-muted);}
.fsv-match__teams{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;}
.fsv-match__team{font-family:'Barlow Semi Condensed',sans-serif;font-weight:700;font-size:15px;color:var(--fsv-ink);line-height:1.15;}
.fsv-match__team--away{text-align:right;}
.fsv-match__score{font-family:'Barlow Condensed',sans-serif;font-weight:800;font-size:26px;color:var(--fsv-blue);white-space:nowrap;}
.fsv-match--scheduled .fsv-match__score{font-size:18px;color:var(--fsv-ink);}
.fsv-match__venue{margin-top:12px;padding-top:10px;border-top:1px solid var(--fsv-line);font-size:12.5px;color:var(--fsv-muted);}

/* ---------- Mannschafts-Tile ---------- */
.fsv-team{display:flex;flex-direction:column;gap:4px;padding:28px 26px;background:#fff;border:1px solid var(--fsv-line);border-radius:var(--fsv-radius-md);box-shadow:var(--fsv-shadow-sm);text-decoration:none;transition:transform .15s var(--fsv-ease),box-shadow .15s var(--fsv-ease);}
.fsv-team:hover{transform:translateY(-2px);box-shadow:var(--fsv-shadow-lg);}
.fsv-team__name{font-family:'Barlow Condensed',sans-serif;font-weight:800;font-size:24px;text-transform:uppercase;color:var(--fsv-ink);}
.fsv-team__meta{font-size:13px;color:var(--fsv-muted);}

/* ---------- Checkliste ---------- */
.fsv-checks{list-style:none;margin:0;padding:0;display:grid;gap:10px;}
.fsv-checks li{display:flex;gap:12px;align-items:flex-start;font-size:16px;}
.fsv-checks li:before{content:"✓";flex:none;width:22px;height:22px;border-radius:999px;background:var(--fsv-yellow);color:var(--fsv-ink);font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center;}

/* ---------- Footer ---------- */
.fsv-footer{background:var(--fsv-ink-deep);color:rgba(255,255,255,.75);}
.fsv-footer a{color:rgba(255,255,255,.75);text-decoration:none;}
.fsv-footer a:hover{color:var(--fsv-yellow);}
.fsv-stripe{height:6px;background:var(--fsv-stripe);}

/* ---------- Formular (Elementor Pro Form) ---------- */
.fsv-form .elementor-field-group>label{font-family:'Barlow Semi Condensed',sans-serif;font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--fsv-ink);}
.fsv-form .elementor-field-textual{border:1px solid var(--fsv-line)!important;border-radius:var(--fsv-radius-sm)!important;background:#fff!important;}
.fsv-form .elementor-field-textual:focus{border-color:var(--fsv-blue)!important;box-shadow:0 0 0 3px rgba(35,44,150,.12)!important;}

.fsv-empty{padding:22px;border:1px dashed var(--fsv-line);border-radius:var(--fsv-radius-md);background:#fff;color:var(--fsv-muted);font-size:15px;}

@media (max-width:767px){
  .fsv-hero{min-height:420px;}
  .fsv-section{padding:44px 0;}
}

/* ---------- Sponsoren ---------- */
.fsv-sponsoren{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));align-items:center;}
.fsv-sponsor{display:flex;align-items:center;justify-content:center;min-height:110px;padding:18px 22px;background:#fff;border:1px solid var(--fsv-line);border-radius:var(--fsv-radius-md);box-shadow:var(--fsv-shadow-sm);transition:transform .15s var(--fsv-ease),box-shadow .15s var(--fsv-ease);}
a.fsv-sponsor:hover{transform:translateY(-2px);box-shadow:var(--fsv-shadow-lg);}
/* Logos kommen in sehr unterschiedlichen Seitenverhaeltnissen — begrenzte
   Hoehe statt fester Breite, damit ein Querformat nicht alles ueberragt. */
.fsv-sponsor img{max-width:100%;max-height:70px;width:auto;height:auto;object-fit:contain;}
.fsv-sponsor__name{font-family:'Barlow Semi Condensed',sans-serif;font-weight:700;font-size:16px;text-align:center;color:var(--fsv-ink);}

/* ---------- Mannschaftsfoto ---------- */
.fsv-mannschaftsfoto{margin:0;border-radius:var(--fsv-radius-md);overflow:hidden;box-shadow:var(--fsv-shadow-sm);}
.fsv-mannschaftsfoto img{display:block;width:100%;height:auto;}

/* ---------- Abschnitts-Ueberschriften aus fsv-core ---------- */
.fsv-abschnitt__titel{font-family:'Barlow Condensed','Barlow',sans-serif;font-weight:800;text-transform:uppercase;line-height:1;color:var(--fsv-ink);font-size:clamp(32px,4vw,52px);margin:0 0 24px;}
h3.fsv-abschnitt__titel{font-size:clamp(22px,2.4vw,30px);}
.fsv-on-dark .fsv-abschnitt__titel{color:#fff;}

/* ---------- Kennzahlen ---------- */
.fsv-zahlen{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:26px;margin-top:34px;}
.fsv-zahl{display:flex;flex-direction:column;gap:6px;}
.fsv-zahl__wert{font-family:'Barlow Condensed',sans-serif;font-weight:800;font-size:clamp(34px,4vw,52px);line-height:1;color:var(--fsv-yellow);}
.fsv-zahl__text{font-size:14px;line-height:1.35;}
.fsv-zahlen--klein{margin-top:18px;gap:18px;}
.fsv-zahlen--klein .fsv-zahl__wert{font-size:28px;color:var(--fsv-blue);}
.fsv-zahlen--klein .fsv-zahl__text{color:var(--fsv-muted);}

/* ---------- Sponsorenpakete ---------- */
.fsv-grid--pakete{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:22px;margin-top:28px;}
.fsv-paket{display:flex;flex-direction:column;gap:12px;background:#fff;border:1px solid var(--fsv-line);border-radius:var(--fsv-radius-md);box-shadow:var(--fsv-shadow-sm);padding:26px 24px 28px;}
.fsv-paket--hervor{border-color:var(--fsv-yellow);border-width:2px;box-shadow:var(--fsv-shadow-lg);}
.fsv-paket .fsv-badge{align-self:flex-start;}
.fsv-paket__preis{font-family:'Barlow Condensed',sans-serif;font-weight:800;font-size:30px;line-height:1;color:var(--fsv-ink);margin:2px 0 0;}
.fsv-paket__merksatz{margin:auto 0 0;padding-top:14px;border-top:1px solid var(--fsv-line);font-family:'Barlow Semi Condensed',sans-serif;font-weight:700;font-size:15px;color:var(--fsv-blue);}
.fsv-paket .fsv-checks li{font-size:15px;}

/* ---------- Hero-Aktionen ---------- */
.fsv-hero__aktionen{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px;}
.fsv-hero__aktionen a{display:inline-block;padding:14px 26px;text-decoration:none;}
a.fsv-btn{display:inline-block;padding:14px 26px;text-decoration:none;}
.fsv-hero h1{margin-bottom:18px;}

/* Elementor setzt auf Containern eine eigene Textfarbe — auf dunklem Grund
   muessen Fliesstext und Listen mitziehen, sonst steht Blau auf Blau. */
.fsv-on-dark,.fsv-on-dark p,.fsv-on-dark li,.fsv-on-dark .fsv-lead{color:rgba(255,255,255,.85);}
.fsv-on-dark a:not(.fsv-btn){color:var(--fsv-yellow);}

/* Hero: Text muss ueber dem Foto lesbar bleiben, auch bei hellen Bildern. */
.fsv-hero{position:relative;}
.fsv-hero:before{background:linear-gradient(90deg,rgba(17,22,83,.95) 0%,rgba(17,22,83,.85) 50%,rgba(17,22,83,.55) 100%);}
.fsv-hero>.e-con-inner{position:relative;z-index:1;}
.fsv-hero .fsv-kicker,.fsv-hero h1,.fsv-hero .fsv-lead,.fsv-hero__aktionen{max-width:720px;}
.fsv-hero .fsv-lead{max-width:620px;}

/* ---------- Zweispaltige Reihen ---------- */
/* Elementor steuert die Container-Richtung ueber eigene Custom Properties;
   eine direkte flex-direction-Regel verliert gegen deren Spezifitaet. */
.fsv-reihe{--flex-direction:row;--flex-wrap:wrap;--align-items:flex-start;--gap:34px;--row-gap:34px;--column-gap:34px;}
.fsv-reihe > .e-con-inner{align-items:flex-start;}
.fsv-reihe .fsv-spalte{flex:1 1 320px;min-width:0;}
.fsv-reihe .fsv-spalte--55{flex:1.2 1 340px;}
.fsv-reihe .fsv-spalte--45{flex:1 1 300px;}
@media (max-width:860px){.fsv-reihe > .e-con-inner{gap:26px;}}

/* Mehrere Sponsorengruppen in einem Abschnitt brauchen Luft dazwischen. */
.fsv-sponsoren + .fsv-abschnitt__titel{margin-top:52px;}

/* Legende der Platzkuerzel unter den Trainingszeiten. */
.fsv-legende{margin:16px 0 0;font-size:13px;line-height:1.5;color:var(--fsv-muted);}

/* ---------- Trainingsplan ---------- */
.fsv-tabelle{overflow-x:auto;}
.fsv-trainingsplan{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--fsv-line);border-radius:var(--fsv-radius-md);overflow:hidden;}
.fsv-trainingsplan th,.fsv-trainingsplan td{padding:16px 20px;text-align:left;vertical-align:top;border-bottom:1px solid var(--fsv-line);}
.fsv-trainingsplan tr:last-child th,.fsv-trainingsplan tr:last-child td{border-bottom:0;}
.fsv-trainingsplan th{font-family:'Barlow Condensed',sans-serif;font-weight:800;font-size:19px;text-transform:uppercase;color:var(--fsv-ink);white-space:nowrap;width:1%;}
.fsv-trainingsplan th a{text-decoration:none;color:inherit;}
.fsv-trainingsplan th a:hover{color:var(--fsv-blue);}
.fsv-trainingsplan ul{margin:0;padding:0;list-style:none;display:grid;gap:4px;}
.fsv-trainingsplan li{font-size:15px;color:var(--fsv-body);}
@media (max-width:700px){.fsv-trainingsplan th{white-space:normal;}}

/* Mannschaftskopf: ohne Foto soll die Textspalte die ganze Breite bekommen,
   statt neben einer leeren Spalte zu stehen. */
.fsv-spalte--foto{flex:1.2 1 340px;}
.fsv-spalte--foto:not(:has(img)){display:none;}
.fsv-reihe:not(:has(.fsv-spalte--foto img)) .fsv-spalte--45{flex:1 1 100%;}
/* Lange Mannschaftsnamen wie „G-Junioren (SpG Fuchshain/Großpösna)". */
.fsv-mannschaft-kopf h1{font-size:clamp(34px,4.4vw,64px);text-wrap:balance;}

/* ---------- Dokumente ---------- */
.fsv-doks{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;}
.fsv-dok{display:flex;align-items:center;gap:16px;padding:18px 20px;background:#fff;border:1px solid var(--fsv-line);border-radius:var(--fsv-radius-md);box-shadow:var(--fsv-shadow-sm);text-decoration:none;color:inherit;transition:transform .15s var(--fsv-ease),box-shadow .15s var(--fsv-ease);}
.fsv-dok:hover{transform:translateY(-2px);box-shadow:var(--fsv-shadow-lg);}
.fsv-dok__icon{flex:none;width:46px;height:46px;border-radius:var(--fsv-radius-sm);background:var(--fsv-blue);color:#fff;font-family:'Barlow Semi Condensed',sans-serif;font-weight:700;font-size:13px;letter-spacing:.04em;display:flex;align-items:center;justify-content:center;}
.fsv-dok__text{display:flex;flex-direction:column;gap:3px;min-width:0;}
.fsv-dok__titel{font-family:'Barlow Semi Condensed',sans-serif;font-weight:700;font-size:17px;line-height:1.2;color:var(--fsv-ink);}
.fsv-dok__info{font-size:13px;color:var(--fsv-muted);line-height:1.35;}

/* Pokale und Zusatzwettbewerbe unter der Liga. Leerer Absatz faellt weg. */
.fsv-wettbewerbe{margin:6px 0 0;font-size:15px;color:var(--fsv-muted);}
.fsv-wettbewerbe:empty{display:none;}

/* ================================================================
   Fußballchallenge
   Die Stufen unterscheiden sich über Name, Ziffer und Pokal — nicht
   über eigene Farbwelten, die mit Vereinsblau und -gelb kollidieren.
   ================================================================ */
.fsv-challenge-kopf{display:flex;align-items:center;gap:28px;flex-wrap:wrap;}
.fsv-challenge-kopf__wappen{width:96px;height:auto;flex:none;}
.fsv-text{max-width:62ch;}
.fsv-text p{margin:0 0 16px;font-size:17px;line-height:1.65;}
.fsv-text p:last-child{margin-bottom:0;}

/* ---------- Stufenkarten ---------- */
.fsv-stufen{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));}
.fsv-stufe{display:flex;flex-direction:column;gap:10px;padding:28px 24px 26px;background:#fff;border:1px solid var(--fsv-line);border-radius:var(--fsv-radius-md);box-shadow:var(--fsv-shadow-sm);}
.fsv-stufe__pokal{font-size:30px;line-height:1;}
.fsv-stufe__name{font-family:'Barlow Condensed',sans-serif;font-weight:800;font-size:28px;text-transform:uppercase;margin:0;color:var(--fsv-ink);}
.fsv-stufe__text{margin:0;font-size:15px;color:var(--fsv-muted);flex:1;}
.fsv-stufe .fsv-btn{align-self:flex-start;margin-top:8px;}
.fsv-stufe--offen{background:var(--fsv-paper);border-style:dashed;}
.fsv-stufe__hinweis{align-self:flex-start;margin-top:8px;padding:8px 14px;border-radius:var(--fsv-radius-sm);background:var(--fsv-paper-2);color:var(--fsv-muted);font-family:'Barlow Semi Condensed',sans-serif;font-weight:700;font-size:14px;text-transform:uppercase;letter-spacing:.06em;}

/* ---------- Ablauf ---------- */
.fsv-schritte{list-style:none;margin:0;padding:0;display:grid;gap:22px;max-width:70ch;}
.fsv-schritt{display:flex;gap:18px;align-items:flex-start;}
.fsv-schritt__nr{flex:none;width:42px;height:42px;border-radius:999px;background:var(--fsv-blue);color:#fff;font-family:'Barlow Condensed',sans-serif;font-weight:800;font-size:21px;display:flex;align-items:center;justify-content:center;}
.fsv-schritt__titel{margin:2px 0 4px;font-size:20px;}
.fsv-schritt p{margin:0;font-size:16px;line-height:1.55;}

/* ---------- Aufgabenliste ---------- */
.fsv-aufgaben{display:grid;gap:14px;max-width:74ch;}
.fsv-aufgabe{display:flex;gap:18px;align-items:flex-start;padding:18px 20px;background:#fff;border:1px solid var(--fsv-line);border-radius:var(--fsv-radius-md);box-shadow:var(--fsv-shadow-sm);}
.fsv-aufgabe__nr{flex:none;width:38px;height:38px;border-radius:var(--fsv-radius-sm);background:var(--fsv-yellow);color:var(--fsv-ink);font-family:'Barlow Condensed',sans-serif;font-weight:800;font-size:19px;display:flex;align-items:center;justify-content:center;}
.fsv-aufgabe__inhalt{min-width:0;display:flex;flex-direction:column;gap:6px;}
.fsv-aufgabe__titel{margin:0;font-size:19px;line-height:1.2;}
.fsv-aufgabe__text{margin:0;font-size:15px;color:var(--fsv-muted);}
/* Links in Aufgaben mit dem Daumen treffbar (mindestens 44 px). */
.fsv-aufgabe .fsv-btn,.fsv-aufgabe .elementor-button{min-height:44px;display:inline-flex;align-items:center;}

.fsv-hinweis-kasten{margin:0 0 22px;padding:16px 20px;border-left:4px solid var(--fsv-yellow);background:#fcf9e8;font-size:16px;border-radius:0 var(--fsv-radius-sm) var(--fsv-radius-sm) 0;max-width:74ch;}
.fsv-doks-hinweis{margin:16px 0 0;font-size:15px;color:var(--fsv-muted);}
.fsv-eltern{max-width:70ch;}
.fsv-eltern p{margin:0 0 14px;font-size:16px;line-height:1.6;}

@media (max-width:600px){
	.fsv-challenge-kopf{gap:18px;}
	.fsv-challenge-kopf__wappen{width:64px;}
	.fsv-aufgabe{padding:16px;gap:14px;}
	.fsv-schritt{gap:14px;}
}

/* ---------- Druckansicht der Stufenseiten ---------- */
@media print{
	.fsv-header,.elementor-location-header,.elementor-location-footer,.fsv-footer,
	.fsv-btn,.elementor-button-wrapper,#BorlabsCookieBox,#BorlabsCookieBoxWrap{display:none !important;}
	body{background:#fff;color:#000;font-size:11pt;}
	.fsv-aufgabe,.fsv-stufe{box-shadow:none;border:1px solid #999;break-inside:avoid;}
	.fsv-aufgabe__nr,.fsv-schritt__nr{background:#fff !important;color:#000 !important;border:1px solid #000;}
	/* Links ausschreiben — auf Papier ist ein Linktext ohne Ziel wertlos. */
	.fsv-text a[href^="http"]:after,.fsv-aufgabe a[href^="http"]:after{content:" (" attr(href) ")";font-size:9pt;word-break:break-all;}
	.fsv-section--dark,.fsv-on-dark{background:#fff !important;color:#000 !important;}
	.fsv-on-dark h1,.fsv-on-dark h2,.fsv-on-dark h3,.fsv-on-dark p{color:#000 !important;}
}

/* ================================================================
   Kopf- und Fußbereich
   ================================================================ */

/* ---------- Schmale Leiste über der Navigation ---------- */
/* Der Container ist voll breit und hat deshalb kein .e-con-inner — die
   Innenbreite muss am Container selbst begrenzt werden. */
.fsv-topbar{padding-inline:20px !important;}
.fsv-topbar__inner{max-width:1200px;margin-inline:auto;width:100%;}
.fsv-topbar__inner{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:38px;}
.fsv-topbar__claim{margin:0;font-family:'Barlow Semi Condensed',sans-serif;font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:rgba(255,255,255,.75);}
.fsv-topbar__claim strong{color:var(--fsv-yellow);font-weight:700;}
.fsv-social{display:flex;gap:6px;margin:0;padding:0;list-style:none;}
.fsv-social a{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:999px;color:rgba(255,255,255,.8);transition:background .15s var(--fsv-ease),color .15s var(--fsv-ease);}
.fsv-social a:hover{background:rgba(255,255,255,.12);color:var(--fsv-yellow);}

/* ---------- Wappen und Vereinsname ---------- */
.fsv-kopfleiste > .e-con-inner{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:28px;max-width:1200px;margin-inline:auto;}
.fsv-marke{display:flex;align-items:center;gap:14px;text-decoration:none;flex:none;}
.fsv-marke__wappen{width:72px;height:auto;display:block;transition:transform .15s var(--fsv-ease);}
.fsv-marke:hover .fsv-marke__wappen{transform:scale(1.04);}
.fsv-marke__text{display:flex;flex-direction:column;line-height:1;}
/* Der Vereinsname darf nicht umbrechen — sonst wächst der Kopf um eine Zeile. */
.fsv-marke__name{font-family:'Barlow Condensed',sans-serif;font-weight:800;font-size:25px;text-transform:uppercase;color:var(--fsv-ink);letter-spacing:-.01em;white-space:nowrap;}
.fsv-marke__jahr{font-family:'Barlow Semi Condensed',sans-serif;font-weight:700;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--fsv-blue);margin-top:3px;}

/* Navigation: gelbe Markierung statt blasser Unterstreichung. */
/* Neun Punkte müssen in eine Zeile passen, ohne zu drängen. */
.fsv-kopfleiste .elementor-nav-menu{flex-wrap:nowrap;}
.fsv-kopfleiste .elementor-nav-menu > li > a{font-family:'Barlow Semi Condensed',sans-serif;font-weight:700;font-size:15px;letter-spacing:.02em;text-transform:uppercase;color:var(--fsv-ink);padding:10px 11px;white-space:nowrap;}
.fsv-kopfleiste .elementor-nav-menu > li > a:hover{color:var(--fsv-blue);}
.fsv-kopfleiste .elementor-nav-menu--main .elementor-item.elementor-item-active{color:var(--fsv-blue);}
.fsv-kopfleiste .elementor-nav-menu--main:not(.e--pointer-framed) .elementor-item:before,
.fsv-kopfleiste .elementor-nav-menu--main:not(.e--pointer-framed) .elementor-item:after{background-color:var(--fsv-yellow);height:4px;}

@media (max-width:1280px){
	.fsv-kopfleiste .elementor-nav-menu > li > a{font-size:14px;padding:9px 8px;}
	.fsv-marke__name{font-size:22px;}
	.fsv-marke__wappen{width:56px;}
	.fsv-marke__jahr{font-size:11px;}
}
@media (max-width:640px){
	/* Auf schmalen Displays bleibt nur der Claim — der Vereinsname steht
	   ohnehin direkt darunter am Wappen. */
	.fsv-topbar__verein{display:none;}
	.fsv-topbar__claim{font-size:12px;}
	.fsv-marke__jahr{display:none;}
	.fsv-marke__name{font-size:20px;}
}

/* ---------- Fußbereich ---------- */
.fsv-fuss-bereich > .e-con-inner{max-width:1200px;margin-inline:auto;}
.fsv-fuss{display:grid;grid-template-columns:minmax(240px,1fr) 2fr;gap:56px;align-items:start;}
.fsv-fuss__marke img{width:96px;height:auto;display:block;margin-bottom:18px;}
.fsv-fuss__claim{margin:0 0 14px;font-family:'Barlow Condensed',sans-serif;font-weight:800;font-size:clamp(34px,3.4vw,46px);line-height:.95;text-transform:uppercase;color:#fff;}
.fsv-fuss__text{margin:0;font-size:15px;line-height:1.6;color:rgba(255,255,255,.7);max-width:38ch;}
.fsv-fuss__spalten{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:32px;}
.fsv-fuss__spalte h3{margin:0 0 14px;font-family:'Barlow Semi Condensed',sans-serif;font-weight:700;font-size:14px;letter-spacing:.14em;text-transform:uppercase;color:var(--fsv-yellow);}
.fsv-fuss__spalte ul{list-style:none;margin:0;padding:0;display:grid;gap:9px;}
.fsv-fuss__spalte a{color:rgba(255,255,255,.82);text-decoration:none;font-size:15px;}
.fsv-fuss__spalte a:hover{color:var(--fsv-yellow);}
.fsv-fuss__spalte p{margin:0 0 10px;font-size:15px;line-height:1.55;color:rgba(255,255,255,.82);}

.fsv-fuss-recht > .e-con-inner{max-width:1200px;margin-inline:auto;}
.fsv-fuss__recht{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;}
.fsv-fuss__recht p{margin:0;font-size:13px;color:rgba(255,255,255,.55);}
.fsv-fuss__recht ul{display:flex;gap:20px;list-style:none;margin:0;padding:0;}
.fsv-fuss__recht a{color:rgba(255,255,255,.55);text-decoration:none;font-size:13px;}
.fsv-fuss__recht a:hover{color:var(--fsv-yellow);}

@media (max-width:820px){
	.fsv-fuss{grid-template-columns:1fr;gap:38px;}
	.fsv-fuss__recht{flex-direction:column;align-items:flex-start;gap:10px;}
}


/* ================================================================
   Eine gemeinsame Flucht
   Kopf, Inhalt und Fuß standen auf drei verschiedenen Kanten, weil jeder
   Bereich seinen eigenen seitlichen Abstand mitbrachte. Der Abstand liegt
   jetzt an einer Stelle — am inneren Container — und gilt überall gleich.
   ================================================================ */
:root{--fsv-rail:1200px;--fsv-gutter:24px;}

.elementor-location-header .e-con-boxed > .e-con-inner,
.elementor-location-footer .e-con-boxed > .e-con-inner,
.elementor-location-single .e-con-boxed > .e-con-inner,
.elementor-widget-theme-post-content .e-con-boxed > .e-con-inner,
main .e-con-boxed > .e-con-inner{max-width:var(--fsv-rail);padding-inline:var(--fsv-gutter);}

.fsv-topbar__inner{max-width:var(--fsv-rail);padding-inline:var(--fsv-gutter);box-sizing:border-box;}
.fsv-topbar{padding-inline:0 !important;}

@media (max-width:600px){
	:root{--fsv-gutter:18px;}
}

/* Elementor gibt inneren Containern standardmaessig 10 px seitlich mit — in
   einer Spalte verschiebt das den Text gegen die gemeinsame Flucht. */
.fsv-reihe .fsv-spalte{padding-inline:0;}

/* ---------- Untermenüs ---------- */
.fsv-kopfleiste .elementor-nav-menu .sub-menu{background:#fff;border:1px solid var(--fsv-line);border-top:3px solid var(--fsv-yellow);border-radius:0 0 var(--fsv-radius-md) var(--fsv-radius-md);box-shadow:var(--fsv-shadow-lg);padding:8px 0;min-width:250px;}
.fsv-kopfleiste .elementor-nav-menu .sub-menu li a{font-family:'Barlow',sans-serif;font-weight:500;font-size:15px;text-transform:none;letter-spacing:0;color:var(--fsv-body);padding:10px 20px;line-height:1.3;}
.fsv-kopfleiste .elementor-nav-menu .sub-menu li a:hover,
.fsv-kopfleiste .elementor-nav-menu .sub-menu li a.elementor-item-active{background:var(--fsv-paper);color:var(--fsv-blue);}
/* Der Pfeil soll nicht schwerer wirken als der Menüpunkt selbst. */
.fsv-kopfleiste .elementor-nav-menu .sub-arrow{margin-left:4px;opacity:.55;}
.fsv-kopfleiste .elementor-nav-menu > li > a{padding:10px 13px;}

/* Ausgeklapptes Menü auf dem Handy: Unterpunkte müssen sich als solche
   lesen lassen und mit dem Daumen treffbar bleiben. */

/* Untermenüs ohne JavaScript aufklappen.
   Elementors SmartMenus-Initialisierung greift hier nicht; eine reine
   CSS-Lösung ist ohnehin zuverlässiger — und :focus-within macht die
   Untermenüs zusätzlich mit der Tastatur erreichbar. */
@media (min-width:1025px){
	.fsv-kopfleiste .elementor-nav-menu--main > .elementor-nav-menu > li{position:relative;}
	.fsv-kopfleiste .elementor-nav-menu--main .sub-menu{position:absolute;top:100%;left:0;z-index:120;display:none;}
	.fsv-kopfleiste .elementor-nav-menu--main > .elementor-nav-menu > li:hover > .sub-menu,
	.fsv-kopfleiste .elementor-nav-menu--main > .elementor-nav-menu > li:focus-within > .sub-menu{display:block;}
	/* Die Mannschaftsliste ist lang — zwei Spalten statt einer Kolonne bis zum Seitenende. */
	.fsv-kopfleiste .elementor-nav-menu--main > .elementor-nav-menu > li:nth-child(3) > .sub-menu{columns:2;column-gap:0;min-width:420px;}
	.fsv-kopfleiste .elementor-nav-menu--main > .elementor-nav-menu > li:nth-child(3) > .sub-menu li{break-inside:avoid;}
}

/* Hauptmenü: der Zeigezustand soll blau sein, nicht das Akzentrot des Kits. */
.fsv-kopfleiste .elementor-nav-menu > li > a:hover,
.fsv-kopfleiste .elementor-nav-menu > li > a:focus,
.fsv-kopfleiste .elementor-nav-menu > li:hover > a{color:var(--fsv-blue) !important;}
.fsv-kopfleiste .elementor-nav-menu .sub-menu li a{white-space:normal;}

/* ---------- Ausgeklapptes Menü auf Tablet und Handy ---------- */
.fsv-kopfleiste nav.elementor-nav-menu--dropdown{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;border-top:3px solid var(--fsv-yellow);box-shadow:var(--fsv-shadow-lg);padding:8px 0;max-height:calc(100vh - 140px);overflow-y:auto;z-index:200;}
.fsv-menue-offen nav.elementor-nav-menu--dropdown{display:block;}
.fsv-kopfleiste{position:relative;}
.fsv-kopfleiste nav.elementor-nav-menu--dropdown li{position:relative;}
.fsv-kopfleiste nav.elementor-nav-menu--dropdown a{display:flex;align-items:center;min-height:48px;padding:8px 56px 8px 24px;font-family:'Barlow Semi Condensed',sans-serif;font-weight:700;font-size:16px;text-transform:uppercase;letter-spacing:.03em;color:var(--fsv-ink);border-bottom:1px solid var(--fsv-line);}
.fsv-kopfleiste nav.elementor-nav-menu--dropdown .sub-menu{display:none;background:var(--fsv-paper);}
.fsv-kopfleiste nav.elementor-nav-menu--dropdown .fsv-auf > .sub-menu{display:block;}
.fsv-kopfleiste nav.elementor-nav-menu--dropdown .sub-menu a{padding-left:40px !important;font-family:'Barlow',sans-serif;font-weight:500;font-size:15px;text-transform:none;letter-spacing:0;color:var(--fsv-body);min-height:46px;}
/* Der Aufklapp-Schalter liegt neben dem Link, damit die Elternseite erreichbar bleibt. */
.fsv-untermenue-schalter{position:absolute;top:0;right:0;width:56px;height:48px;border:0;background:none;color:var(--fsv-blue);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.fsv-untermenue-schalter[aria-expanded="true"] span{transform:rotate(180deg);display:inline-block;}
.fsv-kopfleiste .elementor-menu-toggle{display:none;}
@media (max-width:1024px){
	.fsv-kopfleiste .elementor-menu-toggle{display:flex;}
	.fsv-kopfleiste .elementor-nav-menu--main{display:none;}
}

/* Das Menü-Widget ist von Elementor positioniert und wäre sonst der Bezugs-
   punkt für das ausgeklappte Menü — das würde auf Wappenbreite schrumpfen. */
.fsv-kopfleiste .elementor-widget-nav-menu{position:static;}
.fsv-kopfleiste nav.elementor-nav-menu--dropdown{width:100%;}
.fsv-kopfleiste nav.elementor-nav-menu--dropdown ul{background:#fff;margin:0;padding:0;list-style:none;width:100%;}
.fsv-kopfleiste nav.elementor-nav-menu--dropdown li{background:#fff;}
.fsv-kopfleiste nav.elementor-nav-menu--dropdown a{background:transparent;color:var(--fsv-ink);}
.fsv-kopfleiste nav.elementor-nav-menu--dropdown a:hover,
.fsv-kopfleiste nav.elementor-nav-menu--dropdown a.elementor-item-active{background:var(--fsv-paper);color:var(--fsv-blue);}
.fsv-kopfleiste nav.elementor-nav-menu--dropdown .sub-menu li{background:var(--fsv-paper);}

/* Im ausgeklappten Menü übernimmt der eigene Schalter das Aufklappen —
   Elementors Pfeil im Link wäre ein zweites, totes Bedienelement. */
.fsv-kopfleiste nav.elementor-nav-menu--dropdown .sub-arrow{display:none;}
.fsv-untermenue-schalter{background:transparent !important;box-shadow:none;padding:0;border-radius:0;}
.fsv-untermenue-schalter:hover,.fsv-untermenue-schalter:focus{background:var(--fsv-paper-2) !important;color:var(--fsv-blue);}
.fsv-untermenue-schalter:focus-visible{outline:2px solid var(--fsv-blue);outline-offset:-2px;}

/* ---------- Native Elementor-Überschriften ---------- */
/* Die Farbe der Überschriften führt seit 08.09.2026 das Kit: jedes Heading-
   Widget ist ausdrücklich an ein Farb-Token gebunden (siehe
   fsv-core/tools/kit-zusammenfuehren.php). Hier stehen deshalb keine Farben
   mehr — sonst gäbe es wieder zwei Quellen, die sich widersprechen.

   Was hier bleibt: Schriftgrößen, denn die Kit-Typografie kennt keine
   fluiden clamp()-Werte, und das Durchreichen der Marken-Klassen an den
   Titel — die CSS-Klasse sitzt am Wrapper, nicht am Textelement. */
.fsv-kicker .elementor-heading-title,
.fsv-lead .elementor-heading-title,
.fsv-wettbewerbe .elementor-heading-title,
.fsv-legende .elementor-heading-title,
.fsv-topbar__claim .elementor-heading-title,
.fsv-fuss__claim .elementor-heading-title,
.fsv-fuss__text .elementor-heading-title,
.fsv-fuss__spalte-titel .elementor-heading-title,
.fsv-abschnitt__titel .elementor-heading-title{
	font:inherit;letter-spacing:inherit;text-transform:inherit;
	line-height:inherit;margin:0;
}

/* Der Kicker ist selbst das Flex-Element mit dem gelben Balken. */
.fsv-kicker .elementor-heading-title{display:inline;}

/* Ohne Wettbewerb bleibt sonst ein leerer Absatz samt Abstand stehen. */
.fsv-wettbewerbe:has(.elementor-heading-title:empty){display:none;}

/* Kontaktzeilen auf Trainer- und Vorstandskarten: Mail und Telefon werden auf
   dem Handy angetippt, nicht angeklickt. 17 px hohe Textlinks sind dafür zu
   klein — 44 px ist das übliche Mindestmaß. */
.fsv-card__kontakt a{display:inline-flex;align-items:center;min-height:44px;}
@media (min-width:768px){
	/* Am Schreibtisch zeigt der Mauszeiger genau; dort bleibt die Karte kompakt. */
	.fsv-card__kontakt a{min-height:0;display:inline;}
}

/* ---------- Kopf und Fuß als Container ---------- */
/* Die Wrapper, die Grid oder Flex aufspannen, sind seit dem Umbau auf native
   Widgets Elementor-Container. Elementor gibt jedem Container display:flex mit
   der Spezifität (0,1,0) — dieselbe wie eine schlichte Klasse. Deshalb hier
   eine Stufe mehr, sonst gewinnt mal das eine, mal das andere. */
.e-con.fsv-topbar__inner{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:16px;}
.e-con.fsv-fuss{display:grid;grid-template-columns:minmax(240px,1fr) 2fr;gap:56px;align-items:start;}
.e-con.fsv-fuss__spalten{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:32px;}
.e-con.fsv-fuss__spalte{display:block;}
.e-con.fsv-fuss__recht{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;}

/* Container bringen eigene Innenabstände mit; im Fuß stören sie das Raster. */
.e-con.fsv-fuss > .e-con-inner,
.e-con.fsv-fuss__spalten > .e-con-inner,
.e-con.fsv-fuss__marke > .e-con-inner{display:contents;}

@media (max-width:860px){
	.e-con.fsv-fuss{grid-template-columns:1fr;gap:38px;}
	.e-con.fsv-fuss__recht{flex-direction:column;align-items:flex-start;gap:10px;}
}

/* Im Kopf und Fuß liegen die Farben als Weiß mit Alpha auf dunklem Grund — das
   sind keine Kit-Token. Hier führt deshalb brand.css, und der Widget-Titel erbt
   vom Wrapper. Die Stufe .elementor-element schlägt Elementors (0,2,0). */
.elementor-element.fsv-topbar__claim .elementor-heading-title,
.elementor-element.fsv-fuss__claim .elementor-heading-title,
.elementor-element.fsv-fuss__text .elementor-heading-title,
.elementor-element.fsv-fuss__spalte-titel .elementor-heading-title{color:inherit;}

/* Die Spaltenüberschrift trägt ihre Gestaltung jetzt selbst statt über
   .fsv-fuss__spalte h3 — ein Elternteil-Selektor verliert gegen Elementor. */
.fsv-fuss__spalte-titel{
	margin:0 0 14px;font-family:'Barlow Semi Condensed',sans-serif;font-weight:700;
	font-size:14px;letter-spacing:.14em;text-transform:uppercase;color:var(--fsv-yellow);
}
