  
 /* -------------------------------------------------
 * Allgemeines Styling Kopf/Navi/Text
 * ------------------------------------------------- */

.top-logo {
  background-image: url("topfotos_aikido.jpg");
  background-repeat: no-repeat;
  text-shadow: 2px 2px 4px #000000;
}

.bg-bsv-red {
  background-color: #b20000;
}

.text-align-right {
  text-align: right;
}

.text-align-center {
  text-align: center;
}


/* -------------------------------------------------
 * BSV Layout: Hauptinhalt links + Terminliste rechts
 *
 * Verwendung im HTML:
 *
 * <div class="bsv-layout">
 *   <div class="bsv-main">
 *      ...Seiteninhalt...
 *   </div>
 *   <aside class="bsv-side">
 *      <div class="termine-box">
 *         <?php include 'termine.php'; ?>
 *      </div>
 *   </aside>
 * </div>
 *
 * Das ersetzt die alte Bootstrap-"row/col-sm-8 + col-sm-3"-Variante,
 * außer auf Seiten wie "Galerie", wo du die Sidebar bewusst weglässt.
 * ------------------------------------------------- */

/* Grundlayout: zwei Spalten nebeneinander */
.bsv-layout {
  display: flex;
  flex-wrap: nowrap;
  align-items: flex-start;
  justify-content: center;   /* Block insgesamt mittig auf der Seite */
  gap: 1rem;                 /* Abstand zwischen Hauptspalte und Sidebar */
  padding: 1rem;
  box-sizing: border-box;
}

/* Hauptinhalt (linke Spalte) */
.bsv-main {
  flex: 1 1 auto;
  min-width: 0;              /* verhindert horizontales Scrollen bei langen Inhalten */
  max-width: 900px;          /* Lesebreite auf normalen Screens */
}

/* Sidebar (rechte Spalte mit Terminen) */
.bsv-side {
  flex: 0 0 300px;           /* feste Sidebar-Breite */
  max-width: 300px;
  display: block;
}

/* Box-Styling innerhalb der Sidebar (Termine) */
.termine-box {
  border: 1px solid #ccc;
  background-color: #f8f9fa;
  padding: 0.75rem;
  font-size: 0.9rem;
  line-height: 1.4;
}


/* -------------------------------------------------
 * Responsive Verhalten
 * ------------------------------------------------- */

/* < 768px (Handy): Sidebar unter den Inhalt, volle Breite */
@media (max-width: 767.98px) {
  .bsv-layout {
    flex-direction: column;
    align-items: stretch;
  }

  .bsv-main {
    max-width: 100%;
  }

  .bsv-side {
    flex: 0 0 auto;
    max-width: 100%;
    width: 100%;
    margin-top: 1rem;
  }

  /* Termine-Box zentrieren und nicht randlos kleben */
  .termine-box {
    max-width: 480px;
    margin-left: auto;
    margin-right: auto;
  }
}

/* ≥768px (Tablet/iPad hoch & quer, Desktop …):
   - Zwei Spalten bleiben nebeneinander
   - Wir sorgen nur für sinnvolle Max-Breiten
*/
@media (min-width: 768px) {
  .bsv-layout {
    /* schon oben definiert:
       display:flex; justify-content:center; gap:1rem; */
    align-items: flex-start;
  }

  .bsv-main {
    max-width: 900px;
  }

  .bsv-side {
    display: block;
  }
}

/* ≥1200px (große Monitore):
   - etwas mehr Innenabstand
   - linke Spalte darf ein bisschen breiter werden
*/
@media (min-width: 1200px) {
  .bsv-layout {
    padding-left: 2rem;
    padding-right: 2rem;
  }

  .bsv-main {
    max-width: 1000px;
  }
}