/*
 * Marketing-site blocks: the block header/footer parts and the zecha/* patterns
 * (theme card 2bce220994c1, engagements 7-9). Tokens only — no literal colour,
 * size or spacing. Not loaded on WooCommerce pages (engagement 18).
 */

/* Block header — reuses the classic header's classes (header.css), its nav links' type and gaps
 * included. */
.zecha-site-header .wp-block-navigation a {
	color: var(--at-headline);
	text-decoration: none;
}
.zecha-site-header .wp-block-navigation a:hover {
	color: var(--at-highlight);
}

/* Block templates (Landing, Full width): their content sits on the header's and the footer's edge
 * line — the 1200px content box with the preset-5 gutter inside (.zecha-container,
 * .zecha-header-inner, .zecha-footer-inner). The gutter is this main's own padding, not theme.json
 * root padding: useRootPaddingAwareAlignments pads every constrained block site-wide and pushed
 * Groups on classic page.php pages 24px in (Yves, MR !7, 2026-10-30). Full-width blocks still span
 * edge to edge, by WordPress's own negative-margin pattern scoped to this main; a full-width
 * constrained block keeps its inner content on the line. */
.zecha-site-main--blocks {
	--wp--style--global--content-size: calc(var(--at-content-max) - 2 * var(--at-space-5));
	padding-inline: var(--at-space-5);
}
.zecha-site-main--blocks > .alignfull:not(.wp-block-post-content),
.zecha-site-main--blocks > .wp-block-post-content > .alignfull {
	margin-inline: calc(-1 * var(--at-space-5));
}
.zecha-site-main--blocks > .alignfull.is-layout-constrained:not(.wp-block-post-content),
.zecha-site-main--blocks > .wp-block-post-content > .alignfull.is-layout-constrained {
	padding-inline: var(--at-space-5);
}

/* The block navigation keeps to one line in the header, as the classic nav does (header.css,
 * .zecha-nav-primary links white-space: nowrap): when the links don't fit they overflow the header's
 * inner row instead of wrapping, so the fit script (zecha_theme_header_fit_script) sees it and moves
 * to .is-tight, then .is-compact. Wrapping hid the overflow and the header never went compact on a
 * site without WooCommerce (Yves, MR !7, 2026-10-30). The page-list fallback is a nested list. */
.zecha-site-header:not(.is-compact) .wp-block-navigation__container,
.zecha-site-header:not(.is-compact) .wp-block-page-list {
	flex-wrap: nowrap;
}
.zecha-site-header .wp-block-navigation-item__content {
	white-space: nowrap;
}

/* Narrow widths: zecha/menu-toggle gives the block header the classic header's .is-compact state
 * (header.css). Its navigation then lists its links in a column, as .zecha-nav-primary does there;
 * with no menu chosen, the navigation falls back to a page list, a list nested in the container. */
.zecha-site-header.is-compact .wp-block-navigation__container,
.zecha-site-header.is-compact .wp-block-page-list {
	flex-direction: column;
	align-items: flex-start;
	gap: var(--at-space-3);
}

/* Block footer — the classic footer's markup and CSS (footer.css), its top rule included. */
.zecha-site-footer--blocks .zecha-logo {
	display: inline-block;
	margin-bottom: var(--at-space-5);
}

/* Patterns */
.zecha-hero {
	min-height: clamp(18rem, 40vw, 26rem);
}
.zecha-icon-feature__icon img {
	width: var(--at-space-7);
	height: auto;
}

/* zecha/mark — the ZECHA marks, inline SVG from the theme; the ring takes the text colour. */
.zecha-mark svg {
	display: block;
	width: var(--at-space-7);
	height: auto;
}
.zecha-timeline {
	border-left: 1px solid var(--at-divider);
	padding-left: var(--at-space-6);
}
.zecha-timeline__entry {
	position: relative;
	margin-bottom: var(--at-space-6);
}
.zecha-timeline__entry::before {
	content: "";
	position: absolute;
	left: calc(-1 * var(--at-space-6) - var(--at-space-1));
	top: var(--at-space-2);
	width: var(--at-space-2);
	height: var(--at-space-2);
	background: var(--at-accent);
}
.zecha-timeline__year {
	color: var(--at-headline);
	margin: 0;
}
.zecha-download-card,
.zecha-partner-card,
.zecha-contact-block,
.zecha-embed-consent {
	padding: var(--at-space-5);
	border: 1px solid var(--at-hairline);
	border-radius: var(--at-radius-sm);
}
.zecha-job-entry {
	border-bottom: 1px solid var(--at-divider);
	padding: var(--at-space-4) 0;
}
.zecha-job-entry summary {
	font-family: var(--at-font-display);
	color: var(--at-headline);
	cursor: pointer;
}
.zecha-embed-consent iframe {
	width: 100%;
	aspect-ratio: 16 / 9;
	border: 0;
}
