:root { --accent: #172EFF; --text:#0f172a; --muted:#475569; --bg:#fff; --card:#f8fafc; }
*{box-sizing:border-box} body{margin:0;font-family:system-ui,Segoe UI,Roboto,Ubuntu,Arial;color:var(--text);background:var(--bg);line-height:1.6}
a{color:var(--accent);text-decoration:none}
.container{max-width:1100px;margin:0 auto;padding:0 16px}
.header{position:sticky;top:0;background:rgba(255,255,255,.9);backdrop-filter:blur(6px);border-bottom:1px solid #e2e8f0;z-index:10}
.header .row{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;padding:8px 0}
.brand{display:flex;align-items:center;gap:10px;font-weight:800}
.logo{height:40px;border-radius:8px}
.nav{display:flex;gap:18px;justify-content:center}
.nav a{padding:10px 12px;border-radius:12px}
.nav a.active{background:var(--card);border:1px solid #e2e8f0}
.social{display:flex;justify-content:flex-end;gap:10px}
.social a img{height:22px;opacity:.9;transition:all .25s}
.hero{padding:48px 0 12px;display:grid;grid-template-columns:1.2fr 1fr;gap:22px;align-items:center}
.hero-card{background:var(--card);border:1px solid #e2e8f0;padding:20px;border-radius:16px}
.btn{display:inline-block;padding:12px 18px;border-radius:12px;font-weight:700;border:1px solid var(--accent);color:#fff;background:var(--accent)}
.section{padding:36px 0}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.card{background:var(--card);padding:16px;border-radius:16px;border:1px solid #e2e8f0}
.gallery img{width:100%;border-radius:14px;border:1px solid #e2e8f0}
.footer{border-top:1px solid #e2e8f0;padding:24px 0;color:var(--muted)}
.footer a{margin-right:14px}
.map{height:340px;border-radius:16px;overflow:hidden;border:1px solid #e2e8f0}
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);display:none;align-items:center;justify-content:center;z-index:60}
.modal{background:#fff;border-radius:16px;max-width:560px;width:92%;padding:20px;border:1px solid #e2e8f0}
.modal .actions{display:flex;gap:10px;justify-content:flex-end;margin-top:12px}
@media(max-width:900px){.hero{grid-template-columns:1fr}.grid3,.grid2{grid-template-columns:1fr}}
.nav a,.btn,.contact-links a,.social a img{transition:all .25s ease-in-out}
.nav a:hover{background:var(--accent);color:#fff;box-shadow:0 0 0 3px var(--accent) inset;border-radius:12px}
.btn:hover{background:#fff;color:var(--accent);border:1px solid var(--accent);box-shadow:0 0 0 3px var(--accent) inset}
.contact-links a:hover{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent) inset}
.social a:hover img{transform:scale(1.1);filter:drop-shadow(0 0 6px var(--accent))}
a{text-decoration:none !important}
.footer a{text-decoration:none !important;transition:text-decoration .2s ease}
.footer a:hover{text-decoration:underline !important}
input.invalid, textarea.invalid { border-color:#dc2626 !important; box-shadow:0 0 0 2px rgba(220,38,38,.15) inset; }

/* Kontaktseite: Social-Links ohne Hover-Blase */
.contact-links a {
    padding: 4px 2px;
    border-radius: 0;
    border: none;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    text-decoration: none;
}

.contact-links a img {
    height: 18px;
    transition: opacity .2s;
}

.contact-links a:hover {
    background: none !important;
    box-shadow: none !important;
    border: none !important;
    text-decoration: underline !important;
}

.contact-links a:hover img {
    opacity: 0.7;
}

/* Kontaktseite: Social-Links ohne Blase und ohne Weißfärbung */
.contact-links a {
    padding: 4px 2px;
    border: none !important;
    background: none !important;
    box-shadow: none !important;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    text-decoration: none;
    color: var(--accent); /* Text immer in deiner blauen Akzentfarbe */
}

.contact-links a img {
    height: 18px;
    transition: opacity .2s;
    filter: none !important;        /* Entfernt Farbwechsel */
}

.contact-links a:hover {
    background: none !important;
    box-shadow: none !important;
    border: none !important;
    text-decoration: underline !important;
    color: var(--accent) !important; /* Kein Weiß beim Hover */
}

.contact-links a:hover img {
    opacity: 0.8; /* dezente Rückmeldung */
    filter: none !important; /* KEIN Weiß/Invert mehr */
}
/* Inhalte im Vordergrund */
.contact-container,
.contact-info,
form {
    position: relative;
    z-index: 2;
    backdrop-filter: blur(4px);
}

.header{
  position: sticky;
  top: 0;
  background: #ffffff;              /* komplett weiß */
  backdrop-filter: blur(6px);
  border-bottom: 1px solid #e2e8f0;
  z-index: 5000;                /* liegt vor der Karte */
}

.leaflet-control-container {
    z-index: 1 !important;
}

/* Kontaktseite: E-Mail & Telefon sollen sich verhalten wie die Social-Links */
.contact-info a,
.card a[data-email],
.card a[data-phone] {
    text-decoration: none;
    color: var(--accent);
    transition: .2s;
}

.contact-info a:hover,
.card a[data-email]:hover,
.card a[data-phone]:hover {
    text-decoration: underline;
    color: var(--accent);
}
/* Aktiver Menüpunkt im Header */
.nav a.active {
    border: 2px solid var(--accent);
    background: white;
    color: var(--accent) !important;
    padding: 6px 14px;
    border-radius: 10px;
}

/* Hamburger-Button */
.nav-toggle {
  display: none;
  border: none;
  background: transparent;
  cursor: pointer;
  padding: 8px;
  margin-left: auto;
}

.nav-toggle span {
  display: block;
  width: 22px;
  height: 2px;
  border-radius: 999px;
  background: var(--accent);
  margin: 4px 0;
  transition: transform 0.2s ease, opacity 0.2s ease;
}

/* Animation bei geöffnetem Menü */
.header.menu-open .nav-toggle span:nth-child(1) {
  transform: translateY(6px) rotate(45deg);
}
.header.menu-open .nav-toggle span:nth-child(2) {
  opacity: 0;
}
.header.menu-open .nav-toggle span:nth-child(3) {
  transform: translateY(-6px) rotate(-45deg);
}

/* Mobile Layout */
@media (max-width: 768px) {
  .header .container.row {
    align-items: center;
  }

  .nav-toggle {
    display: inline-flex;
  }

  /* Navigation & Social zunächst verstecken */
  .nav,
  .social {
    display: none;
  }

  /* Wenn Menü geöffnet → anzeigen */
  .header.menu-open .nav,
  .header.menu-open .social {
    display: flex;
  }

  .header.menu-open .nav {
    flex-direction: column;
    gap: 8px;
    margin-top: 10px;
  }

  .header.menu-open .social {
    margin-top: 8px;
    gap: 10px;
  }

  /* Menübereich unter dem Header, volle Breite */
  .header.menu-open .container.row {
    flex-direction: column;
    align-items: flex-start;
  }
}

/* Mobile-Menü anpassen */
@media (max-width: 768px) {
  /* Header-Layout untereinander statt alles in einer Reihe */
  .header .container.row {
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
  }

  /* Navigation unter das Logo, linksbündig, kleinere Abstände */
  .nav {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    margin-top: 4px;
  }

  /* Links schlichter: keine großen Pillen, nur Text mit kleinem Unterstrich beim Hover */
  .nav a {
    padding: 4px 0;
    font-size: 14px;
    border: none;              /* Pill-Rand weg */
    border-radius: 0;
    background: transparent;   /* kein Button-Hintergrund */
  }

  .nav a:hover {
    background: transparent;   /* keine blaue Blase auf Mobile */
    text-decoration: underline;
  }

  /* Social-Icons etwas Luft nach oben */
  .social {
    margin-top: 4px;
  }
}
