/* =========================================================================
   BOBO Broadcast — Seiten-spezifische Styles
   (Training, Trainer, Camps, Vereine, Presse, Kontakt, Legal)
   ========================================================================= */

.bc-kicker-line { font-family: var(--bc-mono); font-size: 11px; color: var(--bc-lime); letter-spacing: 1.5px; text-transform: uppercase; display: inline-block; margin-bottom: 14px; }
.bc-page-hero { padding: 60px 0 40px; border-bottom: 1px solid rgba(255,255,255,.08); margin-bottom: 40px; max-width: 1100px; }
.bc-page-h1 { font-size: clamp(56px, 8vw, 120px); font-weight: 900; line-height: .9; letter-spacing: -3px; text-transform: uppercase; margin: 0 0 20px; }
.bc-page-h1 em { font-style: normal; color: var(--bc-lime); }
.bc-page-lede { font-size: 18px; line-height: 1.6; color: rgba(255,255,255,.75); max-width: 780px; margin: 0; }

/* -------------------------------------------------------------------------
   TRAINING — Vollprogramme
   ------------------------------------------------------------------------- */
.bc-programs--full { grid-template-columns: repeat(2, 1fr); }
.bc-program--full { aspect-ratio: auto; padding: 32px; gap: 16px; }
.bc-program-head { display: flex; justify-content: space-between; align-items: center; font-family: var(--bc-mono); font-size: 11px; color: rgba(255,255,255,.5); letter-spacing: 1px; text-transform: uppercase; }
.bc-program-tag { color: var(--bc-lime); }
.bc-program--full h3 { font-size: 28px; margin: 0; }
.bc-program-body { font-size: 14px; color: rgba(255,255,255,.8); line-height: 1.6; margin: 0; }
.bc-program-ideal { font-size: 13px; color: rgba(255,255,255,.55); line-height: 1.6; margin: 0; padding-top: 12px; border-top: 1px solid rgba(255,255,255,.08); font-family: var(--bc-mono); }

/* -------------------------------------------------------------------------
   TRAINER
   ------------------------------------------------------------------------- */
.bc-trainer-hero { display: grid; grid-template-columns: 1fr 1.2fr; gap: 40px; background: rgba(15,18,21,.5); border: 1px solid rgba(255,255,255,.08); padding: 0; margin-bottom: 60px; }
.bc-trainer-photo { position: relative; aspect-ratio: 3/4; background: linear-gradient(180deg, rgba(200,255,76,.08), #0b0d0f); display: grid; place-items: end center; overflow: hidden; }
.bc-trainer-photo img { width: 95%; height: auto; filter: drop-shadow(0 30px 60px rgba(0,0,0,.7)); }
.bc-trainer-body { padding: 48px; display: flex; flex-direction: column; gap: 12px; justify-content: center; }
.bc-trainer-name { font-size: 56px; font-weight: 900; line-height: .95; letter-spacing: -1.5px; text-transform: uppercase; margin: 0; }
.bc-trainer-tag { font-family: var(--bc-mono); font-size: 13px; color: var(--bc-lime); letter-spacing: 1px; text-transform: uppercase; margin: 0; }
.bc-trainer-role { font-size: 14px; color: rgba(255,255,255,.7); margin: 0 0 8px; line-height: 1.5; }
.bc-trainer-bullets { list-style: none; padding: 0; margin: 8px 0 20px; display: flex; flex-direction: column; gap: 8px; }
.bc-trainer-bullets li { position: relative; padding-left: 24px; font-size: 14px; color: rgba(255,255,255,.85); }
.bc-trainer-bullets li::before { content: '▸'; position: absolute; left: 0; color: var(--bc-lime); }
.bc-trainer-cta { display: flex; gap: 10px; flex-wrap: wrap; }

.bc-pillars-head { margin: 40px 0 24px; padding-bottom: 20px; border-bottom: 1px solid rgba(255,255,255,.08); }
.bc-pillars-head h2 { font-size: 48px; font-weight: 900; line-height: 1; letter-spacing: -1px; text-transform: uppercase; margin: 0 0 10px; }
.bc-pillars-head h2 em { font-style: normal; color: var(--bc-lime); }
.bc-pillars-head p { font-family: var(--bc-mono); font-size: 12px; color: rgba(255,255,255,.55); letter-spacing: .5px; margin: 0; }

.bc-pillars { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.08); margin-bottom: 40px; }
.bc-pillar { background: rgba(15,18,21,.5); padding: 32px; display: flex; flex-direction: column; gap: 12px; }
.bc-pillar-num { font-family: var(--bc-mono); font-size: 36px; font-weight: 700; color: var(--bc-lime); line-height: 1; letter-spacing: -2px; }
.bc-pillar h3 { font-size: 20px; font-weight: 900; text-transform: uppercase; letter-spacing: -.2px; margin: 0; }
.bc-pillar p { font-size: 13px; color: rgba(255,255,255,.65); line-height: 1.6; margin: 0; }

.bc-philosophy { padding: 60px 40px; background: var(--bc-lime); color: #000; margin: 40px 0 0; text-align: center; }
.bc-philosophy .bc-kicker-line { color: #000; opacity: .6; }
.bc-philosophy p { font-size: clamp(24px, 3vw, 36px); font-weight: 900; line-height: 1.25; letter-spacing: -.5px; text-transform: uppercase; margin: 0 auto; max-width: 900px; }

/* -------------------------------------------------------------------------
   CAMPS
   ------------------------------------------------------------------------- */
.bc-camps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.08); margin-bottom: 60px; }
.bc-camp { background: rgba(15,18,21,.5); padding: 24px; display: flex; flex-direction: column; gap: 10px; position: relative; min-height: 240px; }
.bc-camp-num { font-family: var(--bc-mono); font-size: 10px; color: rgba(255,255,255,.4); letter-spacing: 1px; }
.bc-camp-status { position: absolute; top: 20px; right: 20px; font-family: var(--bc-mono); font-size: 10px; letter-spacing: 1px; text-transform: uppercase; color: var(--bc-lime); }
.bc-camp--hot .bc-camp-status { color: #ff3c3c; }
.bc-camp--soon .bc-camp-status { color: rgba(255,255,255,.4); }
.bc-camp h3 { font-size: 24px; font-weight: 900; margin: 0; text-transform: uppercase; letter-spacing: -.3px; }
.bc-camp-when { font-family: var(--bc-mono); font-size: 12px; color: rgba(255,255,255,.6); letter-spacing: .5px; }
.bc-camp-bar { height: 4px; background: rgba(255,255,255,.08); margin-top: auto; }
.bc-camp-bar i { display: block; height: 100%; background: var(--bc-lime); }
.bc-camp--hot .bc-camp-bar i { background: #ff8040; }
.bc-camp--soon .bc-camp-bar i { background: rgba(255,255,255,.3); }
.bc-camp-foot { display: flex; justify-content: space-between; align-items: center; font-family: var(--bc-mono); font-size: 11px; color: rgba(255,255,255,.55); text-transform: uppercase; letter-spacing: .5px; padding-top: 8px; }
.bc-camp-foot .bc-btn { padding: 6px 12px; font-size: 10px; }

.bc-schedule { display: flex; flex-direction: column; gap: 1px; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.08); margin-bottom: 60px; }
.bc-schedule-row { background: rgba(15,18,21,.5); display: grid; grid-template-columns: 120px 1fr; padding: 18px 24px; align-items: center; }
.bc-schedule-time { font-family: var(--bc-mono); font-size: 16px; font-weight: 700; color: var(--bc-lime); letter-spacing: 1px; }
.bc-schedule-what { font-size: 15px; color: rgba(255,255,255,.85); }

.bc-incl { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.bc-incl-item { display: flex; gap: 12px; align-items: center; padding: 16px 18px; background: rgba(15,18,21,.5); border: 1px solid rgba(255,255,255,.08); font-size: 14px; color: rgba(255,255,255,.85); }
.bc-incl-check { color: var(--bc-lime); font-weight: 900; }

/* -------------------------------------------------------------------------
   VEREINE
   ------------------------------------------------------------------------- */
.bc-offers { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.08); margin-bottom: 60px; }
.bc-offer { background: rgba(15,18,21,.5); padding: 32px; display: flex; flex-direction: column; gap: 12px; }
.bc-offer-num { font-family: var(--bc-mono); font-size: 44px; font-weight: 700; color: var(--bc-lime); line-height: 1; letter-spacing: -2px; opacity: .9; }
.bc-offer h3 { font-size: 22px; font-weight: 900; text-transform: uppercase; letter-spacing: -.3px; margin: 0; }
.bc-offer p { font-size: 14px; color: rgba(255,255,255,.7); line-height: 1.6; margin: 0; }

.bc-partners { display: grid; grid-template-columns: repeat(6, 1fr); gap: 1px; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.08); margin-bottom: 40px; }
.bc-partner { background: rgba(15,18,21,.5); padding: 32px 16px; text-align: center; font-family: var(--bc-mono); font-size: 12px; color: rgba(255,255,255,.7); letter-spacing: 1px; text-transform: uppercase; font-weight: 700; }

.bc-cta-band { display: grid; grid-template-columns: 1fr auto; gap: 32px; align-items: center; padding: 40px; background: rgba(15,18,21,.5); border: 1px solid rgba(255,255,255,.08); margin-top: 40px; }
.bc-cta-band h3 { font-size: 28px; font-weight: 900; text-transform: uppercase; letter-spacing: -.5px; margin: 0 0 6px; }
.bc-cta-band p { font-size: 14px; color: rgba(255,255,255,.6); margin: 0; }

/* -------------------------------------------------------------------------
   PRESSE
   ------------------------------------------------------------------------- */
.bc-press { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.08); margin-bottom: 40px; }
.bc-press-item { background: rgba(15,18,21,.5); padding: 32px; display: flex; flex-direction: column; gap: 12px; }
.bc-press-meta { display: flex; gap: 16px; font-family: var(--bc-mono); font-size: 11px; letter-spacing: 1px; text-transform: uppercase; }
.bc-press-date { color: var(--bc-lime); }
.bc-press-outlet { color: rgba(255,255,255,.5); }
.bc-press-item h3 { font-size: 22px; font-weight: 900; text-transform: uppercase; letter-spacing: -.3px; margin: 0; line-height: 1.2; }
.bc-press-item p { font-size: 14px; color: rgba(255,255,255,.65); line-height: 1.6; margin: 0; }
.bc-press-link { font-family: var(--bc-mono); font-size: 11px; color: var(--bc-lime); text-decoration: none; letter-spacing: 1px; text-transform: uppercase; margin-top: auto; }
.bc-press-link:hover { color: #fff; }

/* -------------------------------------------------------------------------
   SPONSOREN
   ------------------------------------------------------------------------- */
.bc-sponsors { display: flex; flex-direction: column; gap: 24px; margin-bottom: 40px; max-width: 1100px; }
.bc-sponsor-card {
  display: grid; grid-template-columns: 320px 1fr;
  background: rgba(15,18,21,.5); border: 1px solid rgba(255,255,255,.1);
  position: relative; overflow: hidden;
  transition: border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.bc-sponsor-card::before {
  content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 3px;
  background: var(--bc-lime); opacity: 0; transition: opacity .2s ease;
}
.bc-sponsor-card:hover { border-color: rgba(200,255,76,.45); transform: translateY(-3px); box-shadow: 0 14px 40px rgba(0,0,0,.45); }
.bc-sponsor-card:hover::before { opacity: 1; }

.bc-sponsor-logo { background: #fff; display: flex; align-items: center; justify-content: center; padding: 36px 32px; border-right: 1px solid rgba(0,0,0,.06); }
.bc-sponsor-logo img { display: block; max-width: 86%; object-fit: contain; }
.bc-sponsor-logo--matkovic img { max-height: 70px; }
.bc-sponsor-logo--vinwash img { max-height: 140px; }

.bc-sponsor-body { padding: 34px 36px; display: flex; flex-direction: column; gap: 14px; }
.bc-sponsor-tagline { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; font-family: var(--bc-mono); font-size: 11px; letter-spacing: 1px; text-transform: uppercase; }
.bc-sponsor-role { background: var(--bc-lime); color: #000; font-weight: 700; padding: 4px 10px; letter-spacing: 1.5px; }
.bc-sponsor-cat { color: rgba(255,255,255,.5); }
.bc-sponsor-card h3 { font-size: 26px; font-weight: 900; text-transform: uppercase; letter-spacing: -.3px; margin: 2px 0; line-height: 1.1; }
.bc-sponsor-body p { font-size: 14.5px; color: rgba(255,255,255,.72); line-height: 1.75; margin: 0; }
.bc-sponsor-link { display: inline-flex; align-items: center; font-family: var(--bc-mono); font-size: 11px; color: var(--bc-lime); text-decoration: none; letter-spacing: 1px; text-transform: uppercase; margin-top: 6px; }
.bc-sponsor-link:hover { color: #fff; }

.bc-footer a.bc-powered-logos { display: flex; flex-direction: row; align-items: center; gap: 16px; flex-wrap: nowrap; padding: 0; cursor: pointer; text-decoration: none; }

/* -------------------------------------------------------------------------
   KONTAKT
   ------------------------------------------------------------------------- */
.bc-kontakt { display: grid; grid-template-columns: 1fr 1.1fr; gap: 1px; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.08); }
.bc-kontakt-info { background: rgba(15,18,21,.5); padding: 40px; display: grid; grid-template-columns: 1fr 1fr; gap: 32px; align-content: start; }
.bc-info-block { display: flex; flex-direction: column; gap: 6px; }
.bc-info-block b { font-size: 20px; font-weight: 900; color: #fff; text-transform: uppercase; letter-spacing: -.2px; }
.bc-info-block p { font-size: 12px; color: rgba(255,255,255,.55); margin: 0; line-height: 1.5; }
.bc-big-link { font-size: 22px; font-weight: 900; color: var(--bc-lime); text-decoration: none; letter-spacing: -.3px; }
.bc-big-link:hover { color: #fff; }

.bc-kontakt-form { background: rgba(15,18,21,.5); padding: 40px; display: flex; flex-direction: column; gap: 14px; }
.bc-kontakt-form h3 { font-size: 28px; font-weight: 900; text-transform: uppercase; letter-spacing: -.5px; margin: 0 0 8px; }
.bc-kontakt-form label { display: flex; flex-direction: column; gap: 6px; }
.bc-kontakt-form label span { font-family: var(--bc-mono); font-size: 10px; font-weight: 700; letter-spacing: 1.2px; color: rgba(255,255,255,.5); text-transform: uppercase; }
.bc-kontakt-form input, .bc-kontakt-form textarea, .bc-kontakt-form select { padding: 12px 14px; background: #0b0d0f; border: 1px solid rgba(255,255,255,.12); color: #fff; font-family: inherit; font-size: 14px; }
.bc-kontakt-form input:focus, .bc-kontakt-form textarea:focus, .bc-kontakt-form select:focus { outline: 0; border-color: var(--bc-lime); }
.bc-form-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.bc-form-done { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; padding: 20px 0; }
.bc-form-done h4 { font-size: 24px; font-weight: 900; text-transform: uppercase; margin: 0; }
.bc-form-done p { font-size: 14px; color: rgba(255,255,255,.65); margin: 0; }

/* -------------------------------------------------------------------------
   LEGAL (Impressum / Datenschutz)
   ------------------------------------------------------------------------- */
.bc-legal { display: flex; flex-direction: column; gap: 32px; max-width: 800px; }
.bc-legal-block { padding-bottom: 32px; border-bottom: 1px solid rgba(255,255,255,.08); }
.bc-legal-block h3 { font-size: 18px; font-weight: 900; text-transform: uppercase; letter-spacing: -.2px; margin: 0 0 12px; color: var(--bc-lime); }
.bc-legal-block pre { font-family: inherit; white-space: pre-wrap; font-size: 14px; color: rgba(255,255,255,.8); line-height: 1.7; margin: 0; }

/* -------------------------------------------------------------------------
   RESPONSIVE
   ------------------------------------------------------------------------- */
@media (max-width: 1100px) {
  .bc-programs--full { grid-template-columns: 1fr; }
  .bc-trainer-hero { grid-template-columns: 1fr; }
  .bc-pillars, .bc-offers, .bc-press, .bc-kontakt { grid-template-columns: 1fr; }
  .bc-sponsor-card { grid-template-columns: 1fr; }
  .bc-sponsor-logo { min-height: 150px; }
  .bc-camps { grid-template-columns: repeat(2, 1fr); }
  .bc-partners { grid-template-columns: repeat(3, 1fr); }
  .bc-incl { grid-template-columns: 1fr 1fr; }
  .bc-kontakt-info { grid-template-columns: 1fr 1fr; }
  .bc-cta-band { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
  .bc-camps { grid-template-columns: 1fr; }
  .bc-kontakt-info { grid-template-columns: 1fr; }
  .bc-incl { grid-template-columns: 1fr; }
  .bc-form-grid-2 { grid-template-columns: 1fr; }
  .bc-partners { grid-template-columns: repeat(2, 1fr); }
  .bc-page-h1 { letter-spacing: -2px; }
  .bc-trainer-body { padding: 24px; }
  .bc-trainer-name { font-size: 40px; }
}
