/* ── 22b. iPad landscape ≥1025px (touch, sin ratón) ── */
@media (min-width: 1025px) and (hover: none) {
  .hero {
    align-items: flex-start;
    padding-top: calc(var(--nav-h) + 24px);
    padding-bottom: 60px;
  }
}

/* ── 23. Responsive TABLET ≤1024px ── */
@media (max-width: 1024px) {
  .nav { padding: 0 32px; }
  .hero {
    align-items: flex-start;
    padding-top: calc(var(--nav-h) + 24px);
    padding-bottom: 60px;
  }
  .hero__image-side { width: 55%; }
  .hero__stats { right: 28px; gap: 20px; }
  .hero__content { padding: 0 32px; max-width: 560px; }
  .services-grid { grid-template-columns: repeat(2, 1fr); }
  .portfolio-mosaic { grid-template-columns: 1fr 1fr; grid-template-rows: repeat(3, 240px); }
  .portfolio-mosaic .mosaic-item:first-child { grid-row: auto; }
  .about-strip__content { padding: 56px 40px; }
  .manifesto__inner { grid-template-columns: 1fr; }
  .manifesto__image { display: none; }
  .historia__inner { grid-template-columns: 1fr; }
  .historia__image { display: none; }
  .values-grid { grid-template-columns: repeat(2, 1fr); }
  .garantias-grid { grid-template-columns: repeat(2, 1fr); }
  .garantias-grid + .garantias-grid { grid-template-columns: 1fr; max-width: calc((100% + 3px) / 2 - 1.5px); }
  .garantias-section { padding: 72px 32px; }
  .footer { padding: 52px 32px 24px; }
  .footer__top { grid-template-columns: 1fr 1fr; gap: 32px; }
  .services-detailed { padding: 72px 32px; }
  .service-row__content { padding: 36px 36px; }
  .projects-gallery { padding: 56px 32px 72px; }
  .masonry-grid { columns: 2; }
  .contact-info, .contact-form-side { padding: 60px 40px; }
  .page-hero { padding: 130px 32px 72px; }
  .cta-section { padding: 80px 32px; }
  .cookie-banner { padding: 20px 32px; }
  .reviews-section { padding: 80px 32px; }
}

/* ── 23b. Tablet PORTRAIT — sin animación de canvas ── */
@media (min-width: 769px) and (max-width: 1024px) and (orientation: portrait) {
  .hero-pin { height: auto; }
  .hero {
    position: relative;
    background: linear-gradient(135deg, #000000 0%, #06060a 100%);
  }
  .hero__image-side { display: none; }
  .hero__ring     { display: none; }
  .hero__stats    { display: none; }
}

/* ── 24. Responsive MOBILE ≤768px ── */
@media (max-width: 768px) {
  .nav { padding: 0 20px; }
  .nav__links { display: none; }
  .nav__hamburger { display: flex; }
  .nav__logo .logo-img   { height: 28px; }
  .footer__logo .logo-img { height: 26px; }

  .hero-pin { height: auto; }
  .hero {
    position: relative;
    padding-bottom: 60px;
    align-items: center;
    height: 100svh;
    background: linear-gradient(135deg, #000000 0%, #06060a 100%);
  }
  .hero__content { padding: 0 20px; max-width: 100%; }
  .hero__image-side { display: none; }
  .hero__stats { display: none; }
  .hero__ring { display: none; }
  .nav {
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    background: rgba(13,13,13,1);
  }
  .nav__mobile {
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    background: rgba(13,13,13,0.99);
  }
  .hero__title { font-size: clamp(42px, 11vw, 64px); }
  .hero__actions { flex-direction: column; align-items: stretch; }
  .hero__actions .btn { text-align: center; justify-content: center; }

  .services-strip, .portfolio-section, .reviews-section { padding: 56px 20px; }
  .services-strip__header { flex-direction: column; gap: 10px; }
  .services-grid { grid-template-columns: 1fr; }

  .portfolio-section__header { flex-direction: column; align-items: flex-start; }
  .portfolio-mosaic { grid-template-columns: 1fr; grid-template-rows: none; }
  .portfolio-mosaic .mosaic-item { height: 220px; }

  .about-strip { grid-template-columns: 1fr; }
  .about-strip__visual { min-height: 260px; }
  .about-strip__content { padding: 48px 20px; }

  .cta-section { flex-direction: column; align-items: flex-start; padding: 64px 20px; }
  .cta-section__action { align-items: flex-start; }
  .cta-section__action .btn { width: 100%; text-align: center; }

  .footer { padding: 48px 20px 24px; }
  .footer__top { grid-template-columns: 1fr 1fr; gap: 28px 24px; }
  .footer__brand { grid-column: 1 / -1; }
  .footer__col:last-child { grid-column: 1 / -1; }
  .footer__bottom { flex-direction: column; text-align: center; gap: 10px; }
  .footer__legal { justify-content: center; }
  .page-hero { padding: 110px 20px 52px; }

  .services-detailed { padding: 48px 20px; }
  .service-row { grid-template-columns: 1fr; direction: ltr !important; }
  .service-row__visual { min-height: 180px; }
  .service-row__content { padding: 28px 24px; }

  .projects-gallery { padding: 48px 20px 64px; }
  .masonry-grid { columns: 2; }

  .values-grid { grid-template-columns: 1fr 1fr; }
  .garantias-grid { grid-template-columns: 1fr; }
  .garantias-grid + .garantias-grid { grid-template-columns: 1fr; max-width: 100%; }
  .garantias-section { padding: 60px 20px; }
  .historia { padding: 72px 20px 60px; }

  .contact-layout { grid-template-columns: 1fr; min-height: auto; }
  .contact-info, .contact-form-side { padding: 52px 20px; }
  .form-row { grid-template-columns: 1fr; }

  .legal-page { padding: 110px 20px 60px; }

  .cookie-banner {
    padding: 16px 20px;
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
  }
  .cookie-banner p { max-width: 100%; }
  .cookie-banner__actions { justify-content: flex-end; }

  .whatsapp-float { bottom: 18px; right: 18px; width: 52px; height: 52px; }

}

/* ── 25. Mobile small ≤480px ── */
@media (max-width: 480px) {
  .masonry-grid { columns: 1; }
  .values-grid { grid-template-columns: 1fr; }
  .garantias-grid, .garantias-grid + .garantias-grid { grid-template-columns: 1fr; max-width: 100%; }
  .hero__title { font-size: clamp(38px, 12vw, 56px); }
  .footer__legal { flex-direction: row; flex-wrap: wrap; justify-content: center; gap: 14px; }
  .footer__social { justify-content: flex-start; }
  .rv-card { flex: 0 0 260px; }
  .cookie-banner__actions { flex-direction: column; align-items: stretch; }
  .cookie-banner__actions .cookie-btn { text-align: center; }
}

/* ── 25b. Mobile landscape ── */
@media (orientation: landscape) and (max-height: 500px) {
  .hero-pin { height: auto; }
  .hero {
    height: auto;
    min-height: 100svh;
    padding-top: calc(var(--nav-h) + 8px);
    padding-bottom: 24px;
    align-items: center;
  }
  .hero__eyebrow { margin-bottom: 10px; font-size: 9px; }
  .hero__title {
    font-size: clamp(28px, 5vh, 38px);
    margin-bottom: 12px;
    line-height: 1;
  }
  .hero__subtitle {
    font-size: 13px;
    line-height: 1.5;
    margin-bottom: 16px;
    max-width: 100%;
  }
  .hero__actions {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 10px;
  }
  .hero__actions .btn {
    flex: 1 1 auto;
    min-width: 140px;
  }
}

/* ── 26. Accesibilidad — movimiento reducido ── */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
  .hero__image-side,
  .hero__ring,
  .whatsapp-float::before,
  .carousel-track {
    animation: none !important;
  }
  .hero__image-side video {
    animation: none !important;
    transform: none !important;
  }
  /* Mostrar elementos de reveal inmediatamente */
  .reveal,
  .reveal-left,
  .reveal-right,
  .reveal-scale {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

/* ── 27. Focus visible — accesibilidad teclado ── */
:focus-visible {
  outline: 2px solid var(--teal);
  outline-offset: 3px;
  border-radius: 2px;
}

/* Skip link para teclado */
.skip-link {
  position: fixed;
  top: -100%;
  left: 16px;
  z-index: 9999;
  background: var(--teal);
  color: var(--white);
  padding: 8px 16px;
  font-size: 13px;
  font-weight: 600;
  border-radius: 0 0 4px 4px;
  transition: top .2s ease;
  text-decoration: none;
}
.skip-link:focus { top: 0; }
