/* --- CONFIGURACIÓN GENERAL --- */
body {
  /* Un gris muy oscuro para dar profundidad, prueba cambiarlo a #000 si lo prefieres */
  background-color: #0a0a0a;
  color: #ffffff; /* Texto general en blanco */
  font-family: "Montserrat", sans-serif;
  margin: 0;
  padding: 0;
}

/* --- SECCIÓN HERO CON VIDEO --- */
.hero {
  position: relative; /* Necesario para que el video y la capa se alineen dentro de esta sección */
  height: 70vh; /* Altura de la sección (70% de la pantalla). Puedes cambiarlo a 100vh si quieres que ocupe toda la pantalla */
  min-height: 500px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  overflow: hidden; /* Evita que el video se salga de los bordes */
  border-bottom: 2px solid #fff062; /* Tu línea divisoria amarilla */
}

/* El Video */
.video-fondo {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover; /* Esta es la magia: hace que el video llene el espacio sin deformarse */
  z-index: 1; /* Lo manda al fondo */
}

/* El Filtro Oscuro (Overlay) */
.overlay-hero {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgb(0 0 0 / 52%);
  z-index: 2; /* Queda por encima del video, pero debajo del texto */
}

/* El Texto y Botón */
.contenido-hero {
  position: relative;
  z-index: 3; /* Queda por encima de todo */
  max-width: 800px;
  padding: 0 20px;
}

.hero h1 {
  font-size: 3.5rem; /* Un poco más grande para que impacte más con el video */
  margin-bottom: 15px;
  text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5); /* Sombra sutil para mejorar lectura */
}

.resalte-amarillo {
  color: #fff062;
}

.hero p {
  color: #f1f1f1; /* Texto ligeramente más blanco para resaltar sobre el fondo de video */
  font-size: 1.3rem;
  margin-bottom: 35px;
  text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.5);
}

/* Botones */
.btn-principal {
  background-color: #fff062;
  color: #000000 !important; /* El !important obliga al navegador a usar el negro y no el azul */
  padding: 15px 30px;
  text-decoration: none !important; /* Nos aseguramos de que no aparezca el subrayado típico de los enlaces */
  font-weight: bold;
  border-radius: 5px;
  display: inline-block;
  transition: background-color 0.3s ease;
}

.btn-principal:hover {
  background-color: #e6d858;
}

/* --- SECCIÓN SERVICIOS --- */
.servicios {
  padding: 80px 20px;
  text-align: center;
}

.grid-servicios {
  display: flex;
  justify-content: center;
  gap: 30px;
  margin-top: 40px;
}

/* Tarjetas (Cards) */
.card-servicio {
  background-color: #000; /* Cajas negras sobre el fondo #0a0a0a */
  padding: 30px;
  width: 300px;
  border-radius: 8px;
  position: relative;
  overflow: hidden;
}

.linea-amarilla {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 4px;
  background-color: #fff062;
}

/* --- FRANJA DE ACCIÓN --- */
.franja-accion {
  background-color: #fff062; /* Inversión: Fondo amarillo */
  color: #000; /* Texto negro */
  text-align: center;
  padding: 60px 20px;
}

.btn-oscuro {
  background-color: #000;
  color: #fff062;
  padding: 15px 30px;
  text-decoration: none;
  font-weight: bold;
  border-radius: 5px;
  display: inline-block;
  margin-top: 20px;
  transition: transform 0.3s ease;
}

.btn-oscuro:hover {
  transform: translateY(-5px); /* Pequeño salto al pasar el mouse */
}

/* --- ESTILOS DEL HEADER (MENÚ) --- */
.header-principal {
  background-color: #000; /* Fondo negro */
  padding: 15px 0;
  border-bottom: 1px solid #222; /* Línea muy sutil para separar */
  position: sticky; /* Para que el menú se quede fijo al bajar */
  top: 0;
  z-index: 1000;
}

.contenedor-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
}

.logo a {
  font-size: 1.8rem;
  font-weight: 700;
  color: #fff;
  text-decoration: none;
  letter-spacing: 2px;
}

.navegacion ul {
  list-style: none;
  display: flex;
  gap: 30px;
  align-items: center;
  margin: 0;
  padding: 0;
}

.navegacion a {
  color: #ccc;
  text-decoration: none;
  font-weight: 600;
  font-size: 0.9rem;
  text-transform: uppercase;
  transition: color 0.3s ease;
}

.navegacion a:hover {
  color: #fff062; /* Se ilumina en amarillo al pasar el mouse */
}

/* Botón especial en el menú */
.btn-menu {
  border: 2px solid #fff062;
  padding: 8px 20px;
  border-radius: 4px;
  color: #fff062 !important;
}

.btn-menu:hover {
  background-color: #fff062;
  color: #000 !important;
}

/* --- ESTILOS DEL FOOTER --- */
.footer-principal {
  background-color: #050505; /* Un negro un pelín más claro que el puro para diferenciar */
  padding: 60px 20px 20px 20px;
  border-top: 4px solid #fff062; /* Remate superior amarillo */
}

.contenedor-footer {
  display: flex;
  justify-content: space-between;
  max-width: 1200px;
  margin: 0 auto;
  gap: 40px;
  flex-wrap: wrap; /* Para que se adapte en celulares */
}

.columna-footer {
  flex: 1;
  min-width: 250px;
}

.columna-footer h3 {
  color: #fff;
  margin-bottom: 20px;
  font-size: 1.2rem;
}

.columna-footer p,
.columna-footer ul {
  color: #999;
  font-size: 0.95rem;
  line-height: 1.6;
}

.columna-footer ul {
  list-style: none;
  padding: 0;
}

.columna-footer ul li {
  margin-bottom: 10px;
}

.columna-footer ul a {
  color: #999;
  text-decoration: none;
  transition: color 0.3s ease;
}

.columna-footer ul a:hover {
  color: #fff062;
  padding-left: 5px; /* Efecto dinámico que mueve el texto un poco a la derecha */
}

.footer-bottom {
  text-align: center;
  padding-top: 30px;
  margin-top: 40px;
  border-top: 1px solid #1a1a1a;
  color: #666;
  font-size: 0.85rem;
}

/* --- ESTILO DEL ICONO HAMBURGUESA (Oculto en PC) --- */
.menu-hamburguesa {
  display: none;
  flex-direction: column;
  cursor: pointer;
  gap: 6px;
  z-index: 1001;
}

.menu-hamburguesa span {
  width: 30px;
  height: 3px;
  background-color: #fff; /* Color blanco para las líneas */
  border-radius: 2px;
  transition: all 0.3s ease;
}

/* =========================================
   DISEÑO RESPONSIVO (Móviles y Tablets)
   ========================================= */

/* Esta regla se aplica a pantallas de 768px de ancho o menos */
@media (max-width: 768px) {
  /* --- CABECERA Y MENÚ --- */
  .contenedor-header {
    display: flex;
    flex-direction: row !important; /* Fuerza a que logo y hamburguesa estén en la misma línea */
    justify-content: space-between; /* Manda el logo a la izquierda y hamburguesa a la derecha */
    align-items: center;
    width: 100%;
    padding: 0 20px;
    box-sizing: border-box;
  }

  .navegacion ul {
    flex-wrap: wrap; /* Permite que los botones del menú pasen a otra línea si no caben */
    justify-content: center;
    gap: 10px;
  }

  .navegacion a {
    font-size: 0.8rem; /* Reducimos un poco el texto del menú */
  }

  /* --- SECCIÓN HERO (Video) --- */
  .hero {
    height: auto; /* Dejamos que la altura se adapte al contenido */
    padding: 80px 20px;
    min-height: 1px;
  }

  .hero h1 {
    font-size: 2.2rem; /* Achicamos el título para que no se salga de la pantalla */
  }

  .hero p {
    font-size: 1.1rem;
  }

  /* --- SECCIÓN SERVICIOS --- */
  .grid-servicios {
    flex-direction: column; /* En lugar de estar uno al lado del otro, se apilan verticalmente */
    align-items: center;
  }

  .card-servicio {
    width: 100%; /* La tarjeta ocupará el ancho disponible de la pantalla */
    max-width: 320px; /* Pero le ponemos un límite para que no se vea deforme en tablets */
  }

  /* --- FOOTER --- */
  .contenedor-footer {
    flex-direction: column; /* Apila las columnas del footer */
    text-align: center; /* Centramos el texto, en móviles se ve mucho más limpio así */
    gap: 30px;
  }

  .columna-footer ul a:hover {
    padding-left: 0; /* En móviles no hay "mouse", así que quitamos el efecto de movimiento lateral para evitar toques raros en la pantalla táctil */
    text-decoration: underline; /* Lo cambiamos por un subrayado clásico */
  }

  /* Mostramos el icono de hamburguesa */
  .menu-hamburguesa {
    display: flex;
  }

  /* Ocultamos el menú principal y lo preparamos para deslizarse */
  .navegacion {
    position: fixed;
    top: 0;
    right: -100%; /* Oculto completamente fuera de la pantalla a la derecha */
    width: 70%; /* Ocupará el 70% de la pantalla del celular */
    max-width: 300px;
    height: 100vh; /* Toda la altura de la pantalla */
    background-color: #050505;
    border-left: 3px solid #fff062; /* Una elegante línea amarilla separadora */
    display: flex;
    flex-direction: column;
    justify-content: center; /* Centramos las opciones verticalmente */
    align-items: center;
    transition: right 0.4s ease-in-out; /* Animación de deslizamiento suave */
    z-index: 1000;
    box-shadow: -5px 0 15px rgba(0, 0, 0, 0.8); /* Sombra para dar profundidad */
  }

  /* Esta es la clase que aplicaremos con JavaScript para abrir el menú */
  .navegacion.activo {
    right: 0;
  }

  /* Acomodamos los enlaces dentro del menú móvil */
  .navegacion ul {
    flex-direction: column;
    gap: 30px;
    text-align: center;
  }

  .navegacion a {
    font-size: 1.2rem;
  }

  /* Animación visual: Convertimos las 3 líneas en una "X" amarilla */
  .menu-hamburguesa.activo span:nth-child(1) {
    transform: translateY(9px) rotate(45deg);
    background-color: #fff062;
  }
  .menu-hamburguesa.activo span:nth-child(2) {
    opacity: 0;
  }
  .menu-hamburguesa.activo span:nth-child(3) {
    transform: translateY(-9px) rotate(-45deg);
    background-color: #fff062;
  }

  /* (Mantén aquí abajo el código del Hero, Servicios y Footer que ya tenías en el @media) */
}
