/**
 * UTC Group responsive typography standard
 * Scope: public theme pages, posts, forms, navigation, and commerce/account UI.
 * Careers display typography remains component-owned; shared accessibility
 * rules and explicit Careers refinements are included at the end.
 */

:root {
	--utc-font-body: "Open Sans", "Noto Sans", "Segoe UI", Arial, sans-serif;
	--utc-font-display: Raleway, "Open Sans", "Noto Sans", "Segoe UI", Arial, sans-serif;
	--utc-text: #3f4650;
	--utc-heading: #30343a;
	--utc-reading-width: 74ch;
}

html {
	font-size: 100%;
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
}

body {
	color: var(--utc-text);
	font-family: var(--utc-font-body);
	font-size: 16px;
	font-synthesis: none;
	line-height: 1.65;
	text-rendering: optimizeLegibility;
}

button,
input,
optgroup,
select,
textarea {
	font-family: inherit;
	font-size: 16px;
	line-height: 1.5;
}

input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
select,
textarea {
	min-height: 44px;
}

textarea {
	line-height: 1.55;
}

body:not(.utc-careers-site) h1,
body:not(.utc-careers-site) h2,
body:not(.utc-careers-site) h3,
body:not(.utc-careers-site) h4,
body:not(.utc-careers-site) h5,
body:not(.utc-careers-site) h6,
body:not(.utc-careers-site) .h1,
body:not(.utc-careers-site) .h2,
body:not(.utc-careers-site) .h3,
body:not(.utc-careers-site) .h4,
body:not(.utc-careers-site) .h5,
body:not(.utc-careers-site) .h6 {
	color: var(--utc-heading);
	font-family: var(--utc-font-display);
	font-weight: 700;
	letter-spacing: -.015em;
	text-wrap: balance;
}

body:not(.utc-careers-site) .main h1,
body:not(.utc-careers-site) .full_page_photo h1 {
	font-size: clamp(2.25rem, 4.2vw, 3.75rem);
	line-height: 1.08;
}

body:not(.utc-careers-site) .main h2 {
	font-size: clamp(1.75rem, 3vw, 2.625rem);
	line-height: 1.16;
}

body:not(.utc-careers-site) .main h3 {
	font-size: clamp(1.375rem, 2vw, 1.875rem);
	line-height: 1.25;
}

body:not(.utc-careers-site) .main h4 {
	font-size: clamp(1.125rem, 1.45vw, 1.375rem);
	line-height: 1.32;
}

body:not(.utc-careers-site) .main h5 {
	font-size: 1.0625rem;
	line-height: 1.4;
}

body:not(.utc-careers-site) .main h6 {
	font-size: .9375rem;
	line-height: 1.45;
}

body:not(.utc-careers-site) .main p,
body:not(.utc-careers-site) .main li,
body:not(.utc-careers-site) .main dd,
body:not(.utc-careers-site) .main td,
body:not(.utc-careers-site) .main th {
	font-size: 1rem;
	line-height: 1.7;
}

body:not(.utc-careers-site) article.post .post_content,
body:not(.utc-careers-site) .single_content,
body:not(.utc-careers-site) .page_content {
	overflow-wrap: anywhere;
}

body:not(.utc-careers-site) article.post .post_content > p,
body:not(.utc-careers-site) article.post .post_content > ul,
body:not(.utc-careers-site) article.post .post_content > ol {
	max-width: var(--utc-reading-width);
}

body:not(.utc-careers-site) article.post .post_header h2.post_title {
	font-size: clamp(1.75rem, 3vw, 2.625rem);
	line-height: 1.18;
}

body:not(.utc-careers-site) .section_header {
	font-family: var(--utc-font-display);
	font-size: clamp(1.75rem, 3vw, 2.625rem);
	line-height: 1.2;
}

body:not(.utc-careers-site) .section_header.fancy small,
body:not(.utc-careers-site) .section_header.elegant small {
	font-size: clamp(.9375rem, 1.2vw, 1.125rem);
	line-height: 1.5;
}

body:not(.utc-careers-site) small,
body:not(.utc-careers-site) .small,
body:not(.utc-careers-site) .post_sub,
body:not(.utc-careers-site) .wp-caption-text {
	font-size: .875rem;
	line-height: 1.55;
}

#mainmenu > li > a,
#mainmenu .dropdown-menu > li > a {
	font-family: var(--utc-font-body);
	font-size: .875rem;
	line-height: 1.4;
}

footer,
footer p,
footer li,
footer a,
.copyright {
	font-size: .875rem;
	line-height: 1.6;
}

.btn,
button,
input[type="button"],
input[type="submit"],
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button {
	font-size: .9375rem;
	font-weight: 700;
	line-height: 1.35;
}

.woocommerce,
.user-registration,
.ur-frontend-form,
.wpcf7,
.contact_form {
	font-size: 1rem;
	line-height: 1.65;
}

.main a,
.utc-careers a {
	text-underline-offset: .14em;
}

.main :focus-visible,
.utc-careers :focus-visible,
header :focus-visible,
footer :focus-visible {
	outline: 3px solid rgba(23, 105, 170, .55);
	outline-offset: 3px;
}

.utc-careers {
	font-size: 16px;
}

.utc-careers .utc-careers-filters label span,
.utc-careers .utc-careers-job-row dt,
.utc-careers .utc-careers-job-meta dt {
	font-size: .8125rem;
}

.utc-careers .utc-careers-video-note,
.utc-careers .utc-careers-apply-note,
.utc-careers .utc-careers-secondary-links a,
#mainmenu .utc-careers-menu-parent > .dropdown-menu > li > a {
	font-size: .875rem;
}

@media (max-width: 991px) {
	body {
		font-size: 16px;
	}

	#mainmenu > li > a,
	#mainmenu .dropdown-menu > li > a {
		font-size: .9375rem;
	}

	body:not(.utc-careers-site) .section_header.fancy.centered {
		padding-left: 14%;
		padding-right: 14%;
	}

	body:not(.utc-careers-site) .section_header.fancy.centered::before,
	body:not(.utc-careers-site) .section_header.fancy.centered::after {
		width: 14%;
	}
}

@media (max-width: 767px) {
	body:not(.utc-careers-site) .main h1,
	body:not(.utc-careers-site) .full_page_photo h1 {
		font-size: clamp(2rem, 10vw, 2.75rem);
	}

	body:not(.utc-careers-site) .main h2,
	body:not(.utc-careers-site) .section_header,
	body:not(.utc-careers-site) article.post .post_header h2.post_title {
		font-size: clamp(1.625rem, 7.5vw, 2.125rem);
	}

	body:not(.utc-careers-site) .main h3 {
		font-size: clamp(1.25rem, 5.7vw, 1.625rem);
	}

	body:not(.utc-careers-site) .section_header.fancy.centered {
		padding-left: 0;
		padding-right: 0;
	}

	body:not(.utc-careers-site) .section_header.fancy.centered::before,
	body:not(.utc-careers-site) .section_header.fancy.centered::after {
		display: none;
	}

	footer,
	footer p,
	footer li,
	footer a,
	.copyright {
		font-size: .9375rem;
	}
}

@media (max-width: 479px) {
	body:not(.utc-careers-site) .main p,
	body:not(.utc-careers-site) .main li,
	body:not(.utc-careers-site) .main dd,
	body:not(.utc-careers-site) .main td,
	body:not(.utc-careers-site) .main th {
		line-height: 1.65;
	}
}

@media (prefers-reduced-motion: reduce) {
	html:focus-within {
		scroll-behavior: auto;
	}
}
