/*
 * Escala web del manual de marca 3.7, capítulos 21 y 23.
 * Cargar después de las hojas de página y antes de i18n-tipografia.css.
 * Los selectores nombran funciones editoriales: no alcanzan logotipos,
 * cifras, controles, nombres de producto ni textos de las demostraciones.
 */

/* Portada del inicio. */
html body .hero-h {
  font-family: 'Outfit', sans-serif;
  font-size: clamp(44px, min(10.5vw, 14.5svh), 168px);
  font-weight: 750;
  letter-spacing: -0.045em;
  line-height: 0.94;
}

/* Portadas de sección. El blog comparte estructura con los servicios. */
html body :is(.pgh-h, .cth-h, .err-h),
html body .sdh[data-screen-label="Hero Blog"] .sdh-h {
  font-family: 'Outfit', sans-serif;
  font-size: clamp(44px, min(9vw, 14svh), 148px);
  font-weight: 750;
  letter-spacing: -0.045em;
  line-height: 0.96;
}

/* Portada de cada servicio. La excepción del blog queda arriba. */
html body .sdh-h {
  font-family: 'Outfit', sans-serif;
  font-size: clamp(40px, min(7.6vw, 12.5svh), 124px);
  font-weight: 750;
  letter-spacing: -0.045em;
  line-height: 0.98;
}

/*
 * Titulares de bloque y de artículo, incluidas las páginas legales.
 * .ah .ah-h vence las variantes históricas theme-tinta/theme-verde.
 * techSuite tiene estilos propios en el documento y necesita su contexto.
 */
html body :is(
  .sec-h, .sd-h, .narr-h, .tech-h, .cli-h, .diff-h,
  .sd-stmt-in, .sd-stmt-h, .fq, .fs-h, .featb-ti, .ah .ah-h, .rel-h
),
html #techSuite .ts-headline {
  font-family: 'Outfit', sans-serif;
  font-size: clamp(32px, 4.6vw, 72px);
  font-weight: 750;
  letter-spacing: -0.04em;
  line-height: 1.04;
}

/* Manifiesto del home: una frase por pantalla, con escala de portada. */
html body.home .stmt-phrase {
  font-family: 'Outfit', sans-serif;
  font-size: clamp(44px, min(9vw, 14svh), 148px);
  font-weight: 750;
  letter-spacing: -0.045em;
  line-height: 1.04;
}

/* Un mismo tamaño para el llamado final de todas las secciones. */
html body :is(.cta .cta-h, .sd-cta .cta-h, .cta-cl .cta-h) {
  font-family: 'Outfit', sans-serif;
  font-size: clamp(56px, 9.5vw, 152px);
  font-weight: 750;
  letter-spacing: -0.045em;
  line-height: 0.96;
}

/* Subtítulos de lectura y títulos de tarjetas editoriales. */
html body :is(
  .aprose h2, .svc-ti, .scard-ti, .secd-ti, .diff-ti, .tl-item h3,
  .val-ti, .hcard-ti, .orow-ti, .orow.post .orow-ti, .resp-ti,
  .offl-ti, .rf-side-ti, .rel-ti, .proc-sh, .whyar-h, .acc-ti
) {
  font-family: 'Outfit', sans-serif;
  font-size: clamp(24px, 2.7vw, 38px);
  font-weight: 750;
  letter-spacing: -0.03em;
  line-height: 1.1;
}

/* Excepción explícita del capítulo 23: continuidad entre artículos. */
html body .nxt-ti {
  font-family: 'Outfit', sans-serif;
  font-size: clamp(26px, 4.4vw, 72px);
  font-weight: 750;
  letter-spacing: -0.04em;
  line-height: 1.05;
}

/*
 * La palabra de cierre conserva el color ya asignado por la página.
 * Los cuatro alfabetos con fuente complementaria se resuelven después,
 * desde el generador de i18n, también con peso 200 y sin inclinación falsa.
 */
html body :is(
  .hero-h, .pgh-h, .sdh-h, .cth-h, .err-h, .sec-h, .sd-h, .narr-h,
  .tech-h, .cli-h, .diff-h, .stmt-phrase, .sd-stmt-in, .sd-stmt-h,
  .fq, .fs-h, .featb-ti, .ah .ah-h, .rel-h, .cta .cta-h,
  .sd-cta .cta-h, .cta-cl .cta-h, .aprose h2, .svc-ti, .scard-ti,
  .secd-ti, .diff-ti, .tl-item h3, .val-ti, .hcard-ti, .orow-ti,
  .orow.post .orow-ti, .resp-ti, .offl-ti, .rf-side-ti, .rel-ti,
  .proc-sh, .whyar-h, .acc-ti, .nxt-ti
) :is(em, .em),
html #techSuite .ts-headline em {
  font-family: 'Exodo Cursiva', sans-serif;
  font-size: 1.04em;
  font-weight: 200;
  font-style: normal;
  line-height: inherit;
}

/*
 * Rótulos editoriales y de formulario: 11 px en cualquier ancho.
 * Se dejan fuera el sello de marca y la interfaz de las maquetas.
 */
html body :is(
  .sec-tag, .hero-badge, .pgh-badge, .cth-badge, .err-code,
  .sdh-bc, .ah-bc, .ah-meta, .ah-cat, .featb-meta, .post-meta,
  .plist-count, .nxt-label, .nxt-meta, .rel-tag, .rel-ct,
  .ah-by .r, .aprose .sign .r, .orow-author span,
  .fbar-idx, .fk, .fhint, .fs-recap-row b, .ci-label,
  .proc-sn, .hcard-num, .orow-num, .diff-num, .val-num,
  .step-num, .resp-who, .offl-no, .whyar-n, .how-tab .ht-n, .acc-num
),
html body .aprose h2::before {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  font-weight: 400;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

/*
 * Las cajas de línea no incluyen toda la tinta de la fuente. Una g cursiva
 * puede salir por debajo, y una f o un acento por los otros lados.
 * Ampliar solo la máscara conserva tamaños, interlineado, saltos y márgenes.
 * La entrada parte más abajo para permanecer oculta dentro de esta holgura;
 * sus duraciones, retardos y curvas siguen siendo los originales.
 */
html body :is(.hero-h, .pgh-h, .sdh-h, .cth-h, .cta-h) .hl,
html body .w-mask {
  overflow: visible;
  clip-path: inset(-0.14em -0.18em -0.22em -0.18em);
}

html body :is(.hero-h, .pgh-h, .sdh-h, .cth-h) .hl-in {
  transform: translateY(150%);
}
