/* ========================================================================== 
   Aplicacion tipografica global publica CEMER
   --------------------------------------------------------------------------
   Esta hoja se carga despues de cada CSS de modulo publico para normalizar la
   jerarquia editorial sin modificar colores, layout, animaciones ni backend.
   ========================================================================== */

:where(.home-page, .institucional-page, .news-page, .library-page, .experiences-page, .eventos-page, .programas-page, .contact-page, .experience-detail-page) {
  font-family: var(--font-body) !important;
  font-size: var(--text-body) !important;
  line-height: var(--leading-body) !important;
  letter-spacing: var(--tracking-body) !important;
}

:where(.home-page, .institucional-page, .news-page, .library-page, .experiences-page, .eventos-page, .programas-page, .contact-page, .experience-detail-page) :where(h1, h2, h3) {
  font-family: var(--font-heading) !important;
  letter-spacing: var(--tracking-tight) !important;
  text-wrap: balance;
}

:where(.home-page, .institucional-page, .news-page, .library-page, .experiences-page, .eventos-page, .programas-page, .contact-page, .experience-detail-page) :where(h1) {
  margin-block: 0 var(--space-heading-stack);
  font-size: var(--text-hero) !important;
  font-weight: var(--fw-bold) !important;
  line-height: var(--leading-tight) !important;
}

:where(.home-page, .institucional-page, .news-page, .library-page, .experiences-page, .eventos-page, .programas-page, .contact-page, .experience-detail-page) :where(h2) {
  margin-block: 0 var(--space-heading-stack);
  font-size: var(--text-h2) !important;
  font-weight: var(--fw-bold) !important;
  line-height: var(--leading-heading) !important;
}

:where(.home-page, .institucional-page, .news-page, .library-page, .experiences-page, .eventos-page, .programas-page, .contact-page, .experience-detail-page) :where(h3) {
  margin-block: 0 var(--space-heading-stack);
  font-size: var(--text-h3) !important;
  font-weight: var(--fw-bold) !important;
  line-height: var(--leading-heading) !important;
}

:where(.home-page, .institucional-page, .news-page, .library-page, .experiences-page, .eventos-page, .programas-page, .contact-page, .experience-detail-page) :where(p, li, dd, blockquote) {
  font-family: var(--font-body) !important;
  font-size: var(--text-body) !important;
  font-weight: var(--fw-light) !important;
  line-height: var(--leading-body) !important;
  letter-spacing: var(--tracking-body) !important;
}

:where(.home-page, .institucional-page, .news-page, .library-page, .experiences-page, .eventos-page, .programas-page, .contact-page, .experience-detail-page) :where(p) {
  max-width: var(--measure-body);
}

:where(
  .home-hero-editorial__lead,
  .institutional-hero p,
  .news-hero__secondary p,
  .library-hero__text,
  .experiences-hero__text,
  .experiences-hero__secondary p,
  .eventos-hero p,
  .programas-hero p,
  .contact-hero p,
  .news-detail-card__bajada,
  .library-detail-hero__lead,
  .experience-hero__lead,
  .evento-detail__bajada,
  .programa-detail__bajada
) {
  font-family: var(--font-body) !important;
  font-size: var(--text-lead) !important;
  font-weight: var(--fw-light) !important;
  line-height: var(--leading-body) !important;
  letter-spacing: var(--tracking-body) !important;
  max-width: var(--measure-lead);
}

:where(
  .home-eyebrow,
  .home-news__eyebrow,
  .home-library__eyebrow,
  .home-experiences__eyebrow,
  .home-events__eyebrow,
  .home-programas__eyebrow,
  .institutional-hero__eyebrow,
  .institucional-eyebrow,
  .news-eyebrow,
  .library-eyebrow,
  .experiences-eyebrow,
  .programas-eyebrow,
  .contact-eyebrow,
  .evento-card__category,
  .experience-eyebrow,
  .news-badge,
  .noticia-card__category,
  .programa-card__badge,
  .evento-card__badge,
  .library-card__type,
  .library-detail-hero__type,
  .cemer-colophon__nav-title
) {
  font-family: var(--font-body) !important;
  font-size: var(--text-caption) !important;
  font-weight: var(--fw-bold) !important;
  line-height: var(--leading-heading) !important;
  letter-spacing: var(--tracking-eyebrow) !important;
  text-transform: uppercase !important;
}

:where(
  .home-presentation__pillar h3,
  .home-areas__card h3,
  .home-library__featured-title,
  .home-experiences__card h3,
  .news-featured__title,
  .noticia-card__title,
  .news-related-card__title,
  .library-featured__title,
  .library-card__title,
  .experience-card__title,
  .evento-card__title,
  .programa-card__title,
  .institucional-card h3,
  .team-card h3,
  .contact-form-card__header h2,
  .contact-info-card h2
) {
  font-family: var(--font-heading) !important;
  font-size: var(--text-h3) !important;
  font-weight: var(--fw-bold) !important;
  line-height: var(--leading-heading) !important;
  letter-spacing: var(--tracking-tight) !important;
}

:where(
  .news-featured__excerpt,
  .noticia-card__excerpt,
  .news-related-card__excerpt,
  .library-card__abstract,
  .library-featured__abstract,
  .experience-card__excerpt,
  .evento-card__subtitle,
  .programa-card__bajada,
  .institucional-card p,
  .team-card__bio,
  .contact-form-card__header p,
  .contact-info-card p,
  .cemer-colophon__tagline
) {
  font-family: var(--font-body) !important;
  font-size: var(--text-body) !important;
  font-weight: var(--fw-light) !important;
  line-height: var(--leading-body) !important;
  letter-spacing: var(--tracking-body) !important;
}

:where(
  .news-hero__stat dt,
  .news-hero__stat dd,
  .library-metric__label,
  .library-metric__value,
  .experiences-metric__label,
  .experiences-metric__value,
  .evento-card__date,
  .evento-card__location,
  .news-meta,
  .news-featured__meta,
  .noticia-card__meta,
  .library-card__meta,
  .contact-field label,
  .contact-field__error,
  .cemer-colophon__institution-seal,
  .cemer-colophon__copyright p,
  .public-drawer__subitem
) {
  font-family: var(--font-body) !important;
  font-size: var(--text-meta) !important;
  line-height: var(--leading-heading) !important;
  letter-spacing: var(--tracking-body) !important;
}

/* Hero de ficha interna: un escalon por debajo del hero del HOME.
   --text-hero llega a 56px, que excede el techo de 52px fijado para las
   vistas de detalle; se declara aqui, en la hoja que gobierna la escala,
   para no dispersar tamanos por los CSS de modulo. */
:where(.experience-hero__title) {
  font-size: clamp(2.125rem, 4vw, 3.25rem) !important;  /* 34px -> 52px */
}

:where(.experience-hero__subtitle) {
  font-family: var(--font-body) !important;
  font-size: var(--text-lead) !important;
  font-weight: var(--fw-medium) !important;
  line-height: 1.45 !important;
  letter-spacing: var(--tracking-body) !important;
}

:where(
  .public-nav__menu-button,
  .public-drawer__link,
  .footer-link,
  button,
  input,
  select,
  textarea
) {
  font-family: var(--font-body) !important;
}

.cemer-colophon-footer {
  font-family: var(--font-body) !important;
}

.cemer-colophon__link-list .footer-link,
.cemer-colophon__address .address-item {
  font-size: var(--text-small) !important;
  line-height: var(--leading-body) !important;
}

@media (max-width: 640px) {
  :where(.home-page, .institucional-page, .news-page, .library-page, .experiences-page, .eventos-page, .programas-page, .contact-page, .experience-detail-page) :where(p, li, dd, blockquote) {
    font-size: var(--text-small) !important;
  }
}
