
/* === Footer === */
.footer {
  background-color: var(--farbe3);
  text-align: center;
  padding: 2rem 1rem;
  font-size: 0.95rem;
}

.footer p {
  color: var(--farbe4);
}

.footer-links {
  margin-top: 1rem;
}

/* Footer-Links mit Unterstrich-Effekt */
.footer-links a {
  color: var(--farbe2);
  margin: 0 1rem;
  text-decoration: none;
  position: relative;
  display: inline-block;
  transition: color 0.3s ease;
}

.footer-links a::after {
  content: "";
  position: absolute;
  bottom: -4px;
  left: 0;
  width: 100%;
  height: 2px;
  background-color: var(--farbe2);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.3s ease;
}

/* Hover-Effekt dynamisch von links oder rechts */
.footer-links a.hover-left::after {
  transform-origin: left;
}
.footer-links a.hover-right::after {
  transform-origin: right;
}
.footer-links a:hover::after {
  transform: scaleX(1);
}

/* Impressum /Datenschutz / Kontakt */

  main.impressum,
  main.datenschutz{
      background: var(--farbe8);
      max-width: 900px;
      margin: 8rem auto 5rem;
      padding: 3rem;
      border-radius: 12px;
      box-shadow: 0 0 40px rgba(0, 0, 0, 0.05);
    }

	.datenschutz-box h1,
	.impressum-box h1,
	.datenschutz-box h2,
	.impressum-box h2,
	.datenschutz-box h3,
	.impressum-box h3{
	  max-width: 100%;
	  word-wrap: break-word;
	  margin: 2rem 0 1rem;
	  overflow: visible;
	}
	
	
	.impressum-box,
	.datenschutz-box{
	  max-width: 700px;
	  margin: 8rem auto 4rem;
	  padding: 2rem;
	  background: #fff;
	  border-radius: 10px;
	  box-shadow: 0 0 20px rgba(0,0,0,0.05);
	  font-family: var(--font-sans);
	  color: var(farbe3);
	  line-height: 1.8;
	}
	.impressum-box h1,
	.datenschutz-box h1{
	  font-family: 'Cinzel', serif;
	  /*font-size: 2rem;*/
	  color: var(--farbe9);
	  border-bottom: 2px solid var(--farbe9);
	  padding-bottom: 0.5rem;
	  margin-bottom: 1.5rem;
	  font-size: clamp(1.5rem, 5vw, 3rem);  /* responsive Skalierung */
	  white-space: nowrap;                 /* kein Umbruch */
	  overflow: hidden;                    /* kein Überlaufen */
	  text-overflow: ellipsis;             /* bei Bedarf ... anzeigen */
	  max-width: 100%;
	}
	.impressum-box h2,
	.datenschutz-box h2{
	  font-size: 1.2rem;
	  color: var(--farbe3);
	  margin-top: 2rem;
	}

	
	
	.impressum-box p,
	.datenschutz-box p{
	  text-align: justify;
	  margin-bottom: 1rem;
	}
	



/*

	.impressum-box h3,
	.datenschutz-box h3{
	  font-size: 1.1rem;
	  margin-top: 1.5rem;
	}

	.datenschutz-box{
	  max-width: 800px;
	  margin: 8rem auto 4rem;
	  padding: 2rem;
	  background: var(--farbe4);
	  border-radius: 10px;
	  box-shadow: 0 0 20px rgba(0,0,0,0.05);
	  font-family: 'Roboto', sans-serif;
	  color: #333;
	  line-height: 1.8;
	}
	.datenschutz-box h1{
	  font-family: 'Cinzel', serif;
	  font-size: 2rem;
	  color: var(--farbe9);
	  border-bottom: 2px solid var(--farbe9);
	  padding-bottom: 0.5rem;
	  margin-bottom: 1.5rem;
	}
	.datenschutz-box h2{
	  font-size: 1.3rem;
	  color: var(--farbe3);
	  margin-top: 2rem;
	}
	.datenschutz-box h3{
	  font-size: 1.1rem;
	  margin-top: 1.5rem;
	}
	.datenschutz-box p{
	  text-align: justify;
	  margin-bottom: 1rem;
	}
*/	
	
	
/*	
	
	.Datenschutz{
      background: var(--farbe8);
      max-width: 960px;
      margin: 7rem auto 4rem;
      padding: 2rem;
      border-radius: 8px;
      box-shadow: 0 0 20px rgba(0,0,0,0.1);
      color: var(--farbe3);
    }
*/

	
/* === Standortkarte Kontakt === */

.kontakt-box{
	  max-width: 700px;
	  margin: 8rem auto 4rem;
	  padding: 2rem;
	  background: var(--farbe8);
	  border-radius: 10px;
	  box-shadow: 0 0 20px rgba(0,0,0,0.05);
	  font-family: 'Roboto', sans-serif;
	  color: var(--farbe3);
	  line-height: 1.8;
	}
.kontakt-title{
	  font-family: 'Cinzel', serif;
	  font-size: 2rem;
	  color: var(--farbe9);
	  border-bottom: 2px solid var(--farbe9);
	  padding-bottom: 0.5rem;
	  margin-bottom: 1.5rem;
	}


.kontakt-karte { 
  width: min(1200px, 92vw);
  margin: clamp(24px, 4vw, 48px) auto;
}

.kontakt-karte .section-title{
  margin-bottom: clamp(12px, 2vw, 20px);
  margin-top:10rem
}

.kontakt-karte-wrap{
  display: grid;
  grid-template-columns: 1.4fr 0.8fr; /* Karte | Info */
  gap: clamp(16px, 3vw, 32px);
  align-items: start;
}

#standortkarte{
  height: clamp(360px, 50vh, 520px);
  min-height: 320px;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(0,0,0,.12);
}

/* Infobox rechts */
.karte-info{
  background: var(--farbe8, #fff);
  color: var(--farbe3, #222);
  border-radius: 12px;
  box-shadow: 0 8px 24px rgba(0,0,0,.10);
  padding: clamp(14px, 2.4vw, 22px);
}

.karte-info h3{ 
  margin: 0 0 .35rem; 
  font-family: var(--font-serif, serif);
  color: var(--farbe1, #BE793E);
}
.karte-info p{ margin: .25rem 0; }

.route-link{
  display: inline-block;
  margin-top: .25rem;
  text-decoration: none;
  font-weight: 600;
  color: var(--farbe1, #BE793E);
  border-bottom: 2px solid currentColor;
  padding-bottom: 2px;
}

@media (max-width: 900px){
  .kontakt-karte-wrap{ grid-template-columns: 1fr; }
  #standortkarte{ order: 1; }
  .karte-info{ order: 2; }
}

/* Wenn direkt via Anker gesprungen wird, nicht unter dem fixen Header verschwinden */
#standort{ scroll-margin-top: calc(var(--header-h, 100px) + 12px); }

/* Leaflet feinjustieren für Dark/Light */
.leaflet-container{
  font: inherit;
  color: inherit;
}

.leaflet-bottom {
    bottom: 0;
    display: none; /*ausblenden*/
}


/* Wenn der User die Web verlassen will */
.ei.hidden{ 
display:none; 
}
.ei{
  position: fixed; inset:0; z-index: 99998;
  display:grid; place-items:center;
  background: rgba(0,0,0,.45);
  padding: 16px;
}
.ei-card{
  width: min(520px, 92vw);
  background: var(--farbe8, #fff);
  color: var(--farbe3, #222);
  border-radius: 16px;
  box-shadow: 0 24px 70px rgba(0,0,0,.35);
  padding: clamp(18px, 3vw, 26px);
  text-align: center;
  position: relative;
}
.ei-card h3{ margin: 0 0 .25rem; font-family: var(--font-serif, serif); color: var(--farbe1, #BE793E);}
.ei-card p{ margin: 0 0 1rem; }
.ei-cta{
  display:inline-block; padding:.8rem 1.4rem; border-radius:999px;
  background: var(--farbe1, #BE793E); color:#111; text-decoration:none; font-weight:700;
  box-shadow: 0 10px 28px rgba(0,0,0,.2);
}
.ei-cta:hover{ filter: brightness(1.05); }
.ei-close{
  position:absolute; top:10px; right:12px; border:0; background:transparent; font-size:1.6rem; cursor:pointer;
  line-height:1; color:#888;
}
.ei-close:hover{ color:#444; }
