/*
Theme Name: TV Oberweier Sport
Theme URI: https://tvoberweier.de
Author: TV Oberweier e.V.
Description: Modernes, sportliches WordPress-Theme für Turn- und Sportvereine.
Version: 3.1
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: tvo-sport
*/

/* TV Oberweier – Modern Sport Theme */
:root{
  --navy:#1b4287;
  --navy-2:#12305f;
  --red:#c9272c;
  --red-2:#e2504f;
  --blue-light:#5c86c9;
  --white:#ffffff;
  --grey:#f4f6f8;
  --text:#1c2b3a;
  --radius:16px;
  --shadow:0 10px 30px rgba(11,30,51,.12);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;overflow-x:hidden;}
body{
  margin:0;font-family:'Poppins',system-ui,-apple-system,Segoe UI,Arial,sans-serif;
  color:var(--text);background:var(--white);line-height:1.55;overflow-x:hidden;
}
h1,h2,h3,h4{font-family:'Poppins',sans-serif;font-weight:800;margin:0 0 .5em;letter-spacing:-.02em;}
a{color:inherit;text-decoration:none;}
img{max-width:100%;height:auto;display:block;}
.container{max-width:1180px;margin:0 auto;padding:0 24px;}
.btn{
  display:inline-flex;align-items:center;gap:8px;background:var(--red);color:#fff;
  padding:14px 28px;border-radius:999px;font-weight:700;font-size:15px;border:none;cursor:pointer;
  box-shadow:0 8px 20px rgba(255,106,26,.35);transition:transform .25s ease, box-shadow .25s ease;
}
.btn:hover{transform:translateY(-3px);box-shadow:0 14px 28px rgba(255,106,26,.45);}
.btn.ghost{background:transparent;border:2px solid #fff;box-shadow:none;}
.eyebrow{
  display:inline-block;background:var(--red);color:#fff;font-weight:800;font-size:12px;
  letter-spacing:.08em;text-transform:uppercase;padding:6px 14px;border-radius:999px;margin-bottom:14px;
}

/* Ticker */
.ticker-wrap{background:var(--navy);color:#fff;overflow:hidden;white-space:nowrap;padding:8px 0;font-size:13px;font-weight:600;}
.ticker{display:inline-block;padding-left:100%;animation:ticker 28s linear infinite;}
.ticker span{margin-right:60px;color:var(--red-2);}
@keyframes ticker{0%{transform:translateX(0);}100%{transform:translateX(-100%);}}

/* Header */
header.site-header{
  position:sticky;top:0;z-index:100;background:rgba(11,30,51,.92);backdrop-filter:blur(8px);
  transition:padding .3s ease;padding:18px 0;
}
header.site-header.shrink{padding:8px 0;box-shadow:0 6px 20px rgba(0,0,0,.25);}
.nav-row{display:flex;align-items:center;justify-content:space-between;}
.brand{display:flex;align-items:center;gap:12px;color:#fff;font-weight:800;font-size:18px;}
.brand .badge{
  height:44px;width:auto;display:flex;align-items:center;justify-content:center;
}
.brand .badge img{height:100%;width:auto;display:block;}
nav.main-nav ul{list-style:none;display:flex;gap:28px;margin:0;padding:0;}
nav.main-nav ul li{position:relative;}
nav.main-nav a{color:#e8eef5;font-weight:600;font-size:14.5px;position:relative;padding:4px 0;display:inline-flex;align-items:center;gap:5px;}
nav.main-nav a::after{content:'';position:absolute;left:0;bottom:-4px;width:0;height:2px;background:var(--red);transition:width .25s ease;}
nav.main-nav a:hover::after{width:100%;}
.burger{display:none;background:none;border:none;color:#fff;font-size:26px;cursor:pointer;}

/* Untermenüs: gleiten sanft auf, ausgelöst durch Klick auf den Link */
nav.main-nav li.menu-item-has-children > a{cursor:pointer;}
nav.main-nav .nav-arrow{
  display:inline-block;font-size:10px;transition:transform .3s ease;pointer-events:none;
}
nav.main-nav li.open > a .nav-arrow{transform:rotate(180deg);}
nav.main-nav .sub-menu{
  list-style:none;position:absolute;top:100%;left:0;min-width:220px;margin:8px 0 0;padding:0;
  background:var(--navy-2);border-radius:12px;box-shadow:var(--shadow);
  max-height:0;overflow:hidden;opacity:0;
  transition:max-height .4s ease, opacity .3s ease, padding .4s ease, margin .4s ease;
  display:flex;flex-direction:column;z-index:50;
}
nav.main-nav .sub-menu.align-right{left:auto;right:0;}
/* Verschachtelte Ebenen klappen nach unten innerhalb des Untermenüs auf (nichts wird abgeschnitten) */
nav.main-nav .sub-menu .sub-menu{
  position:static;min-width:0;margin:0 0 0 12px;box-shadow:none;background:rgba(255,255,255,.05);border-radius:8px;
}
nav.main-nav .sub-menu li{width:100%;}
nav.main-nav .sub-menu li a{padding:10px 16px;font-size:13.5px;font-weight:500;width:100%;justify-content:space-between;}
nav.main-nav .sub-menu li a::after{display:none;}
nav.main-nav .sub-menu li a:hover{background:rgba(255,255,255,.08);}
nav.main-nav li.open > .sub-menu{max-height:1200px;opacity:1;padding:8px;}

/* Hero */
.hero{
  position:relative;padding:120px 0 100px;overflow:hidden;
  background:radial-gradient(1200px 500px at 20% -10%, var(--navy-2), var(--navy) 60%);
  color:#fff;
}
.hero::before,.hero::after{
  content:'';position:absolute;border-radius:50%;filter:blur(60px);opacity:.35;
}
.hero::before{width:420px;height:420px;background:var(--red);top:-120px;right:-100px;animation:float 9s ease-in-out infinite;}
.hero::after{width:300px;height:300px;background:var(--blue-light);bottom:-140px;left:-80px;animation:float 11s ease-in-out infinite reverse;}
@keyframes float{0%,100%{transform:translateY(0) scale(1);}50%{transform:translateY(30px) scale(1.08);}}
.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:50px;align-items:center;position:relative;z-index:2;}
.hero h1{font-size:clamp(32px,5vw,54px);line-height:1.05;}
.hero h1 .accent{color:var(--red);}
.hero p.lead{font-size:18px;color:#c7d4e2;max-width:520px;margin-bottom:28px;}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;}
.hero-visual{
  position:relative;aspect-ratio:1/1;border-radius:24px;
  background:linear-gradient(160deg,var(--navy-2),var(--navy));
  display:flex;align-items:center;justify-content:center;
  box-shadow:var(--shadow);padding:14%;
}
.hero-visual img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 12px 20px rgba(0,0,0,.35));position:relative;z-index:2;}
.hero-visual .ring{position:absolute;inset:14px;border:3px dashed rgba(255,255,255,.35);border-radius:20px;animation:spin 24s linear infinite;}
@keyframes spin{to{transform:rotate(360deg);}}

/* Stats */
.stats{margin-top:-46px;position:relative;z-index:5;}
.stats-inner{
  background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);
  display:grid;grid-template-columns:repeat(4,1fr);padding:30px 10px;
}
.stat{text-align:center;border-right:1px solid #eef1f4;}
.stat:last-child{border-right:none;}
.stat b{display:block;font-size:34px;color:var(--navy);font-weight:800;}
.stat span{font-size:13px;color:#66788c;font-weight:600;}

/* Sections */
section{padding:90px 0;}
.section-head{text-align:center;max-width:640px;margin:0 auto 50px;}
.section-head h2{font-size:clamp(26px,3.5vw,38px);}
.section-head p{color:#5c6f82;}

/* Sport cards */
.grid-sports{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;}
.sport-card{
  background:var(--grey);border-radius:var(--radius);padding:28px 22px;position:relative;overflow:hidden;
  transition:transform .3s ease, box-shadow .3s ease;display:block;cursor:pointer;
}
.sport-card:hover{transform:translateY(-8px) rotate(-.5deg);box-shadow:var(--shadow);}
.sport-card .icon{font-size:34px;margin-bottom:14px;display:inline-block;}
.sport-card h4{font-size:17px;margin-bottom:6px;color:var(--text);}
.sport-card p{font-size:13.5px;color:#5c6f82;margin:0;}
.sport-card-arrow{
  display:block;font-size:12.5px;font-weight:700;color:var(--red);margin-top:12px;
  opacity:0;transform:translateY(6px);transition:opacity .25s ease, transform .25s ease;
}
.sport-card:hover .sport-card-arrow{opacity:1;transform:translateY(0);}
.sport-card::before{
  content:'';position:absolute;top:-30px;right:-30px;width:90px;height:90px;border-radius:50%;
  background:var(--red);opacity:0;transition:opacity .3s ease;
}
.sport-card:hover::before{opacity:.12;}

/* News */
.news-wrap{display:grid;grid-template-columns:1.3fr 1fr;gap:26px;align-items:start;}
.news-main{
  background:var(--navy);color:#fff;border-radius:var(--radius);overflow:hidden;position:relative;
  display:flex;flex-direction:column;min-width:0;
}
.news-main-media{
  width:50%;margin:0 auto;padding:24px 24px 0;box-sizing:border-box;overflow:hidden;
  flex:1 1 auto;min-height:0;min-width:0;display:flex;
}
.news-main-media img{width:100%;height:100%;min-width:0;object-fit:cover;display:block;border-radius:12px;transition:transform .4s ease;}
.news-main:hover .news-main-media img{transform:scale(1.06);}
.news-main-media.placeholder{
  width:50%;margin:24px auto 0;box-sizing:border-box;border-radius:12px;flex:1 1 auto;min-height:0;
  display:flex;align-items:center;justify-content:center;font-size:40px;
  background:linear-gradient(135deg,var(--red),var(--navy-2));
}
.news-main-body{padding:30px 36px;flex-shrink:0;}
.news-main .eyebrow{background:var(--red);color:#fff;}
.news-main h3{font-size:26px;}
.news-list{display:flex;flex-direction:column;gap:14px;}
.news-item{
  background:#fff;border:1px solid #eef1f4;border-radius:12px;padding:12px 16px;
  display:flex;align-items:center;gap:14px;transition:border-color .2s ease, transform .2s ease;
}
.news-item:hover{border-color:var(--red);transform:translateX(4px);}
.news-item-thumb{width:64px;height:56px;border-radius:10px;overflow:hidden;flex-shrink:0;background:#eef1f4;display:flex;align-items:center;justify-content:center;min-width:0;}
.news-item-thumb img{max-width:100%;max-height:100%;width:auto;height:auto;min-width:0;object-fit:contain;display:block;}
.news-item-thumb.placeholder{
  display:flex;align-items:center;justify-content:center;font-size:20px;color:#fff;
  background:linear-gradient(135deg,var(--red),var(--blue-light));
}
.news-item-text{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0;}
.news-item-text a{font-weight:600;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.news-item .date{font-size:12px;color:#8a97a5;font-weight:700;white-space:nowrap;}
.news-item-arrow{color:var(--red);font-weight:700;flex-shrink:0;}

/* Kalender / Termine */
.event-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;}
.event-card{
  background:var(--grey);border-radius:var(--radius);padding:24px;display:flex;gap:18px;
  transition:transform .3s ease, box-shadow .3s ease;
}
.event-card:hover{transform:translateY(-6px);box-shadow:var(--shadow);}
.event-date-badge{
  background:var(--navy);color:#fff;border-radius:12px;min-width:64px;height:64px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;flex-shrink:0;
}
.event-date-badge b{font-size:22px;line-height:1;}
.event-date-badge span{font-size:11px;text-transform:uppercase;letter-spacing:.04em;}
.event-card-body h4{margin-bottom:4px;font-size:17px;}
.event-meta{font-size:13px;color:#5c6f82;margin-bottom:6px;display:flex;gap:14px;flex-wrap:wrap;}
.event-meta span{display:inline-flex;align-items:center;gap:4px;}
.event-card p{margin:0;font-size:13.5px;color:#5c6f82;}
.event-card.featured{background:var(--navy);color:#fff;}
.event-card.featured .event-date-badge{background:var(--red);}
.event-card.featured .event-meta,
.event-card.featured p{color:#c7d4e2;}
.past-events{opacity:.7;}
@media (max-width:900px){.event-grid{grid-template-columns:1fr;}}

/* Countdown / Event */
.event-strip{background:linear-gradient(120deg,var(--navy),var(--navy-2));color:#fff;border-radius:var(--radius);padding:34px 40px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:20px;}
.countdown{display:flex;gap:14px;}
.countdown div{background:rgba(255,255,255,.08);border-radius:10px;padding:10px 16px;text-align:center;min-width:64px;}
.countdown b{display:block;font-size:22px;}
.countdown span{font-size:10px;letter-spacing:.06em;color:#a9bad0;}

/* CTA */
.cta{background:var(--red);color:#fff;text-align:center;border-radius:24px;padding:60px 30px;margin:0 24px;}
.cta h2{font-size:clamp(24px,3.5vw,36px);}

/* Footer */
footer.site-footer{background:var(--navy);color:#c7d4e2;padding:50px 0 20px;margin-top:60px;}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:30px;padding-bottom:30px;border-bottom:1px solid rgba(255,255,255,.1);}
.footer-grid h4{color:#fff;font-size:15px;}
.footer-grid ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px;font-size:14px;}
.footer-bottom{padding-top:20px;display:flex;justify-content:space-between;font-size:12.5px;color:#8a97a5;flex-wrap:wrap;gap:10px;}
.back-to-top{
  position:fixed;right:24px;bottom:24px;width:46px;height:46px;border-radius:50%;background:var(--red);
  color:#fff;display:flex;align-items:center;justify-content:center;font-size:18px;box-shadow:var(--shadow);
  opacity:0;pointer-events:none;transition:opacity .3s ease, transform .3s ease;z-index:99;border:none;cursor:pointer;
}
.back-to-top.show{opacity:1;pointer-events:auto;}
.back-to-top:hover{transform:translateY(-4px);}

/* Reveal animation */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .6s ease, transform .6s ease;}
.reveal.in{opacity:1;transform:translateY(0);}

@media (max-width:900px){
  .hero-grid{grid-template-columns:1fr;}
  .stats-inner{grid-template-columns:repeat(2,1fr);}
  .stat{border-right:none;border-bottom:1px solid #eef1f4;padding-bottom:14px;margin-bottom:14px;}
  .grid-sports{grid-template-columns:repeat(2,1fr);}
  .news-wrap{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr;}
  nav.main-nav{display:none;}
  .burger{display:block;}
  nav.main-nav ul{flex-direction:column;gap:4px;}
  nav.main-nav .sub-menu{
    position:static;box-shadow:none;background:rgba(255,255,255,.06);
    min-width:0;margin:0;border-radius:8px;
  }
  nav.main-nav li.menu-item-has-children > a{padding:14px 4px;width:100%;}
}

/* Beitragsbild auf Beitrags-/Terminseite: volle Breite, Seitenverhältnis bleibt erhalten */
.post-image{border-radius:var(--radius);overflow:hidden;margin-bottom:30px;}
.post-image img{width:100%;height:auto;display:block;}

/* Trainingsplan */
.day-tabs{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-bottom:34px;}
.day-tab{
  background:var(--grey);border:2px solid transparent;color:var(--text);font-weight:700;font-size:14px;
  padding:10px 22px;border-radius:999px;cursor:pointer;transition:background .2s ease, color .2s ease, border-color .2s ease;
}
.day-tab:hover{border-color:var(--red);}
.day-tab.active{background:var(--navy);color:#fff;}
.day-panel{display:none;}
.day-panel.active{display:block;}
.training-list{display:flex;flex-direction:column;gap:14px;max-width:800px;margin:0 auto;}
.training-card{
  background:var(--grey);border-radius:12px;padding:18px 22px;display:flex;align-items:center;gap:20px;
  transition:transform .25s ease, box-shadow .25s ease;
}
.training-card:hover{transform:translateX(4px);box-shadow:var(--shadow);}
.training-time{
  background:var(--navy);color:#fff;border-radius:10px;min-width:84px;text-align:center;padding:10px 8px;flex-shrink:0;
}
.training-time b{display:block;font-size:16px;}
.training-time span{display:block;font-size:11.5px;color:#a9bad0;}
.training-body h4{margin-bottom:4px;font-size:16px;}
.training-meta{display:flex;gap:16px;flex-wrap:wrap;font-size:13px;color:#5c6f82;}
.training-meta a{color:var(--red);font-weight:600;}
@media (max-width:600px){
  .training-card{flex-direction:column;align-items:flex-start;gap:10px;}
  .training-time{display:flex;align-items:center;gap:8px;min-width:0;}
}
