/**
 * Primary navigation — CreatiLab
 * ------------------------------------------------------------------
 * One <nav id="site-navigation" class="main-navigation creatilab-nav">
 * rendered by wp_nav_menu().
 *
 *   < 1024px : hamburger + off-canvas drawer with drill-down sub-panels
 *   >= 1024px : horizontal bar, hover/focus dropdowns, full-width mega panels
 */

:root {
    --cl-nav-accent: #ffd441;
    --cl-nav-accent-strong: #fab005;
    --cl-nav-ink: #3b3b3b;
    --cl-nav-bg: #ffffff;
    --cl-nav-border: #e3e3e3;
    --cl-nav-hover-bg: #f9f9f9;
    --cl-nav-drawer-w: min(88vw, 360px);
    --cl-nav-head-h: 56px;
    --cl-nav-ease: 0.28s ease;
}

/* ================================================================
   SHARED
   ================================================================ */

.creatilab-nav,
.creatilab-nav * {
    box-sizing: border-box;
}

.creatilab-nav .creatilab-menu,
.creatilab-nav .sub-menu {
    margin: 0;
    padding: 0;
    list-style: none;
}

.creatilab-nav .creatilab-menu li {
    position: relative;
    margin: 0;
}

.creatilab-nav .creatilab-menu a,
.creatilab-nav .mega-col__title {
    display: block;
    text-decoration: none;
    color: var(--cl-nav-ink);
}

.creatilab-nav .creatilab-menu a:hover,
.creatilab-nav .creatilab-menu li:hover > a,
.creatilab-nav .creatilab-menu a:focus {
    color: var(--cl-nav-accent);
}

.creatilab-nav .current-menu-item > a,
.creatilab-nav .current-menu-ancestor > a {
    color: var(--cl-nav-accent-strong);
}

/* Hamburger ---------------------------------------------------------- */

button.menu-toggle {
    float: none;
    max-width: none;
    min-width: 0;
    padding: 0;
    margin: 0;
    border: 0;
    border-radius: 0;
    background: none;
    box-shadow: none;
    width: 44px;
    height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: var(--cl-nav-ink);
}

button.menu-toggle::before,
button.menu-toggle::after,
button.menu-toggle span::before {
    content: none;
    display: none;
}

.menu-toggle .menu-toggle__bars,
.menu-toggle .menu-toggle__bars::before,
.menu-toggle .menu-toggle__bars::after {
    content: "";
    display: block;
    width: 22px;
    height: 2px;
    border-radius: 2px;
    background: currentColor;
    transition: transform 0.2s ease, opacity 0.2s ease, background 0.2s ease;
}

.menu-toggle .menu-toggle__bars {
    position: relative;
}

.menu-toggle .menu-toggle__bars::before {
    position: absolute;
    left: 0;
    top: -7px;
}

.menu-toggle .menu-toggle__bars::after {
    position: absolute;
    left: 0;
    top: 7px;
}

.menu-toggle[aria-expanded="true"] .menu-toggle__bars,
.menu-toggle.toggled .menu-toggle__bars {
    background: transparent;
}

.menu-toggle[aria-expanded="true"] .menu-toggle__bars::before,
.menu-toggle.toggled .menu-toggle__bars::before {
    transform: translateY(7px) rotate(45deg);
}

.menu-toggle[aria-expanded="true"] .menu-toggle__bars::after,
.menu-toggle.toggled .menu-toggle__bars::after {
    transform: translateY(-7px) rotate(-45deg);
}

/* ================================================================
   VISIBILITÀ NAV: desktop ↔ mobile
   ------------------------------------------------------------------
   .creatilab-nav--primary  = barra orizzontale (nel <header>)
   .creatilab-nav--drawer   = cassetto off-canvas mobile
   ================================================================ */

@media (max-width: 1023.98px) {
    /* Nascondi la barra desktop su mobile */
    .creatilab-nav--primary {
        display: none !important;
    }
}

@media (min-width: 1024px) {
    /* Nascondi il drawer mobile su desktop */
    .creatilab-nav--drawer {
        display: none !important;
    }
    /* Forza la visibilità della barra desktop */
    .creatilab-nav--primary {
        display: flex !important;
    }
}

/* ================================================================
   MOBILE  ( < 1024px )  — off-canvas drawer + drill-down
   ================================================================ */

@media (max-width: 1023.98px) {

    button.menu-toggle {
        display: inline-flex;
        position: absolute;
        left: 14px;
        top: 22px;
        z-index: 6;
    }

    .site-branding {
        position: absolute;
        left: 50%;
        top: 44px;
        transform: translate(-50%, -50%);
        width: auto;
        margin: 0;
    }

    #site-header-cart-container {
        margin-left: auto;
    }

    .creatilab-primary-navigation {
        border: 0 !important;
    }
    .creatilab-primary-navigation > .col-full {
        margin: 0 !important;
        padding: 0 !important;
        min-height: 0;
    }

    .creatilab-nav {
        position: fixed;
        top: 0;
        left: 0;
        bottom: 0;
        width: var(--cl-nav-drawer-w);
        max-width: 100%;
        background: var(--cl-nav-bg);
        box-shadow: 2px 0 24px rgba(0, 0, 0, 0.18);
        transform: translateX(-100%);
        transition: transform var(--cl-nav-ease);
        z-index: 100000;
        overflow: hidden;
        overscroll-behavior: contain;
    }

    .creatilab-nav.toggled {
        transform: translateX(0);
    }

    .creatilab-nav-backdrop {
        position: fixed;
        inset: 0;
        background: rgba(0, 0, 0, 0.45);
        opacity: 0;
        pointer-events: none;
        transition: opacity var(--cl-nav-ease);
        z-index: 99999;
        border: 0;
    }
    .creatilab-nav-backdrop.is-visible {
        opacity: 1;
        pointer-events: auto;
    }

    body.creatilab-nav-open {
        overflow: hidden;
    }

    .creatilab-nav__head {
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        height: var(--cl-nav-head-h);
        display: flex;
        align-items: center;
        gap: 8px;
        padding: 0 8px;
        border-bottom: 1px solid var(--cl-nav-border);
        background: var(--cl-nav-bg);
        z-index: 5;
    }

    .creatilab-nav__title {
        flex: 1 1 auto;
        font-weight: 600;
        font-size: 1.05rem;
        text-align: center;
        color: var(--cl-nav-ink);
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .creatilab-nav__back,
    .creatilab-nav__close {
        flex: 0 0 auto;
        width: 40px;
        height: 40px;
        border: 0;
        background: none;
        cursor: pointer;
        position: relative;
        color: var(--cl-nav-ink);
    }
    .creatilab-nav__back[hidden] {
        display: none;
    }

    .creatilab-nav__close::before,
    .creatilab-nav__close::after {
        content: "";
        display: block;
        position: absolute;
        left: 50%;
        top: 50%;
        width: 14px;
        height: 2px;
        background: currentColor;
        border-radius: 2px;
    }
    .creatilab-nav__close::before {
        transform: translate(-50%, -50%) rotate(45deg);
    }
    .creatilab-nav__close::after {
        transform: translate(-50%, -50%) rotate(-45deg);
    }

    .creatilab-nav__back::before {
        content: "";
        display: block;
        position: absolute;
        left: 50%;
        top: 50%;
        width: 8px;
        height: 8px;
        border-right: 2px solid currentColor;
        border-bottom: 2px solid currentColor;
        transform: translate(-50%, -50%) rotate(135deg);
    }

    .creatilab-nav .creatilab-menu,
    .creatilab-nav .sub-menu {
        position: fixed;
        top: var(--cl-nav-head-h);
        left: 0;
        right: 0;
        bottom: 0;
        width: auto;
        display: block;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        background: var(--cl-nav-bg);
        padding: 8px 0 24px;
        margin: 0;
    }

    .creatilab-nav .creatilab-menu {
        z-index: 1;
    }

    .creatilab-nav .sub-menu {
        transform: translateX(100%);
        transition: transform var(--cl-nav-ease);
        z-index: 2;
    }
    .creatilab-nav li.submenu-open > .sub-menu {
        transform: translateX(0);
    }
    .creatilab-nav .sub-menu .sub-menu {
        top: 0;
        z-index: 3;
    }
    .creatilab-nav .sub-menu .sub-menu .sub-menu {
        z-index: 4;
    }

    .creatilab-nav .creatilab-menu a,
    .creatilab-nav .mega-col__title {
        padding: 13px 52px 13px 20px;
        font-size: 1rem;
        line-height: 1.3;
    }

    .creatilab-nav .mega-col__title {
        font-weight: 600;
        text-transform: uppercase;
        font-size: 0.8rem;
        letter-spacing: 0.04em;
        color: #777;
        padding-top: 18px;
        padding-bottom: 6px;
    }

    .creatilab-nav .submenu-toggle {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 48px;
        margin: 0;
        padding: 0;
        border: 0;
        background: transparent;
        cursor: pointer;
    }
    .creatilab-nav .submenu-toggle::after {
        content: "";
        display: block;
        position: absolute;
        right: 22px;
        top: 50%;
        width: 6px;
        height: 6px;
        border-right: 1.5px solid #999;
        border-bottom: 1.5px solid #999;
        transform: translateY(-60%) rotate(-45deg);
    }
    .creatilab-nav .submenu-open > .submenu-toggle {
        height: 0;
        overflow: hidden;
    }

    .creatilab-nav .mega-panel {
        display: block;
        padding: 0 0 24px;
    }
    .creatilab-nav .mega-panel__inner {
        display: block;
        width: 100%;
        margin: 0;
        padding: 0;
    }
    .creatilab-nav .mega-panel__figure {
        display: none;
    }
    .creatilab-nav .mega-panel__main {
        display: block;
    }
    .creatilab-nav .mega-panel__title {
        display: block;
        padding: 18px 20px 6px;
        font-weight: 600;
        text-transform: uppercase;
        font-size: 0.8rem;
        letter-spacing: 0.04em;
        color: #777;
    }
    .creatilab-nav .mega-panel__intro {
        padding: 0 20px 10px;
        margin: 0;
        border: 0;
        font-size: 0.85rem;
        line-height: 1.4;
        color: #666;
    }
    .creatilab-nav .mega-panel__intro p {
        margin: 0 0 0.35em;
    }
    .creatilab-nav .mega-panel__links {
        position: static;
        float: none;
        list-style: none;
        margin: 0;
        padding: 0;
        column-count: 1 !important;
        display: block;
    }
    .creatilab-nav .mega-panel__links > li > a {
        display: block;
        padding: 13px 20px;
    }
    .creatilab-nav .mega-col__list {
        display: block;
    }
    .creatilab-nav .mega-card__link {
        display: block;
    }
    .creatilab-nav .mega-card__media {
        display: none;
    }

    @media (prefers-reduced-motion: reduce) {
        .creatilab-nav,
        .creatilab-nav .sub-menu,
        .creatilab-nav-backdrop,
        .menu-toggle .menu-toggle__bars,
        .menu-toggle .menu-toggle__bars::before,
        .menu-toggle .menu-toggle__bars::after {
            transition: none;
        }
    }
}

/* ================================================================
   DESKTOP  ( >= 1024px )  — horizontal bar
   ================================================================ */

@media (min-width: 1024px) {

    .menu-toggle,
    .creatilab-nav__head,
    .creatilab-nav-backdrop,
    .creatilab-nav .submenu-toggle {
        display: none !important;
    }

    .creatilab-primary-navigation .col-full {
        position: relative;
    }

    .creatilab-nav {
        position: static;
        transform: none;
        width: 100%;
        background: none;
        box-shadow: none;
        overflow: visible;
        align-self: stretch;
        display: flex;
        align-items: stretch;
    }

    .creatilab-nav .creatilab-menu {
        position: relative;
        z-index: 100002;
        display: flex;
        flex-wrap: wrap;
        align-items: stretch;
        overflow: visible;
        background: none;
        padding: 0;
    }

    .creatilab-nav .creatilab-menu > li {
        position: relative;
        z-index: 100003;
        display: flex;
    }
    .creatilab-nav .creatilab-menu > li.mega {
        position: static;
    }

    .creatilab-nav .creatilab-menu > li > a {
        position: relative;
        z-index: 100004;
        padding: 0.7rem 0.75rem;
        font-size: 18px;
        font-weight: 600;
        text-transform: uppercase;
        letter-spacing: 0;
        line-height: 1.2;
        display: flex;
        align-items: center;
    }
    .creatilab-nav .creatilab-menu > li > a:focus-visible {
        outline: 2px solid var(--cl-nav-accent-strong);
        outline-offset: 2px;
    }

    .creatilab-nav .creatilab-menu > li.menu-item-has-children > a {
        display: flex;
        align-items: center;
        gap: 6px;
    }
    .creatilab-nav .creatilab-menu > li.menu-item-has-children > a::after {
        content: "";
        flex: none;
        width: 5px;
        height: 5px;
        margin-top: -2px;
        border-right: 1.5px solid currentColor;
        border-bottom: 1.5px solid currentColor;
        transform: rotate(45deg);
        opacity: 0.55;
        transition: transform 0.2s ease, opacity 0.2s ease, margin 0.2s ease;
    }
    .creatilab-nav .creatilab-menu > li.menu-open > a::after,
    .creatilab-nav .creatilab-menu > li:hover > a::after {
        opacity: 0.95;
        transform: rotate(225deg);
        margin-top: 2px;
    }

    /* ---- classic dropdown ---- */
    .creatilab-nav .sub-menu {
        position: absolute;
        top: calc(100% + 4px);
        left: 0;
        z-index: 99999;
        min-width: 220px;
        margin: 0;
        padding: 6px;
        background: #ffffff;
        border: 1px solid rgba(40, 35, 20, 0.09);
        border-top: 2.5px solid var(--cl-nav-accent-strong);
        border-radius: 12px;
        box-shadow: 0 14px 34px -4px rgba(35, 30, 15, 0.12), 0 3px 10px -1px rgba(35, 30, 15, 0.05);
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transform: translateY(6px);
        transition: opacity 0.12s ease, transform 0.12s ease, visibility 0.12s;
    }

    .creatilab-nav .creatilab-menu > li:hover,
    .creatilab-nav .creatilab-menu > li.menu-open {
        z-index: 1000;
    }

    .creatilab-nav .creatilab-menu > li:hover > .sub-menu:not(.mega-panel),
    .creatilab-nav .creatilab-menu > li:focus-within > .sub-menu {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: none;
        z-index: 100000;
        transition: opacity 0.12s ease, transform 0.12s ease, visibility 0.12s;
    }

    .creatilab-nav .creatilab-menu > li.menu-open > .mega-panel,
    .creatilab-nav .creatilab-menu > li:focus-within > .mega-panel,
    .creatilab-nav .creatilab-menu > li.mega:hover > .mega-panel {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: none;
        z-index: 99999;
        transition: opacity 0.12s ease, transform 0.12s ease, visibility 0.12s;
    }

    .creatilab-nav .sub-menu:not(.mega-panel):not(.mega-col__list) li {
        margin: 1px 0;
    }
    .creatilab-nav .sub-menu:not(.mega-panel):not(.mega-col__list) a {
        padding: 7px 12px;
        font-size: 13px;
        font-weight: 500;
        color: #383630;
        border-radius: 8px;
        white-space: nowrap;
        display: flex;
        align-items: center;
        justify-content: space-between;
        transition: all 0.14s ease;
    }
    .creatilab-nav .sub-menu:not(.mega-panel):not(.mega-col__list) a:hover,
    .creatilab-nav .sub-menu:not(.mega-panel):not(.mega-col__list) li:hover > a {
        background: #fbf7ee;
        color: #1a1916;
        font-weight: 600;
        transform: translateX(3px);
    }

    .creatilab-nav .sub-menu li.menu-item-has-children:not(.mega-col) > a::after {
        content: "";
        display: inline-block;
        width: 5px;
        height: 5px;
        margin-left: 8px;
        border-right: 1.5px solid currentColor;
        border-top: 1.5px solid currentColor;
        transform: rotate(45deg);
        opacity: 0.5;
        vertical-align: middle;
        transition: transform 0.14s ease, opacity 0.14s ease;
    }
    .creatilab-nav .sub-menu li.menu-item-has-children:not(.mega-col):hover > a::after {
        opacity: 0.9;
        transform: rotate(45deg) translate(1px, -1px);
    }

    .creatilab-nav .creatilab-menu > li:nth-last-child(-n + 2):not(.mega) > .sub-menu {
        left: auto;
        right: 0;
    }

    .creatilab-nav .sub-menu .sub-menu {
        top: -6px;
        left: calc(100% + 4px);
    }
    .creatilab-nav .creatilab-menu > li:nth-last-child(-n + 2):not(.mega) .sub-menu .sub-menu {
        left: auto;
        right: calc(100% + 4px);
    }

    /* ---- full-width mega panel ---- */
    .creatilab-nav .mega-panel {
        left: 0;
        right: 0;
        top: 100%;
        min-width: 0;
        width: 100%;
        padding: 1.25rem 0;
        margin: 0;
        background: #ffffff;
        border: 0;
        border-top: 2.5px solid var(--cl-nav-accent-strong);
        border-bottom: 1px solid rgba(40, 35, 20, 0.08);
        border-radius: 0 0 16px 16px;
        box-shadow: 0 16px 36px -6px rgba(35, 30, 15, 0.11), 0 4px 12px -2px rgba(35, 30, 15, 0.04);
        display: block;
        white-space: normal;
    }

    .creatilab-nav .mega-panel__inner {
        width: min(1280px, calc(100% - 48px));
        margin-inline: auto;
        display: flex;
        align-items: stretch;
        gap: 2.25rem;
    }

    .creatilab-nav .mega-panel__figure {
        flex: 0 0 clamp(190px, 18vw, 240px);
        margin: 0;
        display: flex;
        border: 0;
    }
    .creatilab-nav .mega-panel__figure-link {
        display: block;
        width: 100%;
        aspect-ratio: 4 / 3;
        border: 0;
        border-radius: 12px;
        overflow: hidden;
        text-decoration: none;
        box-shadow: none;
        background: none;
        transition: transform 0.25s ease, opacity 0.2s ease;
    }
    .creatilab-nav .mega-panel__figure-link:hover {
        transform: scale(1.02);
    }
    .creatilab-nav .mega-panel__figure img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        border-radius: 12px;
        border: 0;
        box-shadow: none;
        display: block;
        transition: transform 0.35s ease;
    }
    .creatilab-nav .mega-panel__figure-link:hover img {
        transform: scale(1.04);
    }

    .creatilab-nav .mega-panel__main {
        flex: 1 1 auto;
        min-width: 0;
        display: flex;
        flex-direction: column;
        justify-content: flex-start;
    }

    .creatilab-nav .mega-panel__title {
        display: block;
        font-weight: 700;
        font-size: 15px;
        text-transform: uppercase;
        letter-spacing: 0.04em;
        color: var(--cl-nav-ink);
        margin-bottom: 0.35rem;
    }

    .creatilab-nav .mega-panel__intro {
        color: #6a675e;
        font-size: 13px;
        line-height: 1.45;
        border: 0;
        padding-bottom: 0.35rem;
        margin-bottom: 0.75rem;
    }
    .creatilab-nav .mega-panel__intro--bordered,
    .creatilab-nav li[class*="mega-cols-"] .mega-panel__intro {
        border-bottom: 1px solid rgba(40, 35, 20, 0.12);
        padding-bottom: 0.65rem;
        margin-bottom: 0.85rem;
    }
    .creatilab-nav .mega-panel__intro p {
        margin: 0 0 0.25em;
    }
    .creatilab-nav .mega-panel__intro p:last-child {
        margin-bottom: 0;
    }

    .creatilab-nav .sub-menu:not(.mega-panel)::before {
        content: "";
        position: absolute;
        left: 0;
        right: 0;
        top: -10px;
        height: 10px;
    }
    .creatilab-nav .mega-panel::before,
    .creatilab-nav .mega-col__list::before {
        content: none !important;
        display: none !important;
    }

    /* ---- Mode 1: Colonne ---- */
    .creatilab-nav .mega-panel__links {
        position: static;
        float: none;
        list-style: none;
        margin: 0;
        padding: 0;
    }
    .creatilab-nav .mega-panel__links > li {
        position: static;
    }

    .creatilab-nav .mega-panel--cols-2 .mega-panel__links {
        column-count: 2;
    }
    .creatilab-nav .mega-panel--cols-3 .mega-panel__links {
        column-count: 3;
    }
    .creatilab-nav .mega-panel--cols-4 .mega-panel__links {
        column-count: 4;
    }
    .creatilab-nav [class*="mega-panel--cols-"] .mega-panel__links {
        column-gap: 2.25rem;
    }
    .creatilab-nav [class*="mega-panel--cols-"] .mega-panel__links > li {
        break-inside: avoid;
        margin-bottom: 2px;
    }
    .creatilab-nav [class*="mega-panel--cols-"] .mega-panel__links > li > a {
        display: block;
        padding: 5px 8px;
        font-size: 13px;
        font-weight: 500;
        color: #383630;
        border-radius: 6px;
        transition: all 0.15s ease;
    }
    .creatilab-nav [class*="mega-panel--cols-"] .mega-panel__links > li > a:hover {
        background: #fbf7ee;
        color: #1a1916;
        font-weight: 600;
        transform: translateX(3px);
    }

    .creatilab-nav .mega-panel:not([class*="mega-panel--cols-"]):not(.mega-panel--media) .mega-panel__links {
        display: flex;
        flex-wrap: wrap;
        gap: 1rem 2.25rem;
        align-items: flex-start;
    }
    .creatilab-nav .mega-panel:not([class*="mega-panel--cols-"]):not(.mega-panel--media) .mega-panel__links > li.mega-col {
        flex: 1 1 170px;
        min-width: 150px;
    }

    .creatilab-nav .mega-col__title {
        display: flex;
        align-items: center;
        gap: 6px;
        font-weight: 700;
        font-size: 12px;
        text-transform: uppercase;
        letter-spacing: 0.06em;
        color: #7a6843;
        padding: 0 0 6px 0;
        margin-bottom: 6px;
        border-bottom: 1.5px solid rgba(255, 210, 51, 0.45);
    }
    .creatilab-nav .mega-col__list {
        position: static;
        min-width: 0;
        padding: 0;
        margin: 0;
        list-style: none;
        background: none;
        border-top: 0;
        box-shadow: none;
        opacity: 1;
        visibility: visible;
        transform: none;
        display: flex;
        flex-direction: column;
        gap: 1px;
    }
    .creatilab-nav .mega-col__list a {
        display: block;
        padding: 5px 8px;
        font-size: 13px;
        font-weight: 500;
        color: #3d3b35;
        border-radius: 6px;
        white-space: normal;
        line-height: 1.35;
        transition: all 0.15s ease;
    }
    .creatilab-nav .mega-col__list a:hover {
        background: #fbf7ee;
        color: #1a1916;
        font-weight: 600;
        transform: translateX(3px);
    }

    .creatilab-nav .mega-panel--media .mega-panel__links {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
        gap: 1.25rem;
    }
    .creatilab-nav .mega-card__link {
        display: block;
        text-align: center;
    }
    .creatilab-nav .mega-card__media {
        display: block;
        aspect-ratio: 4 / 3;
        overflow: hidden;
        border-radius: 8px;
        background: var(--cl-nav-hover-bg);
        margin-bottom: 0.5rem;
    }
    .creatilab-nav .mega-card__media img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
        transition: transform 0.2s ease;
    }
    .creatilab-nav .mega-card__link:hover .mega-card__media img {
        transform: scale(1.03);
    }
    .creatilab-nav .mega-card__label {
        font-size: 0.9rem;
        font-weight: 600;
    }

    @media (prefers-reduced-motion: reduce) {
        .creatilab-nav .sub-menu,
        .creatilab-nav .mega-card__media img {
            transition: none;
        }
    }
}
