/* Shared type roles across the plugin pages. Keep illustration labels and data
   displays independent; only equivalent editorial UI text is normalized. */
.sss-site {
	--type-page: clamp(2.65rem, 4.4vw, 4.7rem);
	--type-section: clamp(1.95rem, 3.1vw, 3.25rem);
	--type-feature: clamp(1.7rem, 2.5vw, 2.55rem);
	--type-card: clamp(1.1rem, 1.35vw, 1.3rem);
	--type-lead: clamp(.98rem, 1.2vw, 1.08rem);
	--type-body: clamp(.9rem, 1.03vw, 1rem);
	--type-label: .7rem;
	--type-action: .9rem;
}

.sss-site :is(.sss-launch-hero, .sss-about-hero, .sss-page-hero, .sss-case-hero, .sss-legal-hero, .sss-not-found) h1 {
	font-size: var(--type-page);
	font-weight: 680;
	line-height: 1.04;
	letter-spacing: -.052em;
	text-wrap: balance;
}

.sss-site :is(.sss-heading-row, .sss-work-stack__heading, .sss-capabilities__heading, .sss-client-reviews__heading, .sss-industries__heading) h2,
.sss-site :is(.sss-intro__grid, .sss-editorial__grid, .sss-detail-intro__grid, .sss-faq__grid) h2,
.sss-site :is(.sss-about-story__copy, .sss-about-partner__intro, .sss-about-culture__copy, .sss-about-section-intro, .sss-about-band, .sss-cta) h2 {
	font-size: var(--type-section);
	font-weight: 650;
	line-height: 1.12;
	letter-spacing: -.04em;
	text-wrap: balance;
}

.sss-site :is(.sss-service-panel, .sss-project-card__body, .sss-case-content article, .sss-legal article) h2,
.sss-site .sss-work-panel h3 {
	font-size: var(--type-feature);
	font-weight: 650;
	line-height: 1.13;
	letter-spacing: -.035em;
}

.sss-site :is(.sss-service-card, .sss-capability-card, .sss-industry-card, .sss-about-foundation__grid, .sss-about-disciplines, .sss-about-partner__cards) h3 {
	font-size: var(--type-card);
	font-weight: 650;
	line-height: 1.22;
	letter-spacing: -.025em;
}

.sss-site :is(.sss-section-label, .sss-mini-label, .sss-eyebrow, .sss-about-kicker, .sss-launch-hero__eyebrow) {
	font-size: var(--type-label);
	font-weight: 800;
	line-height: 1.35;
	letter-spacing: .12em;
}

.sss-site :is(.sss-launch-hero__lead, .sss-about-hero__lead, .sss-page-hero__copy, .sss-case-hero > .sss-container > p:not(.sss-eyebrow), .sss-not-found > .sss-container > p:not(.sss-eyebrow)) {
	font-size: var(--type-lead);
	font-weight: 400;
	line-height: 1.7;
}

.sss-site :is(.sss-heading-row > p, .sss-work-stack__heading > p, .sss-capabilities__heading > div:last-child > p, .sss-client-reviews__heading > p:not(.sss-section-label), .sss-intro__grid > div > p, .sss-detail-intro__grid .sss-prose, .sss-large-copy, .sss-service-panel__summary, .sss-work-panel__description, .sss-work-panel__result p, .sss-project-card__body p, .sss-case-content article p, .sss-tech-stack__caption p, .sss-cta__inner > div:last-child > p, .sss-about-story__copy > p:not(.sss-about-kicker), .sss-about-partner__intro > p:not(.sss-about-kicker), .sss-about-culture__copy > p:not(.sss-about-kicker), .sss-about-foundation__grid p, .sss-about-disciplines p, .sss-about-partner__cards p) {
	font-size: var(--type-body);
	font-weight: 400;
	line-height: 1.65;
}

.sss-site :is(.sss-btn, .sss-btn--small, .sss-text-link, .sss-filter button) {
	font-size: var(--type-action);
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: -.01em;
}

@media (max-width: 900px) {
	.sss-site {
		--type-page: clamp(2.35rem, 6vw, 3.6rem);
		--type-section: clamp(1.8rem, 4vw, 2.55rem);
		--type-feature: clamp(1.55rem, 3.2vw, 2.2rem);
		--type-card: 1.15rem;
		--type-body: .94rem;
		--type-lead: 1rem;
	}
}

@media (max-width: 640px) {
	.sss-site {
		--type-page: clamp(2.1rem, 9.2vw, 3rem);
		--type-section: clamp(1.65rem, 7.2vw, 2.3rem);
		--type-feature: clamp(1.45rem, 6.5vw, 1.9rem);
		--type-card: 1.08rem;
		--type-body: .9rem;
		--type-lead: .95rem;
		--type-label: .64rem;
		--type-action: .86rem;
	}

	.sss-site :is(.sss-launch-hero, .sss-about-hero, .sss-page-hero, .sss-case-hero, .sss-legal-hero, .sss-not-found) h1 {
		line-height: 1.08;
	}
}
