:root{
  --red:#c1260d;
  --wine:#820117;
  --ink:#202122;
  --paper:#fff;
  --soft:#f2f3f1;
  --muted:#626661;
  --line:#d9ddd7;
  --condensed:"Bahnschrift SemiCondensed","Arial Narrow","Impact",sans-serif;
  --text:"Segoe UI",Arial,sans-serif
}
*{
  box-sizing:border-box
}
html{
  scroll-behavior:smooth;
  scroll-padding-top:115px
}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--text);
  font-size:16px;
  line-height:1.6
}
button,a{
  -webkit-tap-highlight-color:transparent
}
button{
  font:inherit;
  cursor:pointer
}
a{
  color:inherit;
  text-decoration:none
}
img{
  display:block;
  max-width:100%
}
button:focus-visible,a:focus-visible{
  outline:3px solid #3985a9;
  outline-offset:5px
}
button{
  color:inherit
}
h1,h2,h3,p{
  margin:0
}
h1,h2,h3{
  line-height:1.06
}
h2{
  font-family:var(--condensed);
  font-size:clamp(2.2rem,4vw,3.4rem);
  letter-spacing:-.025em;
  font-weight:800
}
h3{
  font-size:1.3rem;
  font-weight:750
}
.wrap{
  width:min(1180px,calc(100% - 80px));
  margin-inline:auto
}
.eyebrow{
  font-size:.82rem;
  font-weight:750;
  letter-spacing:.14em;
  text-transform:uppercase;
  display:flex;
  align-items:center;
  gap:12px
}
.eyebrow::before{
  content:"";
  width:25px;
  height:3px;
  background:var(--red)
}
.subcopy{
  color:var(--muted);
  max-width:480px
}
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:50px;
  padding:13px 23px;
  border:1px solid transparent;
  background:var(--red);
  color:white;
  font-size:.9rem;
  font-weight:700;
  transition:background .15s,transform .15s
}
.btn:hover{
  background:var(--wine);
  transform:translateY(-2px)
}
.btn-outline{
  border-color:#68696a;
  background:transparent;
  color:white
}
.btn-outline:hover{
  background:#363738
}
.btn-dark{
  background:var(--ink)
}
.btn-dark:hover{
  background:var(--wine)
}
.text-link{
  display:inline-flex;
  align-items:center;
  min-height:44px;
  font-weight:700;
  font-size:.92rem;
  border-bottom:2px solid var(--red)
}
.text-link:hover{
  color:var(--red)
}
.skip-link{
  position:absolute;
  top:-100px;
  left:10px;
  padding:10px;
  background:white;
  color:var(--ink);
  z-index:20
}
.skip-link:focus{
  top:10px
}
.utility{
  background:var(--red);
  color:white;
  font-size:.78rem;
  letter-spacing:.02em
}
.utility .wrap{
  display:flex;
  justify-content:space-between;
  align-items:center;
  min-height:36px;
  gap:12px
}
.utility a{
  font-weight:650
}
.utility a:hover{
  text-decoration:underline
}
.site-header{
  position:sticky;
  top:0;
  z-index:10;
  background:white;
  border-bottom:1px solid var(--line)
}
.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:95px;
  gap:24px
}
.brand{
  display:flex;
  align-items:center;
  gap:13px
}
.brand img{
  height:59px;
  width:55px;
  object-fit:cover
}
.brand-wordmark{
  font-family:var(--condensed);
  font-size:1.35rem;
  letter-spacing:.04em;
  font-weight:800;
  line-height:1
}
.brand-wordmark small{
  display:block;
  margin-top:9px;
  font-family:var(--text);
  font-size:.64rem;
  font-weight:600;
  letter-spacing:.18em;
  color:var(--muted)
}
.nav{
  display:flex;
  align-items:center;
  gap:30px
}
.nav a{
  font-size:.88rem;
  font-weight:700;
  padding-block:14px;
  white-space:nowrap
}
.nav a:not(.nav-contact):hover{
  color:var(--red)
}
.nav .nav-contact{
  background:var(--ink);
  color:white;
  padding:12px 20px
}
.nav .nav-contact:hover{
  background:var(--red)
}
.menu-toggle{
  display:none;
  border:1px solid var(--line);
  padding:10px 14px;
  background:white;
  min-height:44px;
  font-size:.88rem;
  font-weight:700
}
.hero{
  background:var(--ink);
  color:white;
  position:relative;
  overflow:hidden
}
.hero-grid{
  display:grid;
  grid-template-columns:46% 54%;
  min-height:565px
}
.hero-copy{
  padding:66px 46px 66px 0;
  position:relative;
  z-index:2
}
.hero .eyebrow{
  font-size:.76rem;
  letter-spacing:.15em;
  color:#dadbd7
}
.hero h1{
  font-family:var(--condensed);
  font-size:clamp(3.3rem,5.8vw,5.1rem);
  font-weight:850;
  letter-spacing:-.032em;
  line-height:1.03;
  margin-top:28px
}
.hero h1 span{
  color:#ec472c
}
.hero-desc{
  font-size:1rem;
  line-height:1.7;
  max-width:390px;
  color:#d2d4cf;
  margin-top:23px
}
.hero-buttons{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-top:29px
}
.hero-photo{
  position:relative;
  align-self:stretch;
  margin-right:calc((min(1180px,100vw - 80px) - 100vw)/2);
  overflow:hidden
}
.hero-photo>img{
  height:100%;
  width:100%;
  object-fit:cover;
  object-position:56% 54%;
  min-height:565px
}
.hero-photo::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(32,33,34,.2),transparent 28%),linear-gradient(0deg,rgba(0,0,0,.7),transparent 40%);
  z-index:1
}
.photo-caption{
  position:absolute;
  bottom:31px;
  left:33px;
  right:28px;
  z-index:2;
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:20px
}
.photo-caption .photo-label{
  font-size:.7rem;
  letter-spacing:.15em;
  text-transform:uppercase;
  color:#ddd
}
.photo-caption strong{
  display:block;
  font-family:var(--condensed);
  font-size:1.6rem;
  line-height:1.2;
  font-weight:700;
  margin-top:7px
}
.photo-caption .sg-stamp{
  font-family:var(--condensed);
  font-size:2.7rem;
  font-weight:850;
  font-style:italic;
  line-height:1;
  color:white;
  opacity:.7
}
.hero-base{
  height:7px;
  background:var(--red);
  width:46%
}
.fixtures{
  background:var(--soft);
  border-bottom:1px solid var(--line)
}
.fixtures-grid{
  display:grid;
  grid-template-columns:.7fr 1fr 1fr;
  gap:0;
  align-items:center;
  padding-block:30px
}
.fixtures-intro{
  padding-right:28px
}
.fixtures-intro .eyebrow{
  font-size:.7rem;
  letter-spacing:.1em;
  margin-bottom:10px
}
.fixtures-intro h2{
  font-size:1.75rem
}
.fixtures-intro a{
  font-size:.82rem;
  margin-top:13px;
  min-height:34px
}
.fixture{
  border-left:1px solid #cfd3cb;
  padding-left:32px;
  padding-right:12px
}
.fixture-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px
}
.fixture-league{
  font-size:.74rem;
  font-weight:750;
  text-transform:uppercase;
  letter-spacing:.06em
}
.fixture-status{
  font-size:.73rem;
  color:var(--muted)
}
.fixture-line{
  display:flex;
  align-items:center;
  gap:16px;
  margin-top:13px
}
.fixture-mark{
  height:42px;
  width:38px;
  object-fit:cover
}
.fixture-teams{
  font-size:1rem;
  font-weight:750;
  line-height:1.5
}
.fixture-teams small{
  font-size:.9rem;
  font-weight:400;
  color:var(--muted);
  display:block
}
.fixture-foot{
  font-size:.77rem;
  color:var(--muted);
  margin-top:13px
}
.section{
  padding-block:80px
}
.section-heading{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:30px;
  margin-bottom:35px
}
.section-heading h2{
  margin-top:15px
}
.section-heading .subcopy{
  font-size:.96rem;
  max-width:330px
}
.news-grid{
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:26px
}
.news-card{
  border-bottom:1px solid var(--line);
  padding-bottom:23px;
  min-width:0
}
.news-image{
  aspect-ratio:1.5;
  overflow:hidden;
  position:relative;
  background:var(--soft)
}
.news-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .3s
}
.news-card:hover .news-image img{
  transform:scale(1.035)
}
.news-card:nth-child(1) .news-image img{
  object-position:50% 33%
}
.news-card:nth-child(2) .news-image img{
  object-position:50% 52%
}
.news-card:nth-child(3) .news-image img{
  object-position:50% 42%
}
.news-category{
  font-size:.71rem;
  text-transform:uppercase;
  font-weight:750;
  letter-spacing:.1em;
  color:var(--red);
  margin-top:21px
}
.news-card h3{
  margin-top:10px;
  font-family:var(--condensed);
  font-size:1.55rem;
  line-height:1.15
}
.news-card p{
  font-size:.91rem;
  color:var(--muted);
  line-height:1.65;
  margin-top:13px
}
.news-action{
  margin-top:17px;
  min-height:42px;
  font-size:.82rem;
  background:transparent;
  border:0;
  padding:0;
  border-bottom:2px solid var(--red);
  font-weight:700
}
.news-action:hover{
  color:var(--red)
}
.teams-section{
  background:var(--ink);
  color:white;
  position:relative
}
.teams-grid{
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:90px
}
.teams-intro{
  padding-top:5px
}
.teams-intro .eyebrow{
  color:#d6d8d3
}
.teams-intro h2{
  font-size:clamp(2.7rem,4.5vw,3.7rem);
  margin-top:25px
}
.teams-intro p{
  max-width:335px;
  color:#bec2b9;
  margin-top:24px;
  font-size:1rem
}
.teams-decoration{
  display:flex;
  gap:12px;
  margin-top:35px
}
.teams-decoration span{
  width:30px;
  height:10px;
  background:var(--red);
  transform:skew(-24deg)
}
.team-row{
  display:grid;
  grid-template-columns:45px 1fr auto;
  align-items:center;
  gap:20px;
  border-top:1px solid #535650;
  padding:24px 0
}
.team-row:last-child{
  border-bottom:1px solid #535650
}
.team-number{
  font-family:var(--condensed);
  font-size:1.4rem;
  font-weight:750;
  color:#e85237
}
.team-title h3{
  font-family:var(--condensed);
  font-size:1.8rem
}
.team-title p{
  margin-top:7px;
  font-size:.85rem;
  color:#c0c3bd
}
.team-btn{
  padding:10px 16px;
  min-height:44px;
  border:1px solid #6f746b;
  background:transparent;
  color:white;
  font-weight:650;
  font-size:.82rem
}
.team-btn:hover{
  background:white;
  color:var(--ink)
}
.club-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:64px;
  align-items:center
}
.club-picture{
  position:relative
}
.club-picture img{
  width:100%;
  aspect-ratio:1.08;
  object-fit:cover;
  object-position:50% 50%
}
.club-picture .club-label{
  position:absolute;
  bottom:25px;
  left:-15px;
  background:var(--red);
  color:white;
  font-family:var(--condensed);
  font-size:1.85rem;
  font-weight:800;
  line-height:1.15;
  padding:17px 26px
}
.club-copy h2{
  margin-top:20px;
  font-size:clamp(2.4rem,4vw,3.4rem)
}
.club-copy>p{
  margin-top:23px;
  color:var(--muted);
  font-size:1rem;
  max-width:420px
}
.club-values{
  display:flex;
  gap:25px;
  margin-top:26px;
  border-top:1px solid var(--line);
  padding-top:22px;
  flex-wrap:wrap
}
.club-values span{
  font-size:.77rem;
  font-weight:750;
  letter-spacing:.04em;
  text-transform:uppercase
}
.club-copy .text-link{
  margin-top:24px
}
.join{
  background:var(--red);
  color:white;
  position:relative;
  overflow:hidden
}
.join-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:50px;
  padding-block:47px
}
.join h2{
  font-size:clamp(2.25rem,4vw,3.35rem)
}
.join p{
  max-width:610px;
  margin-top:15px;
  font-size:.95rem;
  color:#ffe9e4
}
.join-actions{
  display:flex;
  align-items:center;
  gap:14px;
  flex-wrap:wrap;
  flex-shrink:0
}
.join .btn{
  background:white;
  color:var(--ink)
}
.join .btn:hover{
  background:#eceee9
}
.join .instagram-link{
  font-size:.85rem;
  font-weight:700;
  border-bottom:1px solid #f6b6a9;
  padding:12px 0
}
.join .instagram-link:hover{
  border-color:white
}
.site-footer{
  background:#181a18;
  color:#bdc2b7;
  padding-top:48px
}
.footer-top{
  display:grid;
  grid-template-columns:1fr auto;
  gap:30px;
  align-items:center;
  padding-bottom:36px;
  border-bottom:1px solid #383d34
}
.site-footer .brand-wordmark{
  color:white;
  font-size:1.5rem
}
.site-footer .brand-wordmark small{
  color:#a9b2a0
}
.footer-description{
  font-size:.85rem;
  margin-top:15px
}
.footer-nav{
  display:flex;
  gap:23px;
  flex-wrap:wrap;
  font-size:.83rem;
  font-weight:650
}
.footer-nav a:hover{
  color:white
}
.footer-bottom{
  display:flex;
  justify-content:space-between;
  gap:25px;
  align-items:center;
  padding-block:23px;
  font-size:.74rem
}
.footer-legal{
  display:flex;
  gap:24px
}
.footer-legal button{
  background:transparent;
  border:0;
  color:#bdc2b7;
  font-size:.74rem;
  padding:10px 0
}
.footer-legal button:hover{
  color:white
}
dialog{
  border:0;
  padding:0;
  max-width:580px;
  width:calc(100% - 40px);
  max-height:85dvh;
  color:var(--ink);
  background:white;
  box-shadow:0 30px 100px #0005
}
dialog::backdrop{
  background:#141814aa;
  backdrop-filter:blur(5px)
}
.dialog-top{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:17px 25px;
  border-bottom:1px solid var(--line);
  font-size:.75rem;
  font-weight:750;
  letter-spacing:.1em;
  text-transform:uppercase
}
.dialog-close{
  background:var(--soft);
  border:0;
  min-width:44px;
  min-height:44px;
  font-size:1.5rem;
  font-family:Arial
}
.dialog-body{
  padding:30px;
  overflow:auto
}
.dialog-body h2{
  font-size:2rem;
  line-height:1.15
}
.dialog-body p{
  font-size:.97rem;
  line-height:1.7;
  color:var(--muted);
  margin-top:19px
}
.dialog-body img{
  margin-top:22px;
  max-height:350px;
  width:100%;
  object-fit:contain;
  background:var(--soft)
}
.dialog-body .btn{
  margin-top:23px
}
.dialog-meta{
  font-size:.78rem;
  color:var(--red);
  font-weight:700;
  margin-bottom:10px
}
@media(min-width:1600px){
  .hero-photo{
    margin-right:0
  }
  .hero-grid{
    width:min(1440px,calc(100% - 80px));
    grid-template-columns:43% 57%
  }
  .hero-copy{
    padding-left:40px
  }
  .hero-photo>img{
    object-position:50% 53%
  }
  .hero-base{
    width:43%
  }
}
@media(max-width:1050px){
  .wrap{
    width:calc(100% - 48px)
  }
  .nav{
    gap:19px
  }
  .hero-grid{
    grid-template-columns:49% 51%;
    min-height:510px
  }
  .hero-copy{
    padding-top:50px;
    padding-right:23px
  }
  .hero h1{
    font-size:4rem
  }
  .hero-photo{
    margin-right:-24px
  }
  .hero-photo>img{
    min-height:510px;
    object-position:50% 50%
  }
  .hero .eyebrow{
    font-size:.66rem;
    letter-spacing:.08em
  }
  .fixture{
    padding-left:23px
  }
  .teams-grid{
    gap:45px
  }
  .club-grid{
    gap:42px
  }
  .join-inner{
    gap:30px
  }
  .join-actions{
    flex-direction:column;
    align-items:flex-start
  }
  .hero-base{
    width:49%
  }
}
@media(max-width:780px){
  html{
    scroll-padding-top:82px
  }
  .header-inner{
    min-height:79px
  }
  .brand img{
    height:47px;
    width:44px
  }
  .brand-wordmark{
    font-size:1.15rem
  }
  .brand-wordmark small{
    font-size:.59rem
  }
  .menu-toggle{
    display:block
  }
  .nav{
    display:none;
    position:absolute;
    left:0;
    right:0;
    top:100%;
    background:white;
    border-bottom:1px solid var(--line);
    padding:20px 24px;
    flex-direction:column;
    align-items:stretch;
    gap:5px
  }
  .nav.open{
    display:flex
  }
  .nav a{
    padding:12px
  }
  .hero-grid{
    grid-template-columns:1fr;
    min-height:0
  }
  .hero-copy{
    padding:43px 0 40px
  }
  .hero h1{
    font-size:clamp(3.2rem,8vw,4.5rem);
    margin-top:24px
  }
  .hero-desc{
    max-width:470px
  }
  .hero .eyebrow{
    font-size:.72rem
  }
  .hero-photo{
    margin-inline:-24px;
    height:440px
  }
  .hero-photo>img{
    min-height:0;
    object-position:50% 53%;
    width:100%;
    height:100%;
    object-fit:cover
  }
  .hero-photo::before{
    background:linear-gradient(0deg,#0009,transparent 35%)
  }
  .hero-base{
    width:100%;
    height:6px
  }
  .fixtures-grid{
    grid-template-columns:1fr 1fr;
    padding-block:27px;
    row-gap:24px
  }
  .fixtures-intro{
    grid-column:1/-1;
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    padding-right:0
  }
  .fixtures-intro a{
    margin-top:0
  }
  .fixture{
    padding-right:15px;
    padding-left:0;
    border-left:0
  }
  .fixture:last-child{
    border-left:1px solid #cfd3cb;
    padding-left:22px;
    padding-right:0
  }
  .section{
    padding-block:58px
  }
  .section-heading{
    align-items:flex-start;
    flex-direction:column;
    gap:17px
  }
  .section-heading .subcopy{
    max-width:450px
  }
  .news-grid{
    gap:22px;
    grid-template-columns:1fr 1fr
  }
  .news-card:last-child{
    grid-column:1/-1;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:0 23px
  }
  .news-card:last-child .news-image{
    grid-row:1/5;
    aspect-ratio:1.2
  }
  .news-card:last-child .news-category{
    margin-top:0
  }
  .news-card:last-child .news-action{
    width:max-content
  }
  .teams-grid{
    grid-template-columns:1fr;
    gap:35px
  }
  .teams-intro p{
    max-width:500px
  }
  .teams-decoration{
    display:none
  }
  .club-grid{
    gap:32px
  }
  .club-picture .club-label{
    font-size:1.45rem;
    padding:15px 21px
  }
  .club-values{
    gap:18px
  }
  .join-inner{
    flex-direction:column;
    align-items:flex-start;
    gap:27px
  }
  .join-actions{
    flex-direction:row;
    align-items:center;
    gap:25px
  }
  .footer-top{
    grid-template-columns:1fr;
    gap:27px
  }
  .footer-bottom{
    align-items:flex-start;
    flex-direction:column;
    gap:8px
  }
  .site-footer{
    padding-top:35px
  }
}
@media(max-width:520px){
  .wrap{
    width:calc(100% - 36px)
  }
  .utility .wrap{
    font-size:.68rem;
    min-height:32px
  }
  .header-inner{
    gap:15px
  }
  .brand-wordmark{
    font-size:1.08rem
  }
  .brand-wordmark small{
    font-size:.55rem;
    letter-spacing:.1em
  }
  .brand{
    gap:9px
  }
  .menu-toggle{
    padding-inline:11px
  }
  .hero h1{
    font-size:clamp(3.05rem,12.3vw,4rem);
    line-height:1.04
  }
  .hero-copy{
    padding-top:35px
  }
  .hero-desc{
    font-size:.96rem
  }
  .hero-buttons{
    gap:10px
  }
  .hero-buttons .btn{
    font-size:.85rem;
    padding-inline:17px
  }
  .hero-photo{
    margin-inline:-18px;
    height:315px
  }
  .hero-photo>img{
    object-position:50% 48%
  }
  .photo-caption{
    left:22px;
    bottom:23px
  }
  .photo-caption strong{
    font-size:1.4rem
  }
  .photo-caption .sg-stamp{
    font-size:2.1rem
  }
  .fixtures-grid{
    grid-template-columns:1fr;
    gap:21px
  }
  .fixtures-intro{
    grid-column:auto
  }
  .fixtures-intro h2{
    font-size:1.65rem
  }
  .fixtures-intro .eyebrow{
    font-size:.64rem
  }
  .fixtures-intro a{
    font-size:.77rem
  }
  .fixture{
    border-top:1px solid #cfd3cb;
    padding:20px 0 0
  }
  .fixture:last-child{
    border-left:0;
    padding:20px 0 0
  }
  .fixture-line{
    margin-top:10px
  }
  .fixture-teams small{
    display:inline;
    margin-left:10px
  }
  .fixture-foot{
    margin-top:9px
  }
  .fixture-status{
    font-size:.74rem
  }
  .section{
    padding-block:49px
  }
  .section-heading h2{
    font-size:2.4rem
  }
  .news-grid{
    grid-template-columns:1fr;
    gap:29px
  }
  .news-image{
    aspect-ratio:1.5
  }
  .news-card:last-child{
    grid-column:auto;
    display:block
  }
  .news-card:last-child .news-image{
    aspect-ratio:1.5
  }
  .news-card:last-child .news-category{
    margin-top:21px
  }
  .news-card h3{
    font-size:1.6rem
  }
  .team-row{
    grid-template-columns:29px 1fr;
    gap:14px;
    position:relative;
    padding:22px 0
  }
  .team-title h3{
    font-size:1.7rem
  }
  .team-title p{
    padding-right:8px;
    max-width:270px
  }
  .team-btn{
    grid-column:2;
    justify-self:start;
    margin-top:1px
  }
  .teams-intro h2{
    font-size:2.9rem
  }
  .club-grid{
    grid-template-columns:1fr;
    gap:37px
  }
  .club-picture{
    margin-left:8px
  }
  .club-picture .club-label{
    left:-8px
  }
  .club-copy h2{
    font-size:2.65rem
  }
  .club-values{
    gap:20px
  }
  .join-inner{
    padding-block:37px
  }
  .join h2{
    font-size:2.7rem
  }
  .join-actions{
    gap:15px
  }
  .join .btn{
    font-size:.88rem
  }
  .footer-nav{
    gap:20px
  }
  .dialog-body{
    padding:25px
  }
  .dialog-top{
    padding:15px 20px
  }
  .dialog-body h2{
    font-size:1.9rem
  }
}
@media(max-width:380px){
  .brand-wordmark small{
    display:none
  }
  .brand-wordmark{
    font-size:1.05rem
  }
  .hero h1{
    font-size:2.6rem
  }
  .hero .eyebrow{
    font-size:.65rem;
    letter-spacing:.08em
  }
  .hero-buttons{
    align-items:stretch
  }
  .hero-buttons .btn{
    padding-inline:13px;
    font-size:.81rem
  }
  .photo-caption .sg-stamp{
    display:none
  }
}
/* Vereinssprache: große Wappenfläche, dunkle Navigation und rote Schnittkanten. */
:root{
  --red:#e40024;
  --wine:#990018;
  --ink:#18191d;
  --soft:#eceeeb;
  --muted:#595e58
}
html{
  scroll-padding-top:145px
}
.utility{
  background:#0c0d10;
  color:#d4d5d8;
  font-size:.76rem
}
.utility .wrap{
  min-height:34px
}
.utility .wrap>span:first-child{
  display:flex;
  align-items:center;
  gap:10px
}
.utility .wrap>span:first-child::before{
  content:"";
  height:9px;
  width:9px;
  background:var(--red);
  transform:skew(-20deg)
}
.utility a{
  color:white;
  letter-spacing:.06em
}
.site-header{
  background:#202126;
  color:white;
  border-bottom:0;
  box-shadow:0 8px 26px #0003;
  isolation:isolate
}
.site-header::after{
  content:"";
  position:absolute;
  bottom:0;
  left:0;
  right:0;
  height:5px;
  background:linear-gradient(110deg,var(--red) 0 37%,#830018 37% 40%,#3d3e44 40% 100%)
}
.header-inner{
  min-height:122px;
  gap:24px
}
.site-header .brand{
  gap:17px;
  flex-shrink:0
}
.brand-crest{
  display:grid;
  place-items:center;
  width:106px;
  height:115px;
  background:transparent;
  padding:0;
  clip-path:none;
  margin-top:0;
  align-self:center;
  flex-shrink:0
}
.site-header .brand img{
  height:98px;
  width:92px;
  object-fit:contain
}
.site-header .brand-wordmark{
  font-size:1.9rem;
  letter-spacing:.025em;
  font-weight:850;
  color:white
}
.site-header .brand-wordmark small{
  font-size:.62rem;
  letter-spacing:.12em;
  color:#bcbfc6;
  line-height:1.45;
  margin-top:11px;
  max-width:220px
}
.nav{
  gap:9px;
  align-items:stretch
}
.nav a{
  display:flex;
  flex-direction:column;
  justify-content:center;
  position:relative;
  padding:13px 16px 16px;
  min-height:69px;
  font-family:var(--condensed);
  font-size:1.13rem;
  line-height:1.1;
  font-weight:750;
  letter-spacing:.03em;
  text-transform:uppercase;
  isolation:isolate;
  transition:color .18s
}
.nav-index{
  display:block;
  font-family:var(--text);
  font-size:.64rem;
  font-weight:650;
  letter-spacing:.12em;
  color:#b3b5bc;
  margin-bottom:8px;
  line-height:1
}
.nav a::before{
  content:"";
  position:absolute;
  inset:0;
  background:#303137;
  clip-path:polygon(12px 0,100% 0,calc(100% - 12px) 100%,0 100%);
  z-index:-1;
  transition:background .18s
}
.nav a::after{
  content:"";
  position:absolute;
  left:16px;
  right:28px;
  bottom:7px;
  height:2px;
  background:#6d6e74;
  transition:background .18s
}
.nav a:not(.nav-contact):hover,.nav a[aria-current]{
  color:white
}
.nav a:not(.nav-contact):hover::before,.nav a[aria-current]::before{
  background:var(--red)
}
.nav a:hover .nav-index,.nav a[aria-current] .nav-index{
  color:#ffe3e9
}
.nav a:hover::after,.nav a[aria-current]::after{
  background:white
}
.nav .nav-contact{
  padding:13px 22px 16px;
  background:transparent;
  color:white
}
.nav .nav-contact::before{
  background:#512334
}
.nav .nav-contact::after{
  background:#9c5269
}
.nav .nav-contact .nav-index{
  color:#e5bec9
}
.nav .nav-contact:hover{
  background:transparent
}
.nav .nav-contact:hover::before{
  background:#b9001d
}
.menu-toggle{
  background:var(--red);
  border:0;
  color:white;
  padding:12px 18px;
  align-items:center;
  gap:12px;
  font-weight:750
}
.menu-bars{
  display:flex;
  flex-direction:column;
  gap:4px;
  width:20px
}
.menu-bars i{
  height:2px;
  width:20px;
  background:white;
  display:block
}
.hero{
  background:linear-gradient(118deg,#272227 0%,#16171b 58%)
}
.hero-copy::before{
  content:"";
  position:absolute;
  left:-80px;
  top:0;
  bottom:0;
  width:175px;
  background:repeating-linear-gradient(-25deg,transparent 0 19px,#ffffff03 19px 20px);
  z-index:-1;
  pointer-events:none
}
.hero h1 span{
  color:#ff3858
}
.hero-photo::after{
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  left:0;
  width:9px;
  background:var(--red);
  z-index:2
}
.hero-base{
  width:100%;
  background:linear-gradient(110deg,var(--red) 0 48%,#8f0019 48% 51%,#34363c 51%)
}
.photo-caption .photo-crest{
  width:77px;
  height:82px;
  object-fit:contain;
  background:transparent;
  padding:0;
  box-shadow:none
}
.fixtures{
  background:#292a30;
  color:white;
  border-bottom:1px solid #45464c
}
.fixtures-grid{
  padding-block:34px
}
.fixture{
  border-left-color:#505159
}
.fixture-status,.fixture-foot,.fixture-teams small{
  color:#c4c6cd
}
.fixture-mark{
  height:47px;
  width:44px;
  object-fit:contain;
  background:transparent;
  padding:0
}
.fixtures-intro .news-action{
  color:white;
  border-bottom-color:#ff3858;
  font-size:.88rem
}
.fixtures-intro .news-action:hover{
  color:#ff8599
}
#aktuelles{
  background:#17181c;
  color:white
}
#aktuelles .subcopy{
  color:#b8bdc5
}
#aktuelles .eyebrow::before{
  background:#ff3858
}
#aktuelles .section-heading h2{
  font-size:clamp(2.6rem,4.4vw,3.7rem)
}
.news-card{
  background:#27282e;
  border-bottom:3px solid #42434b;
  padding-bottom:0;
  position:relative
}
.news-card:hover{
  border-bottom-color:var(--red)
}
.news-category{
  color:#ff728b;
  margin:23px 23px 0
}
.news-card h3{
  margin:12px 23px 0;
  font-size:1.7rem
}
.news-card p{
  color:#c5c8cf;
  margin:15px 23px 0
}
.news-card .news-action{
  margin:19px 23px 24px;
  color:white;
  border-bottom-color:#ff3858
}
.news-card .news-action:hover{
  color:#ff728b
}
.teams-section{
  background:linear-gradient(110deg,#830017 0%,#550014 39%,#24252b 39.1%,#1b1c21 100%)
}
.teams-intro .eyebrow::before{
  background:#ff738a
}
.teams-intro p{
  color:#ead3db
}
.team-number{
  color:#ff728b
}
.team-row{
  border-color:#65616a
}
.team-row:last-child{
  border-color:#65616a
}
.team-title p{
  color:#d4cfd8
}
.team-btn{
  border-color:#8a8089;
  background:#ffffff08;
  font-size:.86rem
}
#verein{
  background:#eceeeb
}
.club-picture{
  box-shadow:14px 14px 0 #d4d8d1
}
.club-label{
  background:var(--red)
}
.join{
  background:linear-gradient(112deg,#e40024 0%,#b60025 78%)
}
.join p{
  color:#ffe7ed
}
.site-footer{
  background:#101115
}
.site-footer .brand img{
  height:68px;
  width:64px;
  object-fit:contain;
  background:transparent;
  padding:0
}
.site-footer .brand-wordmark{
  font-size:1.75rem
}
@media(max-width:1180px){
  .site-header .brand-wordmark{
    font-size:1.55rem
  }
  .site-header .brand-wordmark small{
    max-width:175px;
    font-size:.56rem
  }
  .brand-crest{
    width:89px;
    height:102px
  }
  .site-header .brand img{
    width:76px;
    height:87px
  }
  .nav{
    gap:5px
  }
  .nav a{
    font-size:1.03rem;
    padding-inline:12px
  }
  .nav .nav-contact{
    padding-inline:17px
  }
  .header-inner{
    min-height:111px;
    gap:15px
  }
}
@media(max-width:960px){
  html{
    scroll-padding-top:110px
  }
  .header-inner{
    min-height:97px
  }
  .site-header .brand-wordmark{
    font-size:1.7rem
  }
  .site-header .brand-wordmark small{
    max-width:260px;
    font-size:.62rem
  }
  .brand-crest{
    width:78px;
    height:92px;
    margin-top:0
  }
  .site-header .brand img{
    width:65px;
    height:78px
  }
  .menu-toggle{
    display:flex
  }
  .nav{
    display:none;
    position:absolute;
    left:0;
    right:0;
    top:100%;
    padding:18px 24px 23px;
    background:#202126;
    border-bottom:4px solid var(--red);
    grid-template-columns:1fr 1fr;
    gap:10px;
    box-shadow:0 20px 25px #0003
  }
  .nav.open{
    display:grid
  }
  .nav a{
    font-size:1.12rem;
    min-height:75px;
    padding:15px 22px 19px
  }
  .nav a::after{
    left:23px;
    right:35px
  }
  .nav .nav-contact{
    grid-column:1/-1;
    padding-inline:22px
  }
  .nav-index{
    font-size:.7rem
  }
  .teams-section{
    background:linear-gradient(110deg,#66001a,#282329 75%)
  }
  .news-card:last-child{
    display:block;
    grid-column:auto
  }
  .news-grid{
    grid-template-columns:repeat(3,minmax(0,1fr))
  }
  .news-card:last-child .news-image{
    aspect-ratio:1.5
  }
  .news-card:last-child .news-category{
    margin-top:23px
  }
  .news-card:last-child .news-action{
    width:auto
  }
  .news-card h3{
    font-size:1.5rem
  }
  .news-category{
    font-size:.66rem;
    margin-inline:18px
  }
  .news-card h3,.news-card p{
    margin-inline:18px
  }
  .news-card .news-action{
    margin-inline:18px
  }
}
@media(max-width:780px){
  .hero-copy::before{
    left:-24px
  }
  .hero-photo::after{
    top:0;
    left:0;
    right:0;
    height:5px;
    width:100%;
    bottom:auto
  }
  .fixture:last-child{
    border-left-color:#505159
  }
  .fixture-status,.fixture-foot,.fixture-teams small{
    color:#c4c6cd
  }
  .hero-base{
    width:100%
  }
  .photo-caption .photo-crest{
    width:66px;
    height:70px
  }
  .news-grid{
    grid-template-columns:1fr 1fr
  }
  .news-card:last-child{
    grid-column:1/-1;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:0
  }
  .news-card:last-child .news-image{
    grid-row:1/5;
    aspect-ratio:auto;
    height:100%;
    min-height:285px
  }
  .news-card:last-child .news-category{
    margin-top:23px
  }
  .news-card:last-child .news-action{
    width:max-content
  }
  .news-card h3{
    font-size:1.7rem
  }
}
@media(max-width:520px){
  .header-inner{
    min-height:89px;
    gap:12px
  }
  .site-header .brand{
    gap:11px
  }
  .site-header .brand-wordmark{
    font-size:1.4rem
  }
  .site-header .brand-wordmark small{
    font-size:.51rem;
    max-width:170px;
    letter-spacing:.06em;
    margin-top:8px
  }
  .brand-crest{
    width:65px;
    height:80px;
    padding:5px 6px 8px
  }
  .site-header .brand img{
    height:68px;
    width:55px
  }
  .menu-toggle{
    padding:12px;
    gap:8px;
    font-size:.8rem
  }
  .menu-bars{
    width:17px
  }
  .menu-bars i{
    width:17px
  }
  .nav{
    padding-inline:18px
  }
  .nav a{
    font-size:1rem
  }
  .hero-copy{
    padding-top:35px
  }
  .photo-caption .photo-crest{
    width:54px;
    height:58px
  }
  .fixtures-grid{
    padding-block:27px
  }
  .fixture{
    border-top-color:#505159
  }
  .fixture:last-child{
    border-left:0
  }
  .news-grid{
    grid-template-columns:1fr
  }
  .news-card:last-child{
    display:block;
    grid-column:auto
  }
  .news-card:last-child .news-image{
    height:auto;
    aspect-ratio:1.5;
    min-height:0
  }
  .news-category{
    font-size:.73rem;
    margin:23px 23px 0
  }
  .news-card h3,.news-card p{
    margin-inline:23px
  }
  .news-card .news-action{
    margin-inline:23px
  }
  .teams-section{
    background:linear-gradient(150deg,#85001a,#29212a 73%)
  }
  .site-footer .brand-wordmark{
    font-size:1.5rem
  }
}
@media(max-width:380px){
  .site-header .brand-wordmark{
    font-size:1.23rem
  }
  .site-header .brand-wordmark small{
    display:none
  }
  .site-header .brand{
    gap:8px
  }
  .brand-crest{
    width:56px;
    height:70px
  }
  .site-header .brand img{
    width:47px;
    height:60px
  }
  .menu-toggle{
    padding:11px 9px
  }
  .menu-bars{
    display:none
  }
  .header-inner{
    min-height:79px
  }
  .photo-caption .photo-crest{
    display:none
  }
}
/* Freistehendes Wappen: Kontur erhalten, kein weißes Rechteck. */
.brand-crest{
  width:136px;
  height:144px;
  background:transparent;
  padding:0;
  clip-path:none;
  margin-top:0;
  margin-bottom:-26px;
  transform:translateY(2px);
  position:relative;
  z-index:4;
  filter:drop-shadow(0 5px 7px #0006)
}
.site-header .brand img{
  width:136px;
  height:144px;
  object-fit:contain
}
.fixture-mark{
  width:46px;
  height:50px;
  padding:0;
  background:transparent;
  object-fit:contain
}
.photo-caption .photo-crest{
  width:85px;
  height:90px;
  background:transparent;
  padding:0;
  box-shadow:none;
  filter:drop-shadow(0 5px 8px #0008)
}
.site-footer .brand img{
  width:70px;
  height:75px;
  background:transparent;
  padding:0;
  object-fit:contain
}
@media(max-width:1180px){
  .brand-crest{
    width:116px;
    height:124px;
    margin-bottom:-25px
  }
  .site-header .brand img{
    width:116px;
    height:124px
  }
  .site-header .brand-wordmark{
    font-size:1.5rem
  }
}
@media(max-width:960px){
  .brand-crest{
    width:101px;
    height:108px;
    margin-bottom:-24px
  }
  .site-header .brand img{
    width:101px;
    height:108px
  }
  .site-header .brand-wordmark{
    font-size:1.65rem
  }
}
@media(max-width:780px){
  .photo-caption .photo-crest{
    width:75px;
    height:80px
  }
}
@media(max-width:520px){
  .brand-crest{
    width:90px;
    height:96px;
    margin-bottom:-24px
  }
  .site-header .brand img{
    width:90px;
    height:96px
  }
  .site-header .brand-wordmark{
    font-size:1.3rem
  }
  .site-header .brand-wordmark small{
    max-width:145px;
    font-size:.48rem
  }
  .photo-caption .photo-crest{
    width:62px;
    height:66px
  }
}
@media(max-width:380px){
  .brand-crest{
    width:76px;
    height:81px;
    margin-bottom:-22px
  }
  .site-header .brand img{
    width:76px;
    height:81px
  }
  .site-header .brand-wordmark{
    font-size:1.12rem
  }
  .site-header .brand{
    gap:8px
  }
  .photo-caption .photo-crest{
    display:none
  }
}
/* Zwei Mannschaftsspielpläne, getrennt vom übrigen Vereinsinhalt. */
.schedule-wrap{
  padding-block:44px 35px
}
.schedule-heading{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:25px;
  margin-bottom:27px
}
.schedule-heading h2{
  font-size:clamp(2rem,3.7vw,3.05rem);
  margin-top:13px
}
.schedule-heading>p{
  font-size:.95rem;
  color:#c4c6cd;
  line-height:1.7
}
.schedule-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:24px
}
.schedule-team{
  min-width:0;
  background:#26272e;
  border:1px solid #484951;
  border-top:4px solid var(--red);
  padding:25px
}
.schedule-team-head{
  display:flex;
  align-items:center;
  gap:15px;
  margin-bottom:22px
}
.schedule-team h3{
  font-family:var(--condensed);
  font-size:1.85rem;
  color:white;
  margin-top:5px
}
.schedule-team-head p{
  font-size:.8rem;
  color:#c4c6cd;
  margin-top:5px
}
.schedule-league{
  font-size:.7rem;
  font-weight:750;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#ff728a
}
.schedule-number{
  margin-left:auto;
  font-family:var(--condensed);
  font-size:2.65rem;
  font-weight:800;
  color:#72737c;
  line-height:1
}
.schedule-widget{
  min-width:0;
  background:#fff;
  color:var(--ink);
  border-radius:3px;
  overflow:auto
}
.widget-status{
  padding:24px;
  font-size:.9rem;
  color:#595e58;
  line-height:1.65
}
.schedule-widget iframe{
  max-width:100%;
  border:0
}
.schedule-link{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  margin-top:17px;
  border:1px solid #64656d;
  font-size:.83rem;
  font-weight:700;
  text-align:center;
  padding:9px 12px;
  color:white
}
.schedule-link:hover{
  background:var(--red);
  border-color:var(--red)
}
.schedule-source{
  font-size:.75rem;
  color:#c4c6cd;
  margin-top:23px
}
@media(max-width:780px){
  .schedule-heading{
    align-items:flex-start;
    flex-direction:column;
    gap:17px
  }
  .schedule-grid{
    grid-template-columns:1fr
  }
  .schedule-wrap{
    padding-block:35px
  }
  .schedule-team{
    padding:23px
  }
}
@media(max-width:520px){
  .schedule-team{
    padding:18px 12px
  }
  .schedule-team-head{
    gap:11px
  }
  .schedule-team h3{
    font-size:1.6rem
  }
  .schedule-number{
    font-size:2rem
  }
  .widget-status{
    padding:20px
  }
  .schedule-link{
    font-size:.77rem
  }
  .schedule-league{
    font-size:.66rem
  }
}
@media(prefers-reduced-motion:reduce){
  html{
    scroll-behavior:auto
  }
  *{
    transition:none!important
  }
}
.standings{
  background:#202126;
  border-top:1px solid #484951
}
.standings .schedule-wrap{
  padding-block:48px
}
.standings .schedule-team{
  background:#292a30
}
.single-standings .schedule-grid{
  grid-template-columns:1fr
}
.single-standings .schedule-team{
  max-width:860px;
  width:100%;
  margin-inline:auto
}
html{
  scroll-padding-top:var(--nav-offset,145px)
}
.instagram-feed{
  min-width:0
}
.instagram-feed-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:23px 27px;
  margin-bottom:27px;
  border-left:4px solid var(--red);
  background:linear-gradient(115deg,#4b1424,#24252b 64%);
  color:white
}
.instagram-account{
  display:flex;
  align-items:center;
  gap:16px;
  min-width:0
}
.instagram-account img{
  width:57px;
  height:61px;
  object-fit:contain;
  filter:drop-shadow(0 3px 3px #0005)
}
.instagram-account span{
  display:block;
  font-size:.78rem;
  color:#d9cbd0;
  margin-bottom:6px
}
.instagram-account strong{
  font-size:1.3rem;
  letter-spacing:.02em
}
.instagram-follow{
  font-size:.82rem;
  font-weight:700;
  border-bottom:2px solid var(--red);
  padding:12px 0;
  white-space:nowrap
}
.instagram-follow:hover{
  color:#ffb4c1
}
.instagram-feed-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:26px
}
.instagram-post{
  min-width:0;
  background:#fff;
  border:1px solid #e2dfe1;
  border-bottom:4px solid var(--red);
  box-shadow:0 7px 20px #22131b0b;
  position:relative;
  overflow:hidden
}
.instagram-post-picture{
  aspect-ratio:1;
  position:relative;
  overflow:hidden;
  background:#25262b
}
.instagram-post-picture img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .3s
}
.instagram-post:hover .instagram-post-picture img{
  transform:scale(1.035)
}
.instagram-post-image-failed img{
  display:none
}
.instagram-post-image-failed::after{
  content:'Bild auf Instagram ansehen ↗';
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  color:white;
  font-size:.85rem;
  padding:20px;
  text-align:center
}
.instagram-post-type{
  position:absolute;
  bottom:15px;
  left:15px;
  color:white;
  background:#17171de6;
  padding:7px 11px;
  font-size:.7rem;
  font-weight:750;
  letter-spacing:.08em;
  text-transform:uppercase
}
.instagram-post-copy{
  padding:23px 23px 27px
}
.instagram-post-meta{
  display:block;
  color:var(--red);
  font-size:.72rem;
  font-weight:750;
  letter-spacing:.055em;
  text-transform:uppercase;
  margin-bottom:13px
}
.instagram-post h3{
  font-family:var(--condensed);
  font-size:1.65rem;
  line-height:1.18;
  color:var(--ink);
  overflow-wrap:anywhere
}
.instagram-post-caption{
  font-size:.88rem;
  color:var(--muted);
  line-height:1.65;
  margin-top:14px;
  white-space:pre-line;
  overflow-wrap:anywhere;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:4;
  overflow:hidden
}
.instagram-post-link{
  display:inline-block;
  margin-top:20px;
  padding-bottom:8px;
  font-size:.8rem;
  font-weight:750;
  border-bottom:2px solid var(--red);
  color:var(--ink)
}
.instagram-post-link::after{
  content:'';
  position:absolute;
  inset:0
}
.instagram-post:focus-within{
  outline:3px solid var(--red);
  outline-offset:4px
}
.instagram-post-link:hover{
  color:var(--red)
}
.instagram-feed-status{
  font-size:.85rem;
  line-height:1.65;
  color:var(--muted);
  margin-bottom:24px
}
.instagram-feed-status[hidden]{
  display:none
}
.instagram-feed-foot{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  margin-top:28px;
  font-size:.82rem
}
.instagram-feed-foot>a:first-child{
  font-weight:700;
  border-bottom:1px solid var(--red);
  padding-bottom:8px
}
.instagram-provider{
  font-size:.68rem;
  color:var(--muted);
  text-decoration:underline;
  text-underline-offset:3px
}
.instagram-pending-art{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:25px;
  background:radial-gradient(circle at 75% 15%,#a41a3c,transparent 65%),linear-gradient(135deg,#4c1728,#25252c);
  color:#f1dbe3
}
.instagram-pending-art>span:last-child{
  font-size:.7rem;
  font-weight:800;
  letter-spacing:.16em
}
.instagram-pending-number{
  position:absolute;
  top:15px;
  right:20px;
  font-family:var(--condensed);
  font-size:4.5rem;
  line-height:1;
  color:#ffffff13
}
.instagram-pending-camera{
  width:59px;
  height:59px;
  border:3px solid #f1dbe3;
  border-radius:15px;
  position:relative
}
.instagram-pending-camera::before{
  content:'';
  position:absolute;
  width:24px;
  height:24px;
  border:3px solid #f1dbe3;
  border-radius:50%;
  left:14px;
  top:14px
}
.instagram-pending-camera::after{
  content:'';
  position:absolute;
  width:6px;
  height:6px;
  background:#f1dbe3;
  border-radius:50%;
  right:7px;
  top:7px
}
.instagram-post-pending p{
  font-size:.85rem;
  line-height:1.65;
  color:var(--muted);
  margin-top:15px
}
@media(max-width:960px){
  .instagram-feed-grid{
    gap:18px
  }
  .instagram-post-copy{
    padding:20px 18px
  }
  .instagram-post h3{
    font-size:1.45rem
  }
}
@media(max-width:780px){
  .instagram-feed-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
  .instagram-feed-head{
    padding:22px
  }
  .instagram-post h3{
    font-size:1.65rem
  }
}
@media(max-width:520px){
  .instagram-feed-grid{
    grid-template-columns:1fr;
    gap:27px
  }
  .instagram-feed-head{
    flex-direction:column;
    align-items:flex-start;
    gap:12px;
    padding:21px
  }
  .instagram-account strong{
    font-size:1.2rem
  }
  .instagram-account span{
    font-size:.71rem
  }
  .instagram-post-copy{
    padding:23px
  }
  .instagram-feed-foot{
    flex-direction:column;
    align-items:flex-start;
    gap:15px
  }
}
.sponsors-section{
  background:#202126;
  color:white;
  position:relative;
  isolation:isolate;
  border-top:5px solid var(--red);
  overflow:hidden
}
.sponsors-section::before{
  content:'';
  position:absolute;
  z-index:-1;
  inset:0;
  background:radial-gradient(ellipse at 0 0,#7d082c66,transparent 60%);
  pointer-events:none
}
.sponsors-heading{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:50px;
  margin-bottom:37px
}
.sponsors-heading .eyebrow{
  color:#eac7d2;
  font-size:.76rem
}
.sponsors-heading h2{
  margin-top:18px;
  line-height:1.02
}
.sponsors-heading>p{
  max-width:365px;
  line-height:1.7;
  color:#d3cdd2;
  font-size:.96rem
}
.sponsors-grid{
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:13px
}
.sponsor-card{
  background:#fbfafb;
  color:#23242a;
  padding:23px 17px 20px;
  min-height:133px;
  border:1px solid #e2dde0;
  position:relative;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:13px;
  transition:background .2s,border-color .2s
}
.sponsor-card::before{
  content:'';
  position:absolute;
  left:17px;
  top:0;
  width:27px;
  height:3px;
  background:var(--red)
}
.sponsor-card h3{
  font-family:var(--text);
  font-size:.94rem;
  font-weight:750;
  line-height:1.35;
  overflow-wrap:anywhere;
  hyphens:auto
}
.sponsor-card p{
  font-size:.71rem;
  line-height:1.4;
  color:#6d636c;
  overflow-wrap:anywhere
}
.sponsor-card:hover{
  background:white;
  border-color:#e40024
}
.sponsors-bottom{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:25px;
  margin-top:33px;
  border-top:1px solid #5a414c;
  padding-top:24px
}
.sponsors-bottom p{
  font-size:.85rem;
  color:#d7cfd4
}
.sponsors-contact{
  display:inline-flex;
  align-items:center;
  gap:18px;
  background:transparent;
  border:0;
  border-bottom:2px solid var(--red);
  padding:10px 0;
  font-size:.85rem;
  font-weight:750;
  color:white;
  white-space:nowrap;
  min-height:44px
}
.sponsors-contact:hover{
  color:#ffa5b8
}
.club-links{
  display:flex;
  align-items:center;
  gap:24px;
  flex-wrap:wrap
}
@media(max-width:1100px){
  .sponsors-grid{
    grid-template-columns:repeat(4,minmax(0,1fr))
  }
}
@media(max-width:780px){
  .sponsors-grid{
    grid-template-columns:repeat(3,minmax(0,1fr))
  }
  .sponsors-heading{
    align-items:flex-start;
    flex-direction:column;
    gap:23px
  }
  .sponsors-heading>p{
    max-width:540px
  }
  .sponsor-card{
    padding-inline:15px
  }
  .sponsors-bottom{
    align-items:flex-start;
    flex-direction:column;
    gap:10px
  }
}
@media(max-width:520px){
  .sponsors-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:11px
  }
  .sponsor-card{
    padding:21px 13px 18px;
    min-height:135px
  }
  .sponsor-card h3{
    font-size:.9rem
  }
  .sponsor-card p{
    font-size:.69rem
  }
  .sponsors-heading h2{
    font-size:2.6rem
  }
  .sponsors-heading .eyebrow{
    font-size:.69rem
  }
  .sponsor-card::before{
    left:13px
  }
}
@media(prefers-reduced-motion:reduce){
  .sponsor-card{
    transition:none
  }
}
.legal-reading h2{
  font-family:var(--text);
  font-size:1.3rem;
  line-height:1.4;
  letter-spacing:0;
  margin-top:38px;
  text-transform:none
}
.legal-reading h2:first-child{
  margin-top:0
}
.legal-reading p{
  line-height:1.8;
  margin-top:17px
}
.legal-address{
  font-style:normal;
  line-height:1.85;
  margin-top:20px
}
.legal-address a{
  overflow-wrap:anywhere;
  text-decoration:underline;
  text-underline-offset:3px
}
.legal-date{
  font-size:.83rem;
  color:var(--muted)
}
.legal-reading code{
  font-size:.85rem;
  overflow-wrap:anywhere
}
.privacy-panel{
  position:fixed;
  z-index:30;
  bottom:0;
  left:0;
  right:0;
  background:#fff;
  color:#202126;
  border-top:4px solid var(--red);
  box-shadow:0 -12px 40px #0004;
  max-height:75vh;
  overflow:auto
}
.privacy-panel[hidden],.external-gate[hidden]{
  display:none
}
.privacy-panel-inner{
  max-width:1180px;
  margin:auto;
  padding:24px 28px
}
.privacy-panel h2{
  font-family:var(--text);
  font-size:1.2rem;
  line-height:1.4;
  letter-spacing:0
}
.privacy-panel p{
  font-size:.83rem;
  line-height:1.65;
  margin-top:10px;
  max-width:1050px;
  color:#58545b
}
.privacy-options{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
  margin-top:17px
}
.privacy-options label{
  display:flex;
  align-items:flex-start;
  gap:12px;
  padding:13px 15px;
  border:1px solid #d8d4d8;
  cursor:pointer
}
.privacy-options input{
  width:19px;
  height:19px;
  flex-shrink:0;
  margin:2px 0;
  accent-color:var(--red)
}
.privacy-options strong{
  display:block;
  font-size:.86rem
}
.privacy-options small{
  display:block;
  font-size:.75rem;
  line-height:1.5;
  margin-top:5px;
  color:#626068
}
.privacy-actions{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-top:18px
}
.privacy-button{
  display:inline-flex;
  justify-content:center;
  align-items:center;
  min-height:44px;
  padding:11px 17px;
  border:1px solid #807781;
  background:white;
  color:#242126;
  font-size:.82rem;
  font-weight:700;
  cursor:pointer
}
.privacy-button:hover{
  border-color:var(--red);
  background:#fff0f3
}
.privacy-panel-links{
  display:flex;
  gap:24px;
  margin-top:15px;
  font-size:.75rem
}
.privacy-panel-links a,.privacy-panel-links button{
  background:transparent;
  border:0;
  padding:5px 0;
  text-decoration:underline;
  color:#58545b;
  font-size:inherit;
  min-height:30px
}
.external-gate{
  padding:23px;
  background:#fff;
  color:#202126;
  border-left:3px solid var(--red)
}
.external-gate p{
  font-size:.82rem;
  line-height:1.65;
  color:#5e5761;
  max-width:640px
}
.external-gate .privacy-button{
  margin-top:16px
}
.schedule-widget>.external-gate{
  margin-bottom:14px
}
.schedule-widget .widget-status{
  margin-top:10px
}
.privacy-footer-button{
  border:0;
  background:transparent;
  color:inherit;
  padding:10px 0;
  font-size:inherit;
  text-decoration:underline;
  text-underline-offset:3px;
  min-height:44px
}
.dialog-body .legal-reading{
  max-width:none
}
.dialog-body .legal-reading h2{
  font-size:1.12rem;
  margin-top:29px
}
.dialog-body .legal-reading h2:first-child{
  margin-top:0
}
@media(max-width:620px){
  .privacy-options{
    grid-template-columns:1fr;
    gap:10px
  }
  .privacy-panel-inner{
    padding:19px 18px
  }
  .privacy-actions{
    display:grid;
    grid-template-columns:1fr;
    gap:9px
  }
  .privacy-panel{
    max-height:80vh
  }
  .privacy-panel p{
    font-size:.8rem
  }
}
.brand-wordmark small,.site-header .brand-wordmark small{
  letter-spacing:.03em;
  line-height:1.45
}
.hero .eyebrow{
  flex-wrap:wrap
}

/* Gemeinsame Erweiterungen für die eigenständigen Seiten. */
.news-action { display: inline-flex; align-items: center; }
.footer-legal a { display: inline-flex; min-height: 44px; align-items: center; font-size: .82rem; }
.footer-legal a:hover { color: white; }
.page-hero { color: white; background: linear-gradient(115deg, #18191d 70%, #4b1324); padding: 39px 0 54px; border-bottom: 6px solid var(--red); position: relative; overflow: hidden; }
.breadcrumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 13px; font-size: .875rem; color: #c4c6cd; margin-bottom: 31px; position: relative; z-index: 1; }
.breadcrumbs a:hover { color: white; text-decoration: underline; }
.breadcrumbs span + span::before { content: '/'; margin-right: 13px; color: #858893; }
.page-hero .eyebrow { color: #e4dfe3; font-size: .8rem; }
.page-hero h1 { font-family: var(--condensed); font-size: clamp(2.7rem, 5.5vw, 4.6rem); letter-spacing: -.025em; margin-top: 20px; position: relative; z-index: 1; }
.page-hero p { max-width: 635px; color: #d1d2d7; margin-top: 20px; font-size: 1rem; position: relative; z-index: 1; }
.page-hero::after { content: ''; position: absolute; width: 115px; height: 140%; right: 11%; top: -20%; background: #e4002412; transform: skew(-24deg); }
.page-hero .hero-buttons { position: relative; z-index: 1; margin-top: 24px; }
.page-section { padding-block: 62px; }
.page-section h2 { font-size: clamp(2rem, 3vw, 2.6rem); }
.page-section h2 + p { margin-top: 21px; }
.page-intro { max-width: 730px; color: var(--muted); }
.content-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 58px; align-items: start; }
.reading { max-width: 760px; }
.reading p { margin-top: 20px; color: var(--muted); }
.reading h2 { margin-top: 41px; }
.reading h2:first-child { margin-top: 0; }
.reading h3 { margin-top: 29px; font-size: 1.2rem; }
.reading ul { padding-left: 23px; color: var(--muted); margin-top: 20px; }
.reading li + li { margin-top: 11px; }
.reading a:not(.btn) { text-decoration: underline; text-underline-offset: 4px; }
.reading .btn { margin-top: 26px; }
.inline-notice { background: #f0f1ef; border-left: 4px solid var(--red); padding: 19px 23px; font-size: .94rem; color: #535753; margin: 28px 0; }
.inline-notice strong { display: block; color: var(--ink); margin-bottom: 6px; }
.team-picture { margin: 0; background: var(--soft); }
.team-picture img { width: 100%; aspect-ratio: 1.3; object-fit: cover; }
.team-picture figcaption { padding: 15px 19px; color: var(--muted); font-size: .8rem; line-height: 1.6; }
.facts-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 21px; margin-top: 29px; }
.fact { border-top: 3px solid var(--red); background: #f0f1ef; padding: 22px; }
.fact h3 { font-family: var(--condensed); font-size: 1.45rem; }
.fact p { color: var(--muted); margin-top: 13px; font-size: .95rem; }
.fact a { margin-top: 17px; }
.team-switch { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 28px; }
.team-switch a { color: white; }
.single-schedule .schedule-grid { grid-template-columns: 1fr; max-width: 100%; }
.single-schedule .schedule-team { max-width: 860px; width: 100%; margin-inline: auto; }
.section-footer { margin-top: 31px; }
.section-footer .btn { color: white; }
.join-page { background: var(--red); color: white; }
.join-page h2 { margin-bottom: 22px; }
.join-page p { max-width: 700px; }
.join-page .btn { margin-top: 25px; background: white; color: var(--ink); }
.article-layout { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: 58px; align-items: start; }
.article-layout figure { margin: 0; }
.article-layout figure img { width: 100%; max-height: 510px; object-fit: cover; }
.article-layout figcaption { margin-top: 13px; font-size: .85rem; color: var(--muted); }
.article-layout .reading p:first-child { margin-top: 0; }
.article-back { margin-top: 31px; }
.news-list-page .news-card h3 { font-size: 1.7rem; }
.schedule-source a { text-decoration: underline; text-underline-offset: 3px; }
html.no-js .menu-toggle { display: none; }
html.no-js .widget-status { display: none; }
@media (max-width: 960px) {
  html.no-js .header-inner { flex-wrap: wrap; padding-block: 15px; }
  html.no-js .nav { display: flex; position: static; width: 100%; border: 0; }
}
@media (max-width: 780px) {
  .content-grid, .article-layout { grid-template-columns: 1fr; gap: 34px; }
  .page-section { padding-block: 45px; }
  .page-hero { padding-block: 28px 40px; }
  .breadcrumbs { margin-bottom: 24px; }
  .facts-grid { gap: 17px; }
  .article-layout figure { order: -1; }
}
@media (max-width: 520px) {
  .facts-grid { grid-template-columns: 1fr; }
  .page-hero h1 { font-size: 2.7rem; }
  .inline-notice { padding: 18px; }
  .site-header .brand-wordmark small { font-size: .62rem; letter-spacing: .03em; }
  .schedule-league { font-size: .75rem; }
  .schedule-link { font-size: .875rem; }
  .schedule-source { font-size: .8rem; }
}
