:root {
  --heading-font: 'Poppins', sans-serif;
  --body-font: 'Inter', sans-serif;
}
/* Familias unificadas: Inter para texto y Poppins para títulos. */
body, p, span, a, li {
  font-family: var(--body-font) !important;
}
h1, .title, .heading-primary,
h2, .section-title,
h3, .subtitle {
  font-family: var(--heading-font) !important;
}
small, footer, .footnote {
  font-family: var(--body-font) !important;
}
/* Un fragmento resaltado dentro de un título (p. ej. .highlight del H1) conserva
   la fuente del título en lugar de pasar a la fuente de texto. */
:is(h1, h2, h3, h4, h5, h6) span {
  font-family: inherit !important;
}
/* Tamaños base con especificidad cero: cada componente conserva su propia
   jerarquía (p. ej. .hero-title, .copyright) sin que estos valores la pisen. */
:where(body) {
  font-size: clamp(16px, 0.5vw + 14px, 18px);
  line-height: 1.5;
}
:where(h1, .title, .heading-primary) {
  font-size: clamp(30px, 4vw + 16px, 56px);
  line-height: 1.2;
}
:where(h2, .section-title) {
  font-size: clamp(24px, 2.5vw + 16px, 36px);
  line-height: 1.2;
}
:where(h3, .subtitle) {
  font-size: clamp(18px, 1.5vw + 14px, 24px);
  line-height: 1.2;
}
:where(small, .footnote) {
  font-size: clamp(14px, 0.2vw + 13px, 15px);
  line-height: 1.5;
}
/* Navigation and actions use the same readable family with a restrained scale. */
.navbar-custom .nav-link,
.navbar-custom .dropdown-item,
.btn,
button,
input,
select,
textarea {
  font-family: var(--body-font) !important;
}
.navbar-custom .nav-link,
.navbar-custom .dropdown-item,
.btn,
button {
  font-size: 0.9rem !important;
}
.navbar-custom .dropdown-item {
  line-height: 1.35;
}
