/* Solo landing publica (index.php). */
html { scroll-behavior: smooth; }
.public-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(17, 18, 17, 0.55);
  backdrop-filter: blur(10px);
  transition: height 0.3s ease, background 0.3s ease, box-shadow 0.3s ease;
}
.public-header.scrolled {
  height: 68px;
  background: rgba(17, 18, 17, 0.9);
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.35);
}
.public-header nav a { position: relative; }
.public-header nav a::after {
  content: '';
  position: absolute;
  left: 0; right: 0; bottom: -6px;
  height: 2px;
  background: var(--yellow);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.3s ease;
}
.public-header nav a:hover::after { transform: scaleX(1); }

.statement-band { justify-content: flex-start; gap: 0; }
.band-track { display: flex; align-items: center; gap: 25px; padding-right: 25px; flex-shrink: 0; }
.band-track svg { flex-shrink: 0; }

.services-grid article,
.plans-list article,
.community-row,
.trainers-list article {
  transition: transform 0.35s ease, box-shadow 0.35s ease, border-color 0.35s ease, background-color 0.35s ease;
}
.services-grid article:hover,
.plans-list article:hover {
  transform: translateY(-8px);
  border-color: var(--yellow);
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.4);
}
.community-row:hover { transform: translateX(8px); }
.trainers-list article img { transition: transform 0.6s ease; }
.trainers-list article:hover img { transform: scale(1.05); }
.trainers-list article { overflow: hidden; }
.service-top svg { transition: transform 0.4s ease; }
.services-grid article:hover .service-top svg { transform: rotate(-10deg) scale(1.2); color: var(--yellow); }
.button svg, .text-link svg, .header-cta svg { transition: transform 0.25s ease; }
.button:hover svg, .text-link:hover svg, .header-cta:hover svg { transform: translate(3px, -3px); }
.button { transition: transform 0.25s ease, box-shadow 0.25s ease, background-color 0.25s ease; }
.button:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(240, 214, 0, 0.25); }

@media (prefers-reduced-motion: no-preference) {
  .hero-image { animation: hero-zoom 18s ease-out both; will-change: transform; }
  .hero-content { animation: none; }
  .hero-content > * { opacity: 0; animation: rise-in 0.8s cubic-bezier(0.2, 0.7, 0.2, 1) forwards; }
  .hero-content > :nth-child(1) { animation-delay: 0.1s; }
  .hero-content > :nth-child(2) { animation-delay: 0.25s; }
  .hero-content > :nth-child(3) { animation-delay: 0.45s; }
  .hero-content > :nth-child(4) { animation-delay: 0.6s; }
  .hero-side-label, .hero-bottom { opacity: 0; animation: rise-in 1s ease 0.9s forwards; }
  .hero h1 span { background: linear-gradient(100deg, var(--yellow) 40%, #fff6a8 50%, var(--yellow) 60%) 0 0 / 250% 100%; -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; animation: shine 5s ease-in-out 1.5s infinite; }
  .status-dot { animation: pulse-dot 2s ease-in-out infinite; }
  .band-track { animation: marquee 28s linear infinite; }
  .statement-band:hover .band-track { animation-play-state: paused; }

  .js-reveal .reveal {
    opacity: 0;
    transform: translateY(32px);
    transition: opacity 0.8s cubic-bezier(0.2, 0.7, 0.2, 1) var(--d, 0s), transform 0.8s cubic-bezier(0.2, 0.7, 0.2, 1) var(--d, 0s);
  }
  .js-reveal .reveal.is-visible { opacity: 1; transform: none; }
  /* Tras el reveal, devuelve el hover rapido. */
  .js-reveal .reveal.is-visible.done { transition-delay: 0s; }
}

@keyframes hero-zoom { from { transform: scale(1.12); } to { transform: scale(1); } }
@keyframes shine { 0%, 60% { background-position: 100% 0; } 100% { background-position: -100% 0; } }
@keyframes pulse-dot { 0%, 100% { box-shadow: 0 0 0 0 rgba(240, 214, 0, 0.5); } 50% { box-shadow: 0 0 0 7px rgba(240, 214, 0, 0); } }
@keyframes marquee { to { transform: translateX(-100%); } }

@media (max-width: 720px) {
  .public-header { position: static; }
}
