/* ============================================================
   Physiorth — Estilos personalizados
   Paleta y tokens según DESIGN.md
   ============================================================ */

:root {
  /* Fondos */
  --bg-hero: #0A0A0A;
  --bg-dark-alt: #1A1A1A;
  --bg-content: #F5F0EB;
  --bg-white: #FFFFFF;

  /* Texto */
  --text-on-dark: #FFFFFF;
  --text-primary: #1C1C1C;
  --text-muted: #6B6B6B;
  --text-on-ivory: #2C2C2C;

  /* Acento */
  --accent-gold: #C9A96E;
  --border-subtle: #E8E4DF;
  --border-dark: #2A2A2A;

  /* WhatsApp */
  --whatsapp: #25D366;

  /* Espaciado */
  --section-padding: clamp(4rem, 10vh, 8rem);
  --grid-gap: 1.5rem;
  --card-padding: 2rem;
}

html {
  scroll-behavior: smooth;
}

body {
  background-color: var(--bg-hero);
  font-family: 'Inter', sans-serif;
  color: var(--text-on-dark);
  -webkit-font-smoothing: antialiased;
}

/* ============================================================
   Hero — logo fade-in al cargar
   ============================================================ */

.hero-logo {
  opacity: 0;
  animation: fadeIn 1s ease-out forwards;
}

@keyframes fadeIn {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ============================================================
   Reveal on scroll — Intersection Observer añade .is-visible
   ============================================================ */

.reveal {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.6s ease, transform 0.6s ease;
  will-change: opacity, transform;
}

.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
  .reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }
  html {
    scroll-behavior: auto;
  }
}

/* ============================================================
   Navbar
   ============================================================ */

#navbar.scrolled {
  background-color: rgba(10, 10, 10, 0.95);
  backdrop-filter: blur(8px);
  box-shadow: 0 1px 0 var(--border-dark);
}

/* ============================================================
   Menú hamburguesa — 3 líneas → X
   ============================================================ */

#menu-toggle .hamburger-line {
  transition: transform 0.3s ease, opacity 0.3s ease;
}

#menu-toggle.open .hamburger-line:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}

#menu-toggle.open .hamburger-line:nth-child(2) {
  opacity: 0;
}

#menu-toggle.open .hamburger-line:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

/* ============================================================
   Carrusel de testimonios — apilado con grid para altura fluida
   ============================================================ */

.testimonials {
  display: grid;
}

.testimonial {
  grid-area: 1 / 1;
}

.carousel-dot {
  width: 10px;
  height: 10px;
  border-radius: 9999px;
  background-color: transparent;
  border: 1px solid var(--accent-gold);
  transition: background-color 0.3s ease, transform 0.3s ease;
  cursor: pointer;
  padding: 0;
}

.carousel-dot.active {
  background-color: var(--accent-gold);
  transform: scale(1.15);
}
