html {
  scroll-behavior: smooth;
}
body {
  font-family: 'DM Sans', sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
img {
  max-width: 100%;
  height: auto;
}
#mobile-menu {
  transition: opacity 0.2s ease;
}
input:focus,
textarea:focus,
select:focus {
  outline: none;
  border-color: #1B4F8F;
}
.no-scrollbar::-webkit-scrollbar {
  display: none;
}
.no-scrollbar {
  -ms-overflow-style: none;
  scrollbar-width: none;
}
.project-card img {
  transition: transform .45s ease, filter .45s ease;
}
.project-card:hover img {
  transform: scale(1.05);
  filter: saturate(1.04) contrast(1.03);
}
.map-embed iframe {
  width: 100%;
  height: 100%;
  border: 0;
}

/* Ajuste visual: sección Nosotros con paleta técnica oscura, coherente con Trayectoria */
#nosotros {
  background: #1F2937 !important;
}
#nosotros .text-charcoal {
  color: #ffffff !important;
}
#nosotros .text-tech-gray {
  color: rgba(255, 255, 255, 0.64) !important;
}
#nosotros .text-tech-gray-light {
  color: rgba(255, 255, 255, 0.48) !important;
}
#nosotros .border-neutral-200 {
  border-color: rgba(255, 255, 255, 0.12) !important;
}
#nosotros .group {
  background: rgba(255, 255, 255, 0.025);
}
#nosotros .group:hover {
  border-color: rgba(27, 79, 143, 0.7) !important;
}

/* Servicios: separadores limpios.
   Cada bloque conserva una línea superior; solo la última fila recibe línea inferior
   para cerrar la grilla sin generar líneas duplicadas entre filas. */
#servicios .grid > .group {
  position: relative;
  border-top-color: rgba(31, 41, 55, 0.58) !important;
  border-bottom: 0 !important;
  padding-bottom: 2rem !important;
  transition: border-color .3s ease;
}
#servicios .grid > .group span.text-tech-gray-light {
  color: rgba(31, 41, 55, 0.58) !important;
  transition: color .3s ease;
}
#servicios .grid > .group:hover {
  border-top-color: #1B4F8F !important;
}
#servicios .grid > .group:hover span.text-tech-gray-light {
  color: #1B4F8F !important;
}
#servicios .grid > .group::after {
  display: none;
}
@media (min-width: 1024px) {
  #servicios .grid > .group:nth-last-child(-n+3)::after {
    content: "";
    display: block;
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 1px;
    background: rgba(31, 41, 55, 0.58);
    transition: background-color .3s ease;
  }
  #servicios .grid > .group:nth-last-child(-n+3):hover::after {
    background: #1B4F8F;
  }
}
@media (max-width: 1023px) {
  #servicios .grid > .group:last-child::after {
    content: "";
    display: block;
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 1px;
    background: rgba(31, 41, 55, 0.58);
    transition: background-color .3s ease;
  }
  #servicios .grid > .group:last-child:hover::after {
    background: #1B4F8F;
  }
}

/* Enlaces de experiencia/galería */
.experience-link {
  text-decoration: none;
}
.experience-link:hover {
  transform: translateY(-2px);
}
.project-card {
  text-decoration: none;
}

/* Páginas internas preparadas */
.gallery-slot {
  min-height: 180px;
}




