:root {
  --ajax:#0b4a87;
  --ajax-dark:#083d72;
  --ajax-mid:#1d5f9f;
  --text:#173a63;
  --muted:#6d7f92;
  --line:#dbe5ef;
  --soft:#f6f8fb;
  --white:#fff;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:#fff;font-family:Arial,Helvetica,sans-serif;color:var(--text)}
a{color:inherit;text-decoration:none}
.shell{display:flex;min-height:100vh}
.sidebar{
  width:200px;flex:0 0 200px;background:linear-gradient(180deg,var(--ajax-dark),var(--ajax));
  color:#fff;min-height:100vh;position:sticky;top:0;height:100vh;padding:18px 0 28px;
}
.brand{display:block;padding:0 24px 24px;text-align:left;font-weight:700;font-size:29px;line-height:1.02}
.brand small{display:block;font-weight:400;font-size:18px;line-height:1.25;margin-top:7px}
.nav a,.nav .item{display:flex;align-items:center;justify-content:space-between;padding:13px 24px;font-size:14px}
.nav .active{background:rgba(255,255,255,.16)}
.nav hr{border:0;border-top:1px solid rgba(255,255,255,.28);margin:10px 24px}
.nav .cta{font-weight:700}
.subnav{background:rgba(255,255,255,.08);padding:4px 0 6px}
.subnav a{padding:10px 24px 10px 34px;font-size:13px}
.subnav a.current{font-weight:700;background:rgba(255,255,255,.10)}
.social{padding:6px 24px;font-size:13px}
.social .icons{font-size:24px;letter-spacing:12px;margin-top:10px}
.side-motto{position:absolute;left:24px;bottom:38px;font-size:18px;line-height:1.35;font-weight:700;opacity:.35}
.main{flex:1;min-width:0;background:#fff}
.mobilebar{display:none}

.pagehead{padding:36px 44px 26px;border-bottom:1px solid var(--line)}
.kicker{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:#5f7fa2;margin-bottom:8px}
.title-row{display:flex;justify-content:space-between;align-items:flex-start;gap:24px}
h1{margin:0;color:#123f73;font-size:38px;line-height:1.1}
.rule{width:72px;height:3px;background:var(--ajax);margin:13px 0 0}
.logo-wrap{flex:0 0 auto;position:relative;top:-36px}
.club-logo{width:86px;height:86px;object-fit:contain;display:block;background:#fff}

.content{max-width:1180px;margin:0 auto;padding:30px 44px 48px}
.hero-card{display:grid;grid-template-columns:1.45fr .8fr;gap:22px;align-items:stretch}
.photo-placeholder{
  min-height:360px;border:1px solid var(--line);border-radius:8px;background:
  linear-gradient(135deg,#edf3f9,#dfe9f3);
  display:flex;align-items:center;justify-content:center;text-align:center;color:#6b7d91;
  padding:28px;font-size:18px;
}
.info-panel{border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:0 3px 12px rgba(0,0,0,.05);padding:24px}
.info-panel h2{margin:0 0 18px;font-size:23px;color:#123f73}
.label{font-size:12px;text-transform:uppercase;letter-spacing:.11em;color:#77899b;margin-bottom:5px}
.value{font-size:18px;font-weight:700;color:#173a63}
.block{padding:15px 0;border-top:1px solid #e8eef5}
.block:first-of-type{border-top:0;padding-top:0}
.linkish{color:var(--ajax);font-weight:700}
.badge{display:inline-block;background:var(--soft);border:1px solid var(--line);padding:8px 10px;border-radius:5px;font-size:14px}

.section{margin-top:28px}
.section h2{font-size:26px;color:#123f73;margin:0 0 14px}
.training-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.training-card{border:1px solid var(--line);border-radius:8px;padding:20px;background:#fff;box-shadow:0 3px 10px rgba(0,0,0,.04)}
.training-day{font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:#71859a;margin-bottom:6px}
.training-time{font-size:25px;font-weight:800;color:#123f73;margin-bottom:10px}
.hall{font-size:16px;line-height:1.45}
.hall a{color:var(--ajax);font-weight:700}

.bottom-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:28px}
.box{border:1px solid var(--line);border-radius:8px;padding:22px;background:#fff;box-shadow:0 3px 10px rgba(0,0,0,.04)}
.box h3{margin:0 0 9px;font-size:21px;color:#123f73}
.box p{margin:0 0 16px;line-height:1.55}
.btn{display:inline-block;background:var(--ajax);color:#fff;padding:12px 17px;border-radius:5px;font-weight:700;font-size:14px}
.btn.secondary{background:#fff;color:var(--ajax);border:1px solid var(--ajax)}

.footer{display:grid;grid-template-columns:1.1fr .8fr 1.1fr;gap:34px;padding:28px 44px;background:#f6f8fb;border-top:1px solid var(--line);font-size:13px}
.footer strong{display:block;margin-bottom:6px}

@media(max-width:900px){
  .hero-card{grid-template-columns:1fr}
}
@media(max-width:820px){
  .shell{display:block}
  .sidebar{display:none}
  .mobilebar{display:flex;justify-content:space-between;align-items:center;background:var(--ajax-dark);color:#fff;padding:14px 18px}
  .mobilebar .mbrand{font-weight:700;font-size:20px;line-height:1}
  .mobilebar small{display:block;font-weight:400;font-size:11px;margin-top:4px}
  .mobilebar .burger{font-size:28px}
  .pagehead{padding:26px 18px 22px}
  .title-row{align-items:center}
  h1{font-size:30px}
  .logo-wrap{top:0}
  .club-logo{width:68px;height:68px}
  .content{padding:24px 18px 34px}
  .photo-placeholder{min-height:240px}
  .training-grid,.bottom-grid{grid-template-columns:1fr}
  .footer{grid-template-columns:1fr;padding:24px 18px}
}

.trainer-row{display:flex;align-items:center;gap:14px}
.trainer-photo{width:68px;height:68px;flex:0 0 68px;border-radius:6px;border:1px solid var(--line);
background:linear-gradient(135deg,#edf3f9,#dfe9f3);display:flex;align-items:center;justify-content:center;
text-align:center;color:#7b8b9b;font-size:10px;line-height:1.2;padding:5px}
.trainer-data{min-width:0}


/* ===== Austauschbare Team- und Trainerfotos ===== */
.team-photo-wrap{
  position:relative;
  min-height:360px;
  overflow:hidden;
  background:#eef2f5;
  border:1px solid var(--line);
}
.team-photo-image{
  width:100%;
  height:100%;
  min-height:360px;
  display:block;
  object-fit:cover;
  object-position:center;
}
.team-photo-fallback{
  min-height:360px;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:28px;
  color:#536373;
}
.trainer-photo-wrap{
  width:68px;
  height:68px;
  flex:0 0 68px;
  position:relative;
  overflow:hidden;
  border-radius:6px;
  border:1px solid var(--line);
  background:#eef2f5;
}
.trainer-photo-image{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center;
}
.trainer-photo-fallback{
  width:100%;
  height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  font-size:10px;
  font-weight:800;
  letter-spacing:.05em;
  line-height:1.25;
  color:#536373;
}
@media(max-width:820px){
  .team-photo-wrap,
  .team-photo-image,
  .team-photo-fallback{min-height:240px}
}

/* ===== Fotoformate: Platzhalter / spätere Originalfotos ===== */
.team-photo-wrap{
  min-height:0 !important;
  aspect-ratio:3 / 2;
}
.team-photo-image{
  width:100% !important;
  height:100% !important;
  min-height:0 !important;
  aspect-ratio:3 / 2;
  object-fit:cover;
}
.trainer-photo-wrap{
  width:72px !important;
  height:90px !important;
  flex:0 0 72px !important;
  border-radius:6px;
}
.trainer-photo-image{
  width:100% !important;
  height:100% !important;
  object-fit:cover;
}
@media(max-width:820px){
  .team-photo-wrap,.team-photo-image{min-height:0 !important;aspect-ratio:3 / 2}
  .trainer-photo-wrap{width:64px !important;height:80px !important;flex-basis:64px !important}
}

/* v102 Reparatur: Probetraining/Hallen wie auf den Jugendmannschaftsseiten */
.adult-bottom-grid{
  width:calc(100% - 88px);
  max-width:1092px;
  margin:28px auto 48px;
}
@media(max-width:700px){
  .adult-bottom-grid{
    width:auto;
    margin:28px 12px 32px;
  }
}
