/**
 * Approved typography and spacing.
 * Loads after page styles and the core plugin so those sheets cannot
 * compress headings or collapse the homepage application cards.
 */

body .pb-home :is(h1, h2, h3),
body .pb-eq :is(h1, h2, h3),
body .pb-equip :is(h1, h2, h3),
body .pb-edu :is(h1, h2, h3),
body .pb-edl :is(h1, h2, h3),
body .pb-sys :is(h1, h2, h3),
body .pb-sl :is(h1, h2, h3),
body .pb-brands :is(h1, h2, h3),
body .pb-brand :is(h1, h2, h3) {
	line-height: var(--pb-leading-display-open);
}

body .pb-equip .pb-equip-title,
body .pb-edu .pb-edu-title,
body .pb-equip .pb-card-title,
body .pb-brand .pb-card-title,
body .pb-edu .pb-card-title,
body .pb-eq .pb-eq-product-name,
body .pb-equip .pb-equip-link-title,
body .pb-home .pb-home-card-title,
body .pb-home .pb-home-application-content h3 {
	font-weight: var(--pb-weight-medium);
	line-height: var(--pb-leading-title);
}

body p.pb-eyebrow.pb-eyebrow:has(+ :is(h1, h2, h3).pb-display),
body p.pb-home-eyebrow.pb-home-eyebrow:has(+ :is(h1, h2, h3)) {
	margin-bottom: 0;
}

body p.pb-eyebrow.pb-eyebrow + :is(h1, h2, h3).pb-display,
body p.pb-home-eyebrow.pb-home-eyebrow + :is(h1, h2, h3) {
	margin-top: 16px;
	padding-top: max(0px, calc((1em - 1lh) / 2));
}

body .pb-home p.pb-home-eyebrow + .pb-home-section-title,
body .pb-home .pb-home-education-copy p.pb-home-eyebrow + .pb-home-education-title,
body .pb-home .pb-home-support-copy p.pb-home-eyebrow + h2 {
	margin-top: 1.25rem;
	padding-top: 0;
}

body .pb-home p.pb-home-eyebrow + .pb-home-hero-title,
body .pb-home .pb-home-band-header p.pb-home-eyebrow + .pb-home-band-title {
	margin-top: 1rem;
	padding-top: 0;
}

body .pb-home .pb-home-application-link {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	min-width: 0;
	height: 100%;
}

body .pb-home .pb-home-application-media {
	position: relative;
	flex: 0 0 auto;
	width: 100%;
	overflow: hidden;
	aspect-ratio: 16 / 10;
}

body .pb-home .pb-home-application-media img {
	position: absolute;
	inset: 0;
	width: 100%;
	max-width: none;
	height: 100%;
	object-fit: cover;
}

body .pb-home .pb-home-application-content {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	min-width: 0;
	gap: 0.75rem;
	padding-top: 1rem;
}

body .pb-home .pb-home-application-content h3,
body .pb-home .pb-home-application-content > p {
	margin: 0;
}

body .pb-home .pb-home-application-content .pb-home-text-link {
	margin-top: auto;
}

@media (min-width: 640px) {
	body .pb-home p.pb-home-eyebrow + .pb-home-hero-title {
		margin-top: 1.5rem;
		padding-top: 0;
	}

	body .pb-home .pb-home-application-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 2rem 1.25rem;
	}
}

@media (min-width: 1024px) {
	body .pb-home .pb-home-systems p.pb-home-eyebrow + .pb-home-section-title {
		margin-top: 0;
		padding-top: 0;
	}

	body .pb-home .pb-home-application-grid {
		grid-template-columns: repeat(12, minmax(0, 1fr));
		column-gap: 1.5rem;
		row-gap: 2.5rem;
	}

	body .pb-home .pb-home-application,
	body .pb-home .pb-home-application:last-child:nth-child(odd) {
		grid-column: span 3;
		justify-self: stretch;
		width: auto;
	}

	body .pb-home .pb-home-application-grid > .pb-home-application:nth-child(5) {
		grid-column: 2 / span 3;
	}

	body .pb-home .pb-home-application-grid > .pb-home-application:nth-child(6) {
		grid-column: 5 / span 3;
	}

	body .pb-home .pb-home-application-grid > .pb-home-application:nth-child(7) {
		grid-column: 8 / span 3;
	}

	body .pb-home .pb-home-application-content {
		gap: 1rem;
		padding-top: 1.25rem;
	}
}
