/*
Theme Name: Barrierefrei Vereins Theme
Theme URI: https://example.com/
Author: OpenAI
Description: Barrierearmes WordPress-Theme für die Abteilung Tischfußball im schwarz-gelben Alemannia-Aachen-Stil mit WCAG-orientierter Struktur und integriertem Vereinswappen.
Version: 1.3.0
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 8.0
License: GPLv2 or later
Text Domain: bvt
*/
:root{--bvt-black:#080808;--bvt-yellow:#ffd200;--bvt-gold:#f5b700;--bvt-white:#fff;--bvt-gray:#f4f4f4;--bvt-text:#111;--bvt-muted:#4b5563;--bvt-focus:#005fcc;--bvt-max:1180px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;line-height:1.6;color:var(--bvt-text);background:var(--bvt-white)}a{color:#084fa3}a:hover{text-decoration-thickness:3px}.skip-link{position:absolute;left:-999px;top:auto;background:var(--bvt-yellow);color:#000;padding:.75rem 1rem;z-index:1000}.skip-link:focus{left:1rem;top:1rem;outline:4px solid var(--bvt-focus)}:focus-visible{outline:4px solid var(--bvt-focus);outline-offset:3px}.site-header{background:var(--bvt-black);color:var(--bvt-white);border-bottom:6px solid var(--bvt-yellow)}.topbar{background:#1a1a1a;font-size:.95rem}.wrap{max-width:var(--bvt-max);margin:auto;padding:0 1rem}.topbar .wrap,.masthead{display:flex;align-items:center;justify-content:space-between;gap:1rem}.topbar a{color:var(--bvt-white);padding:.5rem;display:inline-block}.masthead{padding:1rem}.brand{display:flex;align-items:center;gap:1rem;color:var(--bvt-white);text-decoration:none}.brand img{max-height:92px;width:auto}.brand-logo{max-height:92px;width:auto;display:block}.brand-mark{width:74px;height:74px;border:4px solid var(--bvt-yellow);border-radius:50%;display:grid;place-items:center;font-weight:900;font-size:1.6rem;color:var(--bvt-yellow)}.brand-title{font-weight:900;font-size:clamp(1.3rem,3vw,2rem);letter-spacing:.02em;text-transform:uppercase}.brand-subtitle{color:var(--bvt-yellow);font-weight:700}.main-navigation ul{list-style:none;margin:0;padding:0;display:flex;gap:.25rem;flex-wrap:wrap}.main-navigation a{color:var(--bvt-white);text-decoration:none;font-weight:800;text-transform:uppercase;padding:.8rem .9rem;display:block;border-radius:.25rem}.main-navigation a:hover,.main-navigation a:focus{background:var(--bvt-yellow);color:#000}.hero{background:linear-gradient(120deg,rgba(0,0,0,.9),rgba(0,0,0,.78)),radial-gradient(circle at top right,var(--bvt-yellow),transparent 34%);color:white;padding:clamp(3rem,7vw,6rem) 0;position:relative;overflow:hidden}.hero:before{content:"";position:absolute;inset:auto -10vw -20vw auto;width:42vw;height:42vw;background:var(--bvt-yellow);opacity:.16;border-radius:50%;pointer-events:none}.hero .wrap{position:relative;z-index:1}.hero-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:2rem;align-items:center}.eyebrow{display:inline-block;background:var(--bvt-yellow);color:#000;font-weight:900;text-transform:uppercase;padding:.3rem .7rem;border-radius:.2rem}.hero h1{font-size:clamp(2.2rem,6vw,4.8rem);line-height:1;margin:.8rem 0;text-transform:uppercase;max-width:850px}.lead{font-size:1.25rem;max-width:720px}.button{display:inline-block;background:var(--bvt-yellow);color:#000;text-decoration:none;font-weight:900;text-transform:uppercase;padding:.9rem 1.15rem;border:0;border-radius:.25rem;box-shadow:0 5px 0 #9a7900;cursor:pointer}.button:hover{transform:translateY(1px)}.button.secondary{background:white;color:#000;box-shadow:0 5px 0 #777}.card{background:white;color:#111;border-radius:.7rem;padding:1.25rem;box-shadow:0 18px 40px rgba(0,0,0,.25);border-top:7px solid var(--bvt-yellow)}.section{padding:3.5rem 0}.section.alt{background:var(--bvt-gray)}.section h2{font-size:clamp(1.8rem,4vw,3rem);line-height:1.1;text-transform:uppercase;margin-top:0}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}.feature{background:white;border:1px solid #ddd;border-left:8px solid var(--bvt-yellow);padding:1.2rem;border-radius:.5rem}.news-list{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.news-card{background:#fff;border:1px solid #ddd;border-radius:.5rem;overflow:hidden}.news-card .placeholder{height:150px;background:linear-gradient(135deg,#111 0 55%,var(--bvt-yellow) 55% 100%)}.news-card div:not(.placeholder){padding:1rem}.bvt-form{display:grid;gap:1rem;max-width:760px}.bvt-form label{font-weight:800}.bvt-form input,.bvt-form select,.bvt-form textarea{width:100%;font:inherit;padding:.8rem;border:2px solid #666;border-radius:.25rem}.bvt-form input:focus,.bvt-form select:focus,.bvt-form textarea:focus{border-color:var(--bvt-focus)}.required{color:#8b0000;font-weight:900}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.notice{padding:1rem;border-left:8px solid #008a00;background:#eefbea}.notice.error{border-left-color:#b00020;background:#fff1f3}.site-footer{background:#111;color:white;padding:2rem 0;border-top:6px solid var(--bvt-yellow)}.site-footer a{color:white}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:1.5rem}.screen-reader-text{position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}@media (max-width:850px){.hero-grid,.grid-3,.news-list,.footer-grid,.form-row{grid-template-columns:1fr}.masthead{align-items:flex-start;flex-direction:column}.main-navigation ul{display:block}.main-navigation a{border-top:1px solid #333}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* =============================================================
   Vorlesefunktion / Text-to-Speech Toolbar
   ============================================================= */
.bvt-tts-bar{
  display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;
  background:#1a1a1a;color:#fff;
  padding:.55rem max(1rem,calc((100% - var(--bvt-max)) / 2 + 1rem));
  font-size:.9rem;border-bottom:3px solid var(--bvt-yellow);
  position:sticky;top:0;z-index:900;
  transition:background .2s;
}
.bvt-tts-bar.bvt-tts--active{background:#002b00;border-bottom-color:#00c400;}
.bvt-tts-label{font-weight:800;letter-spacing:.04em;margin-right:.25rem;white-space:nowrap;}
.bvt-tts-btn{
  background:var(--bvt-yellow);color:#000;border:0;
  font:inherit;font-weight:800;font-size:.85rem;
  padding:.4rem .85rem;border-radius:.25rem;cursor:pointer;
  white-space:nowrap;
}
.bvt-tts-btn:hover:not(:disabled){background:var(--bvt-gold);}
.bvt-tts-btn:focus-visible{outline:4px solid var(--bvt-focus);outline-offset:3px;}
.bvt-tts-btn:disabled{opacity:.4;cursor:not-allowed;}
.bvt-tts-speed{display:flex;align-items:center;gap:.4rem;margin-left:.25rem;}
.bvt-tts-speed label{font-size:.85rem;white-space:nowrap;}
.bvt-tts-speed select{
  font:inherit;font-size:.85rem;
  padding:.3rem .5rem;border:2px solid #555;border-radius:.25rem;
  background:#2a2a2a;color:#fff;cursor:pointer;
}
.bvt-tts-speed select:focus-visible{outline:4px solid var(--bvt-focus);outline-offset:2px;}
.bvt-tts-status{
  margin-left:auto;font-size:.8rem;color:#ccc;
  white-space:nowrap;
  /* Für Screenreader sichtbar, visuell dezent */
}
@media(max-width:600px){
  .bvt-tts-bar{gap:.4rem;padding:.5rem .75rem;}
  .bvt-tts-status{display:none;}
}

/* =============================================================
   Sponsoren-Grid
   ============================================================= */
.bvt-sponsoren-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(200px,1fr));
  gap:1.25rem;
  margin-top:1.5rem;
}
.bvt-sponsor-card{
  background:#fff;border:1px solid #ddd;border-radius:.5rem;
  padding:1.25rem;display:flex;flex-direction:column;align-items:center;
  gap:.75rem;text-align:center;
  transition:box-shadow .15s;
}
.bvt-sponsor-card:has(a):hover{box-shadow:0 6px 20px rgba(0,0,0,.12);}
.bvt-sponsor-card img{max-width:160px;max-height:70px;object-fit:contain;width:auto;height:auto;}
.bvt-sponsor-name{font-size:.85rem;font-weight:700;color:var(--bvt-muted);}
.bvt-sponsor-card a{text-decoration:none;color:inherit;display:flex;flex-direction:column;align-items:center;gap:.5rem;}
.bvt-sponsor-card a:hover .bvt-sponsor-name{color:var(--bvt-focus);}
.bvt-sponsor-card a:focus-visible{outline:4px solid var(--bvt-focus);outline-offset:4px;border-radius:.25rem;}

/* =============================================================
   Inhaltsverzeichnis (ToC) auf Über-Uns-Seite
   ============================================================= */
.bvt-toc{
  display:flex;gap:1rem;flex-wrap:wrap;
  margin-bottom:2rem;padding:.75rem 1rem;
  background:var(--bvt-gray);border-left:6px solid var(--bvt-yellow);
  border-radius:.25rem;
}
.bvt-toc a{font-weight:800;text-decoration:none;}
.bvt-toc a:hover{text-decoration:underline;}

/* Kontaktseite Zwei-Spalten auf kleinen Screens */
@media(max-width:850px){
  .bvt-sponsoren-grid{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:500px){
  .bvt-sponsoren-grid{grid-template-columns:1fr;}
}
