/* ============================================================
   animations-estate.css — Estate template animation states
   Initial hidden states, hover effects, reduced motion
   ============================================================ */

/* --- Hero initial states (CSS hides, GSAP reveals) --- */
.fr-hero-hotel .fr-hero-hotel__overlay {
  opacity: 0;
  transform: scale(1.08);
  will-change: transform, opacity;
}

.fr-hero-hotel .fr-hero-hotel__heading {
  opacity: 0;
  transform: translateY(50px);
}

.fr-hero-hotel .fr-hero-hotel__sub-heading {
  opacity: 0;
  transform: translateY(30px);
}

.fr-hero-hotel .fr-hero-hotel__lede {
  opacity: 0;
  transform: translateY(30px);
}

.fr-hero-hotel .fr-cta-links-alpha {
  opacity: 0;
  transform: translateY(30px);
}

/* --- Hover effects — promise cards --- */
.promise-card {
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.promise-card:hover {
  transform: translateY(-4px);
}

.promise-card__icon {
  transition: transform 0.3s ease;
}

.promise-card:hover .promise-card__icon {
  transform: scale(1.05);
}

/* --- Hover effects — feature cards --- */
.fr-feature-card-foxtrot {
  transition: transform 0.3s ease;
}

.fr-feature-card-foxtrot:hover {
  transform: translateY(-3px);
}

.fr-feature-card-foxtrot__icon {
  transition: transform 0.3s ease;
}

.fr-feature-card-foxtrot:hover .fr-feature-card-foxtrot__icon {
  transform: scale(1.08);
}

/* --- Hover effects — process cards --- */
.process-card {
  transition: transform 0.3s ease;
}

.process-card:hover {
  transform: translateY(-3px);
}

.process-card__icon {
  transition: transform 0.3s ease;
}

.process-card:hover .process-card__icon {
  transform: scale(1.05);
}

/* --- Hover effects — calc cards --- */
.calc-card {
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.calc-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
}

/* --- Hover effects — difference cards --- */
.difference-card {
  transition: transform 0.3s ease;
}

.difference-card--dark:hover {
  transform: translateY(-3px);
}

/* --- Hover effects — why cards --- */
.why-card {
  transition: transform 0.3s ease;
}

.why-card:hover {
  transform: translateY(-3px);
}

.why-card--alt {
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.why-card--alt:hover {
  transform: translateY(-4px);
  box-shadow: rgba(0, 0, 0, 0.5) 0px 4px 8px,
              rgba(0, 0, 0, 0.4) 0px 10px 20px -3px,
              rgba(0, 0, 0, 0.25) 0px -3px 0px inset;
}

/* --- Hover effects — testimonial cards --- */
.fr-testimonial-card-lima {
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.fr-testimonial-card-lima:hover {
  transform: translateY(-3px);
  box-shadow: rgb(255 255 255 / 70%) 0px 4px 12px -1px,
              rgb(255 255 255 / 55%) 0px 2px 6px -1px;
}

/* --- Hover effects — article cards --- */
.fr-article-card-india {
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.fr-article-card-india:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.2);
}

/* --- Hover effects — footer links --- */
.fr-footer-foxtrot__menu-link {
  transition: color 0.2s ease;
}

.fr-footer-foxtrot__menu-link:hover {
  color: #ffffff;
}

.fr-social-bravo__link-wrapper {
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.fr-social-bravo__link-wrapper:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

/* --- Fallback: if GSAP fails to load, reveal hero --- */
html.no-gsap .fr-hero-hotel .fr-hero-hotel__overlay,
html.no-gsap .fr-hero-hotel .fr-hero-hotel__heading,
html.no-gsap .fr-hero-hotel .fr-hero-hotel__sub-heading,
html.no-gsap .fr-hero-hotel .fr-hero-hotel__lede,
html.no-gsap .fr-hero-hotel .fr-cta-links-alpha {
  opacity: 1 !important;
  transform: none !important;
}

/* --- Accessibility: reduced motion --- */
@media (prefers-reduced-motion: reduce) {
  .fr-hero-hotel .fr-hero-hotel__overlay,
  .fr-hero-hotel .fr-hero-hotel__heading,
  .fr-hero-hotel .fr-hero-hotel__sub-heading,
  .fr-hero-hotel .fr-hero-hotel__lede,
  .fr-hero-hotel .fr-cta-links-alpha {
    opacity: 1 !important;
    transform: none !important;
  }

  .promise-card,
  .fr-feature-card-foxtrot,
  .process-card,
  .calc-card,
  .difference-card,
  .why-card,
  .why-card--alt,
  .fr-testimonial-card-lima,
  .fr-article-card-india,
  .fr-social-bravo__link-wrapper {
    transition: none !important;
  }
}
