/* ==========================================================================
   RESPONSIVE.CSS
   Ajustes de layout para tablet y móvil.
   ========================================================================== */

/* --------------------------------------------------------------------------
   TABLET (<= 1024px)
   -------------------------------------------------------------------------- */
@media (max-width: 1024px) {
  .property-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .footer__grid {
    grid-template-columns: 1fr 1fr;
    row-gap: var(--space-md);
  }

  .contact-details {
    gap: var(--space-md);
  }

  .gallery-grid {
    grid-template-columns: repeat(2, 1fr);
    grid-auto-rows: 140px;
  }

  .gallery-grid__item:nth-child(1) {
    grid-column: span 2;
    grid-row: span 2;
  }

  .gallery-grid__item:nth-child(n+2) {
    grid-column: span 1;
  }
}

/* --------------------------------------------------------------------------
   MÓVIL (<= 800px)
   -------------------------------------------------------------------------- */
@media (max-width: 800px) {
  .header__links,
  .header__nav .btn--ghost {
    position: fixed;
    inset: 0;
    top: 0;
    height: 100svh;
    background: var(--color-ocean-deep);
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: var(--space-md);
    transform: translateX(100%);
    transition: transform 0.4s var(--ease-standard);
  }

  .header__links a {
    color: var(--color-cream);
    font-size: 1.25rem;
  }

  .header.nav-open .header__links {
    transform: translateX(0);
  }

  .header__toggle {
    display: flex;
    z-index: 101;
  }

  .header.nav-open .header__toggle span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
  }
  .header.nav-open .header__toggle span:nth-child(2) {
    opacity: 0;
  }
  .header.nav-open .header__toggle span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
  }

  .hero__content {
    max-width: 100%;
  }

  .hero__scroll-cue {
    display: none;
  }

  .intro,
  .property,
  .property--reverse .property__media {
    grid-template-columns: 1fr;
  }

  .property--reverse .property__media {
    order: 0;
  }

  .property-grid {
    grid-template-columns: 1fr;
  }

  .footer__grid {
    grid-template-columns: 1fr;
  }

  .footer__bottom {
    flex-direction: column;
  }

  .marquee__track {
    animation-duration: 20s;
  }

  .whatsapp-fab {
    right: 1rem;
    bottom: 1rem;
    width: 52px;
    height: 52px;
  }

  .whatsapp-fab__tooltip {
    display: none;
  }

  /* dentro del media query de tablet (max-width: 1024px) */
  .gallery-grid {
    grid-template-columns: repeat(3, 1fr);
  }

  /* dentro del media query de móvil (max-width: 800px) */
  .gallery-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  /* --------------------------------------------------------------------
     Orden específico de Casamare en móvil:
     texto → video → galería → mapa → precio/botón
     -------------------------------------------------------------------- */
  .property {
    display: flex;
    flex-direction: column;
  }

  /* "Desenvuelve" media y copy: sus hijos pasan a ordenarse de forma
     independiente, sin mover nada en el HTML ni afectar el desktop */
  .property__media,
  .property__copy {
    display: contents;
  }

  /* Todo el contenido de texto (menos el precio) va primero */
  .property__copy > * {
    order: 1;
  }

  .property__photo   { order: 2; } /* video/foto */
  .property-gallery  { order: 3; } /* galería */
  .property__map     { order: 4; } /* mapa */

  /* El precio/botón queda al final (gana sobre la regla de arriba
     por tener mayor especificidad) */
  .property__copy > .property__price {
    order: 5;
  }

  /*Mapa ocupa el 100% en móvil*/

  .property__map {
  width: 100%;
  }

}

/* --------------------------------------------------------------------------
   INTRO (se reutiliza el layout split de la sección "Quiénes somos")
   -------------------------------------------------------------------------- */
.intro {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-lg);
  align-items: center;
}

.intro__media {
  aspect-ratio: 4 / 5;
}

.intro__text p {
  margin-top: var(--space-sm);
  max-width: 54ch;
}

.intro__stats {
  margin-top: var(--space-md);
  display: flex;
  gap: var(--space-lg);
  flex-wrap: wrap;
}

.intro__stat strong {
  display: block;
  font-family: var(--font-display);
  font-size: 2.1rem;
  color: var(--color-ocean-deep);
}

.intro__stat span {
  font-size: 0.8rem;
  color: var(--color-ink);
  opacity: 0.7;
}

@media (max-width: 800px) {
  .intro {
    grid-template-columns: 1fr;
  }
}
