/*
 * European Standards application compatibility layer.
 *
 * This file is deliberately narrow. It never applies article typography, form layout,
 * colour or sizing rules to an entire .entry-content container.
 */

/* Public migration warnings are never part of the visitor experience. */
.esv-admin-warning,
.builder-dependency-warning,
.builder-warning,
[data-builder-warning],
[data-esv-public-warning] {
	display: none !important;
}

/* Hidden SVG symbol libraries must never become page-sized graphics. */
svg.es-mdrc-sprite,
svg.esch-sprite,
svg.esih-sprite,
svg.es-svg-sprite,
svg.svg-sprite,
#es-mdrc-page > svg:not([viewBox]),
#es-contact-page > svg:not([viewBox]),
.esih > svg:not([viewBox]),
.esch > svg:not([viewBox]),
.elementor-widget-html > svg:has(> symbol),
.esv-application-output > svg:has(> symbol) {
	position: absolute !important;
	width: 0 !important;
	height: 0 !important;
	min-width: 0 !important;
	min-height: 0 !important;
	max-width: 0 !important;
	max-height: 0 !important;
	padding: 0 !important;
	margin: 0 !important;
	overflow: hidden !important;
	pointer-events: none !important;
}

/* Normal interface icons remain small and inline. */
#es-mdrc-page svg[viewBox],
#es-contact-page svg[viewBox],
.esih svg[viewBox],
.esch svg[viewBox],
.es-iso svg[viewBox],
.eslab svg[viewBox],
.estop svg[viewBox],
.es-cp svg[viewBox] {
	max-width: 1.5em;
	max-height: 1.5em;
	flex: 0 0 auto;
	vertical-align: -0.18em;
}

/* The application output owns its dimensions and typography. */
.esv-application-output,
.esv-application-output > .es-iso,
.esv-application-output > .eslab,
.esv-application-output > .estop,
.esv-application-output > .es-cp,
.esv-application-output > #es-mdrc-page,
.esv-application-output > #es-ceg-page,
.esv-application-output > #es-hen-page,
.esv-application-output > #es-cen-page,
.esv-application-output > #es-cel-page,
.esv-application-output > .esih,
.esv-application-output > .esch {
	min-width: 0;
}

/* ISO auditor hero contrast. */
.esv-application-output .es-hero,
.esv-application-output .es-iso .es-hero {
	color: #ffffff;
}

.esv-application-output .es-hero h1,
.esv-application-output .es-hero h2,
.esv-application-output .es-hero h3,
.esv-application-output .es-hero .es-hero__title,
.esv-application-output .es-hero .es-hero__panel strong {
	color: #ffffff !important;
}

.esv-application-output .es-hero .es-hero__lead,
.esv-application-output .es-hero .es-proof-list li,
.esv-application-output .es-hero .es-hero__panel li,
.esv-application-output .es-hero .es-hero__panel p,
.esv-application-output .es-hero .es-panel-note {
	color: rgba(255, 255, 255, 0.9) !important;
}

.esv-application-output .es-hero .es-eyebrow,
.esv-application-output .es-hero .es-panel-kicker {
	color: #ffdc62 !important;
}

/* Accredited laboratories hero contrast. */
.esv-application-output .eslab-hero {
	color: #ffffff;
}

.esv-application-output .eslab-hero h1,
.esv-application-output .eslab-hero h2,
.esv-application-output .eslab-hero h3,
.esv-application-output .eslab-hero .eslab-hero__statement,
.esv-application-output .eslab-hero .eslab-hero__title,
.esv-application-output .eslab-hero .eslab-hero__panel strong {
	color: #ffffff !important;
}

.esv-application-output .eslab-hero .eslab-hero__lead,
.esv-application-output .eslab-hero .eslab-proof-list li,
.esv-application-output .eslab-hero .eslab-hero__panel li,
.esv-application-output .eslab-hero .eslab-hero__panel p,
.esv-application-output .eslab-hero .eslab-panel-note {
	color: rgba(255, 255, 255, 0.9) !important;
}

.esv-application-output .eslab-hero .eslab-eyebrow,
.esv-application-output .eslab-hero .eslab-panel-kicker {
	color: #ffdc62 !important;
}

/* Top standards hero contrast. */
.esv-application-output .estop-hero {
	color: #ffffff;
}

.esv-application-output .estop-hero h1,
.esv-application-output .estop-hero h2,
.esv-application-output .estop-hero h3,
.esv-application-output .estop-hero .estop-hero__title,
.esv-application-output .estop-hero .estop-hero__panel strong {
	color: #ffffff !important;
}

.esv-application-output .estop-hero .estop-hero__lead,
.esv-application-output .estop-hero .estop-hero__proof li,
.esv-application-output .estop-hero .estop-hero__panel p,
.esv-application-output .estop-hero .estop-hero__panel li {
	color: rgba(255, 255, 255, 0.9) !important;
}

/* Commercial partnerships hero contrast. */
.esv-application-output .es-cp__hero {
	color: #ffffff;
}

.esv-application-output .es-cp__hero h1,
.esv-application-output .es-cp__hero h2,
.esv-application-output .es-cp__hero h3,
.esv-application-output .es-cp__hero .es-cp__hero-title,
.esv-application-output .es-cp__hero .es-cp__hero-card strong {
	color: #ffffff !important;
}

.esv-application-output .es-cp__hero .es-cp__lead,
.esv-application-output .es-cp__hero .es-cp__intro,
.esv-application-output .es-cp__hero .es-cp__hero-points li,
.esv-application-output .es-cp__hero .es-cp__hero-card li,
.esv-application-output .es-cp__hero .es-cp__hero-card p,
.esv-application-output .es-cp__hero .es-cp__hero-card-note {
	color: rgba(255, 255, 255, 0.9) !important;
}

/* MDR and other dark application heroes. */
.esv-application-output #es-mdrc-page .es-mdrc-hero,
.esv-application-output #es-mdrc-page [class*="mdrc-hero"],
.esv-application-output #es-ceg-page .es-ceg-hero,
.esv-application-output #es-hen-page .es-hen-hero,
.esv-application-output #es-cen-page .es-cen-hero,
.esv-application-output #es-cel-page .es-cel-hero,
.esv-application-output .esih-hero,
.esv-application-output .esch-hero {
	color: #ffffff;
}

.esv-application-output #es-mdrc-page .es-mdrc-hero h1,
.esv-application-output #es-mdrc-page .es-mdrc-hero h2,
.esv-application-output #es-mdrc-page .es-mdrc-hero h3,
.esv-application-output #es-mdrc-page [class*="mdrc-hero"] h1,
.esv-application-output #es-mdrc-page [class*="mdrc-hero"] h2,
.esv-application-output #es-mdrc-page [class*="mdrc-hero"] h3,
.esv-application-output #es-ceg-page .es-ceg-hero h1,
.esv-application-output #es-hen-page .es-hen-hero h1,
.esv-application-output #es-cen-page .es-cen-hero h1,
.esv-application-output #es-cel-page .es-cel-hero h1,
.esv-application-output .esih-hero h1,
.esv-application-output .esch-hero h1 {
	color: #ffffff !important;
}

.esv-application-output #es-mdrc-page .es-mdrc-hero p,
.esv-application-output #es-mdrc-page .es-mdrc-hero li,
.esv-application-output #es-mdrc-page [class*="mdrc-hero"] p,
.esv-application-output #es-mdrc-page [class*="mdrc-hero"] li,
.esv-application-output #es-ceg-page .es-ceg-hero p,
.esv-application-output #es-ceg-page .es-ceg-hero li,
.esv-application-output #es-hen-page .es-hen-hero p,
.esv-application-output #es-hen-page .es-hen-hero li,
.esv-application-output #es-cen-page .es-cen-hero p,
.esv-application-output #es-cen-page .es-cen-hero li,
.esv-application-output #es-cel-page .es-cel-hero p,
.esv-application-output #es-cel-page .es-cel-hero li,
.esv-application-output .esih-hero p,
.esv-application-output .esih-hero li,
.esv-application-output .esch-hero p,
.esv-application-output .esch-hero li {
	color: rgba(255, 255, 255, 0.9) !important;
}

/* Elementor remains full-width while legacy pages are being converted. */
.esv-builder-output .elementor,
.esv-builder-output .elementor-section-wrap,
.esv-builder-output .elementor-page,
.esv-builder-output .e-con {
	max-width: none;
}

.esv-builder-output .elementor-widget-icon svg,
.esv-builder-output .elementor-icon svg,
.esv-builder-output .elementor-button-icon svg,
.esv-builder-output .elementor-widget-social-icons svg {
	display: inline-block;
	width: 1em;
	height: 1em;
	max-width: 1em;
	max-height: 1em;
}

/* Never allow legacy negative top offsets to place native Contact or FAQ content under the header. */
.esv-contact-page,
.esv-faq-page {
	position: relative;
	z-index: 1;
	margin-top: 0 !important;
	transform: none !important;
}

@media (max-width: 720px) {
	.esv-application-output .es-button,
	.esv-application-output .eslab-button,
	.esv-application-output .estop-button,
	.esv-application-output .es-cp__button {
		min-height: 48px;
	}
}

/* Version 3.0.0 protected rich-document integration. */
.esv-application-main {
	overflow: clip;
	background: #ffffff;
}

.esv-application-output {
	width: 100%;
	max-width: none;
	min-width: 0;
	margin: 0;
	padding: 0;
	isolation: isolate;
}

.esv-application-output > #es-ceg-page,
.esv-application-output > #es-hen-page,
.esv-application-output > #es-cen-page,
.esv-application-output > #es-cel-page,
.esv-application-output > #es-mdrc-page {
	width: 100%;
	max-width: none;
	min-width: 0;
	margin: 0;
}

/* The hidden semantic page title restores a single H1 without changing the proven hero design. */
.esv-application-semantic-title {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

/* Keep the About page's in-page navigation clear of the global header after anchor jumps. */
.esv-about-output .es-about__page-nav,
.esv-about-output [id] {
	scroll-margin-top: calc(var(--esv-header-offset) + var(--esv-admin-offset) + 24px);
}

@media (max-width: 720px) {
	.esv-application-output > #es-ceg-page,
	.esv-application-output > #es-hen-page,
	.esv-application-output > #es-cen-page,
	.esv-application-output > #es-cel-page,
	.esv-application-output > #es-mdrc-page {
		overflow-x: clip;
	}
}

/* Visible page-level headings promoted from the protected documents' former H2 heroes. */
#es-ceg-page .es-ceg-hero h1,
#es-hen-page .es-hen-hero h1,
#es-cen-page .es-cen-hero h1,
#es-cel-page .es-cel-hero h1,
#es-mdrc-page .es-mdrc-hero h1 {
	margin: 0 0 16px;
	color: #ffffff !important;
	font-family: inherit;
	font-weight: 780;
	line-height: 1.12;
	letter-spacing: -0.035em;
}

#es-ceg-page .es-ceg-hero h1,
#es-hen-page .es-hen-hero h1,
#es-cen-page .es-cen-hero h1,
#es-cel-page .es-cel-hero h1 {
	max-width: 790px;
	font-size: clamp(2.25rem, 5vw, 4.15rem);
}

#es-mdrc-page .es-mdrc-hero h1 {
	max-width: 760px;
	font-size: clamp(2.25rem, 5vw, 4.35rem);
}
