/*
 * EZ Design — WordPress frontend design primitives.
 * Version: 0.1.0
 *
 * Load order:
 *   1. WordPress core block styles
 *   2. ez-theme-main (EZ Theme base CSS)
 *   3. ez-design-frontend (this file)
 *   4. ez-theme-customizer-vars (wp_head priority 99 — overrides CSS vars below)
 *   5. Page/block inline overrides
 */

/* =============================================================
   CSS CUSTOM PROPERTIES
   All values are overridable via EZ Theme Customizer (wp_head).
   ============================================================= */

:root {
	--ez-section-padding-y: 5.625rem;
	--ez-card-padding: 2rem;
	--ez-card-radius: 0.75rem;
	--ez-card-border-opacity: 0.12;
	--ez-lede-size: 1.25rem;
	--ez-grid-gap: 1.75rem;
	--ez-kicker-spacing: 0.14em;
	--ez-button-padding-x: 1.25rem;
	--ez-button-padding-y: 0.85rem;
	--ez-space-none: 0;
	--ez-space-xs: 0.5rem;
	--ez-space-sm: 0.75rem;
	--ez-space-md: 1rem;
	--ez-space-lg: 1.5rem;
	--ez-space-xl: 2rem;
	--ez-type-xs: 0.75rem;
	--ez-type-sm: 0.875rem;
	--ez-type-base: 1rem;
	--ez-type-md: 1.125rem;
	--ez-type-lg: 1.25rem;
	--ez-type-xl: 1.5rem;
	--ez-type-2xl: 1.875rem;
	--ez-type-3xl: 2.25rem;
	--ez-text-primary: var(--ez-color-text, #181919);
	--ez-text-secondary: color-mix(in srgb, var(--ez-color-text, #181919) 72%, transparent);
	--ez-text-muted: color-mix(in srgb, var(--ez-color-text, #181919) 58%, transparent);
	--ez-text-inverse: var(--ez-color-bg, #ffffff);
	--ez-text-accent: var(--ez-color-accent, #e9d2aa);
	--ez-accent-primary: var(--ez-color-accent, #e9d2aa);
	--ez-accent-hover: var(--ez-color-accent-hover, color-mix(in srgb, var(--ez-color-accent, #e9d2aa) 72%, var(--ez-color-text, #181919)));
	--ez-accent-active: var(--ez-color-accent-active, color-mix(in srgb, var(--ez-color-accent, #e9d2aa) 52%, var(--ez-color-text, #181919)));
	--ez-border-subtle: color-mix(in srgb, var(--ez-color-text, #181919) 10%, transparent);
	--ez-border-default: var(--ez-color-border, color-mix(in srgb, var(--ez-color-text, #181919) 14%, transparent));
	--ez-border-strong: color-mix(in srgb, var(--ez-color-text, #181919) 24%, transparent);
	--ez-border-accent: var(--ez-color-accent, #e9d2aa);
	--ez-border-focus: var(--ez-color-accent, #e9d2aa);
}

/* =============================================================
   LAYOUT UTILITIES
   ============================================================= */

.ez-section {
	padding-block: var(--ez-section-padding-y);
}

.ez-narrow {
	width: min(100% - 2rem, var(--ez-layout-content, 760px));
	margin-inline: auto;
}

.ez-wide {
	width: min(100% - 2rem, var(--ez-layout-wide, 1200px));
	margin-inline: auto;
}

.ez-center {
	text-align: center;
}

/* =============================================================
   TYPOGRAPHY UTILITIES
   ============================================================= */

.ez-kicker {
	text-transform: uppercase;
	letter-spacing: var(--ez-kicker-spacing);
	font-size: 0.8125rem;
	font-weight: 700;
}

.ez-lede {
	font-size: var(--ez-lede-size);
	line-height: 1.55;
}

/* =============================================================
   CARD SYSTEM
   ============================================================= */

.ez-card {
	padding: var(--ez-card-padding);
	border: 1px solid rgba(0, 0, 0, var(--ez-card-border-opacity));
	border-radius: var(--ez-card-radius);
	background: var(--ez-color-bg, #fff);
}

.ez-card-grid {
	display: grid;
	gap: var(--ez-grid-gap);
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
}

.ez-link-grid,
.wp-block-page-list.is-style-ez-link-grid,
.wp-block-list.is-style-ez-link-grid,
.industries-grid.wp-block-page-list {
	display: grid;
	gap: var(--ez-grid-gap, 1rem);
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr));
	list-style: none;
	margin-left: auto;
	margin-right: auto;
	max-width: var(--ez-link-grid-max-width, 72rem);
	padding-left: 0;
}

.ez-link-grid li,
.wp-block-page-list.is-style-ez-link-grid li,
.wp-block-list.is-style-ez-link-grid li,
.industries-grid.wp-block-page-list li {
	margin: 0;
	min-width: 0;
}

.ez-link-grid a,
.wp-block-page-list.is-style-ez-link-grid a,
.wp-block-list.is-style-ez-link-grid a,
.industries-grid.wp-block-page-list a {
	align-items: center;
	background: var(--ez-color-bg, #fff);
	border: 1px solid rgba(0, 0, 0, var(--ez-card-border-opacity, 0.12));
	border-radius: var(--ez-card-radius, 0.75rem);
	color: inherit;
	display: flex;
	font-weight: 700;
	min-height: 3.5rem;
	padding: 0.9rem 1rem;
	text-decoration: none;
	transition:
		border-color 160ms ease,
		box-shadow 160ms ease,
		transform 160ms ease;
}

	.ez-link-grid a:hover,
	.ez-link-grid a:focus-visible,
	.wp-block-page-list.is-style-ez-link-grid a:hover,
	.wp-block-page-list.is-style-ez-link-grid a:focus-visible,
.wp-block-list.is-style-ez-link-grid a:hover,
.wp-block-list.is-style-ez-link-grid a:focus-visible,
.industries-grid.wp-block-page-list a:hover,
.industries-grid.wp-block-page-list a:focus-visible {
	border-color: var(--ez-color-accent, currentColor);
	box-shadow: var(--ez-shadow-soft, 0 12px 30px rgba(0, 0, 0, 0.08));
		outline: 0;
		transform: translateY(-1px);
	}

	.wp-block-page-list.ez-hide-children ul,
	.wp-block-page-list.ez-hide-children ol,
	.wp-block-page-list.ez-hide-children .children,
	.wp-block-page-list.ez-hide-children li li {
		display: none;
	}

	.wp-block-page-list:is(.is-style-fill, .is-style-outline, .is-style-ez-outline),
	.wp-block-list:is(.is-style-fill, .is-style-outline, .is-style-ez-outline) {
		display: flex;
		flex-wrap: wrap;
		gap: var(--ez-button-gap, 0.5rem);
		justify-content: var(--ez-page-list-justify, flex-start);
		list-style: none;
		padding-left: 0;
	}

	.wp-block-page-list.ez-list-align-left {
		--ez-page-list-grid-justify-items: start;
		--ez-page-list-justify: flex-start;
		--ez-page-list-link-justify: flex-start;
		--ez-page-list-link-text-align: left;
	}

	.wp-block-page-list.ez-list-align-center {
		--ez-page-list-grid-justify-items: center;
		--ez-page-list-justify: center;
		--ez-page-list-link-justify: center;
		--ez-page-list-link-text-align: center;
	}

	.wp-block-page-list.ez-list-align-right {
		--ez-page-list-grid-justify-items: end;
		--ez-page-list-justify: flex-end;
		--ez-page-list-link-justify: flex-end;
		--ez-page-list-link-text-align: right;
	}

	.wp-block-page-list:is(.is-style-ez-link-grid, .industries-grid) {
		justify-items: var(--ez-page-list-grid-justify-items, stretch);
	}

	.wp-block-page-list.ez-parent-width-auto {
		--ez-page-list-parent-width: auto;
	}

	.wp-block-page-list.ez-parent-width-full {
		--ez-page-list-parent-width: 100%;
	}

	.wp-block-page-list:is(.is-style-fill, .is-style-outline, .is-style-ez-outline, .is-style-ez-link-grid, .ez-parent-width-auto, .ez-parent-width-full, .ez-list-align-left, .ez-list-align-center, .ez-list-align-right) > li {
		max-width: 100%;
		width: var(--ez-page-list-parent-width, var(--ez-button-width, auto));
	}

	.wp-block-page-list:is(.is-style-fill, .is-style-outline, .is-style-ez-outline, .is-style-ez-link-grid, .ez-parent-width-auto, .ez-parent-width-full, .ez-list-align-left, .ez-list-align-center, .ez-list-align-right) > li > .wp-block-pages-list__item__link {
		box-sizing: border-box;
		display: inline-flex;
		justify-content: var(--ez-page-list-link-justify, center);
		max-width: 100%;
		text-align: var(--ez-page-list-link-text-align, center);
		width: var(--ez-page-list-parent-width, var(--ez-button-width, auto));
	}

	.wp-block-page-list.ez-child-style-card > li,
	.wp-block-page-list.ez-parent-width-full > li,
	.wp-block-page-list.ez-child-style-card > li > .wp-block-pages-list__item__link,
	.wp-block-page-list.ez-parent-width-full > li > .wp-block-pages-list__item__link {
		width: 100%;
	}

	.wp-block-page-list:is(.is-style-fill, .is-style-outline, .is-style-ez-outline) li,
	.wp-block-list:is(.is-style-fill, .is-style-outline, .is-style-ez-outline) li {
		margin: 0;
		max-width: 100%;
		width: var(--ez-page-list-parent-width, var(--ez-button-width, auto));
	}

	.wp-block-page-list:is(.is-style-fill, .is-style-outline, .is-style-ez-outline) a,
	.wp-block-list:is(.is-style-fill, .is-style-outline, .is-style-ez-outline) a {
	align-items: center;
	border: var(--ez-button-border-width, 1px) var(--ez-button-border-style, solid) transparent;
	border-radius: var(--ez-button-radius, 999px);
	display: inline-flex;
	font-size: var(--ez-button-font-size, 1rem);
	font-weight: var(--ez-button-font-weight, 700);
	justify-content: center;
	letter-spacing: var(--ez-button-letter-spacing, 0);
		line-height: var(--ez-button-line-height, 1.2);
		max-width: 100%;
		min-height: var(--ez-button-min-height, 2.75rem);
		padding: var(--ez-button-padding-y, 0.875rem) var(--ez-button-padding-x, 1.625rem);
		text-align: center;
		text-decoration: none;
		text-transform: var(--ez-button-text-transform, none);
	transition:
		background-color var(--ez-button-transition, 250ms) ease,
		border-color var(--ez-button-transition, 250ms) ease,
		box-shadow var(--ez-button-transition, 250ms) ease,
			color var(--ez-button-transition, 250ms) ease,
			transform var(--ez-button-transition, 250ms) ease;
		width: var(--ez-page-list-parent-width, var(--ez-button-width, auto));
	}

.wp-block-page-list.is-style-fill a,
.wp-block-list.is-style-fill a {
	background: var(--ez-button-fill-bg, var(--ez-color-accent, currentColor));
	border-color: var(--ez-button-fill-border, var(--ez-color-accent, currentColor));
	color: var(--ez-button-fill-color, var(--ez-color-text, #181919));
}

.wp-block-page-list.is-style-fill a:hover,
.wp-block-page-list.is-style-fill a:focus-visible,
.wp-block-list.is-style-fill a:hover,
.wp-block-list.is-style-fill a:focus-visible {
	background: var(--ez-button-fill-hover-bg, var(--ez-color-text, #181919));
	border-color: var(--ez-button-fill-hover-border, var(--ez-color-text, #181919));
	box-shadow: var(--ez-button-hover-shadow, none);
	color: var(--ez-button-fill-hover-color, #fff);
	outline: 0;
	transform: var(--ez-button-hover-transform, translateY(-1px));
}

.wp-block-page-list.is-style-outline a,
.wp-block-list.is-style-outline a {
	background: var(--ez-button-outline-bg, transparent);
	border-color: var(--ez-button-outline-border, var(--ez-color-text, currentColor));
	color: var(--ez-button-outline-color, var(--ez-color-text, currentColor));
}

.wp-block-page-list.is-style-outline a:hover,
.wp-block-page-list.is-style-outline a:focus-visible,
.wp-block-list.is-style-outline a:hover,
.wp-block-list.is-style-outline a:focus-visible {
	background: var(--ez-button-outline-hover-bg, var(--ez-color-text, currentColor));
	border-color: var(--ez-button-outline-hover-border, var(--ez-color-text, currentColor));
	box-shadow: var(--ez-button-hover-shadow, none);
	color: var(--ez-button-outline-hover-color, #fff);
	outline: 0;
	transform: var(--ez-button-hover-transform, translateY(-1px));
}

.wp-block-page-list.is-style-ez-outline a,
.wp-block-list.is-style-ez-outline a {
	background: var(--ez-button-ez-outline-bg, transparent);
	border-color: var(--ez-button-ez-outline-border, var(--ez-color-text, currentColor));
	color: var(--ez-button-ez-outline-color, var(--ez-color-text, currentColor));
}

	.wp-block-page-list.is-style-ez-outline a:hover,
	.wp-block-page-list.is-style-ez-outline a:focus-visible,
	.wp-block-list.is-style-ez-outline a:hover,
	.wp-block-list.is-style-ez-outline a:focus-visible {
		background: var(--ez-button-ez-outline-hover-bg, var(--ez-color-text, currentColor));
	border-color: var(--ez-button-ez-outline-hover-border, var(--ez-color-text, currentColor));
	box-shadow: var(--ez-button-hover-shadow, none);
	color: var(--ez-button-ez-outline-hover-color, #fff);
		outline: 0;
		transform: var(--ez-button-hover-transform, translateY(-1px));
	}

	.wp-block-page-list:is(.ez-child-style-indented, .ez-child-style-muted, .ez-child-style-compact, .ez-child-style-card) ul,
	.wp-block-page-list:is(.ez-child-style-indented, .ez-child-style-muted, .ez-child-style-compact, .ez-child-style-card) ol,
	.wp-block-page-list:is(.ez-child-style-indented, .ez-child-style-muted, .ez-child-style-compact, .ez-child-style-card) .children {
		display: block;
		flex-basis: 100%;
		list-style: none;
		margin: 0.5rem 0 0;
		padding-left: 0;
	}

	.wp-block-page-list:is(.ez-child-style-indented, .ez-child-style-muted, .ez-child-style-compact, .ez-child-style-card) li li {
		margin: 0.35rem 0 0;
	}

	.wp-block-page-list:is(.ez-child-style-indented, .ez-child-style-muted, .ez-child-style-compact, .ez-child-style-card) li li a {
		background: transparent;
		border: 0;
		border-radius: var(--ez-card-radius, 0.75rem);
		box-shadow: none;
		color: color-mix(in srgb, var(--ez-color-text, currentColor) 72%, transparent);
		display: inline-flex;
		font-size: 0.9em;
		font-weight: 600;
		line-height: 1.25;
		min-height: 0;
		padding: 0.25rem 0;
		text-decoration: none;
		transform: none;
	}

	.wp-block-page-list:is(.ez-child-style-indented, .ez-child-style-muted, .ez-child-style-compact, .ez-child-style-card) li li a:hover,
	.wp-block-page-list:is(.ez-child-style-indented, .ez-child-style-muted, .ez-child-style-compact, .ez-child-style-card) li li a:focus-visible {
		background: transparent;
		border-color: transparent;
		box-shadow: none;
		color: var(--ez-color-text, currentColor);
		transform: none;
	}

	.wp-block-page-list.ez-child-style-indented ul,
	.wp-block-page-list.ez-child-style-indented ol,
	.wp-block-page-list.ez-child-style-indented .children {
		border-left: 1px solid color-mix(in srgb, var(--ez-color-text, currentColor) 18%, transparent);
		margin-left: 0.35rem;
		padding-left: 0.85rem;
	}

	.wp-block-page-list.ez-child-style-muted li li a {
		color: color-mix(in srgb, var(--ez-color-text, currentColor) 58%, transparent);
		font-weight: 500;
	}

	.wp-block-page-list.ez-child-style-compact ul,
	.wp-block-page-list.ez-child-style-compact ol,
	.wp-block-page-list.ez-child-style-compact .children {
		margin-top: 0.25rem;
	}

	.wp-block-page-list.ez-child-style-compact li li {
		margin-top: 0.15rem;
	}

	.wp-block-page-list.ez-child-style-compact li li a {
		font-size: 0.8125em;
		padding: 0.15rem 0;
	}

	.wp-block-page-list.ez-child-style-card ul,
	.wp-block-page-list.ez-child-style-card ol,
	.wp-block-page-list.ez-child-style-card .children {
		display: grid;
		gap: 0.35rem;
		margin-top: 0.65rem;
	}

	.wp-block-page-list.ez-child-style-card li li {
		margin: 0;
	}

	.wp-block-page-list.ez-child-style-card li li a {
		background: var(--ez-color-bg, #fff);
		border: 1px solid color-mix(in srgb, var(--ez-color-text, currentColor) 16%, transparent);
		color: color-mix(in srgb, var(--ez-color-text, currentColor) 76%, transparent);
		padding: 0.5rem 0.7rem;
		width: 100%;
	}

	.wp-block-page-list.ez-child-style-card li li a:hover,
	.wp-block-page-list.ez-child-style-card li li a:focus-visible {
		border-color: var(--ez-color-accent, currentColor);
		color: var(--ez-color-text, currentColor);
	}

	/* =============================================================
	   SURFACE PRESETS
   ============================================================= */

.ez-surface-muted {
	background: var(--ez-color-muted, #f4f0ec);
}

.ez-surface-dark {
	background: var(--ez-color-text, #101416);
	color: var(--ez-color-bg, #fff);
}

/* =============================================================
   BLOCK STYLES — BUTTONS
   ============================================================= */

.wp-block-button__link {
	padding: var(--ez-button-padding-y) var(--ez-button-padding-x);
}

.is-style-pill .wp-block-button__link {
	border-radius: 999px;
}

.is-style-ez-outline .wp-block-button__link {
	background: var(--ez-button-ez-outline-bg, transparent);
	border: var(--ez-button-border-width, 1px) var(--ez-button-border-style, solid) var(--ez-button-ez-outline-border, currentColor);
	color: var(--ez-button-ez-outline-color, inherit);
}

.is-style-ez-outline .wp-block-button__link:hover {
	background: var(--ez-button-ez-outline-hover-bg, currentColor);
	border-color: var(--ez-button-ez-outline-hover-border, currentColor);
	color: var(--ez-button-ez-outline-hover-color, var(--ez-color-bg, #fff));
}

/* =============================================================
   BLOCK STYLES — COVER (hero / CTA band)
   ============================================================= */

.wp-block-cover.is-style-ez-hero {
	min-height: 70vh;
}

.wp-block-cover.is-style-ez-hero .wp-block-cover__inner-container {
	max-width: min(100% - 2rem, var(--ez-layout-content, 760px));
	margin-inline: auto;
}

.wp-block-cover.is-style-ez-cta-band {
	padding-block: clamp(3rem, 6vw, 5rem);
	text-align: center;
}

.wp-block-cover.is-style-ez-cta-band .wp-block-cover__inner-container {
	max-width: min(100% - 2rem, var(--ez-layout-content, 760px));
	margin-inline: auto;
}

/* =============================================================
   BLOCK STYLES — GROUP (surface variants)
   ============================================================= */

.wp-block-group.is-style-ez-muted-surface {
	background: var(--ez-color-muted, #f4f0ec);
}

.wp-block-group.is-style-ez-dark-surface {
	background: var(--ez-color-text, #101416);
	color: var(--ez-color-bg, #fff);
}

.ez-design-bg-surface {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	background: var(--ez-block-bg, var(--ez-color-bg, #ffffff));
}

.ez-design-bg-surface > :not(.ez-design-bg-layer) {
	position: relative;
	z-index: 2;
}

.ez-design-bg-surface::after {
	position: absolute;
	inset: 0;
	z-index: 1;
	display: block;
	pointer-events: none;
	content: "";
	background: var(--ez-bg-overlay-color, transparent);
	opacity: var(--ez-bg-overlay-opacity, 1);
}

.ez-design-bg-layer {
	position: absolute;
	inset: 0;
	z-index: 0;
	display: block;
	pointer-events: none;
	background: var(--ez-block-bg, var(--ez-color-bg, #ffffff));
}

.ez-design-bg-layer iframe {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 100%;
	border: 0;
	filter: saturate(0.9) contrast(0.95);
}

.ez-design-bg-surface[data-ez-bg-state="fallback"] .ez-design-bg-layer {
	display: none;
}

/* =============================================================
   BLOCK STYLES — COLUMNS (card/service grids)
   ============================================================= */

.wp-block-columns.is-style-ez-card-grid,
.wp-block-columns.is-style-ez-service-grid {
	gap: var(--ez-grid-gap, 1.75rem);
}

.wp-block-columns.is-style-ez-card-grid .wp-block-column,
.wp-block-columns.is-style-ez-service-grid .wp-block-column {
	padding: var(--ez-card-padding, 2rem);
	border: 1px solid rgba(0, 0, 0, var(--ez-card-border-opacity, 0.12));
	border-radius: var(--ez-card-radius, 0.75rem);
	background: var(--ez-color-bg, #fff);
}

@media (max-width: 900px) {
	.wp-block-columns.ez-columns-stack-reverse-mobile:not(.is-not-stacked-on-mobile) {
		flex-direction: column-reverse;
	}
}

/* =============================================================
   BLOCK STYLES — PARAGRAPH (kicker / lede)
   ============================================================= */

p.is-style-ez-kicker {
	text-transform: uppercase;
	letter-spacing: var(--ez-kicker-spacing, 0.14em);
	font-size: 0.8125rem;
	font-weight: 700;
}

p.is-style-ez-lede {
	font-size: var(--ez-lede-size, 1.25rem);
	line-height: 1.55;
}

/* =============================================================
   GOVERNED PATTERNS — CTA / NAP
   ============================================================= */

.ez-pattern-cta-nap-stack {
	display: grid;
	gap: var(--ez-grid-gap, 1.75rem);
	align-items: center;
	padding: var(--ez-section-padding-y, 5.625rem) min(5vw, 2rem);
	text-align: center;
}

.ez-pattern-cta-nap-stack__actions,
.ez-pattern-cta-nap-stack__contact {
	display: flex;
	flex-wrap: wrap;
	gap: var(--ez-space-md, 1rem);
	align-items: center;
	justify-content: center;
}

.ez-pattern-cta-nap-stack__contact {
	font-size: var(--ez-type-sm, 0.875rem);
	opacity: 0.82;
}

/* =============================================================
   GOVERNED PATTERNS — SOFT CTA CONTENT
   ============================================================= */

.ez-pattern-soft-cta-section {
	display: grid;
	gap: var(--ez-grid-gap, 1.75rem);
	padding-block: var(--ez-section-padding-y, 5.625rem);
}

.ez-pattern-soft-cta-section__content {
	display: grid;
	gap: var(--ez-space-md, 1rem);
	max-width: var(--ez-layout-content, 760px);
}

.ez-pattern-soft-cta-section__heading {
	margin: 0;
}

.ez-pattern-soft-cta-section__text,
.ez-pattern-soft-cta-section__note {
	margin: 0;
	line-height: 1.65;
}

.ez-pattern-soft-cta-section__note {
	font-size: var(--ez-type-sm, 0.875rem);
	opacity: 0.78;
}

.ez-pattern-soft-cta-section__actions {
	margin-block-start: var(--ez-space-sm, 0.75rem);
}

/* =============================================================
   GOVERNED PATTERNS — FAQ CONTENT
   ============================================================= */

.ez-pattern-faq-section {
	display: grid;
	gap: var(--ez-grid-gap, 1.75rem);
	padding-block: var(--ez-section-padding-y, 5.625rem);
}

.ez-pattern-faq-section__items {
	display: grid;
	gap: var(--ez-space-lg, 1.5rem);
}

.ez-pattern-faq-section__item {
	display: grid;
	gap: var(--ez-space-sm, 0.75rem);
	padding-block-end: var(--ez-space-lg, 1.5rem);
	border-block-end: 1px solid rgba(0, 0, 0, 0.12);
}

.ez-pattern-faq-section__question {
	margin: 0;
	font-size: var(--ez-type-lg, 1.25rem);
}

.ez-pattern-faq-section__answer {
	margin: 0;
	line-height: 1.65;
}

/* =============================================================
   GOVERNED PATTERNS — TRUST / PROOF CONTENT
   ============================================================= */

.ez-pattern-trust-proof-section {
	display: grid;
	gap: var(--ez-grid-gap, 1.75rem);
	padding-block: var(--ez-section-padding-y, 5.625rem);
}

.ez-pattern-trust-proof-section__intro {
	display: grid;
	gap: var(--ez-space-md, 1rem);
	max-width: var(--ez-layout-content, 760px);
}

.ez-pattern-trust-proof-section__heading,
.ez-pattern-trust-proof-section__point-title {
	margin: 0;
}

.ez-pattern-trust-proof-section__lede,
.ez-pattern-trust-proof-section__point-text,
.ez-pattern-trust-proof-section__quote p {
	margin: 0;
	line-height: 1.65;
}

.ez-pattern-trust-proof-section__points {
	gap: var(--ez-grid-gap, 1.75rem);
}

.ez-pattern-trust-proof-section__point {
	display: grid;
	gap: var(--ez-space-sm, 0.75rem);
	padding: var(--ez-card-padding, 2rem);
	border: 1px solid rgba(0, 0, 0, var(--ez-card-border-opacity, 0.12));
	border-radius: var(--ez-card-radius, 0.75rem);
}

.ez-pattern-trust-proof-section__quote {
	display: grid;
	gap: var(--ez-space-sm, 0.75rem);
	margin: 0;
	padding: var(--ez-card-padding, 2rem);
	border-inline-start: 4px solid var(--ez-accent-primary, #219997);
	background: var(--ez-color-bg, #fff);
}

.ez-pattern-trust-proof-section__quote cite {
	font-size: var(--ez-type-sm, 0.875rem);
	font-style: normal;
	opacity: 0.78;
}

.ez-pattern-trust-proof-section__logos {
	display: flex;
	flex-wrap: wrap;
	gap: var(--ez-space-md, 1rem);
}

.ez-pattern-trust-proof-section__logo-placeholder {
	margin: 0;
	padding: var(--ez-space-sm, 0.75rem) var(--ez-space-md, 1rem);
	border: 1px dashed rgba(0, 0, 0, 0.28);
	border-radius: var(--ez-card-radius, 0.75rem);
	font-size: var(--ez-type-sm, 0.875rem);
}

/* =============================================================
   GOVERNED PATTERNS — EXPERTISE NOTE CONTENT
   ============================================================= */

.ez-pattern-expertise-note-section {
	display: grid;
	gap: var(--ez-space-md, 1rem);
	padding: var(--ez-card-padding, 2rem);
	border-inline-start: 4px solid var(--ez-accent-primary, #219997);
	background: var(--ez-color-bg, #fff);
}

.ez-pattern-expertise-note-section__heading {
	margin: 0;
}

.ez-pattern-expertise-note-section__text,
.ez-pattern-expertise-note-section__support {
	margin: 0;
	line-height: 1.65;
}

.ez-pattern-expertise-note-section__support {
	font-size: var(--ez-type-sm, 0.875rem);
	opacity: 0.78;
}

/* =============================================================
   GOVERNED PATTERNS — PROOF MEDIA GALLERY CONTENT
   ============================================================= */

.ez-pattern-proof-gallery-section {
	display: grid;
	gap: var(--ez-grid-gap, 1.75rem);
	padding-block: var(--ez-section-padding-y, 5.625rem);
}

.ez-pattern-proof-gallery-section__intro {
	display: grid;
	gap: var(--ez-space-md, 1rem);
	max-width: var(--ez-layout-content, 760px);
}

.ez-pattern-proof-gallery-section__heading,
.ez-pattern-proof-gallery-section__item-title {
	margin: 0;
}

.ez-pattern-proof-gallery-section__lede,
.ez-pattern-proof-gallery-section__item-text,
.ez-pattern-proof-gallery-section__media-label {
	margin: 0;
}

.ez-pattern-proof-gallery-section__lede,
.ez-pattern-proof-gallery-section__item-text {
	line-height: 1.65;
}

.ez-pattern-proof-gallery-section__items {
	gap: var(--ez-grid-gap, 1.75rem);
	align-items: stretch;
}

.ez-pattern-proof-gallery-section__item {
	display: grid;
	gap: var(--ez-space-md, 1rem);
	align-content: start;
	padding: var(--ez-card-padding, 2rem);
	border: 1px solid rgba(0, 0, 0, var(--ez-card-border-opacity, 0.12));
	border-radius: var(--ez-card-radius, 0.75rem);
	background: var(--ez-color-bg, #fff);
}

.ez-pattern-proof-gallery-section__media {
	display: grid;
	place-items: center;
	min-height: 12rem;
	border: 1px dashed rgba(0, 0, 0, 0.28);
	border-radius: var(--ez-card-radius, 0.75rem);
	background: rgba(0, 0, 0, 0.035);
}

.ez-pattern-proof-gallery-section__media-label {
	padding: var(--ez-space-sm, 0.75rem);
	font-size: var(--ez-type-sm, 0.875rem);
	opacity: 0.72;
	text-align: center;
}

/* =============================================================
   GOVERNED PATTERNS — COMPARISON CONTENT
   ============================================================= */

.ez-pattern-comparison-section {
	display: grid;
	gap: var(--ez-grid-gap, 1.75rem);
	padding-block: var(--ez-section-padding-y, 5.625rem);
}

.ez-pattern-comparison-section__intro {
	display: grid;
	gap: var(--ez-space-md, 1rem);
	max-width: var(--ez-layout-content, 760px);
}

.ez-pattern-comparison-section__heading,
.ez-pattern-comparison-section__item-title {
	margin: 0;
}

.ez-pattern-comparison-section__lede,
.ez-pattern-comparison-section__item-label,
.ez-pattern-comparison-section__item-text,
.ez-pattern-comparison-section__item-note {
	margin: 0;
}

.ez-pattern-comparison-section__lede,
.ez-pattern-comparison-section__item-text {
	line-height: 1.65;
}

.ez-pattern-comparison-section__items {
	gap: var(--ez-grid-gap, 1.75rem);
	align-items: stretch;
}

.ez-pattern-comparison-section__item {
	display: grid;
	gap: var(--ez-space-sm, 0.75rem);
	align-content: start;
	padding: var(--ez-card-padding, 2rem);
	border: 1px solid rgba(0, 0, 0, var(--ez-card-border-opacity, 0.12));
	border-radius: var(--ez-card-radius, 0.75rem);
	background: var(--ez-color-bg, #fff);
}

.ez-pattern-comparison-section__item-label,
.ez-pattern-comparison-section__item-note {
	font-size: var(--ez-type-sm, 0.875rem);
	opacity: 0.78;
}

.ez-pattern-comparison-section__item-label {
	text-transform: uppercase;
	letter-spacing: var(--ez-kicker-spacing, 0.14em);
	font-weight: 700;
}

/* =============================================================
   GOVERNED PATTERNS — SERVICE ROUTING CONTENT
   ============================================================= */

.ez-pattern-service-routing-section {
	display: grid;
	gap: var(--ez-grid-gap, 1.75rem);
	padding-block: var(--ez-section-padding-y, 5.625rem);
}

.ez-pattern-service-routing-section__intro {
	display: grid;
	gap: var(--ez-space-md, 1rem);
	max-width: var(--ez-layout-content, 760px);
}

.ez-pattern-service-routing-section__heading,
.ez-pattern-service-routing-section__route-title {
	margin: 0;
}

.ez-pattern-service-routing-section__lede,
.ez-pattern-service-routing-section__route-text {
	margin: 0;
	line-height: 1.65;
}

.ez-pattern-service-routing-section__routes {
	gap: var(--ez-grid-gap, 1.75rem);
}

.ez-pattern-service-routing-section__route {
	display: grid;
	gap: var(--ez-space-md, 1rem);
	align-content: start;
	padding: var(--ez-card-padding, 2rem);
	border: 1px solid rgba(0, 0, 0, var(--ez-card-border-opacity, 0.12));
	border-radius: var(--ez-card-radius, 0.75rem);
	background: var(--ez-color-bg, #fff);
}

.ez-pattern-service-routing-section__route-actions {
	margin-block-start: var(--ez-space-sm, 0.75rem);
}

/* =============================================================
   GOVERNED PATTERNS — RELATED RESOURCES CONTENT
   ============================================================= */

.ez-pattern-related-resources-section {
	display: grid;
	gap: var(--ez-grid-gap, 1.75rem);
	padding-block: var(--ez-section-padding-y, 5.625rem);
}

.ez-pattern-related-resources-section__intro {
	display: grid;
	gap: var(--ez-space-md, 1rem);
	max-width: var(--ez-layout-content, 760px);
}

.ez-pattern-related-resources-section__heading,
.ez-pattern-related-resources-section__resource-title {
	margin: 0;
}

.ez-pattern-related-resources-section__lede,
.ez-pattern-related-resources-section__resource-text {
	margin: 0;
	line-height: 1.65;
}

.ez-pattern-related-resources-section__resources {
	gap: var(--ez-grid-gap, 1.75rem);
}

.ez-pattern-related-resources-section__resource {
	display: grid;
	gap: var(--ez-space-md, 1rem);
	align-content: start;
	padding: var(--ez-card-padding, 2rem);
	border: 1px solid rgba(0, 0, 0, var(--ez-card-border-opacity, 0.12));
	border-radius: var(--ez-card-radius, 0.75rem);
	background: var(--ez-color-bg, #fff);
}

.ez-pattern-related-resources-section__resource-actions {
	margin-block-start: var(--ez-space-sm, 0.75rem);
}

/* =============================================================
   GOVERNED PATTERNS — LOCATION DETAIL CONTENT
   ============================================================= */

.ez-pattern-location-detail-section {
	display: grid;
	gap: var(--ez-grid-gap, 1.75rem);
	padding-block: var(--ez-section-padding-y, 5.625rem);
}

.ez-pattern-location-detail-section__intro {
	display: grid;
	gap: var(--ez-space-md, 1rem);
	max-width: var(--ez-layout-content, 760px);
}

.ez-pattern-location-detail-section__heading,
.ez-pattern-location-detail-section__detail-title {
	margin: 0;
}

.ez-pattern-location-detail-section__lede,
.ez-pattern-location-detail-section__detail-text {
	margin: 0;
	line-height: 1.65;
}

.ez-pattern-location-detail-section__details {
	gap: var(--ez-grid-gap, 1.75rem);
}

.ez-pattern-location-detail-section__detail {
	display: grid;
	gap: var(--ez-space-sm, 0.75rem);
	align-content: start;
	padding: var(--ez-card-padding, 2rem);
	border: 1px solid rgba(0, 0, 0, var(--ez-card-border-opacity, 0.12));
	border-radius: var(--ez-card-radius, 0.75rem);
	background: var(--ez-color-bg, #fff);
}

/* =============================================================
   GOVERNED PATTERNS — PROCESS CONTENT
   ============================================================= */

.ez-pattern-process-section {
	display: grid;
	gap: var(--ez-grid-gap, 1.75rem);
	padding-block: var(--ez-section-padding-y, 5.625rem);
}

.ez-pattern-process-section__intro {
	display: grid;
	gap: var(--ez-space-md, 1rem);
	max-width: var(--ez-layout-content, 760px);
}

.ez-pattern-process-section__heading,
.ez-pattern-process-section__step-title {
	margin: 0;
}

.ez-pattern-process-section__lede,
.ez-pattern-process-section__step-marker,
.ez-pattern-process-section__step-text {
	margin: 0;
}

.ez-pattern-process-section__lede,
.ez-pattern-process-section__step-text {
	line-height: 1.65;
}

.ez-pattern-process-section__steps {
	gap: var(--ez-grid-gap, 1.75rem);
}

.ez-pattern-process-section__step {
	display: grid;
	gap: var(--ez-space-sm, 0.75rem);
	align-content: start;
	padding: var(--ez-card-padding, 2rem);
	border: 1px solid rgba(0, 0, 0, var(--ez-card-border-opacity, 0.12));
	border-radius: var(--ez-card-radius, 0.75rem);
	background: var(--ez-color-bg, #fff);
}

.ez-pattern-process-section__step-marker {
	display: inline-grid;
	place-items: center;
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 999px;
	background: var(--ez-accent-primary, var(--ez-color-accent, #e9d2aa));
	color: var(--ez-text-inverse, #fff);
	font-size: var(--ez-type-sm, 0.875rem);
	font-weight: 700;
}

/* =============================================================
   RUNTIME BINDINGS — HEADING PILOT
   ============================================================= */

[data-ez-runtime-binding="ez/heading"][data-ez-runtime-target="heading.container"] {
	display: var(--ez-block-display, block);
	padding: var(--ez-block-padding, 0);
}

[data-ez-runtime-binding="ez/heading"] [data-ez-runtime-target="heading.text"] {
	font-size: var(--ez-block-font-size, inherit);
	color: var(--ez-block-text, inherit);
}

/* =============================================================
   UTILITY CLASSES
   ============================================================= */

.ez-muted {
	background: var(--ez-color-muted, #f8f8f8);
}

.ez-token-surface {
	background: var(--ez-color-surface, #fff);
	border: 1px solid var(--ez-color-border, rgba(0, 0, 0, 0.1));
}

/* =============================================================
   GLASS EFFECT
   ============================================================= */

.ez-glass {
	background: rgba(255, 255, 255, 0.6);
	-webkit-backdrop-filter: blur(12px) saturate(1.6);
	backdrop-filter: blur(12px) saturate(1.6);
	border: 1px solid rgba(255, 255, 255, 0.35);
}

/* =============================================================
   SURFACE + GLASS BODY OVERRIDES
   ============================================================= */

body.ez-surface-muted {
	background: var(--ez-color-muted, #f4f0ec);
}

body.ez-surface-dark {
	background: var(--ez-color-text, #101416);
	color: var(--ez-color-bg, #fff);
}

body.ez-glass-enabled .ez-card {
	background: rgba(255, 255, 255, 0.6);
	-webkit-backdrop-filter: blur(12px) saturate(1.6);
	backdrop-filter: blur(12px) saturate(1.6);
	border-color: rgba(255, 255, 255, 0.35);
}

/* =============================================================
   CATEGORIES LIST PARITY
   ============================================================= */

.wp-block-categories-list.is-style-ez-link-grid {
	display: grid;
	gap: var(--ez-grid-gap, 1rem);
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr));
	justify-items: var(--ez-page-list-grid-justify-items, stretch);
	list-style: none;
	margin-left: auto;
	margin-right: auto;
	max-width: var(--ez-link-grid-max-width, 72rem);
	padding-left: 0;
}

.wp-block-categories-list.is-style-ez-link-grid > li,
.wp-block-categories-list:is(.is-style-fill, .is-style-outline, .is-style-ez-outline) > li {
	margin: 0;
	max-width: 100%;
	min-width: 0;
}

.wp-block-categories-list.ez-hide-children .children,
.wp-block-categories-list.ez-hide-children li li {
	display: none;
}

.wp-block-categories-list.ez-list-align-left {
	--ez-page-list-grid-justify-items: start;
	--ez-page-list-justify: flex-start;
	--ez-page-list-link-justify: flex-start;
	--ez-page-list-link-text-align: left;
}

.wp-block-categories-list.ez-list-align-center {
	--ez-page-list-grid-justify-items: center;
	--ez-page-list-justify: center;
	--ez-page-list-link-justify: center;
	--ez-page-list-link-text-align: center;
}

.wp-block-categories-list.ez-list-align-right {
	--ez-page-list-grid-justify-items: end;
	--ez-page-list-justify: flex-end;
	--ez-page-list-link-justify: flex-end;
	--ez-page-list-link-text-align: right;
}

.wp-block-categories-list.ez-parent-width-auto {
	--ez-page-list-parent-width: auto;
}

.wp-block-categories-list.ez-parent-width-full {
	--ez-page-list-parent-width: 100%;
}

.wp-block-categories-list:is(.is-style-fill, .is-style-outline, .is-style-ez-outline) {
	display: flex;
	flex-wrap: wrap;
	gap: var(--ez-button-gap, 0.5rem);
	justify-content: var(--ez-page-list-justify, flex-start);
	list-style: none;
	padding-left: 0;
}

.wp-block-categories-list:is(.is-style-ez-link-grid, .ez-parent-width-auto, .ez-parent-width-full, .ez-list-align-left, .ez-list-align-center, .ez-list-align-right) > li {
	max-width: 100%;
	width: var(--ez-page-list-parent-width, var(--ez-button-width, auto));
}

.wp-block-categories-list:is(.is-style-ez-link-grid, .is-style-fill, .is-style-outline, .is-style-ez-outline, .ez-parent-width-auto, .ez-parent-width-full, .ez-list-align-left, .ez-list-align-center, .ez-list-align-right) > li > a {
	align-items: center;
	box-sizing: border-box;
	display: inline-flex;
	justify-content: var(--ez-page-list-link-justify, center);
	max-width: 100%;
	text-align: var(--ez-page-list-link-text-align, center);
	width: var(--ez-page-list-parent-width, var(--ez-button-width, auto));
}

.wp-block-categories-list.is-style-ez-link-grid > li > a {
	align-items: center;
	background: var(--ez-color-bg, #fff);
	border: 1px solid rgba(0, 0, 0, var(--ez-card-border-opacity, 0.12));
	border-radius: var(--ez-card-radius, 0.75rem);
	color: inherit;
	display: flex;
	font-weight: 700;
	min-height: 3.5rem;
	padding: 0.9rem 1rem;
	text-decoration: none;
	transition:
		border-color 160ms ease,
		box-shadow 160ms ease,
		transform 160ms ease;
}

.wp-block-categories-list.is-style-ez-link-grid > li > a:hover,
.wp-block-categories-list.is-style-ez-link-grid > li > a:focus-visible {
	border-color: var(--ez-color-accent, currentColor);
	box-shadow: var(--ez-shadow-soft, 0 12px 30px rgba(0, 0, 0, 0.08));
	outline: 0;
	transform: translateY(-1px);
}

.wp-block-categories-list:is(.is-style-fill, .is-style-outline, .is-style-ez-outline) > li > a {
	align-items: center;
	border: var(--ez-button-border-width, 1px) var(--ez-button-border-style, solid) transparent;
	border-radius: var(--ez-button-radius, 999px);
	box-shadow: none;
	display: inline-flex;
	font-size: var(--ez-button-font-size, 1rem);
	font-weight: var(--ez-button-font-weight, 700);
	justify-content: var(--ez-page-list-link-justify, center);
	letter-spacing: var(--ez-button-letter-spacing, 0);
	line-height: var(--ez-button-line-height, 1.2);
	max-width: 100%;
	min-height: var(--ez-button-min-height, 2.75rem);
	padding: var(--ez-button-padding-y, 0.875rem) var(--ez-button-padding-x, 1.625rem);
	text-align: var(--ez-page-list-link-text-align, center);
	text-decoration: none;
	text-transform: var(--ez-button-text-transform, none);
	transition: background-color var(--ez-button-transition, 250ms) ease, border-color var(--ez-button-transition, 250ms) ease, box-shadow var(--ez-button-transition, 250ms) ease, color var(--ez-button-transition, 250ms) ease, transform var(--ez-button-transition, 250ms) ease;
	width: var(--ez-page-list-parent-width, var(--ez-button-width, auto));
}

.wp-block-categories-list.is-style-fill > li > a {
	background: var(--ez-button-fill-bg, var(--ez-color-accent, currentColor));
	border-color: var(--ez-button-fill-border, var(--ez-color-accent, currentColor));
	color: var(--ez-button-fill-color, var(--ez-color-text, #181919));
}

.wp-block-categories-list.is-style-fill > li > a:hover,
.wp-block-categories-list.is-style-fill > li > a:focus-visible {
	background: var(--ez-button-fill-hover-bg, var(--ez-color-text, currentColor));
	border-color: var(--ez-button-fill-hover-border, var(--ez-color-text, currentColor));
	box-shadow: var(--ez-button-hover-shadow, none);
	color: var(--ez-button-fill-hover-color, #ffffff);
	transform: var(--ez-button-hover-transform, translateY(-1px));
}

.wp-block-categories-list.is-style-outline > li > a {
	background: var(--ez-button-outline-bg, transparent);
	border-color: var(--ez-button-outline-border, var(--ez-color-text, currentColor));
	color: var(--ez-button-outline-color, var(--ez-color-text, currentColor));
}

.wp-block-categories-list.is-style-outline > li > a:hover,
.wp-block-categories-list.is-style-outline > li > a:focus-visible {
	background: var(--ez-button-outline-hover-bg, var(--ez-color-text, currentColor));
	border-color: var(--ez-button-outline-hover-border, var(--ez-color-text, currentColor));
	box-shadow: var(--ez-button-hover-shadow, none);
	color: var(--ez-button-outline-hover-color, #ffffff);
	transform: var(--ez-button-hover-transform, translateY(-1px));
}

.wp-block-categories-list.is-style-ez-outline > li > a {
	background: var(--ez-button-ez-outline-bg, transparent);
	border-color: var(--ez-button-ez-outline-border, var(--ez-color-text, currentColor));
	color: var(--ez-button-ez-outline-color, var(--ez-color-text, currentColor));
}

.wp-block-categories-list.is-style-ez-outline > li > a:hover,
.wp-block-categories-list.is-style-ez-outline > li > a:focus-visible {
	background: var(--ez-button-ez-outline-hover-bg, var(--ez-color-text, currentColor));
	border-color: var(--ez-button-ez-outline-hover-border, var(--ez-color-text, currentColor));
	box-shadow: var(--ez-button-hover-shadow, none);
	color: var(--ez-button-ez-outline-hover-color, #ffffff);
	transform: var(--ez-button-hover-transform, translateY(-1px));
}

.wp-block-categories-list:is(.ez-child-style-indented, .ez-child-style-muted, .ez-child-style-compact, .ez-child-style-card) .children {
	display: block;
	flex-basis: 100%;
	list-style: none;
	margin: 0.5rem 0 0;
	padding-left: 0;
}

.wp-block-categories-list:is(.ez-child-style-indented, .ez-child-style-muted, .ez-child-style-compact, .ez-child-style-card) li li {
	margin: 0.35rem 0 0;
}

.wp-block-categories-list:is(.ez-child-style-indented, .ez-child-style-muted, .ez-child-style-compact, .ez-child-style-card) li li a {
	background: transparent;
	border: 0;
	border-radius: var(--ez-card-radius, 0.75rem);
	box-shadow: none;
	color: color-mix(in srgb, var(--ez-color-text, currentColor) 72%, transparent);
	display: inline-flex;
	font-size: 0.9em;
	font-weight: 600;
	line-height: 1.25;
	min-height: 0;
	padding: 0.25rem 0;
	text-decoration: none;
	transform: none;
}

.wp-block-categories-list:is(.ez-child-style-indented, .ez-child-style-muted, .ez-child-style-compact, .ez-child-style-card) li li a:hover,
.wp-block-categories-list:is(.ez-child-style-indented, .ez-child-style-muted, .ez-child-style-compact, .ez-child-style-card) li li a:focus-visible {
	background: transparent;
	border-color: transparent;
	box-shadow: none;
	color: var(--ez-color-text, currentColor);
	transform: none;
}

.wp-block-categories-list.ez-child-style-indented .children {
	border-left: 1px solid color-mix(in srgb, var(--ez-color-text, currentColor) 18%, transparent);
	margin-left: 0.35rem;
	padding-left: 0.85rem;
}

.wp-block-categories-list.ez-child-style-muted li li a {
	color: color-mix(in srgb, var(--ez-color-text, currentColor) 58%, transparent);
	font-weight: 500;
}

.wp-block-categories-list.ez-child-style-compact .children {
	margin-top: 0.25rem;
}

.wp-block-categories-list.ez-child-style-compact li li {
	margin-top: 0.15rem;
}

.wp-block-categories-list.ez-child-style-compact li li a {
	font-size: 0.8125em;
	padding: 0.15rem 0;
}

.wp-block-categories-list.ez-child-style-card .children {
	display: grid;
	gap: 0.35rem;
	margin-top: 0.65rem;
}

.wp-block-categories-list.ez-child-style-card li li {
	margin: 0;
}

.wp-block-categories-list.ez-child-style-card .children a {
	background: var(--ez-color-bg, #fff);
	border: 1px solid color-mix(in srgb, var(--ez-color-text, currentColor) 16%, transparent);
	border-radius: var(--ez-card-radius, 0.75rem);
	color: color-mix(in srgb, var(--ez-color-text, currentColor) 76%, transparent);
	display: inline-flex;
	padding: 0.5rem 0.7rem;
	text-decoration: none;
	width: 100%;
}

.wp-block-categories-list.ez-child-style-card .children a:hover,
.wp-block-categories-list.ez-child-style-card .children a:focus-visible {
	border-color: var(--ez-color-accent, currentColor);
	color: var(--ez-color-text, currentColor);
}
