/**
 * Eurasian Transit 0.1.21 release guard.
 *
 * Loaded after the historical component styles.  This file intentionally
 * contains only the final, page-agnostic decisions shared by every template.
 */

:root {
	--et-release-navy: #0A2342;
	--et-release-teal: #009CA6;
	--et-release-amber: #F2A900;
	--et-release-graphite: #2F3A45;
	--et-release-mist: #EEF3F7;
	--et-release-white: #fff;
	--et-release-wide: 80rem;
	--et-release-reading: 52rem;
	--et-release-section-gap: 40px;
	--et-icon-primary: var(--et-release-navy);
	--et-icon-secondary: var(--et-release-teal);
	--et-icon-accent: var(--et-release-amber);
}

/* Whole-word typography. break-word is only used as an emergency for a token
 * that is itself wider than its box (for example, a URL without separators). */
.wp-site-blocks :where(h1, h2, h3, h4, h5, h6, summary, .wp-block-navigation-item__content) {
	hyphens: none !important;
	overflow-wrap: normal !important;
	word-break: normal !important;
}

.wp-site-blocks :where(p, li, dd, dt, figcaption, td, th, a) {
	hyphens: none;
	overflow-wrap: break-word;
	word-break: normal;
}

.wp-site-blocks :where(code, pre, samp, kbd) {
	overflow-wrap: anywhere;
	word-break: normal;
}

.wp-site-blocks :where(
	.wp-block-group,
	.wp-block-column,
	.wp-block-navigation-item,
	.et-hero-grid > *,
	.et-service-grid > *,
	.et-proof-grid > *,
	.et-scope-grid > *,
	.et-metrics-grid > *,
	.et-process-grid > *,
	.et-faq-list > *,
	.et-footer-grid > *
) {
	min-width: 0;
}

/* Capitals belong to the first navigation level and nowhere else. */
.wp-site-blocks :where(
	.et-breadcrumbs,
	.et-kicker,
	.et-placeholder-label,
	.et-footer-title,
	.et-footer-links,
	.et-mega-tab,
	.et-menu-tab,
	.et-service-group,
	.et-region-group
),
.wp-site-blocks :where(
	.et-breadcrumbs a,
	.et-breadcrumbs span,
	.et-footer-links a,
	.et-primary-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content
) {
	text-transform: none !important;
}

.et-primary-nav .wp-block-navigation__responsive-container-content
	> .wp-block-navigation__container
	> .wp-block-navigation-item
	> .wp-block-navigation-item__content,
.et-primary-nav > .wp-block-navigation__container
	> .wp-block-navigation-item
	> .wp-block-navigation-item__content {
	text-transform: uppercase !important;
}

/* One wide axis for heroes, breadcrumbs, repeated grids, FAQ and CTA. */
:is(
	.et-header-inner,
	.et-home-hero .et-hero-grid,
	.et-home-trust-inner,
	.et-page-hero > .alignwide,
	.et-service-hero > .alignwide,
	.et-request-panel,
	.et-footer-grid
) {
	box-sizing: border-box;
	margin-inline: auto !important;
	max-width: var(--et-release-wide) !important;
	width: 100% !important;
}

.home :is(
	.et-home-hero .et-hero-grid,
	.et-home-trust-inner,
	.et-directions-section .et-section-heading,
	.et-directions-section .et-service-grid,
	.et-home-metrics .et-metrics-wrap,
	.et-home-process-section .et-section-heading,
	.et-home-process-grid,
	.et-request-panel
) {
	margin-inline: auto !important;
	max-width: var(--et-release-wide) !important;
	width: 100% !important;
}

.et-faq-list {
	max-width: var(--et-release-wide) !important;
}

/* The breadcrumb bar owns the responsive page gutter; its list owns the same
 * centered 1280px content axis as the adjacent hero and service sections. */
.et-breadcrumbs__list {
	margin-inline: auto !important;
	max-width: var(--et-release-wide) !important;
	width: 100% !important;
}

/* Commercial sections already own the outer 1280px gutter. Their children
 * must use that full axis instead of subtracting the gutter a second time. */
.et-service-section > :is(
	.et-section-heading,
	.et-service-grid,
	.et-proof-grid,
	.et-scope-grid,
	.et-metrics-wrap,
	.et-faq-list
) {
	margin-inline: auto !important;
	max-width: none !important;
	width: 100% !important;
}

/* The process artwork keeps its deliberate 60rem reading width. */
.et-service-section > .et-process-grid {
	width: min(100%, calc(var(--et-process-art-max) + var(--et-process-frame) + var(--et-process-frame) + 2px)) !important;
}

.et-section-heading > * {
	margin-inline: 0 auto !important;
	max-width: var(--et-release-reading);
}

/* Direct post sections use one external rhythm. Removing their legacy outer
 * padding avoids adding a second vertical gap around the same boundary. */
.wp-site-blocks .wp-block-post-content > :is(
	.et-home-hero,
	.et-section,
	.et-service-section
) {
	margin-block: 0 !important;
}

.wp-site-blocks .wp-block-post-content > :is(.et-section, .et-service-section):not(.et-home-hero) {
	padding-block: 0 !important;
}

.wp-site-blocks .wp-block-post-content > :is(
	.et-home-hero,
	.et-section,
	.et-service-section
) + :is(
	.et-home-hero,
	.et-section,
	.et-service-section
) {
	margin-block-start: var(--et-release-section-gap) !important;
}

.wp-site-blocks .wp-block-post-content > .et-request-section:last-child {
	margin-block-end: 0 !important;
	padding-block-end: 0 !important;
}

.et-content-shell:has(> .wp-block-post-content > .et-request-section:last-child) {
	padding-block-end: 0 !important;
}

.wp-site-blocks:has(.wp-block-post-content > .et-request-section:last-child)
	> footer.wp-block-template-part {
	margin-block-start: var(--et-release-section-gap) !important;
}

/* Keep the approved full-surface photographic home hero intact. */
.home.et-visual-a .et-home-hero,
.home .et-home-hero {
	background:
		linear-gradient(90deg, #0a2342 0%, rgba(10, 35, 66, 0.98) 43%, rgba(10, 35, 66, 0.76) 68%, rgba(10, 35, 66, 0.36) 100%),
		var(--et-visual-image, url("../images/visual/library/et-a-multimodal-hub.webp")) center / cover no-repeat !important;
	color: var(--et-release-white);
	min-height: 34rem;
	padding-block: 0 !important;
}

.home .et-home-hero .et-hero-grid {
	grid-template-columns: minmax(0, 1fr) !important;
	min-height: 27rem;
}

.home .et-home-hero .et-hero-copy {
	margin-inline: 0 auto !important;
	max-width: 40rem;
}

.home .et-home-hero :is(.et-home-hero-media, .et-route-panel) {
	display: none !important;
}

/* All service-family heroes share one left edge and one readable copy width. */
.et-service-hero {
	background-color: var(--et-release-navy);
	overflow: hidden;
	padding-block: clamp(3.25rem, 6vw, 5.25rem);
}

.et-service-hero > .alignwide,
.et-service-hero-copy {
	align-items: flex-start;
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: clamp(17rem, 26vw, 21rem);
}

.et-service-hero-copy > :is(
	.et-service-hero-kicker,
	h1,
	.et-service-hero-lead,
	.et-service-hero-actions
) {
	margin-inline: 0 auto !important;
	max-width: 48rem !important;
	width: min(100%, 48rem) !important;
}

.et-service-hero h1 {
	color: var(--et-release-white);
}

/* One inert request component for every commercial page. */
.et-request-section {
	background: var(--et-release-white) !important;
}

.et-request-panel {
	align-items: center;
	background:
		linear-gradient(100deg, #082140 0%, rgba(8, 38, 75, 0.97) 60%, rgba(7, 53, 99, 0.88) 100%),
		var(--et-editorial-image, none) right center / cover no-repeat !important;
	border-radius: 0.8rem;
	display: grid;
	gap: clamp(1.5rem, 3vw, 2.5rem);
	grid-template-columns: minmax(0, 1fr) auto;
	min-height: 10rem;
	padding: clamp(1.75rem, 3vw, 2.5rem) clamp(1.5rem, 4vw, 3.5rem);
}

.et-request-copy,
.et-request-copy > * {
	margin-block: 0 !important;
}

.et-request-actions {
	justify-content: flex-end;
	margin: 0;
}

/* The same lift and focus language for every card-shaped surface. */
.wp-site-blocks :is(
	.et-card,
	.is-style-et-card,
	.et-service-card,
	.et-proof-card,
	.et-query-card,
	.et-route-item,
	.et-route-panel,
	.et-faq-item,
	.is-style-et-faq-item,
	.et-empty-state,
	.et-information-state,
	.et-placeholder,
	.et-error-state
) {
	transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

@media (hover: hover) and (pointer: fine) {
	.wp-site-blocks :is(
		.et-card,
		.is-style-et-card,
		.et-service-card,
		.et-proof-card,
		.et-query-card,
		.et-route-item,
		.et-route-panel,
		.et-faq-item,
		.is-style-et-faq-item,
		.et-empty-state,
		.et-information-state,
		.et-placeholder,
		.et-error-state
	):is(:hover, :focus-within) {
		border-color: rgba(0, 156, 166, 0.46) !important;
		box-shadow: 0 1rem 2.4rem rgba(10, 35, 66, 0.12) !important;
		transform: translateY(-0.22rem) !important;
	}
}

/* Pictogram v3 contract: two semantic strokes and one status accent. */
:where(
	.et-menu-icon,
	.et-home-line-icon,
	.et-home-service-icon,
	.et-home-metric-icon,
	.et-home-process-icon
) {
	--et-icon-primary: var(--et-release-navy);
	--et-icon-secondary: var(--et-release-teal);
	--et-icon-accent: var(--et-release-amber);
	color: var(--et-release-navy);
	display: block;
	flex: 0 0 auto;
}

.et-menu-icon-wrap {
	display: grid;
	height: 1.625rem;
	place-items: center;
	overflow: hidden;
	width: 1.625rem;
}

.et-menu-icon {
	height: 1.5rem;
	overflow: hidden;
	width: 1.5rem;
}

.et-home-line-icon {
	height: 3.5rem !important;
	overflow: hidden;
	width: 3.5rem !important;
}

.et-home-service-icon {
	height: 4.25rem !important;
	overflow: hidden;
	width: 4.25rem !important;
}

.et-home-metric-icon {
	height: 2.625rem !important;
	overflow: hidden;
	width: 2.625rem !important;
}

.et-home-process-icon {
	height: 3.25rem !important;
	overflow: hidden;
	width: 3.25rem !important;
}

/* Optical alignment and a compact chevron-to-label relationship. */
.et-brand-logo img {
	transform: translateY(3px);
}

.et-primary-nav .wp-block-navigation-submenu
	> .wp-block-navigation__submenu-icon {
	margin-inline-start: 0.15rem;
	min-width: 1.25rem;
}

.et-primary-nav .wp-block-navigation-submenu
	> .wp-block-navigation__submenu-icon svg {
	height: 0.625rem;
	width: 0.625rem;
}

.et-primary-nav .et-documents-menu,
.et-primary-nav .et-documents-menu
	> :is(.wp-block-navigation-item__content, .wp-block-navigation__submenu-icon) {
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
}

/* Tablet and mobile navigation is a scrollable overlay. */
@media (max-width: 79.99rem) {
	.et-header-inner {
		display: grid !important;
		gap: clamp(0.4rem, 1.5vw, 0.75rem);
		grid-template-columns: minmax(0, 1fr) auto auto;
		min-height: 4.5rem;
	}

	.et-brand-logo {
		grid-column: 1;
		min-width: 0;
	}

	.et-brand-logo img {
		width: clamp(7.5rem, 28vw, 12rem);
	}

	.et-header-cta {
		grid-column: 2;
		margin: 0 !important;
	}

	.et-primary-nav {
		grid-column: 3;
		margin: 0 !important;
	}

	.et-primary-nav .wp-block-navigation__responsive-container.is-menu-open {
		background: var(--et-release-white);
		color: var(--et-release-navy);
		height: 100dvh;
		inset: 0;
		max-height: 100dvh;
		overscroll-behavior: contain;
		overflow-x: hidden !important;
		overflow-y: auto !important;
		padding: max(0.75rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));
		z-index: 1200;
	}

	.et-primary-nav .wp-block-navigation__responsive-container.is-menu-open
		.wp-block-navigation__responsive-close {
		min-height: 100%;
		width: 100%;
	}

	.et-primary-nav .wp-block-navigation__responsive-container.is-menu-open
		.wp-block-navigation__responsive-container-close {
		align-items: center;
		display: inline-flex;
		height: 2.75rem;
		inset: max(0.75rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) auto auto;
		justify-content: center;
		margin: 0;
		position: fixed;
		width: 2.75rem;
		z-index: 2;
	}

	.et-primary-nav .wp-block-navigation__responsive-container.is-menu-open
		.wp-block-navigation__responsive-container-content {
		align-items: stretch;
		padding-block: 3.35rem 1rem !important;
		width: 100%;
	}

	.et-primary-nav .wp-block-navigation__responsive-container.is-menu-open
		.wp-block-navigation__responsive-container-content > .wp-block-navigation__container {
		align-items: stretch;
		gap: 0.2rem;
		width: 100%;
	}

	.et-primary-nav .wp-block-navigation__responsive-container.is-menu-open
		li.wp-block-navigation-submenu {
		align-items: center;
		display: flex;
		flex-flow: row wrap;
		justify-content: flex-start;
		width: 100%;
	}

	.et-primary-nav .wp-block-navigation__responsive-container.is-menu-open
		li.wp-block-navigation-submenu > .wp-block-navigation-item__content {
		flex: 0 1 auto;
		padding-inline-end: 0.25rem !important;
		width: auto !important;
	}

	.et-primary-nav .wp-block-navigation__responsive-container.is-menu-open
		li.wp-block-navigation-submenu > button.wp-block-navigation__submenu-icon {
		inset: auto !important;
		margin: 0 !important;
		min-height: 2.75rem;
		min-width: 2.25rem;
		position: static !important;
		width: 2.25rem;
	}

	.et-primary-nav .wp-block-navigation__responsive-container.is-menu-open
		li.wp-block-navigation-submenu > ul.wp-block-navigation__submenu-container {
		flex-basis: 100%;
		width: 100% !important;
	}

	.et-primary-nav .wp-block-navigation__responsive-container.is-menu-open
		.et-documents-menu,
	.et-primary-nav .wp-block-navigation__responsive-container.is-menu-open
		.et-documents-menu > :is(.wp-block-navigation-item__content, .wp-block-navigation__submenu-icon) {
		background: transparent !important;
		border: 0 !important;
		border-radius: 0 !important;
		box-shadow: none !important;
	}

	.et-primary-nav .wp-block-navigation__responsive-container.is-menu-open
		.et-mobile-nav-cta {
		display: none !important;
	}

	.home .et-home-hero {
		min-height: 0;
		padding-block: 3rem !important;
	}

	.home .et-home-hero .et-hero-grid {
		min-height: 0;
	}

	.home .et-home-hero .et-hero-copy {
		max-width: min(40rem, 74vw);
	}

	.et-service-hero-copy > :is(
		.et-service-hero-kicker,
		h1,
		.et-service-hero-lead,
		.et-service-hero-actions
	) {
		max-width: 100% !important;
		width: 100% !important;
	}

}

/* Desktop starts at the same 1280px boundary used by the menu script. */
@media (min-width: 80rem) {
	.et-primary-nav .wp-block-navigation__responsive-container:not(.is-menu-open) {
		display: block;
		position: relative;
	}

	.et-primary-nav .wp-block-navigation__responsive-container-open {
		display: none !important;
	}

	.et-primary-nav .wp-block-navigation__container {
		gap: clamp(0.5rem, 0.72vw, 0.9rem);
	}

	.et-primary-nav .wp-block-navigation__responsive-container-content
		> .wp-block-navigation__container
		> .wp-block-navigation-item
		> .wp-block-navigation-item__content {
		font-size: clamp(0.82rem, 0.25vw + 0.62rem, 0.9rem);
	}

}

/* Predictable grid steps at the QA widths: 320/375, 768, 1024/1279, 1280+. */
@media (max-width: 47.99rem) {
	.et-header-cta .wp-block-button__link {
		min-width: 5.25rem;
	}

	.home .et-home-hero {
		padding-block: 2.25rem !important;
	}

	.home .et-home-hero .et-hero-copy {
		max-width: none;
	}

	.home .et-home-process-grid .et-home-process-icon {
		display: block !important;
		grid-column: 2;
		grid-row: 1;
		height: 2.5rem !important;
		width: 2.5rem !important;
	}

	.home .et-home-process-grid .et-process-step h3 {
		grid-column: 2;
		grid-row: 2;
	}

	.home .et-home-process-grid .et-process-step p:not(.et-step-number) {
		grid-column: 2;
		grid-row: 3;
	}

	:where(
		.et-proof-grid,
		.et-service-grid,
		.et-scope-grid,
		.et-metrics-grid,
		.et-process-grid,
		.et-home-trust-grid,
		.et-home-process-grid
	) {
		grid-template-columns: minmax(0, 1fr) !important;
	}

	.et-service-hero,
	.et-service-hero > .alignwide,
	.et-service-hero-copy {
		min-height: 0;
	}

	.et-request-actions,
	.et-request-actions .wp-block-button,
	.et-request-actions .wp-block-button__link {
		width: 100%;
	}

	.et-request-panel {
		grid-template-columns: minmax(0, 1fr);
	}

	.et-request-actions {
		justify-content: flex-start;
	}
}

@media (min-width: 48rem) and (max-width: 63.99rem) {
	.home .et-home-hero {
		padding-block: 2.75rem !important;
	}

	:where(
		.et-proof-grid,
		.et-service-grid,
		.et-scope-grid,
		.et-metrics-grid,
		.et-home-trust-grid,
		.et-home-process-grid
	) {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}

@media (min-width: 64rem) and (max-width: 79.99rem) {
	:where(
		.et-proof-grid,
		.et-service-grid,
		.et-metrics-grid,
		.et-home-process-grid
	) {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	}

	.et-scope-grid,
	.et-home-trust-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}

@media (max-width: 47.99rem) {
	.et-service-hero h1 {
		font-size: clamp(1.7rem, 8vw, 2.75rem) !important;
		letter-spacing: -0.035em;
	}
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}
}
