/* ============================================================
   DESIGN TOKENS
============================================================ */
:root {
  --red:        #8B1F1F;
  --red-dark:   #6a1515;
  --grey:       #6d6d6d;
  --grey-light: #a8a8a8;
  --yellow:     #F5C518;
  --blue:       #4A90D9;
  --text:       #2d2d2d;
  --text-light: #555;
  --bg-dark:    #1c1c1c;
  --section-gap: 90px;
}

/* ============================================================
   GLOBAL RESET / BASE
============================================================ */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }

body {
  font-family: 'Open Sans', sans-serif;
  color: var(--text);
  background: #fff;
  margin: 0;
}

h1, h2, h3, h4, h5,
.michroma { font-family: 'Michroma', sans-serif; }

a { color: var(--red); }
a:hover { color: var(--red-dark); text-decoration: none; }

/* ============================================================
   SECTION SYSTEM
   sec-light = helle Sektion (Über uns, Referenzen)
   sec-dark  = dunkle Sektion mit Foto-BG (Leistungen, Kontakt)
   Hintergrundbild je Sektion in der jeweiligen css-Datei gesetzt
   (z. B. leistungen.css: background-image: url('../img/leistungen-bg.jpg'))
============================================================ */
.sec-light {
  padding: var(--section-gap) 0;
  background: #f5f5f5;
}

.sec-dark {
  padding: var(--section-gap) 0;
  position: relative;
  background-color: #1a2a3a;
  background-size: cover;
  background-position: center center;
  background-attachment: fixed;
  color: #fff;
}

.sec-dark::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(20,30,50,0.82);
}

.sec-dark > .container,
.sec-dark > .container-fluid {
  position: relative;
  z-index: 1;
}

.sec-dark .section-eyebrow { color: var(--yellow); }
.sec-dark .section-title   { color: #fff; }
.sec-dark .section-lead    { color: rgba(255,255,255,0.75); }
.sec-dark .section-divider { width: 256px; background: linear-gradient(90deg, transparent, var(--yellow), transparent); }

/* ============================================================
   SECTION SCAFFOLDING (Eyebrow / Title / Lead / Divider)
   gemeinsam genutzt von allen Sektionen
============================================================ */
.section-eyebrow {
  font-family: 'Michroma', sans-serif;
  font-size: 0.92rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--red);
  margin-bottom: 0.4rem;
}

.section-divider {
  width: 256px;
  height: 3px;
  background: linear-gradient(90deg, transparent, var(--red), transparent);;
  margin: 0 auto 1.6rem;
  border: none;
}

.section-title {
  font-size: clamp(1.6rem, 3.5vw, 2.4rem);
  color: var(--text);
  margin-bottom: 1rem;
  letter-spacing: 0.02em;
}

.section-lead {
  font-size: 1rem;
  color: var(--text-light);
  line-height: 1.8;
  max-width: 680px;
}
.section-lead.mx-auto { margin: 0 auto; }

/* ============================================================
   NAVBAR
============================================================ */
#mainNav {
  background: rgba(255,255,255,0.97);
  box-shadow: 0 2px 12px rgba(0,0,0,0.1);
  padding: 0.4rem 0;
  transition: background 0.3s;
}

#mainNav .navbar-brand img {
  height: 52px;
  width: auto;
}

#mainNav .nav-link {
  font-family: 'Michroma', sans-serif;
  font-size: 0.78rem;
  color: var(--text) !important;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 0.5rem 1rem !important;
  transition: color 0.2s;
}

#mainNav .nav-link:hover,
#mainNav .nav-link.active { color: var(--red) !important; }

#mainNav .navbar-toggler { border-color: var(--red); }
#mainNav .navbar-toggler-icon {
  background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='%238B1F1F' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

/* Hamburger-Dropdown: Nav-Punkte rechts ausgerichtet */
@media (max-width: 991px) {
  #mainNav .navbar-collapse {
    text-align: right;
  }
  #mainNav .navbar-nav {
    align-items: flex-end;
  }
}

/* ============================================================
   REVEAL (allgemeine Scroll-Einblendung)
   opacity:0 nur sobald js-ready gesetzt ist (siehe main.js) –
   so bleibt der Inhalt immer sichtbar falls JS nicht lädt.
============================================================ */
.js-ready .reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.55s ease, transform 0.55s ease;
}
.js-ready .reveal.visible { opacity: 1; transform: none; }

/* ============================================================
   FOOTER
============================================================ */
footer {
  background: #0e0e0e;
  color: rgba(255,255,255,0.45);
  padding: 1.4rem 0;
  font-size: 0.82rem;
  text-align: center;
}
footer a {
  color: rgba(255,255,255,0.55);
  margin: 0 0.6rem;
  text-decoration: none;
  cursor: pointer;
  transition: color 0.2s;
}
footer a:hover { color: var(--yellow); }

/* ============================================================
   SCROLL-TO-TOP
   Einblenden ab scrollY > 1000, sonst ausgeblendet (siehe ui.js)
============================================================ */
#scrollTop {
  position: fixed;
  bottom: 1.75rem;
  right: 1.75rem;
  z-index: 1000;
  width: 46px;
  height: 46px;
  background: var(--red);
  border-radius: 50%;
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 3px 14px rgba(0,0,0,0.28);
  transition: background 0.2s, transform 0.2s, opacity 0.35s;
  opacity: 0;
  pointer-events: none;
}
#scrollTop.show { opacity: 1; pointer-events: auto; }
#scrollTop:hover { background: var(--red-dark); transform: translateY(-3px); }
#scrollTop i { color: #fff; font-size: 1rem; }

/* ============================================================
   LIGHTBOX
============================================================ */
#lightbox {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.92);
  z-index: 9999;
  align-items: center;
  justify-content: center;
}
#lightbox.show { display: flex; }
#lightbox img { max-width: 90vw; max-height: 85vh; border-radius: 2px; }
.lb-placeholder {
  color: rgba(255,255,255,0.35);
  font-family: 'Michroma', sans-serif;
  font-size: 0.9rem;
  letter-spacing: 0.1em;
  text-align: center;
}
#lightboxClose {
  position: fixed;
  top: 1.2rem;
  right: 1.5rem;
  background: none;
  border: none;
  color: #fff;
  font-size: 2rem;
  cursor: pointer;
  opacity: 0.65;
  transition: opacity 0.2s;
  line-height: 1;
}
#lightboxClose:hover { opacity: 1; }

/* ============================================================
   MODALS (Impressum / Datenschutz)
============================================================ */
.modal-header {
  background: var(--red);
  color: #fff;
  border-bottom: none;
}
.modal-header .modal-title {
  font-family: 'Michroma', sans-serif;
  font-size: 1rem;
  letter-spacing: 0.06em;
}
.modal-header .close { color: #fff; opacity: 0.8; }
.modal-header .close:hover { opacity: 1; }

.modal-body h5 {
  font-family: 'Michroma', sans-serif;
  font-size: 0.85rem;
  color: var(--red);
  margin-top: 1.5rem;
  margin-bottom: 0.5rem;
  letter-spacing: 0.06em;
}
.modal-body p {
  font-size: 0.91rem;
  color: var(--text-light);
  line-height: 1.75;
}

/* ============================================================
   GLOBAL RESPONSIVE
============================================================ */
@media (max-width: 767px) {
  :root { --section-gap: 60px; }
}

@media (prefers-reduced-motion: reduce) {
  .reveal, .ueber-kachel { transition: none !important; opacity: 1 !important; transform: none !important; }
}
