/*
 * Visual Menu V2 — Icon Premium
 * LIGHT: fully transparent; the global position owns its own surface,
 *         backgrounds, spacing and appearance settings.
 * IMMERSIVE: Hero integration / eligibility is decided outside this stylesheet.
 */

.visual-menu {
    --vm-line: rgba(27, 45, 55, .14);
    --vm-muted-opacity: .67;
    /* Reuse a platform accent token when present. The last value is a fallback. */
    --vm-hover: var(--color-primary, var(--primary-color, var(--accent-color, #cc2038)));

    width: 100%;
    max-width: 100%;
    min-width: 0;
    color: inherit;
    font-family: Manrope, sans-serif;
}

.visual-menu__sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.visual-menu__list {
    display: flex;
    flex-wrap: nowrap;
    align-items: stretch;
    min-width: 0;
    margin: 0;
    padding: 0;
    list-style: none;
}

.visual-menu__item {
    position: relative;
    flex: 1 1 0;
    min-width: 0;
    scroll-snap-align: start;
}

.visual-menu__link {
    display: flex;
    align-items: center;
    gap: .7rem;
    min-height: 68px;
    padding: .75rem 1rem;
    color: inherit;
    text-decoration: none;
    background: transparent;
    transition: color .18s ease;
}

.visual-menu__link:hover,
.visual-menu__link:focus-visible {
    color: var(--vm-hover);
    background: transparent;
}

.visual-menu__link:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: -3px;
}

/* Shared MENUS V2 selection: aria-current is reserved for the actual page.
   The is-active class also covers canonical ancestors and editorial hubs. */
.visual-menu__link.is-active,
.visual-menu__link[aria-current="page"] {
    color: var(--vm-hover);
}

.visual-menu__icon {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    flex: 0 0 32px;
    width: 32px;
    height: 32px;
    color: currentColor;
}

.visual-menu__svg {
    display: block;
    width: 30px;
    height: 30px;
}

.visual-menu__copy {
    display: flex;
    flex-direction: column;
    gap: .15rem;
    min-width: 0;
}

.visual-menu__title {
    font-size: .81rem;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: -.012em;
    color: inherit;
}

.visual-menu__subtitle {
    font-size: .67rem;
    font-weight: 400;
    line-height: 1.35;
    color: inherit;
    opacity: var(--vm-muted-opacity);
}

/* LIGHT — there is no menu-owned color surface, even on hover. */
.visual-menu--light {
    background: transparent;
}

.visual-menu--light .visual-menu__list,
.visual-menu--light .visual-menu__item,
.visual-menu--light .visual-menu__link {
    background: transparent;
}

.visual-menu--horizontal .visual-menu__list {
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    scroll-snap-type: x proximity;
}

.visual-menu--light.visual-menu--horizontal .visual-menu__item + .visual-menu__item::before {
    content: "";
    position: absolute;
    top: 23%;
    bottom: 23%;
    left: 0;
    border-left: 1px solid var(--vm-line);
    pointer-events: none;
}

/* Vertical is supported by LIGHT only. */
.visual-menu--light.visual-menu--vertical .visual-menu__list {
    flex-direction: column;
    overflow: visible;
}

.visual-menu--light.visual-menu--vertical .visual-menu__item {
    flex: 0 0 auto;
}

.visual-menu--light.visual-menu--vertical .visual-menu__item + .visual-menu__item {
    border-top: 1px solid var(--vm-line);
}

.visual-menu--light.visual-menu--vertical .visual-menu__link {
    min-height: 64px;
    padding: .7rem 1rem;
}

/* IMMERSIVE — a separate, explicitly eligible Hero presentation. */
.visual-menu--immersive {
    --vm-line: rgba(255, 255, 255, .32);
    --vm-muted-opacity: .85;
    --vm-hover: #fff;
    position: relative;
    color: #fff;
    background: linear-gradient(0deg, rgba(5, 21, 25, .87), rgba(5, 21, 25, .18));
}

.visual-menu--immersive .visual-menu__link {
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    min-height: 138px;
    padding: .8rem 1.3rem 1.15rem;
    text-align: center;
    color: #fff;
}

.visual-menu--immersive .visual-menu__icon {
    color: #fff;
    flex-basis: 34px;
    width: 34px;
    height: 34px;
}

/* In Immersive, active text stays white; only the selected icon receives
   the platform accent. This does not change hover/focus or the Hero band. */
.visual-menu--immersive .visual-menu__link.is-active .visual-menu__icon,
.visual-menu--immersive .visual-menu__link[aria-current="page"] .visual-menu__icon {
    color: var(--color-primary, var(--primary-color, var(--accent-color, #dc2626)));
}

.visual-menu--immersive .visual-menu__svg {
    width: 33px;
    height: 33px;
}

.visual-menu--immersive .visual-menu__copy {
    align-items: center;
}

.visual-menu--immersive .visual-menu__title {
    font-size: .86rem;
}

.visual-menu--immersive .visual-menu__subtitle {
    font-size: .7rem;
}

.visual-menu--immersive .visual-menu__link:hover,
.visual-menu--immersive .visual-menu__link:focus-visible {
    color: #fff;
    background: rgba(255, 255, 255, .1);
}

.visual-menu--immersive .visual-menu__item + .visual-menu__item::before {
    content: "";
    position: absolute;
    top: 18%;
    bottom: 18%;
    left: 0;
    border-left: 1px solid var(--vm-line);
    pointer-events: none;
}

@media (max-width: 991px) {
    .visual-menu--horizontal .visual-menu__item {
        flex: 0 0 190px;
        min-width: 190px;
    }

    .visual-menu--light.visual-menu--horizontal .visual-menu__link {
        padding: .72rem .88rem;
    }
}

@media (max-width: 767px) {
    .visual-menu--horizontal .visual-menu__item {
        flex: 0 0 185px;
        min-width: 185px;
    }

    .visual-menu--light.visual-menu--horizontal .visual-menu__link {
        gap: .6rem;
        min-height: 66px;
        padding: .7rem .85rem;
    }

    .visual-menu--light .visual-menu__icon {
        width: 30px;
        height: 30px;
        flex-basis: 30px;
    }

    .visual-menu--light .visual-menu__svg {
        width: 28px;
        height: 28px;
    }

    .visual-menu--immersive .visual-menu__item {
        flex: 0 0 180px;
        min-width: 180px;
    }

    .visual-menu--immersive .visual-menu__link {
        min-height: 123px;
        padding: .75rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .visual-menu__link {
        transition: none;
    }
}
