/**
 * ==============================================================================
 * Archivo: menu.css
 * Ruta: /wp-content/themes/evernes-theme-pro/assets/css/menu.css
 *
 * Descripción:
 *  - Menú minimalista PRO optimizado:
 *      - Desktop: inline + underline animado + dropdown simple
 *      - Móvil: overlay fullscreen limpio (sin sombras, sin bordes, sin degradados)
 *
 * ✅ Adaptación:
 *  - Soporta opciones del admin (menu.php) vía CSS variables (definidas en /inc/frontend.php):
 *      --evw-menu-text
 *      --evw-menu-bg
 *      --evw-menu-hover
 *      --evw-menu-font
 *      --evw-menu-gap
 *      --evw-menu-pad-y
 *      --evw-menu-pad-x
 *      --evw-menu-mt
 *      --evw-menu-mb
 *
 *  - Fallbacks seguros SIEMPRE (sin autorreferencias).
 *  - Mantiene el underline animado usando color configurable.
 *
 * Versión: 1.6.1
 * Último cambio: 2026-01-22
 * Autor: Alberto Aranda
 * ==============================================================================
 */

/* =========================================================
   VARIABLES SEGURAS (sin autorreferencia)
   - NO redefinimos --evw-menu-*
   - Creamos *-safe para usar siempre fallbacks
   ========================================================= */
:root{
  --evw-menu-text-safe:  var(--evw-menu-text, #111111);
  --evw-menu-bg-safe:    var(--evw-menu-bg, #ffffff);
  --evw-menu-hover-safe: var(--evw-menu-hover, var(--evw-accent, #2C4A9C));

  --evw-menu-font-safe:  var(--evw-menu-font, 16px);
  --evw-menu-gap-safe:   var(--evw-menu-gap, 18px);

  --evw-menu-pad-y-safe: var(--evw-menu-pad-y, 10px);
  --evw-menu-pad-x-safe: var(--evw-menu-pad-x, 14px);

  --evw-menu-mt-safe:    var(--evw-menu-mt, 0px);
  --evw-menu-mb-safe:    var(--evw-menu-mb, 0px);
}

/* =========================================================
   CONTENEDOR NAV (base)
   ========================================================= */
.evw-nav{
  color: var(--evw-menu-text-safe);
  margin-top: var(--evw-menu-mt-safe);
  margin-bottom: var(--evw-menu-mb-safe);
  background: transparent;
}

/* Si el nav está dentro de un header, aplicamos “pill” suave al bloque del menú */
.evw-header .evw-nav,
header .evw-nav{
  background: var(--evw-menu-bg-safe);
  padding: var(--evw-menu-pad-y-safe) var(--evw-menu-pad-x-safe);
  border-radius: 14px;
}

/* =========================================================
   DESKTOP: base
   ========================================================= */
.evw-nav ul{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  gap: var(--evw-menu-gap-safe);
  align-items:center;
}
.evw-nav li{position:relative}

.evw-nav a{
  position:relative;
  display:inline-block;
  text-decoration:none;
  color: inherit;
  padding:8px 2px;
  opacity:.92;
  font-size: var(--evw-menu-font-safe);
}
.evw-nav a:hover,
.evw-nav a:focus{opacity:1}

/* underline (usa hover configurable) */
.evw-nav a::after{
  content:"";
  position:absolute;
  left:0;
  bottom:4px;
  height:2px;
  width:100%;
  background: var(--evw-menu-hover-safe);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .18s ease;
  border-radius:99px;
  opacity:.95;
}
.evw-nav a:hover::after,
.evw-nav a:focus::after{transform:scaleX(1)}

.evw-nav .current-menu-item>a,
.evw-nav .current_page_item>a{opacity:1}

.evw-nav .current-menu-item>a::after,
.evw-nav .current_page_item>a::after{transform:scaleX(1)}

/* =========================================================
   DESKTOP: dropdown (simple)
   ========================================================= */
.evw-nav li.menu-item-has-children>a{padding-right:18px}
.evw-nav li.menu-item-has-children>a::before{
  content:"";
  position:absolute;
  right:0;
  top:50%;
  width:6px;height:6px;
  border-right:2px solid currentColor;
  border-bottom:2px solid currentColor;
  transform:translateY(-50%) rotate(45deg);
  opacity:.55;
  transition:transform .18s ease,opacity .18s ease;
}

/* Submenú */
.evw-nav ul ul{
  position:absolute;
  top:100%;
  left:0;
  min-width:220px;
  display:flex;
  flex-direction:column;
  padding:8px;
  background: var(--evw-menu-bg-safe);
  border:1px solid rgba(0,0,0,.10);
  border-radius:12px;
  z-index:9999;
  opacity:0;
  transform:translateY(8px);
  pointer-events:none;
  transition:opacity .14s ease,transform .14s ease;
}
.evw-nav li:hover>ul{opacity:1;transform:translateY(0);pointer-events:auto}
.evw-nav li.menu-item-has-children:hover>a::before{
  opacity:1;
  transform:translateY(-50%) rotate(225deg)
}
.evw-nav ul ul a{
  padding:10px;
  border-radius:10px;
  opacity:1;
  font-size: var(--evw-menu-font-safe);
}
.evw-nav ul ul a:hover{background:rgba(0,0,0,.04)}
.evw-nav ul ul a::after{bottom:8px;left:10px;width:calc(100% - 20px)}

/* =========================================================
   TOGGLE: sandwich 2 líneas (móvil) · SIN BORDE/CAJA
   ========================================================= */
.evw-menu-toggle{
  display:none;
  appearance:none;
  -webkit-appearance:none;
  border:0;
  outline:0;
  box-shadow:none;
  background:transparent;
  padding:10px;
  border-radius:0;
  cursor:pointer;
  line-height:0;
  -webkit-tap-highlight-color:transparent;
  color: var(--evw-menu-text-safe);
}

/* RESET TOTAL (iOS / Android / WP) */
.evw-menu-toggle,
.evw-menu-toggle *{
  -webkit-appearance:none !important;
  appearance:none !important;
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  outline:0 !important;
}

.evw-menu-toggle:focus-visible{
  outline:2px solid var(--evw-menu-hover-safe);
  outline-offset:4px;
}

.evw-menu-icon{display:inline-block;width:22px;height:14px;position:relative}
.evw-menu-icon::before,
.evw-menu-icon::after{
  content:"";
  position:absolute;
  left:0;right:0;
  height:2px;
  background:currentColor;
  border-radius:99px;
}
.evw-menu-icon::before{top:2px}
.evw-menu-icon::after{top:10px}

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

/* =========================================================
   MÓVIL: overlay fullscreen (sin cortes)
   ========================================================= */
.evw-mnav-overlay{
  position:fixed;
  inset:0;
  z-index:99999;
  background: var(--evw-menu-bg-safe);
  color: var(--evw-menu-text-safe);
  opacity:0;
  pointer-events:none;
  transition:opacity .12s ease;
  overflow-x:hidden;
}
.evw-mnav-overlay.is-open{opacity:1;pointer-events:auto}

/* Panel */
.evw-mnav-panel{
  position:fixed;
  inset:0;
  width:100vw;
  max-width:100vw;
  height:calc(var(--evw-vh, 1vh) * 100);
  background: var(--evw-menu-bg-safe);
  color: var(--evw-menu-text-safe);
  display:flex;
  flex-direction:column;
  box-sizing:border-box;
  overflow-x:hidden;
  padding-top:env(safe-area-inset-top);
  padding-bottom:env(safe-area-inset-bottom);
}

/* Topbar */
.evw-mnav-top{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  padding:14px 14px 6px;
}

/* X · SIN BORDE/CAJA */
.evw-mnav-close{
  width:44px;height:44px;
  border:0 !important;
  outline:0 !important;
  box-shadow:none !important;
  background:transparent !important;
  border-radius:0;
  cursor:pointer;
  font-size:34px;
  line-height:1;
  padding:0;
  -webkit-tap-highlight-color:transparent;
  color: var(--evw-menu-text-safe);
}
.evw-mnav-close:focus-visible{
  outline:2px solid var(--evw-menu-hover-safe);
  outline-offset:4px;
}

/* Scroll interno */
.evw-mnav-content{
  flex:1;
  overflow:auto;
  -webkit-overflow-scrolling:touch;
  padding:10px 0 18px;
}

/* =========================================================
   MÓVIL: layout del menú (contenido al 90%)
   ========================================================= */
@media (max-width: 860px){
  .evw-menu-toggle{
    display:inline-flex;
    align-items:center;
    justify-content:center;
  }

  /* wrapper 90% centrado */
  .evw-mnav-content .evw-nav{
    width:100%;
    max-width:90vw;
    margin:0 auto;
    background: transparent;
    padding: 0;
    border-radius: 0;
  }

  .evw-nav ul{
    flex-direction:column;
    align-items:stretch;
    gap:0;
    padding:0;
  }

  .evw-nav a{
    width:100%;
    padding:18px 2px;
    border-radius:0;
    font-size: clamp(18px, calc(var(--evw-menu-font-safe) + 6px), 24px);
    letter-spacing:-0.2px;
    opacity:1;
    overflow-wrap:anywhere;
    word-break:break-word;
  }

  /* underline móvil */
  .evw-nav a::after{
    bottom:10px;
    left:0;
    width:100%;
    height:2px;
    opacity:.9;
    background: var(--evw-menu-hover-safe);
  }

  /* separador */
  .evw-nav li{border-bottom:1px solid rgba(0,0,0,.08)}

  /* Submenú móvil */
  .evw-nav ul ul{
    position:static;
    min-width:0;
    width:100%;
    border:0;
    border-radius:0;
    padding:0 0 0 14px;
    background:transparent;
    display:none;
    opacity:1;
    transform:none;
    pointer-events:auto;
    transition:none;
  }
  .evw-nav li.is-open>ul{display:flex;flex-direction:column}

  /* chevron */
  .evw-nav li.menu-item-has-children>a::before{right:0;opacity:.55}
  .evw-nav li.is-open>a::before{
    transform:translateY(-50%) rotate(225deg);
    opacity:1;
  }

  /* anular hover-open desktop en móvil */
  .evw-nav li:hover>ul{opacity:1;transform:none;pointer-events:auto}
}

/* bloqueo scroll al abrir */
.evw-lock{overflow:hidden!important}

/* reduce motion */
@media (prefers-reduced-motion: reduce){
  .evw-nav a::after,
  .evw-nav ul ul,
  .evw-nav li.menu-item-has-children>a::before,
  .evw-mnav-overlay{transition:none!important}
}
