/**
 * Shared typography scale for service pages.
 * Floor: 16px. Use semantic roles, not ad-hoc sizes.
 *
 * Roles (ascending):
 *   .mkl-type-note / .mkl-type-meta / .mkl-type-body — 16px floor
 *   .mkl-type-item         — card / list item body (18px)
 *   .mkl-type-item-title   — card / list item title (20px)
 *   .mkl-type-lead         — section subtitle under heading (22px)
 *   .mkl-type-heading      — section H1/H2
 *   .mkl-type-heading--hero — hero H1
 */

:root {
	--mkl-fs-hero: clamp(32px, 3.8vw, 44px);
	--mkl-fs-heading: clamp(28px, 3.2vw, 36px);
	--mkl-fs-lead: 22px;
	--mkl-fs-item-title: 20px;
	--mkl-fs-item: 18px;
	--mkl-fs-body: 16px;
	--mkl-fs-meta: 16px;
	--mkl-fs-note: 16px;
	--mkl-lh-heading: 1.22;
	--mkl-lh-body: 1.6;
	--mkl-section-pad: 40px;
}

/* ── Utility classes ── */

.mkl-type-heading {
	font-family: var(--mkl-font-heading, "TTNorms Medium", sans-serif);
	font-size: var(--mkl-fs-heading);
	line-height: var(--mkl-lh-heading);
	font-weight: 500;
}

.mkl-type-heading--hero {
	font-size: var(--mkl-fs-hero);
}

.mkl-type-lead {
	font-family: var(--mkl-font, "TTNorms Regular", sans-serif);
	font-size: var(--mkl-fs-lead);
	line-height: var(--mkl-lh-body);
}

.mkl-type-body {
	font-family: var(--mkl-font, "TTNorms Regular", sans-serif);
	font-size: var(--mkl-fs-body);
	line-height: var(--mkl-lh-body);
}

.mkl-type-item-title {
	font-family: var(--mkl-font-heading, "TTNorms Medium", sans-serif);
	font-size: var(--mkl-fs-item-title);
	line-height: 1.35;
	font-weight: 500;
}

.mkl-type-item {
	font-family: var(--mkl-font, "TTNorms Regular", sans-serif);
	font-size: var(--mkl-fs-item);
	line-height: 1.55;
}

.mkl-type-meta {
	font-family: var(--mkl-font-heading, "TTNorms Medium", sans-serif);
	font-size: var(--mkl-fs-meta);
	line-height: 1.4;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.mkl-type-note {
	font-family: var(--mkl-font, "TTNorms Regular", sans-serif);
	font-size: var(--mkl-fs-note);
	line-height: 1.5;
}

/* ── Map existing page prefixes to the shared scale ── */

.mkl-nn-heading,
.mkl-geo-heading,
.mkl-aeo-heading,
.mkl-cseo-heading,
.mkl-cim-heading,
.mkl-maks-heading,
.mkl-tg-heading,
.mkl-msg-heading,
.mkl-avito-heading,
.mkl-ai-heading,
.mkl-kont__card-title,
.mkl-kont__map-title {
	font-size: var(--mkl-fs-heading) !important;
	line-height: var(--mkl-lh-heading) !important;
}

.mkl-nn-heading--hero,
.mkl-geo-heading--hero,
.mkl-aeo-heading--hero,
.mkl-cseo-heading--hero,
.mkl-cim-heading--hero,
.mkl-maks-heading--hero,
.mkl-tg-heading--hero,
.mkl-msg-heading--hero,
.mkl-avito-heading--hero,
.mkl-ai-heading--hero {
	font-size: var(--mkl-fs-hero) !important;
}

.mkl-nn-lead,
.mkl-geo-lead,
.mkl-aeo-lead,
.mkl-cseo-lead,
.mkl-cim-lead,
.mkl-maks-lead,
.mkl-tg-lead,
.mkl-msg-lead,
.mkl-avito-lead,
.mkl-ai-lead,
.mkl-kont__form-lead {
	font-size: var(--mkl-fs-lead) !important;
	line-height: var(--mkl-lh-body) !important;
}

.mkl-nn-eyebrow,
.mkl-geo-eyebrow,
.mkl-aeo-eyebrow,
.mkl-cseo-eyebrow,
.mkl-cim-eyebrow,
.mkl-ai-eyebrow {
	font-size: var(--mkl-fs-meta) !important;
}

/* Card / FAQ / step titles */
.mkl-nn-why__item h3,
.mkl-nn-benefits__card h3,
.mkl-nn-steps li strong,
.mkl-nn-guide__card h3,
.mkl-nn-faq__item h3,
.mkl-nn-cases__card h3,
.mkl-geo-why__item h3,
.mkl-geo-benefits__card h3,
.mkl-geo-steps li strong,
.mkl-geo-guide__card h3,
.mkl-geo-faq__item h3,
.mkl-geo-cases__card h3,
.mkl-aeo-why__item h3,
.mkl-aeo-benefits__card h3,
.mkl-aeo-steps li strong,
.mkl-aeo-guide__card h3,
.mkl-aeo-faq__item h3,
.mkl-aeo-cases__card h3,
.mkl-cseo-why__card h3,
.mkl-cseo-faq__item h3,
.mkl-cim-why__card h3,
.mkl-cim-faq__item h3,
.mkl-maks-why__card h3,
.mkl-maks-guide__card h3,
.mkl-maks-faq__card h3,
.mkl-maks-results__case h3,
.mkl-maks-process__formats h3,
.mkl-maks-process__steps h3,
.mkl-maks-process__steps strong,
.mkl-tg-why__card h3,
.mkl-msg-why__card h3,
.mkl-tg-guide__card h3,
.mkl-msg-guide__card h3,
.mkl-tg-faq__card h3,
.mkl-msg-faq__card h3,
.mkl-tg-results__case h3,
.mkl-msg-results__case h3,
.mkl-tg-process__formats h3,
.mkl-msg-process__formats h3,
.mkl-tg-process__steps h3,
.mkl-msg-process__steps h3,
.mkl-tg-process__steps strong,
.mkl-msg-process__steps strong,
.mkl-avito-why__card h3,
.mkl-avito-audience__card h3,
.mkl-avito-guide__card h3,
.mkl-avito-results__case h3,
.mkl-avito-process__step strong,
.mkl-avito-cta__offer h3,
.mkl-avito-cta__form-card h3,
.mkl-ai-why__card h3,
.mkl-ai-faq__item h3 {
	font-size: var(--mkl-fs-item-title) !important;
	line-height: 1.35 !important;
}

/* Pricing card titles — one step above item titles */
.mkl-pricing-plan-name,
.mkl-nn-pricing__card h3,
.mkl-geo-pricing__card h3,
.mkl-aeo-pricing__card h3,
.mkl-cseo-pricing__card h3,
.mkl-cim-pricing__card h3,
.mkl-maks-pricing__card h3,
.mkl-tg-pricing__card h3,
.mkl-msg-pricing__card h3,
.mkl-avito-pricing__card h3,
.mkl-ai-pricing__card h3 {
	font-size: clamp(22px, 2.4vw, 26px) !important;
	line-height: 1.25 !important;
}

/* Card / FAQ / step body text */
.mkl-nn-why__item p,
.mkl-nn-benefits__card p,
.mkl-nn-steps li span,
.mkl-nn-steps li p,
.mkl-nn-guide__card p,
.mkl-nn-faq__item p,
.mkl-nn-cases__card p,
.mkl-nn-cases__card li,
.mkl-nn-pricing__card li,
.mkl-nn-pricing__desc,
.mkl-pricing-card li,
.mkl-pricing-desc,
.mkl-pricing-hint,
.mkl-geo-why__item p,
.mkl-geo-benefits__card p,
.mkl-geo-steps li span,
.mkl-geo-guide__card p,
.mkl-geo-faq__item p,
.mkl-geo-cases__card p,
.mkl-geo-cases__card li,
.mkl-geo-pricing__card li,
.mkl-geo-pricing__desc,
.mkl-aeo-why__item p,
.mkl-aeo-benefits__card p,
.mkl-aeo-steps li span,
.mkl-aeo-guide__card p,
.mkl-aeo-faq__item p,
.mkl-aeo-cases__card p,
.mkl-aeo-cases__card li,
.mkl-aeo-pricing__card li,
.mkl-aeo-pricing__desc,
.mkl-cseo-why__card p,
.mkl-cseo-faq__item p,
.mkl-cseo-pricing__card li,
.mkl-cseo-pricing__desc,
.mkl-cim-why__card p,
.mkl-cim-faq__item p,
.mkl-cim-pricing__card li,
.mkl-cim-pricing__desc,
.mkl-maks-why__card p,
.mkl-maks-guide__card p,
.mkl-maks-faq__card p,
.mkl-maks-results__case li,
.mkl-maks-results__tool,
.mkl-maks-pricing__card li,
.mkl-maks-pricing__desc,
.mkl-maks-pricing__hint,
.mkl-maks-process__formats span,
.mkl-maks-process__steps p,
.mkl-tg-why__card p,
.mkl-msg-why__card p,
.mkl-tg-guide__card p,
.mkl-msg-guide__card p,
.mkl-tg-faq__card p,
.mkl-msg-faq__card p,
.mkl-tg-results__case li,
.mkl-msg-results__case li,
.mkl-msg-results__case p,
.mkl-tg-results__tool,
.mkl-msg-results__tool,
.mkl-tg-pricing__card li,
.mkl-msg-pricing__card li,
.mkl-tg-pricing__desc,
.mkl-msg-pricing__desc,
.mkl-tg-pricing__hint,
.mkl-msg-pricing__hint,
.mkl-tg-process__formats span,
.mkl-msg-process__formats span,
.mkl-tg-process__steps p,
.mkl-msg-process__steps p,
.mkl-avito-why__card p,
.mkl-avito-audience__card p,
.mkl-avito-audience__example,
.mkl-avito-guide__card p,
.mkl-avito-guide__card li,
.mkl-avito-results__metric,
.mkl-avito-results__tool,
.mkl-avito-process__step p,
.mkl-avito-process__note,
.mkl-avito-pricing__card li,
.mkl-avito-pricing__desc,
.mkl-avito-pricing__hint,
.mkl-ai-why__card p,
.mkl-ai-faq__item p,
.mkl-ai-pricing__card li {
	font-size: var(--mkl-fs-item) !important;
	line-height: 1.55 !important;
}

/* Notes / trust / form labels */
.mkl-pricing-note,
.mkl-nn-pricing__note,
.mkl-geo-pricing__note,
.mkl-aeo-pricing__note,
.mkl-cseo-pricing__note,
.mkl-cim-pricing__note,
.mkl-maks-pricing__note,
.mkl-tg-pricing__note,
.mkl-msg-pricing__note,
.mkl-avito-pricing__note,
.mkl-nn-contact__field label,
.mkl-geo-contact__field label,
.mkl-cseo-contact__field label,
.mkl-cim-contact__field label,
.mkl-maks-cta__field label,
.mkl-maks-cta__consent,
.mkl-tg-cta__field label,
.mkl-msg-cta__field label,
.mkl-avito-cta__field label,
.mkl-tg-cta__consent,
.mkl-msg-cta__consent,
.mkl-avito-cta__consent,
.mkl-nn-contact__stats,
.mkl-geo-contact__stats,
.mkl-cseo-contact__stats,
.mkl-cim-contact__stats,
.mkl-maks-cta__trust,
.mkl-tg-cta__trust,
.mkl-msg-cta__trust,
.mkl-avito-cta__trust,
.mkl-nn-hero__stat,
.mkl-geo-hero__stat,
.mkl-aeo-hero__stat,
.mkl-maks-hero__stat,
.mkl-tg-hero__stat,
.mkl-msg-hero__stat,
.mkl-avito-hero__stat {
	font-size: var(--mkl-fs-note) !important;
}

/* Buttons — CTA level */
.mkl-pricing-btn,
.mkl-nn-btn,
.mkl-geo-btn,
.mkl-aeo-btn,
.mkl-cseo-btn,
.mkl-cim-btn,
.mkl-maks-btn,
.mkl-tg-btn,
.mkl-msg-btn,
.mkl-avito-btn,
.mkl-ai-btn {
	font-size: var(--mkl-fs-item) !important;
}

/* Prevent accidental wraps from bold/span splits in inline text */
.mkl-section strong,
.mkl-section span {
	overflow-wrap: normal;
}

.mkl-section p strong,
.mkl-section li strong,
.mkl-section .mkl-nn-lead strong,
.mkl-section .mkl-geo-lead strong,
.mkl-section .mkl-aeo-lead strong,
.mkl-section .mkl-cseo-lead strong,
.mkl-section .mkl-cim-lead strong,
.mkl-section .mkl-maks-lead strong,
.mkl-section .mkl-tg-lead strong,
.mkl-section .mkl-msg-lead strong,
.mkl-section .mkl-avito-lead strong,
.mkl-section .mkl-ai-lead strong {
	display: inline;
	white-space: normal;
}
