/* ═══════════════════════════════════════════════════════════════
   HELGA · MENÚ INMERSIVO CON VIDEO DE FONDO
   Complemento de helga-premium.css · Requiere helga-menu.js
   ═══════════════════════════════════════════════════════════════ */

/* ───────────────────────────────────────────────
   El botón hamburguesa ahora vive en todos los tamaños
   y el menú horizontal desaparece en móvil (lo reemplaza
   el overlay, ya no hay desplegable).
   ─────────────────────────────────────────────── */
.nav__toggle { display: flex !important; }

@media (max-width: 991px) {
    .nav__menu { display: none !important; }
}

.nav__toggle {
    position: relative;
    z-index: 1301;
    transition: transform var(--dur-fast) var(--ease-back);
}
.nav__toggle:hover { transform: scale(1.08); }
.nav__toggle span { transition: background-color var(--dur-mid) var(--ease-soft), transform var(--dur-mid) var(--ease-out), opacity var(--dur-fast); }
.nav__toggle.is-open span { background: #fff; }

/* ───────────────────────────────────────────────
   OVERLAY
   ─────────────────────────────────────────────── */
.menu-overlay {
    position: fixed;
    inset: 0;
    z-index: 1200;
    visibility: hidden;
    opacity: 0;
    overflow: hidden;
    isolation: isolate;
    transition: opacity .5s var(--ease-soft), visibility .5s;
}
.menu-overlay.is-open { visibility: visible; opacity: 1; }

/* Video / imagen de fondo */
.menu-overlay__media {
    position: absolute;
    inset: 0;
    z-index: 0;
    overflow: hidden;
    background: var(--night);
}
.menu-overlay__media video,
.menu-overlay__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transform: scale(1.06);
    will-change: transform;
}

/* Respaldo sin video: paneo lento sobre una fotografía */
.menu-overlay__media--kenburns img {
    animation: kenburns 22s ease-in-out infinite alternate;
}
@keyframes kenburns {
    from { transform: scale(1.05) translate3d(0, 0, 0); }
    to   { transform: scale(1.18) translate3d(-2%, -2.5%, 0); }
}

/* Velo: garantiza contraste de lectura sobre cualquier video */
.menu-overlay__veil {
    position: absolute;
    inset: 0;
    z-index: 1;
    background:
        radial-gradient(120% 90% at 78% 18%, rgba(232,146,124,.24), transparent 62%),
        linear-gradient(180deg, rgba(21,21,21,.90) 0%, rgba(21,21,21,.78) 45%, rgba(21,21,21,.93) 100%);
    backdrop-filter: blur(2px) saturate(115%);
    -webkit-backdrop-filter: blur(2px) saturate(115%);
}

/* Grano reutilizado del hero */
.menu-overlay .grain { z-index: 2; opacity: .05; }

/* ───────────────────────────────────────────────
   CONTENIDO
   ─────────────────────────────────────────────── */
.menu-overlay__inner {
    position: relative;
    z-index: 3;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding-block: clamp(5rem, 12vh, 7rem) clamp(2rem, 6vh, 3.5rem);
    overflow-y: auto;
    overscroll-behavior: contain;
}

.menu-overlay__grid {
    display: grid;
    gap: clamp(2.5rem, 6vw, 5rem);
    align-items: center;
}
@media (min-width: 992px) {
    .menu-overlay__grid { grid-template-columns: 1.25fr 1fr; }
}

/* ── Enlaces principales ── */
.menu-nav { display: flex; flex-direction: column; gap: .2rem; }

.menu-nav__item { overflow: hidden; display: block; }

.menu-nav__link {
    position: relative;
    display: flex;
    align-items: baseline;
    gap: 1.1rem;
    padding-block: clamp(.35rem, 1.2vh, .7rem);
    font-family: var(--serif);
    font-size: clamp(2.1rem, 6vw, 4.2rem);
    font-weight: 300;
    line-height: 1.12;
    letter-spacing: -.015em;
    color: rgba(255,255,255,.92);
    transition: color .4s var(--ease-soft), transform .5s var(--ease-out);
    will-change: transform;
}
.menu-nav__link::before {
    content: attr(data-index);
    font-family: var(--sans);
    font-size: .68rem;
    font-weight: 500;
    letter-spacing: .18em;
    color: var(--rose);
    opacity: .55;
    transform: translateY(-.9em);
    transition: opacity .35s, transform .45s var(--ease-back);
    flex-shrink: 0;
}
.menu-nav__link .menu-nav__arrow {
    font-size: .38em;
    color: var(--rose);
    opacity: 0;
    transform: translateX(-14px);
    transition: opacity .35s var(--ease-soft), transform .45s var(--ease-back);
}
.menu-nav__link:hover,
.menu-nav__link:focus-visible {
    color: var(--rose-lt);
    transform: translateX(clamp(8px, 1.4vw, 20px));
}
.menu-nav__link:hover::before,
.menu-nav__link:focus-visible::before { opacity: 1; transform: translateY(-.9em) scale(1.1); }
.menu-nav__link:hover .menu-nav__arrow,
.menu-nav__link:focus-visible .menu-nav__arrow { opacity: 1; transform: translateX(0); }

.menu-nav__link.is-current { color: var(--rose); }

/* Línea que separa cada entrada */
.menu-nav__item + .menu-nav__item .menu-nav__link { border-top: 1px solid rgba(255,255,255,.07); }

/* ── Panel lateral de contacto ── */
.menu-aside {
    border-left: 1px solid rgba(255,255,255,.1);
    padding-left: clamp(1.5rem, 3vw, 2.5rem);
}
@media (max-width: 991px) {
    .menu-aside { border-left: none; border-top: 1px solid rgba(255,255,255,.1); padding-left: 0; padding-top: 2rem; }
}

.menu-aside__block { margin-bottom: 1.9rem; }
.menu-aside__block h6 {
    font-family: var(--sans);
    font-size: .66rem;
    font-weight: 500;
    letter-spacing: .22em;
    text-transform: uppercase;
    color: var(--rose);
    margin-bottom: .55rem;
}
.menu-aside__block p {
    color: rgba(255,255,255,.72);
    font-size: .92rem;
    line-height: 1.75;
    margin: 0;
}
.menu-aside__block a { color: rgba(255,255,255,.85); transition: color .3s; }
.menu-aside__block a:hover { color: var(--rose); }

.menu-aside__phone {
    font-family: var(--serif);
    font-size: clamp(1.35rem, 2.4vw, 1.8rem);
    color: #fff;
    letter-spacing: .01em;
}

.menu-social { display: flex; gap: .6rem; margin-top: .4rem; }

/* ── Botón de cierre ── */
.menu-close {
    position: absolute;
    top: clamp(1.2rem, 3vh, 2rem);
    right: clamp(1.2rem, 3vw, 2.4rem);
    z-index: 4;
    width: 52px; height: 52px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(255,255,255,.22);
    color: rgba(255,255,255,.75);
    font-size: 1rem;
    transition: border-color .3s, color .3s, transform .45s var(--ease-back), background-color .3s;
}
.menu-close:hover {
    border-color: var(--rose);
    color: var(--rose);
    background: rgba(232,146,124,.08);
    transform: rotate(90deg);
}

/* ── Marca dentro del overlay ── */
.menu-brand {
    position: absolute;
    top: clamp(1.2rem, 3vh, 2rem);
    left: clamp(1.2rem, 3vw, 2.4rem);
    z-index: 4;
    display: flex;
    align-items: center;
    gap: .7rem;
    font-family: var(--serif);
    font-size: 1.1rem;
    color: rgba(255,255,255,.9);
}
.menu-brand img { height: 42px; width: auto; }
.menu-brand em { color: var(--rose); font-style: normal; }

/* ── Pie del overlay ── */
.menu-foot {
    position: absolute;
    left: 0; right: 0; bottom: 0;
    z-index: 4;
    padding: clamp(.9rem, 2vh, 1.4rem) clamp(1.2rem, 3vw, 2.4rem);
    display: flex;
    flex-wrap: wrap;
    gap: .8rem;
    justify-content: space-between;
    font-size: .72rem;
    letter-spacing: .1em;
    color: rgba(255,255,255,.32);
    border-top: 1px solid rgba(255,255,255,.07);
}
@media (max-height: 700px) { .menu-foot { display: none; } }

/* ── Indicador de sonido/estado del video (decorativo) ── */
.menu-videotag {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    font-size: .64rem;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: rgba(255,255,255,.3);
}
.menu-videotag i { color: var(--rose); font-size: .5rem; animation: pulseDot 2.4s ease-in-out infinite; }
@keyframes pulseDot { 0%,100% { opacity: .35 } 50% { opacity: 1 } }

/* ───────────────────────────────────────────────
   BLOQUEO DE SCROLL DEL DOCUMENTO
   ─────────────────────────────────────────────── */
body.menu-open { overflow: hidden; }

/* ───────────────────────────────────────────────
   ACCESIBILIDAD / MOVIMIENTO REDUCIDO
   ─────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
    .menu-overlay,
    .menu-overlay * { transition-duration: .001ms !important; }
    .menu-overlay__media video { display: none !important; }
    .menu-overlay__media--kenburns img { animation: none !important; }
    .menu-close:hover { transform: none; }
}

/* Si el navegador no puede reproducir video, la imagen queda visible */
.menu-overlay__media video:not([src]) { display: none; }
