body {
    .site-header {
        position: relative;
        z-index: 1100;
    }

    .menu {
        --menu-blue: #223c57;
        --menu-shadow: 0 0.25rem 1rem rgb(0 0 0 / 12%);
        --menu-surface: rgb(255 255 255 / 88%);
        --menu-surface-compact: rgb(255 255 255 / 80%);

        position: fixed;
        top: 0.5rem;
        left: 50%;
        display: flex;
        align-items: center;
        justify-content: space-between;
        width: calc(100% - 1rem);
        padding: 0.75rem 1rem;
        border: 0.0625rem solid rgb(34 60 87 / 16%);
        border-radius: 1rem;
        box-shadow: var(--menu-shadow);
        background-color: var(--menu-surface);
        backdrop-filter: blur(0.75rem);
        -webkit-backdrop-filter: blur(0.75rem);
        transform: translateX(-50%);
        transition: width 320ms cubic-bezier(0.22, 1, 0.36, 1), min-height 320ms cubic-bezier(0.22, 1, 0.36, 1), padding 320ms cubic-bezier(0.22, 1, 0.36, 1), background-color 320ms ease, box-shadow 320ms ease;
        z-index: 1100;

        a {
            color: var(--menu-blue);
            text-decoration: none;
        }

        .menu__brand {
            display: inline-flex;
            flex: 0 0 auto;
            align-items: center;
        }

        .logoMenu {
            display: block;
            width: 8rem;
            height: auto;
            transition: width 320ms cubic-bezier(0.22, 1, 0.36, 1);
        }

        .menu-mobile {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 2.75rem;
            height: 2.75rem;
            padding: 0;
            border: 0;
            background: transparent;
            cursor: pointer;
            transition: width 320ms cubic-bezier(0.22, 1, 0.36, 1), height 320ms cubic-bezier(0.22, 1, 0.36, 1);
        }

        .menu-hamburguer,
        .menu-hamburguer::before,
        .menu-hamburguer::after {
            width: 1.5rem;
            height: 0.1875rem;
            border-radius: 1rem;
            background-color: var(--menu-blue);
            transition: transform 200ms ease, background-color 200ms ease;
        }

        .menu-hamburguer {
            position: relative;
            display: block;
        }

        .menu-hamburguer::before,
        .menu-hamburguer::after {
            content: "";
            position: absolute;
            left: 0;
        }

        .menu-hamburguer::before {
            top: -0.5rem;
        }

        .menu-hamburguer::after {
            top: 0.5rem;
        }

        .menu-mobile.open .menu-hamburguer {
            background-color: transparent;
        }

        .menu-mobile.open .menu-hamburguer::before {
            transform: translateY(0.5rem) rotate(45deg);
        }

        .menu-mobile.open .menu-hamburguer::after {
            transform: translateY(-0.5rem) rotate(-45deg);
        }

        .linksMobile {
            position: absolute;
            top: calc(100% + 0.5rem);
            right: 0;
            left: 0;
            display: none;
            max-height: calc(100dvh - 5.5rem);
            padding: 1rem;
            overflow-y: auto;
            border: 0.0625rem solid rgb(34 60 87 / 16%);
            border-radius: 1rem;
            box-shadow: var(--menu-shadow);
            background-color: transparent;
        }

        &.menu--open .linksMobile {
            background-color: #fff;
            backdrop-filter: none;
            -webkit-backdrop-filter: none;
        }

        .menu__links,
        .menu__submenu,
        .menu__languages {
            padding: 0;
            margin: 0;
            list-style: none;
        }

        .menu__links {
            display: flex;
            flex-direction: column;
            gap: 0.5rem;
        }

        .menu__item,
        .drop-menu {
            width: 100%;
        }

        .menu__link,
        .drop-menu > summary {
            position: relative;
            display: flex;
            align-items: center;
            width: 100%;
            min-height: 2.75rem;
            padding: 0.5rem 0.75rem;
            border-radius: 0.5rem;
            color: var(--menu-blue);
            font-family: "Titillium Web", sans-serif;
            font-size: 1.125rem;
            font-weight: 600;
            line-height: 1.25;
            transition: min-height 320ms cubic-bezier(0.22, 1, 0.36, 1), font-size 320ms cubic-bezier(0.22, 1, 0.36, 1), color 200ms ease, background-color 200ms ease;
        }

        .menu__link::before {
            content: "";
            position: absolute;
            bottom: 0.375rem;
            left: 0.75rem;
            width: 0;
            height: 0.0625rem;
            border-radius: 1rem;
            background: linear-gradient(90deg, #223c57 0%, #d4d4d4 100%);
            transition: width 300ms ease-out;
        }

        .menu__link:hover,
        .menu__link:focus-visible,
        .drop-menu > summary:hover,
        .drop-menu > summary:focus-visible,
        .menu__link[aria-current="page"] {
            color: var(--menu-blue);
            background-color: transparent;
            outline: none;
        }

        .menu__link:hover::before,
        .menu__link:focus-visible::before,
        .menu__link[aria-current="page"]::before {
            width: calc(100% - 1.5rem);
        }

        .drop-menu > summary {
            cursor: pointer;
            list-style: none;
        }

        .drop-menu > summary::-webkit-details-marker {
            display: none;
        }

        .drop-menu > summary::after {
            content: "";
            width: 0.5rem;
            height: 0.5rem;
            margin-left: auto;
            border-right: 0.125rem solid currentcolor;
            border-bottom: 0.125rem solid currentcolor;
            transform: rotate(45deg) translateY(-0.1875rem);
            transition: transform 200ms ease;
        }

        .drop-menu[open] > summary::after {
            transform: rotate(225deg) translateY(-0.1875rem);
        }

        .menu__submenu {
            display: grid;
            gap: 0.25rem;
            padding: 0.5rem 0 0;
        }

        .menu__submenu a {
            position: relative;
            display: inline-block;
            padding: 0.5rem 0.75rem;
            border-radius: 0.5rem;
            font-size: 1rem;
            font-weight: 600;
            line-height: 1.25;
            transition: color 200ms ease, background-color 200ms ease;
        }

        .menu__submenu a::after,
        .menu__languages a::after {
            content: "";
            position: absolute;
            bottom: 0.25rem;
            left: 0;
            width: 0;
            height: 0.0625rem;
            border-radius: 1rem;
            background: linear-gradient(90deg, #223c57 0%, #d4d4d4 100%);
            transition: width 300ms ease-out;
        }

        .menu__submenu a::after {
            left: 0.75rem;
        }

        .menu__submenu a:hover,
        .menu__submenu a:focus-visible,
        .menu__submenu a[aria-current="page"] {
            color: var(--menu-blue);
            background-color: transparent;
            outline: none;
        }

        .menu__submenu a:hover::after,
        .menu__submenu a:focus-visible::after,
        .menu__submenu a[aria-current="page"]::after {
            width: calc(100% - 1.5rem);
        }

        .menu__languages a:hover::after,
        .menu__languages a:focus-visible::after {
            width: 100%;
        }

        .menu__cta {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 0.75rem;
            min-height: 2.75rem;
            padding: 0.5rem 1.25rem;
            border: 0.0625rem solid var(--menu-blue);
            border-radius: 999rem;
            color: #fff;
            background-color: var(--menu-blue);
            font-family: "Titillium Web", sans-serif;
            font-size: 1.125rem;
            font-weight: 700;
            line-height: 1.25;
            transition: min-height 320ms cubic-bezier(0.22, 1, 0.36, 1), padding 320ms cubic-bezier(0.22, 1, 0.36, 1), font-size 320ms cubic-bezier(0.22, 1, 0.36, 1), color 300ms ease, background-color 300ms ease, box-shadow 300ms ease, transform 300ms cubic-bezier(0.22, 1, 0.36, 1);
        }

        .menu__cta-icon {
            flex: 0 0 auto;
            width: 1.125rem;
            height: 1.125rem;
            transition: transform 300ms cubic-bezier(0.22, 1, 0.36, 1);
        }

        .menu__cta--contato {
            font-weight: 600;
            will-change: transform;
        }

        .menu__cta:hover,
        .menu__cta:focus-visible {
            color: var(--menu-blue);
            background-color: #fff;
            outline: none;
        }

        .menu__cta--contato:hover,
        .menu__cta--contato:focus-visible {
            box-shadow: 0 0.5rem 1rem rgb(34 60 87 / 24%);
            transform: translateY(-0.125rem);
        }

        .menu__cta--contato:hover .menu__cta-icon,
        .menu__cta--contato:focus-visible .menu__cta-icon {
            transform: translate(0.125rem, -0.125rem);
        }

        .menu__languages {
            display: flex;
            flex-wrap: wrap;
            gap: 0.75rem;
            padding: 0.75rem;
            border-top: 0.0625rem solid rgb(34 60 87 / 20%);
            font-family: "Titillium Web", sans-serif;
            font-size: 1rem;
            font-weight: 600;
        }

        .menu__languages a:hover,
        .menu__languages a:focus-visible {
            outline: none;
        }

        .menu__languages a {
            position: relative;
            display: inline-flex;
            padding-bottom: 0.25rem;
        }

        .menu__languages a::after {
            bottom: 0;
        }

        &.menu--endomarketing .menu__cta {
            margin-left: auto;
        }

        &.menu--compact {
            padding: 0.5rem 0.875rem;
            box-shadow: 0 0.1875rem 0.75rem rgb(0 0 0 / 10%);
            background-color: var(--menu-surface-compact);

            .logoMenu {
                width: 7.25rem;
            }

            .menu-mobile {
                width: 2.5rem;
                height: 2.5rem;
            }

            .menu__cta {
                min-height: 2.5rem;
                padding: 0.5rem 1rem;
                font-size: 1rem;
            }
        }
    }

    .close-drop {
        position: fixed;
        inset: 0;
        display: none;
        background-color: rgb(0 0 0 / 8%);
        z-index: 1090;
    }

    @media (max-width: 575px) {
        & {
            --menu-mobile-height: 4.5rem;

            padding-bottom: calc(var(--menu-mobile-height) + 1.5rem);
            scroll-padding-bottom: calc(var(--menu-mobile-height) + 1.5rem);
        }

        .menu {
            top: auto;
            bottom: 0.75rem;
            left: 50%;
            width: 90vw;
            min-height: var(--menu-mobile-height);
            border: 0.0625rem solid rgb(34 60 87 / 16%);
            border-radius: 999px;
            transform: translateX(-50%);

            .linksMobile {
                top: auto;
                bottom: calc(100% + 0.5rem);
            }

            &.menu--compact {
                width: 84vw;
                min-height: 4rem;
            }
        }
    }

    @media (max-width: 767px) {
        .menu {
            .logoMenu {
                width: 3rem;
            }

            &.menu--compact .logoMenu {
                width: 2.25rem;
            }
        }
    }

    @media (min-width: 992px) {
        .menu {
            top: 0.5rem;
            width: min(calc(100% - 2rem), 84rem);
            min-height: 6.5rem;
            padding: 0.75rem 2.5rem;

            .logoMenu {
                width: 10.5rem;
            }

            &.menu--compact {
                min-height: 5.5rem;
                padding: 0.5rem 2rem;

                .logoMenu {
                    width: 9rem;
                }

                .menu__link,
                .drop-menu > summary {
                    min-height: 2.25rem;
                    font-size: 0.9375rem;
                }

                .menu__cta {
                    min-height: 2.5rem;
                    padding: 0.5rem 1rem;
                    font-size: 1rem;
                }
            }

            .menu-mobile {
                display: none;
            }

            .linksMobile {
                position: static;
                display: block !important;
                max-height: none;
                padding: 0;
                overflow: visible;
                border: 0;
                border-radius: 0;
                box-shadow: none;
                background: transparent;
            }

            .menu__links {
                flex-direction: row;
                align-items: center;
                justify-content: flex-end;
                gap: 0.5rem;
            }

            .menu__item,
            .drop-menu {
                width: auto;
            }

            .menu__link,
            .drop-menu > summary {
                width: auto;
                min-height: 2.5rem;
                padding: 0.5rem 0.75rem;
                font-size: 1rem;
                white-space: nowrap;
            }

            .drop-menu {
                position: relative;
            }

            .drop-menu > summary::after {
                width: 0.375rem;
                height: 0.375rem;
                margin-left: 0.5rem;
            }

            .menu__submenu {
                position: absolute;
                top: calc(100% + 0.75rem);
                left: 50%;
                display: grid;
                width: 17rem;
                padding: 0.75rem;
                border: 0.0625rem solid rgb(34 60 87 / 16%);
                border-radius: 0.75rem;
                box-shadow: var(--menu-shadow);
                background-color: var(--menu-surface);
                backdrop-filter: blur(0.75rem);
                -webkit-backdrop-filter: blur(0.75rem);
                opacity: 0;
                pointer-events: none;
                transform: translate(-50%, -0.5rem);
                transition: opacity 200ms ease, transform 200ms ease;
            }

            .drop-menu:hover .menu__submenu,
            .drop-menu:focus-within .menu__submenu,
            .drop-menu[open] .menu__submenu {
                opacity: 1;
                pointer-events: auto;
                transform: translate(-50%, 0);
            }

            .menu__submenu::before {
                content: "";
                position: absolute;
                top: -0.375rem;
                left: 50%;
                width: 0.75rem;
                height: 0.75rem;
                border-top: 0.0625rem solid rgb(34 60 87 / 16%);
                border-left: 0.0625rem solid rgb(34 60 87 / 16%);
                background-color: var(--menu-surface);
                transform: translateX(-50%) rotate(45deg);
            }

            .menu__submenu a {
                position: relative;
                z-index: 1;
                padding: 0.5rem 0.75rem;
                font-size: 1rem;
            }

            .menu__cta {
                min-height: 3.25rem;
                padding: 0.5rem 1.5rem;
                font-size: 1.125rem;
                white-space: nowrap;
            }

            .menu__languages {
                align-items: center;
                gap: 0.75rem;
                padding: 0 0 0 1.5rem;
                border-top: 0;
                border-left: 0.0625rem solid rgb(34 60 87 / 35%);
                white-space: nowrap;
            }

        }
    }

    @media (min-width: 1200px) {
        .menu {
            .menu__links {
                gap: 1rem;
            }

            .menu__link,
            .drop-menu > summary {
                font-size: 1.125rem;
            }
        }
    }

    @media (prefers-reduced-motion: reduce) {
        .menu,
        .menu *,
        .close-drop {
            transition-duration: 0ms !important;
        }
    }
}
