/*
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme-child/
Description: Hello Elementor Child is a child theme of Hello Elementor.
Author: Elementor Team
Author URI: https://elementor.com/
Template: hello-elementor
Version: 2.0.0
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
*/
/* ===================== Sticky Footer Layout ===================== */
html, body {
  height: 100%;
  margin: 0;
}

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

.site-main, .hentry {
  flex: 1;
}

footer {
  margin-top: auto;
}

/* ===================== Global / Layout ===================== */
@media (min-width: 768px) {
  .About-container {
    margin-top: max(-10vw, -120px); /* Limits push-up to 120px max on large screens */
  }
}

/* ===================== Variables ===================== */
/* ===================== Content List Bullets ===================== */
.entry-content ul,
.elementor-widget-text-editor ul,
.violet-bullets ul {
  list-style: none;
  margin: 0 0 1.2em;
  padding: 0;
}

.entry-content ul li,
.elementor-widget-text-editor ul li,
.violet-bullets ul li {
  position: relative;
  margin: 0 0 0.55em;
  padding-left: 1.05em;
  line-height: 1.35;
}

.entry-content ul li:last-child,
.elementor-widget-text-editor ul li:last-child,
.violet-bullets ul li:last-child {
  margin-bottom: 0;
}

.entry-content ul li:before,
.elementor-widget-text-editor ul li:before,
.violet-bullets ul li:before {
  content: "";
  width: 7px;
  height: 7px;
  background: #897CB8;
  border-radius: 50%;
  position: absolute;
  left: 0;
  top: 0.72em;
  transform: translateY(-50%);
}

@media (min-width: 768px) {
  .entry-content ul li:before,
  .elementor-widget-text-editor ul li:before,
  .violet-bullets ul li:before {
    top: 0.68em;
  }
}
@media (prefers-contrast: more) {
  .entry-content ul li:before,
  .elementor-widget-text-editor ul li:before,
  .violet-bullets ul li:before {
    box-shadow: 0 0 0 1px #fff, 0 0 0 2px #897CB8;
  }
}
/* ===================== Accordion Bullets ===================== */
summary.e-n-accordion-item-title {
  list-style: none;
  padding-left: 0 !important;
  position: relative;
  display: flex; /* ensure flex for align-self to work */
  align-items: flex-start;
}

summary.e-n-accordion-item-title::-webkit-details-marker {
  display: none;
}

summary.e-n-accordion-item-title::marker {
  content: "";
}

summary.e-n-accordion-item-title:before {
  content: "";
  width: 7px;
  height: 7px;
  background: #897CB8;
  border-radius: 50%;
  display: inline-block;
  margin-right: 0.55em;
  flex: 0 0 7px;
  align-self: center;
}

summary.e-n-accordion-item-title > .e-n-accordion-item-title-header {
  margin-left: 0;
}

summary.e-n-accordion-item-title:focus-visible:before {
  box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.15);
}

.e-n-accordion-item .e-child {
  padding-left: 1.6em;
}

/* ===================== Active Menu Item (Bold) ===================== */
nav ul li.current-menu-item > a,
nav ul li.current_page_item > a,
nav ul li.current-menu-ancestor > a,
nav ul li.current_page_ancestor > a,
.elementor-nav-menu .elementor-item.elementor-item-active,
.elementor-nav-menu .current-menu-item > .elementor-item,
.elementor-nav-menu .current_page_item > .elementor-item {
  font-weight: bold !important;
}

ul.elementor-nav-menu > li.current-menu-item > a.elementor-item,
ul.elementor-nav-menu > li.current_page_item > a.elementor-item,
ul.elementor-nav-menu > li > a.elementor-item[aria-current=page],
ul.elementor-nav-menu > li > a.elementor-item.elementor-item-active {
  font-weight: bold !important;
}

nav ul li.current-menu-item > a:hover,
nav ul li.current_page_item > a:hover,
nav ul li.current-menu-item > a:focus,
nav ul li.current_page_item > a:focus,
.elementor-nav-menu .elementor-item.elementor-item-active:hover,
.elementor-nav-menu .elementor-item.elementor-item-active:focus {
  font-weight: bold !important;
}

/* ===================== Termin Button ===================== */
li.termin-button > a.elementor-item,
a.elementor-item.termin-button {
  background: #aecc53;
  color: #fff !important;
  font-weight: 600;
  padding: 0.55em 1.05em;
  border-radius: 999px;
  line-height: 1.2;
  display: inline-flex;
  align-items: center;
  gap: 0.4em;
  position: relative;
  text-decoration: none;
  border: 1px solid transparent; /* stabilize size */
  box-sizing: border-box;
  transition: background 0.25s ease;
}

li.termin-button > a.elementor-item:hover,
a.elementor-item.termin-button:hover {
  background: rgb(162.8852017937, 197.001793722, 59.398206278);
}

li.termin-button > a.elementor-item:active,
a.elementor-item.termin-button:active {
  background: rgb(150.2780269058, 182.0269058296, 53.9730941704);
}

li.termin-button > a.elementor-item:focus-visible,
a.elementor-item.termin-button:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 2px;
  box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.35);
}

@media (prefers-contrast: more) {
  li.termin-button > a.elementor-item,
  a.elementor-item.termin-button {
    box-shadow: 0 0 0 2px #fff inset;
  }
}
/* ===================== End (File Cleaned) ===================== */
/* ===================== Dynamic Menu Layout (Auto-Applied) ===================== */
/* Automatically applies to all Elementor nav menus on screens > 768px */
ul.elementor-nav-menu {
  padding: 1em 0 !important;
}

@media (min-width: 1024px) {
  ul.elementor-nav-menu {
    display: flex !important;
    justify-content: flex-start !important;
    align-items: center;
    width: 100%;
    padding: 0 !important;
    margin: 0 !important;
    list-style: none;
    gap: 0;
  }
  /* Ensure parent <nav> doesn't inject extra spacing */
  nav.elementor-nav-menu--main.elementor-nav-menu__container {
    padding: 0 !important;
    margin: 0 !important;
  }
  nav.elementor-nav-menu--main.elementor-nav-menu__container > ul.elementor-nav-menu {
    width: 100%;
  }
  ul.elementor-nav-menu > li {
    margin: 0;
    padding: 0;
    list-style: none;
    position: relative;
  }
  /* Dynamic spacing: all items grow to fill space */
  ul.elementor-nav-menu > li {
    flex: 1 1 auto; /* all items grow equally */
    margin-right: clamp(0.8rem, 2vw, 1.5rem); /* minimum spacing between items */
  }
  /* Remove margin from last item */
  ul.elementor-nav-menu > li:last-child {
    margin-right: 0 !important;
  }
  /* Termin button always goes to the right regardless of position */
  ul.elementor-nav-menu > li.termin-button {
    flex: 0 0 auto; /* don't grow, stay natural size */
    margin-left: auto; /* push to right */
    margin-right: 0 !important; /* flush against right edge */
    order: 999; /* force to end regardless of HTML order */
  }
  ul.elementor-nav-menu > li > a.elementor-item {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    padding: 0 !important;
    margin: 0 !important;
    line-height: 1.2;
    background: none !important;
    border: none !important;
    text-decoration: none;
    box-shadow: none !important;
    flex-grow: 0 !important; /* override Elementor's flex-grow: 1 */
  }
  /* Override Elementor horizontal layout flex-grow */
  .elementor-nav-menu--layout-horizontal .elementor-nav-menu a {
    flex-grow: 0 !important;
  }
  /* Termin button styling within any nav */
  ul.elementor-nav-menu li.termin-button > a.elementor-item,
  ul.elementor-nav-menu a.elementor-item.termin-button {
    background: #aecc53 !important;
    padding: 0.5em 1.1em !important;
    border-radius: 999px !important;
    color: #fff !important;
    font-weight: 600;
    line-height: 1.2;
    transition: background 0.25s ease;
  }
  ul.elementor-nav-menu li.termin-button > a.elementor-item:hover,
  ul.elementor-nav-menu a.elementor-item.termin-button:hover {
    background: rgb(162.8852017937, 197.001793722, 59.398206278) !important;
  }
  ul.elementor-nav-menu li.termin-button > a.elementor-item:active,
  ul.elementor-nav-menu a.elementor-item.termin-button:active {
    background: rgb(150.2780269058, 182.0269058296, 53.9730941704) !important;
  }
}
/* ===================== Mobile Menu Styles ===================== */
/* Mobile-specific termin button styling */
@media (max-width: 1024px) {
  ul.elementor-nav-menu li.termin-button > a.elementor-item,
  ul.elementor-nav-menu a.elementor-item.termin-button {
    margin-left: 20px !important;
    background: #aecc53 !important;
    color: #fff !important;
    font-weight: 600;
    padding: 0.5em 1.1em !important;
    border-radius: 999px !important;
    line-height: 1.2;
    transition: background 0.25s ease;
  }
  /* Mobile hover states - override Elementor's white hover */
  ul.elementor-nav-menu li.termin-button > a.elementor-item:hover,
  ul.elementor-nav-menu a.elementor-item.termin-button:hover {
    background: rgb(162.8852017937, 197.001793722, 59.398206278) !important;
    color: #fff !important;
  }
  ul.elementor-nav-menu li.termin-button > a.elementor-item:active,
  ul.elementor-nav-menu a.elementor-item.termin-button:active {
    background: rgb(150.2780269058, 182.0269058296, 53.9730941704) !important;
    color: #fff !important;
  }
}
/* ===================== Responsive Iframe Popup ===================== */
.iframe-responsive-popup {
  position: relative;
  width: 100%;
  height: 70vh;
  min-height: 400px;
  max-width: 800px;
  max-height: 600px;
  margin: 0 auto;
  background: white;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
}
.iframe-responsive-popup iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
}
@media (max-width: 768px) {
  .iframe-responsive-popup {
    height: 85vh;
    min-height: 300px;
    max-width: none;
    max-height: none;
    width: 95vw;
    border-radius: 4px;
  }
}
@media (max-width: 480px) {
  .iframe-responsive-popup {
    width: 98vw;
    height: 90vh;
    border-radius: 0;
  }
}

.elementor-popup-modal .iframe-responsive-popup {
  box-shadow: none;
}

@media (max-width: 768px) {
  .iframe-responsive-popup.fullscreen-mobile {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    max-width: none;
    max-height: none;
    border-radius: 0;
    z-index: 9999;
  }
}

/* ===================== Elementor Mobile Navigation Fixes ===================== */
@media (max-width: 1024px) {
  .elementor-nav-menu--dropdown[aria-hidden=true] {
    visibility: hidden !important;
    pointer-events: none !important;
  }
  .elementor-nav-menu--dropdown[aria-hidden=true] * {
    pointer-events: none !important;
  }
  .elementor-nav-menu--dropdown[aria-hidden=true] a {
    tabindex: -1 !important;
  }
  .elementor-nav-menu__toggle {
    cursor: pointer;
    outline: none;
  }
  .elementor-nav-menu__toggle:focus-visible {
    outline: 2px solid #897CB8;
    outline-offset: 2px;
  }
}
.elementor-popup-modal {
  z-index: 99999 !important;
}
.elementor-popup-modal .dialog-widget {
  z-index: 99999 !important;
}

.Kartenhinweis {
  display: inline-block !important;
  width: auto !important;
  max-width: fit-content !important;
  min-width: 0 !important;
  flex: none !important;
  flex-basis: auto !important;
  flex-grow: 0 !important;
  flex-shrink: 0 !important;
}
.Kartenhinweis p, .Kartenhinweis .p1 {
  display: inline-block !important;
  width: auto !important;
  max-width: fit-content !important;
  min-width: 0 !important;
  margin: 0 !important;
  flex: none !important;
}
