/* Estilos Generales */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  font-family: 'Arial', sans-serif;
}

body {
  background-color: #101010;
  color: #fff;
  font-size: 16px;
  line-height: 1.5;
  animation: fadeIn 1s ease-in-out;
}

/* Header */
header {
  background-color: rgba(18, 18, 18, 0.5); /* Fondo semitransparente */
  position: sticky; /* Hace el header pegajoso */
  top: 0; /* Fija el header en la parte superior */
  z-index: 1000; /* Asegura que el header esté encima de otros elementos */
  padding: 20px 0;
  animation: fadeIn 1s ease-in-out;
}

.header-container {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 20px;
}

.logo {
  width: 100px;
  height: auto;
  margin-left: 3rem;
}

.navbar {
  flex-grow: 1;
  display: flex;
  justify-content: center;
  justify-content: right;
  margin-right: 5em;
}

.navbar-menu {
  list-style: none;
  display: flex;
  gap: 20px;
  margin-left: 52px;
}

.navbar-menu li {
  position: relative;
}

.navbar-menu a {
  color: #fff;
  text-decoration: none;
  font-size: 15px;
  text-transform: uppercase;
  transition: color 0.3s;
  font-family: 'orbitron', sans-serif;
  letter-spacing: 1px;
}

.navbar-menu a:hover {
  color: #FFD700;
}

.navbar-search {
  position: relative;
  margin-right: 3rem;
}

.navbar-search input {
  padding: 8px 30px;
  border-radius: 25px;
  border: 1px solid #7d7d7d;
  width: 250px;
  background-color: transparent;
  color: #cfcfcf;
  text-align: left;
  font-size: 16px;
}

.navbar-search button {
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  background-color: transparent; /* Fondo transparente */
  border: none;
  cursor: pointer;
}

.navbar-search button i {
  font-size: 14px;
  color: #ffffffab; /* Color blanco para el icono */
}

/* Menú de Hamburguesa */
.hamburger-menu {
  display: none;
  cursor: pointer;
}

.hamburger-menu i {
  font-size: 30px;
  color: #fff;
}

/* Menú Móvil */
.mobile-nav {
  display: none;
  background-color: #121212;
  position: absolute;
  top: 60px;
  left: 0;
  width: 100%;
  padding: 20px;
  z-index: 10;
}

.mobile-nav ul {
  list-style: none;
  text-align: center;
}

.mobile-nav li {
  margin: 15px 0;
}

.mobile-nav a {
  color: #fff;
  text-decoration: none;
  font-size: 20px;
  transition: color 0.3s;
}

.mobile-nav a:hover {
  color: #FFD700;
}

.mobile-nav .search-item {
  margin-top: 20px;
}

.mobile-nav .search-item input {
  width: 80%;
  padding: 8px;
  border-radius: 25px;
  border: 2px solid #fff; /* Borde blanco */
  margin-bottom: 10px;
  text-align: center;
  background-color: transparent; /* Fondo transparente */
  color: #fff;
}

.mobile-nav .search-item button {
  background-color: transparent;
  border: none;
  cursor: pointer;
}

.mobile-nav .search-item button i {
  color: #fff; /* Color blanco para el icono */
}

/* Sección de información */
.info-section {
  display: grid;
  grid-template-columns: 1fr 1fr; /* Dos columnas iguales */
  gap: 20px; /* Espacio entre columnas */
  align-items: center; /* Centra los elementos verticalmente */
  animation: fadeInUp 1s ease-out;
}

@media (max-width: 768px) {
  .info-section {
    grid-template-columns: 1fr; /* En pantallas pequeñas, las columnas se apilan */
  }

  .section-title {
    font-size: 1.5rem; /* Reducir tamaño de título en pantallas pequeñas */
  }

  .section-description {
    font-size: 1rem; /* Reducir tamaño de texto */
  }
}

/* Estilos para la columna de imagen */
.section-image {
  display: flex;
  justify-content: center;
  align-items: center;
}

.section-image img {
  width: 100%; /* Imagen ocupa todo el ancho */
  height: auto; /* Mantiene proporción */
  object-fit: cover; /* Ajusta el tamaño sin distorsionar */
  animation: fadeIn 1.5s ease-in-out;
}

/* Estilos para la columna de texto */
.section-text {
  display: flex;
  flex-direction: column;
  justify-content: center; /* Centra verticalmente el texto */
  margin-left: 2rem;
  margin-right: 2rem;
}

.section-title {
  font-size: 2rem; /* Tamaño grande para el título */
  margin-bottom: 20px; /* Separación debajo del título */
  animation: slideInLeft 1s ease-out;
  margin-top: 1rem;
}

.section-description {
  font-size: 1rem; /* Tamaño de fuente para el texto */
  line-height: 1.5; /* Espaciado entre líneas */
  animation: fadeInUp 1.5s ease-out;
  margin-bottom: 1rem;
  text-align: justify;
}

/* Fondo de cada sección */
.white-bg {
  background-color: #ffffff;
  color: #000;
}

.black-bg {
  background-color: #000000;
  color: #ffffff;
}

/* Agregar clase para animación cuando la sección es visible */
.animate-on-scroll {
  opacity: 0;
  transform: translateY(50px);
  transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

/* Clase activa cuando la animación debe ejecutarse */
.animate-visible {
  opacity: 1;
  transform: translateY(0);
}


/* Footer */
footer {
  background-color: #121212;
  padding: 40px 20px;
  animation: fadeIn 1.5s ease-out;
}

.footer-content {
  display: flex;
  flex-direction: column; /* Siempre en columnas */
  align-items: center;
  gap: 30px; /* Espaciado entre los bloques */
}

.footer-logo img {
  width: 120px;
}

.footer-separator {
  width: 50%;
  height: 1px;
  background-color: #fff;
  opacity: 0.2;
}

.footer-menu ul {
  list-style: none;
  display: flex;
  flex-direction: row; /* Menú en columnas */
  align-items: center;
  gap: 10px;
}

.footer-menu a {
  color: #fff;
  text-decoration: none;
  font-size: 16px;
  transition: color 0.3s;
}

.footer-menu a:hover {
  color: #FFD700;
}

.footer-social {
  display: flex;
  flex-direction: row; /* Redes sociales en columnas */
  align-items: center;
  gap: 10px;
}

.footer-social a {
  color: #fff;
  font-size: 18px;
  text-decoration: none;
  transition: color 0.3s;
}

.footer-social a i {
  margin-right: 10px; /* Espacio entre el icono y el texto */
}

.footer-social a:hover {
  color: #FFD700;
}

.footer-contacts {
  display: flex;
  flex-direction: column; /* Contactos en columnas */
  align-items: center;
  gap: 10px;
}

.contact-icon {
  color: #fff;
  text-decoration: none;
  font-size: 18px;
  transition: color 0.3s;
}

.contact-icon i {
  margin-right: 10px;
}

.contact-icon:hover {
  color: #FFD700;
}

.footer-bottom {
  text-align: center;
  color: #fff;
}

/* Ajustes para pantallas pequeñas */
@media (max-width: 480px) {
  .footer-logo img {
    width: 100px; /* Reducir tamaño del logo */
  }

  .footer-menu ul{
    margin-top: -23px;
  }

  .footer-menu a {
    font-size: 14px; /* Reducir tamaño de fuente */
  }

  .footer-social a {
    font-size: 14px; /* Reducir tamaño de fuente */
  }

  .contact-icon {
    font-size: 16px; /* Reducir tamaño de fuente */
  }

  .footer-separator {
    width: 90%; /* Ajustar separadores en pantallas pequeñas */
  }
}

/* Media Queries */
@media (max-width: 768px) {
  .navbar-menu {
    display: none;
  }

  .navbar-search {
    display: none; /* Ocultamos el buscador en pantallas pequeñas */
  }

  .hamburger-menu {
    display: block;
  }

  .mobile-nav.show {
    display: block;
  }

  .footer-content {
    flex-direction: column;
    align-items: center;
  }

  .footer-menu {
    margin-top: 20px;
  }
}


/* Animaciones */
@keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

@keyframes fadeInUp {
  0% {
    opacity: 0;
    transform: translateY(20px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes slideInLeft {
  0% {
    opacity: 0;
    transform: translateX(-20px);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes fadeOut {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}

@keyframes fadeInRight {
  0% {
    opacity: 0;
    transform: translateX(20px);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}

@media (max-width: 768px) {
  #vision .section-text {
    order: 1; /* Asegura que el texto sigue apareciendo primero en pantallas pequeñas */
  }

  #vision .section-image {
    order: 2; /* La imagen aparecerá después del texto en pantallas pequeñas */
    width: 100%; /* Hacemos que la imagen ocupe el 100% del ancho en móviles */
    margin-top: 20px; /* Añadimos un margen para separarlo del texto */
  }
}
