/*
 * One type scale for the whole site (loaded after every other stylesheet).
 * Font: Space Grotesk everywhere. Sizes:
 *   page title (H1)   60 / 48 / 36        section heading (H2)  42 / 36 / 30
 *   card title (H3)   21 / 20 / 19        lead text            18 / 17 / 17
 *   body text         16                  small text           14
 */
:root {
	--tl-h1: 60px;
	--tl-h2: 42px;
	--tl-h3: 21px;
	--tl-lead: 18px;
	--tl-body: 16px;
	--tl-small: 14px;
}
@media (max-width: 1024px) { :root { --tl-h1: 48px; --tl-h2: 36px; --tl-h3: 20px; --tl-lead: 17px; } }
@media (max-width: 640px)  { :root { --tl-h1: 36px; --tl-h2: 30px; --tl-h3: 19px; --tl-lead: 17px; } }

/* Page titles (our page heroes; the theme's inner banners are already 60px) */
body .svc-page .svc-hero__title { font-size: var(--tl-h1); line-height: 1.12; font-weight: 700; letter-spacing: -.02em; }

/* Section headings */
body .svc-page .svc-head h2,
body .svc-page .sp-split__copy h2,
body .svc-page .sp-aside h2,
body .svc-page .svc-cta h2,
body .hs-section .hs-head h2,
body .hi-section .hi-head h2,
body .es-section .es-head h2,
body .elementor-widget-rs-heading h2.title {
	font-size: var(--tl-h2); line-height: 1.2; font-weight: 700; letter-spacing: -.015em;
}

/* Card and block titles */
body .svc-page .svc-card h3,
body .svc-page .svc-model h3,
body .svc-page .svc-why__item h3,
body .svc-page .svc-step h3,
body .svc-page .svc-industry h3,
body .svc-page .svc-tech__title h3,
body .svc-page .svc-highlights h3,
body .svc-page .sp-timeline__item h3,
body .svc-page .sp-process__top h3,
body .svc-page .sp-points h3,
body .svc-page .sp-next h3,
body .hi-section .hi-card h3,
body .hi-section a.hi-card h3,
body .tl-types .tl-types__card h3,
body .hs-section .hs-tile h3 {
	font-size: var(--tl-h3); line-height: 1.3; font-weight: 700; letter-spacing: 0;
}
body .svc-page .sp-sitemap__group h2, body .svc-page .sp-legal h2 { font-size: var(--tl-h3); line-height: 1.3; font-weight: 700; }

/* Lead paragraphs under headings and in heroes */
body .svc-page .svc-head p,
body .svc-page .svc-hero__lead,
body .svc-page .sp-aside > p,
body .svc-page .svc-cta p,
body .hs-section .hs-head p,
body .hi-section .hi-head p,
body .es-section .es-head p {
	font-size: var(--tl-lead); line-height: 1.65; font-weight: 400;
}

/* Body text inside cards, lists and copy blocks */
body .svc-page .svc-card p,
body .svc-page .svc-model p,
body .svc-page .svc-why__item p,
body .svc-page .svc-step p,
body .svc-page .svc-industry p,
body .svc-page .svc-highlights p,
body .svc-page .svc-faq__a p,
body .svc-page .sp-timeline__item p,
body .svc-page .sp-process__body > p,
body .svc-page .sp-points p,
body .svc-page .sp-next p,
body .svc-page .sp-split__copy p,
body .svc-page .sp-legal p,
body .svc-page .sp-tech__text,
body .hi-section .hi-card p,
body .tl-types .tl-types__card p {
	font-size: var(--tl-body); line-height: 1.65; font-weight: 400;
}
body .svc-page .svc-faq__item summary { font-size: var(--tl-body); }

/* Small text: chips, tags, captions */
body .svc-page .svc-chips li,
body .svc-page .svc-tech li,
body .svc-page .svc-model__best,
body .svc-page .sp-process__time,
body .svc-page .sp-privacy,
body .hi-section .hi-card__tags li,
body .hs-section .hs-chips a {
	font-size: var(--tl-small);
}

/* Pages built in Elementor: same body text size, same card-title size */
body .elementor p,
body .elementor .desc,
body .elementor .desc-text,
body .elementor .rs-iconbox-area .desc,
body.home .tl-hero-card .rs-iconbox-area .desc { font-size: var(--tl-body); line-height: 1.65; }
body .elementor .services-title h3.title,
body .services-title h3.title,
body .elementor .services-title .title { font-size: var(--tl-h3) !important; line-height: 1.3 !important; }
body .tl-section-tagline { font-size: var(--tl-lead); line-height: 1.6; }
body .tl-hero-card .rs-iconbox-area .title { font-size: var(--tl-h3); }
