/* ESPARTANOS BODY GYM · Tipografía
   Capa independiente cargada después de styles.css: solo cambia letras, tamaños de texto, pesos,
   espaciado entre letras e interlineado. Colores, imágenes, secciones y funciones quedan iguales.

   Fuente PROVISIONAL: Outfit (Google Fonts, licencia libre OFL), una sans geométrica moderna,
   la alternativa libre más cercana a Samy de Soda. NO es Samy.
   Si se compra Samy con licencia web: añadir aquí sus @font-face (Book, Regular, Bold, ExtraBold)
   y cambiar --font-sans por "Samy", el resto se ajusta solo. */

:root {
  --font-sans: "Outfit", "Helvetica Neue", Arial, sans-serif;
  --display: var(--font-sans);
  --greek: var(--font-sans);
  --body: var(--font-sans);
}

/* ---------- Texto base: cómodo de leer ---------- */
body { font-weight: 400; line-height: 1.65; letter-spacing: .003em; font-kerning: normal; text-rendering: optimizeLegibility; }
h1, h2, h3 { font-weight: 800; }
h2 { font-size: clamp(32px, 4.2vw, 54px); line-height: 1.06; letter-spacing: -.02em; word-spacing: .06em; text-wrap: balance; }
h3 { font-size: 22px; font-weight: 700; line-height: 1.2; letter-spacing: -.012em; }
p, li, summary { text-wrap: pretty; }

/* ---------- Subtítulos refinados (antes Cinzel) ---------- */
.eyebrow, .kicker { font-weight: 600; font-size: 12px; letter-spacing: .24em; }
.member__plan { font-weight: 600; font-size: 11px; letter-spacing: .2em; }

/* ---------- Portada ---------- */
.hero__title { font-weight: 800; font-size: clamp(46px, 7vw, 96px); line-height: .98; letter-spacing: -.03em; word-spacing: .05em; }
.hero__title .line { padding-bottom: .06em; }
.hero__lead { font-weight: 400; line-height: 1.6; }
.chip b { font-weight: 700; font-size: 22px; letter-spacing: -.02em; }
.hero__stats strong { font-weight: 700; font-size: clamp(30px, 3.2vw, 44px); letter-spacing: -.035em; }

/* ---------- Botones: mayúsculas cortas con aire ---------- */
.btn { font-weight: 700; font-size: 13.5px; letter-spacing: .09em; text-transform: uppercase; }
.btn--sm { font-size: 12px; letter-spacing: .08em; }

/* ---------- Menú ---------- */
.nav__links a { font-weight: 500; font-size: 14.5px; letter-spacing: .01em; }

/* ---------- Planes ---------- */
.plan__ribbon { font-weight: 700; letter-spacing: .14em; }
.plan__name { font-size: 26px; font-weight: 800; letter-spacing: -.02em; }
.plan__price { font-weight: 800; letter-spacing: -.04em; }
.plan__price .cur { font-size: 24px; margin-top: 8px; }
.plan__price .amount { font-size: 66px; line-height: 1; }
.plan__price .per { font-weight: 400; letter-spacing: 0; }
.badge { font-weight: 700; letter-spacing: .04em; }

/* ---------- Horarios, entrenadores, tienda ---------- */
.slot time { font-weight: 700; font-size: 21px; letter-spacing: -.02em; }
.coach__initials { font-weight: 800; font-size: 110px; letter-spacing: -.05em; -webkit-text-stroke: 0; color: rgba(182,141,87,.16); } /* sin contorno: esta letra mostraría sus uniones internas */
.coach__front h3 { font-size: 26px; letter-spacing: -.02em; }
.coach__back h3 { font-size: 24px; }
.coach__hint, .product__cat { font-weight: 600; letter-spacing: .14em; }
.product__price b { font-weight: 800; font-size: 24px; letter-spacing: -.03em; }

/* ---------- Nutrición, IMC, cuenta, carrito ---------- */
.section--red::before { font-family: Georgia, "Times New Roman", serif; } /* la Ω decorativa conserva su forma */
.bmi h3 { font-size: 28px; letter-spacing: -.02em; }
.bmi__value b { font-weight: 800; font-size: 46px; letter-spacing: -.04em; }
.faq summary { font-weight: 600; }
.member__name { font-weight: 800; font-size: 32px; letter-spacing: -.025em; }
.member__days b { font-weight: 800; font-size: 46px; letter-spacing: -.04em; }
.drawer__head h3 { font-size: 24px; }
.drawer__total b { font-weight: 800; font-size: 30px; letter-spacing: -.03em; }

@media (max-width: 960px) {
  .nav__links a { font-weight: 700; font-size: 28px; letter-spacing: -.02em; }
}
@media (max-width: 600px) {
  .hero__title { font-size: clamp(38px, 12.4vw, 60px); }
  h2 { font-size: clamp(30px, 8.6vw, 40px); }
  .chip b { font-size: 17px; }
  .plan__price .amount { font-size: 58px; }
  .slot time { font-size: 17px; }
  .product__price b { font-size: 19px; }
  .member__name { font-size: 26px; }
  .member__days b { font-size: 38px; }
  .btn { font-size: 13px; letter-spacing: .07em; }
}
