/* Startseite – Abschnitte nach dem Hero */
.section-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:clamp(32px,4vw,56px)}
.section-head .section-title{margin:0}
.btn-dark{background:var(--surface-100);color:var(--ink);border-color:var(--surface-100)}
.btn-dark:hover{background:var(--surface-300);color:var(--ink)}

/* 01 Verein */
.verein{background:var(--gelb);color:var(--on-gelb);padding:clamp(72px,10vw,160px) 0}
.verein__kicker{color:var(--on-gelb);margin:0 0 32px}
.verein__text{margin:0 0 48px;font-family:var(--font-display);font-weight:800;text-transform:uppercase;line-height:.95;letter-spacing:-.005em;font-size:clamp(36px,5.4vw,84px)}
.verein__text span{transition:opacity .35s ease}
.js .verein__text[data-reveal] span{opacity:.18}
.js .verein__text[data-reveal] span.is-on{opacity:1}

/* 02 Teams */
.teams{background:var(--surface-100);padding:clamp(72px,9vw,128px) 0}
.teams__side{display:flex;flex-wrap:wrap;align-items:center;gap:24px}
.teams__progress{display:flex;align-items:center;gap:16px;min-width:200px}
.teams__bar{position:relative;flex:1;height:2px;background:var(--line);overflow:hidden}
.teams__fill{position:absolute;inset:0 auto 0 0;background:var(--gelb);transition:width .2s ease}
.teams__count{font-family:var(--font-mono);font-size:12px;letter-spacing:.12em;color:var(--ink-muted)}
.teams__rail{display:flex;gap:20px;margin:0;list-style:none;overflow-x:auto;scroll-snap-type:x mandatory;padding:8px max(var(--gutter),calc((100% - var(--container)) / 2 + var(--gutter))) 28px;scroll-padding-inline:max(var(--gutter),calc((100% - var(--container)) / 2 + var(--gutter)));scrollbar-width:thin;scrollbar-color:var(--gelb) var(--surface-300)}
.teams__rail:focus-visible{outline:3px solid var(--focus);outline-offset:-3px}
.team-card{position:relative;isolation:isolate;flex:0 0 min(380px,80vw);min-height:clamp(400px,48vw,500px);scroll-snap-align:start;display:flex;flex-direction:column;justify-content:space-between;padding:32px;background:var(--surface-200);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;transition:transform .3s ease,border-color .3s ease}
.team-card::before{content:"";position:absolute;inset:0;z-index:-1;background:repeating-linear-gradient(135deg,transparent 0 18px,rgba(244,241,232,.035) 18px 36px)}
.team-card:hover,.team-card:focus-within{transform:translateY(-6px);border-color:var(--gelb)}
.team-card:focus-within{outline:3px solid var(--focus);outline-offset:4px}
.team-card--gelb{background:var(--gelb);color:var(--on-gelb);border-color:var(--gelb)}
.team-card--gelb::before{display:none}
.team-card__top{display:flex;justify-content:space-between;gap:12px;font-family:var(--font-mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted)}
.team-card__media{flex:1 1 auto;min-height:140px;margin:20px 0;border-radius:var(--radius-lg);overflow:hidden;background:var(--surface-300)}
.team-card__media img{display:block;width:100%;height:100%;max-width:100%;object-fit:cover;filter:grayscale(.35) contrast(1.05);transition:transform .5s ease}
.team-card__media--1 img{object-position:20% 50%}.team-card__media--2 img{object-position:80% 30%}.team-card__media--3 img{object-position:50% 90%}
.team-card:hover .team-card__media img{transform:scale(1.05)}
.team-card__label{display:block;margin-bottom:14px;font-family:var(--font-mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--gelb)}
.team-card--gelb .team-card__top,.team-card--gelb .team-card__label{color:var(--on-gelb)}
.team-card__name{margin:0;font-family:var(--font-display);font-weight:800;text-transform:uppercase;line-height:.88;font-size:clamp(48px,5vw,68px);hyphens:auto;overflow-wrap:break-word}
.team-card__name a{color:inherit;text-decoration:none}
.team-card__name a:focus-visible{outline:none}
.team-card__name a::after{content:"";position:absolute;inset:0}

/* 03 Spieltag */
.spieltag{background:var(--surface-100);padding:clamp(72px,9vw,128px) 0;border-top:1px solid var(--line)}
.match-grid{display:grid;gap:20px}
.match-card{display:flex;flex-direction:column;gap:24px;padding:clamp(24px,3vw,32px);background:var(--surface-200);border:1px solid var(--line);border-radius:var(--radius-md)}
.match-card__top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}
.match-badge{display:inline-flex;align-items:center;padding:6px 12px;border-radius:var(--radius-pill);background:var(--gelb);color:var(--on-gelb);font-family:var(--font-mono);font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase}
.match-card__liga{color:var(--ink-muted)}
.match-card__title{margin:0;font-family:var(--font-display);font-weight:800;text-transform:uppercase;line-height:.9;font-size:clamp(40px,4.4vw,60px)}
.match-card__vs{color:var(--gelb)}
.match-card__text{margin:0;max-width:46ch;color:var(--ink-muted)}
.match-card__foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding-top:16px;border-top:1px solid var(--line);color:var(--ink-muted)}
.match-card__link{display:inline-flex;align-items:center;min-height:44px;color:var(--gelb);font-weight:600;text-decoration:none}
.match-card__link:hover{text-decoration:underline}

/* Marquee */
.marquee{overflow:hidden;padding:22px 0;background:var(--gelb);color:var(--on-gelb)}
.marquee__track{display:flex;width:max-content;animation:fc-marquee 36s linear infinite}
.marquee__group{display:flex;align-items:center;gap:40px;margin:0;padding-right:40px;white-space:nowrap;font-family:var(--font-display);font-weight:800;text-transform:uppercase;line-height:1;font-size:clamp(40px,5vw,64px)}
.marquee__dot{flex:none;width:.26em;height:.26em;border-radius:50%;background:var(--on-gelb)}
@keyframes fc-marquee{to{transform:translateX(-50%)}}

/* 04 News */
.news{background:var(--surface-100);padding:clamp(72px,9vw,128px) 0}
.news__all{display:inline-flex;align-items:center;min-height:44px;color:var(--ink);font-family:var(--font-mono);font-size:13px;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;border-bottom:1px solid var(--gelb)}
.news__all:hover{color:var(--gelb)}
.news-grid{display:grid;gap:32px 24px;margin:0;padding:0;list-style:none}
.news-card{position:relative;display:flex;flex-direction:column;gap:14px}
.news-card__tile{display:flex;align-items:flex-end;aspect-ratio:4/3;padding:24px;border-radius:var(--radius-md);overflow:hidden;font-family:var(--font-display);font-weight:800;text-transform:uppercase;line-height:.85;font-size:clamp(56px,6vw,88px);transition:transform .3s ease}
.news-card__tile--gelb{background:var(--gelb);color:var(--on-gelb)}
.news-card__tile--dunkel{background:var(--surface-300);color:var(--ink)}
.news-card__tile--tief{background:var(--surface-200);color:var(--gelb);border:1px solid var(--line)}
.news-card:hover .news-card__tile{transform:scale(.985)}
.news-card__meta{margin:4px 0 0;font-family:var(--font-mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted)}
.news-card__title{margin:0;font-family:var(--font-sans);font-weight:600;line-height:1.2;font-size:clamp(22px,2vw,26px)}
.news-card__title a{color:var(--ink);text-decoration:none}
.news-card__title a::after{content:"";position:absolute;inset:0;border-radius:var(--radius-md)}
.news-card__title a:hover{color:var(--gelb)}
.news-card:focus-within{outline:3px solid var(--focus);outline-offset:6px;border-radius:var(--radius-md)}
.news-card__title a:focus-visible{outline:none}

/* Mitglied werden */
.mitglied{overflow:hidden;padding:clamp(80px,11vw,176px) 0;background:var(--surface-100);border-top:1px solid var(--line)}
.mitglied__title{margin:0 0 clamp(32px,4vw,56px);font-family:var(--font-display);font-weight:900;text-transform:uppercase;line-height:.84;letter-spacing:-.01em;font-size:clamp(72px,13.5vw,190px)}
.mitglied__title span{display:block}
.mitglied__l2{color:var(--gelb);padding-left:.9em}
.mitglied__l3{padding-left:.35em}
.mitglied__row{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:32px}
.mitglied__text{margin:0;max-width:40ch;color:var(--ink-muted);font-size:clamp(18px,1.6vw,22px);line-height:1.45}
.mitglied__actions{display:flex;flex-wrap:wrap;gap:12px}

@media (min-width:720px){.news-grid{grid-template-columns:repeat(2,1fr)}}
@media (min-width:900px){.match-grid{grid-template-columns:1fr 1fr}}
@media (min-width:1080px){.news-grid{grid-template-columns:repeat(3,1fr)}}
@media (prefers-reduced-motion:reduce){.marquee__track{animation:none}.team-card,.news-card__tile{transition:none}}
