/* Definición de variables de color para fácil modificación */
:root {
  --primary-color: #e0b000;      /* Dorado principal */
  --secondary-color: #f1c40f;     /* Un dorado un poco más claro/amarillo para acentos */
  --card-bg: #ffffff;            /* Blanco puro para el fondo de las tarjetas */
  --text-color: #333333;          /* Texto oscuro para contraste */
  --light-grey: #f8f8f8;          /* Gris muy claro para fondos sutiles */
  --border-color: #e0e0e0;        /* Borde suave */
  --error-color: #e74c3c;         /* Rojo para mensajes de error/eliminar */
  --success-color: #2ecc71;        /* Verde para éxito/confirmar */
  --navbar-bg-color: #e0b000;    /* Fondo del navbar */
  --navbar-text-color: white;    /* Color del texto en el navbar */
  --submenu-bg-color: #444;      /* Fondo del submenú */
  --submenu-hover-bg: #555;      /* Fondo del submenú al pasar el ratón */
  --submenu-text-color: white;   /* Color del texto del submenú */
}

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

/* Estilos generales del navbar */
.navbar {
  display: flex; /* Utiliza Flexbox para alinear elementos */
  justify-content: space-between; /* Espacia el navbar-left y el navbar-menu */
  align-items: center; /* Alinea verticalmente los ítems */
  background-color: var(--navbar-bg-color); /* Color de fondo dorado */
  padding: 10px 20px;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
  position: relative; /* Importante para el posicionamiento absoluto del submenú */
  z-index: 100; /* Asegura que el navbar esté sobre otros elementos */
}

.navbar-left {
  display: flex; /* Permite alinear el logo y los iconos de redes */
  align-items: center; /* Alinea verticalmente el logo y los iconos */
  gap: 15px; /* Espacio entre el logo y el primer icono, y entre los iconos */
}

.navbar-brand {
  color: var(--navbar-text-color);
  font-size: 1.8em;
  font-weight: bold;
  text-decoration: none;
}

/* Estilos para los iconos sociales en el navbar (junto a "Monn") */
.social-icon-nav {
  color: var(--navbar-text-color); /* Color de los iconos */
  font-size: 20px; /* Tamaño del icono */
  transition: color 0.3s ease, transform 0.2s ease;
  text-decoration: none; /* Sin subrayado */
  display: flex; /* Para centrar el icono dentro de su espacio */
  align-items: center;
  justify-content: center;
  width: 28px; /* Un tamaño fijo para los iconos en la barra principal */
  height: 28px;
}

.social-icon-nav:hover {
  color: var(--light-grey); /* Color ligeramente diferente al pasar el ratón */
  transform: scale(1.1); /* Efecto de zoom al pasar el ratón */
}

/* Toggle del menú para móviles (el icono de hamburguesa) */
.navbar-toggle {
  display: none; /* Oculto por defecto en desktop */
  flex-direction: column;
  justify-content: space-between;
  width: 30px;
  height: 25px;
  cursor: pointer;
}

.navbar-toggle span {
  display: block;
  width: 100%;
  height: 3px;
  background-color: var(--navbar-text-color);
  border-radius: 2px;
}

.navbar-menu {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex; /* Para que los elementos se muestren en línea en desktop */
  align-items: center;
}

.navbar-menu li {
  margin-left: 25px; /* Espacio entre los elementos del menú */
  position: relative; /* CLAVE: Para que el submenú se posicione respecto a este li */
}

.navbar-menu a {
  color: var(--navbar-text-color);
  text-decoration: none;
  font-size: 1.1em;
  padding: 5px 0;
  display: block; /* Para que el padding y el hover funcionen en todo el área */
  transition: color 0.3s ease;
}

.navbar-menu a:hover {
  color: var(--light-grey);
}

/* --- INICIO: ESTILOS PARA EL SUBMENÚ --- */

/* Estilo para el elemento li que contiene el submenú */
.navbar-menu .has-submenu {
    position: relative; /* Contenedor para el submenú absoluto */
}

/* Estilo para el enlace principal del submenú (Categorías) */
.navbar-menu .has-submenu > a { /* Selector directo para el 'a' hijo */
    display: flex; /* Para alinear el texto y la flecha */
    align-items: center;
    gap: 5px; /* Espacio entre texto y flecha */
}

/* Estilo para la flecha indicadora */
.navbar-menu .has-submenu .fa-caret-down {
    transition: transform 0.3s ease;
}

/* Rotar la flecha al pasar el ratón por el elemento padre */
.navbar-menu .has-submenu:hover .fa-caret-down {
    transform: rotate(180deg);
}

/* Estilo del contenedor del submenú */
.submenu {
    list-style: none;
    margin: 0;
    padding: 0;
    background-color: var(--submenu-bg-color); /* Fondo más oscuro para el submenú */
    position: absolute; /* Posicionamiento absoluto respecto a .has-submenu */
    top: 100%; /* Se posiciona justo debajo del elemento padre */
    right: 0; /* <--- CAMBIO CLAVE: Alineado a la DERECHA del elemento padre */
    min-width: 200px; /* <--- MEJORA: Ancho mínimo un poco mayor para nombres largos */
    box-shadow: 0 4px 8px rgba(0,0,0,0.2);
    border-radius: 5px;
    overflow: hidden; /* Oculta el contenido que se desborda durante la transición */

    /* Oculto por defecto con max-height: 0 y opacidad para una transición suave */
    max-height: 0;
    opacity: 0;
    visibility: hidden; /* Oculta el submenú del DOM para interacciones */
    transform: translateY(10px); /* Un pequeño desplazamiento hacia abajo al aparecer */
    transition: max-height 0.4s ease-out, opacity 0.3s ease-out, transform 0.3s ease-out, visibility 0.4s ease-out;
}

/* Mostrar el submenú al pasar el ratón por el elemento padre */
.navbar-menu .has-submenu:hover .submenu {
    max-height: 300px; /* Suficientemente grande para contener todos los elementos */
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

/* Estilo de los elementos del submenú */
.submenu li {
    margin-left: 0; /* Reinicia el margen del li del menú principal */
    border-bottom: 1px solid rgba(255, 255, 255, 0.1); /* Separador sutil entre elementos */
}

.submenu li:last-child {
    border-bottom: none; /* Elimina el borde inferior del último elemento */
}

.submenu li a {
    padding: 10px 15px; /* Padding adecuado para los enlaces del submenú (15px a la derecha) */
    color: var(--submenu-text-color);
    white-space: nowrap; /* Evita que el texto se rompa */
    font-size: 1em; /* Ajusta el tamaño de fuente si es necesario */
}

.submenu li a:hover {
    background-color: var(--submenu-hover-bg); /* Fondo más claro al pasar el ratón por un elemento del submenú */
    color: var(--secondary-color); /* Dorado al pasar el ratón */
}

/* --- FIN: ESTILOS PARA EL SUBMENÚ --- */


/* --- Responsive para dispositivos móviles --- */
@media (max-width: 768px) {
  .navbar {
    flex-wrap: wrap; /* Permite que los elementos se envuelvan */
    padding: 10px 15px;
  }

  .navbar-left {
      gap: 10px; /* Menos espacio en móvil */
  }

  .navbar-toggle {
    display: flex; /* Muestra el icono de hamburguesa en móviles */
  }

  .navbar-menu {
    flex-direction: column; /* Apila los elementos verticalmente */
    width: 100%; /* Ocupa todo el ancho */
    display: none; /* Oculto por defecto hasta que se activa por JS */
    background-color: rgba(0, 0, 0, 0.9); /* Fondo más oscuro para el menú desplegable */
    position: absolute;
    top: 60px; /* Debajo del navbar (ajusta si tu navbar tiene otra altura) */
    left: 0;
    padding: 10px 0;
    box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
    z-index: 99; /* Menor que el navbar principal pero mayor que el contenido */
  }

  .navbar-menu.active {
    display: flex; /* Muestra el menú cuando tiene la clase 'active' */
  }

  .navbar-menu li {
    margin: 0;
    width: 100%;
    text-align: center;
    padding: 0; /* El padding va en el 'a' */
    border-bottom: 1px solid rgba(255, 255, 255, 0.2);
  }

  .navbar-menu li:last-child {
      border-bottom: none;
  }

  .navbar-menu a {
    display: block; /* Para que el área de click ocupe todo el ancho del li */
    padding: 12px 0; /* Más padding para los enlaces en móvil */
  }

  /* --- Ajustes para el submenú en móvil --- */
  .submenu {
      position: static; /* Vuelve a la posición normal en el flujo del documento */
      width: 100%; /* Ocupa todo el ancho disponible */
      background-color: var(--submenu-hover-bg); /* Un color ligeramente diferente para el fondo del submenú móvil */
      box-shadow: none; /* Sin sombra */
      border-radius: 0; /* Sin bordes redondeados */
      padding-left: 0; /* <--- MEJORA: Elimina padding-left aquí, el padding va en los 'a' */
      max-height: 0; /* Oculto por defecto en móvil con max-height */
      opacity: 0;
      visibility: hidden;
      transform: translateY(0); /* Sin transformación inicial */
      transition: max-height 0.4s ease-out, opacity 0.3s ease-out, visibility 0.4s ease-out;
  }

  /* Mostrar el submenú en móvil cuando la clase 'open' está activa (controlado por JS) */
  .navbar-menu .has-submenu.open .submenu {
      max-height: 300px; /* Suficiente para mostrar los elementos */
      opacity: 1;
      visibility: visible;
  }

  /* Estilo de los elementos del submenú en móvil */
  .submenu li {
      border-bottom: 1px solid rgba(255, 255, 255, 0.15); /* Separador más visible */
  }

  .submenu li:last-child {
      border-bottom: none;
  }

  .submenu li a {
      padding: 10px 0; /* Padding adecuado para los enlaces del submenú en móvil */
      font-size: 1em;
  }
}
