/* Ergänzungen für die statische Version (ersetzt Elementor-JS, Cookie-Plugin, Kontaktformular-Plugin) */
:root {
  --cp-sage: #b1baac;
  --cp-sage-dark: #656b68;
  --cp-ink: #4c4b46;
  --cp-night: #373632;
  --cp-sticky-top: 110px;
}

/* Gestreckte Sektionen ohne horizontalen Scrollbalken */
#boxed-layout-pro { overflow-x: clip; }
.elementor-section.elementor-section-stretched { position: relative; }

/* Mitlaufender Text neben Bildspalten (vorher Elementor "Sticky") */
.cp-sticky { position: sticky; top: var(--cp-sticky-top); z-index: 2; }

/* Gemeinsamer Button */
.cp-btn {
  display: inline-block; border: 0; cursor: pointer;
  padding: 12px 24px; font: 700 14px/1.2 'Arimo', sans-serif; letter-spacing: .04em;
  color: #fff; background: var(--cp-sage-dark); transition: background .2s;
}
.cp-btn:hover, .cp-btn:focus-visible { background: var(--cp-ink); color: #fff; }
.cp-btn--light { color: var(--cp-sage-dark); background: var(--cp-sage); }
.cp-btn--light:hover, .cp-btn--light:focus-visible { color: #fff; background: var(--cp-ink); }

/* Google-Karte erst nach Klick */
.cp-map {
  position: relative; min-height: 300px; display: flex; align-items: center; justify-content: center;
  background: #e9ece6 linear-gradient(135deg, #e9ece6 0%, #d8ddd3 100%); text-align: center;
}
.cp-map__inner { max-width: 520px; padding: 32px 20px; line-height: 1.5; }
.cp-map p { line-height: 1.5; }
.cp-map__title { font-family: 'Playfair Display', serif; font-size: 24px; color: var(--cp-ink); margin: 0 0 8px; }
.cp-map__text, .cp-map__alt { font-size: 14px; color: var(--cp-sage-dark); margin: 0 0 16px; }
.cp-map__alt { margin: 14px 0 0; }
.cp-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* Kontaktformular (mailto) */
.cp-contact-note { font-size: 13px; color: var(--cp-sage-dark); margin-top: 0; }
.cp-contact-msg:empty { display: none; }
.cp-contact-msg { border: 2px solid var(--cp-sage); padding: 10px 14px; margin: 10px 0 0; }
.cp-contact-form .cp-invalid { outline: 2px solid #b3542e; }

/* Einwilligungs-Banner */
.cp-consent {
  position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 100000;
  max-width: 560px; margin: 0 auto; padding: 22px 24px;
  background: #fff; color: var(--cp-ink); box-shadow: 0 8px 40px rgba(0, 0, 0, .25);
  font: 15px/1.55 'Arimo', sans-serif;
}
.cp-consent[hidden] { display: none; }
.cp-consent h2 { font-family: 'Playfair Display', serif; font-size: 22px; line-height: 1.2; margin: 0 0 8px; color: var(--cp-ink); }
.cp-consent p { margin: 0 0 16px; }
.cp-consent a { color: var(--cp-sage-dark); text-decoration: underline; }
.cp-consent__buttons { display: flex; gap: 12px; flex-wrap: wrap; }
.cp-consent__buttons .cp-btn { flex: 1 1 180px; }

/* Bildergalerie-Lightbox (vorher Elementor) */
.cp-lightbox {
  position: fixed; inset: 0; z-index: 100001; display: flex; align-items: center; justify-content: center;
  background: rgba(20, 20, 18, .94); touch-action: pan-y;
}
.cp-lightbox[hidden] { display: none; }
.cp-lightbox img { max-width: 92vw; max-height: 86vh; object-fit: contain; box-shadow: 0 10px 50px rgba(0, 0, 0, .5); }
.cp-lightbox button {
  position: absolute; border: 0; background: rgba(255, 255, 255, .1); color: #fff; cursor: pointer;
  width: 52px; height: 52px; font-size: 28px; line-height: 52px; text-align: center;
}
.cp-lightbox button:hover, .cp-lightbox button:focus-visible { background: rgba(255, 255, 255, .25); }
.cp-lightbox .cp-lb-close { top: 16px; right: 16px; }
.cp-lightbox .cp-lb-prev { left: 16px; top: 50%; transform: translateY(-50%); }
.cp-lightbox .cp-lb-next { right: 16px; top: 50%; transform: translateY(-50%); }
.cp-lightbox .cp-lb-count { position: absolute; bottom: 18px; left: 0; right: 0; text-align: center; color: #ddd; font: 13px 'Arimo', sans-serif; }
@media (max-width: 767px) {
  .cp-lightbox .cp-lb-prev, .cp-lightbox .cp-lb-next { top: auto; bottom: 8px; transform: none; }
}

@media (max-width: 600px) {
  .cp-consent { left: 10px; right: 10px; bottom: 10px; padding: 16px 18px; font-size: 14px; line-height: 1.5; }
  .cp-consent h2 { font-size: 19px; }
  .cp-consent p { margin-bottom: 12px; }
  .cp-consent__buttons { gap: 8px; }
  .cp-consent__buttons .cp-btn { flex: 1 1 120px; padding: 11px 8px; }
}

/* Sprachumschalter (ersetzt GTranslate, gleiches Aussehen: Flagge 24 px + Kürzel) */
a.glink{text-decoration:none;white-space:nowrap}
a.glink.gt-current-lang{font-weight:bold}
a.glink span{margin-right:5px;font-size:15px;vertical-align:middle}
a.glink img{vertical-align:middle;display:inline;border:0;padding:0;margin:0;opacity:.8}
a.glink:hover img,a.glink.gt-current-lang img{opacity:1}
.cp-404 h2{margin-top:1.2em}
