:root{
  --bg:#070a0f;
  --text:rgba(255,255,255,.92);
  --muted:rgba(255,255,255,.70);
  --line:rgba(255,255,255,.14);
  --brand:#7dd3fc;
  --brand2:#a7f3d0;
  --shadow:0 18px 60px rgba(0,0,0,.45);
  --radius:18px;
  --max:1120px;
  --topbar-h: 76px; /* wird per JS automatisch gesetzt */
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{max-width:100%;overflow-x:hidden;}
body{
  margin:0;
  padding-top:var(--topbar-h);
  font:16px/1.6 system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  color:var(--text);
  background:var(--bg);
}

a{color:inherit;text-decoration:none}
a:hover{color:var(--brand)}
img{max-width:100%;display:block}
code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.95em}

.container{width:min(var(--max),calc(100% - 40px));margin:0 auto}
.section{padding:78px 0}

.card{
  background:linear-gradient(180deg, rgba(255,255,255,.07), rgba(255,255,255,.04));
  border:1px solid rgba(255,255,255,.14);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
}
.card.pad{padding:18px}

h1{margin:16px 0 10px;line-height:1.05;font-size:clamp(34px,5vw,58px);letter-spacing:-.8px}
h2{margin:0 0 10px;font-size:clamp(24px,3.3vw,36px);letter-spacing:-.4px}
h3{margin:18px 0 10px}
p.sub{margin:0 0 22px;color:var(--muted);max-width:72ch}
.kicker{
  display:inline-flex;gap:10px;align-items:center;
  padding:7px 12px;border-radius:999px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.14);
  color:var(--muted);font-weight:800
}

/* ===== Fixed Topbar (robust) ===== */
.topbar{
  position:fixed;
  top:0;left:0;right:0;
  z-index:9999;
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  background:linear-gradient(to bottom, rgba(7,10,15,.78), rgba(7,10,15,.55));
  border-bottom:1px solid var(--line);
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .topbar{background:rgba(7,10,15,.92);}
}

.nav{display:flex;align-items:center;justify-content:space-between;padding:14px 0;gap:14px;min-width:0}
.brand{display:flex;align-items:center;gap:12px;min-width:0;max-width:100%}
.logoImg{height:72px;width:auto;display:block;filter:drop-shadow(0 0 18px rgba(125,211,252,.18))}

.navlinks{display:flex;gap:18px;align-items:center;min-width:0}
.navlinks a{padding:10px 10px;border-radius:999px;color:var(--muted);font-weight:700}
.navlinks a:hover{background:rgba(255,255,255,.06);color:var(--text)}

.cta{display:flex;gap:10px;align-items:center;min-width:0}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:10px 14px;border-radius:999px;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.06);
  box-shadow:0 12px 40px rgba(0,0,0,.22);
  color:var(--text);font-weight:800;white-space:nowrap
}
.btn.primary{
  border-color:rgba(125,211,252,.35);
  background:linear-gradient(135deg, rgba(125,211,252,.22), rgba(167,243,208,.14))
}
.btn:hover{transform:translateY(-1px)}
.btn:active{transform:translateY(0px)}
.btn.btn-call{padding:10px 12px;min-width:44px}
.btn.btn-cta{padding:10px 14px}

.burger{
  display:none;
  width:42px;height:42px;border-radius:12px;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.06);
  color:var(--text);
}

/* Mobile Menu dropdown */
.mobileMenu{display:none;padding:6px 0 10px}
.mobileMenu a{display:block;padding:10px 0;border-top:1px solid rgba(255,255,255,.10);color:var(--muted);font-weight:900}
.mobileMenu a:hover{color:var(--text)}
.mobileMenu.open{display:block}

@media (max-width:720px){
  .navlinks{display:none}
  .burger{display:inline-flex;align-items:center;justify-content:center}
  .logoImg{height:52px}
}

/* Abstand unter der Navigation reduzieren – ohne alles nach unten zu schieben */
body.home .hero{
  padding-top: clamp(16px, 2.5vh, 32px);
}

body:not(.home) main > .section:first-child{
  padding-top: clamp(18px, 3vh, 36px);
}

/* ===== Globaler Background für ALLE Seiten ===== */
.siteBg{
  position:fixed;
  inset:0;
  z-index:-1;
  pointer-events:none;
  transform:translateY(var(--bg-parallax,0px)) scale(1.06);
  will-change:transform;
  background:
    linear-gradient(to bottom, rgba(7,10,15,.65), rgba(7,10,15,.92)),
    var(--site-hero, url("/assets/images/hero.jpg")) center/cover no-repeat;
  filter:saturate(1.05) contrast(1.03);
}
.siteBg::before{
  content:"";
  position:absolute;
  inset:-25%;
  background:
    radial-gradient(circle at 20% 15%, rgba(125,211,252,.22), transparent 45%),
    radial-gradient(circle at 75% 60%, rgba(167,243,208,.14), transparent 55%);
  mix-blend-mode:screen;
  opacity:.85;
}
.siteBg::after{
  content:"";
  position:absolute;
  inset:0;
  background:url("/assets/images/noise.png");
  opacity:.08;
  mix-blend-mode:overlay;
}

/* ===== Hero (Startseite) ===== */
.hero{position:relative;padding:64px 0 32px;overflow:hidden}
.heroMedia{
  position:absolute;inset:0;
  background:
    linear-gradient(to bottom, rgba(7,10,15,.35), rgba(7,10,15,.90)),
    var(--hero-url, url("/assets/images/hero.jpg")) center/cover no-repeat;
  transform:translateY(var(--parallax,0px)) scale(1.06);
  will-change:transform;
  filter:saturate(1.05) contrast(1.02);
}
.heroGlow{position:fixed;inset:0;min-height:100%;background:radial-gradient(circle at 35% 20%, rgba(125,211,252,.22), transparent 45%),radial-gradient(circle at 70% 55%, rgba(167,243,208,.16), transparent 55%);pointer-events:none;mix-blend-mode:screen}
.heroContent{position:relative;padding:52px 0 20px}
.lead{color:var(--muted);font-size:clamp(16px,2.2vw,19px);max-width:64ch}
.meta{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px;color:var(--muted);font-weight:800}
.pill{padding:7px 10px;border-radius:999px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12)}
.cards{margin-top:26px;display:grid;grid-template-columns:repeat(12,1fr);gap:14px}
.cards>div:nth-child(1){grid-column:span 5}.cards>div:nth-child(2){grid-column:span 4}.cards>div:nth-child(3){grid-column:span 3}
.cards p{margin:8px 0 0;color:var(--muted)}
@media (max-width:920px){.cards>div{grid-column:span 12 !important}}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  .heroMedia{transform:none !important}
  .siteBg{transform:none !important}
  .btn:hover{transform:none}
}

/* Grids */
.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:14px}
.tile{grid-column:span 4}
.tile span{display:block;margin-top:6px;color:var(--muted)}
@media (max-width:920px){.tile{grid-column:span 6}}
@media (max-width:720px){.tile{grid-column:span 12}}

/* Timeline */
.timeline{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media (max-width:920px){.timeline{grid-template-columns:1fr}}
.when{color:var(--brand);font-weight:900;letter-spacing:.2px}

/* Gallery */
.galleryGrid{display:grid;grid-template-columns:repeat(12,1fr);gap:14px}
.galleryShot{
  grid-column:span 4;padding:0;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.05);
  border-radius:var(--radius);
  overflow:hidden;cursor:pointer
}
.galleryShot img{
  width:100%;height:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  transform:scale(1.01);
  transition:transform .35s ease
}
.galleryShot:hover img{transform:scale(1.06)}
@media (max-width:920px){.galleryShot{grid-column:span 6}}
@media (max-width:720px){.galleryShot{grid-column:span 12}}
@media (prefers-reduced-motion: reduce){.galleryShot img{transition:none}}

/* Form */
form{display:grid;gap:12px}
label{font-weight:800;font-size:14px;color:rgba(255,255,255,.86)}
input,textarea{
  width:100%;max-width:100%;
  padding:12px 12px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.16);
  background:rgba(0,0,0,.18);
  color:var(--text);
  outline:none
}
textarea{min-height:120px;resize:vertical}
input:focus,textarea:focus{
  border-color:rgba(125,211,252,.40);
  box-shadow:0 0 0 4px rgba(125,211,252,.12)
}
.notice{color:var(--muted);font-size:13px}
.alert{padding:12px 14px;border-radius:16px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.06)}
.alert.ok{border-color:rgba(167,243,208,.25)}
.alert.bad{border-color:rgba(251,113,133,.25)}

/* Footer */
footer{padding:34px 0 44px;border-top:1px solid var(--line);color:var(--muted)}
.footerRow{display:flex;flex-wrap:wrap;gap:12px 18px;align-items:center;justify-content:space-between}
.footerLinks a{color:var(--muted);margin-right:14px}
.footerLinks a:hover{color:var(--text)}

/* Lightbox */
.lightbox{position:fixed;inset:0;display:none;align-items:center;justify-content:center;background:rgba(0,0,0,.72);backdrop-filter:blur(14px);z-index:200}
.lightbox.open{display:flex}
.lbImg{width:min(92vw,1100px);height:auto;border-radius:16px;border:1px solid rgba(255,255,255,.18);box-shadow:0 30px 100px rgba(0,0,0,.55)}
.lbClose{position:absolute;top:18px;right:18px;width:44px;height:44px;border-radius:14px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.08);color:var(--text);font-size:18px;cursor:pointer}
.lbNav{position:absolute;top:50%;transform:translateY(-50%);width:52px;height:52px;border-radius:16px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.08);color:var(--text);font-size:30px;cursor:pointer;display:flex;align-items:center;justify-content:center}
.lbNav.left{left:18px}
.lbNav.right{right:18px}
.lbMeta{position:absolute;bottom:18px;padding:8px 12px;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);color:var(--muted);font-weight:900}
@media (max-width:720px){.lbNav{display:none}}

.mapWrap{border-radius:16px;overflow:hidden;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.05)}
.mapPlaceholder{aspect-ratio:16/10;display:flex;align-items:center;justify-content:center;padding:18px;text-align:center;color:var(--muted)}


/* Startseite: Hero nutzt das zufällige Bild aus header.php */
.home .heroMedia{
  background:
    linear-gradient(to bottom, rgba(7,10,15,.35), rgba(7,10,15,.90)),
    var(--site-hero, url("/assets/images/hero.jpg")) center/cover no-repeat;
}


/* Startseite: Hero wirkt wie “Content auf Background” + bessere Lesbarkeit */
.home .hero{
  background: transparent;
}
.home .hero::before{
  content:"";
  position:absolute;
  inset:0;
  background: linear-gradient(to bottom, rgba(7,10,15,.55), rgba(7,10,15,.15));
  pointer-events:none;
}
/* Status-Meldungen (Erfolg / Fehler) */
.formStatus{
  margin: 18px 0;
  padding: 14px 18px;
  border-radius: 14px;
  font-weight: 900;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.formStatus.success{
  background: rgba(80, 200, 120, 0.18);
  border: 1px solid rgba(80, 200, 120, 0.45);
  color: #d9ffe8;
}

.formStatus.error{
  background: rgba(220, 80, 80, 0.18);
  border: 1px solid rgba(220, 80, 80, 0.45);
  color: #ffdede;
}

/* Consent Checkbox (grün beim Aktivieren) */
.consent{
  display:flex;
  align-items:flex-start;
  gap:12px;
  margin: 12px 0 16px;
  font-weight: 800;
  color: var(--muted);
  cursor: pointer;
}

.consent input{
  appearance:none;
  -webkit-appearance:none;
  width:22px;
  height:22px;
  border-radius:6px;
  border:2px solid rgba(255,255,255,.35);
  background:rgba(255,255,255,.04);
  cursor:pointer;
  position:relative;
  transition:all .2s ease;
  flex: 0 0 auto;
  margin-top: 2px;
}

.consent input:checked{
  background: rgba(80, 200, 120, 0.35);
  border-color: rgba(80, 200, 120, 0.8);
}

.consent input:checked::after{
  content:"✓";
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:15px;
  font-weight:900;
  color:#eafff2;
}

.consent input:checked + span{
  color:#c9ffe0;
}

/* Mobile: Telefon- & Burger-Icon größer */
@media (max-width: 920px){
  .topbar .btn-call{
    width: 44px;
    height: 44px;
    font-size: 20px;
  }

  .topbar .burger{
    width: 44px;
    height: 44px;
    font-size: 24px;
    line-height: 1;
  }
}

/* Footer wie Topbar (Glas/Dunkel) */
footer{
  background: rgba(10, 12, 16, 0.72);
  border-top: 1px solid rgba(255,255,255,.10);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}

/* Sticky Footer: Footer bleibt unten bei kurzen Seiten */
html, body{
  height: 100%;
}

body{
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

main{
  flex: 1 0 auto;
}

footer{
  flex-shrink: 0;
}

/* Footer: "Nach oben" als runder Icon-Button */
.btn-top{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  font-size: 20px;
  font-weight: 900;
  text-decoration: none;
  color: var(--text);
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.18);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  transition: transform .15s ease, background .15s ease;
}

.btn-top:hover{
  background: rgba(255,255,255,.14);
  transform: translateY(-2px);
}

.btn-top{
  width: 44px;
  height: 44px;
  font-size: 22px;
}

/* Startseite: transparentes Hero-Glow entfernen */
body.home .heroGlow{
  display: none !important;
}

/* STARTSEITE: Hero komplett deaktivieren – wie Unterseiten */
body.home .hero{
  background: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* Alle möglichen Hero-Overlays abschalten */
body.home .heroGlow,
body.home .heroOverlay,
body.home .heroShade{
  display: none !important;
}

body.home .hero::before,
body.home .hero::after{
  content: none !important;
  display: none !important;
}

/* Hero-Content normalisieren */
body.home .heroContent{
  padding-top: 10 !important;
}

/* Startseite: Hero-Glow endgültig deaktivieren */
body.home .heroGlow{
  display: none !important;
}
body.home .hero::before,
body.home .hero::after{
  content: none !important;
  display: none !important;
}
body.home .hero{
  background: transparent !important;
}

/* Globaler Background-Glow über gesamte Seitenhöhe */
.siteBg{
  position: fixed;
  inset: 0;
  min-height: 100%;
  height: auto;
}