/* =====================================================
   PW Header Nav — FSE Core Navigation (Rubystar-style v5)
   Scope: .pw-header-nav root
   Goal: visible "book hinge" — top chip (cover) tilts back, dropdown (pages)
   flips down from its top edge. No caret/typography changes.
   ===================================================== */
.pw-header-nav{
    --pw-gap: 14px;
    --pw-line-color: var(--wp--preset--color--primary, currentColor);
    --pw-line-thickness: 3px;
    --pw-card-bg: #fff;
    --pw-card-radius: 5px;
    --pw-shadow-rest: 0 8px 18px rgba(0,0,0,.10), 0 1px 3px rgba(0,0,0,.06);
    --pw-shadow-lift: 0 28px 58px rgba(0,0,0,.20), 0 5px 12px rgba(0,0,0,.12);
    --pw-anim-fast: 220ms cubic-bezier(.2,.7,.2,1);
    --pw-anim: 340ms cubic-bezier(.2,.7,.2,1);
    --pw-chip-raise: 3px;
    --pw-perspective: 1000px; /* camera depth */

    --pw-chip-shadow: 0 -05px 25px rgba(0,0,0,.09), 0 -2px 16px rgba(0,0,0,.02);
    --pw-menu-shadow: 0 18px 16px rgba(0,0,0,.16), 0 4px 10px rgba(0,0,0,.08);

    /* if any ancestor has transform, perspective here guards against 3D flattening */
    perspective: var(--pw-perspective);

    --pw-submenu-max: 400px;
    --pw-submenu-min:200px;
}

@media (min-width:940px) {
    .pw-somma-active{
        display: none!important;
    }
    /* layout */
    .pw-header-nav .wp-block-navigation__container {
        display: flex;
        align-items: center;
        gap: var(--pw-gap);
        padding-left: var(--pw-gap);
    }

    .pw-header-nav .wp-block-navigation-item {
        position: relative;
        list-style: none;
    }

    /* per-item 3D stage */
    .pw-header-nav li.has-child {
        position: relative;
        perspective: var(--pw-perspective);
        perspective-origin: 50% 0%;
        transform-style: preserve-3d; /* keep children in 3D */
    }

    /* ================= Book‑hinge effect ================= */
    /* Cover tilts back a bit (visible) */
    .pw-header-nav .wp-block-navigation__container > li.has-child:hover > .wp-block-navigation-item__content,
    .pw-header-nav .wp-block-navigation__container > li.has-child:focus-within > .wp-block-navigation-item__content,
    .pw-header-nav .wp-block-navigation__container > li.has-child:has(> .wp-block-navigation-submenu__toggle[aria-expanded="true"]) > .wp-block-navigation-item__content {
        background: var(--pw-card-bg);
        transform: translateY(calc(var(--pw-chip-raise) * -1)) rotateX(10deg);
        z-index: 1002;
        box-shadow: var(--pw-chip-shadow);
        border-bottom-left-radius: 0 !important;
        border-bottom-right-radius: 0 !important;
        /*box-shadow:none !important;*/
        transition: none !important;

    }

    /* top link (book cover) */
    .pw-header-nav .wp-block-navigation-item__content {
        display: inline-flex;
        align-items: center;
        gap: .55rem;
        padding: .78rem 1.05rem;
        line-height: 1.2;
        position: relative;
        text-decoration: none;
        border-radius: var(--pw-card-radius);
        transform-origin: 50% 100%; /* hinge at bottom edge */
        transition: transform var(--pw-anim), box-shadow var(--pw-anim), background var(--pw-anim-fast);
        will-change: transform;
    }

    /* Dropdown (pages) flips down from top edge */
    .pw-header-nav .wp-block-navigation__submenu-container {
        position: absolute;
        top: calc(100% + 2px);
        left: 0;
        min-width: var(--pw-submenu-min);
        background: var(--pw-card-bg);
        color: inherit;
        border-radius: var(--pw-card-radius);
        box-shadow: var(--pw-shadow-lift);
        padding: .7rem 0;
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transform-origin: 50% 0%; /* hinge at top */
        transition: transform var(--pw-anim), opacity var(--pw-anim), visibility 0s linear var(--pw-anim);
        transform: rotateX(-95deg) translateZ(0.01px);
        transition-timing-function: cubic-bezier(.2, .7, .2, 1);
        z-index: 1001;
        backface-visibility: hidden;
        -webkit-backface-visibility: hidden;
        will-change: transform, opacity;
    }

    .pw-header-nav .wp-block-navigation-item__content,
    .pw-header-nav .wp-block-navigation__submenu-container {
        transform-style: preserve-3d;
        backface-visibility: hidden;
        -webkit-backface-visibility: hidden;
    }


    /* Open dropdown → unfold */
    .pw-header-nav li.has-child:hover > .wp-block-navigation__submenu-container,
    .pw-header-nav li.has-child:focus-within > .wp-block-navigation__submenu-container,
    .pw-header-nav li.has-child .wp-block-navigation-submenu__toggle[aria-expanded="true"] + .wp-block-navigation__submenu-container {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: rotateX(0deg);
        top: 100% !important;
        border-top-left-radius: 0 !important;
        border-top-right-radius: 0 !important;
        box-shadow: var(--pw-menu-shadow) !important;
    }

    /* Hinge shading at top edge */
    .pw-header-nav li.has-child:hover > .wp-block-navigation__submenu-container::before,
    .pw-header-nav li.has-child:focus-within > .wp-block-navigation__submenu-container::before,
    .pw-header-nav li.has-child .wp-block-navigation-submenu__toggle[aria-expanded="true"] + .wp-block-navigation__submenu-container::before {
        opacity: 1;
    }


    /* submenu items */
    .pw-header-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
        display: block;
        width: 100%;
        padding: .7rem 1.1rem;
        border-radius: 0;
        white-space: nowrap;
    }

    .pw-header-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
    .pw-header-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:focus {
        background: rgba(0, 0, 0, .06);
    }

    /* nested flyouts (keep flat open) */
    .pw-header-nav .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container {
        top: -.5rem;
        left: calc(100% + 10px);
        transform: rotateX(0);
        border-top-left-radius: var(--pw-card-radius);
        border-top-right-radius: var(--pw-card-radius);
    }

    /* caret untouched */
    .pw-header-nav .wp-block-navigation-submenu__toggle {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        border: 0;
        background: none;
        padding: .25rem;
        cursor: pointer;
    }

    .pw-header-nav .wp-block-navigation-submenu__toggle svg {
        transition: transform var(--pw-anim-fast);
    }

    .pw-header-nav .wp-block-navigation-submenu__toggle[aria-expanded="true"] svg {
        transform: rotate(180deg);
    }

    /* focus */
    .pw-header-nav .wp-block-navigation-item__content:focus-visible,
    .pw-header-nav .wp-block-navigation-submenu__toggle:focus-visible {
        outline: 2px solid var(--pw-line-color);
        outline-offset: 2px;
        border-radius: 6px;
    }

    /* stacking context */
    .pw-header-nav {
        position: relative;
        z-index: 30;
    }

    /* ===== Patch: Override legacy stm-navigation rules that break 3D ===== */
    .pw-header-nav ul.stm-navigation li > ul.wp-block-navigation__submenu-container {
        /* never use display:none for animated menus */
        display: block !important;
        /* animation-friendly hidden state */
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        /* folded up for the hinge effect */
        transform: rotateX(-95deg);
        /* animate only what matters */
        transition: transform 340ms cubic-bezier(.2, .7, .2, 1),
        opacity 340ms cubic-bezier(.2, .7, .2, 1);
        /* Safari/WebKit stability */
        backface-visibility: hidden;
        -webkit-backface-visibility: hidden;
    }

    /* Open state (hover/focus/click) */
    .pw-header-nav ul.stm-navigation li:hover > ul.wp-block-navigation__submenu-container,
    .pw-header-nav ul.stm-navigation li:focus-within > ul.wp-block-navigation__submenu-container,
    .pw-header-nav ul.stm-navigation li .wp-block-navigation-submenu__toggle[aria-expanded="true"]
    + ul.wp-block-navigation__submenu-container {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: rotateX(0);
    }

    /* Top link (cover) tilt */
    /* Ensure a 3D stage exists */
    .pw-header-nav,
    .pw-header-nav ul.stm-navigation > li {
        perspective: 1000px;
        perspective-origin: 50% 0%;
        transform-style: preserve-3d;
    }


    /* ===== Bugfix pack: prevent flicker while moving from chip → dropdown ===== */
    /* 1) Keep menu open while pointer is over the submenu (not only the li) */
    .pw-header-nav li.has-child:has(> .wp-block-navigation__submenu-container:hover) > .wp-block-navigation__submenu-container {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: rotateX(0deg) translateZ(0.01px);
    }

    /* 2) Hover bridge: invisible strip between chip and dropdown so hover doesn’t drop */
    .pw-header-nav li.has-child::after {
        content: "";
        position: absolute;
        left: -18px;
        right: -18px;
        top: 100%;
        height: 14px;
        /* transparent but hoverable */
        background: transparent;
        pointer-events: auto;
        z-index: 1000;
        height: 1px !important;
    }

    /* 3) Make sure 3D isn’t clipped/flattened by wrappers */
    .pw-header-nav,
    .pw-header-nav .wp-block-navigation__responsive-dialog,
    .pw-header-nav .wp-block-navigation__container {
        overflow: visible;
        isolation: isolate;
    }

    /* ===== Cleanup: remove angled backplate and hinge strip (make seam solid) ===== */
    /* Remove the blurred/angled backplate between chip and dropdown */
    .pw-header-nav li.has-child::before {
        content: none !important;
        display: none !important;
        filter: none !important;
    }


    /* ===== Solid seam + width cap ===== */
    /* Use only the submenu's shadow when open (remove chip shadow) */
    .pw-header-nav ul.stm-navigation > li:hover > .wp-block-navigation-item__content,
    .pw-header-nav ul.stm-navigation > li:focus-within > .wp-block-navigation-item__content,
    .pw-header-nav ul.stm-navigation > li:has(> .wp-block-navigation-submenu__toggle[aria-expanded="true"]) > .wp-block-navigation-item__content {
        background: #fff;
        /*
            box-shadow:var(--pw-shadow-lift);
            transition:
                    transform 340ms cubic-bezier(.2,.7,.2,1),
                    box-shadow 340ms cubic-bezier(.2,.7,.2,1),
                    background 220ms cubic-bezier(.2,.7,.2,1);
        */
        box-shadow: var(--pw-chip-shadow) !important;
        transition: none !important;
    }

    /* ===== Revert to separate chip + dropdown, restore chip shape & shadow ===== */
    /* 1) Make the seam flush and corners continuous */
    .pw-header-nav li.has-child > .wp-block-navigation-item__content {
        background: var(--pw-card-bg);
        border-bottom-left-radius: 0 !important;
        border-bottom-right-radius: 0 !important;
        box-shadow: none !important; /* single shadow comes from the submenu */
    }

    /* ===== SOLID SEAM PATCH (final) — parent + submenu act as ONE card ===== */
    /* Parent (chip) while menu is active: same bg, no lift, no shadow, squared bottom corners */
    .pw-header-nav li.has-child:hover > .wp-block-navigation-item__content,
    .pw-header-nav li.has-child:focus-within > .wp-block-navigation-item__content,
    .pw-header-nav li.has-child:has(> .wp-block-navigation-submenu__toggle[aria-expanded="true"]) > .wp-block-navigation-item__content {
        background: var(--pw-card-bg) !important;
        border-bottom-left-radius: 0 !important;
        border-bottom-right-radius: 0 !important;
        /*box-shadow:none !important;*/
        transition: none !important;
        transform: none !important;
    }

    /* Hide underline while open so no hairline seam appears */
    .pw-header-nav li.has-child:hover > .wp-block-navigation-item__content::after,
    .pw-header-nav li.has-child:focus-within > .wp-block-navigation-item__content::after,
    .pw-header-nav li.has-child:has(> .wp-block-navigation-submenu__toggle[aria-expanded="true"]) > .wp-block-navigation-item__content::after {
        display: none !important;
    }

    /* Submenu flush to parent; submenu provides the single, unified shadow */
    .pw-header-nav li.has-child > .wp-block-navigation__submenu-container {
        top: 100% !important; /* perfectly flush */
        max-width: var(--pw-submenu-max);
        width: fit-content;
        border-top-left-radius: 0 !important;
        border-top-right-radius: 0 !important;
        box-shadow: var(--pw-menu-shadow) !important;
    }
}

@media (min-width: 940px) and (hover: hover) {
    .pw-header-nav .wp-block-navigation-item__content::after {
        content: "";
        position: absolute;
        left: 14px;
        right: 14px;
        bottom: 6px;
        height: var(--pw-line-thickness);
        background: var(--pw-line-color);
        transform: scaleX(0);
        transform-origin: left center;
        transition: transform var(--pw-anim);
        border-radius: 2px;
    }

    .pw-header-nav .wp-block-navigation-item:hover > .wp-block-navigation-item__content::after,
    .pw-header-nav .wp-block-navigation-item:focus-within > .wp-block-navigation-item__content::after,
    .pw-header-nav .wp-block-navigation-item .wp-block-navigation-item__content[aria-current="page"]::after {
        transform: scaleX(1);
    }
}

@media (min-width: 940px) and (prefers-reduced-motion: reduce) {
    .pw-header-nav * {
        transition: none !important;
    }
}

@media (max-width:940px){
    .pw-navwrap.active .pw-header-nav .wp-block-navigation__responsive-close{
        height: 100%;
    }

    .pw-navwrap.active .pw-mobmb:not(.-close){
        display: none;
    }

    .has-child .wp-block-navigation__submenu-icon{
        display: block;
        position: absolute;
        padding: 0.3rem 0;
        cursor: pointer;
        right: 0;
        top: 0;
        width: 4rem;
        height: 1.3rem;
        font-size: 1.1rem;
        min-height: 3rem;
        opacity: 0.6;
        color: var(--wp--custom--color--secondary);
    }
    ul.stm-navigation>.has-child>.wp-block-navigation__submenu-icon:before,
    ul.stm-navigation>.has-child .has-child>.wp-block-navigation__submenu-icon:before{
        transform: translate(-50%,-50%) rotate(90deg);
    }

    /*---*/
    .wp-block-navigation__responsive-container-open:after{
        content: "Menu";
        display: block;
        position: relative;
    }
    .wp-block-navigation__responsive-container-open{
        align-items: center;
        gap: 0.5rem;
    }
    .wp-block-navigation__responsive-container-open:not(.always-shown){
        display: flex;
    }
    .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
        display: none;
    }

    .pw-header-nav>.wp-block-navigation-item a{
        /* color: var(--wp--custom--color--background)!important;*/
        border-top: 1px solid rgba(0, 0, 0, 0.2);
    }
    .pw-header-nav>.wp-block-navigation-item:not(.has-child) a{

    }
    .pw-header-nav>.wp-block-navigation-item>a{
        padding: 0.4rem 0 0.65rem 0.7rem!important;
        min-height: 3rem;
        display: flex;
        justify-items: center;
        align-items: end;
        font-size: var(--wp--custom--font-sizes--normal);
    }
    .pw-header-nav .wp-block-navigation .wp-block-navigation-item,
    .pw-header-nav .wp-block-navigation .wp-block-navigation-item ul,
    .pw-header-nav .wp-block-navigation .wp-block-navigation-item a{
        min-width: 100% !important;
    }

    .wp-block-navigation:not(.wpml-language-switcher-block) .has-child .wp-block-navigation__submenu-container .wp-block-navigation-item__content{
        padding: 0.4rem 0 0.5rem 1rem!important;
    }
    ul.stm-navigation__fullwidth > li ul.wp-block-navigation__submenu-container > li > a{
        font-size: 1.4em !important;
        opacity: 0.8;
    }
    .wp-block-navigation .has-child .wp-block-navigation__submenu-container{
        text-indent: 0px!important;
        padding: 0px!important;
        margin: 0px!important;
        position: relative;
    }

    /*---*/

    .pw-navwrap:not(.active) .pw-somma-active{
        display: none;
    }
    .pw-navwrap.active .wpml-language-switcher-block,
    .pw-somma-active{
        visibility: visible!important;
        position: relative;
        left: 0em;
        font-size: 10px!important;
        height: auto!important;
        padding: 1em 0.6em !important;
        display: flex;
    }

    .pw-top-intf{
        gap:0;
    }
    .pw-navwrap.active .soci{
        display: flex;
        flex-direction: row;
        width: 100%;
        padding: 1rem !important;
        height: 72px !important;
        background-color: var(--wp--custom--color--primary);
        z-index: 3;
        gap: 3em;
    }
    .pw-somma-active.pw-mbl{
        bottom: -0.1em;
        position: absolute;
        width: 100%;
        padding: 0 !important;
        height: 50px !important;
    }
    ul.stm-navigation > li ul.wp-block-navigation__submenu-container{
        font-size: 0.7em;
    }
    .stm-navigation {
        padding: 0 1em;
    }

    .stm-navigation__default {
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    }

    ul.stm-navigation__default > li {
        position: relative;
        float: none;
        display: block;
        width: 100%;
        flex-direction: column;
    }
    ul.stm-navigation__default > li:before {
        display: none; }
    ul.stm-navigation__default > li ul.wp-block-navigation__submenu-container .wp-block-navigation__submenu-container {
        padding: 0 0 0 0.7em;
    }

    .pw-navwrap.active .mm-top{
        position: absolute;
        top: 0;
        width: 100%;
        margin: 34px 0 0;
    }
    .pw-navwrap.active .mm-bottom{
        position: absolute;
        bottom: 0;
        width: 100%;
    }
    .pw-navwrap.active .pw-header-nav>div,
    .pw-navwrap.active .wp-block-navigation__responsive-dialog{
        width: 100%;
    }
    .pw-navwrap.active .pw-header-nav>div{
        height: 100%;
    }
    .pw-navwrap.active .pw-header-nav .wp-block-navigation__responsive-close{
        height: 100%;
    }
    .pw-navwrap.active .wp-block-navigation__responsive-dialog{
        overflow: auto;
        margin-top: 200px;
    }
    .pw-navwrap.active .wp-block-navigation__responsive-dialog .-content{
        flex-direction: column;
        justify-content: flex-start;
        overflow: auto;
        display: flex
    }
    .pw-navwrap.active .pw-header-nav .wp-block-navigation__responsive-close,
    .pw-navwrap.active .wp-block-navigation__responsive-close button.-close{
        display: flex;
    }

    .pw-navwrap.active{
        display: flex;
        flex-direction: column;
        font-size: 10px;
        gap: 0;
        position: fixed;
        top: 0;
        left: 0;
        z-index: 99999;
        width: max(80vw, 320px);
        max-width: 30rem;
        height: 100vh;
        background-color: var(--wp--preset--color--background);
        overflow-y: scroll;
        overflow-x: hidden;
    }


    .pw-navwrap.active>nav.pw-header-nav{
        width: 100%;
        position: relative;
        flex-direction: column;
        justify-content: flex-start;
        height: calc(100% - 312px);
        max-height: calc(100% - 312px);
    }
    .pw-navwrap.active>nav.pw-header-nav ul.pw-header-nav{
        display: flex;
        flex-direction: column;
        justify-content: flex-start;
    }
    .pw-navwrap.active .wp-block-navigation__responsive-close button.-close,
    .pw-navwrap.active button.pw-mobmb.-close{
        position: absolute;
        right: 0;
        top: 0;
    }

    .pw-navwrap.active .pw-contact-data{
        background-color: var(--wp--preset--color--orange-footer);
        color: var(--wp--preset--color--background);
        gap: 1rem;
        font-size: 11px !important;
        margin: 0;
    }
    .pw-navwrap.active .pw-contact-data a,
    .pw-navwrap.active .pw-contact-data p{
        color: var(--wp--preset--color--background);
        font-size: var(--wp--preset--font-size--small);
    }


    .pw-navwrap.active .pw-contact-data .icon-container{
        width: 34px!important;
    }

    .pw-navwrap.active .pw-contact-data .pw-phone{
        font-size: 14px;
    }

    .pw-navwrap.active .wp-block-site-logo{
        width: 100%;
    }
    .stm-header__overlay {
        position: fixed;
        top: 0;
        left: 0;
        bottom: 0;
        right: -100%;
        background: rgba(0, 0, 0, .5);
        opacity: 0;
        visibility: hidden;
        display: none;
        transition: all .3s
        ease;
    }
    .stm-header__overlay.active {
        display: block;
        background: rgba(0,0,0,0.5);
        right: 0;
        opacity: 1;
        visibility: visible;
        z-index: 1;
    }

    ul.stm-navigation li>ul.wp-block-navigation__submenu-container {
        visibility: hidden;
        display: none;
        opacity: 0;
        transition: all 3.25s
        ease !important;
    }
    ul.stm-navigation li:hover>ul.wp-block-navigation__submenu-container, ul.stm-navigation li.active>ul.wp-block-navigation__submenu-container {
        visibility: visible;
        opacity: 1;
        display: block;
    }


    /* Base off-canvas position (hidden) */
/*
    .pw-navwrap{
        position: fixed;
        top: 0; left: 0;
        z-index: 99999;
        width: max(80vw, 320px);
        max-width: 30rem;
        height: 100vh;
        background-color: var(--wp--preset--color--background);
        overflow-y: scroll;
        overflow-x: hidden;
        transform: translateX(-104%);
        transition: transform 320ms cubic-bezier(.2,.8,.2,1);
        will-change: transform;
        pointer-events: none;
    }
 */

    /* Open state: slide in */
    /*
    .pw-navwrap.active{
        transform: translateX(0);
        pointer-events: auto;
    }
     */
}

@media (max-width: 940px) and (max-height: 850px) {
    .pw-navwrap.active>nav.pw-header-nav{
        height: calc(100% - 244px);
        max-height: calc(100% - 244px);
    }
    .pw-navwrap.active .pw-contact-data a,
    .pw-navwrap.active .pw-contact-data p,
    .pw-navwrap.active .pw-contact-data .has-small-font-size {
        font-size: var(--wp--preset--font-size--x-small);
    }
    .pw-navwrap.active .pw-contact-data .icon-container{
        width: 24px!important;
    }
    .pw-navwrap.active .soci{
        height: 54px !important;
    }
    .pw-navwrap.active .mm-bottom{
        margin-block-start: 0;
    }
}

