/*
Main Menu — HZNG Base

/* ==========================================================================
   2. Page offset voor fixed menu
   ========================================================================== */

html {
    scroll-padding-top: calc(var(--menu-height) + 20px);
}

.logo svg{
    width: 80px;
    height: 50px;
}

/* ==========================================================================
   3. Menu bar — gedeelde basis
   ========================================================================== */

.row.main-menu {
    position: absolute;
    top: var(--top-menu-height);
    left: 0;
    width: 100vw;
    height: var(--menu-height);
    padding: 0;
    margin: 0;
    z-index: 1000;
    overflow: visible;
    transition: background 0.25s ease-in-out;
    border-bottom: 1px solid var(--color-border);
    background: var(--menu-bg-scrolls);
    backdrop-filter: var(--blur);
    /* achtergrond wordt per state/breakpoint gezet → zie onder */
}

/* Op mobiel: alleen achtergrond tonen wanneer er gescrolld wordt of menu open is */
.scrolls .row.main-menu {
    position: fixed;
    top: 0;
}
.menu-active .row.main-menu {
    position: fixed;
    margin-top: 0px;
}

.row.pre-menu .container, 
.row.main-menu .container {
    height: 100%;
}


/* ==========================================================================
   4. Lijsten resetten
   ========================================================================== */

.main-menu .menu,
.main-menu .menu li,
.main-menu .cta-menu {
    list-style: none;
    margin: 0;
    padding: 0;
}


/* ==========================================================================
   5. Hamburger (zichtbaar op mobiel, verborgen op desktop)
   ========================================================================== */

.toggle-menu {
    position: fixed;
    right: 20px;
    bottom: 20px;
    width: 60px;
    height: 60px;
    background: #1c1c1c;
    border-radius: 30px;
    cursor: pointer;
    z-index: 10000;
}

/* "Menu"-label achter de knop, krimpt weg zodra er gescrold wordt */
.toggle-menu::after {
    content: "Menu";
    position: absolute;
    right: 0;
    bottom: 0;
    width: 130px;
    height: 60px;
    line-height: 60px;
    padding-left: 20px;
    background: #1c1c1c;
    border-radius: 30px;
    color: #FFF;
    text-transform: uppercase;
    font-size: 14px;
    font-weight: 600;
    overflow: hidden;
    z-index: -1;
    transition: all 0.3s ease-in-out;
}

.scrolls .toggle-menu::after {
    width: 60px;
    color: #FFFFFF00;
}

.toggle-menu .bar {
    position: absolute;
    width: 25px;
    height: 2px;
    background: #FFF;
    border-radius: 4px;
    transition: all 0.2s ease-in-out;
}

.toggle-menu .bar.top-bar    { top: 22px; left: 19px; }
.toggle-menu .bar.middle-bar { top: 50%; margin-top: -1px; left: 19px; width: 14px; }
.toggle-menu .bar.bottom-bar { bottom: 22px; left: 19px; }

.menu-active .toggle-menu .bar.top-bar {
    transform: rotate(45deg);
    transform-origin: 0 0;
}

.menu-active .toggle-menu .bar.middle-bar {
    width: 0;
    opacity: 0;
}

.menu-active .toggle-menu .bar.bottom-bar {
    transform: rotate(-45deg);
    transform-origin: 0 100%;
}

.menu-active .toggle-menu .bar.top-bar,
.menu-active .toggle-menu .bar.bottom-bar {
    width: 21px;
    left: 23px;
}


/* ==========================================================================
   6. Menu body — mobiel (full-screen overlay)
   ========================================================================== */

.main-menu .mobile-menu {
    position: fixed;
    top: var(--menu-height);
    right: 0;
    width: 100vw;
    height: calc(100vh - var(--menu-height));
    padding-block: 20px;
    background: #1c1c1c;
    backdrop-filter: var(--blur);
    z-index: 980;
    border-top-left-radius: 20px;
    border-top-right-radius: 20px;

    opacity: 0;
    transform: translateY(100%);   /* onder beeld; schuift omhoog bij openen */
    pointer-events: none;
    transition: opacity 0.3s ease, transform 0.3s ease;
}

.menu-active .main-menu .mobile-menu {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
}

.main-menu .mobile-menu > div,
.main-menu .mobile-menu > ul {
    width: 100%;
}

/* Links (mobiel) */
.main-menu .menu .menu-item {
    position: relative;
    opacity: 0;
    transform: translateY(-8px);
    transition: opacity 0.25s ease, transform var(--transition);
}

.main-menu .menu a,
.main-menu .cta-menu {
    display: block;
    width: 100%;
    padding-inline: 25px;
    font-family: var(--font-heading);
    font-size: 20px;
    color: #FFF;
    text-decoration: none;
    line-height: 55px;
}

.main-menu .menu .menu-item.current-menu-item > a {
    opacity: 0.75;
}

/* Staggered reveal wanneer menu opent */
.menu-active .main-menu .menu .menu-item {
    opacity: 1;
    transform: translateY(0);
}

.menu-active .main-menu .menu .menu-item:nth-child(1) { transition-delay: 0.15s; }
.menu-active .main-menu .menu .menu-item:nth-child(2) { transition-delay: 0.20s; }
.menu-active .main-menu .menu .menu-item:nth-child(3) { transition-delay: 0.25s; }
.menu-active .main-menu .menu .menu-item:nth-child(4) { transition-delay: 0.30s; }
.menu-active .main-menu .menu .menu-item:nth-child(5) { transition-delay: 0.35s; }
.menu-active .main-menu .menu .menu-item:nth-child(6) { transition-delay: 0.40s; }
.menu-active .main-menu .menu .menu-item:nth-child(7) { transition-delay: 0.45s; }

/* Sub-menu op mobiel: dicht, open zodra JS .is-open zet op de parent */
.main-menu .menu .menu-item-has-children .sub-menu {
    display: none;
}

.main-menu .menu .menu-item-has-children.is-open .sub-menu {
    display: block;
}

.main-menu .menu .menu-item-has-children .sub-menu .menu-item a {
    padding-left: 40px;
    font-size: 16px;
    line-height: 50px;
}

/* CTA-groep op mobiel: onder de links, eigen vertraging */
.main-menu .cta-menu {
    display: flex;
    flex-direction: column;
    margin-top: 30px;
    padding-inline: 25px;
    opacity: 0;
    transform: translateY(-8px);
    transition: opacity 0.25s ease, transform var(--transition);
}

.menu-active .main-menu .cta-menu {
    opacity: 1;
    transform: translateY(0);
    transition-delay: 0.50s;
}
.main-menu .menu .menu-item-has-children > a::after {
        content: "";
        display: inline-block;
        margin-left: 15px;
        position: relative;
        width: 12px;
        height: 12px;
        margin-top: 0px;
        top: -5px;
        border-bottom: 2px solid;
        border-right: 2px solid;
        border-color: currentColor;
        transform: rotate(45deg);
        transition: margin 0.25s ease-in-out;
    }


/* ==========================================================================
   7. Desktop (≥ 1280px) — horizontale nav met dropdown
   ========================================================================== */

@media (min-width: 1280px) {
    /* Hamburger weg */
    .toggle-menu {
        display: none;
    }

    .logo svg{
        width: 110px;
        height: 60px;
    }
    /* Overlay-eigenschappen uitzetten — menu zit inline in de balk */
    .main-menu .mobile-menu {
        position: static;
        width: auto;
        height: auto;
        padding: 0;
        background: none;
        backdrop-filter: none;
        opacity: 1;
        transform: none;
        pointer-events: auto;

        display: flex;
        align-items: center;
        gap: 20px;
    }

    .main-menu .menu a, .main-menu .cta-menu {
        font-size: 16px;
    }   

    .main-menu .menu .menu-item-has-children .sub-menu .menu-item a {
        font-size: 16px;
    }

    .main-menu .menu {
        display: flex;
    }

    /* Stagger neutraliseren */
    .main-menu .menu .menu-item,
    .main-menu .cta-menu {
        opacity: 1;
        transform: none;
        transition: none;
    }

    /* Links */
    .main-menu .menu a,
    .main-menu .cta-menu a {
        display: inline-block;
        width: auto;
        padding: 0 10px;
        font-family: var(--font-body);
        font-size: var(--menu-link-size);
        font-weight: 400;
        line-height: var(--menu-height);
        color: var(--color-initial);
        transition: opacity 0.25s ease, color var(--transition);
        position: relative;
    }

    .main-menu .menu a,
    .main-menu .cta-menu {

    }
    .main-menu .menu > li > a {
        margin: 0 5px;
    }

    .main-menu .menu .menu-item > a:hover,
    .main-menu .menu .menu-item.menu-item-has-children:hover > a,
    .main-menu .menu .menu-item.current-menu-item > a,
    .main-menu .menu .menu-item.current-menu-parent > a {
        opacity: 0.75;
    }
        .main-menu .menu > .menu-item.current-menu-item > a:before,
        .main-menu .menu .menu-item.current-menu-parent > a:before {
            content: "";
            display: block;
            width: calc(100% - 20px);
            height: 3px;
            position: absolute;
            bottom: 0;
            left: 10px;
            background: var(--color-primary);
        }
    .scrolls .main-menu .menu a {
        color: var(--color-primary);
    }

    /* "+" dat bij hover naar "x" roteert */
    .main-menu .menu .menu-item-has-children > a {
        padding-right: 30px;
    }

    .main-menu .menu .menu-item-has-children > a::after {
        content: "";
        display: block;
        position: absolute;
        right: 15px;
        top: 50%;
        width: 8px;
        height: 8px;
        margin-top: -5px;
        border-bottom: 1.5px solid;
        border-right: 1.5px solid;
        border-color: currentColor;
        transform: rotate(45deg);
        transition: margin 0.25s ease-in-out;
    }

    .main-menu .menu .menu-item-has-children:hover > a::after {
        margin-top: -7px;
        transition: margin 0.25s ease-in-out;
    }

    /* Dropdown */
    .main-menu .menu .menu-item-has-children .sub-menu {
        display: block;
        position: absolute;
        top: 60px;
        left: -9999px;
        width: var(--submenu-width);
        padding: 10px 0;
        background: #FFF;
        border-radius: var(--radius);
        box-shadow: 0 5px 10px rgb(0 0 0 / 0.15);
        opacity: 0;
        z-index: 100;
        transition: opacity 0.25s ease-in-out, top 0.2s ease-in-out;
    }

    .main-menu .menu .menu-item-has-children:hover .sub-menu {
        left: -5px;
        top: 55px;
        opacity: 1;
    }

    .main-menu .menu .menu-item-has-children .sub-menu .menu-item a {
        width: 100%;
        padding: 5px 20px;
        line-height: 32px;
        color: var(--color-primary);
    }

    /* CTA-groep horizontaal */
    .main-menu .cta-menu {
        flex-direction: row;
        margin-top: 0;
        padding: 0;
    }
}

/* ==========================================================================
   8. CTA-menu-item — knop met --color-cta achtergrond
   ========================================================================== */

.main-menu a.cta,
.main-menu summary.cta {
    background: var(--color-cta);
    background: var(--color-gradient);
    border-radius: var(--radius-btn);
    display: inline-block;
    width: auto;
    padding: 2px 20px;
    font-family: var(--font-body);
    font-size: var(--menu-link-size);
    font-weight: 400;
    line-height: 40px;
    color: var(--color-white);
    transition: opacity 0.25s ease, color var(--transition);
    text-decoration: none;
}

.main-menu .menu .menu-item.cta > a:hover {
    opacity: 0.85;
}

/* Mobiel: inset met margin, niet edge-to-edge */
@media (max-width: 1279px) {
    .main-menu .menu .menu-item.cta > a {
        width: auto;
        margin: 12px 25px;
        line-height: 50px;
        text-align: center;
    }
}

/* Desktop: compacte pill */
@media (min-width: 1280px) {
    .main-menu .menu .menu-item.cta > a {
        padding: 8px 18px;
        line-height: 28px;
    }
    .main-menu .menu .menu-item.cta {
        align-self: center;
    }
}
/* CTA blijft wit, ook in gescrollde state */
.scrolls .main-menu .menu .menu-item.cta > a {
    color: #FFF;
}


.logo path {
    transition: fill 0.2s ease;
}
.scrolls .logo path.white{
    fill: var(--color-primary);
    transition: fill 0.2s ease;
}

/* Parent-menu-items met submenu zijn niet klikbaar als link — alleen
   cursor visueel aanpassen, hover-state voor submenu-toggle blijft */
.menu-parent-no-link {
    cursor: default;
}
/* ==========================================================================
   9. Service-knop in de header als dropdown (native <details>)
   --------------------------------------------------------------------------
   Zelfde patroon als de split-CTA in de hero: de <summary> houdt de
   bestaande .cta-knopstijl, het menu klapt eronder uit. De keuzes gaan naar
   de hoofdpagina's (zie $header_cta_links in template-parts/menu.php).
   ========================================================================== */

.main-menu .cta-dropdown.header-cta {
    position: relative;
}

/* De summary is de knop zelf: neemt de .cta-stijl over, zonder driehoekje */
.main-menu .cta-dropdown.header-cta summary {
    list-style: none;
    cursor: pointer;
}

.main-menu .cta-dropdown.header-cta summary::-webkit-details-marker {
    display: none;
}

/* Chevron als hint, draait bij openen */
.main-menu .cta-dropdown.header-cta summary::after {
    content: "";
    display: inline-block;
    width: 8px;
    height: 8px;
    margin-left: 10px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg);
    transition: transform 0.2s ease;
    vertical-align: middle;
    position: relative;
    top: -2px;
}



.main-menu .cta-dropdown.header-cta .cta-dropdown-menu {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    min-width: 100%;
    display: flex;
    flex-direction: column;
    background: var(--color-white);
    border: 1px solid var(--color-cta);
    border-radius: var(--radius-btn);
    overflow: hidden;
    z-index: 1000;
}

.main-menu .cta-dropdown.header-cta .cta-dropdown-menu a {
    padding: 10px 20px;
    color: var(--color-cta);
    text-decoration: none;
    white-space: nowrap;
    transition: background 0.15s ease;
    font-weight: 500;
    font-size: 0.85em;
}

.main-menu .cta-dropdown.header-cta .cta-dropdown-menu a:not(:last-child) {
    border-bottom: 1px solid var(--color-cta);
}

.main-menu .cta-dropdown.header-cta .cta-dropdown-menu a:hover {
    background: var(--color-gradient);
    color: var(--color-white);
}