/* ============================================================
   Stimme und Zeichen – Custom Styles (Bootstrap 5.3 Basis)
   Farben, Typografie, Sektionsstrukturen
   ============================================================ */

/* --- Design-Tokens ----------------------------------------- */
:root {
  --suz-hauptfarbe:  #eae8e4;   /* Creme / Hauptfarbe */
  --suz-nebenfarbe:  #9a9a9a;   /* Mittelgrau          */
  --suz-dunkelgrau:  #818181;   /* Dunkelgrau           */
  --suz-schwarz:     #000000;
  --suz-weiss:       #ffffff;
  --suz-text-dunkel: #2b2b2b;
  --suz-text-hell:   #f0efed;

  --suz-schrift-kopf: 'Raleway', sans-serif;
  --suz-schrift-text: 'Roboto', sans-serif;
}

/* --- Basis-Typografie -------------------------------------- */
body {
  font-family: var(--suz-schrift-text);
  font-weight: 300;
  color: var(--suz-text-dunkel);
  background-color: var(--suz-weiss);
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--suz-schrift-kopf);
  font-weight: 300;
}

h1 { font-size: clamp(2rem, 5vw, 3rem); }
h2 { font-size: clamp(1.5rem, 3.5vw, 2.25rem); }
h3 { font-size: clamp(1.25rem, 2.5vw, 1.5rem); }

p, li { font-size: 1.0625rem; line-height: 1.75; }

strong { font-weight: 500; }
em     { font-style: italic; }

/* --- Hintergründe ------------------------------------------ */
.bg-hauptfarbe  { background-color: var(--suz-hauptfarbe) !important; }
.bg-nebenfarbe  { background-color: var(--suz-nebenfarbe) !important; }
.bg-dunkelgrau  { background-color: var(--suz-dunkelgrau) !important; }

/* Helle Textfarbe auf dunklem Hintergrund */
.bg-nebenfarbe, .bg-dunkelgrau, .bg-black {
  color: var(--suz-text-hell);
}
.bg-nebenfarbe h1, .bg-nebenfarbe h2, .bg-nebenfarbe h3,
.bg-dunkelgrau h1, .bg-dunkelgrau h2, .bg-dunkelgrau h3,
.bg-black      h1, .bg-black      h2, .bg-black      h3 {
  color: var(--suz-text-hell);
}

/* --- Navigation -------------------------------------------- */
.navbar-seitenleiste {
  background-color: var(--suz-weiss);
  border-bottom: 1px solid rgba(0,0,0,.08);
}
.navbar-seitenleiste .navbar-brand {
  font-family: var(--suz-schrift-kopf);
  font-weight: 300;
  font-size: 1.1rem;
  letter-spacing: .08em;
  color: var(--suz-schwarz);
}
.navbar-seitenleiste .nav-link {
  font-family: var(--suz-schrift-kopf);
  font-weight: 300;
  color: var(--suz-schwarz);
}
.navbar-seitenleiste .nav-link:hover {
  color: var(--suz-dunkelgrau);
}

/* --- Hero-Bereich ------------------------------------------ */
.heldenbild-bereich {
  position: relative;
  min-height: 80vh;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
}
.heldenbild-bereich .heldenbild {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.heldenbild-bereich .heldentext-overlay {
  position: relative;
  z-index: 2;
  width: 100%;
  padding: 3rem 1.5rem;
  background: linear-gradient(to top, rgba(234,232,228,.9) 0%, rgba(234,232,228,0) 100%);
}
.heldenbild-bereich .heldentext-overlay h2 {
  font-size: clamp(1.25rem, 3vw, 2rem);
  font-weight: 300;
  color: var(--suz-schwarz);
}

/* --- Abschnitte -------------------------------------------- */
.abschnitt {
  padding: 5rem 0;
}
.abschnitt-schmal {
  padding: 3rem 0;
}
.abschnitt-trenner {
  padding: 2.5rem 0;
}

/* Trennzeichen (Barcode-Ästhetik) */
.seitenzeichen {
  font-family: monospace;
  font-size: 1.5rem;
  letter-spacing: .15em;
  opacity: .6;
}

/* --- Bild-Beschriftung ------------------------------------- */
.bildbeschriftung {
  font-family: var(--suz-schrift-text);
  font-weight: 300;
  font-size: .8rem;
  color: var(--suz-dunkelgrau);
  margin-top: .4rem;
  text-align: right;
}

/* --- Karussell (Bootstrap Carousel Override) --------------- */
.bildkarussell {
  background-color: var(--suz-schwarz);
}
.bildkarussell .carousel-item img {
  max-height: 85vh;
  width: 100%;
  object-fit: contain;
  object-position: center;
}
.bildkarussell .carousel-caption {
  background: rgba(0,0,0,.45);
  border-radius: 4px;
  padding: .4rem .9rem;
  bottom: 1.5rem;
}
.bildkarussell .carousel-caption h5 {
  font-family: var(--suz-schrift-kopf);
  font-weight: 300;
  font-size: .95rem;
  margin: 0;
}
.bildkarussell .carousel-control-prev,
.bildkarussell .carousel-control-next {
  width: 8%;
}

/* --- Bild-Galerie ------------------------------------------ */
.galerie-kachel {
  overflow: hidden;
  aspect-ratio: 1 / 1;
}
.galerie-kachel img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .3s ease;
}
.galerie-kachel img:hover {
  transform: scale(1.03);
}

/* Hochformat-Galerie (freies Seitenverhältnis) */
.galerie-frei img {
  width: 100%;
  height: auto;
  display: block;
}

/* --- Zwei-Spalten Bild + Text ------------------------------ */
.zweispalte-bild img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* --- Grundformen-Liste ------------------------------------- */
.grundform-eintrag {
  margin-bottom: 3rem;
}
.grundform-eintrag img {
  width: 100%;
  height: auto;
}
.grundform-titel {
  font-family: var(--suz-schrift-kopf);
  font-weight: 300;
  font-size: 1rem;
  margin-top: .75rem;
  color: var(--suz-text-hell);
  text-align: center;
}

/* --- Nicht-Tun Performance-Grid ---------------------------- */
.performance-raster img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.performance-zelle {
  aspect-ratio: 1 / 1;
  overflow: hidden;
}

/* --- Abschluss-Bild ---------------------------------------- */
.abschlussbild {
  padding: 0;
}
.abschlussbild img {
  width: 100%;
  max-height: 60vh;
  object-fit: cover;
}

/* --- Footer ------------------------------------------------- */
.seitenfuss {
  background-color: var(--suz-weiss);
  border-top: 1px solid rgba(0,0,0,.08);
  padding: 2.5rem 0;
}
.seitenfuss .markenname {
  font-family: var(--suz-schrift-kopf);
  font-weight: 300;
  font-size: 1rem;
  letter-spacing: .08em;
  color: var(--suz-dunkelgrau);
}

/* --- Lightbox-Modal ---------------------------------------- */
#lightbox-modal .modal-dialog {
  max-width: 90vw;
}
#lightbox-modal .modal-body {
  padding: 0;
  background: var(--suz-schwarz);
}
#lightbox-modal .modal-body img {
  width: 100%;
  height: auto;
  max-height: 90vh;
  object-fit: contain;
}
#lightbox-modal .btn-close {
  position: absolute;
  top: .75rem;
  right: .75rem;
  z-index: 10;
  background-color: rgba(255,255,255,.7);
}

/* --- Responsive Anpassungen -------------------------------- */
@media (max-width: 768px) {
  .abschnitt      { padding: 3rem 0; }
  .abschnitt-schmal { padding: 2rem 0; }
  .heldenbild-bereich { min-height: 60vh; }
}
