/* ==========================================================================
   Grupo Galicia | Diseño responsive
   Puntos de control: 1440 / 1200 / 992 / 768 / 576 / 390
   ========================================================================== */

@media (min-width: 1440px) {
  :root { --container: 1320px; }
}

@media (max-width: 1200px) {
  .nav-list { gap: .75rem; }
  .nav-link { font-size: .86rem; }
  .brand-plate img { width: 190px; }
  .attr-grid { grid-template-columns: repeat(2, 1fr); }
  .why-grid { grid-template-columns: repeat(2, 1fr); }
  .why-connector { display: none; }
  .why-node { display: none; }
  .why-grid { padding-top: 0; }
}

@media (max-width: 1100px) {
  .site-nav { display: none; }
  .nav-toggle { display: grid; }
  .header-cta { display: none; }
}

@media (max-width: 991px) {
  .hero { min-height: 100svh; }
  .hero-inner { grid-template-columns: 1fr; align-items: start; }
  .hero-spec { border-left: 0; padding-left: 0; padding-top: 1.5rem; border-top: 1px solid var(--brand-border); }
  .hero-spec-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hero-foot-inner { grid-template-columns: auto 1fr; }
  .hero-coord { display: none; }
  .stats-grid { grid-template-columns: repeat(2, 1fr); }
  .stat:nth-child(3) { border-left: 0; padding-left: 0; }
  .stat:nth-child(n+3) { border-top: 1px solid var(--brand-border); }
  .about-grid { grid-template-columns: 1fr; }
  .about-media { order: -1; }
  .media-mask-picture img { aspect-ratio: 16 / 10; }
  .services-layout { grid-template-columns: 1fr; }
  .services-visual { display: none; }
  .service-mobile-media { display: block; border-radius: var(--radius); overflow: hidden; }
  .service-mobile-media img { aspect-ratio: 16 / 9; object-fit: cover; width: 100%; }
  .service { padding-block: .35rem; }
  .service-toggle { padding-block: 1.1rem; cursor: pointer; }
  .service-body { grid-template-rows: 0fr; transition: grid-template-rows .5s var(--ease-out); }
  .service-body.is-open { grid-template-rows: 1fr; }
  .no-js .service-body { grid-template-rows: 1fr; }
  .service-body-inner { padding-left: 0; padding-bottom: 1.5rem; padding-top: 0; }
  .service-body.is-open .service-body-inner { padding-top: .5rem; }
  .method-layout { grid-template-columns: 1fr; }
  .method-visual { display: none; }
  .stage-mobile-media { display: block; border-radius: var(--radius); overflow: hidden; }
  .stage-mobile-media img { aspect-ratio: 16 / 9; object-fit: cover; width: 100%; }
  .contact-layout { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-brand { grid-column: 1 / -1; }
  .projects-swiper { padding-inline: var(--gutter); }
}

@media (min-width: 992px) {
  .service-toggle { cursor: default; }
  .service-chevron { display: none; }
  .service-toggle[aria-expanded="false"] .service-title { color: var(--text-muted); }
  .service.is-current .service-title, .service:hover .service-title { color: #fff; }
  .service-title { transition: color var(--dur-fast); }
}

@media (max-width: 767px) {
  .section-head--row { grid-template-columns: 1fr; }
  .hero-inner { padding-top: 2rem; }
  .hero-title { font-size: clamp(2.2rem, 10.5vw, 3.4rem); }
  .hero-actions .btn { width: 100%; }
  .attr-grid { grid-template-columns: 1fr; }
  .service-list { grid-template-columns: 1fr; }
  .why-grid { grid-template-columns: 1fr; }
  .cta-actions .btn { width: 100%; }
  .form-grid { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr; }
  .footer-bottom { flex-direction: column; }
  .brand-plate img { width: 150px; }
  .wa-panel { width: min(360px, calc(100vw - 2rem)); }
  .timeline { padding-left: 3.4rem; }
  .stage-node { left: -3.4rem; width: 2.4rem; height: 2.4rem; }
  .timeline-track { left: 1.2rem; }
  .testimonial { padding: 1.5rem; }
  .contact-card { grid-template-columns: 1fr; }
  .contact-avatar { display: none; }
}

@media (max-width: 576px) {
  :root { --gutter: 1.1rem; }
  .hero-spec-list { grid-template-columns: 1fr; }
  .stats-grid { grid-template-columns: 1fr; }
  .stat { border-left: 0; padding-left: 0; border-top: 1px solid var(--brand-border); padding-block: 1.2rem; }
  .stat:first-child { border-top: 0; }
  .stat::before { display: none; }
  .project-card { width: min(340px, 84vw); }
  .filters { gap: .4rem; }
  .filter { padding: .5rem .8rem; }
  .nav-panel-link { font-size: clamp(1.7rem, 8vw, 2.2rem); }
  .services-caption-index { font-size: 2.4rem; }
}

@media (max-width: 390px) {
  .hero-title { font-size: 2.1rem; }
  .btn-lg { min-height: 52px; font-size: 1rem; padding-inline: 1.3rem; }
  .brand-plate img { width: 136px; }
  .wa { right: .9rem; bottom: max(.9rem, env(safe-area-inset-bottom)); }
  .wa-fab { width: 54px; height: 54px; }
}

/* Orientación horizontal en teléfonos */
@media (max-height: 520px) and (orientation: landscape) {
  .hero { min-height: auto; }
  .hero-inner { padding-block: 2.5rem 1.5rem; }
  .services-visual, .method-visual { display: none; }
  .services-layout, .method-layout { grid-template-columns: 1fr; }
  .service-mobile-media, .stage-mobile-media { display: block; }
}

/* Sin hover: desactivar efectos de cursor */
@media (hover: none) {
  .project-card:hover { transform: none; }
  .projects-swiper .swiper-wrapper:has(.project-card:hover) .project-card:not(:hover) { opacity: 1; }
  .project-zoom { opacity: 1; transform: none; }
  .btn-primary:hover, .btn-ghost:hover, .btn-whatsapp:hover, .why-block:hover, .contact-card:hover { transform: none; }
}

/* Evitar desbordamiento horizontal en cualquier caso */
html, body { max-width: 100%; }
.hero, .why, .cta, .projects { max-width: 100vw; }

/* ===== Multipágina: tarjetas, páginas de servicio, proyectos, contacto ===== */
@media (max-width: 1200px) {
  .capability-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-brand { grid-column: 1 / -1; }
}
@media (max-width: 991px) {
  .service-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .service-card--wide, .service-card:last-child { grid-column: span 2; }
  .service-detail-grid { grid-template-columns: 1fr; }
  .service-detail-aside { position: static; }
  .steps { grid-template-columns: 1fr; }
  .other-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .projects-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .page-hero--image { min-height: 64svh; }
  .services-overview .service-mobile-media { display: block; border-radius: var(--radius); overflow: hidden; }
  .services-overview .service-mobile-media img { aspect-ratio: 16 / 9; object-fit: cover; width: 100%; }
}
@media (max-width: 767px) {
  .service-cards { grid-template-columns: 1fr; gap: 1rem; }
  .service-card--wide, .service-card:last-child { grid-column: auto; }
  .service-card--wide .service-card-media { aspect-ratio: 16 / 10; }
  .service-card-body { padding: 1.1rem 1.15rem 1.25rem; }
  .capability-grid { grid-template-columns: 1fr; }
  .capability { padding: 1rem 1.1rem; }
  .other-list { grid-template-columns: 1fr; }
  .projects-grid { grid-template-columns: 1fr; }
  .service-facts { grid-template-columns: repeat(3, 1fr); }
  .service-fact { padding: .9rem .7rem; }
  .service-fact-value { font-size: 1.8rem; }
  .page-hero--image { min-height: 58svh; }
  .page-title { font-size: clamp(2rem, 9vw, 3rem); }
  .page-actions .btn { width: 100%; }
  .service-pager { flex-direction: column; }
  .service-pager-link--next { text-align: left; flex-direction: row-reverse; justify-content: flex-end; }
  .footer-grid { grid-template-columns: 1fr; }
  .footer-logo img { width: 200px; }
  .contact-card .btn-whatsapp { width: 100%; }
  .nav-panel-services { grid-template-columns: 1fr; }
  .projects-foot .btn { width: 100%; }
}
@media (max-width: 576px) {
  .services-overview .service-list { grid-template-columns: 1fr; }
  .services-overview .service-actions .btn-primary { width: 100%; }
  .service-facts { grid-template-columns: 1fr 1fr 1fr; }
  .brand img { width: 160px; }
}
@media (max-width: 390px) {
  .brand img { width: 148px; }
  .service-fact-value { font-size: 1.5rem; }
}
@media (hover: none) {
  .service-card-link:hover, .other-link:hover, .step:hover { transform: none; }
}

@media (max-width: 991px) { .projects-strip { padding-inline: var(--gutter); } }
@media (max-width: 767px) { .projects-strip .swiper-slide.project-tile { width: min(300px, 64vw); } .project-tile .project-zoom { opacity: 1; } }
@media (max-width: 576px) { .projects-swiper:not(.swiper-initialized) .swiper-wrapper { grid-template-columns: 1fr 1fr; } }
@media (max-width: 991px) {
  .post-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .post-layout { grid-template-columns: 1fr; }
  .post-aside { position: static; }
  .zones-grid { grid-template-columns: 1fr; }
}
@media (max-width: 767px) {
  .post-grid { grid-template-columns: 1fr; }
  .post-cover .media-mask img { aspect-ratio: 16 / 10; }
  .prose { font-size: 1.02rem; }
  .pagination { flex-wrap: wrap; }
  .faq-item summary { padding: 1rem 1.1rem; }
}
@media (max-width: 576px) { .zones-list { grid-template-columns: 1fr; } }
