/* ============================================
   NAVIGATION COMPONENT - Menu Global
   ============================================ */

/* --- noscroll: copiado textual de Apple (ac-globalnav.built_v3.css líneas 6298-6314) --- */

html.noscroll {
  margin-top: 0 !important;
}

html.noscroll,
html.noscroll body {
  overflow: hidden !important;
}

html.noscroll {
  height: 100% !important;
}

html.noscroll-long {
  overflow-y: scroll !important;
}

/* Variables del menú de navegación */
html {
  --r-globalnav-height: 64px;
  --r-globalnav-segmentbar-height: 0px;
  --r-globalnav-viewport-large-min-width: 1024px;
  --r-globalnav-viewport-large-max-width: 1441px;
  --r-globalnav-viewport-large-query: (min-width: 1024px);
  --r-globalnav-viewport-medium-min-width: 834px;
  --r-globalnav-viewport-medium-max-width: 1023px;
  --r-globalnav-viewport-medium-query: (max-width: 1023px);
  --r-globalnav-viewport-small-min-width: 420px;
  --r-globalnav-viewport-small-max-width: 833px;
  --r-globalnav-viewport-small-query: (max-width: 833px);
  --r-globalnav-viewport-xsmall-min-width: 320px;
  --r-globalnav-viewport-xsmall-max-width: 419px;
  --r-globalnav-viewport-xsmall-query: (max-width: 419px);
  --r-globalnav-segmentbar-background: #000;
  --r-globalnav-segmentbar-text-color: rgba(255, 255, 255, 0.92);
  --r-globalnav-segmentbar-border-color: rgba(255, 255, 255, 0.15);
}

/* Viewport emitter (detector de breakpoints) */
#ac-gn-viewport-emitter {
  overflow: hidden;
  position: absolute;
  top: 0;
  left: 0;
  width: 0;
  height: 0;
  visibility: hidden;
  z-index: -1;
}

#ac-gn-viewport-emitter::before {
  content: "large";
}

@media only screen and (max-width: 1023px) {
  #ac-gn-viewport-emitter::before {
    content: "medium";
  }
}

@media only screen and (max-width: 833px) {
  #ac-gn-viewport-emitter::before {
    content: "small";
  }
}

@media only screen and (max-width: 419px) {
  #ac-gn-viewport-emitter::before {
    content: "xsmall";
  }
}

/* ============================================
   NAVEGACIÓN GLOBAL - Estructura principal
   ============================================ */

#navegacionglobal {
  position: fixed;
  top: 0;
  right: 0;
  left: 0;
  z-index: 9999;
  display: block;
  margin: 0;
  width: 100%;
  min-width: 320px;
  height: 64px;
  max-height: 64px;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  background-color: rgba(0, 0, 0, 0.92);
}

@supports ((-webkit-backdrop-filter: saturate(180%) blur(20px)) or (backdrop-filter: saturate(180%) blur(20px))) {
  #navegacionglobal {
    backdrop-filter: saturate(180%) blur(20px);
    -webkit-backdrop-filter: saturate(180%) blur(20px);
    background-color: rgba(0, 0, 0, 0.8);
    transition: background 0.5s ease;
  }

  #estadomenu:checked ~ #navegacionglobal,
  #estadomenu:target ~ #navegacionglobal {
    background-color: rgba(0, 0, 0, 1);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }
}

#navegacionglobal {
  overflow-y: hidden;
  max-height: none;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  transition: height 0s 0.16s, background-color 0.3s cubic-bezier(0.545, 0.03, 0.395, 0.965);
}

#estadomenu:checked ~ #navegacionglobal,
#estadomenu:target ~ #navegacionglobal {
  height: 100%;
  background-color: rgba(0, 0, 0, 1);
  border-bottom: 0px solid transparent !important;
  transition: height 0s 0s, background-color 0.3s cubic-bezier(0.545, 0.03, 0.395, 0.965);
}

#estadomenu:checked ~ #navegacionglobal *,
#estadomenu:target ~ #navegacionglobal * {
  border-bottom-color: transparent !important;
}

@media only screen and (max-width: 1024px) {
  #navegacionglobal {
    min-width: 320px;
  }
}

/* Input checkbox oculto que controla el estado del menú */
#estadomenu {
  display: none;
}

/* ============================================
   CONTENEDOR PRINCIPAL
   ============================================ */

#navegacionglobal .contenido {
  margin: 0 auto;
  max-width: 92rem;
  position: relative;
  z-index: 2;
  top: 0;
  width: 100%;
  height: 100%;
}

/* ============================================
   ENCABEZADO DEL MENÚ
   ============================================ */

#navegacionglobal .encabezado {
  display: block;
  position: absolute;
  background-color: transparent;
  z-index: 5;
  top: 0;
  left: 0;
  width: 100%;
  height: 64px;
  overflow: hidden;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

#estadomenu:checked ~ #navegacionglobal .encabezado,
#estadomenu:target ~ #navegacionglobal .encabezado {
  background-color: rgba(0, 0, 0, 1);
  border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important;
  transition: height 0s 0s, background-color 0.3s cubic-bezier(0.545, 0.03, 0.395, 0.965);
}

#navegacionglobal .encabezado .elemento,
#navegacionglobal .encabezado .enlace {
  height: 64px;
}

#navegacionglobal .encabezado .enlace {
  line-height: 2.82353em;
}

#navegacionglobal .encabezado .brand {
  position: absolute;
  width: 240px;
  top: 0;
  left: 0;
  text-align: center;
  z-index: 3;
  display: block;
}

#navegacionglobal .encabezado + .lista {
  top: 48px;
}

/* ============================================
   CONTENEDOR DEL MENÚ
   ============================================ */

#navegacionglobal .menu-container {
  display: flex;
  justify-content: flex-end;
  flex-grow: 1;
  display: block;
  justify-content: space-between;
  flex-grow: inherit;
}

/* ============================================
   LISTA DE NAVEGACIÓN
   ============================================ */

#navegacionglobal .lista {
  cursor: default;
  margin: 0;
  width: auto;
  height: 64px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  padding: 0;
  list-style: none;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  z-index: 1;
  justify-content: center;
  height: 100dvh;
  margin: auto;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  -webkit-overflow-scrolling: touch;
  opacity: 0;
  visibility: hidden;
  -webkit-transition: opacity 0.16s cubic-bezier(0.545, 0.03, 0.395, 0.965),
    visibility 0.16s cubic-bezier(0.545, 0.03, 0.395, 0.965);
  transition: opacity 0.16s cubic-bezier(0.545, 0.03, 0.395, 0.965),
    visibility 0.16s cubic-bezier(0.545, 0.03, 0.395, 0.965);
}

@media only screen and (max-width: 833px) {
  #navegacionglobal.menu-opening .lista,
  #navegacionglobal.menu-closing .lista {
    overflow: hidden;
  }

  #estadomenu:checked ~ #navegacionglobal .lista,
  #estadomenu:target ~ #navegacionglobal .lista {
    opacity: 1;
    visibility: visible;
    -webkit-transition: opacity 0.16s cubic-bezier(0.545, 0.03, 0.395, 0.965),
      visibility 0.16s cubic-bezier(0.545, 0.03, 0.395, 0.965);
    transition: opacity 0.16s cubic-bezier(0.545, 0.03, 0.395, 0.965),
      visibility 0.16s cubic-bezier(0.545, 0.03, 0.395, 0.965);
  }
}

/* ============================================
   ELEMENTOS DEL MENÚ
   ============================================ */

#navegacionglobal .elemento {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  display: inline-block;
  position: relative;
  height: 64px;
  z-index: 3;
  vertical-align: top;
  width: 100%;
}

#navegacionglobal .elemento-menu {
  opacity: 0;
  pointer-events: none;
  -webkit-transition: opacity 0.16s cubic-bezier(0.545, 0.03, 0.395, 0.965),
    visibility 0.16s cubic-bezier(0.545, 0.03, 0.395, 0.965);
  transition: opacity 0.16s cubic-bezier(0.545, 0.03, 0.395, 0.965),
    visibility 0.16s cubic-bezier(0.545, 0.03, 0.395, 0.965);
}

#navegacionglobal .elemento-menu:nth-child(1) {
  padding-top: 1px;
}

#navegacionglobal .elemento-menu:nth-child(1)::before {
  content: "";
  display: block;
  width: 100%;
}

@media only screen and (max-width: 833px) {
  #estadomenu:checked ~ #navegacionglobal .elemento-menu,
  #estadomenu:target ~ #navegacionglobal .elemento-menu {
    opacity: 1;
    pointer-events: auto;
    -webkit-transition: opacity 0.16s cubic-bezier(0.545, 0.03, 0.395, 0.965),
      visibility 0.16s cubic-bezier(0.545, 0.03, 0.395, 0.965);
    transition: opacity 0.16s cubic-bezier(0.545, 0.03, 0.395, 0.965),
      visibility 0.16s cubic-bezier(0.545, 0.03, 0.395, 0.965);
  }
}

/* ============================================
   ENLACES
   ============================================ */

#navegacionglobal .enlace {
  position: relative;
  z-index: 1;
  display: inline-block;
  height: 64px;
  background: no-repeat;
  white-space: nowrap;
  -webkit-transition: opacity 0.3s cubic-bezier(0.25, 0.1, 0.25, 1);
  transition: opacity 0.3s cubic-bezier(0.25, 0.1, 0.25, 1);
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  outline-offset: -7px;
  line-height: 1.23536;
  letter-spacing: -0.022em;
}

#navegacionglobal .enlace:hover {
  opacity: 1;
}

#navegacionglobal .enlace:focus {
  opacity: 1;
  -webkit-transition: none;
  transition: none;
}

#navegacionglobal .enlace-text {
  position: absolute;
  clip: rect(1px, 1px, 1px, 1px);
  -webkit-clip-path: inset(0px 0px 99.9% 99.9%);
  clip-path: inset(0px 0px 99.9% 99.9%);
  overflow: hidden;
  height: 1px;
  width: 1px;
  padding: 0;
  border: 0;
  top: 50%;
}

#navegacionglobal .elemento-menu .enlace {
  background-position: left center;
  display: block;
  outline-offset: 0;
  padding: 0;
  width: auto;
  max-width: none;
}

/* ============================================
   LOGO NOVVUS
   ============================================ */

#navegacionglobal .brand {
  display: block;
  opacity: 1;
  transition: opacity 0.3s ease;
}

#navegacionglobal .enlace-brand {
  display: flex;
  align-items: center;
  padding-left: 0.75rem;
  width: 240px;
  color: #fff;
  text-decoration: none;
  border: none !important;
  outline: none !important;
}

/* ============================================
   RESET — Evitar bordes/outlines del global CSS
   ============================================ */

#navegacionglobal,
#navegacionglobal *,
#navegacionglobal .enlace,
#navegacionglobal .enlace-brand,
#navegacionglobal .anclajemenu,
#navegacionglobal .encabezado,
#navegacionglobal .elemento,
#navegacionglobal .iconomenu-label {
  outline: none !important;
  border-color: transparent;
}

#navegacionglobal .encabezado {
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

#estadomenu:checked ~ #navegacionglobal .encabezado,
#estadomenu:target ~ #navegacionglobal .encabezado {
  border-bottom-color: rgba(255, 255, 255, 0.1) !important;
}

/* ============================================
   ÍCONO HAMBURGUESA - Estructura
   ============================================ */

#navegacionglobal .iconomenu {
  right: max(0px, env(safe-area-inset-left));
  position: absolute;
  z-index: 2;
  top: 0;
  width: 48px;
  border-bottom: none;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

@media only screen and (min-width: 834px) {
  #navegacionglobal .iconomenu {
    display: none !important;
  }
}

#navegacionglobal .iconomenu-label {
  display: block;
  position: absolute;
  opacity: 1;
  z-index: 3;
  top: 0;
  right: 0;
  width: 56px;
  height: 64px;
  cursor: pointer;
  -webkit-transition: opacity 0.3s cubic-bezier(0.25, 0.1, 0.25, 1);
  transition: opacity 0.3s cubic-bezier(0.25, 0.1, 0.25, 1);
}

#navegacionglobal .iconomenu-bread {
  position: absolute;
  z-index: 3;
  top: 9px;
  left: 6px;
  width: 45px;
  height: 45px;
  -webkit-transition: opacity 0.3s cubic-bezier(0.25, 0.1, 0.25, 1);
  transition: opacity 0.3s cubic-bezier(0.25, 0.1, 0.25, 1);
}

/* ============================================
   ÍCONO HAMBURGUESA - Animación Pan Superior
   ============================================ */

#navegacionglobal .iconomenu-bread-top {
  -webkit-transition: -webkit-transform 0.1806s cubic-bezier(0.04, 0.04, 0.12, 0.96);
  transition: -webkit-transform 0.1806s cubic-bezier(0.04, 0.04, 0.12, 0.96);
  transition: transform 0.1806s cubic-bezier(0.04, 0.04, 0.12, 0.96);
  transition: transform 0.1806s cubic-bezier(0.04, 0.04, 0.12, 0.96),
    -webkit-transform 0.1806s cubic-bezier(0.04, 0.04, 0.12, 0.96);
  -webkit-transform: none;
  transform: none;
  z-index: 4;
}

#estadomenu:checked ~ #navegacionglobal .iconomenu-bread-top,
#estadomenu:target ~ #navegacionglobal .iconomenu-bread-top {
  -webkit-transition: -webkit-transform 0.3192s cubic-bezier(0.04, 0.04, 0.12, 0.96) 0.1008s;
  transition: -webkit-transform 0.3192s cubic-bezier(0.04, 0.04, 0.12, 0.96) 0.1008s;
  transition: transform 0.3192s cubic-bezier(0.04, 0.04, 0.12, 0.96) 0.1008s;
  transition: transform 0.3192s cubic-bezier(0.04, 0.04, 0.12, 0.96) 0.1008s,
    -webkit-transform 0.3192s cubic-bezier(0.04, 0.04, 0.12, 0.96) 0.1008s;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
}

/* ============================================
   ÍCONO HAMBURGUESA - Animación Pan Inferior
   ============================================ */

#navegacionglobal .iconomenu-bread-bottom {
  -webkit-transition: -webkit-transform 0.1806s cubic-bezier(0.04, 0.04, 0.12, 0.96);
  transition: -webkit-transform 0.1806s cubic-bezier(0.04, 0.04, 0.12, 0.96);
  transition: transform 0.1806s cubic-bezier(0.04, 0.04, 0.12, 0.96);
  transition: transform 0.1806s cubic-bezier(0.04, 0.04, 0.12, 0.96),
    -webkit-transform 0.1806s cubic-bezier(0.04, 0.04, 0.12, 0.96);
  -webkit-transform: none;
  transform: none;
  z-index: 4;
}

#estadomenu:checked ~ #navegacionglobal .iconomenu-bread-bottom,
#estadomenu:target ~ #navegacionglobal .iconomenu-bread-bottom {
  -webkit-transition: -webkit-transform 0.3192s cubic-bezier(0.04, 0.04, 0.12, 0.96) 0.1008s;
  transition: -webkit-transform 0.3192s cubic-bezier(0.04, 0.04, 0.12, 0.96) 0.1008s;
  transition: transform 0.3192s cubic-bezier(0.04, 0.04, 0.12, 0.96) 0.1008s;
  transition: transform 0.3192s cubic-bezier(0.04, 0.04, 0.12, 0.96) 0.1008s,
    -webkit-transform 0.3192s cubic-bezier(0.04, 0.04, 0.12, 0.96) 0.1008s;
  -webkit-transform: rotate(-45deg);
  transform: rotate(-45deg);
}

/* ============================================
   ÍCONO HAMBURGUESA - Corteza (las líneas)
   ============================================ */

#navegacionglobal .iconomenu-bread-crust {
  display: block;
  width: 27px;
  height: 3px;
  background: #fff;
  border-radius: 1.5px;
  position: absolute;
  left: 9px;
  z-index: 1;
  -webkit-transition: background 0.3s cubic-bezier(0.25, 0.1, 0.25, 1);
  transition: background 0.3s cubic-bezier(0.25, 0.1, 0.25, 1);
}

#estadomenu:checked ~ #navegacionglobal .iconomenu-bread-crust,
#estadomenu:target ~ #navegacionglobal .iconomenu-bread-crust {
  background: #fff;
}

/* ============================================
   ÍCONO HAMBURGUESA - Corteza Superior
   ============================================ */

#navegacionglobal .iconomenu-bread-crust-top {
  top: 21px;
  -webkit-transform: translateY(-5px) scaleX(0.88235);
  transform: translateY(-5px) scaleX(0.88235);
  -webkit-transition: -webkit-transform 0.1596s cubic-bezier(0.52, 0.16, 0.52, 0.84) 0.1008s;
  transition: -webkit-transform 0.1596s cubic-bezier(0.52, 0.16, 0.52, 0.84) 0.1008s;
  transition: transform 0.1596s cubic-bezier(0.52, 0.16, 0.52, 0.84) 0.1008s;
  transition: transform 0.1596s cubic-bezier(0.52, 0.16, 0.52, 0.84) 0.1008s,
    -webkit-transform 0.1596s cubic-bezier(0.52, 0.16, 0.52, 0.84) 0.1008s;
}

#estadomenu:checked ~ #navegacionglobal .iconomenu-bread-crust-top,
#estadomenu:target ~ #navegacionglobal .iconomenu-bread-crust-top {
  -webkit-transition: -webkit-transform 0.1806s cubic-bezier(0.04, 0.04, 0.12, 0.96);
  transition: -webkit-transform 0.1806s cubic-bezier(0.04, 0.04, 0.12, 0.96);
  transition: transform 0.1806s cubic-bezier(0.04, 0.04, 0.12, 0.96);
  transition: transform 0.1806s cubic-bezier(0.04, 0.04, 0.12, 0.96),
    -webkit-transform 0.1806s cubic-bezier(0.04, 0.04, 0.12, 0.96);
  -webkit-transform: none;
  transform: none;
}

/* ============================================
   ÍCONO HAMBURGUESA - Corteza Inferior
   ============================================ */

#navegacionglobal .iconomenu-bread-crust-bottom {
  bottom: 21px;
  -webkit-transform: translateY(5px) scaleX(0.88235);
  transform: translateY(5px) scaleX(0.88235);
  -webkit-transition: -webkit-transform 0.1596s cubic-bezier(0.52, 0.16, 0.52, 0.84) 0.1008s;
  transition: -webkit-transform 0.1596s cubic-bezier(0.52, 0.16, 0.52, 0.84) 0.1008s;
  transition: transform 0.1596s cubic-bezier(0.52, 0.16, 0.52, 0.84) 0.1008s;
  transition: transform 0.1596s cubic-bezier(0.52, 0.16, 0.52, 0.84) 0.1008s,
    -webkit-transform 0.1596s cubic-bezier(0.52, 0.16, 0.52, 0.84) 0.1008s;
}

#estadomenu:checked ~ #navegacionglobal .iconomenu-bread-crust-bottom,
#estadomenu:target ~ #navegacionglobal .iconomenu-bread-crust-bottom {
  -webkit-transition: -webkit-transform 0.1806s cubic-bezier(0.04, 0.04, 0.12, 0.96);
  transition: -webkit-transform 0.1806s cubic-bezier(0.04, 0.04, 0.12, 0.96);
  transition: transform 0.1806s cubic-bezier(0.04, 0.04, 0.12, 0.96);
  transition: transform 0.1806s cubic-bezier(0.04, 0.04, 0.12, 0.96),
    -webkit-transform 0.1806s cubic-bezier(0.04, 0.04, 0.12, 0.96);
  -webkit-transform: none;
  transform: none;
}

/* ============================================
   ANCLAJE DEL MENÚ
   ============================================ */

#navegacionglobal .anclajemenu:hover ~ .iconomenu-label,
#navegacionglobal .anclajemenu:focus ~ .iconomenu-label,
#navegacionglobal .anclajemenu:active ~ .iconomenu-label {
  opacity: 1;
}

#navegacionglobal .anclajemenu {
  right: 0;
  color: #fff;
  position: absolute;
  top: 0;
  width: 56px;
  height: 64px;
  z-index: 10;
  background: transparent;
  border: 0;
  padding: 0;
  cursor: pointer;
}

#navegacionglobal .anclajemenu:focus {
  outline-offset: -8px;
}

#navegacionglobal .anclajemenu-close {
  display: none;
}

#navegacionglobal .anclajemenu-label {
  position: absolute;
  clip: rect(1px, 1px, 1px, 1px);
  -webkit-clip-path: inset(0px 0px 99.9% 99.9%);
  clip-path: inset(0px 0px 99.9% 99.9%);
  overflow: hidden;
  height: 1px;
  width: 1px;
  padding: 0;
  border: 0;
}

#estadomenu:checked ~ #navegacionglobal .anclajemenu-open,
#estadomenu:target ~ #navegacionglobal .anclajemenu-open {
  display: none;
}

#estadomenu:checked ~ #navegacionglobal .anclajemenu-close,
#estadomenu:target ~ #navegacionglobal .anclajemenu-close {
  display: block;
}

/* ============================================
   MENÚ DESKTOP - Animación de transparencia
   ============================================ */

.desktop-nav-menu {
  opacity: 1;
  visibility: visible;
  transition: opacity 0.3s cubic-bezier(0.25, 0.1, 0.25, 1), visibility 0.3s cubic-bezier(0.25, 0.1, 0.25, 1);
}

#estadomenu:checked ~ #navegacionglobal .desktop-nav-menu,
#estadomenu:target ~ #navegacionglobal .desktop-nav-menu {
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s cubic-bezier(0.25, 0.1, 0.25, 1), visibility 0.3s cubic-bezier(0.25, 0.1, 0.25, 1);
}

/* Desktop: burger oculto y dropdown deshabilitado */
@media only screen and (min-width: 834px) {
  #navegacionglobal .anclajemenu,
  #navegacionglobal .iconomenu-label {
    display: none !important;
  }

  #navegacionglobal .lista,
  #estadomenu:checked ~ #navegacionglobal .lista,
  #estadomenu:target ~ #navegacionglobal .lista {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }

  #estadomenu:checked ~ #navegacionglobal .desktop-nav-menu,
  #estadomenu:target ~ #navegacionglobal .desktop-nav-menu {
    opacity: 1 !important;
    visibility: visible !important;
  }
}

/* CSS - Prevenir zoom en iOS: */
@media screen and (max-width: 768px) {
  #navegacionglobal input {
    font-size: 16px !important;
  }

  #navegacionglobal input:focus {
    scroll-margin-top: 100px;
    scroll-margin-bottom: 100px;
  }
}

/* ============================================
   SCROLLBAR OCULTO EN MENÚ
   ============================================ */

#navegacionglobal .scrollbar-hide::-webkit-scrollbar {
  display: none;
}

#navegacionglobal .scrollbar-hide {
  -ms-overflow-style: none;
  scrollbar-width: none;
}

/* Auto-hide header on scroll (SpaceX-like) */
#navegacionglobal.nav-visible {
  transform: translateY(0);
}

#navegacionglobal.nav-hidden {
  transform: translateY(calc(-1 * var(--r-globalnav-height) - 8px));
}

/* Hard-stop desktop: el li.iconomenu no debe ocupar espacio */
@media only screen and (min-width: 834px) {
  #navegacionglobal .encabezado > li.elemento.iconomenu {
    display: none !important;
    width: 0 !important;
    min-width: 0 !important;
    max-width: 0 !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
  }
}
