/* Fixes and additions for the static version of the site. Loaded last. */

/* Entrance animations slide in from the sides – never let them cause horizontal scrolling. */
html, body { overflow-x: hidden; }
@supports (overflow: clip) { html, body { overflow-x: clip; } }

/* from the WordPress "Additional CSS": no focus glow on the hamburger button */
.elementskit-menu-toggler { box-shadow: none !important; outline: none !important; }
.elementskit-menu-toggler:focus-visible { outline: 2px solid #3A3363 !important; outline-offset: 2px; }

.screen-reader-text {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

/* The saved HTML was re-indented, which put whitespace between the inline-block gallery items
   (4 × 25% + spaces no longer fit in one row). Flexbox ignores that whitespace. */
.elementor-image-gallery .gallery { display: flex; flex-wrap: wrap; justify-content: center; }

/* E-mail / phone numbers turned into links inside running text keep the surrounding typography. */
a.contact-link { font: inherit; color: inherit; text-decoration: underline; text-decoration-color: rgba(58, 51, 99, .35); text-underline-offset: 2px; }
a.contact-link:hover, a.contact-link:focus { color: #3A3363; text-decoration-color: currentColor; }

/* FAQ accordion: keep long questions clear of the arrow icon. */
.ekit-wid-con .elementskit-accordion .elementskit-btn-link .ekit-accordion-title { padding-right: 32px; }

/* Contact form: the message field is a real textarea now (was a padded single-line input). */
.metform-form-content textarea.mf-input {
  display: block; width: 100%; min-height: 140px; resize: vertical;
  padding: 15px 20px 15px 30px !important; line-height: 1.5; font-family: inherit;
}
.metform-form-content .mf-main-response-wrap {
  margin: 0 0 20px; padding: 14px 18px; border-radius: 12px;
  background: #eef7ee; color: #285a2a; font-size: 14px; line-height: 1.5;
}

/* Legal pages (Impressum, Datenschutz, Cookie-Richtlinie): consistent heading scale
   (the generated texts had h3 rendered larger than h2) and better readable body text. */
.elementor-144 .elementor-shortcode, .elementor-146 .elementor-shortcode, .cmplz-document { color: #555; }
.elementor-144 .elementor-shortcode p, .elementor-146 .elementor-shortcode p, .elementor-146 .elementor-shortcode li { color: #555; }
.elementor-144 .elementor-shortcode h1, .elementor-146 .elementor-shortcode h1, .cmplz-document ~ h1, .page-header .entry-title { font-size: 40px; line-height: 1.2; margin: 0 0 24px; }
.elementor-144 .elementor-shortcode h2, .elementor-146 .elementor-shortcode h2, .cmplz-document h2 { font-size: 28px; line-height: 1.25; font-weight: 700; margin: 36px 0 14px; }
.elementor-144 .elementor-shortcode h3, .elementor-146 .elementor-shortcode h3 { font-size: 22px; line-height: 1.3; font-weight: 600; margin: 26px 0 10px; }
.elementor-144 .elementor-shortcode h4, .elementor-146 .elementor-shortcode h4 { font-size: 18px; line-height: 1.35; font-weight: 600; margin: 20px 0 8px; }
.elementor-146 .elementor-shortcode a, .elementor-144 .elementor-shortcode a, .cmplz-document a { color: #3A3363; word-break: break-word; }
.cmplz-document .cmplz-subtitle { font-weight: 600; color: #434343; margin-top: 18px; }
.cmplz-document #cmplz-cookies-overview .cmplz-dropdown summary h3 { font-size: 20px; margin: 0; }
.cmplz-document #cmplz-cookies-overview .cmplz-dropdown summary p { margin: 0; }
@media (max-width: 767px) {
  .elementor-144 .elementor-shortcode h1, .elementor-146 .elementor-shortcode h1, .page-header .entry-title { font-size: 30px; }
  .elementor-144 .elementor-shortcode h2, .elementor-146 .elementor-shortcode h2, .cmplz-document h2 { font-size: 23px; margin-top: 28px; }
  .elementor-144 .elementor-shortcode h3, .elementor-146 .elementor-shortcode h3 { font-size: 19px; }
  .elementor-144 .elementor-shortcode h4, .elementor-146 .elementor-shortcode h4 { font-size: 17px; }
  .site-main.page { padding-left: 20px; padding-right: 20px; }
}

/* ---------- Mobile improvements ---------- */
@media (max-width: 767px) {
  /* Home: the four key-figure cards as a 2×2 grid instead of one long column */
  .elementor-19 .elementor-element.elementor-element-17a18247 { padding: 12% 4% 4% 4%; }
  .elementor-19 .elementor-element.elementor-element-17a18247 > .elementor-container { flex-wrap: wrap; }
  .elementor-19 .elementor-element.elementor-element-17a18247 > .elementor-container > .elementor-column { width: 50%; }
  .elementor-19 .elementor-element.elementor-element-17a18247 > .elementor-container > .elementor-column > .elementor-element-populated { margin: 0 7px 14px; --e-column-margin-right: 7px; --e-column-margin-left: 7px; }

  /* Partner logos: two per row */
  .elementor-widget-image-gallery.gallery-spacing-custom { width: 100% !important; max-width: 360px !important; margin-left: auto; margin-right: auto; }
  .elementor-image-gallery .gallery.gallery-columns-4 { display: flex; flex-wrap: wrap; justify-content: center; margin: 0 !important; }
  .elementor-image-gallery .gallery-columns-4 .gallery-item { max-width: 50% !important; width: 50%; padding: 0 12px 24px !important; }
  .elementor-image-gallery .gallery-item img { margin: 0 auto; }

  /* Comfortable tap targets in the footer lists */
  #colophon .elementor-icon-list-item > a { display: inline-block; padding: 4px 0; }
}

/* Mobile menu: bigger close button, lock page scrolling while the off-canvas menu is open */
.ekit-wid-con .elementskit-menu-close { font-size: 30px; line-height: 1; padding: 4px 12px; min-width: 44px; min-height: 44px; }
html.menu-open, html.menu-open body { overflow: hidden; }

/* ---------- Tablet improvements ---------- */
@media (min-width: 768px) and (max-width: 1024px) {
  /* "Über uns": the story block sat directly under the hero image */
  .elementor-71 .elementor-element.elementor-element-759a9f11 { padding-top: 70px; }

  /* Partner logos: one centred row of four */
  .elementor-widget-image-gallery.gallery-spacing-custom { width: 100% !important; max-width: 900px !important; margin-left: auto; margin-right: auto; }
  .elementor-image-gallery .gallery.gallery-columns-4 { display: flex; flex-wrap: wrap; justify-content: center; margin: 0 !important; }
  .elementor-image-gallery .gallery-columns-4 .gallery-item { max-width: 25% !important; width: 25%; padding: 0 16px 24px !important; }
  .elementor-image-gallery .gallery-item img { margin: 0 auto; }
}
