/**
 * Navigations-Widget
 *
 * Nur .hitlife-menu*
 */
/* =======================================================================
   Navigation mit Kontakt-Button

   Der Umschaltpunkt zum Hamburger-Menü steckt in der Modifier-Klasse
   (--break-tablet / --break-mobile / --break-always / --break-never),
   damit die Media Queries fest im Stylesheet stehen können.
   ======================================================================= */

.hitlife-menu {
    --hitlife-green: #2a6b4b;
    --hitlife-green-dark: #1d4d36;
    --hitlife-green-light: #eaf3ee;
    --hitlife-accent: #efa027;

    --hitlife-menu-color: #1d4d36;
    --hitlife-menu-color-hover: #2a6b4b;
    --hitlife-menu-color-active: #2a6b4b;
    --hitlife-menu-underline: #efa027;
    --hitlife-menu-toggle: #1d4d36;
    --hitlife-menu-toggle-hover: #2a6b4b;
    --hitlife-menu-toggle-bg: transparent;
    --hitlife-menu-toggle-bg-hover: transparent;
    --hitlife-menu-panel-bg: #fff;

    --hitlife-submenu-bg: #fff;
    --hitlife-submenu-color: #3c4a43;
    --hitlife-submenu-bg-hover: #eaf3ee;

    --hitlife-menu-btn-color: #fff;
    --hitlife-menu-btn-bg: #2a6b4b;
    --hitlife-menu-btn-color-hover: #fff;
    --hitlife-menu-btn-bg-hover: #1d4d36;

    position: relative;
    display: flex;
    align-items: center;
    justify-content: flex-end;

    /* Nimmt immer die volle Breite des umgebenden Containers ein.
       Wie breit dieser ist, bestimmt Elementor über die Container-
       Einstellung "Inhaltsbreite" – nicht dieses Widget. */
    width: 100%;
}

.hitlife-menu *,
.hitlife-menu *::before,
.hitlife-menu *::after {
    box-sizing: border-box;
}

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

/* Panel und Liste --------------------------------------------------------- */

.hitlife-menu__panel {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    flex: 1 1 auto;
    min-width: 0;
}

.hitlife-menu__list {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.hitlife-menu__list li {
    position: relative;
    margin: 0;
    list-style: none;
}

.hitlife-menu .hitlife-menu__list a {
    position: relative;
    display: block;
    padding: 10px 14px;
    color: var(--hitlife-menu-color);
    font-weight: 600;
    line-height: 1.4;
    text-decoration: none;
    transition: color 0.2s ease;
}

.hitlife-menu .hitlife-menu__list > li > a::after {
    content: "";
    position: absolute;
    left: 14px;
    right: 14px;
    bottom: 4px;
    height: 2px;
    border-radius: 2px;
    background-color: var(--hitlife-menu-underline);
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform 0.25s ease;
}

.hitlife-menu .hitlife-menu__list > li > a:hover,
.hitlife-menu .hitlife-menu__list > li > a:focus {
    color: var(--hitlife-menu-color-hover);
}

.hitlife-menu .hitlife-menu__list > li > a:hover::after,
.hitlife-menu .hitlife-menu__list > li > a:focus::after,
.hitlife-menu .hitlife-menu__list > li.current-menu-item > a::after,
.hitlife-menu .hitlife-menu__list > li.current-menu-ancestor > a::after {
    transform: scaleX(1);
}

.hitlife-menu .hitlife-menu__list > li.current-menu-item > a,
.hitlife-menu .hitlife-menu__list > li.current-menu-ancestor > a {
    color: var(--hitlife-menu-color-active);
}

.hitlife-menu__list a:focus-visible {
    outline: 2px solid var(--hitlife-accent);
    outline-offset: 2px;
    border-radius: 4px;
}

/* Untermenüs -------------------------------------------------------------- */

.hitlife-menu__list .sub-menu {
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 20;
    min-width: 220px;
    margin: 0;
    padding: 8px;
    border: 1px solid var(--hitlife-green-light);
    border-radius: 12px;
    background-color: var(--hitlife-submenu-bg);
    list-style: none;
    opacity: 0;
    visibility: hidden;
    transform: translateY(6px);
    transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s;
}

.hitlife-menu__list .sub-menu .sub-menu {
    top: 0;
    left: 100%;
    margin-left: 4px;
}

.hitlife-menu__list li:hover > .sub-menu,
.hitlife-menu__list li:focus-within > .sub-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.hitlife-menu .hitlife-menu__list .sub-menu a {
    padding: 9px 12px;
    border-radius: 8px;
    color: var(--hitlife-submenu-color);
    font-weight: 500;
    white-space: nowrap;
}

.hitlife-menu .hitlife-menu__list .sub-menu a:hover,
.hitlife-menu .hitlife-menu__list .sub-menu a:focus {
    background-color: var(--hitlife-submenu-bg-hover);
    color: var(--hitlife-menu-color-hover);
}

/* Kontakt-Button ---------------------------------------------------------- */

.hitlife-menu__actions {
    display: flex;
    align-items: center;
    margin-left: 18px;
}

.hitlife-menu .hitlife-menu__button {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    padding: 11px 24px;
    border: 1px solid transparent;
    border-radius: 999px;
    background-color: var(--hitlife-menu-btn-bg);
    color: var(--hitlife-menu-btn-color);
    font-weight: 600;
    line-height: 1.3;
    text-decoration: none;
    white-space: nowrap;
    transition: background-color 0.25s ease, color 0.25s ease, transform 0.15s ease,
        box-shadow 0.25s ease;
}

.hitlife-menu .hitlife-menu__button:hover,
.hitlife-menu .hitlife-menu__button:focus {
    background-color: var(--hitlife-menu-btn-bg-hover);
    color: var(--hitlife-menu-btn-color-hover);
    text-decoration: none;
    transform: translateY(-1px);
    box-shadow: 0 8px 18px rgba(29, 77, 54, 0.22);
}

.hitlife-menu .hitlife-menu__button:focus-visible {
    outline: 2px solid var(--hitlife-accent);
    outline-offset: 3px;
}

/* Ohne eigene Angabe folgt das Symbol der Textfarbe des Buttons.
   Schriftsymbole erben sie über color, eingebettete SVG über fill. */
.hitlife-menu .hitlife-menu__button-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: var(--hitlife-menu-btn-icon-size, 17px);
    height: var(--hitlife-menu-btn-icon-size, 17px);
    color: var(--hitlife-menu-btn-icon, currentColor);
    font-size: var(--hitlife-menu-btn-icon-size, 17px);
    line-height: 1;
}

.hitlife-menu .hitlife-menu__button-icon svg {
    display: block;
    width: 100%;
    height: 100%;
    fill: currentColor;
}

.hitlife-menu .hitlife-menu__button:hover .hitlife-menu__button-icon,
.hitlife-menu .hitlife-menu__button:focus .hitlife-menu__button-icon {
    color: var(--hitlife-menu-btn-icon-hover, var(--hitlife-menu-btn-icon, currentColor));
}

/* Schaltfläche für das mobile Menü ---------------------------------------- */

/* Der Elementtyp steht bewusst mit im Selektor: viele Themes färben
   button-Elemente mit hoher Gewichtung ein. Ohne diesen Vorlauf bekäme
   die Schaltfläche deren Hintergrund statt des eigenen. */
.hitlife-menu button.hitlife-menu__toggle {
    display: none;
    align-items: center;
    gap: 10px;
    margin: 0;
    padding: 8px;
    border: 0;
    border-radius: 8px;
    background-color: var(--hitlife-menu-toggle-bg);
    background-image: none;
    box-shadow: none;
    text-shadow: none;
    color: var(--hitlife-menu-toggle);
    cursor: pointer;
    font: inherit;
    font-weight: 600;
    line-height: 1;
    -webkit-appearance: none;
    appearance: none;
    transition: background-color 0.2s ease, color 0.2s ease;
}

.hitlife-menu button.hitlife-menu__toggle:hover,
.hitlife-menu button.hitlife-menu__toggle:focus {
    background-color: var(--hitlife-menu-toggle-bg-hover);
    color: var(--hitlife-menu-toggle-hover);
}

.hitlife-menu__toggle:focus-visible {
    outline: 2px solid var(--hitlife-accent);
    outline-offset: 3px;
    border-radius: 6px;
}

.hitlife-menu__toggle-label {
    font-size: 0.95rem;
    line-height: 1.2;
}

.hitlife-menu__toggle-box {
    position: relative;
    display: block;
    width: 26px;
    height: 18px;
    flex: 0 0 auto;
}

/* Drei Balken: zwei über Pseudoelemente, der mittlere als span */
.hitlife-menu__toggle-bar,
.hitlife-menu__toggle-bar::before,
.hitlife-menu__toggle-bar::after {
    position: absolute;
    left: 0;
    width: 100%;
    height: 2px;
    border-radius: 2px;
    background-color: currentColor;
    transition: transform 0.25s ease, opacity 0.2s ease;
}

.hitlife-menu__toggle-bar {
    top: 50%;
    margin-top: -1px;
}

.hitlife-menu__toggle-bar::before {
    content: "";
    top: -8px;
}

.hitlife-menu__toggle-bar::after {
    content: "";
    top: 8px;
}

/* Geöffnet: Balken werden zum Kreuz */
.hitlife-menu.is-open .hitlife-menu__toggle-bar {
    background-color: transparent;
}

.hitlife-menu.is-open .hitlife-menu__toggle-bar::before {
    top: 0;
    transform: rotate(45deg);
}

.hitlife-menu.is-open .hitlife-menu__toggle-bar::after {
    top: 0;
    transform: rotate(-45deg);
}

/* Mobiler Zustand --------------------------------------------------------- */

.hitlife-menu.is-mobile {
    justify-content: flex-end;
}

.hitlife-menu.is-mobile button.hitlife-menu__toggle {
    display: inline-flex;
}

.hitlife-menu.is-mobile .hitlife-menu__panel {
    position: absolute;
    top: 100%;
    z-index: 30;

    /* Aufgeklappt läuft das Menü über die gesamte Bildschirmbreite, auch
       wenn der umgebende Container schmaler eingestellt ist. Breite und
       Versatz liefert das Skript; ohne JavaScript bleibt es bei einem
       100vw breiten Panel, das sich am Menü ausrichtet. */
    left: 50%;
    right: auto;
    width: var(--hitlife-menu-viewport, 100vw);
    max-width: none;
    transform: translateX(calc(-50% + var(--hitlife-menu-bleed, 0px)));

    display: none;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    padding: 18px 20px 22px;
    border: 1px solid var(--hitlife-green-light);
    border-right: 0;
    border-left: 0;
    border-radius: 0;
    background-color: var(--hitlife-menu-panel-bg);
    box-shadow: 0 16px 40px rgba(29, 77, 54, 0.14);
}

.hitlife-menu.is-mobile.is-open .hitlife-menu__panel {
    display: flex;
}

.hitlife-menu.is-mobile .hitlife-menu__list {
    flex-direction: column;
    align-items: stretch;
    gap: 2px;
    width: 100%;
}

.hitlife-menu.is-mobile .hitlife-menu__list a {
    padding: 12px 10px;
    border-radius: 8px;
}

.hitlife-menu.is-mobile .hitlife-menu__list > li > a::after {
    display: none;
}

.hitlife-menu.is-mobile .hitlife-menu__list a:hover,
.hitlife-menu.is-mobile .hitlife-menu__list a:focus {
    background-color: var(--hitlife-submenu-bg-hover);
}

/* Untermenüs klappen mobil dauerhaft mit auf, eingerückt */
/* Mobil sind Unterebenen eingeklappt und werden über die
   Schaltfläche je Menüpunkt geöffnet. */
.hitlife-menu.is-mobile .hitlife-menu__list .sub-menu {
    display: none;
    position: static;
    min-width: 0;
    margin: 0 0 6px 14px;
    padding: 0;
    border: 0;
    border-left: 2px solid var(--hitlife-green-light);
    border-radius: 0;
    background: none;
    box-shadow: none;
    opacity: 1;
    visibility: visible;
    transform: none;
}

.hitlife-menu.is-mobile .hitlife-menu__list li.is-sub-open > .sub-menu {
    display: block;
}

/* Menüpunkt und Schaltfläche teilen sich eine Zeile,
   das Untermenü liegt darunter über die volle Breite. */
.hitlife-menu.is-mobile .hitlife-menu__list li {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
}

.hitlife-menu.is-mobile .hitlife-menu__list li > a {
    flex: 1 1 auto;
    min-width: 0;
}

.hitlife-menu.is-mobile .hitlife-menu__list li > .sub-menu {
    flex: 0 0 100%;
}

/* Menüpunkte mit Unterebene ----------------------------------------------

   Der Pfeil sitzt im Menüpunkt selbst, es gibt keine abgesetzte
   Schaltfläche daneben. Geschlossen zeigt er nach unten, geöffnet nach
   oben. */

.hitlife-menu .hitlife-menu__has-sub > .hitlife-menu__parent-link {
    display: flex;
    align-items: center;
    gap: 7px;
}

.hitlife-menu.is-mobile .hitlife-menu__has-sub > .hitlife-menu__parent-link {
    justify-content: space-between;
    cursor: pointer;
}

.hitlife-menu__sub-arrow {
    flex: 0 0 auto;
    width: 7px;
    height: 7px;
    margin-top: -3px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg);
    transition: transform 0.25s ease, margin-top 0.25s ease;
}

.hitlife-menu .hitlife-menu__has-sub.is-sub-open > .hitlife-menu__parent-link .hitlife-menu__sub-arrow {
    margin-top: 3px;
    transform: rotate(-135deg);
}
.hitlife-menu.is-mobile .hitlife-menu__list .sub-menu a {
    white-space: normal;
}

/* Der Button reiht sich unter den Menüpunkten ein */
.hitlife-menu.is-mobile .hitlife-menu__actions {
    margin: 16px 0 0;
    padding-top: 16px;
    border-top: 1px solid var(--hitlife-green-light);
}

.hitlife-menu.is-mobile.hitlife-menu--button-block .hitlife-menu__actions {
    display: block;
}

.hitlife-menu.is-mobile.hitlife-menu--button-block .hitlife-menu__button {
    width: 100%;
    justify-content: center;
}

.hitlife-menu__notice {
    padding: 14px 18px;
    border: 1px dashed var(--hitlife-green);
    border-radius: 10px;
    background-color: var(--hitlife-green-light);
    color: var(--hitlife-green-dark);
    font-size: 0.95rem;
}

/* Umschaltpunkte ---------------------------------------------------------- */

@media (max-width: 1024px) {
    .hitlife-menu--break-tablet {
        justify-content: flex-end;
    }

    .hitlife-menu.hitlife-menu--break-tablet button.hitlife-menu__toggle {
        display: inline-flex;
    }
}

@media (max-width: 767px) {
    .hitlife-menu--break-mobile {
        justify-content: flex-end;
    }

    .hitlife-menu.hitlife-menu--break-mobile button.hitlife-menu__toggle {
        display: inline-flex;
    }
}

@media (prefers-reduced-motion: reduce) {
    .hitlife-menu *,
    .hitlife-menu *::before,
    .hitlife-menu *::after {
        transition-duration: 0.01ms !important;
    }

    .hitlife-menu .hitlife-menu__button:hover {
        transform: none;
    }
}

/* Logo und Wasserzeichen – ausschliesslich in der mobilen Ansicht ---------- */

.hitlife-menu__logo {
    display: block;
    flex: 0 0 auto;
    max-width: 60%;
    margin-right: auto;
    margin-left: var(--hitlife-menu-logo-offset, 0);
    line-height: 0;
}

.hitlife-menu .hitlife-menu__logo-image {
    display: block;
    width: 100%;
    height: auto;
    max-width: 100%;
}

.hitlife-menu__logo:focus-visible {
    outline: 2px solid var(--hitlife-accent);
    outline-offset: 4px;
    border-radius: 4px;
}

/* Sichtbar wird das Logo erst im aufklappbaren Zustand. Die Media Queries
   greifen zusätzlich, falls JavaScript nicht zur Verfügung steht. */
/* Mit Logo steht dieses links, Menue und Button ruecken nach rechts */
.hitlife-menu--has-logo {
    justify-content: space-between;
}

/* Wasserzeichen im aufgeklappten Menü */
.hitlife-menu.is-mobile .hitlife-menu__panel {
    position: absolute;
    overflow: hidden;
}

/* Das Wasserzeichen spannt sich über das gesamte aufgeklappte Menü und
   zentriert sich darin selbst. Dadurch wächst es automatisch mit der
   Anzahl der Menüpunkte mit, ohne dass etwas eingestellt werden muss. */
.hitlife-menu--watermark.is-mobile .hitlife-menu__panel::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: var(--hitlife-menu-watermark);
    background-repeat: no-repeat;
    background-position: center center;
    background-size: var(--hitlife-menu-watermark-size, 70%) auto;
    opacity: var(--hitlife-menu-watermark-opacity, 0.07);
    pointer-events: none;
}

/* Die Inhalte liegen über dem Wasserzeichen */
.hitlife-menu.is-mobile .hitlife-menu__list,
.hitlife-menu.is-mobile .hitlife-menu__actions {
    position: relative;
    z-index: 1;
}

@media (max-width: 1024px) {
}

@media (max-width: 767px) {
}
