/* Correcciones compartidas: navegación, lectura y tamaños móviles. */
* { font-family: 'Barlow', Arial, sans-serif; }
html { scroll-padding-top: 100px; }
img { max-width: 100%; height: auto; }
:focus-visible { outline: 3px solid #e2ac46; outline-offset: 5px; }
.contenedor-header { top: 0; }
.contenedor-header header { gap: 16px; }
.contenedor-header header h2 { font-size: clamp(17px, 2.2vw, 24px); }
.nav-responsive { background: transparent; border: 0; color: white; cursor: pointer; padding: 6px; position: relative; z-index: 101; }
.inicio .info { width: min(92%, 1000px); }
.inicio .info h1 { font-size: clamp(2rem, 7vw, 4rem); letter-spacing: 3px; }
.nosotros { background: rgba(0,0,0,.72); }
.nosotros .fila .col { width: 100%; }
.card { display: flex; flex-direction: column; max-width: calc(100% - 20px); }
.card a { margin-top: auto; margin-bottom: 20px; }
.card p { margin-bottom: 20px; }
.card-image { flex-shrink: 0; background-position: center; }
.container-all { display: flow-root; line-height: 1.6; }
.slider { display: block; height: auto; width: 100%; overflow-x: auto; padding: 12px 0 24px; scroll-snap-type: x mandatory; }
.slide-track { width: max-content; animation: none; }
.slide { flex: 0 0 280px; width: 280px; height: auto; padding: 12px; scroll-snap-align: start; }
.slide img { display: block; transform: none; }
footer .info { gap: 24px; flex-wrap: wrap; }
.gallery-title { text-align: center; color: white; padding: 28px 16px; }
.gallery { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; }
.gallery a { margin: 0; min-width: 0; }
.gallery a img { display: block; margin: 0; }
.viewer { border: 0; border-radius: 12px; padding: 16px; margin: auto; background: #151623; color: white; max-width: 96vw; max-height: 95dvh; }
.viewer::backdrop { background: rgba(0,0,0,.85); }
.viewer img { display: block; width: auto; max-width: 88vw; max-height: 72dvh; margin: 12px auto; transform: none; }
.viewer-controls { display: flex; justify-content: center; gap: 12px; }
.viewer button { padding: 10px 16px; cursor: pointer; }
.viewer p { text-align: center; margin: 10px; }
@media(max-width:900px) {
 nav.responsive { top: 100%; height: auto; max-height: calc(100dvh - 80px); overflow-y: auto; padding: 12px; }
 nav.responsive a { font-size: 22px; }
 .container-all { width: calc(100% - 24px); margin: 32px auto; padding: 24px; }
 .container-all img { width: min(300px,100%); }
 footer .info > * { margin-bottom: 16px; }
}
@media(max-width:600px) {
 body { background-attachment: scroll !important; }
 .container-all img { float: none; display: block; margin: 0 auto 24px; }
 .sub-title { font-size: 25px; overflow-wrap: anywhere; }
 .gallery { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; padding: 12px; }
 .inicio { height: 100svh; min-height: 480px; }
 .nosotros .fila .col .contenedor-titulo .info h2, .servicios .fila .col .contenedor-titulo .info h2, .opiniones .contenedor-titulo .info h2 { font-size: 2rem; }
}
@media(prefers-reduced-motion:reduce) {
 html { scroll-behavior: auto; }
 *, *::before, *::after { animation: none !important; transition: none !important; }
}
