.vg-menu {
    --vg-duration: 280ms;
    --vg-dropdown-offset: 8px;
    position: relative;
    width: 100%;
    z-index: 20;
}

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

.vg-menu a { text-decoration: none; }
.vg-menu ul { list-style: none; margin: 0; padding: 0; }
.vg-menu button { font: inherit; }

.vg-menu-shell {
    position: relative;
    display: flex;
    align-items: center;
    gap: 16px;
    width: 100%;
    overflow: visible;
}

.vg-menu-list--root {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
}

.vg-layout-horizontal .vg-menu-list--root { flex-direction: row; }
.vg-layout-horizontal:not(.is-mobile) .vg-menu-list--root {
    flex: 1 1 auto;
    width: 100%;
    min-width: 0;
}
.vg-layout-vertical .vg-menu-shell { align-items: stretch; flex-direction: column; }
.vg-layout-vertical .vg-menu-list--root { flex-direction: column; align-items: stretch; width: 100%; }

.vg-menu-item { position: relative; }
.vg-menu-row { display: flex; align-items: center; position: relative; }

.vg-menu-link {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    gap: 8px;
    line-height: 1.2;
    white-space: nowrap;
    transition:
        color var(--vg-duration) ease,
        background-color var(--vg-duration) ease,
        border-color var(--vg-duration) ease,
        box-shadow var(--vg-duration) ease,
        transform var(--vg-duration) cubic-bezier(.22,.8,.24,1);
}

.vg-menu-icon { display: inline-flex; line-height: 1; flex: 0 0 auto; }
.vg-menu-icon svg,
.vg-menu-icon i { width: 1em; height: 1em; }

.vg-menu-badge {
    display: inline-flex;
    align-items: center;
    padding: 3px 6px;
    border-radius: 999px;
    font-size: 10px;
    line-height: 1;
    background: #eef2ed;
    color: #526b52;
}

.vg-menu-subtoggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    padding: 0;
    margin-left: -7px;
    border: 0;
    background: transparent;
    color: currentColor;
    cursor: pointer;
    opacity: .8;
    transition: opacity var(--vg-duration) ease, transform var(--vg-duration) ease;
}

.vg-menu-subtoggle:hover { opacity: 1; }
.vg-menu-subtoggle--hidden { width: 0; height: 0; margin: 0; overflow: hidden; opacity: 0; pointer-events: none; }

.vg-indicator-svg {
    width: 12px;
    height: 10px;
    overflow: visible;
    transition: transform var(--vg-duration) ease;
}

.vg-indicator-svg path {
    fill: none;
    stroke: currentColor;
    stroke-width: 1.6;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.vg-indicator-dot {
    display: block;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: currentColor;
    transition: transform var(--vg-duration) ease;
}

.vg-menu-item.is-submenu-open > .vg-menu-row > .vg-menu-subtoggle .vg-indicator-svg,
.vg-trigger-hover:not(.is-mobile) .vg-menu-item--has-children:hover > .vg-menu-row > .vg-menu-subtoggle .vg-indicator-svg,
.vg-trigger-hover:not(.is-mobile) .vg-menu-item--has-children:focus-within > .vg-menu-row > .vg-menu-subtoggle .vg-indicator-svg {
    transform: rotate(180deg);
}

.vg-menu-item.is-submenu-open > .vg-menu-row > .vg-menu-subtoggle .vg-plus-v,
.vg-trigger-hover:not(.is-mobile) .vg-menu-item--has-children:hover > .vg-menu-row > .vg-menu-subtoggle .vg-plus-v,
.vg-trigger-hover:not(.is-mobile) .vg-menu-item--has-children:focus-within > .vg-menu-row > .vg-menu-subtoggle .vg-plus-v {
    opacity: 0;
}

.vg-menu-item.is-submenu-open > .vg-menu-row > .vg-menu-subtoggle .vg-indicator-dot { transform: scale(1.8); }

/* Desktop dropdowns */
.vg-submenu {
    position: absolute;
    z-index: 40;
    top: calc(100% + var(--vg-dropdown-offset));
    left: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform-origin: top left;
    will-change: transform, opacity, filter, clip-path;
    transition:
        opacity var(--vg-duration) ease,
        transform var(--vg-duration) cubic-bezier(.22,.8,.24,1),
        filter var(--vg-duration) ease,
        clip-path var(--vg-duration) cubic-bezier(.22,.8,.24,1),
        visibility 0s linear var(--vg-duration);
}

.vg-submenu .vg-menu-row { width: 100%; }
.vg-submenu .vg-menu-link { width: 100%; white-space: normal; }
.vg-submenu .vg-submenu { top: calc(-1 * var(--vg-dropdown-offset)); left: calc(100% + var(--vg-dropdown-offset)); transform-origin: top left; }
.vg-layout-vertical:not(.is-mobile) .vg-submenu { top: 0; left: calc(100% + var(--vg-dropdown-offset)); }

.vg-drop-fade .vg-submenu { transform: none; }
.vg-drop-slide .vg-submenu { transform: translate3d(0, 12px, 0); }
.vg-drop-slide .vg-submenu .vg-submenu { transform: translate3d(10px, 0, 0); }
.vg-drop-scale .vg-submenu { transform: translate3d(0, 5px, 0) scale(.94); }
.vg-drop-clip .vg-submenu { transform: none; clip-path: inset(0 0 100% 0 round 12px); }
.vg-drop-blur .vg-submenu { transform: translate3d(0, 6px, 0); filter: blur(10px); }
.vg-drop-flip .vg-submenu { transform: perspective(900px) rotateX(-18deg) translateY(7px); transform-origin: top center; }
.vg-drop-flip .vg-submenu .vg-submenu { transform: perspective(900px) rotateY(18deg) translateX(7px); transform-origin: left center; }

.vg-trigger-hover:not(.is-mobile) .vg-menu-item--has-children:hover > .vg-submenu,
.vg-trigger-hover:not(.is-mobile) .vg-menu-item--has-children:focus-within > .vg-submenu,
.vg-menu-item.is-submenu-open > .vg-submenu {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: none;
    filter: none;
    clip-path: inset(0 0 0 0 round 12px);
    transition-delay: 0s;
}

/* Hover animation of links */
.vg-item-anim-lift:not(.is-mobile) > .vg-menu-shell > .vg-menu-list--root > .vg-menu-item:hover > .vg-menu-row > .vg-menu-link { transform: translateY(-3px); }
.vg-item-anim-slide:not(.is-mobile) > .vg-menu-shell > .vg-menu-list--root > .vg-menu-item:hover > .vg-menu-row > .vg-menu-link { transform: translateX(4px); }
.vg-item-anim-scale:not(.is-mobile) > .vg-menu-shell > .vg-menu-list--root > .vg-menu-item:hover > .vg-menu-row > .vg-menu-link { transform: scale(1.04); }
.vg-item-anim-tilt:not(.is-mobile) > .vg-menu-shell > .vg-menu-list--root > .vg-menu-item:hover > .vg-menu-row > .vg-menu-link { transform: rotate(-1.5deg) translateY(-1px); }

/* Presets */
.vg-preset-underline > .vg-menu-shell > .vg-menu-list--root > .vg-menu-item > .vg-menu-row > .vg-menu-link::after,
.vg-preset-underline-center > .vg-menu-shell > .vg-menu-list--root > .vg-menu-item > .vg-menu-row > .vg-menu-link::after {
    content: "";
    position: absolute;
    left: 14px;
    right: 14px;
    bottom: 3px;
    height: 1.5px;
    background: currentColor;
    transform: scaleX(0);
    transition: transform var(--vg-duration) cubic-bezier(.22,.8,.24,1);
}

.vg-preset-underline > .vg-menu-shell > .vg-menu-list--root > .vg-menu-item > .vg-menu-row > .vg-menu-link::after { transform-origin: right center; }
.vg-preset-underline-center > .vg-menu-shell > .vg-menu-list--root > .vg-menu-item > .vg-menu-row > .vg-menu-link::after { transform-origin: center center; }

.vg-preset-underline > .vg-menu-shell > .vg-menu-list--root > .vg-menu-item:hover > .vg-menu-row > .vg-menu-link::after,
.vg-preset-underline > .vg-menu-shell > .vg-menu-list--root > .vg-menu-item.is-current > .vg-menu-row > .vg-menu-link::after,
.vg-preset-underline-center > .vg-menu-shell > .vg-menu-list--root > .vg-menu-item:hover > .vg-menu-row > .vg-menu-link::after,
.vg-preset-underline-center > .vg-menu-shell > .vg-menu-list--root > .vg-menu-item.is-current > .vg-menu-row > .vg-menu-link::after {
    transform: scaleX(1);
}

.vg-preset-underline > .vg-menu-shell > .vg-menu-list--root > .vg-menu-item:hover > .vg-menu-row > .vg-menu-link::after { transform-origin: left center; }

.vg-preset-pills > .vg-menu-shell > .vg-menu-list--root > .vg-menu-item > .vg-menu-row > .vg-menu-link { background: rgba(82,107,82,.07); }
.vg-preset-boxed > .vg-menu-shell > .vg-menu-list--root > .vg-menu-item > .vg-menu-row > .vg-menu-link { border: 1px solid rgba(20,26,21,.12); }

.vg-preset-floating:not(.is-mobile) > .vg-menu-shell {
    padding: 7px;
    border: 1px solid rgba(20,26,21,.08);
    border-radius: 18px;
    background: rgba(255,255,255,.94);
    box-shadow: 0 14px 40px rgba(20,26,21,.10);
}

.vg-preset-glass:not(.is-mobile) > .vg-menu-shell {
    padding: 8px;
    border: 1px solid rgba(255,255,255,.5);
    border-radius: 22px;
    background: rgba(255,255,255,.55);
    box-shadow: 0 14px 44px rgba(20,26,21,.08);
    backdrop-filter: blur(18px) saturate(140%);
    -webkit-backdrop-filter: blur(18px) saturate(140%);
}

.vg-preset-editorial:not(.is-mobile) > .vg-menu-shell > .vg-menu-list--root > .vg-menu-item > .vg-menu-row > .vg-menu-link {
    letter-spacing: .04em;
    border-radius: 0;
}

.vg-preset-editorial:not(.is-mobile) > .vg-menu-shell > .vg-menu-list--root > .vg-menu-item + .vg-menu-item::before {
    content: "";
    position: absolute;
    left: -4px;
    top: 50%;
    width: 2px;
    height: 2px;
    border-radius: 50%;
    background: currentColor;
    opacity: .35;
}

.vg-preset-bold:not(.is-mobile) > .vg-menu-shell {
    padding: 6px;
    border: 2px solid currentColor;
    border-radius: 10px;
}

.vg-preset-bold:not(.is-mobile) > .vg-menu-shell > .vg-menu-list--root > .vg-menu-item > .vg-menu-row > .vg-menu-link {
    font-weight: 700;
    letter-spacing: -.02em;
}

.vg-preset-soft:not(.is-mobile) > .vg-menu-shell {
    padding: 8px;
    border-radius: 20px;
    background: #f4f6f3;
}

.vg-preset-soft:not(.is-mobile) > .vg-menu-shell > .vg-menu-list--root > .vg-menu-item > .vg-menu-row > .vg-menu-link {
    box-shadow: inset 0 0 0 1px rgba(20,26,21,.04);
}

.vg-preset-brackets > .vg-menu-shell > .vg-menu-list--root > .vg-menu-item > .vg-menu-row > .vg-menu-link::before,
.vg-preset-brackets > .vg-menu-shell > .vg-menu-list--root > .vg-menu-item > .vg-menu-row > .vg-menu-link::after {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    opacity: 0;
    transition: opacity var(--vg-duration) ease, transform var(--vg-duration) ease;
}

.vg-preset-brackets > .vg-menu-shell > .vg-menu-list--root > .vg-menu-item > .vg-menu-row > .vg-menu-link::before { content: "["; left: 4px; transform: translate(-4px,-50%); }
.vg-preset-brackets > .vg-menu-shell > .vg-menu-list--root > .vg-menu-item > .vg-menu-row > .vg-menu-link::after { content: "]"; right: 4px; transform: translate(4px,-50%); }
.vg-preset-brackets > .vg-menu-shell > .vg-menu-list--root > .vg-menu-item:hover > .vg-menu-row > .vg-menu-link::before,
.vg-preset-brackets > .vg-menu-shell > .vg-menu-list--root > .vg-menu-item:hover > .vg-menu-row > .vg-menu-link::after,
.vg-preset-brackets > .vg-menu-shell > .vg-menu-list--root > .vg-menu-item.is-current > .vg-menu-row > .vg-menu-link::before,
.vg-preset-brackets > .vg-menu-shell > .vg-menu-list--root > .vg-menu-item.is-current > .vg-menu-row > .vg-menu-link::after { opacity: 1; transform: translate(0,-50%); }

.vg-preset-marker > .vg-menu-shell > .vg-menu-list--root > .vg-menu-item > .vg-menu-row > .vg-menu-link::before {
    content: "";
    position: absolute;
    z-index: -1;
    left: 10px;
    right: 10px;
    bottom: 8px;
    height: .48em;
    border-radius: 3px;
    background: currentColor;
    opacity: .10;
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform var(--vg-duration) ease;
}

.vg-preset-marker > .vg-menu-shell > .vg-menu-list--root > .vg-menu-item:hover > .vg-menu-row > .vg-menu-link::before,
.vg-preset-marker > .vg-menu-shell > .vg-menu-list--root > .vg-menu-item.is-current > .vg-menu-row > .vg-menu-link::before { transform: scaleX(1); }

/* CTA */
.vg-menu-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    flex: 0 0 auto;
    white-space: nowrap;
    border: 1px solid transparent;
    color: #161a17;
    background: transparent;
    transition:
        color var(--vg-duration) ease,
        background-color var(--vg-duration) ease,
        border-color var(--vg-duration) ease,
        box-shadow var(--vg-duration) ease,
        transform var(--vg-duration) cubic-bezier(.22,.8,.24,1);
}

.vg-menu-cta:hover { transform: translateY(-1px); }
.vg-menu-cta-icon { display: inline-flex; align-items: center; justify-content: center; transition: transform var(--vg-duration) ease; }
.vg-menu-cta-icon svg,
.vg-menu-cta-icon i { width: 1em; height: 1em; }
.vg-menu-cta-icon svg path { stroke: currentColor; }

.vg-cta-solid { color: #fff; background: #526b52; }
.vg-cta-outline { color: #161a17; background: transparent; border-color: currentColor; border-style: solid; }
.vg-cta-text-arrow { color: #161a17; background: transparent; border-color: transparent; }
.vg-cta-soft { color: #161a17; background: #eef2ed; }
.vg-cta-glass {
    color: #161a17;
    background: rgba(255,255,255,.62);
    border-color: rgba(20,26,21,.10);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.65);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

.vg-cta-text-arrow:hover .vg-menu-cta-icon { transform: translateX(4px); }
.vg-cta-text-arrow.vg-cta-icon-left:hover .vg-menu-cta-icon { transform: translateX(-4px); }
.vg-cta-before .vg-menu-cta { order: -1; }

.vg-cta-arrow-svg { width: 16px !important; height: 12px !important; overflow: visible; }
.vg-cta-arrow-svg path { fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }

/* Toggle */
.vg-menu-toggle,
.vg-menu-close,
.vg-menu-overlay { display: none; }

.vg-menu-empty {
    padding: 16px;
    border: 1px dashed #c9cec8;
    border-radius: 10px;
    background: #f7f8f6;
    color: #687068;
}

.vg-menu-toggle {
    align-items: center;
    justify-content: center;
    gap: 8px;
    border: 0;
    cursor: pointer;
    margin-left: auto;
}

.vg-menu-toggle-lines {
    display: inline-flex;
    flex-direction: column;
    justify-content: center;
    gap: 4px;
    width: 20px;
}

.vg-menu-toggle-lines span {
    display: block;
    width: 100%;
    height: 1.7px;
    border-radius: 2px;
    transform-origin: center;
    transition: transform var(--vg-duration) ease, width var(--vg-duration) ease, opacity var(--vg-duration) ease;
}

.vg-toggle-compact .vg-menu-toggle-lines span:nth-child(2) { display: none; }
.vg-toggle-compact .vg-menu-toggle-lines span:first-child { width: 100%; }
.vg-toggle-compact .vg-menu-toggle-lines span:last-child { width: 70%; align-self: flex-end; }
.vg-toggle-text .vg-menu-toggle { padding-left: 14px; padding-right: 14px; }
.vg-toggle-circle .vg-menu-toggle { border-radius: 50% !important; }

.vg-menu[data-animate-toggle="1"].is-menu-open .vg-menu-toggle-lines span:nth-child(1) { transform: translateY(5.7px) rotate(45deg); }
.vg-menu[data-animate-toggle="1"].is-menu-open .vg-menu-toggle-lines span:nth-child(2) { opacity: 0; transform: scaleX(.2); }
.vg-menu[data-animate-toggle="1"].is-menu-open .vg-menu-toggle-lines span:nth-child(3) { transform: translateY(-5.7px) rotate(-45deg); width: 100%; }

.vg-menu-close {
    position: absolute;
    z-index: 3;
    top: 18px;
    right: 18px;
    width: 42px;
    height: 42px;
    border: 0;
    cursor: pointer;
}

.vg-menu-close::before,
.vg-menu-close::after {
    content: "";
    position: absolute;
    left: 11px;
    right: 11px;
    top: 20px;
    height: 1.5px;
    transform: rotate(45deg);
}
.vg-menu-close::after { transform: rotate(-45deg); }
html.vg-menu-lock { overflow: hidden; }

/* Mobile common */
.vg-menu.is-mobile { z-index: 999; }
.vg-menu.is-mobile .vg-menu-toggle { display: inline-flex; }

.vg-menu.is-mobile .vg-menu-shell {
    z-index: 1002;
    align-items: stretch;
    flex-direction: column;
    gap: 18px;
    will-change: transform, opacity, filter, clip-path;
    transition:
        opacity var(--vg-duration) ease,
        visibility 0s linear var(--vg-duration),
        transform var(--vg-duration) cubic-bezier(.22,.8,.24,1),
        filter var(--vg-duration) ease,
        clip-path var(--vg-duration) cubic-bezier(.22,.8,.24,1);
}

.vg-menu.is-mobile.is-menu-open .vg-menu-shell { transition-delay: 0s; }
.vg-menu.is-mobile .vg-menu-close { display: block; }
.vg-menu.is-mobile .vg-menu-list--root { width: 100%; flex-direction: column; align-items: stretch; gap: 2px !important; }
.vg-menu.is-mobile .vg-menu-item,
.vg-menu.is-mobile .vg-menu-row { width: 100%; }
.vg-menu.is-mobile .vg-menu-link { width: 100%; justify-content: flex-start; white-space: normal; }
.vg-menu.is-mobile .vg-menu-subtoggle { margin-left: auto; flex: 0 0 42px; width: 42px; height: 42px; pointer-events: auto; opacity: 1; }
.vg-menu.is-mobile .vg-menu-subtoggle--hidden { display: none; }

/* Animated accordion submenus */
.vg-menu.is-mobile .vg-submenu {
    position: static;
    display: flex;
    width: 100%;
    min-width: 0 !important;
    max-height: 0;
    overflow: hidden;
    margin: 0;
    padding: 0 0 0 14px !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(-5px) !important;
    clip-path: none !important;
    filter: none !important;
    background: transparent !important;
    transition:
        max-height var(--vg-duration) ease,
        opacity var(--vg-duration) ease,
        transform var(--vg-duration) ease,
        margin var(--vg-duration) ease,
        visibility 0s linear var(--vg-duration);
}

.vg-menu.is-mobile .vg-menu-item.is-submenu-open > .vg-submenu {
    max-height: 1200px;
    margin: 3px 0 8px;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: none !important;
    transition-delay: 0s;
}

.vg-menu.is-mobile .vg-menu-shell > .vg-menu-cta--panel { align-self: stretch; }
.vg-menu.is-mobile[data-cta-mobile-full="1"] .vg-menu-shell > .vg-menu-cta--panel { width: 100%; }
.vg-menu.is-mobile[data-cta-mobile-full="0"] .vg-menu-shell > .vg-menu-cta--panel { width: auto; align-self: flex-start; }

.vg-menu.is-mobile .vg-menu-overlay {
    position: fixed;
    z-index: 1001;
    inset: 0;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity var(--vg-duration) ease, visibility 0s linear var(--vg-duration);
}

.vg-menu.is-mobile.is-menu-open .vg-menu-overlay {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transition-delay: 0s;
}

/* Mobile: dropdown */
.vg-menu.is-mobile.vg-mobile-dropdown .vg-menu-shell {
    position: absolute;
    top: calc(100% + 10px);
    left: 0;
    width: 100%;
    max-height: min(72vh, 720px);
    overflow: auto;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}
.vg-menu.is-mobile.vg-mobile-dropdown .vg-menu-close { display: none; }
.vg-menu.is-mobile.vg-mobile-dropdown .vg-menu-overlay { display: none; }
.vg-menu.is-mobile.vg-mobile-dropdown.is-menu-open .vg-menu-shell { opacity: 1; visibility: visible; pointer-events: auto; transform: none; filter: none; clip-path: inset(0); }

.vg-menu.is-mobile.vg-mobile-dropdown.vg-mobile-anim-slide .vg-menu-shell { transform: translateY(-12px); }
.vg-menu.is-mobile.vg-mobile-dropdown.vg-mobile-anim-fade .vg-menu-shell { transform: none; }
.vg-menu.is-mobile.vg-mobile-dropdown.vg-mobile-anim-scale .vg-menu-shell { transform: scale(.96); transform-origin: top right; }
.vg-menu.is-mobile.vg-mobile-dropdown.vg-mobile-anim-clip .vg-menu-shell { transform: none; clip-path: inset(0 0 100% 0 round 14px); }
.vg-menu.is-mobile.vg-mobile-dropdown.vg-mobile-anim-blur .vg-menu-shell { transform: translateY(-4px); filter: blur(12px); }

/* Mobile: side offcanvas */
.vg-menu.is-mobile.vg-mobile-offcanvas-left .vg-menu-shell,
.vg-menu.is-mobile.vg-mobile-offcanvas-right .vg-menu-shell {
    position: fixed;
    top: 0;
    bottom: 0;
    max-width: 92vw;
    height: 100dvh;
    overflow: auto;
    opacity: 1;
    visibility: hidden;
    pointer-events: none;
}
.vg-menu.is-mobile.vg-mobile-offcanvas-left .vg-menu-shell { left: 0; }
.vg-menu.is-mobile.vg-mobile-offcanvas-right .vg-menu-shell { right: 0; }
.vg-menu.is-mobile.vg-mobile-offcanvas-left.is-menu-open .vg-menu-shell,
.vg-menu.is-mobile.vg-mobile-offcanvas-right.is-menu-open .vg-menu-shell { visibility: visible; pointer-events: auto; transform: none; opacity: 1; filter: none; clip-path: inset(0); }

.vg-menu.is-mobile.vg-mobile-offcanvas-left.vg-mobile-anim-slide .vg-menu-shell { transform: translateX(-104%); }
.vg-menu.is-mobile.vg-mobile-offcanvas-right.vg-mobile-anim-slide .vg-menu-shell { transform: translateX(104%); }
.vg-menu.is-mobile.vg-mobile-offcanvas-left.vg-mobile-anim-fade .vg-menu-shell,
.vg-menu.is-mobile.vg-mobile-offcanvas-right.vg-mobile-anim-fade .vg-menu-shell { opacity: 0; transform: none; }
.vg-menu.is-mobile.vg-mobile-offcanvas-left.vg-mobile-anim-scale .vg-menu-shell,
.vg-menu.is-mobile.vg-mobile-offcanvas-right.vg-mobile-anim-scale .vg-menu-shell { opacity: 0; transform: scale(.95); }
.vg-menu.is-mobile.vg-mobile-offcanvas-left.vg-mobile-anim-clip .vg-menu-shell { transform: none; clip-path: inset(0 100% 0 0); }
.vg-menu.is-mobile.vg-mobile-offcanvas-right.vg-mobile-anim-clip .vg-menu-shell { transform: none; clip-path: inset(0 0 0 100%); }
.vg-menu.is-mobile.vg-mobile-offcanvas-left.vg-mobile-anim-blur .vg-menu-shell,
.vg-menu.is-mobile.vg-mobile-offcanvas-right.vg-mobile-anim-blur .vg-menu-shell { opacity: 0; transform: none; filter: blur(14px); }

/* Mobile: fullscreen */
.vg-menu.is-mobile.vg-mobile-fullscreen .vg-menu-shell {
    position: fixed;
    inset: 0;
    width: 100%;
    height: 100dvh;
    overflow: auto;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}
.vg-menu.is-mobile.vg-mobile-fullscreen.is-menu-open .vg-menu-shell { opacity: 1; visibility: visible; pointer-events: auto; transform: none; filter: none; clip-path: inset(0); }
.vg-menu.is-mobile.vg-mobile-fullscreen.vg-mobile-anim-slide .vg-menu-shell { transform: translateY(-28px); }
.vg-menu.is-mobile.vg-mobile-fullscreen.vg-mobile-anim-fade .vg-menu-shell { transform: none; }
.vg-menu.is-mobile.vg-mobile-fullscreen.vg-mobile-anim-scale .vg-menu-shell { transform: scale(.96); }
.vg-menu.is-mobile.vg-mobile-fullscreen.vg-mobile-anim-clip .vg-menu-shell { transform: none; clip-path: inset(0 0 100% 0); }
.vg-menu.is-mobile.vg-mobile-fullscreen.vg-mobile-anim-blur .vg-menu-shell { transform: none; filter: blur(15px); }

/* Mobile: top curtain */
.vg-menu.is-mobile.vg-mobile-reveal-top .vg-menu-shell {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    max-height: 100dvh;
    overflow: auto;
    opacity: 1;
    visibility: hidden;
    pointer-events: none;
    transform-origin: top center;
}
.vg-menu.is-mobile.vg-mobile-reveal-top.is-menu-open .vg-menu-shell { opacity: 1; visibility: visible; pointer-events: auto; transform: none; filter: none; clip-path: inset(0); }
.vg-menu.is-mobile.vg-mobile-reveal-top.vg-mobile-anim-slide .vg-menu-shell { transform: translateY(-104%); }
.vg-menu.is-mobile.vg-mobile-reveal-top.vg-mobile-anim-fade .vg-menu-shell { opacity: 0; transform: none; }
.vg-menu.is-mobile.vg-mobile-reveal-top.vg-mobile-anim-scale .vg-menu-shell { opacity: 0; transform: scaleY(.90); }
.vg-menu.is-mobile.vg-mobile-reveal-top.vg-mobile-anim-clip .vg-menu-shell { transform: none; clip-path: inset(0 0 100% 0); }
.vg-menu.is-mobile.vg-mobile-reveal-top.vg-mobile-anim-blur .vg-menu-shell { opacity: 0; transform: none; filter: blur(14px); }

/* Mobile: bottom drawer */
.vg-menu.is-mobile.vg-mobile-drawer-bottom .vg-menu-shell {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    max-height: 88dvh;
    overflow: auto;
    opacity: 1;
    visibility: hidden;
    pointer-events: none;
    border-radius: 24px 24px 0 0;
    transform-origin: bottom center;
}
.vg-menu.is-mobile.vg-mobile-drawer-bottom.is-menu-open .vg-menu-shell { opacity: 1; visibility: visible; pointer-events: auto; transform: none; filter: none; clip-path: inset(0); }
.vg-menu.is-mobile.vg-mobile-drawer-bottom.vg-mobile-anim-slide .vg-menu-shell { transform: translateY(104%); }
.vg-menu.is-mobile.vg-mobile-drawer-bottom.vg-mobile-anim-fade .vg-menu-shell { opacity: 0; transform: none; }
.vg-menu.is-mobile.vg-mobile-drawer-bottom.vg-mobile-anim-scale .vg-menu-shell { opacity: 0; transform: scale(.96); }
.vg-menu.is-mobile.vg-mobile-drawer-bottom.vg-mobile-anim-clip .vg-menu-shell { transform: none; clip-path: inset(100% 0 0 0 round 24px 24px 0 0); }
.vg-menu.is-mobile.vg-mobile-drawer-bottom.vg-mobile-anim-blur .vg-menu-shell { opacity: 0; transform: none; filter: blur(14px); }


/* WooCommerce cart */
.vg-menu-list--root { order: 20; }
.vg-cta-before .vg-menu-cta { order: 10; }
.vg-cta-after .vg-menu-cta { order: 30; }
.vg-menu-cart-wrap { position: relative; flex: 0 0 auto; order: 40; }
.vg-menu-cart-wrap.vg-cart-pos-start { order: 0; }
.vg-menu-cart-wrap.vg-cart-pos-before-menu { order: 15; }
.vg-menu-cart-wrap.vg-cart-pos-after-menu { order: 25; }
.vg-menu-cart-wrap.vg-cart-pos-end { order: 40; }
.vg-menu-cart-trigger {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    border: 1px solid rgba(22,26,23,.12);
    background: #f0f3ef;
    color: #161a17;
    text-decoration: none;
    cursor: pointer;
    white-space: nowrap;
    line-height: 1.1;
    transition: color var(--vg-duration) ease, background-color var(--vg-duration) ease, border-color var(--vg-duration) ease, transform var(--vg-duration) ease, box-shadow var(--vg-duration) ease;
}
.vg-menu-cart-trigger:hover { transform: translateY(-1px); }
.vg-menu-cart-trigger:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
.vg-menu-cart-icon { display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto; }
.vg-menu-cart-icon svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.vg-menu-cart-total { display:inline-flex; align-items:center; font-weight:700; }
.vg-menu-cart-count {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:20px;
    height:20px;
    padding:0 5px;
    border-radius:999px;
    background:#e65252;
    color:#fff;
    font-size:11px;
    font-weight:800;
    line-height:1;
}
.vg-cart-preset-icon .vg-menu-cart-trigger { aspect-ratio:1; padding:10px; }
.vg-cart-preset-icon-count .vg-menu-cart-count { position:absolute; top:-6px; right:-6px; }
.vg-cart-preset-summary .vg-menu-cart-trigger { text-align:left; }
.vg-menu-cart-summary { display:flex; flex-direction:column; gap:2px; align-items:flex-start; }
.vg-menu-cart-summary small { opacity:.65; font-size:.72em; font-weight:500; }
.vg-menu-cart-panel {
    position:absolute;
    z-index:70;
    top:calc(100% + 10px);
    right:0;
    width:min(360px, calc(100vw - 24px));
    padding:18px;
    border:1px solid rgba(22,26,23,.10);
    background:#fff;
    color:#161a17;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translateY(8px) scale(.985);
    transform-origin:top right;
    transition:opacity var(--vg-duration) ease, transform var(--vg-duration) ease, visibility 0s linear var(--vg-duration);
}
.vg-menu-cart-wrap.is-cart-open .vg-menu-cart-panel,
.vg-menu-cart-wrap.vg-cart-action-hover:hover .vg-menu-cart-panel,
.vg-menu-cart-wrap.vg-cart-action-hover:focus-within .vg-menu-cart-panel {
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:none;
    transition-delay:0s;
}
.vg-menu-cart-panel .woocommerce-mini-cart { margin:0; padding:0; list-style:none; }
.vg-menu-cart-panel .woocommerce-mini-cart-item {
    position:relative;
    display:grid;
    grid-template-columns:56px minmax(0, 1fr);
    grid-template-rows:auto auto;
    column-gap:10px;
    row-gap:4px;
    padding:10px 24px 10px 0;
    border-bottom:1px solid var(--vg-cart-separator, rgba(22,26,23,.08));
    min-width:0;
}
/* WooCommerce imprime imagen + nombre dentro del mismo enlace. El enlace debe ocupar
   toda la fila; si se deja como un item del grid, un título largo termina dentro de
   la columna de 56px reservada a la miniatura. */
.vg-menu-cart-panel .woocommerce-mini-cart-item > a:not(.remove) {
    grid-column:1 / -1;
    display:flex;
    align-items:flex-start;
    gap:10px;
    width:100%;
    min-width:0;
    margin:0;
    padding:0;
    float:none;
    color:inherit;
    text-decoration:none;
    font-weight:600;
    line-height:1.3;
    white-space:normal;
    overflow-wrap:anywhere;
}
.vg-menu-cart-panel .woocommerce-mini-cart-item > a:not(.remove) img {
    flex:0 0 var(--vg-cart-image-size, 56px);
    width:var(--vg-cart-image-size, 56px);
    height:var(--vg-cart-image-size, 56px);
    object-fit:cover;
    border-radius:8px;
    float:none;
    margin:0;
}
.vg-menu-cart-panel .woocommerce-mini-cart-item > .quantity {
    grid-column:2;
    min-width:0;
    display:block;
    line-height:1.35;
}
.vg-menu-cart-panel .woocommerce-mini-cart-item .remove { position:absolute; right:0; top:8px; color:inherit; text-decoration:none; }
.vg-menu-cart-panel .woocommerce-mini-cart__total { display:flex; justify-content:space-between; gap:12px; padding:14px 0 8px; margin:0; }
.vg-menu-cart-panel .woocommerce-mini-cart__buttons { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin:8px 0 0; }
.vg-menu-cart-panel .woocommerce-mini-cart__buttons .button { display:inline-flex; justify-content:center; align-items:center; min-height:40px; padding:9px 12px; border-radius:10px; text-decoration:none; }
.vg-menu-cart-panel .woocommerce-mini-cart__empty-message { margin:0; }

.vg-cart-panel-clean .vg-menu-cart-panel { padding:14px; border-color:rgba(22,26,23,.08); box-shadow:none; }
.vg-cart-panel-floating .vg-menu-cart-panel { box-shadow:0 18px 52px rgba(18,24,19,.16); }
.vg-cart-panel-compact .vg-menu-cart-panel { padding:12px; }
.vg-cart-panel-compact .vg-menu-cart-panel .woocommerce-mini-cart-item { grid-template-columns:44px minmax(0, 1fr); column-gap:8px; row-gap:3px; padding-top:7px; padding-bottom:7px; }
.vg-cart-panel-compact .vg-menu-cart-panel .woocommerce-mini-cart-item > a:not(.remove) { gap:8px; }
.vg-cart-panel-compact .vg-menu-cart-panel .woocommerce-mini-cart-item > a:not(.remove) img { flex-basis:44px; width:44px; height:44px; }
.vg-cart-panel-compact .vg-menu-cart-panel .woocommerce-mini-cart__buttons { grid-template-columns:1fr; }

.vg-layout-vertical:not(.is-mobile) .vg-menu-cart-wrap { width:100%; }
.vg-layout-vertical:not(.is-mobile) .vg-menu-cart-trigger { width:100%; }
.vg-layout-vertical:not(.is-mobile) .vg-menu-cart-panel { left:calc(100% + 10px); right:auto; top:0; transform:translateX(8px) scale(.985); transform-origin:top left; }
.vg-layout-vertical:not(.is-mobile) .vg-menu-cart-wrap.is-cart-open .vg-menu-cart-panel,
.vg-layout-vertical:not(.is-mobile) .vg-menu-cart-wrap.vg-cart-action-hover:hover .vg-menu-cart-panel,
.vg-layout-vertical:not(.is-mobile) .vg-menu-cart-wrap.vg-cart-action-hover:focus-within .vg-menu-cart-panel { transform:none; }

.vg-menu.is-mobile[data-cart-mobile-location="outside"] { display:flex; align-items:center; justify-content:flex-end; gap:10px; }
.vg-menu.is-mobile[data-cart-mobile-location="outside"] .vg-menu-toggle { margin-left:0; order:10; }
.vg-menu.is-mobile[data-cart-mobile-location="outside"] > .vg-menu-cart-wrap { order:20; }
.vg-menu.is-mobile[data-cart-mobile-location="outside"] > .vg-menu-cart-wrap .vg-menu-cart-panel { right:0; left:auto; }
.vg-menu.is-mobile[data-cart-mobile-location="panel"] .vg-menu-cart-wrap { width:100%; }
.vg-menu.is-mobile[data-cart-mobile-location="panel"] .vg-menu-cart-trigger { width:100%; }
.vg-menu.is-mobile .vg-menu-cart-panel { max-height:min(70vh, 620px); overflow:auto; }

@media (prefers-reduced-motion: reduce) {
    .vg-menu *,
    .vg-menu *::before,
    .vg-menu *::after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
    }
}

/* Final mobile open state: kept after every closed animation so every selector works. */
.vg-menu.is-mobile:not(.vg-mobile-dropdown) .vg-menu-overlay { display: block; }
.vg-menu.is-mobile.is-menu-open.vg-mobile-anim-slide .vg-menu-shell,
.vg-menu.is-mobile.is-menu-open.vg-mobile-anim-fade .vg-menu-shell,
.vg-menu.is-mobile.is-menu-open.vg-mobile-anim-scale .vg-menu-shell,
.vg-menu.is-mobile.is-menu-open.vg-mobile-anim-clip .vg-menu-shell,
.vg-menu.is-mobile.is-menu-open.vg-mobile-anim-blur .vg-menu-shell {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: none;
    filter: none;
    clip-path: inset(0);
}

/* 2.24.10 — altura móvil inteligente: el panel se adapta al contenido y solo
   crea scroll interno cuando el contenido no puede caber en el viewport. */
.vg-menu.is-mobile.vg-mobile-height-content:not(.vg-mobile-fullscreen) .vg-menu-shell {
    height: auto;
    min-height: 0;
    max-height: none;
    overflow: visible;
}

.vg-menu.is-mobile.vg-mobile-height-content.vg-mobile-offcanvas-left .vg-menu-shell,
.vg-menu.is-mobile.vg-mobile-height-content.vg-mobile-offcanvas-right .vg-menu-shell {
    top: 12px;
    bottom: auto;
    height: auto;
    min-height: 0;
    max-height: none;
}

.vg-menu.is-mobile.vg-mobile-height-content.vg-mobile-reveal-top .vg-menu-shell,
.vg-menu.is-mobile.vg-mobile-height-content.vg-mobile-drawer-bottom .vg-menu-shell,
.vg-menu.is-mobile.vg-mobile-height-content.vg-mobile-dropdown .vg-menu-shell {
    height: auto;
    min-height: 0;
    max-height: none;
}

/* JS adds this class only when the natural panel height is greater than the
   available viewport. This keeps short menus free of unnecessary scrollbars. */
.vg-menu.is-mobile.vg-mobile-height-content.is-panel-scrollable:not(.vg-mobile-fullscreen) .vg-menu-shell {
    max-height: calc(100dvh - 24px);
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
}

.vg-menu.is-mobile.vg-mobile-height-content.is-panel-scrollable.vg-mobile-drawer-bottom .vg-menu-shell {
    max-height: calc(100dvh - 12px);
}

/* Optional legacy/full-height behaviour. */
.vg-menu.is-mobile.vg-mobile-height-viewport.vg-mobile-offcanvas-left .vg-menu-shell,
.vg-menu.is-mobile.vg-mobile-height-viewport.vg-mobile-offcanvas-right .vg-menu-shell {
    top: 0;
    bottom: 0;
    height: 100dvh;
    overflow-y: auto;
}

.vg-menu.is-mobile.vg-mobile-height-viewport.vg-mobile-reveal-top .vg-menu-shell {
    max-height: 100dvh;
    overflow-y: auto;
}

.vg-menu.is-mobile.vg-mobile-height-viewport.vg-mobile-drawer-bottom .vg-menu-shell {
    max-height: 88dvh;
    overflow-y: auto;
}

/* 2.32.03 — Mobile dropdown positioning + mega menu */
.elementor-widget-vangal-menu,
.elementor-widget-vangal-menu > .elementor-widget-container {
    overflow: visible;
}

/* The "dropdown under the button" mode is anchored to the toggle instead of
   behaving like a full-width offcanvas panel. This prevents it from jumping,
   stretching or being clipped inside Elementor flex containers. */
.vg-menu.is-mobile.vg-mobile-dropdown {
    --vg-mobile-dropdown-width: 360px;
    --vg-mobile-dropdown-gap: 10px;
    overflow: visible;
    isolation: isolate;
}

.vg-menu.is-mobile.vg-mobile-dropdown .vg-menu-shell {
    top: calc(100% + var(--vg-mobile-dropdown-gap));
    left: auto;
    right: 0;
    width: min(var(--vg-mobile-dropdown-width), calc(100vw - 24px));
    max-width: calc(100vw - 24px);
    max-height: min(72dvh, 720px);
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    transform-origin: top right;
}

.vg-menu.is-mobile.vg-mobile-dropdown-align-left .vg-menu-shell {
    left: 0;
    right: auto;
    transform-origin: top left;
}

.vg-menu.is-mobile.vg-mobile-dropdown-align-right .vg-menu-shell {
    left: auto;
    right: 0;
    transform-origin: top right;
}

.vg-menu.is-mobile.vg-mobile-dropdown-align-stretch .vg-menu-shell {
    left: 0;
    right: 0;
    width: 100%;
    max-width: 100%;
    transform-origin: top center;
}

/* Keep content-height logic from accidentally removing the dropdown's safety
   max-height/scroll behaviour. */
.vg-menu.is-mobile.vg-mobile-height-content.vg-mobile-dropdown .vg-menu-shell {
    height: auto;
    min-height: 0;
    max-height: min(72dvh, 720px);
    overflow-x: hidden;
    overflow-y: auto;
}

/* Mega menu -------------------------------------------------------------- */
.vg-menu-item--mega { position: relative; }

.vg-mega-panel {
    --vg-mega-columns: 4;
    --vg-mega-gap: 24px;
    --vg-mega-padding: 28px;
    --vg-mega-radius: 18px;
    --vg-mega-bg: #fff;
    --vg-mega-custom-width: 900px;
    --vg-mega-left: 0px;
    --vg-mega-width: 900px;
    display: block;
    padding: var(--vg-mega-padding);
    border-radius: var(--vg-mega-radius);
    background: var(--vg-mega-bg);
    box-shadow: 0 20px 60px rgba(17, 24, 39, .14);
    overflow: hidden;
}

.vg-mega-grid {
    display: grid;
    grid-template-columns: repeat(var(--vg-mega-columns), minmax(0, 1fr));
    gap: var(--vg-mega-gap);
    width: 100%;
    min-width: 0;
}

.vg-mega-column {
    grid-column: span var(--vg-mega-span, 1);
    position: relative;
    min-width: 0;
    border-radius: calc(var(--vg-mega-radius) * .65);
    padding: 4px;
    overflow: hidden;
}

.vg-mega-column-title,
.vg-mega-heading {
    display: block;
    margin: 0 0 10px;
    color: inherit;
    font-size: 1.02em;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none;
}

.vg-mega-column-subtitle {
    margin: -3px 0 14px;
    color: currentColor;
    opacity: .68;
    font-size: .9em;
    line-height: 1.45;
}

.vg-mega-branch-links,
.vg-mega-custom-links {
    display: flex;
    flex-direction: column;
    gap: 3px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.vg-mega-branch-depth-1,
.vg-mega-branch-depth-2,
.vg-mega-branch-depth-3,
.vg-mega-branch-depth-4 {
    margin: 4px 0 4px 14px;
    padding-left: 10px;
    border-left: 1px solid rgba(127,127,127,.18);
}

.vg-mega-branch-link,
.vg-mega-custom-link {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    padding: 8px 10px;
    border-radius: 9px;
    color: inherit;
    text-decoration: none;
    transition: background-color var(--vg-duration) ease, transform var(--vg-duration) ease, color var(--vg-duration) ease;
}

.vg-mega-custom-link { flex-direction: column; align-items: flex-start; gap: 3px; }
.vg-mega-link-main { display: flex; align-items: center; gap: 7px; width: 100%; }
.vg-mega-link-desc { opacity: .62; font-size: .82em; line-height: 1.35; }

.vg-mega-branch-link:hover,
.vg-mega-custom-link:hover { background: rgba(127,127,127,.08); transform: translateX(2px); }

.vg-mega-image {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 190px;
    object-fit: cover;
    border-radius: inherit;
}

.vg-mega-media-link { display: block; position: relative; min-height: 100%; color: inherit; text-decoration: none; }
.vg-mega-media-caption { padding: 14px 4px 2px; }
.vg-mega-column.is-full-bleed { padding: 0; }
.vg-mega-column.is-full-bleed .vg-mega-image { border-radius: inherit; }

.vg-mega-column--cta {
    display: flex;
    min-height: 220px;
    padding: 22px;
    isolation: isolate;
}

.vg-mega-cta-bg {
    position: absolute;
    z-index: -2;
    inset: 0;
    background-position: center;
    background-size: cover;
}
.vg-mega-cta-bg::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(0,0,0,.08), rgba(0,0,0,.35));
}
.vg-mega-cta-content { align-self: flex-end; width: 100%; position: relative; z-index: 1; }
.vg-mega-cta-button {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-top: 8px;
    padding: 10px 14px;
    border: 1px solid currentColor;
    border-radius: 999px;
    color: inherit;
    text-decoration: none;
}

/* Width modes. JS supplies precise widget/viewport values, avoiding the usual
   mega-menu drift when the menu item itself is not at the left edge. */
.vg-mega-width-content { width: max-content; max-width: calc(100vw - 24px); }
.vg-mega-width-custom { width: min(var(--vg-mega-custom-width), calc(100vw - 24px)); }
.vg-mega-width-widget,
.vg-mega-width-viewport {
    left: var(--vg-mega-left) !important;
    right: auto !important;
    width: var(--vg-mega-width);
    max-width: calc(100vw - 24px);
}
.vg-mega-align-left:not(.vg-mega-width-widget):not(.vg-mega-width-viewport) { left: 0; right: auto; translate: 0 0; }
.vg-mega-align-center:not(.vg-mega-width-widget):not(.vg-mega-width-viewport) { left: 50%; right: auto; translate: -50% 0; }
.vg-mega-align-right:not(.vg-mega-width-widget):not(.vg-mega-width-viewport) { left: auto; right: 0; translate: 0 0; }

/* Per-panel opening effects. */
.vg-menu .vg-mega-panel.vg-mega-anim-fade { transform: none; }
.vg-menu .vg-mega-panel.vg-mega-anim-slide { transform: translate3d(0, 14px, 0); }
.vg-menu .vg-mega-panel.vg-mega-anim-scale { transform: translate3d(0, 5px, 0) scale(.96); }
.vg-menu .vg-mega-panel.vg-mega-anim-clip { transform: none; clip-path: inset(0 0 100% 0 round var(--vg-mega-radius)); }
.vg-menu .vg-mega-panel.vg-mega-anim-blur { transform: translate3d(0, 7px, 0); filter: blur(10px); }

.vg-trigger-hover:not(.is-mobile) .vg-menu-item--mega:hover > .vg-mega-panel,
.vg-trigger-hover:not(.is-mobile) .vg-menu-item--mega:focus-within > .vg-mega-panel,
.vg-menu-item--mega.is-submenu-open > .vg-mega-panel {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: none;
    filter: none;
    clip-path: inset(0);
}

/* Presets */
.vg-mega-preset-cards .vg-mega-column { padding: 18px; background: rgba(127,127,127,.06); }
.vg-mega-preset-editorial .vg-mega-column-title,
.vg-mega-preset-editorial .vg-mega-heading { font-size: 1.15em; }
.vg-mega-preset-editorial .vg-mega-grid { align-items: stretch; }
.vg-mega-preset-dark { color: #fff; background: #18202d; }
.vg-mega-preset-dark .vg-mega-column { background: rgba(255,255,255,.035); }
.vg-mega-preset-dark .vg-mega-branch-link:hover,
.vg-mega-preset-dark .vg-mega-custom-link:hover { background: rgba(255,255,255,.08); }
.vg-mega-preset-glass {
    background: rgba(255,255,255,.78);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    border: 1px solid rgba(255,255,255,.45);
}

/* Mega menu becomes a clean one-column accordion on mobile. */
.vg-menu.is-mobile .vg-mega-panel {
    position: static;
    display: grid;
    width: 100% !important;
    max-width: none !important;
    max-height: 0;
    overflow: hidden;
    margin: 0;
    padding: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    translate: 0 0 !important;
    transform: translateY(-5px) !important;
    background: transparent !important;
}
.vg-menu.is-mobile .vg-menu-item.is-submenu-open > .vg-mega-panel {
    max-height: 4000px;
    margin: 6px 0 10px;
    padding: 8px 0 8px 14px !important;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: none !important;
}
.vg-menu.is-mobile .vg-mega-grid { grid-template-columns: 1fr; gap: 10px; }
.vg-menu.is-mobile .vg-mega-column { grid-column: 1 / -1; padding: 12px; }
.vg-menu.is-mobile .vg-mega-column--image,
.vg-menu.is-mobile .vg-mega-column--cta { min-height: 180px; }


/* 2.33.04 — CTA móvil fuera del burger.
   Se renderiza una copia ligera del mismo CTA como acción de cabecera y se
   muestra únicamente cuando el usuario elige la ubicación exterior. */
.vg-menu-cta--outside { display: none; }

.vg-menu.is-mobile[data-cta-mobile-location="outside"] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: var(--vg-mobile-actions-gap, 10px);
}

.vg-menu.is-mobile[data-cta-mobile-location="outside"] > .vg-menu-cta--outside {
    display: inline-flex;
    width: auto;
    max-width: min(70vw, 420px);
    align-self: auto;
    flex: 0 1 auto;
    position: relative;
    z-index: 1003;
}

.vg-menu.is-mobile[data-cta-mobile-location="outside"] > .vg-menu-toggle {
    margin-left: 0;
    order: 20;
    flex: 0 0 auto;
    position: relative;
    z-index: 1003;
}

.vg-menu.is-mobile[data-cta-mobile-location="outside"][data-cta-mobile-order="before"] > .vg-menu-cta--outside { order: 10; }
.vg-menu.is-mobile[data-cta-mobile-location="outside"][data-cta-mobile-order="after"] > .vg-menu-cta--outside { order: 30; }
.vg-menu.is-mobile[data-cta-mobile-location="outside"] > .vg-menu-cart-wrap { order: 40; }

/* Si sale a la cabecera, no se duplica dentro del panel. */
.vg-menu.is-mobile[data-cta-mobile-location="outside"] .vg-menu-shell > .vg-menu-cta--panel,
.vg-menu.is-mobile[data-cta-mobile-location="hidden"] .vg-menu-shell > .vg-menu-cta--panel { display: none; }

/* El modo oculto tampoco expone la copia exterior. */
.vg-menu.is-mobile[data-cta-mobile-location="hidden"] > .vg-menu-cta--outside,
.vg-menu.is-mobile[data-cta-mobile-location="panel"] > .vg-menu-cta--outside { display: none; }

/* Mantiene el texto usable en headers estrechos sin forzar el ancho del menú. */
.vg-menu.is-mobile[data-cta-mobile-location="outside"] > .vg-menu-cta--outside .vg-menu-cta-label {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}


/* 2.33.05 — CTA exterior + burger abierto.
   Cuando el CTA está fuera usamos el propio toggle como botón de cierre. Así
   evitamos que la X animada del burger y el .vg-menu-close interno ocupen el
   mismo punto del panel. El CTA puede ocultarse al abrir (por defecto) para
   liberar espacio o mantenerse visible si el diseño lo requiere. */
.vg-menu.is-mobile[data-cta-mobile-location="outside"].is-menu-open .vg-menu-shell > .vg-menu-close {
    display: none;
}

.vg-menu.is-mobile[data-cta-mobile-location="outside"][data-cta-mobile-open="hide"].is-menu-open > .vg-menu-cta--outside {
    display: none;
}

/* El toggle exterior es la única X de cierre en este modo y debe permanecer
   por encima del panel sin duplicarse con controles internos. */
.vg-menu.is-mobile[data-cta-mobile-location="outside"].is-menu-open > .vg-menu-toggle {
    position: relative;
    z-index: 1004;
}

/* Si el CTA se mantiene visible, ambos controles forman una única banda de
   acciones. En pantallas estrechas el CTA puede encogerse sin pisar la X. */
.vg-menu.is-mobile[data-cta-mobile-location="outside"][data-cta-mobile-open="keep"].is-menu-open > .vg-menu-cta--outside {
    min-width: 0;
    max-width: calc(100vw - 92px - var(--vg-mobile-actions-gap, 10px));
}

.vg-menu.is-mobile[data-cta-mobile-location="outside"][data-cta-mobile-open="keep"].is-menu-open > .vg-menu-cta--outside .vg-menu-cta-label {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}


/* 2.33.35 — VanGal Woo Product Search en Menu: icono compacto + expansión animada. */
.vg-menu-product-search{
    --vg-menu-search-width:300px;
    --vg-menu-search-toggle-size:46px;
    --vg-menu-search-gap:8px;
    position:relative;
    z-index:80;
    display:flex;
    align-items:center;
    gap:0;
    width:var(--vg-menu-search-toggle-size);
    flex:0 1 var(--vg-menu-search-toggle-size);
    min-width:0;
    max-width:100%;
    order:15;
    transition:width .32s cubic-bezier(.2,.75,.2,1),flex-basis .32s cubic-bezier(.2,.75,.2,1);
}
.vg-menu-product-search.vg-search-pos-start{order:0}
.vg-menu-product-search.vg-search-pos-before-menu{order:15}
.vg-menu-product-search.vg-search-pos-after-menu{order:25;flex-direction:row-reverse}
.vg-menu-product-search.vg-search-pos-end{order:45;flex-direction:row-reverse}
.vg-menu-product-search.is-search-open{
    width:var(--vg-menu-search-width);
    flex-basis:var(--vg-menu-search-width);
    gap:var(--vg-menu-search-gap);
}
.vg-menu-search-toggle{
    appearance:none;
    -webkit-appearance:none;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:0 0 var(--vg-menu-search-toggle-size);
    width:var(--vg-menu-search-toggle-size);
    height:var(--vg-menu-search-toggle-size);
    min-width:var(--vg-menu-search-toggle-size);
    padding:0;
    margin:0;
    border:0;
    border-radius:999px;
    background:transparent;
    color:inherit;
    cursor:pointer;
    line-height:1;
    transition:background .2s ease,color .2s ease,transform .2s ease;
}
.vg-menu-search-toggle:hover{background:color-mix(in srgb,currentColor 8%,transparent)}
.vg-menu-search-toggle:focus-visible{outline:2px solid currentColor;outline-offset:3px}
.vg-menu-search-toggle-icon{display:inline-flex;align-items:center;justify-content:center;font-size:22px;transition:opacity .18s ease,transform .25s ease}
.vg-menu-search-toggle-icon svg{display:block;width:1em;height:1em}
.vg-menu-search-toggle-close{display:none;font-size:28px;font-weight:300;line-height:1}
.vg-menu-product-search.is-search-open .vg-menu-search-toggle-open{display:none}
.vg-menu-product-search.is-search-open .vg-menu-search-toggle-close{display:inline-flex}
.vg-menu-product-search.is-search-open .vg-menu-search-toggle{transform:rotate(0deg)}
.vg-menu-search-expand{
    flex:1 1 auto;
    width:0;
    min-width:0;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:scaleX(.78);
    transform-origin:left center;
    transition:opacity .2s ease,transform .32s cubic-bezier(.2,.75,.2,1),visibility 0s linear .32s;
}
.vg-search-pos-after-menu .vg-menu-search-expand,
.vg-search-pos-end .vg-menu-search-expand{transform-origin:right center}
.vg-menu-product-search.is-search-open .vg-menu-search-expand{
    width:auto;
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:scaleX(1);
    transition:opacity .22s ease,transform .32s cubic-bezier(.2,.75,.2,1),visibility 0s linear 0s;
}
.vg-menu-product-search .vgps-root,
.vg-menu-product-search .vgps-form{width:100%;max-width:100%;min-width:0}
.vg-menu-product-search .vgps-root{isolation:initial}
.vg-menu-product-search .vgps-bar{min-width:0}
.vg-layout-vertical:not(.is-mobile) .vg-menu-product-search.is-search-open{width:min(var(--vg-menu-search-width),100%);flex-basis:min(var(--vg-menu-search-width),100%)}
.vg-menu.is-mobile[data-search-mobile-location="panel"] .vg-menu-product-search{align-self:stretch}
.vg-menu.is-mobile[data-search-mobile-location="panel"] .vg-menu-product-search.is-search-open{width:min(var(--vg-menu-search-width),100%);flex-basis:min(var(--vg-menu-search-width),100%)}
.vg-menu.is-mobile[data-search-mobile-location="hidden"] .vg-menu-product-search{display:none!important}
.vg-menu.is-mobile[data-search-mobile-location="outside"]{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:var(--vg-mobile-actions-gap,10px);
}
.vg-menu.is-mobile[data-search-mobile-location="outside"] > .vg-menu-product-search{
    order:5;
    min-width:0;
    max-width:calc(100vw - 74px);
}
.vg-menu.is-mobile[data-search-mobile-location="outside"] > .vg-menu-product-search.is-search-open{
    width:min(var(--vg-menu-search-width),calc(100vw - 74px));
    flex-basis:min(var(--vg-menu-search-width),calc(100vw - 74px));
}
.vg-menu.is-mobile[data-search-mobile-location="outside"] > .vg-menu-toggle{margin-left:0}
.vg-menu.is-mobile[data-search-mobile-location="outside"] > .vg-menu-product-search .vgps-root{--vgps-bar-padding:6px 7px 6px 12px;--vgps-bar-gap:7px;--vgps-icon-size:18px}
@media(max-width:480px){
    .vg-menu-product-search{--vg-menu-search-gap:6px}
    .vg-menu.is-mobile[data-search-mobile-location="outside"] > .vg-menu-product-search{max-width:calc(100vw - 82px)}
    .vg-menu.is-mobile[data-search-mobile-location="outside"] > .vg-menu-product-search.is-search-open{width:calc(100vw - 82px);flex-basis:calc(100vw - 82px)}
}
@media(prefers-reduced-motion:reduce){
    .vg-menu-product-search,.vg-menu-search-expand,.vg-menu-search-toggle,.vg-menu-search-toggle-icon{transition:none!important}
}

/* 2.33.36 — Search states + mobile dropdown-below + configurable mini-cart buttons. */
.vg-menu-product-search{
    --vg-search-toggle-color:#161A17;
    --vg-search-toggle-bg:transparent;
    --vg-search-toggle-border:rgba(22,26,23,.22);
    --vg-search-toggle-hover-color:#fff;
    --vg-search-toggle-hover-bg:#161A17;
    --vg-search-toggle-hover-border:#161A17;
    --vg-search-toggle-radius:999px;
}
.vg-menu-search-toggle{
    color:var(--vg-search-toggle-color);
    background:var(--vg-search-toggle-bg);
    border:1px solid var(--vg-search-toggle-border);
    border-radius:var(--vg-search-toggle-radius);
    transition:background-color .22s ease,color .22s ease,border-color .22s ease,transform .22s ease,box-shadow .22s ease;
}
.vg-menu-search-toggle:hover,
.vg-menu-product-search.is-search-open .vg-menu-search-toggle{
    color:var(--vg-search-toggle-hover-color);
    background:var(--vg-search-toggle-hover-bg);
    border-color:var(--vg-search-toggle-hover-border);
}
.vg-menu-product-search .vgps-submit{transition:background-color .2s ease,color .2s ease,border-color .2s ease,transform .2s ease}
.vg-menu-product-search .vgps-submit:hover{transform:translateY(-1px)}

/* Mobile: icon stays in the action row; the search bar animates below it. */
.vg-menu.is-mobile[data-search-mobile-location="below"]{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:var(--vg-mobile-actions-gap,10px);
    overflow:visible;
}
.vg-menu.is-mobile[data-search-mobile-location="below"] > .vg-menu-product-search{
    order:5;
    width:var(--vg-menu-search-toggle-size);
    flex:0 0 var(--vg-menu-search-toggle-size);
    max-width:none;
    overflow:visible;
}
.vg-menu.is-mobile[data-search-mobile-location="below"] > .vg-menu-product-search.is-search-open{
    width:var(--vg-menu-search-toggle-size);
    flex-basis:var(--vg-menu-search-toggle-size);
    gap:0;
}
.vg-menu.is-mobile[data-search-mobile-location="below"] > .vg-menu-product-search .vg-menu-search-expand{
    position:absolute;
    top:calc(100% + 10px);
    right:0;
    left:auto;
    z-index:150;
    width:min(var(--vg-menu-search-width),calc(100vw - 24px));
    min-width:min(260px,calc(100vw - 24px));
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translateY(-10px) scale(.97);
    transform-origin:top right;
    transition:opacity .22s ease,transform .3s cubic-bezier(.2,.75,.2,1),visibility 0s linear .3s;
}
.vg-menu.is-mobile[data-search-mobile-location="below"] > .vg-menu-product-search.is-search-open .vg-menu-search-expand{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:translateY(0) scale(1);
    transition:opacity .22s ease,transform .3s cubic-bezier(.2,.75,.2,1),visibility 0s linear 0s;
}
.vg-menu.is-mobile[data-search-mobile-location="below"] > .vg-menu-product-search .vgps-root{
    width:100%;
    max-width:100%;
    --vgps-bar-padding:6px 7px 6px 12px;
    --vgps-bar-gap:7px;
    --vgps-icon-size:18px;
}
.vg-menu.is-mobile[data-search-mobile-location="below"] > .vg-menu-toggle{margin-left:0}

.vg-menu-cart-panel .woocommerce-mini-cart__buttons{
    align-items:stretch;
}
.vg-menu-cart-panel .woocommerce-mini-cart__buttons .button{
    width:100%;
    min-width:0;
    border:1px solid transparent;
    transition:background-color .2s ease,color .2s ease,border-color .2s ease,transform .2s ease;
}
.vg-menu-cart-panel .woocommerce-mini-cart__buttons .button:hover{transform:translateY(-1px)}


/* 2.33.132 — CTA: distancia predefinida y selector TranslatePress integrado. */
.vg-menu-language-switcher {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    flex: 0 0 auto;
    min-width: 0;
    z-index: 42;
}
.vg-menu-language-globe { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; }
.vg-menu-language-switcher .trp-language-switcher { max-width: 100%; }
.vg-menu-language-switcher a, .vg-menu-language-switcher button { cursor: pointer; }
.vg-menu-language-switcher :focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }

/* Se respeta el gap original de 16px del shell y se ajusta únicamente
   la frontera menú/CTA. Los ajustes del espacio entre enlaces no cambian. */
.vg-menu:not(.is-mobile).vg-cta-after:not(.vg-has-language) > .vg-menu-shell > .vg-menu-cta--panel,
.vg-menu:not(.is-mobile).vg-cta-after.vg-has-language.vg-language-after > .vg-menu-shell > .vg-menu-cta--panel,
.vg-menu:not(.is-mobile).vg-cta-after.vg-has-language.vg-language-before > .vg-menu-shell > .vg-menu-language-switcher {
    margin-inline-start: calc(var(--vg-cta-navigation-gap, 16px) - 16px);
}
.vg-menu:not(.is-mobile).vg-cta-before:not(.vg-has-language) > .vg-menu-shell > .vg-menu-cta--panel,
.vg-menu:not(.is-mobile).vg-cta-before.vg-has-language.vg-language-before > .vg-menu-shell > .vg-menu-cta--panel,
.vg-menu:not(.is-mobile).vg-cta-before.vg-has-language.vg-language-after > .vg-menu-shell > .vg-menu-language-switcher {
    margin-inline-end: calc(var(--vg-cta-navigation-gap, 16px) - 16px);
}
/* El espacio CTA-selector es independiente y no altera la navegación. */
.vg-menu:not(.is-mobile).vg-has-language.vg-language-before > .vg-menu-shell > .vg-menu-cta--panel,
.vg-menu:not(.is-mobile).vg-has-language.vg-language-after > .vg-menu-shell > .vg-menu-language-switcher {
    margin-inline-start: calc(var(--vg-menu-language-gap, 8px) - 16px);
}
/* En CTA-before+idioma antes, o CTA-after+idioma después, el elemento
   que delimita la navegación conserva su separación independiente. */
.vg-menu:not(.is-mobile).vg-cta-before.vg-has-language.vg-language-before > .vg-menu-shell > .vg-menu-cta--panel { margin-inline-start: calc(var(--vg-menu-language-gap, 8px) - 16px); }
.vg-menu:not(.is-mobile).vg-cta-after.vg-has-language.vg-language-before > .vg-menu-shell > .vg-menu-cta--panel { margin-inline-start: calc(var(--vg-menu-language-gap, 8px) - 16px); }

.vg-menu.vg-cta-before.vg-has-language.vg-language-before > .vg-menu-shell > .vg-menu-language-switcher { order: 9; }
.vg-menu.vg-cta-before.vg-has-language.vg-language-after > .vg-menu-shell > .vg-menu-language-switcher { order: 11; }
.vg-menu.vg-cta-after.vg-has-language.vg-language-before > .vg-menu-shell > .vg-menu-language-switcher { order: 29; }
.vg-menu.vg-cta-after.vg-has-language.vg-language-after > .vg-menu-shell > .vg-menu-language-switcher { order: 31; }

.vg-menu.is-mobile .vg-menu-language-switcher { margin: 0; }
.vg-menu.is-mobile .vg-menu-shell > .vg-menu-language-switcher { align-self: flex-start; }
.vg-menu.is-mobile[data-cta-mobile-location="hidden"] .vg-menu-language-switcher { display: none; }
.vg-menu.is-mobile[data-cta-mobile-location="outside"] > .vg-menu-language-switcher {
    display: inline-flex;
    flex: 0 1 auto;
    max-width: min(34vw, 160px);
    z-index: 1003;
    align-self: center;
}
.vg-menu.is-mobile[data-cta-mobile-location="outside"][data-cta-mobile-order="before"].vg-language-before > .vg-menu-language-switcher { order: 9; }
.vg-menu.is-mobile[data-cta-mobile-location="outside"][data-cta-mobile-order="before"].vg-language-after > .vg-menu-language-switcher { order: 11; }
.vg-menu.is-mobile[data-cta-mobile-location="outside"][data-cta-mobile-order="after"].vg-language-before > .vg-menu-language-switcher { order: 29; }
.vg-menu.is-mobile[data-cta-mobile-location="outside"][data-cta-mobile-order="after"].vg-language-after > .vg-menu-language-switcher { order: 31; }
.vg-menu.is-mobile[data-cta-mobile-location="outside"][data-cta-mobile-open="hide"].is-menu-open > .vg-menu-language-switcher { display: none; }
@media (max-width: 480px) {
    .vg-menu.is-mobile[data-cta-mobile-location="outside"] > .vg-menu-language-switcher { max-width: 28vw; }
    .vg-menu.is-mobile[data-cta-mobile-location="outside"] > .vg-menu-language-switcher .vg-menu-language-globe { display: none; }
}


/* 2.33.133 — Preset "Extremo a extremo":
   espacio flexible entre navegación y bloque CTA/TranslatePress.
   Solo aplica en escritorio horizontal, sin alterar los presets de píxeles
   ni el comportamiento móvil, vertical o del menú burger. */
.vg-menu.vg-layout-horizontal.vg-cta-spacing-edges:not(.is-mobile) > .vg-menu-shell {
    width: 100%;
    justify-content: flex-start;
}
.vg-menu.vg-layout-horizontal.vg-cta-spacing-edges:not(.is-mobile) > .vg-menu-shell > .vg-menu-list--root {
    flex: 0 1 auto;
    width: auto;
    min-width: 0;
    justify-content: flex-start !important;
}
/* CTA al final: el primer elemento del conjunto CTA+idiomas absorbe el espacio. */
.vg-menu.vg-layout-horizontal.vg-cta-spacing-edges.vg-cta-after:not(.is-mobile):not(.vg-has-language) > .vg-menu-shell > .vg-menu-cta--panel,
.vg-menu.vg-layout-horizontal.vg-cta-spacing-edges.vg-cta-after:not(.is-mobile).vg-has-language.vg-language-after > .vg-menu-shell > .vg-menu-cta--panel,
.vg-menu.vg-layout-horizontal.vg-cta-spacing-edges.vg-cta-after:not(.is-mobile).vg-has-language.vg-language-before > .vg-menu-shell > .vg-menu-language-switcher {
    margin-inline-start: auto;
}
/* CTA al principio: separa su último elemento del menú de navegación. */
.vg-menu.vg-layout-horizontal.vg-cta-spacing-edges.vg-cta-before:not(.is-mobile):not(.vg-has-language) > .vg-menu-shell > .vg-menu-cta--panel,
.vg-menu.vg-layout-horizontal.vg-cta-spacing-edges.vg-cta-before:not(.is-mobile).vg-has-language.vg-language-before > .vg-menu-shell > .vg-menu-cta--panel,
.vg-menu.vg-layout-horizontal.vg-cta-spacing-edges.vg-cta-before:not(.is-mobile).vg-has-language.vg-language-after > .vg-menu-shell > .vg-menu-language-switcher {
    margin-inline-end: auto;
}


/* 2.33.136 — Selector TranslatePress independiente del CTA en móvil. */
.vg-menu .vg-trp-picker { position: relative; color: inherit; font: inherit; }
.vg-menu .vg-trp-picker summary {
    display: inline-flex; align-items: center; justify-content: center;
    gap: 7px; padding: 4px 7px; cursor: pointer; list-style: none;
    min-height: 34px; border-radius: 7px;
}
.vg-menu .vg-trp-picker summary::-webkit-details-marker { display: none; }
.vg-menu .vg-trp-picker .vg-trp-options {
    position: absolute; z-index: 2000; top: calc(100% + 5px); right: 0;
    min-width: max-content; background: #fff; color: #1a3436;
    border: 1px solid rgba(13,70,68,.15); border-radius: 9px;
    box-shadow: 0 14px 38px rgba(0,0,0,.17);
    display: flex; flex-direction: column; padding: 5px;
}
.vg-menu .vg-trp-picker:not([open]) .vg-trp-options { display: none; }
.vg-menu .vg-trp-picker .vg-trp-options a {
    display: flex; align-items: center; gap: 8px; padding: 7px 9px;
    white-space: nowrap; border-radius: 6px; color: inherit;
}
.vg-menu .vg-trp-picker .vg-trp-options a:hover,
.vg-menu .vg-trp-picker .vg-trp-options a:focus-visible { background: #e6f6f2; }
.vg-menu .vg-trp-picker .vg-trp-flag {
    display: block; width: 25px; height: 19px; object-fit: cover;
    border-radius: 2px; flex-shrink: 0;
}
.vg-menu .vg-trp-style-flag_circle .vg-trp-flag {
    width: 25px; height: 25px; border-radius: 50%;
}
.vg-menu .vg-trp-picker .vg-trp-name { font-size: 12px; line-height: 1.2; }
.vg-menu.is-mobile[data-language-mobile-location="outside"] { display: flex; align-items: center; justify-content: flex-end; gap: var(--vg-mobile-actions-gap, 10px); }
.vg-menu.is-mobile[data-language-mobile-location="outside"] > .vg-menu-language-switcher {
    display: inline-flex; z-index: 1004; order: 10;
    align-self: center; flex: 0 0 auto; max-width: min(40vw, 180px);
}
.vg-menu.is-mobile[data-language-mobile-location="outside"] > .vg-menu-toggle { order: 20; margin-inline-start: 0; }
.vg-menu.is-mobile[data-language-mobile-location="panel"] .vg-menu-shell > .vg-menu-language-switcher { display: inline-flex; }
.vg-menu.is-mobile[data-language-mobile-location="hidden"] .vg-menu-language-switcher { display: none !important; }
/* Invalidar la antigua regla de mostrar el idioma fuera solo por ubicación del CTA. */
.vg-menu.is-mobile[data-cta-mobile-location="outside"][data-language-mobile-location="panel"] .vg-menu-shell > .vg-menu-language-switcher { display: inline-flex; }

/* 2.33.137 — Franja real FUERA de la fila del header de Elementor.
   Se inserta como último bloque de la plantilla de header (no como hijo del
   contenedor del logo), evitando solapes, redondeo y clipping del padre. */
.vg-menu.is-mobile[data-cta-mobile-location="below"] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: nowrap;
    gap: var(--vg-mobile-actions-gap, 10px);
}
.vg-menu.is-mobile[data-cta-mobile-location="below"] > .vg-menu-toggle {
    order: 20;
    margin-inline-start: 0;
    position: relative;
    z-index: 1004;
}
.vg-menu.is-mobile[data-cta-mobile-location="below"] .vg-menu-shell > .vg-menu-cta--panel { display: none; }
.vg-menu.is-mobile[data-cta-mobile-location="below"].is-menu-open .vg-menu-shell > .vg-menu-close { display: none; }
.vg-menu.is-mobile[data-language-mobile-location="outside"][data-cta-mobile-location="below"] > .vg-menu-language-switcher { order: 10; }
/* El CTA original no se dibuja nunca dentro de la sección del menú. */
.vg-menu.is-mobile[data-cta-mobile-location="below"] > .vg-menu-cta--outside { display: none !important; }
/* La franja externa ocupa todo el viewport y no hereda bordes de la cabecera. */
.vg-menu-cta-rail {
    position: relative;
    display: flex;
    justify-content: stretch;
    align-items: stretch;
    box-sizing: border-box;
    width: 100%;
    max-width: none !important;
    min-width: 0;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    overflow: visible;
    z-index: 19;
}
.vg-menu-cta-rail[hidden] { display: none !important; }
.vg-menu-cta-rail > .vg-menu-cta--outside {
    display: inline-flex !important;
    box-sizing: border-box;
    width: 100% !important;
    max-width: none !important;
    min-width: 0;
    min-height: 54px;
    margin: 0 !important;
    padding-block: 13px;
    padding-inline: 18px;
    justify-content: center;
    align-items: center;
    text-align: center;
    white-space: normal;
    border-radius: 0 !important;
    transform: none;
}
.vg-menu-cta-rail > .vg-menu-cta--outside:hover { transform: none; }
.vg-menu-cta-rail .vg-menu-cta-label {
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
}


/* 2.33.139 — Fix z-index selector TranslatePress sobre CTA inferior móvil.
   Cuando el selector está fuera del burger y el CTA va en una franja debajo
   del header, el desplegable debe quedar por delante de la franja y del hero. */
.vg-menu.is-mobile[data-language-mobile-location="outside"] {
    position: relative;
    z-index: 30;
    overflow: visible;
    isolation: isolate;
}
.vg-menu.is-mobile[data-language-mobile-location="outside"] > .vg-menu-language-switcher {
    position: relative;
    z-index: 1006;
    overflow: visible;
    isolation: isolate;
}
.vg-menu.is-mobile[data-language-mobile-location="outside"] > .vg-menu-language-switcher .vg-trp-picker {
    position: relative;
    z-index: 1007;
}
.vg-menu.is-mobile[data-language-mobile-location="outside"] > .vg-menu-language-switcher .vg-trp-picker .vg-trp-options {
    z-index: 3000;
}
.vg-menu.is-mobile[data-language-mobile-location="outside"][data-cta-mobile-location="below"] > .vg-menu-language-switcher {
    z-index: 1008;
}
.vg-menu-cta-rail {
    z-index: 18;
}

/* Arcadia 2.33.138 — Acceso móvil sin separaciones, colores y CTA en panel */
.vg-menu-cta .vg-menu-cta-icon {
    color: var(--vg-cta-icon-color, inherit);
}
.vg-menu-cta:hover .vg-menu-cta-icon {
    color: var(--vg-cta-icon-hover-color, var(--vg-cta-icon-color, inherit));
}
.vg-menu-cta .vg-menu-cta-icon svg,
.vg-menu-cta .vg-menu-cta-icon i { color: inherit; }
/* Para que los SVG Elementor y flechas personalizadas hereden el color. */
.vg-menu-cta .vg-menu-cta-icon svg path { stroke: currentColor; }

/* La bandera del header no debe atravesar la capa de navegación abierta. */
.vg-menu.is-mobile.is-menu-open[data-language-mobile-location="outside"] > .vg-menu-language-switcher {
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}
/* En modo panel, la bandera forma parte de la navegación. */
.vg-menu.is-mobile[data-language-mobile-location="panel"] .vg-menu-shell > .vg-menu-language-switcher {
    visibility: visible;
}

/* Solo mostrar una segunda aparición del CTA dentro del desplegable si el
   usuario habilita explícitamente este ajuste, y solo con el panel abierto. */
.vg-menu.is-mobile.vg-cta-in-open-panel.is-menu-open[data-cta-mobile-location="below"] .vg-menu-shell > .vg-menu-cta--panel,
.vg-menu.is-mobile.vg-cta-in-open-panel.is-menu-open[data-cta-mobile-location="outside"] .vg-menu-shell > .vg-menu-cta--panel {
    display: inline-flex !important;
    width: 100%;
    max-width: none;
    align-self: stretch;
}
/* La franja es hermana del header: sin márgenes ni radios heredados. */
.vg-menu-cta-rail {
    margin-block: 0;
    border-radius: 0;
}
.vg-menu-cta-rail > .vg-menu-cta--outside { border-radius: 0 !important; }
/* Evita el hueco gris de margin/padding final de la plantilla al montar la franja.
   Solo se aplica cuando hay una franja CTA directamente después del header. */
:is(header, .elementor-location-header, [data-elementor-type="header"]):has(+ .vg-menu-cta-rail) {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}


/* Arcadia 2.33.140 — Las opciones del selector salen de la cabecera al
   abrirse: esta clase es GLOBAL, porque ahora su padre es <body>. Evita
   quedar debajo del CTA, de los stacking contexts y del overflow Elementor. */
.vg-trp-options.vg-trp-options-portal {
    position: fixed !important;
    z-index: 2147483000 !important;
    right: auto !important;
    bottom: auto !important;
    width: max-content;
    min-width: 44px;
    box-sizing: border-box;
    display: flex !important;
    flex-direction: column;
    gap: 0;
    padding: 5px;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    background: #fff;
    color: #1a3436;
    border: 1px solid rgba(13,70,68,.15);
    border-radius: 9px;
    box-shadow: 0 14px 38px rgba(0,0,0,.17);
    pointer-events: auto;
}
.vg-trp-options-portal > a {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 7px 9px;
    white-space: nowrap;
    border-radius: 6px;
    color: inherit;
    cursor: pointer;
    text-decoration: none;
}
.vg-trp-options-portal > a:hover,
.vg-trp-options-portal > a:focus-visible { background: #e6f6f2; }
.vg-trp-options-portal .vg-trp-flag {
    display: block;
    width: 25px;
    height: 19px;
    object-fit: cover;
    border-radius: 2px;
    flex-shrink: 0;
}
.vg-trp-options-portal.vg-trp-portal-circle .vg-trp-flag {
    height: 25px;
    border-radius: 50%;
}
.vg-trp-options-portal .vg-trp-name { font-size: 12px; line-height: 1.2; }

/* 2.33.145 — Variantes editables del carrito desplegable WooCommerce.
   Solo afecta a .vg-menu-cart-wrap; utiliza el HTML y los fragmentos
   originales de WooCommerce para conservar cantidades, eliminar y checkout. */
.vg-menu-cart-wrap { --vg-cart-accent: #0f766e; --vg-cart-image-size: 56px; }
.vg-menu-cart-wrap .vg-menu-cart-panel { box-sizing: border-box; border-radius: 16px; }
.vg-menu-cart-panel .woocommerce-mini-cart-item > a:not(.remove) { align-items: flex-start; }
.vg-menu-cart-panel .woocommerce-mini-cart-item > a:not(.remove):hover { color: var(--vg-cart-accent); }
.vg-menu-cart-panel .woocommerce-mini-cart-item .remove { color: var(--vg-cart-accent); }
.vg-menu-cart-panel .woocommerce-mini-cart__total { border-top: 1px solid var(--vg-cart-separator, rgba(22,26,23,.08)); }
.vg-menu-cart-panel .woocommerce-mini-cart__total strong { font-weight: 700; }
.vg-menu-cart-panel .woocommerce-mini-cart { max-height: min(48vh, 420px); overflow-y: auto; overscroll-behavior: contain; }
.vg-cart-panel-head { display: flex; align-items:center; justify-content:space-between; gap: 12px; margin: 0 0 12px; padding: 0 0 12px; border-bottom: 1px solid var(--vg-cart-separator, rgba(22,26,23,.08)); }
.vg-cart-panel-heading { margin: 0 !important; padding: 0; font-size: 17px; line-height: 1.3; font-weight: 700; color: inherit; }
.vg-menu-cart-panel .vg-cart-panel-close { display:inline-flex; align-items:center; justify-content:center; flex: 0 0 30px; width:30px; height:30px; margin:0; padding:0; background: transparent; border:1px solid currentColor; border-radius:50%; font-size:22px; line-height:1; color:inherit; opacity:.67; cursor:pointer; }
.vg-menu-cart-panel .vg-cart-panel-close:hover,.vg-menu-cart-panel .vg-cart-panel-close:focus-visible { opacity:1; background:rgba(128,128,128,.10); }
.vg-menu-cart-panel .vg-cart-panel-close:focus-visible {outline: 2px solid var(--vg-cart-accent);outline-offset:2px;}
/* Editorial: cálido, refinado, imágenes más grandes y elementos enmarcados. */
.vg-cart-panel-editorial {--vg-cart-separator:#e9e2d8; --vg-cart-accent:#a36e46; --vg-cart-image-size: 68px;}
.vg-cart-panel-editorial .vg-menu-cart-panel { background:#fbfaf7; border-color:#e6ddd0; color:#272723; box-shadow:0 19px 46px rgba(40,30,16,.13); }
.vg-cart-panel-editorial .woocommerce-mini-cart-item {padding-top:15px;padding-bottom:15px;}
.vg-cart-panel-editorial .woocommerce-mini-cart-item > a:not(.remove) img { border-radius:2px; }
.vg-cart-panel-editorial .vg-cart-panel-heading {font-family:Georgia,serif;font-weight:600;font-size:21px;}
/* Shop: fichas compactas tipo tienda, cada producto en su propia tarjeta. */
.vg-cart-panel-shop {--vg-cart-separator:transparent;--vg-cart-accent:#0c7c75; --vg-cart-image-size:64px;}
.vg-cart-panel-shop .vg-menu-cart-panel {background:#fff;color:#172b28;border-color:#e1eeea;box-shadow:0 20px 58px rgba(12,50,44,.16);}
.vg-cart-panel-shop .woocommerce-mini-cart-item {margin:0 0 8px;padding:11px 25px 11px 10px; border:1px solid #e7efed;border-radius:12px;background:#fcfefd;}
.vg-cart-panel-shop .woocommerce-mini-cart-item > a:not(.remove) img { border-radius:8px; }
.vg-cart-panel-shop .woocommerce-mini-cart__total {margin-top:6px;padding:14px 10px;background:#f1faf7;border-radius:10px;}
/* Pastel: más aire, tonos suaves, bordes redondeados. */
.vg-cart-panel-soft {--vg-cart-separator:#dbe9e2; --vg-cart-accent:#137e70;--vg-cart-image-size:64px;}
.vg-cart-panel-soft .vg-menu-cart-panel {background:#f4fbf7;color:#17433c;border-color:#dcebe3;box-shadow:0 18px 46px rgba(27,91,76,.12);}
.vg-cart-panel-soft .woocommerce-mini-cart-item {padding-top:14px;padding-bottom:14px;}
.vg-cart-panel-soft .woocommerce-mini-cart__total {margin-top:8px;padding:14px 10px;background:#e7f5ed;border-radius:10px;}
.vg-cart-panel-soft .woocommerce-mini-cart-item > a:not(.remove) img { border-radius:12px; }
/* Oscuro: superficie oscura con contraste accesible. */
.vg-cart-panel-dark {--vg-cart-separator:rgba(255,255,255,.17);--vg-cart-accent:#8fe6cc;--vg-cart-image-size:62px;}
.vg-cart-panel-dark .vg-menu-cart-panel {background:#172d2b;color:#f8fffd;border-color:#365b55;box-shadow:0 22px 55px rgba(0,0,0,.29);}
.vg-cart-panel-dark .woocommerce-mini-cart-item > a:not(.remove),.vg-cart-panel-dark .woocommerce-mini-cart-item .quantity,.vg-cart-panel-dark .woocommerce-mini-cart__total {color:inherit;}
.vg-cart-panel-dark .woocommerce-mini-cart-item > a:not(.remove) img {border-radius:10px;}
.vg-cart-panel-dark .woocommerce-mini-cart__total {padding:14px 9px;background:#23433e;border-radius:9px;}
/* Cristal: translucidez sutil con fallback opaco. */
.vg-cart-panel-glass {--vg-cart-separator:rgba(49,76,69,.16);--vg-cart-accent:#0f7868;--vg-cart-image-size:60px;}
.vg-cart-panel-glass .vg-menu-cart-panel { background:rgba(255,255,255,.93);border-color:rgba(255,255,255,.72);color:#233a35;box-shadow:0 22px 52px rgba(14,40,34,.15);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);}
.vg-cart-panel-glass .woocommerce-mini-cart-item > a:not(.remove) img {border-radius:12px;}
@media(max-width:600px) { .vg-menu.is-mobile .vg-menu-cart-panel {max-width:calc(100vw - 16px);} .vg-menu.is-mobile .vg-cart-panel-head {margin-bottom:9px;} }
@media(prefers-reduced-motion:reduce) { .vg-menu-cart-wrap .vg-menu-cart-panel,.vg-menu-cart-panel .vg-cart-panel-close {transition:none!important;} }


/* 2.33.146 — Elementor Pro / WooCommerce mini-cart template parity.
   Elementor Pro may replace WooCommerce's traditional mini-cart markup on the
   published site (also after cart-fragments AJAX), even when its editor preview
   displays the classic WooCommerce markup. Scope every rule to Arcadia Menu. */
.vg-menu .vg-menu-cart-wrap .vg-menu-cart-panel .elementor-menu-cart__products {
    display: block;
    width: 100%;
    max-width: 100%;
    max-height: min(48vh, 420px);
    margin: 0;
    padding: 0;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    box-sizing: border-box;
}
.vg-menu .vg-menu-cart-wrap .vg-menu-cart-panel .elementor-menu-cart__product {
    display: grid !important;
    grid-template-columns: var(--vg-cart-image-size, 56px) minmax(0, 1fr) 19px !important;
    grid-template-rows: auto auto;
    column-gap: 10px;
    row-gap: 4px;
    position: relative;
    align-items: start;
    width: 100%;
    min-width: 0;
    margin: 0;
    padding: 10px 0;
    border: 0;
    border-bottom: 1px solid var(--vg-cart-separator, rgba(22,26,23,.08));
    box-sizing: border-box;
}
.vg-menu .vg-menu-cart-wrap .vg-menu-cart-panel .elementor-menu-cart__product-image {
    grid-column: 1 !important;
    grid-row: 1 / 3 !important;
    display: block;
    align-self: start;
    width: var(--vg-cart-image-size, 56px) !important;
    max-width: var(--vg-cart-image-size, 56px) !important;
    min-width: 0;
    height: var(--vg-cart-image-size, 56px);
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden;
}
.vg-menu .vg-menu-cart-wrap .vg-menu-cart-panel .elementor-menu-cart__product-image a {
    display: block;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
}
.vg-menu .vg-menu-cart-wrap .vg-menu-cart-panel .elementor-menu-cart__product-image img {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    height: 100% !important;
    max-height: 100% !important;
    margin: 0 !important;
    padding: 0;
    float: none !important;
    object-fit: cover;
    border-radius: 8px;
}
.vg-menu .vg-menu-cart-wrap .vg-menu-cart-panel .elementor-menu-cart__product-name {
    grid-column: 2 !important;
    grid-row: 1 !important;
    display: block;
    min-width: 0;
    width: auto;
    margin: 0;
    padding: 0;
    font-weight: 600;
    line-height: 1.35;
    white-space: normal;
    overflow-wrap: anywhere;
}
.vg-menu .vg-menu-cart-wrap .vg-menu-cart-panel .elementor-menu-cart__product-name a {
    display: inline;
    color: inherit;
    font: inherit;
    text-decoration: none;
    overflow-wrap: anywhere;
}
.vg-menu .vg-menu-cart-wrap .vg-menu-cart-panel .elementor-menu-cart__product-name a:hover {
    color: var(--vg-cart-accent, #0f766e);
}
.vg-menu .vg-menu-cart-wrap .vg-menu-cart-panel .elementor-menu-cart__product-price {
    grid-column: 2 !important;
    grid-row: 2 !important;
    display: block;
    min-width: 0;
    margin: 0;
    padding: 0;
    line-height: 1.35;
    font-size: .9em;
}
.vg-menu .vg-menu-cart-wrap .vg-menu-cart-panel .elementor-menu-cart__product-remove {
    grid-column: 3 !important;
    grid-row: 1 / 3 !important;
    align-self: center;
    justify-self: center;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    width: 19px;
    height: 24px;
    margin: 0;
    padding: 0;
    color: var(--vg-cart-accent, currentColor);
}
.vg-menu .vg-menu-cart-wrap .vg-menu-cart-panel .elementor-menu-cart__product-remove a,
.vg-menu .vg-menu-cart-wrap .vg-menu-cart-panel .elementor-menu-cart__product-remove .remove_from_cart_button {
    position: relative;
    inset: auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: inherit;
}
.vg-cart-panel-compact { --vg-cart-image-size: 44px; }
/* The same layout and color presets should apply to both Elementor's and
   WooCommerce's HTML, so the selected style is identical in editor/frontend. */
.vg-cart-panel-compact .vg-menu-cart-panel .elementor-menu-cart__product {column-gap:8px;row-gap:3px;padding-block:7px;}
.vg-cart-panel-editorial .vg-menu-cart-panel .elementor-menu-cart__product {padding-block:15px;}
.vg-cart-panel-editorial .vg-menu-cart-panel .elementor-menu-cart__product-image img {border-radius:2px;}
.vg-cart-panel-shop .vg-menu-cart-panel .elementor-menu-cart__product {margin-bottom:8px;padding:11px 10px;border:1px solid #e7efed;border-radius:12px;background:#fcfefd;}
.vg-cart-panel-shop .vg-menu-cart-panel .elementor-menu-cart__product-image img {border-radius:8px;}
.vg-cart-panel-soft .vg-menu-cart-panel .elementor-menu-cart__product {padding-block:14px;}
.vg-cart-panel-soft .vg-menu-cart-panel .elementor-menu-cart__product-image img {border-radius:12px;}
.vg-cart-panel-dark .vg-menu-cart-panel .elementor-menu-cart__product,
.vg-cart-panel-dark .vg-menu-cart-panel .elementor-menu-cart__product-name,
.vg-cart-panel-dark .vg-menu-cart-panel .elementor-menu-cart__product-price {color:inherit;}
.vg-cart-panel-dark .vg-menu-cart-panel .elementor-menu-cart__product-image img {border-radius:10px;}
.vg-cart-panel-glass .vg-menu-cart-panel .elementor-menu-cart__product-image img {border-radius:12px;}
.vg-menu .vg-menu-cart-wrap .vg-menu-cart-panel .elementor-menu-cart__subtotal {
    margin: 0;
    padding: 14px 0 8px;
    border-top: 1px solid var(--vg-cart-separator, rgba(22,26,23,.08));
}
.vg-menu .vg-menu-cart-wrap .vg-menu-cart-panel .elementor-menu-cart__footer-buttons {
    display: grid;
    grid-template-columns: minmax(0,1fr) minmax(0,1fr);
    gap: 8px;
    margin: 8px 0 0;
}
.vg-menu .vg-menu-cart-wrap .vg-menu-cart-panel .elementor-menu-cart__footer-buttons > a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    padding: 9px 12px;
    text-align: center;
    text-decoration: none;
}
