/*
 * P0 pre-launch visual remediation.
 * Scope: hide unapproved empty media, rebalance oversized page titles, and
 * present explicitly illustrative context images without facility claims.
 */

.home .hesent-v3-media-slot:not(.has-active-media) {
	align-items: center;
	aspect-ratio: 4 / 3;
	background:
		linear-gradient(135deg, rgba(15, 35, 58, 0.035), rgba(15, 35, 58, 0.08)),
		#eef1f4;
	border: 1px solid rgba(15, 35, 58, 0.12);
	display: grid;
	justify-items: center;
	min-height: 22rem;
	overflow: hidden;
	position: relative;
}

.home .hesent-v3-media-slot:not(.has-active-media) > * {
	display: none;
}

.home .hesent-v3-media-slot:not(.has-active-media)::before {
	color: #65717e;
	content: "Image Unavailable";
	font-family: var(--hesent-v3-font-technical);
	font-size: 0.68rem;
	font-weight: 650;
	letter-spacing: 0.12em;
	position: relative;
	text-transform: uppercase;
	z-index: 1;
}

.home .hesent-v3-media-slot:not(.has-active-media)::after {
	border: 1px solid rgba(15, 35, 58, 0.12);
	content: "";
	inset: 1.25rem;
	pointer-events: none;
	position: absolute;
}

.page-id-14 .category-hero .hesent-p0-guide-components-hero {
	margin: 0;
	overflow: hidden;
	aspect-ratio: 16 / 9;
}

.page-id-14 .category-hero .hesent-p0-guide-components-hero img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.home .hesent-v3-media-slot.has-active-media {
	background: none;
	display: block;
	min-height: 0;
	overflow: hidden;
}

.home .hesent-v3-media-slot__frame {
	width: 100%;
	height: 100%;
}

.home .hesent-v3-media-slot__image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.home .hesent-v3-media-slot--hero,
.home .hesent-v3-media-slot--cnc {
	aspect-ratio: 16 / 10;
}

.home .hesent-v3-media-slot--grinding {
	aspect-ratio: 4 / 5;
}

.home .hesent-v3-media-slot--component,
.home .hesent-v3-media-slot--inspection,
.home .hesent-v3-media-slot--documentation {
	aspect-ratio: 4 / 3;
}

.home .hesent-v3-media-slot--measurement {
	aspect-ratio: 1;
}

.home .hesent-v3-media-slot--supply {
	aspect-ratio: 3 / 2;
}

.home .hesent-v3-manufacturing-media,
.home .hesent-v3-quality-media__details {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.home .hesent-v3-manufacturing-media .hesent-v3-media-slot--cnc,
.home .hesent-v3-quality-media > .hesent-v3-media-slot--inspection {
	grid-column: 1 / -1;
}

.page .wp-block-post-title.has-display-font-size,
.page .category-hero h1.has-display-font-size {
	font-size: clamp(2.75rem, 4vw, 3.75rem) !important;
	line-height: 1.05;
	max-width: 20ch;
}

@media (min-width: 783px) {
	.page-id-13 .category-hero--archive > .wp-block-group {
		align-items: center;
		column-gap: clamp(3rem, 6vw, 6rem);
		display: grid;
		grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
		max-width: var(--wp--style--global--wide-size, 80rem);
	}

	.page-id-13 .category-hero--archive > .wp-block-group > *:not(.hesent-p0-products-ecosystem-hero) {
		grid-column: 1;
		margin-left: 0 !important;
		margin-right: 0 !important;
		max-width: none;
		width: auto;
	}

	.page-id-13 .category-hero--archive .hesent-p0-products-ecosystem-hero {
		align-self: stretch;
		grid-column: 2;
		grid-row: 1 / 7;
		margin: 0 !important;
		max-width: none;
		min-height: 32rem;
		width: 100%;
	}

	.page-id-13 .category-hero--archive .hesent-p0-products-ecosystem-hero img {
		display: block;
		height: 100%;
		object-fit: cover;
		width: 100%;
	}
}

.hesent-p0-context-media {
	margin-block: clamp(1.75rem, 4vw, 3.5rem);
	max-width: 60rem;
}

.hesent-p0-context-media img {
	display: block;
	width: 100%;
	height: auto;
	max-height: 34rem;
	object-fit: cover;
	border-radius: 0.35rem;
}

.hesent-p0-context-media figcaption {
	margin-top: 0.65rem;
	color: #566576;
	font-size: 0.875rem;
	line-height: 1.5;
}

@media (max-width: 782px) {
	.page .wp-block-post-title.has-display-font-size,
	.page .category-hero h1.has-display-font-size {
		font-size: clamp(2.25rem, 10vw, 2.75rem) !important;
		line-height: 1.08;
	}

	.hesent-p0-context-media {
		margin-block: 1.5rem 2rem;
	}

	.hesent-p0-context-media img {
		aspect-ratio: 4 / 3;
		max-height: none;
	}

	.page-id-14 .category-hero .hesent-p0-guide-components-hero,
	.home .hesent-v3-media-slot.has-active-media {
		aspect-ratio: 4 / 3;
	}

	.home .hesent-v3-manufacturing-media,
	.home .hesent-v3-quality-media__details {
		grid-template-columns: 1fr;
	}
}

/* Pre-launch layout and interaction sprint. */
:root {
	--hesent-layout-section-space: clamp(3.5rem, 5.5vw, 5.75rem);
}

body:not(.home):not(.single-hesent_product) main h1,
body:not(.home):not(.single-hesent_product) main .wp-block-post-title {
	font-size: clamp(2.75rem, 4vw, 3.75rem) !important;
	letter-spacing: -0.04em;
	line-height: 1.05;
	max-width: 20ch;
	text-wrap: balance;
}

body:not(.home):not(.single-hesent_product) main h2 {
	font-size: clamp(1.75rem, 2.7vw, 2.5rem) !important;
	letter-spacing: -0.03em;
	line-height: 1.12;
	text-wrap: balance;
}

body:not(.home):not(.single-hesent_product) main h3 {
	font-size: clamp(1.125rem, 1.5vw, 1.375rem) !important;
	line-height: 1.25;
}

main a[href*="/request-a-quote/"]:not(.wp-block-button__link) {
	align-items: center;
	border-bottom: 2px solid currentColor;
	color: #b94320;
	display: inline-flex;
	font-weight: 700;
	min-height: 2.75rem;
	padding-block: 0.35rem;
	text-decoration: none;
	transition: color 180ms ease, border-color 180ms ease;
}

main a[href*="/request-a-quote/"]:not(.wp-block-button__link):hover {
	border-color: #0f233a;
	color: #0f233a;
}

.home .hesent-v3-home-hero {
	min-height: clamp(36rem, calc(82svh - 4rem), 44rem);
}

.home .hesent-v3-home-hero__copy {
	padding-block: clamp(3rem, 5vw, 5rem);
}

.home .hesent-v3-home-hero__copy h1 {
	font-size: clamp(2.75rem, 3.85vw, 3.5rem);
	line-height: 1.02;
	max-width: 13ch;
}

.home .hesent-v3-home-hero__media {
	min-height: 32rem;
}

.home .hesent-v3-chapter {
	padding-block: var(--hesent-layout-section-space);
}

.home .hesent-v3-section {
	padding-block: clamp(3rem, 4.5vw, 4.75rem);
}

.home .hesent-v3-section-head {
	gap: clamp(1.5rem, 3vw, 3rem);
	margin-bottom: clamp(2rem, 3.5vw, 3.75rem);
}

.home .hesent-v3-editorial {
	align-items: start;
	gap: clamp(2.5rem, 5vw, 5.5rem);
}

.home .hesent-v3-editorial > * {
	margin-block-start: 0 !important;
}

.home .hesent-v3-supply__grid {
	align-items: start;
}

.home .hesent-v3-supply__grid > * {
	align-self: start;
	margin-block-start: 0 !important;
}

.home .hesent-v3-applications__media {
	min-height: 34rem;
}

.home .hesent-v3-applications__copy {
	padding: clamp(3.25rem, 6vw, 5.5rem);
}

.home .hesent-v3-home-rfq-wrap {
	padding-block: clamp(3.5rem, 5vw, 5rem);
}

.home .hesent-v3-home-rfq {
	border-left-width: 6px;
	box-shadow: 0 1.25rem 3rem rgba(14, 35, 57, 0.12);
}

.home .hesent-v3-home-rfq__action .wp-block-button__link {
	min-height: 3.5rem;
	padding-inline: 1.8rem;
}

@media (hover: hover) and (prefers-reduced-motion: no-preference) {
	.hesent-v3-system-row,
	.hesent-v3-supply__path,
	.hesent-v3-evidence,
	.hesent-precision-punches-page :where(.precision-punches-type-card, .precision-punches-application-card, .precision-punches-card) {
		transition: box-shadow 180ms ease, transform 180ms ease;
	}

	.hesent-v3-system-row:hover,
	.hesent-v3-supply__path:hover,
	.hesent-v3-evidence:hover,
	.hesent-precision-punches-page :where(.precision-punches-type-card, .precision-punches-application-card, .precision-punches-card):hover {
		box-shadow: 0 1rem 2.25rem rgba(14, 35, 57, 0.1);
		transform: translateY(-3px);
	}

	.hesent-v3 :where(.wp-block-button__link, .hesent-v3-text-link a) {
		transition-duration: 180ms;
	}

	.home .hesent-v3-media-slot.has-active-media {
		overflow: hidden;
	}

	.home .hesent-v3-media-slot.has-active-media img {
		transition: transform 480ms cubic-bezier(0.2, 0.7, 0.2, 1);
	}

	.home .hesent-v3-media-slot.has-active-media:hover img {
		transform: scale(1.025);
	}
}

@media (prefers-reduced-motion: no-preference) {
	html.hesent-home-motion body.home main > section.hesent-motion-target {
		opacity: 0;
		transform: translateY(1rem);
		transition:
			opacity 420ms cubic-bezier(0.2, 0.7, 0.2, 1),
			transform 420ms cubic-bezier(0.2, 0.7, 0.2, 1);
	}

	html.hesent-home-motion body.home main > section.hesent-motion-target.is-revealed {
		opacity: 1;
		transform: translateY(0);
	}
}

@media (max-width: 782px) {
	body:not(.home):not(.single-hesent_product) main h1,
	body:not(.home):not(.single-hesent_product) main .wp-block-post-title {
		font-size: clamp(2.25rem, 10vw, 2.75rem) !important;
		line-height: 1.08;
	}

	body:not(.home):not(.single-hesent_product) main h2 {
		font-size: clamp(1.75rem, 8vw, 2.25rem) !important;
	}

	.home .hesent-v3-home-hero {
		min-height: auto;
	}

	.home .hesent-v3-home-hero__copy {
		padding-block: 3rem;
	}

	.home .hesent-v3-home-hero__copy h1 {
		font-size: clamp(2.25rem, 10vw, 2.65rem);
		max-width: 15ch;
	}

	.home .hesent-v3-home-hero__media {
		min-height: 0;
	}

	.home .hesent-v3-applications__media {
		min-height: 22rem;
	}

	.home .hesent-v3-media-slot:not(.has-active-media) {
		min-height: 18rem;
	}

	.home .hesent-v3-home-rfq {
		gap: 2rem;
	}

	.home .hesent-v3-home-rfq__action,
	.home .hesent-v3-home-rfq__action .wp-block-buttons,
	.home .hesent-v3-home-rfq__action .wp-block-button,
	.home .hesent-v3-home-rfq__action .wp-block-button__link {
		width: 100%;
	}
}

@media (prefers-reduced-motion: reduce) {
	.hesent-v3 *,
	.hesent-v3 *::before,
	.hesent-v3 *::after,
	.hesent-precision-punches-page *,
	.hesent-precision-punches-page *::before,
	.hesent-precision-punches-page *::after {
		animation: none !important;
		scroll-behavior: auto !important;
		transition: none !important;
	}
}

/* Product experience and RFQ conversion sprint.
 * Scope: reusable product modules explicitly added to product-facing pages.
 */
.hesent-product-module-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(1rem, 2vw, 1.5rem);
	margin-block: clamp(1.75rem, 3vw, 2.5rem);
}

.hesent-product-module-grid--three {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.hesent-product-module {
	display: flex;
	flex-direction: column;
	min-width: 0;
	padding: clamp(1.25rem, 2vw, 1.6rem);
	border: 1px solid rgba(15, 35, 58, 0.14);
	border-top: 3px solid #1b5fa7;
	background: #fff;
	box-shadow: 0 0.45rem 1.35rem rgba(15, 35, 58, 0.055);
}

.hesent-product-module figure {
	margin: calc(-1 * clamp(1.25rem, 2vw, 1.6rem)) calc(-1 * clamp(1.25rem, 2vw, 1.6rem)) 1.25rem;
}

.hesent-product-module figure img {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
}

.hesent-product-module__indicator {
	display: inline-flex;
	align-self: flex-start;
	margin: 0 0 0.75rem;
	padding: 0.3rem 0.55rem;
	background: #eaf1f8;
	color: #174b78;
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	line-height: 1.2;
	text-transform: uppercase;
}

.hesent-product-module h3 {
	margin: 0;
}

.hesent-product-module__description {
	margin-block: 0.75rem 1rem;
	color: #3f4e5d;
	line-height: 1.55;
}

.hesent-product-module__attributes {
	display: grid;
	gap: 0;
	margin: 0;
	font-size: 0.9rem;
}

.hesent-product-module__attributes > div {
	display: grid;
	grid-template-columns: minmax(6.5rem, 0.85fr) minmax(0, 1.5fr);
	gap: 0.75rem;
	padding-block: 0.55rem;
	border-top: 1px solid rgba(15, 35, 58, 0.1);
}

.hesent-product-module__attributes dt {
	color: #536273;
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.045em;
	line-height: 1.45;
	text-transform: uppercase;
}

.hesent-product-module__attributes dd {
	margin: 0;
	color: #172a3d;
	font-weight: 600;
	line-height: 1.45;
}

.hesent-product-module__actions,
.hesent-product-page-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.65rem;
	margin-top: auto;
	padding-top: 1.15rem;
}

.hesent-product-module__actions a,
.hesent-product-page-actions a {
	align-items: center;
	display: inline-flex;
	justify-content: center;
	min-height: 2.75rem;
	padding: 0.65rem 1rem;
	font-size: 0.85rem;
	font-weight: 800;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
}

.hesent-product-module__primary,
.hesent-product-page-actions__primary {
	border: 1px solid #0f233a;
	background: #0f233a;
	color: #fff;
}

.hesent-product-module__secondary,
.hesent-product-page-actions__secondary {
	border: 1px solid #0f233a;
	background: transparent;
	color: #0f233a;
}

.hesent-product-module__actions a:hover,
.hesent-product-page-actions a:hover {
	border-color: #b94320;
	background: #b94320;
	color: #fff;
}

.hesent-product-rfq-band {
	display: grid;
	grid-template-columns: minmax(0, 1.6fr) auto;
	align-items: center;
	gap: 1.5rem;
	margin-top: clamp(2rem, 4vw, 3.5rem);
	padding: clamp(1.5rem, 3vw, 2.25rem);
	border-left: 5px solid #b94320;
	background: #eef3f7;
}

.hesent-product-rfq-band h2,
.hesent-product-rfq-band h3,
.hesent-product-rfq-band p {
	margin-top: 0;
}

.hesent-product-rfq-band p:last-child {
	margin-bottom: 0;
}

@media (hover: hover) and (prefers-reduced-motion: no-preference) {
	.hesent-product-module {
		transition: box-shadow 180ms ease, transform 180ms ease;
	}

	.hesent-product-module:hover {
		box-shadow: 0 1rem 2.25rem rgba(14, 35, 57, 0.1);
		transform: translateY(-3px);
	}
}

@media (max-width: 1000px) {
	.hesent-product-module-grid--three {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 620px) {
	.hesent-product-module-grid,
	.hesent-product-module-grid--three,
	.hesent-product-rfq-band {
		grid-template-columns: 1fr;
	}

	.hesent-product-module__attributes > div {
		grid-template-columns: 1fr;
		gap: 0.15rem;
	}

	.hesent-product-module__actions,
	.hesent-product-page-actions {
		flex-direction: column;
	}

	.hesent-product-module__actions a,
	.hesent-product-page-actions a {
		width: 100%;
	}
}
