/* Variables globales */
:root {
  --bg-primary: #0a0a0a;
  --bg-secondary: #0d1b2a;
  --text-primary: #ffffff;
  --text-secondary: #89c2d9;
  --accent: #00b4d8;
  --gradient-dark: linear-gradient(135deg, #0d1b2a, #0a0a0a);
  --gradient-dark2: linear-gradient(135deg, #0d1b2a, #023e58);
  --gradient-accent: linear-gradient(135deg, #6a0572, #00b4d8);
}

/* Estilos generales */
body {
  font-family: "Poppins", sans-serif;
  background-color: var(--bg-primary);
  color: var(--text-primary);
}

/* Navbar */
.navbar {
  transition: background-color 0.3s ease-in-out;
}

.navbar.transparent {
  background-color: transparent !important;
}

.navbar.solid {
  background-color: var(--bg-primary) !important;
}

.navbar-brand img {
  height: 40px;
}

.nav-link {
  color: white !important;
  transition: color 0.3s ease;
}

.nav-link:hover {
  color: #00b4d8 !important;
}

/* Hero Section */
.hero {
  background-image: url("/assets/img/hero.png");
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  min-height: 100vh;
  display: flex; /* Añadido para centrar contenido */
  align-items: center; /* Centra verticalmente */
  justify-content: center; /* Centra horizontalmente */
  padding: 15rem 0;
  text-align: center;
  color: white;
  position: relative;
}

/* Overlay oscuro para mejorar la legibilidad del texto */
.hero::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.5); /* Ajusta la opacidad según necesites */
  z-index: 1;
}

.hero .container {
  position: relative;
  z-index: 2; /* Asegura que el contenido esté por encima del overlay */
}

.hero h1 {
  font-size: clamp(2rem, 5vw, 3.5rem); /* Tamaño de fuente responsive */
  font-weight: 700;
  margin-bottom: 1.5rem;
  padding: 0 15px;
}

.hero p {
  font-size: clamp(1rem, 2vw, 1.25rem);
  margin-bottom: 2rem;
  max-width: 800px; /* Limita el ancho del texto para mejor legibilidad */
  margin-left: auto;
  margin-right: auto;
}

/* Responsive */
@media (max-width: 768px) {
  .hero {
    padding: 8rem 0; /* Menos padding en móviles */
    background-attachment: scroll; /* Mejor rendimiento en móviles */
  }
}

img {
  margin: 10px; /* Espacio alrededor de la imagen */
  max-width: calc(
    100% - 20px
  ); /* Se ajusta al tamaño de la pantalla menos el margen */
  box-sizing: border-box; /* Incluye el margen en el tamaño total de la imagen */
}

/* Servicios */
.services {
  padding: 5rem 0;
  background-color: var(--bg-primary);
}

.service-card {
  background-color: var(--bg-primary);
  border-radius: 10px;
  padding: 2rem;
  transition: all 0.3s ease;
  height: 100%;
  text-align: center;
}

/* Efecto hover con gradiente */
.service-card:hover {
  transform: scale(1.05);
  background: linear-gradient(135deg, #6a0572, #00b4d8);
  box-shadow: 0 0 20px rgba(0, 180, 216, 0.3);
  color: white; /* Cambia el texto a blanco */
}

/* Asegurarse de que el texto dentro de la tarjeta se vuelva blanco en hover */
.service-card:hover h3,
.service-card:hover p,
.service-card:hover ul li {
  color: white !important; /* Añadido !important para asegurarnos de que se aplique */
}

/* Cambiar color de los íconos */
.service-card:hover i {
  color: white; /* Cambia el color a blanco en el hover */
}

.service-card i {
  font-size: 3rem; /* Tamaño de los íconos */
  color: var(--accent); /* Color inicial */
  margin-bottom: 1.5rem;
}

/* Estilos para la lista */
.service-card ul {
  text-align: left; /* Alinea el texto a la izquierda */
  list-style: none; /* Elimina el estilo de lista predeterminado */
  padding-left: 0; /* Elimina el padding predeterminado */
}

.service-card ul li {
  position: relative;
  padding-left: 1.5rem; /* Espacio para el icono de check */
}

.service-card ul li::before {
  content: "\f00c"; /* Icono de check de Font Awesome */
  font-family: "Font Awesome 5 Free"; /* Asegúrate de que estás usando la fuente de Font Awesome */
  font-weight: 900; /* Peso del icono */
  position: absolute;
  left: 0;
  top: 0;
  color: var(--accent); /* Color del icono */
  font-size: 1rem; /* Tamaño del icono */
}

/* Casos de Éxito */
.success-stories {
  padding: 5rem 0;
  background-color: var(--bg-primary);
}

.success-card {
  background-color: var(--bg-secondary);
  border-radius: 10px;
  padding: 2rem;
  transition: all 0.3s ease;
  height: 100%;
  text-align: center;
}

.success-card img {
  width: 100%;
  height: auto;
  border-radius: 10px;
  margin-bottom: 1rem;
}

.success-card h3 {
  margin-top: 1rem;
  color: var(--accent);
}

.success-card p {
  margin-top: 0.5rem;
}

.success-card a {
  margin-top: 1rem;
  display: inline-block;
}

.success-card:hover {
  transform: scale(1.05);
  box-shadow: 0 0 20px rgba(0, 180, 216, 0.3);
}

/* Estilo para el carrusel */
.carousel-control-prev,
.carousel-control-next {
  filter: invert(
    1
  ); /* Cambia el color de los controles del carrusel a blanco */
}

/* Beneficios */
.benefits {
  padding: 5rem 0;
  background-color: var(--bg-primary);
}

.benefit-card {
  background-color: var(--bg-primary);
  border-radius: 10px;
  padding: 2rem;
  transition: all 0.3s ease;
  text-align: center;
  height: 100%;
}

/* Efecto hover con gradiente */
.benefit-card:hover {
  transform: scale(1.05);
  background: var(--gradient-accent);
  box-shadow: 0 0 20px rgba(0, 180, 216, 0.3);
  color: white;
}

/* Asegurarse de que el texto dentro de la tarjeta se vuelva blanco en hover */
.benefit-card:hover h3,
.benefit-card:hover p {
  color: white !important;
}

/* Cambiar color de los íconos */
.benefit-card i {
  font-size: 3rem; /* Tamaño de los íconos */
  color: var(--accent);
  margin-bottom: 1.5rem;
}

.benefit-card:hover i {
  color: white; /* Cambia el color a blanco en el hover */
}

/* Proceso de Trabajo */
.work-process {
  padding: 5rem 0;
  background-color: var(--bg-primary);
}

.process-step {
  background-color: var(--bg-primary);
  border-radius: 10px;
  padding: 2rem;
  transition: all 0.3s ease;
  text-align: center;
  height: 100%;
}

/* Efecto hover con gradiente */
.process-step:hover {
  transform: scale(1.05);
  background: linear-gradient(135deg, #6a0572, #00b4d8);
  box-shadow: 0 0 20px rgba(0, 180, 216, 0.3);
  color: white;
}

/* Asegurarse de que el texto dentro de la tarjeta se vuelva blanco en hover */
.process-step:hover h3,
.process-step:hover p {
  color: white !important;
}

/* Cambiar color de los íconos */
.process-step i {
  font-size: 3rem; /* Tamaño de los íconos */
  color: var(--accent);
  margin-bottom: 1.5rem;
}

.process-step:hover i {
  color: white; /* Cambia el color a blanco en el hover */
}

/* Testimonios */
.testimonials {
  padding: 5rem 0;
  background-color: var(--bg-primary);
}

.testimonials-carousel {
  display: flex;
  gap: 1rem; /* Reduce el espacio entre los elementos */
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  justify-content: center; /* Centra horizontalmente */
}

.testimonial-item {
  background-color: var(--bg-secondary);
  border-radius: 10px;
  padding: 1.5rem; /* Ajusta el padding para hacerlo más compacto */
  min-width: 250px; /* Reduce el ancho mínimo */
  max-width: 250px; /* Reduce el ancho máximo */
  text-align: center;
  scroll-snap-align: center; /* Centra los elementos en el scroll */
  flex-shrink: 0;
  transition: transform 0.3s ease;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.testimonial-item:hover {
  transform: translateY(-5px); /* Reduce la elevación al pasar el mouse */
}

.testimonial-item p {
  font-size: 1rem; /* Ajusta el tamaño del texto para hacerlo más delicado */
  line-height: 1.5;
  margin-bottom: 1rem;
}

.testimonial-img {
  width: 60px; /* Reduce el tamaño de la imagen */
  height: 60px; /* Reduce el tamaño de la imagen */
  border-radius: 50%;
  margin-bottom: 0.5rem;
}

.testimonial-item h4 {
  font-weight: bold;
  color: var(--accent);
  margin: 0.5rem 0 0.2rem 0;
  font-size: 1.1rem; /* Ajusta el tamaño del texto */
}

.testimonial-item h5 {
  color: var(--text-secondary);
  margin: 0;
  font-size: 0.9rem; /* Ajusta el tamaño del texto */
}

/* Media Queries para móviles */
@media (max-width: 576px) {
  .testimonial-item p {
    font-size: 0.9rem; /* Ajusta el tamaño del texto para móviles */
  }

  .testimonial-item {
    min-width: 100%; /* Asegura que tome el 100% del ancho del contenedor en móviles */
  }
}

/* CTA Section */
.cta {
  background: url("/assets/img/cta.png") no-repeat center;
  background-size: cover;
  padding: 5rem 0;
  text-align: center;
}

.btn-primary {
  background-color: var(--accent);
  border: none;
  padding: 0.8rem 2rem;
  font-weight: 500;
  transition: all 0.3s ease;
}

.btn-primary:hover {
  background-color: #008cb0;
  transform: translateY(-2px);
}

/* Asegurarse de que el texto sea legible sobre la imagen de fondo */
.cta h2,
.cta p {
  color: white;
}

/* Footer */
footer {
  background-color: var(--bg-primary);
  padding: 4rem 0 2rem;
}

.social-icons a {
  color: var(--accent);
  font-size: 1.5rem;
  margin: 0 1rem;
  transition: color 0.3s ease;
}

.social-icons a:hover {
  color: var(--text-secondary);
}

/* Estilos específicos para la página de servicios */
.service-header {
  background: var(--gradient-dark) !important;
  padding: 15rem 0 10rem;
}

.service-detail {
  padding: 5rem 0;
  background: var(--gradient-dark) !important;
}

/* .service-detail:nth-child(even) {
            background-color: var(--bg-primary);
        } */

.service-detail.servicio1 {
  background: var(--gradient-dark2) !important;
}

.service-detail.servicio2 {
  background: var(--gradient-dark);
}

.service-icon {
  font-size: 4rem;
  color: var(--accent);
  margin-bottom: 2rem;
}

.tech-list {
  list-style: none;
  padding: 0;
}

.tech-list li {
  margin-bottom: 1rem;
  color: var(--text-secondary);
}

.tech-list li i {
  color: var(--accent);
  margin-right: 0.5rem;
}

.service-image {
  border-radius: 10px;
  box-shadow: 0 0 20px rgba(0, 180, 216, 0.2);
  max-width: 100%;
  height: auto;
}

/* Estilos específicos para la página de contacto */
.contact-header {
  background: var(--gradient-dark) !important;
  padding: 15rem 0 5rem;
}

.contact-form {
  background-color: var(--bg-secondary);
  padding: 2rem;
  border-radius: 10px;
  box-shadow: 0 0 20px rgba(0, 180, 216, 0.1);
}

.form-control {
  background-color: var(--text-primary);
  border: 1px solid var(--text-secondary);
  color: var(--bg-primary);
  padding: 0.8rem;
  margin-bottom: 1rem;
}

.form-control:focus {
  border-color: var(--accent);
  color: var(--bg-primary);
  box-shadow: 0 0 0 0.2rem rgba(0, 180, 216, 0.25);
}

.contact-info-card {
  background-color: var(--bg-secondary);
  padding: 2rem;
  border-radius: 10px;
  margin-bottom: 2rem;
  transition: transform 0.3s ease;
}

.contact-info-card:hover {
  transform: translateY(-5px);
}

.contact-icon {
  font-size: 2.5rem;
  color: var(--accent);
  margin-bottom: 1rem;
}

.map-container {
  border-radius: 10px;
  overflow: hidden;
  height: 400px;
  background-color: var(--bg-secondary);
}

/* Contenedor de fondo degradado */
.gradient-background-contact {
  background: radial-gradient(
    circle at 10% 20%,
    #523693,
    #0d1b2a,
    #023e58,
    #2a98c2
  );
  background-size: cover;
  color: white;
  padding: 5rem 0;
}

/* Estilos específicos para la página de proyectos */
.projects-header {
  background: linear-gradient(135deg, #6a0572, #00b4d8);
  padding: 6rem 0 3rem;
}

.filter-buttons {
  margin-bottom: 3rem;
}

.filter-btn {
  background: var(--bg-secondary);
  color: var(--text-secondary);
  border: none;
  padding: 0.8rem 1.5rem;
  margin: 0.5rem;
  border-radius: 25px;
  transition: all 0.3s ease;
}

.filter-btn:hover,
.filter-btn.active {
  background: var(--accent);
  color: white;
  transform: translateY(-2px);
}

.project-card {
  background: var(--bg-secondary);
  border-radius: 10px;
  overflow: hidden;
  margin-bottom: 2rem;
  transition: all 0.3s ease;
  position: relative;
}

.project-card:hover {
  transform: translateY(-10px);
  box-shadow: 0 5px 15px rgba(0, 180, 216, 0.3);
}

.project-thumbnail {
  position: relative;
  overflow: hidden;
  padding-top: 66.67%; /* Aspecto 3:2 */
}

.project-thumbnail img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.project-card:hover .project-thumbnail img {
  transform: scale(1.1);
}

.project-info {
  padding: 1.5rem;
}

.project-category {
  color: var(--accent);
  font-size: 0.9rem;
  margin-bottom: 0.5rem;
}

.project-title {
  color: var(--text-primary);
  margin-bottom: 0.5rem;
}

.project-description {
  color: var(--text-secondary);
  font-size: 0.9rem;
  margin-bottom: 1rem;
}

/* Estilos específicos para la página del equipo */
.team-header {
  background: linear-gradient(135deg, #6a0572, #00b4d8);
  padding: 6rem 0 3rem;
}

.team-member-card {
  background: var(--bg-secondary);
  border-radius: 15px;
  overflow: hidden;
  margin-bottom: 2rem;
  transition: all 0.3s ease;
}

.team-member-card:hover {
  transform: translateY(-10px);
  box-shadow: 0 5px 15px rgba(0, 180, 216, 0.3);
}

.member-image {
  position: relative;
  padding-top: 100%; /* Aspecto 1:1 */
  overflow: hidden;
}

.member-image img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.team-member-card:hover .member-image img {
  transform: scale(1.1);
}

.member-info {
  padding: 1.5rem;
  text-align: center;
}

.member-name {
  color: var(--text-primary);
  margin-bottom: 0.5rem;
  font-weight: 600;
}

.member-position {
  color: var(--accent);
  font-size: 0.9rem;
  margin-bottom: 1rem;
}

.member-description {
  color: var(--text-secondary);
  font-size: 0.9rem;
  margin-bottom: 1.5rem;
}

.member-social {
  margin-top: 1rem;
}

.member-social a {
  color: var(--text-secondary);
  margin: 0 0.5rem;
  font-size: 1.2rem;
  transition: color 0.3s ease;
}

.member-social a:hover {
  color: var(--accent);
}

.department-title {
  color: var(--text-primary);
  margin: 3rem 0 2rem;
  text-align: center;
  position: relative;
}

.department-title::after {
  content: "";
  display: block;
  width: 50px;
  height: 3px;
  background: var(--accent);
  margin: 1rem auto 0;
}

/*estilo paa las cookies*/

.cookie-container {
  position: fixed;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  background-color: rgba(0, 0, 0, 0.8);
  color: white;
  padding: 15px;
  border-radius: 10px;
  display: none;
}

.cookie-container p {
  margin: 0;
  display: inline;
}

.cookie-container a {
  color: #ffd700;
  text-decoration: underline;
}

#messageModalBody {
  padding: 20px;
  border-radius: 5px;
  margin: 10px;
}
.alert-success {
  background: #d4edda;
  color: #155724;
  border: 1px solid #c3e6cb;
}
.alert-danger {
  background: #f8d7da;
  color: #721c24;
  border: 1px solid #f5c6cb;
}

/* Estilos para el modal */
.modal-dialog-centered {
  display: flex;
  align-items: center;
  min-height: calc(100% - 1rem);
}

/* Estilos para el contenido del modal */
.modal-content {
  border-radius: 10px;
  border: none;
  box-shadow: 0 2px 15px rgba(0, 0, 0, 0.1);
}

/* Estilos para los mensajes */
#messageModalBody {
  border: none;
  padding: 2rem;
  border-radius: 8px;
}

#messageModalBody.alert-success {
  background-color: #d4edda;
  color: #155724;
}

#messageModalBody.alert-danger {
  background-color: #f8d7da;
  color: #721c24;
}

/* Estilos para los íconos */
.icon-container {
  margin-bottom: 1.5rem;
}

.icon-container i {
  font-size: 3rem;
}

/* Estilos para el botón de cerrar */
.modal .btn-secondary {
  padding: 0.5rem 2rem;
  border-radius: 5px;
  background-color: #6c757d;
  border: none;
  transition: all 0.3s ease;
}

.modal .btn-secondary:hover {
  background-color: #5a6268;
  transform: translateY(-1px);
}

/* Animación para el modal */
.modal.fade .modal-dialog {
  transform: scale(0.8);
  transition: transform 0.3s ease-in-out;
}

.modal.show .modal-dialog {
  transform: scale(1);
}

/* Mejora para lectores de pantalla */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}

/* Contenedor de fondo degradado */
.gradient-background {
  background: radial-gradient(
    circle at 10% 20%,
    #000000,
    #0d1b2a,
    #0a0a0a,
    #023e58
  );
  background-size: cover;
  color: white;
  padding: 5rem 0;
}

/* Asegurarse de que el contenido dentro de las secciones tenga un fondo transparente */
.services,
.benefits,
.work-process,
.testimonials {
  background: transparent;
  padding-top: 4rem; /* Ajusta según tu diseño */
  padding-bottom: 4rem; /* Ajusta según tu diseño */
}

/* Ajustar la sección de servicios para que tenga más espacio superior */
.services {
  padding-top: 6rem; /* Ajusta según tu diseño */
}

/* Otros estilos */
.container {
  padding-left: 2rem;
  padding-right: 2rem;
}

/* Asegurarse de que el texto dentro de las secciones sea legible */
.services h2,
.benefits h2,
.work-process h2,
.testimonials h2 {
  color: var(--text-primary);
}
