/* ==========================================================================
   Vistaar Homes — Page specifics, hover states, accessibility & print
   1. Home   2. Pages with a solid header   3. Legal   4. 404
   5. Hover (mouse only)   6. Reduced motion   7. Print
   ========================================================================== */

/* ---------- 1. Home ---------- */

/* Video row: swipe sideways on phones, grid from tablet up */
@media (max-width: 575.98px) {
  .video-row {
    flex-wrap: nowrap;
    margin-right: calc(var(--bs-gutter-x) * -0.5);
    padding-bottom: 0.5rem;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .video-row__item {
    scroll-snap-align: start;
  }
}

/* ---------- 2. Pages with a solid header (no hero) ---------- */
.main--offset {
  padding-top: var(--nav-height);
}

.page-contact .contact {
  padding-top: 2rem;
}

/* ---------- 3. Legal pages ---------- */
.legal__header {
  max-width: 760px;
  margin: 2rem 0 2.5rem;
  padding-bottom: 2rem;
  border-bottom: var(--rule);
}

.legal__updated {
  margin: 0;
  color: var(--ink-muted);
  font-size: var(--fs-sm);
}

.legal__body {
  max-width: 760px;
}

.legal__body h2 {
  margin: 2.5rem 0 0.75rem;
  font-size: 1.9rem;
}

.legal__body p,
.legal__body li {
  color: var(--ink-soft);
}

.legal__body ul {
  padding-left: 1.2rem;
}

.legal__body li + li {
  margin-top: 0.4rem;
}

/* ---------- 4. 404 ---------- */
.not-found {
  min-height: 60vh;
  text-align: center;
}

.not-found__code {
  margin-bottom: 0.5rem;
  color: var(--brand);
  font-family: var(--font-display);
  font-size: clamp(6rem, 18vw, 11rem);
  font-weight: 600;
  line-height: 1;
}

.not-found .section-intro {
  margin: 0 auto 1.75rem;
}

.not-found__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.75rem;
}

/* ---------- 5. Hover effects — mouse/trackpad only (no sticky hover on touch) ---------- */
@media (hover: hover) and (pointer: fine) {
  a:hover {
    color: var(--ink);
  }

  .site-nav__links .nav-link:hover::after {
    transform: scaleX(1);
  }

  .site-nav__phone:hover,
  .site-nav__links .nav-link:hover {
    color: var(--nav-fg);
  }

  .site-nav__toggler:hover,
  .hero__button:hover {
    border-color: var(--brand);
    background: var(--brand);
    color: var(--ink);
  }

  .link-arrow:hover {
    color: var(--brand-700);
  }

  .link-arrow:hover .bi,
  .property-card:hover .property-card__cta .bi {
    transform: translateX(4px);
  }

  .link-arrow--light:hover {
    color: var(--brand);
  }

  .property-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-lg);
  }

  .property-card:hover .property-card__media img,
  .team-card:hover .team-card__media img,
  .gallery__link:hover img,
  .home-block__media:hover img,
  .video-facade:hover img {
    transform: scale(1.04);
  }

  .property-card:hover .property-card__title a {
    color: var(--brand-700);
  }

  .gallery__link:hover .gallery__zoom {
    opacity: 1;
    transform: none;
  }

  .gallery--plans .gallery__link:hover img {
    transform: scale(1.02);
  }

  .video-facade:hover img {
    opacity: 1;
  }

  .video-facade:hover .video-facade__play > .bi {
    border-color: var(--brand);
    background: var(--brand);
    color: var(--ink);
  }

  .feature-card:hover,
  .quick-card:hover {
    border-color: var(--brand);
    box-shadow: var(--shadow-md);
  }

  .feature-card--dark:hover {
    box-shadow: none;
  }

  .site-menu__links .nav-link:hover,
  .download-list a:hover {
    color: var(--brand-700);
  }

  .social-link:hover {
    border-color: var(--brand);
    background: var(--brand);
    color: var(--ink);
  }

  .site-footer__links a:hover,
  .site-footer__contact a:hover,
  .contact__detail a:hover,
  .contact__directions:hover,
  .breadcrumbs a:hover {
    color: var(--brand);
  }

  .breadcrumbs--dark a:hover {
    color: var(--brand-700);
  }

  .filter__btn:not(.is-active):hover,
  .audience__tab:hover {
    color: var(--brand-700);
  }

  .back-to-top:hover {
    border-color: var(--brand);
    background: var(--brand);
    color: var(--ink);
  }
}

/* ---------- 6. Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
  }

  .hero__content > *,
  .js .reveal {
    opacity: 1;
    transform: none;
  }
}

/* ---------- 7. Print ---------- */
@media print {
  .site-header,
  .hero__controls,
  .mobile-action-bar,
  .back-to-top,
  .btn,
  .newsletter-form,
  .modal,
  .cta-band,
  .contact__map,
  .map-frame {
    display: none !important;
  }

  .hero,
  .page-hero {
    height: auto;
    min-height: 0;
    background: none;
    color: #000;
  }

  .hero__slide:not(.active),
  .hero__overlay,
  .page-hero__overlay {
    display: none;
  }

  .hero__content > * {
    opacity: 1;
    transform: none;
  }

  .hero__title,
  .page-hero__title {
    color: #000;
  }

  .section {
    padding-block: 1.5rem;
  }

  .js .reveal {
    opacity: 1;
    transform: none;
  }
}
