/* ==========================================================
   Ibarra House Body Shop — typography.css
   Jerarquía homologada: H1 hero / H1 página / H2 sección / H3 tarjeta
   / lead / párrafo / meta
   ========================================================== */

.ih-h1,
.ih-h2,
.ih-h3,
.ih-display {
  font-family: var(--ih-font-display);
  color: var(--ih-text);
  margin: 0;
  text-wrap: balance;
}

/* Hero del home */
.ih-display {
  font-weight: 900;
  font-size: clamp(3.6rem, 11vw, 10.5rem);
  line-height: .86;
  letter-spacing: -.01em;
  text-transform: uppercase;
}

/* Título de página interna */
.ih-h1 {
  font-weight: 800;
  font-size: clamp(3rem, 8vw, 7rem);
  line-height: .9;
  letter-spacing: -.005em;
}

/* Título de sección */
.ih-h2 {
  font-weight: 800;
  font-size: clamp(2.3rem, 5vw, 4.25rem);
  line-height: .95;
}

/* Título de tarjeta / bloque */
.ih-h3 {
  font-weight: 800;
  font-size: clamp(1.6rem, 2.6vw, 2.25rem);
  line-height: 1;
}

.ih-h4 {
  font-family: var(--ih-font-display);
  font-weight: 700;
  font-size: 1.35rem;
  line-height: 1.1;
  margin: 0;
}

.ih-lead {
  font-size: clamp(1.1rem, 1.5vw, 1.3rem);
  line-height: 1.55;
  color: var(--ih-text-2);
  max-width: 46ch;
}

.ih-text {
  color: var(--ih-text-2);
  max-width: 62ch;
}
.ih-text p:last-child { margin-bottom: 0; }

.ih-meta {
  font-size: .9375rem;
  color: var(--ih-text-3);
  margin: 0;
}

.ih-quote {
  font-family: var(--ih-font-display);
  font-weight: 700;
  font-size: clamp(1.6rem, 3.2vw, 2.6rem);
  line-height: 1.08;
  color: var(--ih-text);
  max-width: 26ch;
}

.ih-num {
  font-family: var(--ih-font-display);
  font-weight: 900;
  line-height: .9;
  font-size: clamp(3rem, 6vw, 5rem);
  color: var(--ih-text);
}

/* ---------- Destello de luz sobre títulos ----------
   El título aparece opaco y una línea de luz lo recorre hasta dejarlo blanco.
   Solo se activa con JS (clase .js en <html>), así sin JS se ve normal. */
.js .ih-shine {
  color: transparent;
  background-image: linear-gradient(100deg,
    #fff 0%, #fff 44%,
    #FFC2CA 47.5%, #fff 49%,
    rgba(255, 255, 255, .22) 53%, rgba(255, 255, 255, .22) 100%);
  background-size: 300% 100%;
  background-position: 100% 0;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
  /* espacio extra para que no se corten acentos ni letras con rasgo bajo (g, j, p, q, y) */
  padding-block: .1em .18em;
  margin-block: -.1em -.18em;
}
.js .ih-shine.is-lit {
  transition: background-position 1.5s cubic-bezier(.55, .05, .25, 1);
  background-position: 0 0;
}

@media (prefers-reduced-motion: reduce) {
  .js .ih-shine { background-position: 0 0; }
}

.ih-fallback .ih-shine { background-position: 0 0; }
