  :root{
    --red:#c4161c;
    --red-dark:#9e1015;
    --grey:#58585a;
    --grey-light:#ececec;
    --grey-mid:#9a9a9c;
    --white:#ffffff;
    --shadow:0 4px 18px rgba(0,0,0,.12);
    --radius:10px;
  }
  *{margin:0;padding:0;box-sizing:border-box}
  body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;color:var(--grey);background:var(--white);line-height:1.5}
  img{max-width:100%;display:block}
  a{color:var(--red)}

  /* ---------- top bar ---------- */
  .topbar{background:var(--grey);color:#fff;font-size:.85rem;display:flex;justify-content:space-between;align-items:center;padding:.4rem 1rem;flex-wrap:wrap;gap:.5rem}
  .topbar .dates{font-weight:700;letter-spacing:.03em}
  .lang-switch button{background:none;border:1px solid rgba(255,255,255,.5);color:#fff;padding:.15rem .6rem;cursor:pointer;font-weight:700;border-radius:4px;margin-left:.3rem}
  .lang-switch button.active{background:var(--red);border-color:var(--red)}

  /* ---------- header ---------- */
  header.hero{position:relative;border-bottom:6px solid var(--red)}
  header.hero img{width:100%}

  /* ---------- nav ---------- */
  nav.sections{position:sticky;top:0;z-index:50;background:var(--white);box-shadow:0 2px 10px rgba(0,0,0,.15);display:flex;overflow-x:auto;white-space:nowrap}
  nav.sections a{flex:0 0 auto;padding:.8rem 1.1rem;text-decoration:none;color:var(--grey);font-weight:700;text-transform:uppercase;font-size:.82rem;letter-spacing:.04em;border-bottom:3px solid transparent}
  nav.sections a:hover{color:var(--red);border-bottom-color:var(--red)}

  /* ---------- shared section styles ---------- */
  section{padding:3rem 1rem;max-width:1200px;margin:0 auto}
  section.full{max-width:none;padding-left:0;padding-right:0}
  .section-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1.5rem;max-width:1200px;margin-left:auto;margin-right:auto;padding:0 1rem}
  h2{color:var(--red);text-transform:uppercase;font-size:1.6rem;letter-spacing:.03em;position:relative;padding-left:.9rem}
  h2::before{content:"";position:absolute;left:0;top:.15em;bottom:.15em;width:5px;background:var(--red);transform:skewX(-12deg)}
  .more-link{font-weight:700;text-decoration:none;font-size:.9rem;text-transform:uppercase;letter-spacing:.03em}
  .more-link::after{content:" →"}
  .hint{font-size:.8rem;color:var(--grey-mid);margin-top:.8rem;padding:0 1rem;max-width:1200px;margin-left:auto;margin-right:auto}

  /* ---------- livestream ---------- */
  #livestream{background:linear-gradient(115deg,var(--grey) 0%,var(--grey) 60%,var(--red-dark) 60.2%,var(--red) 100%);padding-top:3rem;padding-bottom:3rem}
  #livestream .section-head h2{color:#fff}
  #livestream .section-head h2::before{background:#fff}
  #livestream .more-link{color:#fff}
  .player-wrap{max-width:1000px;margin:0 auto;padding:0 1rem}
  .player{position:relative;aspect-ratio:16/9;background:#000;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
  .player video{width:100%;height:100%}
  .player .offline{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.8rem;color:#fff;text-align:center;padding:1rem}
  .live-badge{display:inline-flex;align-items:center;gap:.4rem;background:var(--red);color:#fff;font-weight:800;padding:.25rem .7rem;border-radius:4px;font-size:.8rem;letter-spacing:.05em}
  .live-badge .dot{width:.55rem;height:.55rem;border-radius:50%;background:#fff;animation:pulse 1.4s infinite}
  @keyframes pulse{0%,100%{opacity:1}50%{opacity:.25}}

  /* ---------- results ---------- */
  .tourn-tabs{display:flex;gap:.5rem;flex-wrap:wrap;margin:0 auto 1.2rem;max-width:1200px;padding:0 1rem}
  .tourn-tabs button{border:2px solid var(--red);background:#fff;color:var(--red);font-weight:800;padding:.5rem 1rem;border-radius:6px;cursor:pointer;text-transform:uppercase;font-size:.8rem;letter-spacing:.03em}
  .tourn-tabs button.active{background:var(--red);color:#fff}
  .results-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));max-width:1200px;margin:0 auto;padding:0 1rem}
  .match-card{background:#fff;border:1px solid var(--grey-light);border-left:5px solid var(--red);border-radius:var(--radius);padding:1rem;box-shadow:var(--shadow)}
  .match-card .meta{font-size:.75rem;text-transform:uppercase;color:var(--grey-mid);font-weight:700;letter-spacing:.04em;display:flex;justify-content:space-between;margin-bottom:.6rem}
  .match-card .row{display:flex;justify-content:space-between;align-items:center;padding:.25rem 0;font-size:.95rem}
  .match-card .row .p{display:flex;align-items:center;gap:.45rem}
  .match-card .row .flag{font-size:1.05rem}
  .match-card .row.winner{font-weight:800;color:#222}
  .match-card .score{font-variant-numeric:tabular-nums;letter-spacing:.06em}
  .status-live{color:var(--red);font-weight:800}
  .match-card .serve{color:var(--red);font-size:.7rem;vertical-align:middle}
  .match-card .points{font-size:.8rem;font-weight:800;color:var(--red);font-variant-numeric:tabular-nums}
  .results-state{max-width:1200px;margin:0 auto 1rem;padding:0 1rem;font-size:.9rem}
  .results-state.error{color:var(--red);font-weight:700}
  .results-updated{font-size:.75rem;color:var(--grey-mid);max-width:1200px;margin:.6rem auto 0;padding:0 1rem}

  /* ---------- social ---------- */
  .social-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr));max-width:1200px;margin:0 auto;padding:0 1rem}
  .post-card{background:#fff;border:1px solid var(--grey-light);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);text-decoration:none;color:var(--grey);display:flex;flex-direction:column}
  .post-card:hover{transform:translateY(-3px);transition:.15s}
  .post-card .thumb{aspect-ratio:1/1;background:linear-gradient(135deg,var(--grey-light),var(--grey-mid));display:flex;align-items:center;justify-content:center;font-size:2.6rem;color:#fff;position:relative}
  .post-card .thumb .net{position:absolute;top:.5rem;right:.5rem;background:rgba(0,0,0,.55);color:#fff;font-size:.7rem;font-weight:700;padding:.15rem .5rem;border-radius:4px}
  .post-card .body{padding: .8rem;font-size:.85rem}
  .post-card .body .who{font-weight:800;color:#222;margin-bottom:.2rem}
  .fb-embed-wrap{max-width:1200px;margin:0 auto;padding:0 1rem;overflow:hidden}

  /* ---------- sponsor bar ---------- */
  .sponsor-bar{background:#fff;border-top:4px solid var(--red);border-bottom:4px solid var(--grey);padding:1.4rem 0;overflow:hidden}
  .sponsor-bar h3{text-align:center;text-transform:uppercase;font-size:.8rem;letter-spacing:.15em;color:var(--grey-mid);margin-bottom:1rem}
  .marquee{display:flex;width:max-content;animation:scroll 90s linear infinite}
  .marquee:hover{animation-play-state:paused}
  .marquee .logo{flex:0 0 auto;margin:0 1.6rem;height:64px;display:flex;align-items:center;justify-content:center;background:#fff;border-radius:6px;padding:0 .6rem}
  .marquee .logo img{height:56px;width:auto;max-width:260px;object-fit:contain}
  @keyframes scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}

  footer{background:var(--grey);color:#fff;padding:2rem 1rem;text-align:center;font-size:.85rem}
  footer a{color:#fff}
  footer .socials{margin:.8rem 0;display:flex;gap:1.2rem;justify-content:center;font-weight:700}
  .proto-note{background:#fff8dc;border:1px dashed #c9a227;color:#7a6414;font-size:.8rem;padding:.6rem 1rem;text-align:center}

  /* ---------- unterseiten ---------- */
  .page-wrap{max-width:1000px;margin:0 auto;padding:3rem 1rem}
  .page-wrap h2{margin-bottom:1.5rem}
  .content-block{background:#fff;border:1px solid var(--grey-light);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.5rem;margin-bottom:1.5rem}
  .content-block h3{color:var(--red);text-transform:uppercase;font-size:1rem;letter-spacing:.04em;margin-bottom:.8rem}
  .content-block p{margin-bottom:.6rem}
  .placeholder-note{background:#fff8dc;border:1px dashed #c9a227;color:#7a6414;font-size:.85rem;padding:.8rem 1rem;border-radius:6px;margin-bottom:1.5rem}
  .day-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr))}
  .day-card{background:#fff;border:1px solid var(--grey-light);border-left:5px solid var(--red);border-radius:var(--radius);padding:1.2rem;box-shadow:var(--shadow)}
  .day-card .date{font-weight:800;color:#222;text-transform:uppercase;font-size:.85rem;letter-spacing:.04em;margin-bottom:.6rem}
  .day-card ul{list-style:none}
  .day-card li{padding:.35rem 0;border-bottom:1px dashed var(--grey-light);font-size:.9rem;display:flex;gap:.7rem}
  .day-card li:last-child{border-bottom:none}
  .day-card .time{font-weight:700;color:var(--red);white-space:nowrap;min-width:3.6rem}
  .partner-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(min(220px,100%),1fr));margin-bottom:2rem}
  .partner-card{background:#fff;border:1px solid var(--grey-light);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.4rem 1rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.9rem;text-decoration:none;color:var(--grey)}
  a.partner-card:hover{transform:translateY(-3px);transition:.15s}
  .partner-card img{height:60px;width:auto;max-width:100%;object-fit:contain}
  .partner-card.haupt img{height:120px}
  .haupt-grid{grid-template-columns:repeat(auto-fill,minmax(min(440px,100%),1fr))}
  .partner-card.haupt{padding:2.8rem 2rem}
  .partner-card .pname{font-size:.85rem;font-weight:700;text-align:center}
  .press-downloads a{display:inline-block;margin:.3rem .6rem .3rem 0;border:2px solid var(--red);color:var(--red);font-weight:800;padding:.45rem .9rem;border-radius:6px;text-decoration:none;font-size:.85rem;text-transform:uppercase;letter-spacing:.03em}
  .press-downloads a:hover{background:var(--red);color:#fff}
  nav.sections a.active{color:var(--red);border-bottom-color:var(--red)}
  nav.sections a.sep{margin-left:auto}

  /* ---------- mobile ---------- */
  .nav-toggle{display:none;background:none;border:none;cursor:pointer;font:inherit;font-weight:800;text-transform:uppercase;font-size:.85rem;letter-spacing:.04em;color:var(--grey);padding:.85rem 1rem;text-align:left}
  .nav-toggle::before{content:"\2630";margin-right:.55rem;color:var(--red)}
  @media (max-width: 860px){
    .topbar{justify-content:center;text-align:center}
    nav.sections{flex-wrap:wrap;overflow:visible}
    .nav-toggle{display:block;width:100%}
    nav.sections a{display:none;width:100%;padding:.7rem 1.2rem;border-bottom:1px solid var(--grey-light);border-left:3px solid transparent}
    nav.sections.open a{display:block}
    nav.sections a:hover{border-bottom-color:var(--grey-light)}
    nav.sections a.active{border-left-color:var(--red);border-bottom-color:var(--grey-light)}
    nav.sections a.sep{margin-left:0;border-top:3px solid var(--grey-light)}
    section{padding:2rem 1rem}
    .page-wrap{padding:2rem 1rem}
    .section-head{flex-direction:column;align-items:flex-start;gap:.3rem;margin-bottom:1.1rem}
    h2{font-size:1.25rem}
    .tourn-tabs button{font-size:.72rem;padding:.45rem .7rem}
    .partner-card.haupt img{height:90px}
    .marquee .logo{margin:0 1rem;height:52px}
    .marquee .logo img{height:44px;max-width:200px}
  }

  /* ---------- teaser (vorschau-startseite) ---------- */
  #teaser{background:linear-gradient(115deg,var(--grey) 0%,var(--grey) 60%,var(--red-dark) 60.2%,var(--red) 100%);color:#fff;text-align:center;padding:3.5rem 1rem}
  #teaser h2{color:#fff;padding-left:0}
  #teaser h2::before{display:none}
  #teaser .teaser-text{max-width:46rem;margin:1.2rem auto 0;font-size:1.02rem}
  #teaser .cd-title{margin-top:1.8rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;font-size:.85rem}
  .count-row{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin:1.2rem 0 0}
  .count-box{background:rgba(255,255,255,.14);border-radius:10px;padding:.9rem 1.2rem;min-width:92px}
  .count-box b{display:block;font-size:2.1rem;font-variant-numeric:tabular-nums;line-height:1.1}
  .count-box span{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;opacity:.85}
  .fact-row{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem}
  .fact{background:#fff;color:var(--grey);border-radius:10px;padding:.9rem 1.3rem;font-weight:800;box-shadow:var(--shadow)}
  .fact small{display:block;font-weight:700;color:var(--grey-mid);text-transform:uppercase;font-size:.68rem;letter-spacing:.05em;margin-top:.15rem}
  .teaser-cta{margin-top:2rem}
  .teaser-cta a{display:inline-block;margin:.3rem;background:#fff;color:var(--red);font-weight:800;padding:.7rem 1.3rem;border-radius:8px;text-decoration:none;text-transform:uppercase;font-size:.85rem;letter-spacing:.04em}
  .teaser-cta a:hover{transform:translateY(-2px);transition:.15s}
  @media (max-width: 860px){
    .count-box{min-width:72px;padding:.7rem .8rem}
    .count-box b{font-size:1.5rem}
  }
