html { font-size: 18px; }

body {
  margin: 0;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  font-size: 20px;
  line-height: 1.7;
  color: #111;
  padding-top: 110px;
  padding-bottom: 60px;
}

/* ================= HEADER ================= */
.floating-header{
  position: fixed; top: 0; left: 0; width: 100%; height: 100px;
  background: #fff; display:flex; align-items:center; justify-content:center;
  z-index: 10000; box-shadow: 0 2px 5px rgba(0,0,0,.1);
}
.header-container{
  max-width: 1200px; width: 100%; padding: 0 40px;
  display:flex; justify-content:space-between; align-items:center;
}
.logo img{ height: 80px; display:block; }

/* Desktop Navigation */
.desktop-nav{ display:flex; align-items:center; gap:24px; }
.desktop-nav a{ color:#000; text-decoration:none; font-size:1.1rem; font-weight:500; }

/* Burger / Mobile-Nav */
.burger-menu{
  display:none; position:absolute; top:20px; right:20px;
  font-size:2rem; background:none; border:none; cursor:pointer; z-index:10002;
}
.mobile-nav{
  display:none; flex-direction:column; align-items:center;
  background:#fff; position:absolute; top:100px; left:0; width:100%;
  border-top:1px solid #ddd; z-index:10001; box-shadow:0 6px 12px rgba(0,0,0,.08);
}
.mobile-nav a{
  padding:1rem; text-decoration:none; color:#000; font-size:1.2rem;
  width:100%; text-align:center; border-bottom:1px solid #eee;
}
.mobile-nav.show{ display:flex; }

@media (max-width:768px){
  .desktop-nav{ display:none; }
  .burger-menu{ display:block; }
  .logo img{ height:70px; margin:0 auto; }
}

/* Ankersprung nicht unter Header */
section { scroll-margin-top: 120px; }

/* ================= HERO VIDEO ================= */
.hero-wrapper{ position:relative; width:100%; height:100vh; overflow:hidden; }
.hero-video{ width:100%; height:100%; object-fit:cover; }
#bg-video-mobile{ display:none; }

@media (max-width:768px){
  #bg-video{ display:none; }
  #bg-video-mobile{
    display:block; position:absolute; top:50%; left:50%;
    transform:translate(-50%,-50%); height:100%; width:auto; object-fit:cover;
  }
}

/* Sound Toggle */
.sound-toggle{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  background:rgba(255,255,255,0.85); border-radius:50%; padding:1rem;
  cursor:pointer; opacity:0; transition:opacity .3s ease; z-index:10;
}
.sound-toggle.visible{ opacity:1; }
.sound-toggle img{ width:48px; height:48px; }

/* ================= SECTIONS ================= */
.section{ margin:80px auto; padding:0 40px; max-width:1100px; }
.section-title{ font-size:1.75rem; font-weight:bold; text-align:center; margin-bottom:20px; }
.content-wrapper{ max-width:1100px; padding:0 40px; margin:0 auto; }

/* Beschreibung (Überschrift zentriert, Text links, volle Inhaltsbreite) */
.beschreibung-objektdaten{ padding:4rem 0; }
.beschreibung-objektdaten h2{ text-align:center; }
.beschreibung-objektdaten p{ margin:0; text-align:left; }
.beschreibung-objektdaten .objektdaten-wrapper,
.beschreibung-objektdaten .objektdaten-image{
  max-width:1100px; padding:0 40px; margin:2rem auto 0;
}

/* Objektdaten */
.objektdaten-wrapper{ display:flex; gap:4rem; margin-top:2rem; flex-wrap:wrap; text-align:left; }
.objektdaten-column{ flex:1; min-width:280px; }
.objektdaten-image{ margin-top:3rem; display:flex; justify-content:center; }
.objektdaten-image img{ width:100%; max-width:1200px; height:auto; border-radius:12px; }

/* ================= RUNDGANG ================= */
.tour-wrapper{ position:relative; border-radius:20px; overflow:hidden; max-width:1000px; margin:0 auto; }
.rounded-tour{ width:100%; height:85vh; border:none; border-radius:20px; pointer-events:none; }
.rundgang-overlay{
  position:absolute; inset:0; background:rgba(0,0,0,.4); color:#fff;
  font-size:1.3rem; display:flex; justify-content:center; align-items:center;
  text-align:center; border-radius:20px; z-index:9998; cursor:pointer;
}
.exit-button{
  position:absolute; bottom:20px; right:20px; padding:12px 18px; font-size:1rem;
  background:#111; color:#fff; border:none; border-radius:10px; opacity:.7; cursor:pointer;
  z-index:9999; display:none;
}
.exit-button:hover{ opacity:1; transform:scale(1.05); }

/* ================= GALERIEN ================= */
.galerie-section{ padding:4rem 5vw; }
.gallery-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:1.5rem; }
.gallery-grid-3x2{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.5rem; margin-top:1rem; }
.gallery-grid img, .gallery-grid-3x2 img{
  width:100%; aspect-ratio:1/1; object-fit:cover; border-radius:12px; background:#eee; cursor:pointer;
  transition:transform .2s ease;
}
.gallery-grid img:hover, .gallery-grid-3x2 img:hover{ transform:scale(1.03); }

/* ================= LIGHTBOX (konsistent) ================= */
.lightbox{
  display: none;             /* bleibt aus bis JS öffnet */
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.9);
  z-index: 20000;
  justify-content: center;   /* Flex-Ausrichtung – wird per JS aktiv */
  align-items: center;
}
.lightbox .lightbox-content{
  max-width: 90%;
  max-height: 90%;
  border-radius: 12px;
}
.lightbox .close{
  position: absolute; top: 20px; right: 28px;
  color: #fff; font-size: 40px; font-weight: bold; cursor: pointer;
}
.lightbox .prev, .lightbox .next{
  position: absolute; top: 50%; transform: translateY(-50%);
  color: #fff; font-size: 60px; cursor: pointer; user-select: none; padding: 16px;
}
.lightbox .prev{ left: 3%; }
.lightbox .next{ right: 3%; }
body.no-scroll{ overflow: hidden; }

/* ================= FOOTER ================= */
.floating-footer-links{
  position:fixed; bottom:0; left:0; width:100%;
  background:rgba(255,255,255,0.95); border-top:1px solid #ddd;
  padding:10px 20px; display:flex; justify-content:center; gap:24px;
  font-size:0.9rem; z-index:9999;
}
.floating-footer-links a{ color:#555; text-decoration:none; }
.floating-footer-links a:hover{ color:#000; }