/**
 * Official type scale — desktop and mobile sizes with weight variants.
 *
 * Desktop: H1 36 | H2 24 | H3 20 | P1 16 | P2 14 | Small 12 (px)
 * Mobile:  H1 24 | H2 20 | H3 16 | P1 14 | P2 12 | Small 10 (px)
 */

html {
	font-size: 16px;
}

/* --- Base body (Paragraph 1, Regular) --- */
body,
button,
input,
select,
textarea {
	font-family: var(--font-primary);
	font-size: var(--tcl-type-p1-size);
	font-weight: var(--font-normal);
	line-height: var(--tcl-type-body-line-height);
	text-align: start;
}

body.lang-hi,
body.lang-hi button,
body.lang-hi input,
body.lang-hi select,
body.lang-hi textarea {
	font-family: var(--font-devanagari);
}

/* --- Semantic headings --- */
h1,
.h1 {
	font-family: var(--font-heading);
	font-size: var(--tcl-type-h1-size);
	font-weight: var(--font-bold);
	line-height: var(--tcl-type-heading-line-height);
}

h2,
.h2 {
	font-family: var(--font-heading);
	font-size: var(--tcl-type-h2-size);
	font-weight: var(--font-bold);
	line-height: var(--tcl-type-heading-line-height);
}

h3,
.h3,
.subtitle {
	font-family: var(--font-heading);
	font-size: var(--tcl-type-h3-size);
	font-weight: var(--font-semibold); /* Semi Bold */
	line-height: var(--tcl-type-heading-line-height);
}

/* Body copy: Regular; headings use Bold / Semi Bold per scale */
p,
.entry-content p {
	font-weight: var(--font-normal);
}

h4,
.h4 {
	font-family: var(--font-heading);
	font-size: var(--tcl-type-p1-size);
	font-weight: var(--font-bold);
	line-height: var(--tcl-type-body-line-height);
}

h5,
.h5 {
	font-family: var(--font-heading);
	font-size: var(--tcl-type-p2-size);
	font-weight: var(--font-semibold);
	line-height: var(--tcl-type-body-line-height);
}

h6,
.h6 {
	font-family: var(--font-heading);
	font-size: var(--tcl-type-small-size);
	font-weight: var(--font-semibold);
	line-height: var(--tcl-type-body-line-height);
}

p,
li,
dd,
dt {
	font-size: inherit;
	font-weight: inherit;
	line-height: var(--tcl-type-body-line-height);
}

small,
.small-text,
.caption {
	font-size: var(--tcl-type-small-size);
	font-weight: var(--font-normal);
	line-height: var(--tcl-type-body-line-height);
}

/* --- Scale utilities (size) --- */
.tcl-type-h1 {
	font-size: var(--tcl-type-h1-size);
	line-height: var(--tcl-type-heading-line-height);
}

.tcl-type-h2 {
	font-size: var(--tcl-type-h2-size);
	line-height: var(--tcl-type-heading-line-height);
}

.tcl-type-h3,
.tcl-type-subtitle {
	font-size: var(--tcl-type-h3-size);
	line-height: var(--tcl-type-heading-line-height);
}

.tcl-type-p1 {
	font-size: var(--tcl-type-p1-size);
	line-height: var(--tcl-type-body-line-height);
}

.tcl-type-p2 {
	font-size: var(--tcl-type-p2-size);
	line-height: var(--tcl-type-body-line-height);
}

.tcl-type-small {
	font-size: var(--tcl-type-small-size);
	line-height: var(--tcl-type-body-line-height);
}

/* --- Weight utilities --- */
.tcl-type--bold {
	font-weight: var(--font-bold);
}

.tcl-type--semibold {
	font-weight: var(--font-semibold);
}

.tcl-type--medium {
	font-weight: var(--font-medium);
}

.tcl-type--regular {
	font-weight: var(--font-normal);
}

/* Heading 1 weights */
.tcl-type-h1--bold,
.tcl-type-h1.tcl-type--bold {
	font-weight: var(--font-bold);
}

.tcl-type-h1--semibold,
.tcl-type-h1.tcl-type--semibold {
	font-weight: var(--font-semibold);
}

.tcl-type-h1--medium,
.tcl-type-h1.tcl-type--medium {
	font-weight: var(--font-medium);
}

/* Heading 2 weights */
.tcl-type-h2--bold,
.tcl-type-h2.tcl-type--bold {
	font-weight: var(--font-bold);
}

.tcl-type-h2--semibold,
.tcl-type-h2.tcl-type--semibold {
	font-weight: var(--font-semibold);
}

.tcl-type-h2--medium,
.tcl-type-h2.tcl-type--medium {
	font-weight: var(--font-medium);
}

/* Heading 3 / Subtitle weights */
.tcl-type-h3--bold,
.tcl-type-subtitle--bold,
.tcl-type-h3.tcl-type--bold,
.tcl-type-subtitle.tcl-type--bold {
	font-weight: var(--font-bold);
}

.tcl-type-h3--semibold,
.tcl-type-subtitle--semibold,
.tcl-type-h3.tcl-type--semibold,
.tcl-type-subtitle.tcl-type--semibold {
	font-weight: var(--font-semibold);
}

.tcl-type-h3--medium,
.tcl-type-subtitle--medium,
.tcl-type-h3.tcl-type--medium,
.tcl-type-subtitle.tcl-type--medium {
	font-weight: var(--font-medium);
}

/* Paragraph 1 weights */
.tcl-type-p1--bold,
.tcl-type-p1.tcl-type--bold {
	font-weight: var(--font-bold);
}

.tcl-type-p1--regular,
.tcl-type-p1.tcl-type--regular {
	font-weight: var(--font-normal);
}

/* Paragraph 2 weights */
.tcl-type-p2--bold,
.tcl-type-p2.tcl-type--bold {
	font-weight: var(--font-bold);
}

.tcl-type-p2--semibold,
.tcl-type-p2.tcl-type--semibold {
	font-weight: var(--font-semibold);
}

.tcl-type-p2--regular,
.tcl-type-p2.tcl-type--regular {
	font-weight: var(--font-normal);
}

/* Small text weights */
.tcl-type-small--semibold,
.tcl-type-small.tcl-type--semibold {
	font-weight: var(--font-semibold);
}

.tcl-type-small--regular,
.tcl-type-small.tcl-type--regular {
	font-weight: var(--font-normal);
}

/* Section / page title hooks */
.section-title,
.tcl-section-head__title,
.tcl-sitemap-hero h1 {
	font-size: var(--tcl-type-h2-size);
	font-weight: var(--font-bold);
	line-height: var(--tcl-type-heading-line-height);
}

.page-title,
.entry-title,
.eoi-page-hero h1,
.tcl-inner-hero h1,
.gallery-title,
.leadership-hero h1,
.cvo-page .gallery-title,
.contact-page .gallery-title {
	font-size: var(--tcl-type-h1-size);
	font-weight: var(--font-bold);
	line-height: var(--tcl-type-heading-line-height);
}

.cvo-page .cvo-section-title,
.officer-name,
.contact-title,
.about-title,
.contact-page .contact-info-card h3,
.tcl-home-product-card__title,
.board-page .section-title,
.products-count {
	font-size: var(--tcl-type-h3-size);
	line-height: var(--tcl-type-heading-line-height);
}

.about-lead,
.leadership-hero p,
.eoi-page-hero__intro,
.tcl-inner-hero__intro,
.section-description {
	font-size: var(--tcl-type-h3-size);
	line-height: var(--tcl-type-body-line-height);
}

.cvo-page .cvo-placeholder,
.cvo-page .contact-item p,
.about-description,
.tcl-about-home .about-description {
	font-size: var(--tcl-type-p2-size);
	line-height: var(--tcl-type-body-line-height);
}

.section-badge,
.tcl-about-home .tcl-section-head .section-badge,
.tcl-about-home .about-video__eyebrow {
	font-size: var(--tcl-type-small-size);
	font-weight: var(--font-bold);
	letter-spacing: 0.1em;
}

.tcl-home-special-notifications__date,
.tcl-home-product-card__cta,
.contact-page .meta-item {
	font-size: var(--tcl-type-p2-size);
}

/* Mobile scale */
@media (max-width: 768px) {
	:root {
		--tcl-type-h1-size: 1.5rem;    /* 24px */
		--tcl-type-h2-size: 1.25rem;   /* 20px */
		--tcl-type-h3-size: 1rem;      /* 16px */
		--tcl-type-p1-size: 0.875rem; /* 14px */
		--tcl-type-p2-size: 0.75rem;  /* 12px */
		--tcl-type-small-size: 0.625rem; /* 10px */
		--tcl-content-font-size: var(--tcl-type-p1-size);
	}
}
