/* Animaciones sutiles */
.fade-in {
  opacity: 0;
  transform: translateY(20px);
  animation: fadeInUp 0.8s ease forwards;
}

@keyframes fadeInUp {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.hero img,
.hero-small img,
.hero-banner-media img {
  transition: transform 6s ease;
}

.hero:hover img,
.hero-small:hover img,
.hero-banner:hover .hero-banner-media img {
  transform: scale(1.08);
}

.card,
.value-card,
.service-card,
.property-card,
.info-card,
.contact-card,
.mini-media,
.legal-section {
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.card:hover,
.value-card:hover,
.service-card:hover,
.property-card:hover,
.info-card:hover,
.contact-card:hover,
.mini-media:hover,
.legal-section:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 40px rgba(0,0,0,0.08);
}

.nav a {
  position: relative;
}

.nav a::after {
  content: "";
  position: absolute;
  left: 14px;
  right: 14px;
  bottom: 4px;
  width: 0;
  height: 1px;
  background: #8d2f2f;
  transition: width 0.3s ease;
}

.nav a:hover::after,
.nav a.active::after {
  width: calc(100% - 28px);
}
