/* ==========================================================================
   Eroc Theme — component styles
   Colours, fonts and sizes come from theme.json presets, so changes made in
   Site Editor → Styles (or a style variation) cascade through everything.
   ========================================================================== */

body {
	--eroc-ink: var(--wp--preset--color--contrast);
	--eroc-paper: var(--wp--preset--color--base);
	--eroc-signal: var(--wp--preset--color--accent);
	--eroc-orange: var(--wp--preset--color--accent-2);
	--eroc-line: color-mix(in srgb, var(--wp--preset--color--contrast) 18%, transparent);
	--eroc-fine: color-mix(in srgb, var(--wp--preset--color--contrast) 8%, transparent);
	--eroc-line-inv: color-mix(in srgb, var(--wp--preset--color--base) 18%, transparent);
	--eroc-gutter: var(--wp--preset--spacing--40);
	--eroc-col: calc(100% / 12);
	--eroc-mono: var(--wp--preset--font-family--mono);
	--eroc-header-h: var(--wp--custom--header-height, 88px);

	--eroc-arrow-right: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6'%3E%3Cpath d='M5 12h14m-5-5 5 5-5 5'/%3E%3C/svg%3E");
	--eroc-arrow-diag: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5'%3E%3Cpath d='M6 18 18 6M9 6h9v9'/%3E%3C/svg%3E");
	--eroc-ring-diag: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 42 42' fill='none' stroke='%23000'%3E%3Ccircle cx='21' cy='21' r='20.5' stroke-opacity='.22'/%3E%3Cpath stroke-width='1.1' d='M16.75 25.25 25.25 16.75M18.9 16.75h6.35v6.35'/%3E%3C/svg%3E");
	--eroc-ring-solid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%23000'%3E%3Ccircle cx='24' cy='24' r='23.5'/%3E%3Cpath stroke-width='1.1' d='M19.75 28.25 28.25 19.75M21.9 19.75h6.35v6.35'/%3E%3C/svg%3E");

	font-synthesis: none;
	-webkit-font-smoothing: antialiased;
}

html { scroll-behavior: smooth; }
img { max-width: 100%; height: auto; }

/* Top-level sections butt against each other, like the original design. */
.wp-site-blocks > *,
body .eroc-stack > * { margin-block: 0; }

/* Blueprint column grid overlay (front-end only). */
body:not(.editor-styles-wrapper)::before {
	content: "";
	position: fixed;
	inset: 0 var(--eroc-gutter);
	z-index: 50;
	pointer-events: none;
	background-image: linear-gradient(to right, transparent calc(100% - 1px), color-mix(in srgb, var(--eroc-ink) 5.5%, transparent) 1px);
	background-size: calc(100% / 12) 100%;
}

/* Shared helpers --------------------------------------------------------- */
.is-style-eroc-eyebrow,
.eroc-mono {
	font-family: var(--eroc-mono);
	font-size: var(--wp--preset--font-size--label);
	letter-spacing: 0.07em;
	line-height: 1.5;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
}

.eroc-hero-title em,
.is-style-eroc-outline em {
	font-style: normal;
	-webkit-text-fill-color: transparent;
	-webkit-text-stroke: 1.5px currentColor;
}

.is-style-eroc-mono img,
.is-style-eroc-mono .wp-block-cover__image-background,
.is-style-eroc-mono video {
	filter: grayscale(100%) contrast(1.08);
	transition: filter 0.4s ease;
}

.eroc-ruled,
.is-style-eroc-ruled {
	position: relative;
	border-left: 1px solid var(--eroc-line);
	border-right: 1px solid var(--eroc-line);
}

ul.is-style-eroc-ruled-list {
	list-style: none;
	padding-left: 0;
	border-top: 1px solid var(--eroc-line);
}
ul.is-style-eroc-ruled-list > li {
	padding: 14px 0;
	border-bottom: 1px solid var(--eroc-line);
}
.eroc-discipline ul.is-style-eroc-ruled-list { border-top: 0; }
.eroc-discipline ul.is-style-eroc-ruled-list > li:last-child,
.eroc-client ul.is-style-eroc-ruled-list > li:last-child { border-bottom: 0; }

/* Buttons ---------------------------------------------------------------- */
.wp-block-button[class*="is-style-eroc-"] .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	gap: 13px;
	transition: background 0.2s, color 0.2s, gap 0.2s, transform 0.2s;
}
.wp-block-button[class*="is-style-eroc-"] .wp-block-button__link::after {
	content: "";
	flex: none;
	width: 18px;
	height: 18px;
	background: currentColor;
	-webkit-mask: var(--eroc-arrow-right) center / contain no-repeat;
	mask: var(--eroc-arrow-right) center / contain no-repeat;
}

.wp-block-button.is-style-eroc-arrow-link .wp-block-button__link {
	background: transparent;
	color: inherit;
	border: 0;
	border-bottom: 1px solid currentColor;
	border-radius: 0;
	padding: 0 0 8px;
	gap: 35px;
}
.wp-block-button.is-style-eroc-arrow-link .wp-block-button__link:hover,
.wp-block-button.is-style-eroc-arrow-link .wp-block-button__link:focus {
	background: transparent;
	color: inherit;
	gap: 48px;
}

.wp-block-button.is-style-eroc-circle .wp-block-button__link {
	width: 74px;
	height: 74px;
	padding: 0;
	justify-content: center;
	border-radius: 50%;
	border: 1px solid var(--eroc-ink);
	background: var(--eroc-signal);
	color: var(--eroc-ink);
	font-size: 0;
}
.wp-block-button.is-style-eroc-circle .wp-block-button__link::after {
	width: 25px;
	height: 25px;
	-webkit-mask-image: var(--eroc-arrow-diag);
	mask-image: var(--eroc-arrow-diag);
}
.wp-block-button.is-style-eroc-circle .wp-block-button__link:hover,
.wp-block-button.is-style-eroc-circle .wp-block-button__link:focus {
	transform: rotate(45deg);
	background: var(--eroc-signal);
	color: var(--eroc-ink);
}

/* Header ----------------------------------------------------------------- */
.eroc-header {
	position: relative;
	z-index: 60;
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	min-height: var(--eroc-header-h);
	border-bottom: 1px solid var(--eroc-line);
	background: color-mix(in srgb, var(--eroc-paper) 94%, transparent);
}
.eroc-header::before {
	content: "";
	position: absolute;
	inset: 0;
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	z-index: -1;
	pointer-events: none;
}
body .eroc-header > * { margin: 0; }

.eroc-brand {
	display: flex;
	align-items: center;
	gap: 14px;
	width: max-content;
	margin: 0;
}
body .eroc-brand > * { margin: 0; }

.eroc-brand .wp-block-site-logo {
	margin: 0;
	display: inline-flex;
	align-items: center;
	line-height: 0;
}
.eroc-brand .wp-block-site-logo img {
	max-height: 48px;
	width: auto;
	height: auto;
	object-fit: contain;
	display: block;
}
.eroc-brand .wp-block-site-logo.is-default-size img {
	width: auto;
	max-height: 48px;
}

.eroc-logo {
	display: flex;
	align-items: center;
	gap: 13px;
	width: max-content;
	margin: 0;
}
.eroc-logo::before {
	content: "";
	flex: none;
	width: 16px;
	height: 16px;
	transform: rotate(45deg);
	background:
		linear-gradient(currentColor, currentColor) 0 0 / 7px 7px no-repeat,
		linear-gradient(var(--eroc-orange), var(--eroc-orange)) 9px 0 / 7px 7px no-repeat,
		linear-gradient(currentColor, currentColor) 0 9px / 7px 7px no-repeat,
		linear-gradient(currentColor, currentColor) 9px 9px / 7px 7px no-repeat;
}
.eroc-logo a { text-decoration: none; text-transform: uppercase; font-weight: 700; letter-spacing: 0.04em; }

.eroc-brand-mark { margin: 0; line-height: 0; }
.eroc-brand-mark a { display: block; line-height: 0; }
.eroc-brand-mark img {
	width: 46px;
	height: auto;
	display: block;
	object-fit: contain;
}

/* When the company mark is present, hide the decorative CSS fallback. */
.wp-custom-logo .eroc-logo::before,
.eroc-brand:has(.wp-block-site-logo img) .eroc-logo::before,
.eroc-brand:has(.custom-logo-link) .eroc-logo::before,
.eroc-brand:has(.eroc-brand-mark) .eroc-logo::before {
	display: none;
}

.eroc-nav { justify-self: center; align-self: stretch; }
.eroc-nav .wp-block-navigation__container { gap: 0; }

/* Hamburger open button */
.wp-block-navigation__responsive-container-open {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 1px solid var(--eroc-line);
	background: transparent;
	color: var(--eroc-ink);
	cursor: pointer;
	border-radius: 0;
	transition: background 0.2s, color 0.2s, border-color 0.2s;
}
.wp-block-navigation__responsive-container-open:hover,
.wp-block-navigation__responsive-container-open:focus-visible {
	background: var(--eroc-signal);
	border-color: var(--eroc-ink);
}
.wp-block-navigation__responsive-container-open svg {
	width: 22px;
	height: 22px;
}

@media (min-width: 600px) {
	.eroc-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation-item {
		border-left: 1px solid var(--eroc-fine);
	}
	.eroc-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation-item:last-child {
		border-right: 1px solid var(--eroc-fine);
	}
	.eroc-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation-item__content {
		display: grid;
		place-items: center;
		min-width: 105px;
		min-height: var(--eroc-header-h);
		padding: 0 20px;
		transition: background 0.2s;
	}
	.eroc-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation-item__content:hover,
	.eroc-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .current-menu-item > .wp-block-navigation-item__content {
		background: var(--eroc-signal);
		color: var(--eroc-ink);
	}
}

/* Full-Screen Mobile Navigation Overlay */
.eroc-nav .wp-block-navigation__responsive-container.is-menu-open {
	position: fixed !important;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	bottom: 0 !important;
	width: 100vw !important;
	height: 100vh !important;
	height: 100dvh !important;
	max-width: 100vw !important;
	max-height: 100dvh !important;
	background: var(--eroc-paper) !important;
	color: var(--eroc-ink) !important;
	z-index: 999999 !important;
	padding: 0 !important;
	margin: 0 !important;
	display: flex !important;
	flex-direction: column !important;
	box-sizing: border-box !important;
	overflow-y: auto !important;
	overflow-x: hidden !important;
	-webkit-overflow-scrolling: touch;
	background-image: linear-gradient(to right, transparent calc(100% - 1px), color-mix(in srgb, var(--eroc-ink) 5%, transparent) 1px) !important;
	background-size: 25% 100% !important;
}

.eroc-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-close,
.eroc-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog {
	display: flex !important;
	flex-direction: column !important;
	flex: 1 0 auto !important;
	min-height: 100% !important;
	width: 100% !important;
	box-sizing: border-box !important;
	position: relative !important;
}

/* Close Button at top-right */
.eroc-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
	position: absolute !important;
	top: max(16px, env(safe-area-inset-top, 16px)) !important;
	right: max(var(--eroc-gutter), env(safe-area-inset-right, 20px)) !important;
	z-index: 20 !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 44px !important;
	height: 44px !important;
	padding: 0 !important;
	margin: 0 !important;
	border: 1px solid var(--eroc-line) !important;
	background: var(--eroc-paper) !important;
	color: var(--eroc-ink) !important;
	cursor: pointer !important;
	border-radius: 0 !important;
	transition: background 0.2s, border-color 0.2s, transform 0.2s !important;
}
.eroc-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close:hover,
.eroc-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close:focus-visible {
	background: var(--eroc-signal) !important;
	border-color: var(--eroc-ink) !important;
	transform: rotate(90deg) !important;
}
.eroc-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close svg {
	width: 22px !important;
	height: 22px !important;
}

/* Menu Content Container */
.eroc-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	display: flex !important;
	flex-direction: column !important;
	justify-content: space-between !important;
	flex: 1 0 auto !important;
	width: 100% !important;
	max-width: 100% !important;
	box-sizing: border-box !important;
	padding-top: calc(var(--eroc-header-h) + 12px) !important;
	padding-left: max(var(--eroc-gutter), env(safe-area-inset-left, 20px)) !important;
	padding-right: max(var(--eroc-gutter), env(safe-area-inset-right, 20px)) !important;
	padding-bottom: max(36px, env(safe-area-inset-bottom, 36px)) !important;
}

/* Menu Item List with Ruled Borders */
.eroc-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	display: flex !important;
	flex-direction: column !important;
	width: 100% !important;
	gap: 0 !important;
	border-top: 1px solid var(--eroc-line) !important;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
	counter-reset: eroc-menu-num !important;
}

.eroc-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
	display: block !important;
	width: 100% !important;
	border-bottom: 1px solid var(--eroc-line) !important;
	counter-increment: eroc-menu-num !important;
}

.eroc-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	width: 100% !important;
	box-sizing: border-box !important;
	padding: 20px 0 !important;
	font-size: clamp(24px, 6.5vw, 36px) !important;
	font-weight: 500 !important;
	letter-spacing: -0.03em !important;
	color: var(--eroc-ink) !important;
	text-decoration: none !important;
	transition: color 0.2s, padding-left 0.2s !important;
}

/* Mono numbered prefix e.g. 01, 02, 03... */
.eroc-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content::before {
	content: "0" counter(eroc-menu-num);
	font-family: var(--eroc-mono);
	font-size: 13px;
	letter-spacing: 0.08em;
	color: var(--wp--preset--color--accent-2);
	margin-right: 20px;
	flex: none;
}

/* Arrow indicator icon */
.eroc-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content::after {
	content: "";
	width: 20px;
	height: 20px;
	flex: none;
	background: currentColor;
	-webkit-mask: var(--eroc-arrow-right) center / contain no-repeat;
	mask: var(--eroc-arrow-right) center / contain no-repeat;
	opacity: 0.35;
	transform: translateX(-6px);
	transition: opacity 0.2s, transform 0.2s;
}

.eroc-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:hover::after,
.eroc-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:active::after {
	opacity: 1;
	transform: translateX(0);
}

.eroc-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:hover,
.eroc-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:focus-visible {
	padding-left: 8px !important;
	color: var(--eroc-ink) !important;
}

.eroc-header-cta { justify-self: end; }
.eroc-header-cta .wp-block-button__link { border-bottom: 0 !important; padding: 0 !important; }

/* Hero ------------------------------------------------------------------- */
.eroc-hero.wp-block-columns {
	min-height: calc(100vh - var(--eroc-header-h));
	margin: 0;
	gap: 0;
	border-bottom: 1px solid var(--eroc-line);
}
.eroc-hero-copy {
	position: relative;
	min-width: 0;
	display: flex;
	flex-direction: column;
	padding: 45px var(--eroc-gutter) 42px;
}
body .eroc-hero-copy > * { margin-block: 0; }

.eroc-coordinate {
	font-family: var(--eroc-mono);
	font-size: var(--wp--preset--font-size--label);
	color: var(--wp--preset--color--subtle);
	text-align: right;
}
body .eroc-hero-copy > .eroc-coordinate { margin-bottom: 12vh; }

.eroc-label {
	font-family: var(--eroc-mono);
	font-size: var(--wp--preset--font-size--label);
	letter-spacing: 0.05em;
	word-spacing: 0.3em;
}
.eroc-label mark { margin-right: 36px; }

body .eroc-hero-copy > .eroc-hero-title {
	margin: 30px 0 55px;
	max-width: 900px;
}

body .eroc-hero-copy > .eroc-hero-bottom {
	margin-top: auto;
	padding-left: calc((100% - 2px) / 6);
	gap: 24px;
}
.eroc-hero-bottom > p {
	max-width: 390px;
	margin: 0;
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.7;
	color: var(--wp--preset--color--muted);
}

.eroc-hero-media { position: relative; min-width: 0; }
.eroc-hero-visual.wp-block-cover {
	height: 100%;
	min-height: 620px;
	margin: 0;
	padding: 0;
	overflow: hidden;
}
.eroc-hero-visual .wp-block-cover__background {
	background: linear-gradient(90deg, rgba(11, 20, 18, 0.12), transparent 50%) !important;
	opacity: 1 !important;
}
.eroc-hero-visual .wp-block-cover__inner-container {
	position: absolute;
	inset: 0;
	z-index: 2;
	width: auto;
	background-image:
		linear-gradient(color-mix(in srgb, var(--eroc-signal) 42%, transparent) 1px, transparent 1px),
		linear-gradient(90deg, color-mix(in srgb, var(--eroc-signal) 42%, transparent) 1px, transparent 1px);
	background-size: 25% 20%;
}
body .eroc-hero-visual .wp-block-cover__inner-container > * { margin: 0; }

.eroc-note {
	position: absolute;
	z-index: 3;
	font-family: var(--eroc-mono);
	font-size: 9px;
	letter-spacing: 1px;
	color: #fff;
	writing-mode: vertical-rl;
}
.eroc-note-top { top: 24px; right: 20px; }
.eroc-note-bottom { bottom: 25px; left: 20px; }
.eroc-note a { color: inherit; text-decoration: none; }
.eroc-note a:hover { color: var(--eroc-signal); }

.eroc-stamp {
	position: absolute;
	z-index: 3;
	right: 0;
	bottom: 0;
	width: 164px;
	height: 164px;
	padding: 25px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	background: var(--eroc-signal);
	color: var(--eroc-ink);
	transition: transform 0.3s ease;
}
body .eroc-stamp > * { margin: 0; }
.eroc-stamp-code {
	font-size: 53px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.06em;
}
.eroc-stamp-text {
	font-family: var(--eroc-mono);
	font-size: 9px;
	line-height: 1.4;
}

/* Proof bar -------------------------------------------------------------- */
.eroc-proof {
	display: grid;
	grid-template-columns: 2fr 5fr;
	align-items: stretch;
	min-height: 108px;
	border-bottom: 1px solid var(--eroc-line);
}
body .eroc-proof > * { margin: 0; }
.eroc-proof > p { align-self: center; }
.eroc-proof-items {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
}
body .eroc-proof-items > * {
	margin: 0;
	display: grid;
	place-items: center;
	text-align: center;
	border-left: 1px solid var(--eroc-fine);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	transition: background 0.2s;
}
.eroc-proof-items > *:last-child { border-right: 1px solid var(--eroc-fine); }
.eroc-proof-items > *:hover { background: var(--eroc-signal); color: var(--eroc-ink); }

/* Section index (vertical "01 / EXPERTISE" tab) --------------------------- */
.eroc-index {
	position: absolute;
	top: 0;
	left: 0;
	width: var(--eroc-col);
	height: 116px;
	padding: 23px 17px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	align-items: flex-start;
	border-right: 1px solid var(--eroc-line);
	font-family: var(--eroc-mono);
	font-size: 8px;
	color: var(--wp--preset--color--subtle);
}
body .eroc-index > * { margin: 0; }
.eroc-index > :first-child { color: var(--eroc-orange); font-size: 11px; }
.eroc-index > :last-child { writing-mode: vertical-rl; transform: rotate(180deg); letter-spacing: 0.06em; }

/* Expertise -------------------------------------------------------------- */
.eroc-expertise {
	padding: var(--wp--preset--spacing--70) var(--eroc-col) var(--wp--preset--spacing--60);
}
body .eroc-expertise > * { margin-block: 0; }

.eroc-intro {
	display: grid;
	grid-template-columns: 2fr 4fr 3fr;
	gap: 30px;
	align-items: start;
}
body .eroc-expertise > .eroc-intro { margin-bottom: 105px; }
body .eroc-intro > * { margin: 0; }
.eroc-intro > .is-style-eroc-eyebrow { margin-top: 5px; }
.eroc-intro > p:last-child {
	max-width: 340px;
	font-size: 13px;
	line-height: 1.8;
	color: var(--wp--preset--color--muted);
}

.eroc-services { border-top: 1px solid var(--eroc-line); }
body .eroc-services > * { margin: 0; }

.eroc-service {
	position: relative;
	display: grid;
	grid-template-columns: 1fr 4fr 4fr 50px;
	align-items: center;
	gap: 22px;
	min-height: 136px;
	border-bottom: 1px solid var(--eroc-line);
	transition: background 0.2s, padding 0.2s;
}
body .eroc-service > * { margin: 0; }
.eroc-service::after {
	content: "";
	justify-self: end;
	width: 42px;
	height: 42px;
	background: currentColor;
	-webkit-mask: var(--eroc-ring-diag) center / contain no-repeat;
	mask: var(--eroc-ring-diag) center / contain no-repeat;
	transition: transform 0.25s;
}
.eroc-service:hover { background: var(--eroc-signal); color: var(--eroc-ink); padding-inline: 20px; }
.eroc-service:hover::after { transform: rotate(45deg); }

.eroc-service-code {
	font-family: var(--eroc-mono);
	font-size: var(--wp--preset--font-size--label);
	color: var(--eroc-orange);
}
.eroc-service h3 {
	font-size: var(--wp--preset--font-size--large);
	letter-spacing: -0.025em;
	line-height: 1.2;
}
.eroc-service h3 a { text-decoration: none; }
body:not(.editor-styles-wrapper) .eroc-service h3 a::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}
.eroc-service > p:not(.eroc-service-code) {
	max-width: 320px;
	font-size: 12px;
	line-height: 1.65;
	color: var(--wp--preset--color--muted);
}
.eroc-service:hover > p:not(.eroc-service-code) { color: var(--eroc-ink); }

/* Projects --------------------------------------------------------------- */
.eroc-projects {
	position: relative;
	padding-top: var(--wp--preset--spacing--70);
	padding-bottom: var(--wp--preset--spacing--60);
}
body .eroc-projects > * { margin-block: 0; }
.eroc-projects .eroc-index {
	left: var(--eroc-gutter);
	width: calc((100% - 2 * var(--eroc-gutter)) / 12);
	border-color: var(--eroc-line-inv);
}
.eroc-projects .is-style-eroc-eyebrow { color: var(--wp--preset--color--subtle); }

.eroc-project-heading {
	display: grid;
	grid-template-columns: 1fr 2fr;
	gap: 40px;
	padding-left: var(--eroc-col);
}
body .eroc-projects > .eroc-project-heading { margin-bottom: 78px; }
body .eroc-project-heading > * { margin: 0; }
.eroc-project-heading h2 { font-size: clamp(40px, 4.6vw, 72px); }

.eroc-project-stage.wp-block-columns {
	gap: 0;
	min-height: 580px;
	margin: 0;
}
.eroc-project-media { position: relative; overflow: hidden; min-width: 0; }
body .eroc-project-media > * { margin: 0; }
.eroc-project-media .wp-block-image,
.eroc-project-media .wp-block-image img {
	width: 100%;
	height: 100%;
	margin: 0;
}
.eroc-project-media .eroc-project-stage-link,
.eroc-project-media .wp-block-image { position: absolute; inset: 0; display: block; }
.eroc-project-media .eroc-project-stage-link { z-index: 1; }
.eroc-project-title a { color: inherit; text-decoration: none; }
.eroc-project-media .wp-block-image img { object-fit: cover; transition: opacity 0.25s ease, filter 0.4s ease; }
.eroc-project-media .wp-block-image img.is-swapping { opacity: 0; }

.eroc-project-counter {
	position: absolute;
	z-index: 2;
	left: 0;
	bottom: 0;
	padding: 16px 20px;
	background: var(--eroc-signal);
	color: var(--eroc-ink);
	font-family: var(--eroc-mono);
	font-size: var(--wp--preset--font-size--label);
}

.eroc-project-dots { display: none; }

.eroc-project-list { border-top: 1px solid color-mix(in srgb, var(--wp--preset--color--base) 22%, transparent); }
body .eroc-project-list > * { margin: 0; }

.eroc-project {
	display: grid;
	grid-template-columns: 34px 1fr auto 25px;
	align-items: center;
	gap: 15px;
	min-height: 112px;
	padding: 16px 22px;
	border-bottom: 1px solid var(--eroc-line-inv);
	border-left: 3px solid transparent;
	color: var(--wp--preset--color--subtle);
	cursor: pointer;
	transition: background 0.2s, color 0.2s, border-color 0.2s;
}
body .eroc-project > * { margin: 0; }
.eroc-project::after {
	content: "";
	width: 17px;
	height: 17px;
	background: currentColor;
	-webkit-mask: var(--eroc-arrow-diag) center / contain no-repeat;
	mask: var(--eroc-arrow-diag) center / contain no-repeat;
}
.eroc-project:hover,
.eroc-project:focus-visible,
.eroc-project.is-active {
	background: var(--wp--preset--color--contrast-2);
	color: var(--wp--preset--color--white);
	outline: none;
}
.eroc-project.is-active { border-left-color: var(--eroc-signal); }

.eroc-project-num {
	font-family: var(--eroc-mono);
	font-size: 9px;
	color: var(--eroc-signal);
}
body .eroc-project-info > *,
body .eroc-project-meta > * { margin: 0; }
.eroc-project-title {
	font-size: 18px;
	font-weight: 500;
	line-height: 1.3;
	letter-spacing: -0.01em;
	margin-bottom: 8px !important;
}
.eroc-project-info > p:not(.eroc-project-title),
.eroc-project-meta > p {
	font-family: var(--eroc-mono);
	font-size: 9px;
	line-height: 1.5;
	text-transform: uppercase;
	color: var(--wp--preset--color--subtle);
	margin: 4px 0 !important;
}
.eroc-project-meta { text-align: right; }

/* Thumbnail per row: the source image for the stage. Hidden on the front end,
   visible in the editor so it can be swapped like any image block. */
body:not(.editor-styles-wrapper) .eroc-project-thumb { display: none; }
.editor-styles-wrapper .eroc-project-thumb { grid-column: 1 / -1; max-width: 140px; }

/* Approach --------------------------------------------------------------- */
.eroc-approach {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 9%;
	min-height: 820px;
	padding: var(--wp--preset--spacing--70) var(--eroc-col) var(--wp--preset--spacing--60);
}
body .eroc-approach > * { margin: 0; }
body .eroc-approach-copy > * { margin-block: 0; }
body .eroc-approach-copy > .is-style-eroc-eyebrow { margin-bottom: 35px; }
body .eroc-approach-copy > p:not(.is-style-eroc-eyebrow) {
	max-width: 475px;
	margin: 45px 0 35px;
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.85;
	color: var(--wp--preset--color--muted);
}

.eroc-stats {
	display: grid;
	grid-template-columns: 1fr 1fr;
	align-self: end;
	border-top: 1px solid var(--eroc-line);
	border-left: 1px solid var(--eroc-line);
}
body .eroc-stats > * { margin: 0; }
.eroc-stat {
	aspect-ratio: 1.15;
	padding: 25px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	border-right: 1px solid var(--eroc-line);
	border-bottom: 1px solid var(--eroc-line);
	transition: background 0.2s;
}
.eroc-stat:hover { background: var(--eroc-signal); color: var(--eroc-ink); }
body .eroc-stat > * { margin: 0; }
.eroc-stat-value {
	font-size: clamp(38px, 4vw, 63px);
	font-weight: 500;
	line-height: 1;
	letter-spacing: -0.06em;
}
.eroc-stat-label {
	font-family: var(--eroc-mono);
	font-size: 9px;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
}

/* Contact ---------------------------------------------------------------- */
.eroc-contact {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 650px;
	padding: 70px 8.33%;
}
body .eroc-contact > * { margin: 0; max-width: none; }
.eroc-contact-coordinate {
	position: absolute;
	top: 35px;
	right: var(--eroc-gutter);
	font-family: var(--eroc-mono);
	font-size: 9px;
}
body .eroc-contact > .eroc-contact-kicker {
	margin-bottom: 32px;
	font-family: var(--eroc-mono);
	font-size: var(--wp--preset--font-size--label);
}
body .eroc-contact > .eroc-contact-title {
	margin-bottom: 55px;
	font-size: var(--wp--preset--font-size--colossal);
	line-height: 0.82;
	letter-spacing: -0.08em;
}
.eroc-contact-link {
	border-top: 1px solid color-mix(in srgb, currentColor 50%, transparent);
	border-bottom: 1px solid color-mix(in srgb, currentColor 50%, transparent);
	font-size: clamp(16px, 2vw, 28px);
	letter-spacing: -0.02em;
}
.eroc-contact-link a {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px 24px;
	flex-wrap: wrap;
	padding: 22px 0;
	text-decoration: none;
}
.eroc-contact-link a::after {
	content: "";
	flex: none;
	width: 48px;
	height: 48px;
	background: currentColor;
	-webkit-mask: var(--eroc-ring-solid) center / contain no-repeat;
	mask: var(--eroc-ring-solid) center / contain no-repeat;
	transition: transform 0.25s;
}
.eroc-contact-link a:hover::after { transform: rotate(45deg); }
.eroc-contact-alt {
	margin-top: 22px !important;
	font-family: var(--eroc-mono);
	font-size: 11px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}
.eroc-contact-alt a { text-decoration: none; }
.eroc-contact-alt a:hover { text-decoration: underline; }

.eroc-projects .eroc-project-heading-copy .wp-block-buttons { margin-top: 28px; }
body .eroc-project-heading-copy > * { margin: 0; }
.eroc-projects .is-style-eroc-arrow-link .wp-block-button__link { color: var(--wp--preset--color--base); }

/* Footer ----------------------------------------------------------------- */
.eroc-footer {
	display: grid;
	grid-template-columns: 1.3fr 1fr 1fr auto;
	gap: 28px 36px;
	align-content: start;
	align-items: start;
	min-height: 250px;
}
body .eroc-footer > * { margin: 0; }
.eroc-footer .eroc-brand { align-items: center; }
.eroc-footer .eroc-brand-mark img {
	width: 42px;
	filter: brightness(0) invert(1);
}
.eroc-footer .eroc-logo { font-size: 13px; letter-spacing: 0.06em; gap: 18px; }
.eroc-footer-address {
	font-family: var(--eroc-mono);
	font-size: 10px;
	line-height: 1.7;
	color: var(--wp--preset--color--subtle);
}
.eroc-footer-links {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 9px;
	font-family: var(--eroc-mono);
	font-size: 10px;
	text-transform: uppercase;
}
body .eroc-footer-links > * { margin: 0; }
.eroc-footer-links a { text-decoration: none; }
.eroc-footer-links a:hover { color: var(--eroc-signal); }
body .eroc-footer > .eroc-footer-copy {
	grid-column: 1 / -1;
	margin-top: 70px;
	padding-top: 20px;
	border-top: 1px solid color-mix(in srgb, var(--wp--preset--color--base) 13%, transparent);
	font-family: var(--eroc-mono);
	font-size: 9px;
	color: var(--wp--preset--color--subtle);
}

/* Inner pages ------------------------------------------------------------ */
.eroc-page-head {
	padding: var(--wp--preset--spacing--60) var(--eroc-col) var(--wp--preset--spacing--50);
	border-bottom: 1px solid var(--eroc-line);
}
body .eroc-page-head > * { margin-block: 0; }
body .eroc-page-head > * + * { margin-top: 28px; }
.eroc-page-head .wp-block-post-title,
.eroc-page-head .wp-block-query-title { max-width: 1100px; }

.eroc-page-body {
	padding-top: var(--wp--preset--spacing--50);
	padding-bottom: var(--wp--preset--spacing--60);
}

.eroc-featured.wp-block-post-featured-image { margin: 0; border-bottom: 1px solid var(--eroc-line); }
.eroc-featured img { width: 100%; max-height: 70vh; object-fit: cover; }

.eroc-meta-row {
	gap: 0 !important;
	border-top: 1px solid var(--eroc-line);
}
body .eroc-meta-row > * {
	margin: 0;
	padding: 14px 18px;
	border-right: 1px solid var(--eroc-line);
}
.eroc-meta-row > *:first-child { padding-left: 0; }

/* Post cards */
.eroc-cards.wp-block-post-template {
	gap: 0;
	border-top: 1px solid var(--eroc-line);
}
.eroc-card {
	height: 100%;
	padding: 24px;
	border-right: 1px solid var(--eroc-line);
	border-bottom: 1px solid var(--eroc-line);
	transition: background 0.2s;
}
.eroc-cards > li:nth-child(3n) .eroc-card { border-right: 0; }
.eroc-card:hover { background: color-mix(in srgb, var(--eroc-signal) 55%, transparent); }
.eroc-card:hover .is-style-eroc-mono img { filter: none; }
body .eroc-card > * { margin-block: 0; }
body .eroc-card > * + * { margin-top: 16px; }
.eroc-card .wp-block-post-featured-image { overflow: hidden; }
.eroc-card .wp-block-post-title { font-size: var(--wp--preset--font-size--large); letter-spacing: -0.02em; line-height: 1.2; }
.eroc-card .wp-block-post-excerpt { font-size: 13px; color: var(--wp--preset--color--muted); }
.eroc-card .wp-block-post-excerpt__more-link { font-family: var(--eroc-mono); font-size: 10px; text-transform: uppercase; }

.wp-block-query-pagination {
	font-family: var(--eroc-mono);
	font-size: var(--wp--preset--font-size--label);
	text-transform: uppercase;
	padding-top: 30px;
}
.wp-block-query-pagination a { text-decoration: none; }
.wp-block-query-pagination .page-numbers.current {
	background: var(--eroc-signal);
	color: var(--eroc-ink);
	padding: 4px 8px;
}

/* Forms */
.wp-block-search__input,
.wp-block-post-comments-form input:not([type="submit"]),
.wp-block-post-comments-form textarea {
	border: 1px solid var(--eroc-line);
	background: transparent;
	border-radius: 0;
	padding: 14px 16px;
	font: inherit;
	color: inherit;
}
.wp-block-search__input:focus,
.wp-block-post-comments-form input:focus,
.wp-block-post-comments-form textarea:focus {
	outline: 2px solid var(--eroc-signal);
	outline-offset: 0;
	border-color: var(--eroc-ink);
}

/* Inner pages built from the eroc menu ---------------------------------- */
.eroc-masthead {
	padding: clamp(72px, 9vw, 120px) var(--eroc-col) clamp(40px, 5vw, 72px);
	border-bottom: 1px solid var(--eroc-line);
}
body .eroc-masthead > * { margin: 0; }
body .eroc-masthead > * + * { margin-top: 20px; }
.eroc-masthead h1,
.eroc-masthead .wp-block-post-title { max-width: 14ch; }
.eroc-lede {
	max-width: 560px;
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.45;
	letter-spacing: -0.02em;
	color: var(--wp--preset--color--muted);
}
.eroc-masthead .is-style-eroc-eyebrow a { text-decoration: none; }

.eroc-split {
	display: grid;
	grid-template-columns: 1fr 1fr;
	border-bottom: 1px solid var(--eroc-line);
}
body .eroc-split > * { margin: 0; }
.eroc-split-copy {
	padding: clamp(36px, 5vw, 72px) var(--eroc-col);
}
body .eroc-split-copy > * { margin-block: 0; }
body .eroc-split-copy > * + * { margin-top: 18px; }
.eroc-split-copy p {
	font-size: 15px;
	line-height: 1.75;
	color: var(--wp--preset--color--muted);
}
.eroc-split-media { height: 100%; }
.eroc-split-media img {
	width: 100%;
	height: 100%;
	min-height: 460px;
	object-fit: cover;
	display: block;
}

.eroc-clientele,
.eroc-offices {
	display: grid;
	grid-template-columns: 1fr 1fr;
}
body .eroc-clientele > *,
body .eroc-offices > * { margin: 0; }
.eroc-client,
.eroc-office { padding: clamp(36px, 4vw, 64px) var(--eroc-col); }
.eroc-client + .eroc-client,
.eroc-office + .eroc-office { border-left: 1px solid var(--eroc-line); }
body .eroc-client > *,
body .eroc-office > * { margin: 0; }
body .eroc-client > * + *,
body .eroc-office > * + * { margin-top: 16px; }
.eroc-client h2,
.eroc-office h2 { margin-bottom: 8px !important; }

.eroc-discipline {
	display: grid;
	grid-template-columns: 72px minmax(200px, 0.9fr) 1.3fr;
	gap: 20px 36px;
	align-items: start;
	padding: 42px var(--eroc-col);
	border-bottom: 1px solid var(--eroc-line);
	scroll-margin-top: 24px;
}
body .eroc-discipline > * { margin: 0; }
.eroc-discipline h2 { font-size: clamp(28px, 3vw, 40px); }
.eroc-discipline-title p {
	margin: 12px 0 0;
	font-size: 14px;
	line-height: 1.6;
	color: var(--wp--preset--color--muted);
}
.eroc-discipline .wp-block-list { margin: 0; }

.eroc-roster {
	padding: clamp(56px, 7vw, 96px) var(--eroc-col) 0;
}
body .eroc-roster > * { margin: 0; }
body .eroc-roster > .eroc-team { margin-top: 36px; }
.eroc-team {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	border-top: 1px solid var(--eroc-line);
	border-left: 1px solid var(--eroc-line);
}
body .eroc-team > * { margin: 0; }
.eroc-person {
	min-height: 140px;
	padding: 28px 22px;
	border-right: 1px solid var(--eroc-line);
	border-bottom: 1px solid var(--eroc-line);
}
body .eroc-person > * { margin: 0; }
.eroc-person-name {
	font-size: 22px;
	font-weight: 500;
	letter-spacing: -0.03em;
	line-height: 1.2;
}
.eroc-person-role {
	margin-top: 10px !important;
	font-family: var(--eroc-mono);
	font-size: 10px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
}

.eroc-project-query {
	padding: 0 var(--eroc-col) var(--wp--preset--spacing--60);
}
.eroc-project-query .eroc-card .wp-block-post-featured-image img {
	aspect-ratio: 4 / 3;
	object-fit: cover;
	width: 100%;
}
.eroc-project-query .eroc-card .wp-block-post-title {
	font-size: 22px;
}

.eroc-form { display: grid; gap: 8px; margin-top: 12px; }
.eroc-field { display: grid; gap: 6px; }
.eroc-field span,
.eroc-notice {
	font-family: var(--eroc-mono);
	font-size: 10px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}
.eroc-form input,
.eroc-form textarea {
	width: 100%;
	border: 0;
	border-bottom: 1px solid var(--eroc-line);
	border-radius: 0;
	background: transparent;
	padding: 12px 0 14px;
	font: inherit;
	color: inherit;
}
.eroc-form input:focus,
.eroc-form textarea:focus {
	outline: none;
	border-bottom-color: var(--eroc-ink);
	box-shadow: inset 0 -2px 0 var(--eroc-signal);
}
.eroc-form button {
	justify-self: start;
	margin-top: 18px;
	border: 1px solid var(--eroc-ink);
	background: var(--eroc-ink);
	color: var(--eroc-paper);
	padding: 16px 24px;
	font: inherit;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	cursor: pointer;
}
.eroc-form button:hover,
.eroc-form button:focus-visible { background: var(--eroc-signal); color: var(--eroc-ink); }
.eroc-hp {
	position: absolute;
	left: -9999px;
	height: 0;
	overflow: hidden;
}
.eroc-notice { color: var(--eroc-ink); }
.eroc-notice.is-error { color: var(--eroc-orange); }

.eroc-project-body { padding-bottom: var(--wp--preset--spacing--60); }
body .eroc-case > *,
body .eroc-case-intro > *,
body .eroc-case-scope > *,
body .eroc-case-bank > * { margin: 0; }

.eroc-case-intro {
	padding: clamp(40px, 5vw, 72px) var(--eroc-col) 32px;
}
.eroc-case-intro p:not(.is-style-eroc-eyebrow) {
	max-width: 68ch;
	margin-top: 16px !important;
	font-size: 17px;
	line-height: 1.65;
	color: var(--wp--preset--color--muted);
}

.eroc-case-facts {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin: 0;
	padding: 0 var(--eroc-col);
	border-top: 1px solid var(--eroc-line);
}
.eroc-case-facts > div { padding: 22px 28px 22px 0; }
.eroc-case-facts > div + div {
	padding-left: 28px;
	border-left: 1px solid var(--eroc-line);
}
.eroc-case-facts dt {
	font-family: var(--eroc-mono);
	font-size: 10px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
}
.eroc-case-facts dd {
	margin: 8px 0 0;
	font-size: clamp(22px, 2vw, 28px);
	font-weight: 500;
	letter-spacing: -0.03em;
	line-height: 1.2;
}

.eroc-case-scope,
.eroc-case-bank {
	padding: 36px var(--eroc-col) 8px;
	border-top: 1px solid var(--eroc-line);
}
.eroc-case-scope h2,
.eroc-case-bank h2 {
	font-size: clamp(28px, 3vw, 40px);
	letter-spacing: -0.03em;
	line-height: 1.15;
}
.eroc-case-scope .is-style-eroc-ruled-list { margin-top: 8px; }
.eroc-case ul.is-style-eroc-ruled-list > li:last-child { border-bottom: 0; }

.eroc-case-gallery {
	list-style: none;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 28px 18px;
	margin: 24px 0 28px !important;
	padding: 0;
}
body .eroc-case-gallery > li { margin: 0; }
.eroc-case-gallery figure { margin: 0; }
.eroc-case-gallery img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	display: block;
}
.eroc-case-gallery figcaption {
	margin-top: 10px;
	font-family: var(--eroc-mono);
	font-size: 10px;
	letter-spacing: 0.04em;
	line-height: 1.5;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
}

@media (max-width: 900px) {
	.eroc-cards.wp-block-post-template { grid-template-columns: 1fr 1fr !important; }
	.eroc-cards > li .eroc-card { border-right: 1px solid var(--eroc-line); }
	.eroc-cards > li:nth-child(2n) .eroc-card { border-right: 0; }
	.eroc-discipline { grid-template-columns: 48px 1fr; }
	.eroc-discipline .wp-block-list { grid-column: 1 / -1; }
	.eroc-team { grid-template-columns: 1fr 1fr; }
}

/* 404 */
.eroc-404-code {
	font-size: clamp(120px, 26vw, 400px) !important;
	line-height: 0.8 !important;
	letter-spacing: -0.09em !important;
}

/* Entrance animation (front-end, respects reduced motion) ---------------- */
@media (prefers-reduced-motion: no-preference) {
	body:not(.editor-styles-wrapper) .eroc-hero-title,
	body:not(.editor-styles-wrapper) .eroc-label,
	body:not(.editor-styles-wrapper) .eroc-hero-bottom,
	body:not(.editor-styles-wrapper) .eroc-stamp {
		animation: eroc-rise 0.9s cubic-bezier(0.2, 0.7, 0.2, 1) both;
	}
	body:not(.editor-styles-wrapper) .eroc-hero-title { animation-delay: 0.08s; }
	body:not(.editor-styles-wrapper) .eroc-hero-bottom { animation-delay: 0.18s; }
	body:not(.editor-styles-wrapper) .eroc-stamp { animation-delay: 0.35s; }

	body:not(.editor-styles-wrapper) .eroc-reveal {
		opacity: 0;
		transform: translateY(24px);
		transition: opacity 0.8s ease, transform 0.8s cubic-bezier(0.2, 0.7, 0.2, 1);
	}
	body:not(.editor-styles-wrapper) .eroc-reveal.is-visible {
		opacity: 1;
		transform: none;
	}
}
@keyframes eroc-rise {
	from { opacity: 0; transform: translateY(28px); }
	to { opacity: 1; transform: none; }
}

/* Responsive ------------------------------------------------------------- */
@media (max-width: 980px) {
	.eroc-header { grid-template-columns: 1fr auto; }
	.eroc-header-cta { display: none !important; }
	.eroc-nav { justify-self: end; }
	.eroc-footer { grid-template-columns: 1fr 1fr; }
	.eroc-footer .eroc-brand,
	.eroc-footer .eroc-footer-copy { grid-column: 1 / -1; }
	.eroc-footer-links { align-items: flex-start; }
	.eroc-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation-item__content { min-width: 0 !important; padding: 0 14px !important; }

	.eroc-hero.wp-block-columns { flex-wrap: wrap !important; }
	.eroc-hero > .wp-block-column { flex-basis: 100% !important; }
	.eroc-hero-copy { min-height: 650px; }
	body .eroc-hero-copy > .eroc-coordinate { margin-bottom: 80px; }
	.eroc-hero-visual.wp-block-cover { min-height: 600px; }

	.eroc-intro { grid-template-columns: 1fr 2fr; }
	.eroc-intro > p:last-child { grid-column: 2; }
	.eroc-service { grid-template-columns: 40px 2fr 2fr 45px; }

	.eroc-project-stage.wp-block-columns { flex-wrap: wrap !important; }
	.eroc-project-stage > .wp-block-column { flex-basis: 100% !important; }
	.eroc-project-media { height: 560px; }
	.eroc-project-list { display: grid; grid-template-columns: repeat(3, 1fr); }
	.eroc-project { grid-template-columns: 25px 1fr; min-height: 180px; }
	.eroc-project .eroc-project-meta,
	.eroc-project::after { display: none; }

	.eroc-approach { grid-template-columns: 1fr; }
	.eroc-stats { margin-top: 70px !important; }
}

@media (max-width: 781px) {
	.eroc-cards > li .eroc-card { border-right: 0; }
	.eroc-cards.wp-block-post-template { grid-template-columns: 1fr !important; }
}

@media (max-width: 640px) {
	body:not(.editor-styles-wrapper)::before { background-size: 25% 100%; }
	.eroc-header { min-height: 72px; --eroc-header-h: 72px; }
	.eroc-brand { gap: 10px; }
	.eroc-brand .wp-block-site-logo img { max-height: 38px; }
	.eroc-logo { font-size: 12px; }

	.eroc-hero-copy { padding: 32px 20px; min-height: 590px; }
	.eroc-coordinate { text-align: left; font-size: 8px; }
	body .eroc-hero-copy > .eroc-coordinate { margin-bottom: 70px; }
	body .eroc-hero-copy > .eroc-hero-title { font-size: clamp(51px, 15vw, 75px) !important; margin-top: 24px; }
	body .eroc-hero-copy > .eroc-hero-bottom { padding-left: 0; }
	.eroc-hero-bottom > p { max-width: 260px; font-size: 12px; }
	.wp-block-button.is-style-eroc-circle .wp-block-button__link { width: 58px; height: 58px; }
	.eroc-hero-visual.wp-block-cover { min-height: 500px; }
	.eroc-stamp { width: 130px; height: 130px; padding: 18px; }
	.eroc-stamp-code { font-size: 42px; }

	.eroc-proof { display: block; padding-block: 28px; }
	.eroc-proof-items { grid-template-columns: 1fr 1fr; margin-top: 20px !important; }
	body .eroc-proof-items > * { min-height: 58px; border-top: 1px solid var(--eroc-fine); font-size: 9px; }

	.eroc-index { display: none; }
	.eroc-expertise { padding: 95px 0 80px; }
	.eroc-intro { display: block; }
	body .eroc-expertise > .eroc-intro { margin-bottom: 65px; }
	.eroc-intro h2 { margin: 22px 0 !important; }
	.eroc-service { grid-template-columns: 30px 1fr 38px; min-height: 120px; gap: 10px; }
	.eroc-service > p:not(.eroc-service-code) { display: none; }
	.eroc-service h3 { font-size: 16px; }
	.eroc-service::after { width: 36px; height: 36px; }

	.eroc-projects { padding-top: 85px; padding-bottom: 70px; }
	.eroc-project-heading { display: block; padding: 0; }
	body .eroc-projects > .eroc-project-heading { margin-bottom: 50px; }
	.eroc-project-heading h2 { margin-top: 20px !important; }

	.eroc-project-stage.wp-block-columns {
		position: relative;
		min-height: 0;
		touch-action: pan-y;
	}
	.eroc-project-media {
		height: 460px;
	}
	.eroc-project-media::after {
		content: "";
		position: absolute;
		z-index: 2;
		left: 0;
		right: 0;
		bottom: 0;
		height: 130px;
		background: linear-gradient(transparent, rgba(23, 32, 29, 0.82));
		pointer-events: none;
	}
	.eroc-project-counter {
		z-index: 4;
		bottom: 0;
		height: 68px;
		padding: 0 14px;
		display: flex;
		align-items: center;
		box-sizing: border-box;
	}
	.eroc-project-list {
		position: absolute;
		z-index: 3;
		left: 82px;
		right: 0;
		bottom: 0;
		height: 68px;
		display: flex;
		align-items: center;
		border: 0;
		background: transparent;
		pointer-events: none;
	}
	.eroc-project {
		display: none;
		min-height: 0;
		padding: 0;
		border: 0;
		background: transparent;
		grid-template-columns: 1fr;
	}
	.eroc-project.is-active {
		display: flex;
		align-items: center;
		width: 100%;
		height: 68px;
		pointer-events: auto;
		background: transparent;
		border-left-color: transparent;
	}
	.eroc-project-num,
	.eroc-project-meta,
	.eroc-project::after { display: none; }
	.eroc-project.is-active .eroc-project-info {
		flex: 1;
		min-width: 0;
		padding-right: 52px;
	}
	.eroc-project.is-active .eroc-project-title,
	.eroc-project.is-active .eroc-project-title a {
		color: #fff;
		font-size: 18px;
		line-height: 1.15;
		margin: 0 0 3px !important;
	}
	.eroc-project.is-active .eroc-project-info > p:not(.eroc-project-title) {
		color: rgba(255, 255, 255, 0.82);
		margin: 0 !important;
	}
	.eroc-project.is-active .eroc-project-title a::after {
		content: "";
		position: absolute;
		right: 18px;
		top: 50%;
		width: 22px;
		height: 22px;
		transform: translateY(-50%);
		background: #fff;
		-webkit-mask: var(--eroc-arrow-diag) center / contain no-repeat;
		mask: var(--eroc-arrow-diag) center / contain no-repeat;
	}

	.eroc-project-dots {
		display: flex;
		justify-content: center;
		align-items: center;
		gap: 12px;
		padding: 16px 20px 0;
	}
	.eroc-project-dot {
		appearance: none;
		-webkit-appearance: none;
		width: 28px;
		height: 24px;
		margin: 0;
		padding: 0;
		border: 0;
		border-radius: 0;
		background: transparent;
		cursor: pointer;
		position: relative;
	}
	.eroc-project-dot::before {
		content: "";
		position: absolute;
		left: 0;
		right: 0;
		top: 50%;
		height: 2px;
		background: #fff;
		transform: translateY(-50%);
	}
	.eroc-project-dot.is-active {
		width: 42px;
	}
	.eroc-project-dot.is-active::before {
		height: 3px;
		background: var(--eroc-signal);
	}

	.eroc-ruled.eroc-approach { padding: 95px 0 70px; display: block; }
	body .eroc-approach-copy > p:not(.is-style-eroc-eyebrow) { margin-top: 30px; }
	.eroc-stat { padding: 16px; }

	.eroc-contact { padding: 90px 20px 55px; min-height: 520px; }
	.eroc-contact-coordinate { right: 20px; }
	body .eroc-contact > .eroc-contact-title { font-size: clamp(66px, 20vw, 95px); margin-bottom: 60px; }

	.eroc-footer { grid-template-columns: 1fr 1fr; }
	.eroc-footer .eroc-brand,
	.eroc-footer .eroc-footer-copy { grid-column: 1 / -1; }
	.eroc-footer-links { align-items: flex-start; margin-top: 20px !important; }
	body .eroc-footer > .eroc-footer-copy { margin-top: 35px; }

	.eroc-page-head { padding-inline: 0; }

	.eroc-masthead { padding-inline: 0; }
	.eroc-case-intro,
	.eroc-case-facts,
	.eroc-case-scope,
	.eroc-case-bank { padding-inline: 0; }
	.eroc-case-facts { grid-template-columns: 1fr; }
	.eroc-case-facts > div + div {
		padding-left: 0;
		border-left: 0;
		border-top: 1px solid var(--eroc-line);
	}
	.eroc-case-gallery { grid-template-columns: 1fr; }
	.eroc-split,
	.eroc-clientele,
	.eroc-offices { grid-template-columns: 1fr; }
	.eroc-client + .eroc-client,
	.eroc-office + .eroc-office { border-left: 0; }
	.eroc-discipline { grid-template-columns: 36px 1fr; }
	.eroc-discipline .wp-block-list { grid-column: 2; }
	.eroc-team { grid-template-columns: 1fr; }
	.eroc-split-media img { min-height: 280px; }
}
