/**
 * Equinox — design tokens + base layer.
 *
 * This file deliberately holds ONLY three things:
 *   1. the design tokens (CSS custom properties) that the Bricks colour palette
 *      and the component classes reference by name,
 *   2. the document-level base/reset the approved design assumes,
 *   3. the two keyframe animations the components reference.
 *
 * Component styling does NOT live here. Every section's styles are attached to
 * its own Bricks global class (visible and editable per component in the
 * builder's Style panel / Custom CSS), which is what the design system is
 * built on. Adding component CSS to this file would take those styles out of
 * the builder and out of the content team's reach.
 */

:root {
	/* ----------------------------------------------------------------
	   Canonical --eq-* namespace (see remediation/TOKENS.md).
	   --equinox-* aliases remain for migration only; component CSS must
	   be remapped off them. Do not author new --equinox-* usages.
	   ---------------------------------------------------------------- */

	/* Colour — one token per semantic role */
	--eq-ink: #1A1D1B;
	--eq-ink-deep: #0D1A13;
	--eq-white: #FFFFFF;
	--eq-paper: #F3F3EF;
	--eq-paper-dim: #E6E6E0;
	--eq-paper-alt: #F1F1EC;
	--eq-paper-lightest: #F8F8F5;
	--eq-gray: #5C6360;
	--eq-gray-dark: #3A403D;
	--eq-gray-faint: #69706C; /* absorbs mute/near-twin greys */
	--eq-border: #E2E2DC;
	--eq-border-alt: #E6E6E0;
	--eq-border-soft: #EDEDE8;
	--eq-border-faint: #DEDED8;
	--eq-border-mute: #D6D6D0;
	--eq-green: #1E6B44;
	--eq-green-hover: #14472E;
	--eq-green-deep: #10412B;
	--eq-gold: #E9A93C;
	--eq-gold-ink: #8F6212;
	--eq-gold-bright: #F5D78A;
	--eq-focus: var(--eq-green);
	/* Hero scrim. Values measured against the approved reference: the reference
	   hero sits at mean luminance 41 where an untinted photo renders at 120,
	   which is a ~0.82 alpha #0D1A13 overlay, easing darker at the very top and
	   bottom. This token existed before but was never applied to anything, which
	   is why the hero rendered as white text on a bright photograph. */
	--eq-scrim-hero: linear-gradient(
		180deg,
		rgba(13, 26, 19, 0.88) 0%,
		rgba(13, 26, 19, 0.85) 22%,
		rgba(13, 26, 19, 0.82) 55%,
		rgba(13, 26, 19, 0.87) 82%,
		rgba(13, 26, 19, 0.90) 100%
	);
	--eq-scrim-plate: rgba(13, 26, 19, 0.72);
	/* Caption plate for text sitting directly on a photograph. Bottom-anchored
	   so the image reads through the top of the panel. .88 at the text baseline
	   guarantees >=4.5:1 for white at any photo brightness. */
	--eq-scrim-panel: linear-gradient(
		to top,
		rgba(13, 26, 19, 0.90) 0%,
		rgba(13, 26, 19, 0.62) 58%,
		rgba(13, 26, 19, 0) 100%
	);
	/* Height of the WP admin bar when present; 0 for visitors. */
	--eq-admin-offset: 0px;

	/* Type families + weights (every weight must be @font-face loaded) */
	--eq-font-display: 'Space Grotesk', Helvetica, Arial, sans-serif;
	--eq-font-body: 'Instrument Sans', Helvetica, Arial, sans-serif;
	--eq-font-mono: 'IBM Plex Mono', ui-monospace, monospace;
	--eq-weight-regular: 400;
	--eq-weight-medium: 500;
	--eq-weight-semibold: 600;

	/* Type scale — 8 sizes. Adjacent steps ≥1.15× (body bumped to 1.125rem
	   so small→body is 14→18 = 1.286×; lead 1.375rem keeps lead→h3 ≥1.15). */
	--eq-text-display: clamp(3.5rem, 6vw, 6.5rem);
	--eq-text-h1: clamp(2.5rem, 3.4vw, 3.25rem);
	--eq-text-h2: 2.25rem;   /* 36px */
	--eq-text-h3: 1.75rem;   /* 28px */
	--eq-text-lead: 1.375rem; /* 22px */
	--eq-text-body: 1.125rem; /* 18px */
	--eq-text-small: 0.875rem; /* 14px */
	--eq-text-label: 0.75rem;  /* 12px */

	--eq-leading-display: 1.05;
	--eq-leading-heading: 1.2;
	--eq-leading-body: 1.6;

	--eq-measure-body: 34em;
	--eq-measure-display: 24ch;

	--eq-tracking-headline: -0.03em;
	--eq-tracking-label: 0.12em;
	--eq-tracking-nav: 0.16em;
	--eq-tracking-wide: 0.18em;
	--eq-tracking-wider: 0.2em;

	/* Spacing — 10 steps. 4px linear base to 16, then ~1.5x.
	   NOTE: this is deliberately 10 steps, not 9. The old scale jumped 16→32,
	   a 2x hole in the most-used range, which forced every 20/22/24/26px gap in
	   the design to snap either 25% down or 23% up. 24px closes that hole and is
	   the single most-used gap in the layout. Ten governed steps beat nine plus
	   a pile of exceptions. */
	--eq-space-1: 4px;
	--eq-space-2: 8px;
	--eq-space-3: 12px;
	--eq-space-4: 16px;
	--eq-space-5: 24px;
	--eq-space-6: 32px;
	--eq-space-7: 48px;
	--eq-space-8: 64px;
	--eq-space-9: 96px;
	--eq-space-10: 128px;

	/* Fluid spacing — 4 governed steps replacing 35 ad-hoc clamps.
	   Each interpolates between two steps of the scale above, so a value is
	   always on-scale at the extremes and governed in between. Computed px at
	   intermediate viewports is intentionally not on the 4px grid: that is what
	   fluid means. Consistency is enforced by token count, not computed px. */
	--eq-space-f3: clamp(12px, 1.3vw, 16px);
	--eq-space-f4: clamp(16px, 1.8vw, 24px);
	--eq-space-f5: clamp(20px, 2.2vw, 32px);
	--eq-space-f6: clamp(24px, 2.8vw, 48px);

	--eq-rel-eyebrow-headline: var(--eq-space-4);
	--eq-rel-headline-intro: var(--eq-space-6);
	--eq-rel-intro-content: var(--eq-space-8);
	--eq-rel-stack-row: var(--eq-space-6);
	--eq-rel-label-value: var(--eq-space-2);

	/* Fluid section padding, anchored on scale steps 8 (64) and 10 (128) so both
	   ends of the interpolation are on-scale. Replaces clamp(64px,8vw,116px). */
	--eq-section-pad-y-fluid: clamp(var(--eq-space-8), 8vw, var(--eq-space-10));
	--eq-section-pad-y: var(--eq-space-10);
	--eq-section-pad-y-mobile: var(--eq-space-9);
	--eq-section-pad-x-mobile: var(--eq-space-4);
	/* Fluid gutter — layout primitive, not a scale step (see TOKENS.md).
	   !important wins over residual/inline :root remaps that still ship the
	   old clamp(16px, 3.4vw, 48px) and desync header from section edges. */
	--eq-content-gutter: var(--eq-space-f6) !important;
	--eq-section-pad-x: var(--eq-content-gutter);

	/* Radii — 2 + 50% */
	--eq-radius-sharp: 0px;
	--eq-radius-soft: 8px;
	--eq-radius-pill: 50%;

	/* Motion — 3 durations, 2 easings */
	--eq-duration-micro: 120ms;
	--eq-duration-standard: 240ms;
	--eq-duration-deliberate: 420ms;
	/* Entrance motion is a different class from interaction motion: it plays once,
	   unprompted, and reads as the page composing itself rather than as feedback.
	   The three interaction durations above are wrong for it — 420ms entrances
	   feel like a glitch at this scale of imagery. One documented reveal step,
	   used only by [data-reveal] entrances, is honest; two would be drift. */
	--eq-duration-reveal: 900ms;
	--eq-ease: cubic-bezier(0.2, 0.7, 0.2, 1);
	--eq-ease-out: cubic-bezier(0.16, 0.84, 0.24, 1);

	/* Chrome */
	--eq-rail-width: 64px;
	--eq-rail-width-expanded: 168px;
	--eq-header-height: 78px;
	--eq-shell: 1440px;

}

/* ---------------------------------------------------------------
   Base layer — matches the approved design's document defaults.
   --------------------------------------------------------------- */

html {
	scroll-behavior: smooth;
	/* Bricks sets html{font-size:62.5%} (1rem=10px). Our type tokens are authored
	   as rem assuming a 16px root — restore the standard root so --eq-text-* resolve. */
	font-size: 100%;
}

body {
	margin: 0px;
	background: var(--eq-white);
	font-family: var(--eq-font-body);
/* 	font-size: var(--eq-text-body); */
	line-height: var(--eq-leading-body);
	font-weight: var(--eq-weight-regular);
	color: var(--eq-ink);
	-webkit-font-smoothing: antialiased;
	/* The hero, the sector panels and the project rail all extend past the
	   viewport by design; the design clips that rather than letting it create a
	   horizontal page scrollbar. */
	overflow-x: hidden!important;
}

/* The Figma export wraps page body in [data-shell]{margin-left: var(--eq-space-8)}. Bricks
   header templates cannot leave that wrapper open around page content, so
   offset main + footer here. Hero already full-bleeds with margin-left:-64px. */
#brx-content,
#brx-footer {
	margin-left: var(--eq-rail-width);
	width: calc(100% - var(--eq-rail-width));
	max-width: none;
	box-sizing: border-box;
}

@media (max-width: 991px) {
	#brx-content,
	#brx-footer {
		margin-left: 0px;
		width: 100%;
	}
}

/* Homepage-only chrome: side rail and load-in curtain. */
body:not(.home) .eq-rail-rail,
body:not(.home) .eq-curtain-curtain {
	display: none !important;
}

body:not(.home) #brx-content,
body:not(.home) #brx-footer {
	margin-left: 0px;
	width: 100%;
}

body:not(.home) .eq-header-nav,
body:not(.home) .eq-header-nav.brxe-section,
body:not(.home) .eq-header-nav.brxe-div {
	left: 0 !important;
}

body:not(.home) .eq-inner-hero,
body:not(.home) .eq-inner-hero.brxe-section,
body:not(.home) .eq-inner-hero > .eq-proj-body,
body:not(.home) .eq-inner-hero > .eq-proj-gallery,
body:not(.home) .eq-inner-hero > .eq-proj-nav,
body:not(.home) .eq-proj-page > .eq-proj-body,
body:not(.home) .eq-proj-page > .eq-proj-gallery,
body:not(.home) .eq-proj-page > .eq-proj-nav {
	margin-left: 0px !important;
	width: 100% !important;
	max-width: 100% !important;
}

/* Bricks ships no opinion on link colour, so without this every anchor that
   does not set its own colour falls back to the browser's blue underline. */
a {
	color: var(--eq-green);
	text-decoration: none;
}

a:hover {
	color: var(--eq-green-hover);
}

img {
	max-width: 100%;
}

input,
textarea,
button,
select {
	font-family: inherit;
	font-size: inherit;
	font-weight: 400;
}

/* Source export used outline:none + border-color swap only. Keep that for
   mouse users; restore a visible ring for keyboard :focus-visible. */
input:focus,
textarea:focus,
select:focus {
	outline: none;
	border-color: var(--eq-focus);
}

:focus-visible {
	outline: 2px solid var(--eq-focus);
	outline-offset: 3px;
}

input:focus-visible,
textarea:focus-visible,
select:focus-visible {
	outline: 2px solid var(--eq-focus);
	outline-offset: 2px;
	border-color: var(--eq-focus);
}

a:focus-visible,
button:focus-visible,
[role="button"]:focus-visible,
summary:focus-visible,
[tabindex]:not([tabindex="-1"]):focus-visible {
	outline: 2px solid var(--eq-focus);
	outline-offset: 3px;
}

/* Kill mouse-focus outline where components set outline:none, without
   removing :focus-visible above. */
:focus:not(:focus-visible) {
	outline: none;
}

::selection {
	background: var(--eq-gold);
	color: var(--eq-ink);
}
@media (hover: hover) and (pointer: fine) {
  html.eq-cursor-on,
  html.eq-cursor-on body,
  html.eq-cursor-on body * {
    cursor: none !important;
  }

  /* Re-enable the cursor while the lightbox is open */
  html.eq-cursor-on:has(.eq-lightbox[open]),
  html.eq-cursor-on:has(.eq-lightbox[open]) body,
  html.eq-cursor-on:has(.eq-lightbox[open]) body * {
    cursor: auto !important;
  }
}
/* Sticky chrome clearance for in-page anchors */
[id] {
	scroll-margin-top: calc(var(--eq-header-height) + var(--eq-space-4));
}

/* Tap targets — 44×44 floor with ≥8px separation for chrome controls.
   Text links in body copy keep line-height; padding expands the hit box. */
a,
button,
[role="button"],
summary,
input[type="submit"],
input[type="button"],
.eq-top-link,
.eq-top-link-2,
[data-desktop-nav] > a,
[data-desktop-nav] > [data-menu] > a,
[data-gotop],
.eq-mnav-close,
.eq-header-burger {
	min-height: 24px;
	min-width: 44px;
	box-sizing: border-box;
}

[data-desktop-nav] {
	gap: max(var(--eq-space-2), 8px) !important;
}

/* The admin bar is position:fixed and 32px (46px under 783px). Our fixed
   chrome also sits at top:0, so for any logged-in editor the top 32px of the
   78px header was hidden behind it. Visitors never saw this; the content team
   always did. */
body.admin-bar {
	--eq-admin-offset: 32px;
}

@media screen and (max-width: 782px) {
	body.admin-bar {
		--eq-admin-offset: 46px;
	}
}

/* Thin scrollbar for the horizontal rails (projects, reviews). */
[data-rail-scroll]::-webkit-scrollbar {
	height: 1px;
}

[data-rail-scroll]::-webkit-scrollbar-thumb {
	background: var(--eq-border-mute);
}

/* ---------------------------------------------------------------
   Layout / chrome overrides Bricks sometimes flattens (max-width:100%,
   dropped calc() widths, section flex centering). Keep these in the
   theme base so they always win over mapped Bricks controls.
   --------------------------------------------------------------- */

/*
 * Header is a Bricks section (position:fixed; left:64px). Sections default
 * to width:100%, which ignores right:0 and overflows the viewport by the
 * rail width (64px). Force the left+right inset model instead.
 */
/* Fixed chrome lives in the Bricks header template. Collapse the wrapper so
   it does not reserve document flow (white gap + white-on-white nav text). */
#brx-header {
	position: absolute !important;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	height: 0 !important;
	overflow: visible !important;
	z-index: 100 !important;
}

/* ----------------------------------------------------------------
   Data-attribute layout bridge — Bricks sometimes outputs data-*
   markers without eq-* global classes after a re-sync. Keep the
   approved layout wired to stable attributes.
   ---------------------------------------------------------------- */

[data-rail] {
	position: fixed !important;
	top: 0 !important;
	left: 0 !important;
	bottom: 0 !important;
	width: var(--eq-rail-width) !important;
	height: auto !important;
	z-index: 58 !important;
	display: flex !important;
	flex-direction: column !important;
	align-items: stretch !important;
	justify-content: space-between !important;
	padding: var(--eq-space-5) 0px var(--eq-space-5) !important;
	overflow: hidden !important;
	background: var(--eq-rail-bg, rgba(255, 255, 255, 0.94)) !important;
	backdrop-filter: var(--eq-rail-blur, blur(14px)) !important;
	-webkit-backdrop-filter: var(--eq-rail-blur, blur(14px)) !important;
	border-right: 1px solid var(--eq-rail-border, var(--eq-border-soft)) !important;
	box-sizing: border-box !important;
	transition:
		width var(--eq-duration-deliberate) cubic-bezier(0.2, 0.7, 0.2, 1),
		background var(--eq-duration-deliberate) var(--eq-ease),
		border-color var(--eq-duration-deliberate) var(--eq-ease),
		box-shadow var(--eq-duration-deliberate) cubic-bezier(0.2, 0.7, 0.2, 1) !important;
}

[data-rail]:hover,
[data-rail].is-rail-open {
	width: var(--eq-rail-width-expanded) !important;
	box-shadow: 10px 0 36px rgba(8, 18, 13, 0.08) !important;
}

[data-rail-dot] {
	display: block !important;
	width: 6px !important;
	height: 6px !important;
	align-self: center !important;
	flex: none !important;
	background: var(--eq-gold) !important;
}

[data-rail-note] {
	align-self: center !important;
	writing-mode: vertical-rl !important;
	transform: rotate(180deg) !important;
	font-family: "IBM Plex Mono", monospace !important;
	font-size: var(--eq-text-label) !important;
	letter-spacing: 0.3em !important;
	text-transform: uppercase !important;
	color: #A4A9A5 !important;
	transition: color var(--eq-duration-deliberate) var(--eq-ease) !important;
	flex: none !important;
}

[data-rail] .eq-rail-box,
.eq-rail-box {
	display: flex !important;
	flex-direction: column !important;
	align-items: stretch !important;
	width: 100% !important;
	padding: 0px var(--eq-space-4) !important;
	box-sizing: border-box !important;
	gap: 0!important;
}

[data-rail] .eq-rail-about,
.eq-rail-about,
[data-tick] {
	display: flex !important;
	flex-direction: row !important;
	align-items: center !important;
	width: 100% !important;
	min-height: 44px !important;
	height: auto !important;
	padding: var(--eq-space-2) 0 !important;
	gap: var(--eq-space-3) !important;
	position: relative !important;
}

[data-rail] .eq-rail-txt,
.eq-rail-txt,
[data-tick] > span:first-child,
[data-tick] > .brxe-div:first-child {
	display: block !important;
	width: 14px !important;
	height: 2px !important;
	min-height: 0 !important;
	padding: 0px !important;
	margin: 0px !important;
	flex: none !important;
	border-radius: var(--eq-radius-sharp) !important;
	transform-origin: left center !important;
	background: var(--eq-border-mute) !important;
	transition:
		width var(--eq-duration-deliberate) cubic-bezier(0.2, 0.7, 0.2, 1),
		height var(--eq-duration-standard) var(--eq-ease),
		background var(--eq-duration-standard) var(--eq-ease),
		transform var(--eq-duration-standard) var(--eq-ease),
		box-shadow var(--eq-duration-standard) var(--eq-ease) !important;
}
#brx-content > section.rd-vision:not(#top) {
    padding-top: var(--eq-section-pad-y-mobile) !important;
    padding-bottom: var(--eq-section-pad-y-mobile) !important;
}
a.eq-header-link-2:hover {
    color: #E9A93C;
}
[data-rail] .eq-rail-label,
.eq-rail-label {
	display: block !important;
	position: static !important;
	flex: 1 1 auto !important;
	min-width: 0 !important;
	max-width: 0 !important;
	opacity: 0 !important;
	overflow: hidden !important;
	white-space: nowrap !important;
	font-family: "IBM Plex Mono", monospace !important;
	font-size: var(--eq-text-label) !important;
	letter-spacing: 0.14em !important;
	text-transform: uppercase !important;
	color: var(--eq-green) !important;
	transform: none !important;
	transition:
		opacity var(--eq-duration-standard) cubic-bezier(0.2, 0.7, 0.2, 1),
		max-width var(--eq-duration-deliberate) cubic-bezier(0.2, 0.7, 0.2, 1),
		color var(--eq-duration-standard) var(--eq-ease) !important;
}

[data-rail]:hover .eq-rail-about:hover .eq-rail-label,
[data-rail].is-rail-open .eq-rail-about.is-rail-hover .eq-rail-label,
[data-rail]:hover .eq-rail-about:focus-visible .eq-rail-label {
	opacity: 1 !important;
	max-width: 120px !important;
}

[data-rail]:hover .eq-rail-about:hover .eq-rail-txt,
[data-rail].is-rail-open .eq-rail-about.is-rail-hover .eq-rail-txt,
[data-rail]:hover .eq-rail-about:focus-visible .eq-rail-txt {
	width: 28px !important;
	height: 2px !important;
	background: var(--eq-green) !important;
	box-shadow: 0 0 0 1px rgba(30, 107, 68, 0.12) !important;
}

[data-rail] .eq-rail-about.is-active .eq-rail-txt {
	width: 22px !important;
	background: var(--eq-green) !important;
}

[data-rail] .eq-rail-about.is-rail-pressed .eq-rail-txt {
	transform: scaleX(1.06) !important;
}

[data-nav] {
	position: fixed !important;
	top: 0 !important;
	left: var(--eq-rail-width) !important;
	right: 0 !important;
	width: auto !important;
	max-width: none !important;
	height: 78px !important;
	display: flex !important;
	flex-direction: column !important;
	align-items: stretch !important;
	justify-content: center !important;
	z-index: 56 !important;
	background: transparent !important;
	border-bottom: 1px solid transparent !important;
	box-sizing: border-box !important;
	isolation: isolate !important;
	box-shadow: none !important;
	transition:
		height var(--eq-duration-deliberate) cubic-bezier(0.2, 0.7, 0.2, 1),
		box-shadow var(--eq-duration-deliberate) var(--eq-ease) !important;
}

/* Soft plate shadow once the header leaves the hero (scrolled state). */
body:not(.eq-over-hero) [data-nav],
body:not(.eq-over-hero) .eq-header-nav,
body:not(.eq-over-hero) .eq-header-nav.brxe-section,
body:not(.eq-over-hero) .eq-header-nav.brxe-div {
	box-shadow: 0 8px 24px rgba(8, 18, 13, 0.08) !important;
}

body.eq-over-hero [data-nav],
body.eq-over-hero .eq-header-nav,
body.eq-over-hero .eq-header-nav.brxe-section,
body.eq-over-hero .eq-header-nav.brxe-div {
	box-shadow: none !important;
}

[data-nav]::before {
	content: "" !important;
	position: absolute !important;
	inset: 0px !important;
	z-index: -1 !important;
	pointer-events: none !important;
	background: var(--eq-nav-bg, transparent) !important;
	backdrop-filter: var(--eq-nav-blur, none) !important;
	-webkit-backdrop-filter: var(--eq-nav-blur, none) !important;
	transition:
		background var(--eq-duration-deliberate) var(--eq-ease),
		backdrop-filter var(--eq-duration-deliberate) var(--eq-ease),
		-webkit-backdrop-filter var(--eq-duration-deliberate) var(--eq-ease) !important;
}

/* Header inner bar: same shell + gutter model as section content boxes.
   Pad the nav chrome, center a max-width shell with no extra inset — otherwise
   wide viewports leave the logo/menu 1 gutter inside the content column.
   Use --eq-space-f6 (not --eq-content-gutter): sections pad with f6, and an
   inline :root override still remaps --eq-content-gutter to a different clamp. */
[data-nav] {
	padding-left: var(--eq-space-f6) !important;
	padding-right: var(--eq-space-f6) !important;
}

[data-nav] > .brxe-div:first-child,
.eq-header-box,
.eq-header-box.brxe-div {
	width: 100% !important;
	max-width: var(--eq-shell) !important;
	height: 100% !important;
	margin-left: auto !important;
	margin-right: auto !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
	display: flex !important;
	flex-direction: row !important;
	align-items: center !important;
	justify-content: space-between !important;
	gap: var(--eq-space-5) !important;
	box-sizing: border-box !important;
}

[data-desktop-nav] {
	display: flex !important;
	flex-direction: row !important;
	align-items: center !important;
	justify-content: flex-end !important;
	flex-wrap: nowrap !important;
	gap: var(--eq-space-f4) !important;
}

[data-navpanel] {
	position: fixed !important;
	inset: 0px !important;
	z-index: 10000 !important;
	background: var(--eq-white) !important;
	padding: 0px !important;
	display: flex !important;
	flex-direction: column !important;
	min-height: 100dvh !important;
	gap: 0px !important;
	opacity: 0 !important;
	visibility: hidden !important;
	transform: translateY(-6px) !important;
	pointer-events: none !important;
	transition:
		opacity var(--eq-duration-standard) var(--eq-ease),
		transform var(--eq-duration-standard) var(--eq-ease),
		visibility 0s linear var(--eq-duration-standard) !important;
}

body.eq-nav-open [data-navpanel],
.eq-header-navpanel.eq-nav-open,
[data-navpanel].eq-nav-open,
[data-navpanel][data-open] {
	opacity: 1 !important;
	visibility: visible !important;
	transform: translateY(0) !important;
	pointer-events: auto !important;
	z-index: 10000 !important;
	transition:
		opacity var(--eq-duration-standard) var(--eq-ease),
		transform var(--eq-duration-standard) var(--eq-ease),
		visibility 0s !important;
}

html.eq-nav-open,
html.eq-nav-open body {
	overflow: hidden !important;
	overscroll-behavior: none !important;
	touch-action: none;
}

body.eq-nav-open {
	position: fixed !important;
	left: 0 !important;
	right: 0 !important;
	width: 100% !important;
	overflow: hidden !important;
}

html.eq-nav-open #brx-header {
	z-index: 0 !important;
}

html.eq-nav-open [data-nav],
html.eq-nav-open [data-progress] {
	visibility: hidden !important;
	opacity: 0 !important;
	pointer-events: none !important;
}

html.eq-nav-open [data-rail] {
	visibility: hidden !important;
	pointer-events: none !important;
}

html.eq-nav-open [data-navpanel] .eq-mnav-list {
	overflow-y: auto !important;
	-webkit-overflow-scrolling: touch !important;
	overscroll-behavior: contain !important;
	touch-action: pan-y;
	display: flex !important;
	flex-direction: column !important;
}

[data-navpanel] .eq-mnav-group {
	display: flex !important;
	flex-direction: column !important;
}

[data-navpanel] .eq-mnav-sub {
	display: flex !important;
	flex-direction: column !important;
	gap: 0px;
	padding: 0px 0px var(--eq-space-3) var(--eq-space-6);
}

[data-progress],
.eq-header-progress {
	position: absolute !important;
	left: 0 !important;
	right: 0 !important;
	bottom: 0 !important;
	height: 2px !important;
	width: 0 !important;
	z-index: 3 !important;
	pointer-events: none !important;
	background: #E9A93C !important;
	transition: width var(--eq-duration-micro) linear !important;
}

[data-nav],
.eq-header-nav {
	overflow: visible !important;
}

#top[data-hero],
[data-hero] {
	position: relative !important;
	overflow: hidden !important;
	background: #0D1A13 !important;
	width: 100vw !important;
	max-width: 100vw !important;
	margin-left: calc(-1 * var(--eq-rail-width)) !important;
	align-items: stretch !important;
	display: flex !important;
	flex-direction: column !important;
}

[data-hero-media] {
	position: absolute !important;
	inset: 0px !important;
	overflow: hidden !important;
	contain: layout paint;
	transform: translateZ(0);
}

[data-hero] > .brxe-div:not([data-hero-media]):not([data-rot-legend]) {
	position: relative !important;
	z-index: 1 !important;
	min-height: 100vh !important;
	padding-top: var(--eq-space-8) !important;
	padding-left: calc(var(--eq-rail-width) + var(--eq-content-gutter)) !important;
	display: flex !important;
	flex-direction: column !important;
	box-sizing: border-box !important;
}

[data-hero-text] {
	flex: 1 !important;
	display: flex !important;
	flex-direction: column !important;
	justify-content: flex-end !important;
	width: 100% !important;
	max-width: 1440px !important;
	margin: 0 auto !important;
	padding: var(--eq-space-f6) var(--eq-content-gutter) var(--eq-space-f5) ;
	box-sizing: border-box !important;
}

[data-curtain] {
	position: fixed !important;
	inset: 0px !important;
	/* Above Bricks header (z-index:100) — prototype uses 90 because its nav is 56. */
	z-index: 10000 !important;
}

@media (max-width: 991px) {
	
	[data-rail] {
		display: none !important;
	}

	[data-nav] {
		left: 0 !important;
		height: 66px !important;
	}

	#top[data-hero],
	[data-hero] {
		margin-left: 0px !important;
		width: 100% !important;
		max-width: 100% !important;
	}

	[data-hero] > .brxe-div:not([data-hero-media]):not([data-rot-legend]) {
		min-height: calc(100svh - 66px) !important;
		padding-top: var(--eq-space-8) !important;
		padding-left: 0px !important;
	}

	[data-desktop-nav] {
		display: none !important;
	}
}

@media (max-width: 767px) {
	[data-hero-text] {
		padding: var(--eq-space-5) var(--eq-space-4) var(--eq-space-5) !important;
	}

	.eq-inner-hero-content,
	.eq-inner-hero-content.brxe-div {
		padding-left: var(--eq-space-4) !important;
		padding-right: var(--eq-space-4) !important;
		padding-bottom: var(--eq-space-5) !important;
	}

	.eq-inner-title,
	.eq-inner-title.brxe-heading {
		font-size: clamp(1.85rem, 8.5vw, 2.65rem) !important;
		line-height: var(--eq-leading-display) !important;
		letter-spacing: -0.03em !important;
	}

	.eq-inner-lead,
	.eq-inner-lead.brxe-text-basic {
		font-size: 1rem !important;
		line-height: var(--eq-leading-body) !important;
	}

	.eq-inner-actions,
	.eq-inner-actions.brxe-div {
		flex-direction: column !important;
		align-items: stretch !important;
		width: 100% !important;
		gap: var(--eq-space-3) !important;
	}

	.eq-inner-btn,
	.eq-inner-btn-ghost {
		justify-content: center !important;
		width: 100% !important;
		text-align: center !important;
	}
}

/* Curtain must stay fixed even if the template instance type drifts. */
.eq-curtain-curtain,
.eq-curtain-curtain.brxe-div,
.eq-curtain-curtain.brxe-section {
	position: fixed !important;
	inset: 0px !important;
	/* Cover Bricks header (z-index:100). Prototype uses 90 vs nav at 56. */
	z-index: 10000 !important;
}

.eq-rail-rail,
.eq-rail-rail.brxe-section,
.eq-rail-rail.brxe-aside {
	position: fixed !important;
	top: var(--eq-admin-offset) !important;
	left: 0 !important;
	bottom: 0 !important;
	height: auto !important;
}

.eq-header-nav,
.eq-header-nav.brxe-section,
.eq-header-nav.brxe-div {
	position: fixed !important;
	top: var(--eq-admin-offset) !important;
	left: var(--eq-rail-width) !important;
	right: 0 !important;
	width: auto !important;
	max-width: none !important;
	box-sizing: border-box !important;
	align-items: center !important;
	background: transparent !important;
	backdrop-filter: none !important;
	-webkit-backdrop-filter: none !important;
	isolation: isolate;
}

/* Frost layer — JS toggles --eq-nav-bg / --eq-nav-blur (no blur over hero at load). */
.eq-header-nav::before,
.eq-header-nav.brxe-section::before,
.eq-header-nav.brxe-div::before {
	content: '';
	position: absolute;
	inset: 0px;
	z-index: -1;
	pointer-events: none;
	background: var(--eq-nav-bg, transparent);
	backdrop-filter: var(--eq-nav-blur, none);
	-webkit-backdrop-filter: var(--eq-nav-blur, none);
	transition: background .45s var(--eq-ease), backdrop-filter .45s var(--eq-ease), -webkit-backdrop-filter .45s var(--eq-ease);
}

.eq-header-box,
.eq-header-box.brxe-div {
	height: 100% !important;
	box-sizing: border-box !important;
	align-items: center !important;
}

/* Anchor mega-menu below the trigger — see [data-menu] block below for positioning. */
.eq-header-menu-panel,
.eq-header-menu-panel.brxe-div {
	width: 440px !important;
	min-width: 440px !important;
	max-width: min(440px, calc(100vw - var(--eq-space-7))) !important;
	border-radius: 0 !important;
	box-sizing: border-box !important;
}

@media (max-width: 991px) {
	.eq-header-nav,
	.eq-header-nav.brxe-section,
	.eq-header-nav.brxe-div {
		left: 0 !important;
	}
}

/* Hero must span the full viewport, including the 64px rail column.
   Bricks sections also default to align-items:center, which shrink-wraps
   .eq-top-box (~14px gutters) and breaks logo/headline alignment. */
#top.eq-top-hero,
.eq-top-hero.brxe-section {
	width: 100vw !important;
	max-width: 100vw !important;
	margin-left: calc(-1 * var(--eq-rail-width)) !important;
	align-items: stretch !important;
}

.eq-top-hero-media,
.eq-top-hero-media.brxe-div {
	contain: layout paint;
	transform: translateZ(0);
}

.eq-top-clip.is-revealing {
	will-change: clip-path, transform;
}

.eq-top-clip[data-reveal-in] {
	will-change: transform;
}

/* Inner-page heroes fill #brx-content — no side-rail bleed (that is homepage-only). */
.eq-inner-hero,
.eq-inner-hero.brxe-section {
	width: 100% !important;
	max-width: 100% !important;
	margin-left: 0px !important;
	align-items: stretch !important;
	align-self: stretch !important;
	box-sizing: border-box !important;
	overflow: hidden !important;
}

/* If Bricks nests body/gallery inside the hero component root, keep them
   out of the clipped hero paint and restore a normal document flow. */
.eq-inner-hero > .eq-proj-body,
.eq-inner-hero > .eq-proj-gallery,
.eq-inner-hero > .eq-proj-nav,
.eq-proj-page > .eq-proj-body,
.eq-proj-page > .eq-proj-gallery,
.eq-proj-page > .eq-proj-nav {
	position: relative !important;
	z-index: 2 !important;
	flex: none !important;
	width: 100% !important;
	max-width: 100% !important;
	margin-left: 0px !important;
	align-self: stretch !important;
	overflow: visible !important;
}

/* Inner hero media + overlay must cover the full hero — Bricks sometimes
   emits only `position:absolute` without inset, leaving a bright wash and
   unreadable white type on contact/capability routes. */
.eq-inner-hero,
.eq-inner-hero.brxe-section {
	position: relative !important;
	min-height: clamp(420px, 72vh, 760px) !important;
	display: flex !important;
	align-items: flex-end !important;
	background: #0d1a13 !important;
}

.eq-inner-hero-media,
.eq-inner-hero-media.brxe-div {
	position: absolute !important;
	inset: 0px !important;
	overflow: hidden !important;
	z-index: 0 !important;
}

.eq-inner-hero-img,
.eq-inner-hero-img.brxe-image {
	position: absolute !important;
	inset: 0px !important;
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	object-position: center 35% !important;
}

.eq-inner-hero-overlay,
.eq-inner-hero-overlay.brxe-div {
	position: absolute !important;
	inset: 0px !important;
	z-index: 1 !important;
	pointer-events: none !important;
	background:
		linear-gradient(to top, rgba(8, 18, 13, 0.94) 0%, rgba(8, 18, 13, 0.76) 30%, rgba(8, 18, 13, 0.42) 58%, rgba(8, 18, 13, 0.18) 100%),
		linear-gradient(to right, rgba(8, 18, 13, 0.58) 0%, rgba(8, 18, 13, 0.18) 58%),
		linear-gradient(to bottom, rgba(8, 18, 13, 0.82) 0%, rgba(8, 18, 13, 0.36) 36%, transparent 70%) !important;
}

.eq-inner-hero-content,
.eq-inner-hero-content.brxe-div {
	position: relative !important;
	z-index: 2 !important;
	width: 100% !important;
	max-width: 1440px !important;
	margin: 0 auto !important;
	padding-left: var(--eq-content-gutter) !important;
	padding-right: var(--eq-content-gutter) !important;
	box-sizing: border-box !important;
}

.eq-inner-title,
.eq-inner-title.brxe-heading {
	overflow-wrap: break-word !important;
	word-break: normal !important;
	white-space: normal !important;
	max-width: 100% !important;
}

.eq-top-box,
.eq-top-box.brxe-div {
	width: 100% !important;
	max-width: none !important;
	align-self: stretch !important;
	box-sizing: border-box !important;
}

@media (max-width: 991px) {
	#top.eq-top-hero,
	.eq-top-hero.brxe-section,
	.eq-inner-hero,
	.eq-inner-hero.brxe-section {
		width: 100% !important;
		max-width: 100% !important;
		margin-left: 0px !important;
	}
}

/* Capabilities mega-menu: keep panel text readable even when chrome paints
   top-level nav white over dark heroes (belt-and-suspenders vs JS skip). */
.eq-header-menu-panel,
.eq-header-menu-panel.brxe-div,
[data-menu-panel] {
	color: var(--eq-ink) !important;
}

.eq-header-menu-panel .eq-header-text,
.eq-header-menu-panel .eq-header-txt-4,
.eq-header-menu-panel .eq-header-txt-5,
[data-menu-panel] > p,
[data-menu-panel] .brxe-text-basic {
	color: #6A716D !important;
}

.eq-header-menu-panel .eq-header-txt-2 {
	color: #8F6212 !important;
}

.eq-header-menu-panel .eq-header-txt-3,
.eq-header-menu-panel a.eq-header-link-4,
[data-menu-panel] a {
	color: #1A1D1B !important;
}

.eq-header-menu-panel a.eq-header-link-4:hover,
.eq-header-menu-panel a.eq-header-link-4:hover .eq-header-txt-3,
[data-menu-panel] a:hover,
[data-menu-panel] a:hover .brxe-text-basic {
	color: #1E6B44 !important;
}

.eq-header-menu-panel a.eq-header-link-5,
.eq-header-menu-panel a.eq-header-link-5 span,
[data-menu-panel] a:last-of-type {
	
}
.eq-menu-dl{
	background: #14472e;
    color: #ffffff !important;
}
/* Number labels in mega-menu stay gold. */
[data-menu-panel] a > .brxe-text-basic:first-child {
	color: #8F6212 !important;
}

.eq-header-caret,
[data-menu] > a .eq-header-caret {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 10px !important;
	height: 6px !important;
	margin-left: var(--eq-space-1) !important;
	padding: 0px !important;
	color: currentColor !important;
	opacity: 0.75 !important;
	flex: none !important;
	line-height: 0 !important;
	font-size: 0 !important;
}

.eq-header-caret svg,
[data-menu] > a .eq-header-caret svg {
	display: block !important;
	width: 10px !important;
	height: 6px !important;
}

/* Capabilities mega-menu: PHP-injected [data-menu] lacks .brxe-div — anchor
   panel to the trigger, not the fixed header bar. */
.eq-header-menu,
.eq-header-menu.brxe-div,
[data-menu] {
	position: relative !important;
	display: flex !important;
	align-items: center !important;
	overflow: visible !important;
	flex-direction: row !important;
}

.eq-header-menu-panel,
.eq-header-menu-panel.brxe-div,
[data-menu-panel] {
	position: absolute !important;
	top: calc(100% + var(--eq-space-3)) !important;
	left: -26px !important;
	right: auto !important;
	width: 440px !important;
	min-width: 440px !important;
	max-width: min(440px, calc(100vw - var(--eq-space-7))) !important;
	margin: 0px !important;
	border-radius: 0 !important;
	box-sizing: border-box !important;
	z-index: 80 !important;
	background: var(--eq-white) !important;
	box-shadow: 0 28px 64px rgba(16, 24, 20, 0.12) !important;
	pointer-events: none;
	transition:
		opacity var(--eq-duration-standard) var(--eq-ease),
		transform var(--eq-duration-standard) var(--eq-ease),
		visibility var(--eq-duration-standard) var(--eq-ease) !important;
}

[data-menu][data-open] [data-menu-panel],
[data-menu]:focus-within [data-menu-panel] {
	pointer-events: auto;
}

.eq-header-menu {
	overflow: visible !important;
}

/* Mega-menu panel — full spec spacing (PHP-injected markup lacks Bricks padding). */
[data-menu-panel],
.eq-header-menu-panel,
.eq-header-menu-panel.brxe-div {
	padding: 0px !important;
	overflow: hidden !important;
	display: flex !important;
	flex-direction: column !important;
	align-items: stretch !important;
	opacity: 0 !important;
	visibility: hidden !important;
	transform: translateY(-6px) !important;
	transition:
		opacity var(--eq-duration-standard) var(--eq-ease),
		transform var(--eq-duration-standard) cubic-bezier(0.2, 0.7, 0.2, 1),
		visibility var(--eq-duration-standard) !important;
}

[data-menu][data-open] [data-menu-panel],
[data-menu]:focus-within [data-menu-panel] {
	opacity: 1 !important;
	visibility: visible !important;
	transform: translateY(0) !important;
}

.eq-header-box-2,
[data-menu-panel] .eq-header-box-2 {
	display: block !important;
	width: 100% !important;
	height: 2px !important;
	margin: 0px !important;
	padding: 0px !important;
	background: var(--eq-gold-bright, #E9A93C) !important;
	flex: none !important;
}

.eq-header-text,
[data-menu-panel] > .eq-header-text,
[data-menu-panel] > p.eq-header-text {
	margin: 0px !important;
	padding: var(--eq-space-4) var(--eq-space-5) var(--eq-space-3) !important;
	font-family: "IBM Plex Mono", monospace !important;
	font-size: var(--eq-text-label) !important;
	line-height: var(--eq-leading-body) !important;
	letter-spacing: 0.2em !important;
	text-transform: uppercase !important;
	color: #A4A9A5 !important;
}

.eq-header-link-3,
a.eq-header-link-3 {
	display: inline-flex !important;
	align-items: center !important;
	gap: var(--eq-space-2) !important;
	font-family: "IBM Plex Mono", monospace !important;
	font-size: var(--eq-text-label) !important;
	letter-spacing: 0.16em !important;
	text-transform: uppercase !important;
	color: #5C6360 !important;
	text-decoration: none !important;
	transition: color var(--eq-duration-standard) var(--eq-ease) !important;
}

.eq-header-link-3:hover,
a.eq-header-link-3:hover {
	color: #1A1D1B !important;
}

.eq-header-link-4,
a.eq-header-link-4 {
	padding: var(--eq-space-4) var(--eq-space-5) !important;
	border-top: 1px solid #F1F1EC !important;
	text-decoration: none !important;
	color: #1A1D1B !important;
	transition:
		background var(--eq-duration-standard) var(--eq-ease),
		color var(--eq-duration-standard) var(--eq-ease),
		transform var(--eq-duration-standard) var(--eq-ease) !important;
}

.eq-header-link-4:hover,
a.eq-header-link-4:hover {
	background: #F8F8F5 !important;
	color: #1E6B44 !important;
	transform: translateX(6px) !important;
}

.eq-header-link-4 > span:nth-child(2) {
	display: flex !important;
	flex-direction: column !important;
	gap: 0px !important;
	min-width: 0 !important;
}

.eq-header-txt-2,
[data-menu-panel] .eq-header-txt-2 {
	font-family: "IBM Plex Mono", monospace !important;
	font-size: var(--eq-text-label) !important;
	line-height: var(--eq-leading-body) !important;
	letter-spacing: 0.14em !important;
	color: #E9A93C !important;
	padding-top: var(--eq-space-1) !important;
}

.eq-header-txt-3,
[data-menu-panel] .eq-header-txt-3 {
	display: block !important;
	font-family: "Space Grotesk", Helvetica, sans-serif !important;
	
	line-height: var(--eq-leading-heading) !important;
	letter-spacing: -0.025em !important;
	color: #1A1D1B !important;
}

.eq-header-link-4:hover .eq-header-txt-3,
a.eq-header-link-4:hover .eq-header-txt-3 {
	color: #1E6B44 !important;
}

.eq-header-txt-4,
[data-menu-panel] .eq-header-txt-4 {
	display: block !important;
	margin-top: var(--eq-space-1) !important;
	font-size: var(--eq-text-small) !important;
	line-height: var(--eq-leading-body) !important;
	color: var(--eq-gray) !important;
}

.eq-header-txt-5,
[data-menu-panel] .eq-header-txt-5 {
	font-family: "IBM Plex Mono", monospace !important;
	font-size: var(--eq-text-label) !important;
	line-height: var(--eq-leading-display) !important;
	color: #C6CAC7 !important;
	padding-top: var(--eq-space-1) !important;
}

.eq-header-link-5,
a.eq-header-link-5 {
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	gap: var(--eq-space-3) !important;
	padding: var(--eq-space-4) var(--eq-space-5) !important;
	background: #F8F8F5 !important;
	border-top: 1px solid #F1F1EC !important;
	font-family: "IBM Plex Mono", monospace !important;
	font-size: var(--eq-text-label) !important;
	line-height: var(--eq-leading-body) !important;
	letter-spacing: 0.18em !important;
	text-transform: uppercase !important;
	text-decoration: none !important;
	color: #1E6B44 !important;
	transition: background var(--eq-duration-standard) var(--eq-ease), color var(--eq-duration-standard) var(--eq-ease) !important;
}

.eq-header-link-5:hover,
a.eq-header-link-5:hover {
	background: #F1F1EC !important;
	color: #14472E !important;
}

.eq-header-link-4,
a.eq-header-link-4 {
	    display: grid !important;
    gap: var(--eq-space-3) !important;
    align-items: start;
    width: 100% !important;
    box-sizing: border-box !important;
    grid-auto-flow: column;
    align-content: start;
    justify-content: start;
    justify-items: start;
}

.eq-header-link-5,
a.eq-header-link-5 {
	width: 100% !important;
	box-sizing: border-box !important;
}

/* Bricks sections default to flex-row — force column stacks so full-bleed bands
   (vision) and stacked section children span the content column. */
.eq-about-wrap,
.eq-about-wrap.brxe-section,
.eq-capabilities-wrap,
.eq-capabilities-wrap.brxe-section,
.eq-sequence-wrap,
.eq-sequence-wrap.brxe-section,
.eq-sequence-wrap-2,
.eq-team-wrap,
.eq-team-wrap.brxe-section,
.eq-team-wrap-2,
.eq-team-wrap-3,
.eq-reviews-wrap,
.eq-faq-wrap,
.eq-faq-wrap.brxe-section,
.eq-location-wrap,
.eq-contact-wrap,
.eq-contact-wrap.brxe-section {
	display: flex !important;
	flex-direction: column !important;
	align-items: stretch !important;
	width: 100% !important;
	box-sizing: border-box !important;
}

.eq-about-vision,
.eq-about-vision.brxe-div {
	width: 100% !important;
	max-width: none !important;
	align-self: stretch !important;
	box-sizing: border-box !important;
}

/* ---------------------------------------------------------------
   Homepage layout corrections.

   Bricks global-class CSS can lag the seed and sometimes emits tablet
   rules without a media query. These overrides restore equal-height
   sectors, a capabilities preview that tracks the list column, and a
   balanced About media block with readable Fig. 02 clearance.
   --------------------------------------------------------------- */

/* 1) Sectors — one shared row height; expand changes width only */
.eq-sequence-sector-row,
.eq-sequence-sector-row.brxe-div {
	display: flex !important;
	flex-direction: row !important;
	align-items: stretch !important;
	height: clamp(420px, 52vh, 560px) !important;
	min-height: 0 !important;
}

.eq-sequence-0-4,
.eq-sequence-0-4.brxe-div,
.eq-sequence-1-4,
.eq-sequence-1-4.brxe-div {
	align-self: stretch !important;
	height: 100% !important;
	min-height: 0 !important;
	min-width: 0 !important;
	max-height: none !important;
	box-sizing: border-box !important;
}

.eq-sequence-img,
.eq-sequence-img.brxe-image,
.eq-sequence-img.brxe-image img,
.eq-sequence-img img {
	position: absolute !important;
	inset: 0px !important;
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	max-width: none !important;
}

.eq-sequence-txt-4,
.eq-sequence-txt-4.brxe-div {
	position: absolute !important;
	inset: 0px !important;
}

@media (max-width: 991px) {
	.eq-sequence-sector-row,
	.eq-sequence-sector-row.brxe-div {
		flex-direction: column !important;
		height: auto !important;
	}

	.eq-sequence-0-4,
	.eq-sequence-0-4.brxe-div,
	.eq-sequence-1-4,
	.eq-sequence-1-4.brxe-div {
		flex: none !important;
		height: clamp(210px, 30vh, 300px) !important;
	}
}

/* 2) Capabilities — list column sets row height; preview fills it */
.eq-capabilities-box-3,
.eq-capabilities-box-3.brxe-div {
	align-items: stretch !important;
}

.eq-capabilities-cap-frame,
.eq-capabilities-cap-frame.brxe-div {
	display: flex !important;
	flex-direction: column !important;
	align-self: stretch !important;
	height: auto !important;
	min-height: 100% !important;
	box-sizing: border-box !important;
}

.eq-capabilities-box-4,
.eq-capabilities-box-4.brxe-div {
	position: relative !important;
	flex: 1 1 auto !important;
	width: 100% !important;
	height: auto !important;
	min-height: 0 !important;
	aspect-ratio: auto !important;
	overflow: hidden !important;
}

.eq-capabilities-0-2,
.eq-capabilities-0-2.brxe-image,
.eq-capabilities-0-2 img,
.eq-capabilities-1,
.eq-capabilities-1.brxe-image,
.eq-capabilities-1 img {
	position: absolute !important;
	inset: 0px !important;
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
}
/* First preview visible on load. Bricks often stacks both
   .eq-capabilities-0-2 and .eq-capabilities-1 on image 0; residual then
   leaves the frame empty until hover paints inline opacity. */
.eq-capabilities-cap-frame [data-cap-img],
.eq-capabilities-cap-frame [data-cap-img].brxe-image {
	opacity: 0.0001 !important;
}

.eq-capabilities-cap-frame [data-cap-img="0"],
.eq-capabilities-cap-frame [data-cap-img="0"].brxe-image,
.eq-capabilities-cap-frame .eq-capabilities-0-2,
.eq-capabilities-cap-frame .eq-capabilities-0-2.brxe-image {
	opacity: 1 !important;
}
@media (max-width: 991px) {
	.eq-capabilities-cap-frame,
	.eq-capabilities-cap-frame.brxe-div {
		position: static !important;
		min-height: 0 !important;
		height: auto !important;
	}

	.eq-capabilities-box-4,
	.eq-capabilities-box-4.brxe-div {
		flex: none !important;
		aspect-ratio: 4 / 3.2 !important;
		height: auto !important;
	}
}

/* 3–4) About — shorter hero crop, accent bars, inset + Fig. 02 room */
.eq-about-clip,
.eq-about-clip.brxe-image,
.eq-about-clip.brxe-image:not(.tag),
.eq-about-clip.brxe-image img,
.eq-about-clip img {
	aspect-ratio: 4 / 3.3 !important;
}

.eq-about-box-2,
.eq-about-box-2.brxe-div {
	border-top: 3px solid var(--eq-gold) !important;
	border-bottom: 3px solid var(--eq-gold) !important;
}

.eq-about-0-06,
.eq-about-0-06.brxe-div {
	right: 0 !important;
	bottom: -20px !important;
	width: 48% !important;
}

.eq-about-txt,
.eq-about-txt.brxe-text-basic {
	top: auto !important;
	bottom: -40px !important;
	left: 0 !important;
}

.eq-about-about-media,
.eq-about-about-media.brxe-div {
	margin-bottom: var(--eq-space-f6) !important;
}

.eq-about-box,
.eq-about-box.brxe-div {
	padding-bottom: var(--eq-space-f5) !important;
}

@media (max-width: 767px) {
	.eq-about-txt,
	.eq-about-txt.brxe-text-basic {
		display: none !important;
	}

	.eq-about-about-media,
	.eq-about-about-media.brxe-div {
		margin-bottom: var(--eq-space-6) !important;
	}

	.eq-about-0-06,
	.eq-about-0-06.brxe-div {
		bottom: -12px !important;
		width: 56% !important;
	}
}

/* ---------------------------------------------------------------
   Shared colour roles — contrast-safe tokens over seeded hex.
   Mute/faint/gold-ink fixes apply even before a design-system re-seed.
   --------------------------------------------------------------- */

/* Muted body / eyebrows / supporting copy on light surfaces */
.eq-about-fade,
.eq-capabilities-fade,
.eq-capabilities-fade-2,
.eq-sequence-fade,
.eq-sequence-text,
.eq-sequence-1-3,
.eq-sequence-fade-2,
.eq-projects-txt,
.eq-team-fade,
.eq-reviews-fade,
.eq-reviews-txt-5,
.eq-location-fade,
.eq-contact-txt-4,
.eq-contact-txt-5,
.eq-contact-form-note,
.eq-footer-text-4,
.eq-footer-txt-2,
.eq-header-txt-4,
.eq-top-txt-16 {
	color: var(--eq-gray-faint) !important;
}

/* Captions / meta / faint labels on light surfaces */
.eq-curtain-txt,
.eq-rail-rail-note,
.eq-header-txt,
.eq-header-txt-5,
.eq-top-txt-14,
.eq-about-txt,
.eq-capabilities-txt-5,
.eq-capabilities-cap-caption,
.eq-projects-txt-2,
.eq-projects-txt-4,
.eq-projects-txt-5,
.eq-projects-txt-6,
.eq-team-fade-2,
.eq-team-fade-4,
.eq-reviews-txt-7,
.eq-reviews-text-3,
.eq-reviews-fade-2,
.eq-location-works-label,
.eq-location-intro {
	color: var(--eq-gray-faint) !important;
}

.eq-location-works-title,
.eq-location-works-list li {
	color: var(--eq-ink) !important;
}
.eq-contact-text-2,
.eq-footer-text-3 {
	color: var(--eq-gray-faint) !important;
}

/* Mega-menu lede — muted label (decoded), not gold */
.eq-header-text {
	color: var(--eq-gray-faint) !important;
}

/* Gold text on light surfaces — readable ink, not brand fill gold */
.eq-header-txt-2,
.eq-header-txt-8,
.eq-about-num,
.eq-capabilities-txt-2,
.eq-sequence-txt-2,
.eq-sequence-txt-5,
.eq-reviews-txt-4,
.eq-reviews-txt-6,
.eq-footer-text-2 {
	color: var(--eq-gold) !important;
}

/* Gold accents sitting on green fills */
.eq-header-txt-9,
.eq-contact-txt-6 {
	color: var(--eq-gold-bright) !important;
}

/* .eq-projects-txt-9 sits on paper, not on a green fill. The bright gold was
   1.32:1 there. --eq-gold-ink is the same hue at 5.6:1 on paper. */
.eq-projects-txt-9 {
	color: var(--eq-gold-ink) !important;
}

/* Hero inactive rotator — lift off photo / dark ground */
.eq-top-1 {
	color: rgba(255, 255, 255, 0.55) !important;
}

/* FAQ chevrons on green band */
.eq-faq-wrap .eq-faq-01-2,
.eq-faq-wrap .eq-faq-02 {
	color: rgba(255, 255, 255, 0.82) !important;
}

/* ---------------------------------------------------------------
   Section rhythm — no flush-adjacent bands without breathing room.
   --------------------------------------------------------------- */

.eq-about-wrap,
.eq-about-wrap.brxe-section,
.eq-capabilities-wrap,
.eq-capabilities-wrap.brxe-section,
.eq-sequence-wrap,
.eq-sequence-wrap.brxe-section,
.eq-sequence-wrap-2,
.eq-projects-wrap,
.eq-projects-wrap.brxe-section,
.eq-team-wrap,
.eq-team-wrap.brxe-section,
.eq-team-wrap-2,
.eq-team-wrap-2.brxe-section,
.eq-team-wrap-3,
.eq-reviews-wrap,
.eq-reviews-wrap.brxe-section,
.eq-faq-wrap,
.eq-faq-wrap.brxe-section,
.eq-location-wrap,
.eq-location-wrap.brxe-section,
.eq-contact-wrap,
.eq-contact-wrap.brxe-section,
#brx-content > section:not(#top) {
	
}

.eq-team-wrap-3,
.eq-team-wrap-3.brxe-section {
	padding-top: var(--eq-space-f6) !important;
	padding-bottom: var(--eq-space-f6) !important;
}

.eq-team-box-3,
.eq-team-box-3.brxe-div {
	margin-bottom: var(--eq-space-f6) !important;
	padding-bottom: var(--eq-space-f4) !important;
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
	gap: var(--eq-space-f5) var(--eq-space-f4) !important;
	border-top: none !important;
	padding-top: 0 !important;
}

@media (max-width: 1100px) {
	.eq-team-box-3,
	.eq-team-box-3.brxe-div {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}

@media (max-width: 640px) {
	.eq-team-box-3,
	.eq-team-box-3.brxe-div {
		grid-template-columns: 1fr !important;
	}
}

/* ---------------------------------------------------------------
   Dark fills — never render ink/black body copy on green bands.
   --------------------------------------------------------------- */

.eq-team-wrap-2,
.eq-team-wrap-2.brxe-section,
.eq-inner-band,
.eq-inner-band.brxe-section,
.eq-who-purpose,
.eq-why-card-accent,
.eq-about-vision,
.eq-about-vision.brxe-div,
.eq-faq-wrap,
.eq-faq-wrap.brxe-section {
	color: var(--eq-white) !important;
}

.eq-about-vision,
.eq-about-vision.brxe-div {
	background: var(--eq-green-deep) !important;
}

.eq-about-vision .eq-about-txt-3,
.eq-about-vision .eq-about-txt-3.brxe-text-basic {
	color: var(--eq-gold) !important;
}

.eq-about-vision .eq-about-text-3,
.eq-about-vision .eq-about-text-3.brxe-text-basic {
	color: rgba(255, 255, 255, 0.88) !important;
}

/* FAQ — green band, white copy, gold accents (matches design edits) */
.eq-faq-wrap,
.eq-faq-wrap.brxe-section {
	background: var(--eq-green-deep) !important;
	border-top-color: rgba(255, 255, 255, 0.12) !important;
}

.eq-faq-wrap .eq-faq-fade,
.eq-faq-wrap .eq-faq-fade.brxe-text-basic {
	color: var(--eq-gold) !important;
}

.eq-faq-wrap .eq-faq-title,
.eq-faq-wrap .eq-faq-txt-3,
.eq-faq-wrap .eq-faq-txt-3.brxe-text-basic {
	color: var(--eq-white) !important;
}

.eq-faq-wrap .eq-faq-up,
.eq-faq-wrap .eq-faq-up.brxe-text-basic,
.eq-faq-wrap .eq-faq-text,
.eq-faq-wrap .eq-faq-text.brxe-text-basic {
	color: rgba(255, 255, 255, 0.82) !important;
}

.eq-faq-wrap .eq-faq-txt-2,
.eq-faq-wrap .eq-faq-txt-2.brxe-text-basic {
	color: var(--eq-gold) !important;
}

.eq-faq-wrap .eq-faq-link,
.eq-faq-wrap .eq-faq-link.brxe-text-link {
	color: var(--eq-gold) !important;
	border-bottom-color: var(--eq-gold) !important;
}

.eq-faq-wrap .eq-faq-link:hover,
.eq-faq-wrap .eq-faq-link.brxe-text-link:hover {
	color: var(--eq-gold) !important;
	border-bottom-color: var(--eq-gold) !important;
}

.eq-faq-wrap .eq-faq-01,
.eq-faq-wrap a.eq-faq-01 {
	color: var(--eq-white) !important;
}

.eq-faq-wrap .eq-faq-01:hover,
.eq-faq-wrap a.eq-faq-01:hover {
	color: var(--eq-white) !important;
}

.eq-faq-wrap .eq-faq-box-2,
.eq-faq-wrap .eq-faq-box-3 {
	border-color: rgba(255, 255, 255, 0.14) !important;
}

.eq-team-wrap-2 :is(h1, h2, h3, h4, h5, h6, p, span, li, a:not(.eq-header-link-7)),
.eq-inner-band :is(h1, h2, h3, h4, h5, h6, p, span, li),
.eq-who-purpose :is(h1, h2, h3, h4, h5, h6, p, span, li),
.eq-about-vision :is(h1, h2, h3, h4, h5, h6, p, span, li) {
	color: inherit;
}

.eq-team-wrap-2 .eq-team-subtitle,
.eq-team-wrap-2 .eq-team-title:not(.eq-team-title-2) {
	color: var(--eq-white) !important;
}

.eq-team-wrap-2 .eq-team-text,
.eq-team-wrap-2 .eq-team-text-2,
.eq-team-wrap-2 .eq-team-box-5 p {
	color: rgba(255, 255, 255, 0.86) !important;
}

.eq-team-wrap-2 .eq-team-fade-3 {
	color: var(--eq-gold-bright) !important;
}

/* Last-resort: Bricks .brxe-text-basic often re-applies #1A1D1B on green fills. */
:is(.eq-about-vision, .eq-team-wrap-2, .eq-inner-band, .eq-who-purpose, .eq-why-card-accent)
	:where(p, span, li, h1, h2, h3, h4, .brxe-text-basic):not(.eq-team-fade-3):not(.eq-about-txt-3) {
	color: inherit !important;
}

:is(.eq-about-vision, .eq-team-wrap-2, .eq-inner-band, .eq-who-purpose)
	:where(.eq-about-txt-3, .eq-team-fade-3, [class*="fade-3"], [class*="txt-3"]) {
	color: var(--eq-gold-bright) !important;
}

:is(.eq-about-vision, .eq-team-wrap-2, .eq-inner-band, .eq-who-purpose)
	:where(.eq-about-text-3, .eq-team-text-2, .eq-team-text) {
	color: rgba(255, 255, 255, 0.88) !important;
}

:is(.eq-about-vision, .eq-team-wrap-2)
	:where(.eq-team-subtitle, h3) {
	color: var(--eq-white) !important;
}

/* ---------------------------------------------------------------
   Section enter loading (beyond hero curtain + data-reveal items).
   --------------------------------------------------------------- */

.eq-about-wrap,
.eq-capabilities-wrap,
.eq-sequence-wrap,
.eq-sequence-wrap-2,
.eq-projects-wrap,
.eq-team-wrap,
.eq-team-wrap-2,
.eq-team-wrap-3,
.eq-reviews-wrap,
.eq-faq-wrap,
.eq-location-wrap,
.eq-contact-wrap,
#brx-content > section:not(#top),
.eq-inner-stats,
.eq-inner-band,
.eq-who-wrap,
.eq-awhy-wrap,
.eq-roster-wrap,
.eq-sol-wrap,
.eq-pg-wrap,
.eq-cred-wrap,
.eq-why-wrap,
.eq-legal-wrap,
.eq-proj-body,
.eq-proj-gallery,
.eq-proj-nav,
.eq-arch-wrap,
.eq-dyn-wrap,
[data-eq-section]:not(.eq-inner-hero) {
	opacity: 0;
	transform: translateY(22px);
	transition:
		opacity var(--eq-duration-deliberate) var(--eq-ease),
		transform var(--eq-duration-deliberate) var(--eq-ease);
}

.eq-about-wrap[data-eq-loaded],
.eq-capabilities-wrap[data-eq-loaded],
.eq-sequence-wrap[data-eq-loaded],
.eq-sequence-wrap-2[data-eq-loaded],
.eq-projects-wrap[data-eq-loaded],
.eq-team-wrap[data-eq-loaded],
.eq-team-wrap-2[data-eq-loaded],
.eq-team-wrap-3[data-eq-loaded],
.eq-reviews-wrap[data-eq-loaded],
.eq-faq-wrap[data-eq-loaded],
.eq-location-wrap[data-eq-loaded],
.eq-contact-wrap[data-eq-loaded],
#brx-content > section:not(#top)[data-eq-loaded],
.eq-inner-stats[data-eq-loaded],
.eq-inner-band[data-eq-loaded],
.eq-who-wrap[data-eq-loaded],
.eq-awhy-wrap[data-eq-loaded],
.eq-roster-wrap[data-eq-loaded],
.eq-sol-wrap[data-eq-loaded],
.eq-pg-wrap[data-eq-loaded],
.eq-cred-wrap[data-eq-loaded],
.eq-why-wrap[data-eq-loaded],
.eq-legal-wrap[data-eq-loaded],
.eq-proj-body[data-eq-loaded],
.eq-proj-gallery[data-eq-loaded],
.eq-proj-nav[data-eq-loaded],
.eq-arch-wrap[data-eq-loaded],
.eq-dyn-wrap[data-eq-loaded],
[data-eq-section][data-eq-loaded]:not(.eq-inner-hero) {
	opacity: 1;
	transform: none;
}

/* Interactive cards — lift on hover (homepage + inner pages).
   Do NOT include .eq-team-box-2 — that is the team intro header grid. */
.eq-projects-0,
.eq-projects-1,
.eq-pg-card,
.eq-sol-card,
.eq-cred-card,
.eq-awhy-card,
.eq-why-card,
.eq-roster-card,
.eq-reviews-box-2 {
	transition:
		transform var(--eq-duration-deliberate) var(--eq-ease),
		box-shadow var(--eq-duration-deliberate) var(--eq-ease),
		border-color var(--eq-duration-standard) var(--eq-ease),
		filter var(--eq-duration-deliberate) var(--eq-ease) !important;
}

.eq-projects-0:hover,
.eq-projects-1:hover,
.eq-pg-card:hover,
.eq-sol-card:hover,
.eq-cred-card:hover,
.eq-awhy-card:hover,
.eq-why-card:hover,
.eq-roster-card:hover {
	transform: translateY(-4px) !important;
}

/* Inner-page CTAs — Bricks residual transitions were mangled to 0s. */
.eq-inner-btn,
a.eq-inner-btn,
.eq-inner-btn-ghost,
a.eq-inner-btn-ghost {
	transition:
		background-color var(--eq-duration-standard) var(--eq-ease),
		color var(--eq-duration-standard) var(--eq-ease),
		border-color var(--eq-duration-standard) var(--eq-ease),
		transform var(--eq-duration-standard) var(--eq-ease),
		box-shadow var(--eq-duration-standard) var(--eq-ease) !important;
}

.eq-inner-btn:hover,
a.eq-inner-btn:hover {
	transform: translateY(-2px) !important;
}

.eq-inner-btn-ghost:hover,
a.eq-inner-btn-ghost:hover {
	transform: translateY(-2px) !important;
}

/* Hover / state-driven interactions — flex, opacity and padding share one easing curve. */
.eq-capabilities-0,
.eq-capabilities-3,
[data-cap] {
	transition:
		transform var(--eq-duration-deliberate) var(--eq-ease),
		color var(--eq-duration-standard) var(--eq-ease),
		background var(--eq-duration-standard) var(--eq-ease),
		border-color var(--eq-duration-standard) var(--eq-ease) !important;
}

[data-sector],
.eq-sequence-0-4,
.eq-sequence-1-4 {
	transition:
		flex var(--eq-duration-deliberate) var(--eq-ease),
		color var(--eq-duration-standard) var(--eq-ease),
		background var(--eq-duration-standard) var(--eq-ease) !important;
}

[data-sector-panel],
.eq-sequence-0-6,
.eq-sequence-1-6 {
	transition: opacity var(--eq-duration-deliberate) var(--eq-ease) !important;
}

[data-sector-tab],
.eq-sequence-0-5,
.eq-sequence-1-5 {
	transition: opacity var(--eq-duration-deliberate) var(--eq-ease) !important;
}

[data-cap-img],
.eq-capabilities-0-2,
.eq-capabilities-1,
.eq-capabilities-0-2 img,
.eq-capabilities-1 img {
	transition: opacity var(--eq-duration-deliberate) var(--eq-ease) !important;
}

[data-seq-img],
.eq-sequence-0,
.eq-sequence-1,
.eq-sequence-0 img,
.eq-sequence-1 img {
	transition: opacity var(--eq-duration-deliberate) var(--eq-ease) !important;
}

[data-seq-text],
.eq-sequence-0-2,
.eq-sequence-1-2 {
	transition:
		opacity var(--eq-duration-deliberate) var(--eq-ease),
		transform var(--eq-duration-deliberate) var(--eq-ease),
		border-color var(--eq-duration-deliberate) var(--eq-ease),
		color var(--eq-duration-standard) var(--eq-ease) !important;
}

[data-seq-dot],
.eq-sequence-0-3,
.eq-sequence-1-3 {
	transition:
		border-color var(--eq-duration-deliberate) var(--eq-ease),
		color var(--eq-duration-standard) var(--eq-ease) !important;
}

.eq-top-box-6,
.eq-top-box-6.brxe-div {
	transition: filter var(--eq-duration-deliberate) var(--eq-ease) !important;
}

.eq-top-link,
.eq-top-link-2,
.eq-top-link-3,
.eq-header-link-7,
.eq-header-link-4,
.eq-header-link-5,
.eq-header-menu-panel,
.eq-header-navpanel,
[data-menu-panel],
[data-navpanel] {
	transition-timing-function: var(--eq-ease) !important;
}

[data-sticky],
[data-gotop] {
	transition:
		opacity var(--eq-duration-deliberate) var(--eq-ease),
		transform var(--eq-duration-deliberate) var(--eq-ease-out) !important;
}

/* ---------------------------------------------------------------
   MakeUser Google Reviews — match Equinox review cards inside section.
   --------------------------------------------------------------- */

.eq-reviews-box-3 {
	display: block !important;
}

.eq-reviews-box-3 > .eq-reviews-plugin {
	grid-column: 1 / -1;
	width: 100%;
}

.eq-reviews-nav,
.eq-reviews-nav.brxe-div,
[data-reviews-nav] {
	display: flex !important;
	align-items: center !important;
	justify-content: flex-end !important;
	gap: var(--eq-space-2) !important;
	margin: 0 0 var(--eq-space-4) !important;
	flex: none !important;
}

.eq-reviews-nav-btn,
button.eq-reviews-nav-btn {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 44px !important;
	height: 44px !important;
	min-width: 44px !important;
	min-height: 44px !important;
	padding: 0 !important;
	margin: 0 !important;
	border: 1px solid var(--eq-border-mute) !important;
	border-radius: 0 !important;
	background: transparent !important;
	color: var(--eq-ink) !important;
	font-family: 'IBM Plex Mono', monospace !important;
	font-size: 18px !important;
	line-height: 1 !important;
	cursor: pointer !important;
	box-sizing: border-box !important;
	transition: border-color 0.25s var(--eq-ease), background 0.25s var(--eq-ease), opacity 0.25s var(--eq-ease) !important;
}

.eq-reviews-nav-btn:hover:not(:disabled),
button.eq-reviews-nav-btn:hover:not(:disabled) {
	border-color: var(--eq-ink) !important;
	background: var(--eq-paper-lightest) !important;
}

.eq-reviews-nav-btn:disabled,
button.eq-reviews-nav-btn:disabled {
	opacity: 0.35 !important;
	cursor: default !important;
}

.eq-reviews-plugin .mur-reviews {
	background: transparent !important;
	color: inherit !important;
	padding: 0px !important;
	text-align: left !important;
}

.eq-reviews-plugin .mur-reviews__heading,
.eq-reviews-plugin .mur-reviews__cta {
	display: none !important;
}

.eq-reviews-track,
.eq-reviews-plugin .mur-layout-grid .mur-grid,
.eq-reviews-plugin .mur-grid {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	align-items: stretch !important;
	gap: var(--eq-space-f4) !important;
	width: 100% !important;
	max-width: 100% !important;
	overflow-x: auto !important;
	overflow-y: hidden !important;
	-webkit-overflow-scrolling: touch !important;
	touch-action: pan-x pan-y !important;
	overscroll-behavior-x: contain !important;
	scroll-snap-type: x mandatory !important;
	scrollbar-width: none !important;
	grid-template-columns: none !important;
	box-sizing: border-box !important;
}

.eq-reviews-track::-webkit-scrollbar,
.eq-reviews-plugin .mur-layout-grid .mur-grid::-webkit-scrollbar,
.eq-reviews-plugin .mur-grid::-webkit-scrollbar {
	display: none !important;
}

.eq-reviews-plugin .mur-card,
.eq-reviews-plugin article.mur-card,
.eq-reviews-up-2,
.eq-reviews-up-2.brxe-div {
	flex: 0 0 clamp(280px, 34vw, 400px) !important;
	width: clamp(280px, 34vw, 400px) !important;
	min-width: 280px !important;
	max-width: none !important;
	scroll-snap-align: start !important;
	background: var(--eq-white) !important;
	border: 1px solid var(--eq-border-alt) !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	padding: var(--eq-space-f5) !important;
	display: flex !important;
	flex-direction: column !important;
	gap: var(--eq-space-4) !important;
	text-align: left !important;
	box-sizing: border-box !important;
	transition:
		border-color 0.35s var(--eq-ease),
		transform 0.45s var(--eq-ease-out),
		box-shadow 0.45s var(--eq-ease-out) !important;
}

.eq-reviews-plugin .mur-card:hover,
.eq-reviews-plugin article.mur-card:hover,
.eq-reviews-up-2:hover,
.eq-reviews-up-2.brxe-div:hover {
	border-color: var(--eq-ink) !important;
	box-shadow: 0 18px 40px rgba(8, 18, 13, 0.1) !important;
}

@media (max-width: 767px) {
	.eq-reviews-plugin .mur-card,
	.eq-reviews-plugin article.mur-card,
	.eq-reviews-up-2,
	.eq-reviews-up-2.brxe-div {
		flex-basis: 78vw !important;
		width: 78vw !important;
		min-width: 78vw !important;
	}
}

.eq-reviews-plugin .mur-card__stars,
.eq-reviews-plugin .mur-stars {
	color: var(--eq-gold) !important;
	font-size: var(--eq-text-small) !important;
	letter-spacing: 0.1em !important;
}

.eq-reviews-plugin .mur-card__text,
.eq-reviews-plugin .mur-card__body {
	color: var(--eq-gray-dark) !important;
	font-size: var(--eq-text-body) !important;
	line-height: var(--eq-leading-body) !important;
	margin: 0px !important;
}

.eq-reviews-plugin .mur-card__author,
.eq-reviews-plugin .mur-card__name {
	color: var(--eq-ink) !important;
	font-family: var(--eq-font-display) !important;
	font-size: var(--eq-text-body) !important;
	letter-spacing: -0.025em !important;
	margin: 0px 0px var(--eq-space-1) !important;
}

.eq-reviews-plugin .mur-card__meta,
.eq-reviews-plugin .mur-card__source,
.eq-reviews-plugin .mur-spotlight-card__source {
	color: var(--eq-gray-faint) !important;
	font-family: var(--eq-font-mono) !important;
	font-size: var(--eq-text-label) !important;
	letter-spacing: 0.16em !important;
	text-transform: uppercase !important;
}

.eq-reviews-plugin .mur-card__header,
.eq-reviews-plugin .mur-card__header.eq-reviews-box-4 {
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	gap: var(--eq-space-3) !important;
	flex-direction: row !important;
}

.eq-reviews-plugin .mur-card__g {
	font-family: var(--eq-font-display) !important;
	font-size: var(--eq-text-lead) !important;
	line-height: var(--eq-leading-display) !important;
	letter-spacing: -0.05em !important;
	color: #C6CAC7 !important;
}

.eq-reviews-plugin .mur-card__footer {
	margin-top: auto !important;
	padding-top: var(--eq-space-4) !important;
	border-top: 1px solid #F1F1EC !important;
}


/* Chrome-only geometry Bricks flattens (borders / radius / grid unlock).
   Type and spacing live on seeded global classes — do not re-declare here. */

.eq-header-link-2,
a.eq-header-link-2 {
	gap: 0px !important;
}

/* Bricks text-link elements default to gap:5px — zero so spacing stays on the 9-step scale. */
a.brxe-text-link,
.brxe-text-link {
	gap: 0px !important;
	row-gap: 0px !important;
	column-gap: 0px !important;
}

.eq-header-menu-panel,
.eq-header-menu-panel.brxe-div {
	border: 1px solid var(--eq-border-alt) !important;
	border-radius: 0 !important;
}

.eq-header-link-4,
a.eq-header-link-4,
.eq-header-link-5,
a.eq-header-link-5 {
	border-top-color: var(--eq-paper-alt) !important;
	box-sizing: border-box !important;
}

.eq-faq-01,
a.eq-faq-01 {
	display: grid !important;
	grid-template-columns: var(--eq-space-7) minmax(0, 1fr) var(--eq-space-6) !important;
	align-items: baseline !important;
	box-sizing: border-box !important;
}
.eq-contact-up-3 {
	border: 1px solid var(--eq-border-alt) !important;
	border-radius: 0 !important;
	box-sizing: border-box !important;
}
.eq-reviews-up,
.eq-reviews-up.brxe-div {
	aspect-ratio: auto !important;
	height: auto !important;
	min-height: 0 !important;
	align-self: end !important;
}
.eq-reviews-up,
.eq-reviews-up-2,
.eq-projects-link,
.eq-contact-up-3,
.eq-location-map-stage,
.eq-location-map-stage.brxe-div {
	border: 1px solid var(--eq-border-alt) !important;
	border-radius: 0 !important;
	box-sizing: border-box !important;
	aspect-ratio: 568 / 416 !important;
}
.eq-location-map-grid {
	display: none ;
}
.eq-reviews-up,
.eq-reviews-up-2,
.eq-projects-link,
.eq-contact-up-3 {
	border: 1px solid var(--eq-border-alt) !important;
	border-radius: 0 !important;
	box-sizing: border-box !important;
}
.eq-reviews-up,
.eq-reviews-up.brxe-div {
	aspect-ratio: auto !important;
	height: auto !important;
	min-height: 0 !important;
	align-self: end !important;
}
.eq-location-map-canvas {
	inset: 0 !important;
}
.eq-about-box-4,
.eq-about-box-5,
.eq-team-box-3,
.eq-team-box-5,
.eq-projects-box-3,
.eq-capabilities-0,
.eq-capabilities-3 {
	border-top-color: var(--eq-border-alt) !important;
}

.eq-footer-sticky,
.eq-footer-gotop,
.eq-top-link,
.eq-header-link-12,
.eq-contact-btn,
.eq-contact-works,
.eq-contact-works-2,
.eq-contact-input,
.eq-contact-textarea,
.eq-inner-btn {
	border-radius: 0 !important;
	box-sizing: border-box !important;
}

.eq-header-img,
.eq-header-img-2,
.eq-curtain-img,
.eq-footer-img {
	height: auto !important;
	width: auto !important;
	display: block !important;
	transform-origin: left center !important;
}

[data-nav] .eq-header-img,
[data-nav] .eq-header-img-2 {
	max-height: clamp(44px, 5.8vw, 60px);
	transform: scale(1.42) ;
	transform-origin: left center !important;
	mix-blend-mode: multiply;
}

.eq-curtain-img,
.eq-footer-img {
	max-height: clamp(40px, 6vw, 62px) !important;
	mix-blend-mode: normal;
}

.eq-footer-sticky {
	border: 1px solid var(--eq-green) !important;
}

.eq-footer-gotop {
	border: 1px solid var(--eq-border-faint) !important;
}

.eq-contact-works-2 {
	border: 1px solid var(--eq-border) !important;
}

button.eq-contact-works,
button.eq-contact-works-2 {
	cursor: pointer;
	font: inherit;
	appearance: none;
	-webkit-appearance: none;
}

.eq-contact-input,
.eq-contact-textarea {
	width: 100% !important;
	min-height: var(--eq-space-7) !important;
	height: auto !important;
	border: 1px solid var(--eq-border) !important;
	color: var(--eq-ink) !important;
	background: var(--eq-white) !important;
}

/* ---------------------------------------------------------------
   Keyframes referenced by component classes.
   --------------------------------------------------------------- */

@keyframes eqcue {
	0%   { transform: translateX(-14px); opacity: 0; }
	28%  { opacity: 1; }
	100% { transform: translateX(36px); opacity: 0; }
}

@keyframes eqpulse {
	0%   { transform: scale(1);   opacity: .55; }
	70%  { transform: scale(2.6); opacity: 0.0001; }
	100% { transform: scale(2.6); opacity: 0.0001; }
}

/* ---------------------------------------------------------------
   Reveal-on-scroll contract (matches DCLogic / approved export).

   Kind fallbacks cover markup that only carries data-reveal. Component
   classes may also set the same start state — equinox.js clears inline
   opacity/transform/clip-path and stamps data-reveal-in so class rules
   still reveal. no-js + reduced-motion keep content visible.

   Hero ([data-hero]) paints immediately — motion never gates ATF content.
   The four !important rules below are load-bearing; do not add more.
   --------------------------------------------------------------- */

[data-reveal="fade"] {
	opacity: 0.0001;
	transition: opacity var(--eq-duration-deliberate) var(--eq-ease);
}

[data-reveal="up"] {
	opacity: 0.0001;
	transform: translateY(26px);
	transition:
		opacity var(--eq-duration-deliberate) var(--eq-ease),
		transform var(--eq-duration-deliberate) var(--eq-ease);
}

[data-reveal="mask"] {
	display: block;
	transform: translateY(108%);
	transition: transform var(--eq-duration-deliberate) var(--eq-ease-out);
}

[data-reveal="clip"] {
	clip-path: inset(0 0 100% 0);
	transition:
		clip-path var(--eq-duration-deliberate) var(--eq-ease-out),
		transform var(--eq-duration-deliberate) var(--eq-ease-out);
}

/* After intro (or when motion is skipped): lock ATF to final state.
   During first load, allow prototype reveal start states so the clip
   can rise with the green hoard opening. */
[data-hero].eq-hero-static [data-reveal],
[data-hero].eq-hero-static [data-reveal="fade"],
[data-hero].eq-hero-static [data-reveal="up"],
[data-hero].eq-hero-static [data-reveal="mask"],
[data-hero].eq-hero-static [data-reveal="clip"] {
	opacity: 1;
	transform: none;
	clip-path: none;
	transition: none;
}

@media (prefers-reduced-motion: reduce) {
	[data-hero] [data-reveal],
	[data-hero] [data-reveal="fade"],
	[data-hero] [data-reveal="up"],
	[data-hero] [data-reveal="mask"],
	[data-hero] [data-reveal="clip"] {
		opacity: 1;
		transform: none;
		clip-path: none;
		transition: none;
	}
}

.brxe-image.bricks-lazy-hidden:not(.wait) {
	visibility: visible !important;
}

[data-reveal][data-reveal-in] {
	opacity: 1 !important;
	clip-path: none !important;
}

/* up/mask/fade start transforms live on component classes — force clear.
   clip keeps transform free for hero parallax scale after reveal. */
[data-reveal="up"][data-reveal-in],
[data-reveal="mask"][data-reveal-in],
[data-reveal="fade"][data-reveal-in] {
	transform: none !important;
}

/* Hero headline rotator — clip off-stage words; Bricks often drops position:relative.
   Animate opacity + transform only. Never toggle visibility — it snaps and
   cancels the ease. Overflow on the shell hides the off-stage words. */
.eq-top-txt-8,
.eq-top-txt-8.brxe-text,
span.eq-top-txt-8 {
	position: relative !important;
	display: inline-block !important;
	overflow: hidden !important;
	vertical-align: bottom !important;
	color: var(--eq-gold) !important;
	line-height: inherit !important;
}

.eq-top-txt-9,
.eq-top-txt-9.brxe-text-basic {
	visibility: hidden !important;
	display: inline-block !important;
	white-space: nowrap !important;
	pointer-events: none !important;
}

.eq-top-txt-8 .eq-top-0-2,
.eq-top-txt-8 .eq-top-1-2,
.eq-top-txt-8 [data-rot] {
	position: absolute !important;
	left: 0 !important;
	top: 0 !important;
	margin: 0 !important;
	white-space: nowrap !important;
	pointer-events: none !important;
	visibility: visible !important;
	opacity: 0 !important;
	transform: translateY(42%) !important;
	transition:
		opacity 0.55s var(--eq-ease-out),
		transform 0.65s var(--eq-ease-out) !important;
	will-change: opacity, transform;
}

/* Before the rotator boots, keep the first word painted (no blank headline). */
html:not(.eq-rot-ready) .eq-top-txt-8 .eq-top-0-2,
html:not(.eq-rot-ready) .eq-top-txt-8 [data-rot="0"] {
	opacity: 1 !important;
	transform: translateY(0) !important;
}

.eq-top-txt-8 .eq-top-0-2.is-rot-active,
.eq-top-txt-8 .eq-top-1-2.is-rot-active,
.eq-top-txt-8 [data-rot].is-rot-active {
	opacity: 1 !important;
	transform: translateY(0) !important;
	z-index: 1;
}

/* Outgoing word exits upward while the next word rises in. */
.eq-top-txt-8 [data-rot].is-rot-leaving {
	opacity: 0 !important;
	transform: translateY(-38%) !important;
	z-index: 0;
}

/* Side legend — never duplicate headline words in document flow. */
.eq-top-rot-legend,
.eq-top-rot-legend.brxe-div,
[data-rot-legend] {
	display: none !important;
	visibility: hidden !important;
	pointer-events: none !important;
}

/* Mask lines sit in overflow:hidden parents for the wipe-in. After reveal,
   unlock so negative letter-spacing glyphs are not clipped on the left edge.
   Never unlock rotator shells — off-stage words ghost across the hero. */
:has(> [data-reveal="mask"][data-reveal-in]):not(:has([data-rot], .eq-top-txt-8)) {
	overflow: visible;
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	:root {
		--eq-duration-micro: 0.01ms;
		--eq-duration-standard: 0.01ms;
		--eq-duration-deliberate: 0.01ms;
	}

	[data-reveal] {
		opacity: 1 !important;
		transform: none !important;
		clip-path: none !important;
		transition: none !important;
	}

	.eq-about-wrap,
	.eq-capabilities-wrap,
	.eq-sequence-wrap,
	.eq-sequence-wrap-2,
	.eq-projects-wrap,
	.eq-team-wrap,
	.eq-team-wrap-2,
	.eq-team-wrap-3,
	.eq-reviews-wrap,
	.eq-faq-wrap,
	.eq-location-wrap,
	.eq-contact-wrap,
	.eq-inner-stats,
	.eq-inner-band,
	.eq-who-wrap,
	.eq-awhy-wrap,
	.eq-roster-wrap,
	.eq-sol-wrap,
	.eq-pg-wrap,
	.eq-cred-wrap,
	.eq-why-wrap,
	.eq-legal-wrap,
	.eq-proj-body,
	.eq-proj-gallery,
	.eq-proj-nav,
	.eq-arch-wrap,
	.eq-dyn-wrap,
	[data-eq-section]:not(.eq-inner-hero) {
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
	}

	/* Neutralise decorative keyframes without new !important on *. */
	@keyframes eqcue {
		0%, 100% { transform: none; opacity: 1; }
	}

	@keyframes eqpulse {
		0%, 100% { transform: none; opacity: 1; }
	}
}

html.no-js [data-reveal] {
	opacity: 1 !important;
	transform: none !important;
	clip-path: none !important;
}

html.no-js .eq-about-wrap,
html.no-js .eq-capabilities-wrap,
html.no-js .eq-sequence-wrap,
html.no-js .eq-sequence-wrap-2,
html.no-js .eq-projects-wrap,
html.no-js .eq-team-wrap,
html.no-js .eq-team-wrap-2,
html.no-js .eq-team-wrap-3,
html.no-js .eq-reviews-wrap,
html.no-js .eq-faq-wrap,
html.no-js .eq-location-wrap,
html.no-js .eq-contact-wrap,
html.no-js #brx-content > section:not(#top),
html.no-js .eq-inner-stats,
html.no-js .eq-inner-band,
html.no-js .eq-who-wrap,
html.no-js .eq-awhy-wrap,
html.no-js .eq-roster-wrap,
html.no-js .eq-pg-wrap,
html.no-js .eq-cred-wrap,
html.no-js .eq-why-wrap,
html.no-js .eq-legal-wrap,
html.no-js .eq-proj-body,
html.no-js .eq-proj-gallery,
html.no-js .eq-proj-nav,
html.no-js .eq-arch-wrap,
html.no-js .eq-dyn-wrap,
html.no-js [data-eq-section]:not(.eq-inner-hero) {
	opacity: 1 !important;
	transform: none !important;
}

/* ---------------------------------------------------------------
   UI polish — hero nav shade, rail labels, cards, green accents
   --------------------------------------------------------------- */

body.eq-over-hero [data-nav]::after {
	content: "";
	position: absolute;
	inset: 0 0 auto 0;
	height: 140%;
	background: linear-gradient(
		180deg,
		rgba(8, 18, 13, 0.84) 0%,
		rgba(8, 18, 13, 0.52) 42%,
		rgba(8, 18, 13, 0.18) 72%,
		transparent 100%
	);
	pointer-events: none;
	z-index: 0;
}

body.eq-over-hero [data-nav] > * {
	position: relative;
	z-index: 1;
}

body.eq-over-hero [data-rail] .eq-rail-about:hover .eq-rail-txt,
body.eq-over-hero [data-rail] .eq-rail-about.is-rail-hover .eq-rail-txt,
body.eq-over-hero [data-rail] .eq-rail-about.is-active .eq-rail-txt {
	background: var(--eq-gold-bright) !important;
}

body.eq-over-hero [data-rail]:hover .eq-rail-about:hover .eq-rail-label,
body.eq-over-hero [data-rail].is-rail-open .eq-rail-about.is-rail-hover .eq-rail-label {
	color: rgba(255, 255, 255, 0.94) !important;
}

[data-menu][data-open] [data-menu-panel],
.eq-header-menu[data-open] .eq-header-menu-panel {
	opacity: 1 !important;
	visibility: visible !important;
	transform: translateY(0) !important;
	pointer-events: auto !important;
}

[data-menu-panel],
.eq-header-menu-panel {
	pointer-events: none;
}

[data-menu][data-open] [data-menu-panel],
.eq-header-menu[data-open] .eq-header-menu-panel,
[data-menu-panel]:hover {
	pointer-events: auto !important;
}

/* Tighter card padding + left-aligned index numbers sitewide */
.eq-cred-card,
.eq-awhy-card,
.eq-why-card,
.eq-roster-card,
.eq-sol-card,
.eq-pg-card-body {
	text-align: left !important;
	align-items: flex-start !important;
}

.eq-cred-num,
.eq-awhy-num,
.eq-why-num,
.eq-pg-card-num,
.eq-capabilities-txt-2 {
	text-align: left !important;
	width: 100%;
}

.eq-cred-card,
.eq-awhy-card,
.eq-why-card,
.eq-roster-card {
	padding: var(--eq-space-3) !important;
}

/* Hero-over nav: white links on all inner + home heroes (matches homepage init state) */
body.eq-over-hero [data-desktop-nav] > a,
body.eq-over-hero [data-desktop-nav] > [data-menu] > a.eq-header-megamenu-trigger,
body.eq-over-hero [data-desktop-nav] > [data-menu] > a.eq-header-link-2 {
	color: rgba(255, 255, 255, 0.94) !important;
}

body.eq-over-hero [data-desktop-nav] > a.eq-header-link-7 {
	color: var(--eq-white) !important;
	border-bottom-color: var(--eq-gold) !important;
}

body.eq-over-hero [data-desktop-nav] > a.eq-header-link-6 {
	color: rgba(255, 255, 255, 0.94) !important;
}

body.eq-over-hero [data-desktop-nav] > a:hover,
body.eq-over-hero [data-desktop-nav] > [data-menu] > a:hover {
	color: var(--eq-white) !important;
}

.eq-header-megamenu-trigger {
	display: inline-flex !important;
	align-items: baseline !important;
	gap: var(--eq-space-2) !important;
	text-decoration: none !important;
}

.eq-header-link-4:hover,
a.eq-header-link-4:hover {
	transform: translateX(6px) !important;
	padding-left: var(--eq-space-5) !important;
}

/* Mobile nav panel — editorial compact layout */
@media (max-width: 991px) {
	[data-navpanel],
	.eq-header-navpanel {
		padding: 0px !important;
	}

	[data-navpanel] .eq-mnav-head,
	.eq-header-navpanel .eq-mnav-head {
		padding: var(--eq-space-4) var(--eq-space-4) !important;
	}

	[data-navpanel] .eq-mnav-list,
	.eq-header-navpanel .eq-mnav-list {
		padding: var(--eq-space-2) var(--eq-space-4) var(--eq-space-3) !important;
	}

	[data-navpanel] .eq-mnav-link,
	.eq-header-navpanel .eq-mnav-link {
		padding: var(--eq-space-3) 0px !important;
		grid-template-columns: 28px 1fr 18px !important;
	}

	[data-navpanel] .eq-mnav-label,
	.eq-header-navpanel .eq-mnav-label {
		font-size: 13px !important;
	}

	[data-navpanel] .eq-mnav-foot,
	.eq-header-navpanel .eq-mnav-foot {
		padding: var(--eq-space-4) var(--eq-space-4) var(--eq-space-5) !important;
	}

	[data-navpanel] .eq-mnav-close,
	.eq-header-navpanel .eq-mnav-close {
		border-color: var(--eq-ink) !important;
		color: var(--eq-ink) !important;
	}

	[data-navpanel] .eq-mnav-group,
	.eq-header-navpanel .eq-mnav-group {
		border-bottom: 1px solid #F1F1EC;
	}

	[data-navpanel] .eq-mnav-group > .eq-mnav-link,
	.eq-header-navpanel .eq-mnav-group > .eq-mnav-link {
		border-bottom: 0 !important;
	}

	[data-navpanel] .eq-mnav-parent,
	.eq-header-navpanel .eq-mnav-parent {
		width: 100%;
		cursor: default;
	}

	[data-navpanel] .eq-mnav-sub,
	.eq-header-navpanel .eq-mnav-sub {
		display: flex !important;
		flex-direction: column;
		gap: 0px;
		padding: 0px 0px var(--eq-space-3) var(--eq-space-6);
	}

	[data-navpanel] .eq-mnav-sublink,
	.eq-header-navpanel .eq-mnav-sublink {
		display: grid;
		grid-template-columns: 28px 1fr;
		align-items: start;
		gap: var(--eq-space-2);
		padding: var(--eq-space-2) 0px;
		color: #5C6360;
		text-decoration: none;
		font-family: "Space Grotesk", Helvetica, sans-serif;
		font-size: 12px;
		line-height: var(--eq-leading-heading);
		letter-spacing: -0.015em;
	}

	[data-navpanel] .eq-mnav-sublink:hover,
	.eq-header-navpanel .eq-mnav-sublink:hover {
		color: var(--eq-green);
	}

	[data-navpanel] .eq-mnav-subnum,
	.eq-header-navpanel .eq-mnav-subnum {
		font-family: "IBM Plex Mono", monospace;
		font-size: var(--eq-text-label);
		letter-spacing: 0.14em;
		color: #E9A93C;
		padding-top: var(--eq-space-1);
	}

	[data-navpanel] .eq-mnav-suball,
	.eq-header-navpanel .eq-mnav-suball {
		/* Base overridden by equal-size rules below — keep color only here. */
		color: var(--eq-green);
	}

	[data-burger] {
		font-size: var(--eq-text-label) !important;
		letter-spacing: 0.16em !important;
		padding: var(--eq-space-1) 0px !important;
	}
}

/* Projects carousel — arrow-driven track; card sizes unchanged. */
.eq-projects-hscroll,
.eq-projects-hscroll.brxe-section,
[data-projects-carousel],
[data-hscroll] {
	height: auto !important;
}
.eq-projects-hscroll-pin,
.eq-projects-hscroll-pin.brxe-div,
[data-hscroll-pin] {
	position: static !important;
	top: auto !important;
	height: auto !important;
	overflow: visible !important;
}
.eq-projects-nav,
.eq-projects-nav.brxe-div,
[data-projects-nav] {
	display: flex !important;
	align-items: center !important;
	gap: var(--eq-space-2) !important;
	flex: none !important;
}
.eq-projects-nav-btn,
button.eq-projects-nav-btn {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 44px !important;
	height: 44px !important;
	min-width: 44px !important;
	min-height: 44px !important;
	padding: 0 !important;
	margin: 0 !important;
	border: 1px solid var(--eq-border-mute) !important;
	border-radius: 0 !important;
	background: transparent !important;
	color: var(--eq-ink) !important;
	font-family: 'IBM Plex Mono', monospace !important;
	font-size: 18px !important;
	line-height: 1 !important;
	cursor: pointer !important;
	box-sizing: border-box !important;
	transition: border-color 0.25s var(--eq-ease), background 0.25s var(--eq-ease), opacity 0.25s var(--eq-ease) !important;
}
.eq-projects-nav-btn:hover:not(:disabled),
button.eq-projects-nav-btn:hover:not(:disabled) {
	border-color: var(--eq-ink) !important;
	background: var(--eq-paper-lightest) !important;
}
.eq-projects-nav-btn:disabled,
button.eq-projects-nav-btn:disabled {
	opacity: 0.35 !important;
	cursor: default !important;
}

.eq-projects-hscroll-row,
.eq-projects-hscroll-row.brxe-div,
[data-hscroll-row],
[data-projects-track] {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	flex: none !important;
	align-items: stretch !important;
	gap: var(--eq-space-f4) !important;
width: 100% !important;
	max-width: 100% !important;
	overflow-x: auto !important;
	overflow-y: hidden !important;
	-webkit-overflow-scrolling: touch !important;
	touch-action: pan-x pan-y !important;
	overscroll-behavior-x: contain !important;
	scroll-snap-type: x mandatory !important;
	scrollbar-width: none !important;
	transform: none !important;
	will-change: auto !important;
	box-sizing: border-box !important;
}
.eq-projects-hscroll-row::-webkit-scrollbar,
.eq-projects-hscroll-row.brxe-div::-webkit-scrollbar,
[data-hscroll-row]::-webkit-scrollbar,
[data-projects-track]::-webkit-scrollbar {
	display: none !important;
}
.eq-projects-proj,
a.eq-projects-proj {
	flex: 0 0 clamp(280px, 32vw, 448px) !important;
	width: clamp(280px, 32vw, 448px) !important;
	min-width: 280px !important;
	scroll-snap-align: start !important;
	max-width: none !important;
	box-sizing: border-box !important;
}

.eq-projects-link,
a.eq-projects-link {
	flex: 0 0 clamp(220px, 20vw, 290px) !important;
	width: clamp(220px, 20vw, 290px) !important;
	min-width: 220px !important;
	max-width: none !important;
	display: flex !important;
	flex-direction: column !important;
	justify-content: space-between !important;
	scroll-snap-align: start !important;
	box-sizing: border-box !important;
}


@media (max-width: 767px) {
	.eq-projects-proj,
	a.eq-projects-proj {
		flex-basis: 78vw !important;
		width: 78vw !important;
		min-width: 78vw !important;
	}

	.eq-projects-link,
	a.eq-projects-link {
		flex-basis: 60vw !important;
		width: 60vw !important;
		min-width: 60vw !important;
	}
}

/* Insights archive + single post */
.eq-posts-grid .bricks-layout-wrapper {
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)) !important;
	gap: var(--eq-space-4) !important;
}

.eq-single-hero {
	position: relative !important;
	min-height: clamp(320px, 52vh, 520px) !important;
	display: flex !important;
	align-items: flex-end !important;
	overflow: hidden !important;
	background: var(--eq-green-deep) !important;
}

.eq-single-hero-media {
	position: absolute !important;
	inset: 0px !important;
	z-index: 0 !important;
}

.eq-single-hero-img,
.eq-single-hero-media img {
	position: absolute !important;
	inset: 0px !important;
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
}

.eq-single-hero-overlay {
	position: absolute !important;
	inset: 0px !important;
	z-index: 1 !important;
	background: linear-gradient(
		to top,
		rgba(8, 18, 13, 0.94) 0%,
		rgba(8, 18, 13, 0.72) 38%,
		rgba(8, 18, 13, 0.28) 100%
	) !important;
}

.eq-single-hero-content {
	position: relative !important;
	z-index: 2 !important;
}

.eq-single-title {
	color: var(--eq-white) !important;
}

.eq-single-meta {
	color: rgba(255, 255, 255, 0.62) !important;
}

.eq-single-back {
	color: rgba(255, 255, 255, 0.72) !important;
}

/* WPForms enquiry — matches eq-contact form design */
.eq-contact-wpforms,
.eq-wpforms-enquiry {
	margin: 0px !important;
}

.eq-contact-wpforms .wpforms-container,
.eq-wpforms-enquiry.wpforms-container {
	margin: 0px !important;
	padding: 0px !important;
}

.eq-contact-wpforms .wpforms-field-container,
.eq-wpforms-enquiry .wpforms-field-container {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	gap: var(--eq-space-4) !important;
}

.eq-contact-wpforms .wpforms-field,
.eq-wpforms-enquiry .wpforms-field {
	padding: 0px !important;
	margin: 0px !important;
}

.eq-contact-wpforms .wpforms-field-radio fieldset,
.eq-wpforms-enquiry .wpforms-field-radio fieldset {
	border: 0 !important;
	margin: 0px !important;
	padding: 0px !important;
	min-width: 0 !important;
}

.eq-contact-wpforms .wpforms-field-hp,
.eq-wpforms-enquiry .wpforms-field-hp {
	display: none !important;
}

.eq-contact-wpforms .wpforms-field.eq-wpf-works,
.eq-contact-wpforms .wpforms-field.eq-wpf-message,
.eq-contact-wpforms .wpforms-field.eq-wpf-step,
.eq-contact-wpforms .wpforms-submit-container,
.eq-wpforms-enquiry .wpforms-field.eq-wpf-works,
.eq-wpforms-enquiry .wpforms-field.eq-wpf-message,
.eq-wpforms-enquiry .wpforms-field.eq-wpf-step,
.eq-wpforms-enquiry .wpforms-submit-container {
	grid-column: 1 / -1 !important;
}

.eq-contact-wpforms .wpforms-field-label,
.eq-wpforms-enquiry .wpforms-field-label,
.eq-contact-wpforms .wpforms-field-radio legend,
.eq-wpforms-enquiry .wpforms-field-radio legend {
	display: block !important;
	margin: 0px 0px var(--eq-space-2) !important;
	font-family: "IBM Plex Mono", monospace !important;
	font-size: var(--eq-text-label) !important;
	letter-spacing: 0.18em !important;
	text-transform: uppercase !important;
	color: var(--eq-gray) !important;
	font-weight: 400 !important;
}

.eq-contact-wpforms .wpforms-field-radio ul,
.eq-wpforms-enquiry .wpforms-field-radio ul {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: var(--eq-space-2) !important;
	list-style: none !important;
	margin: 0px !important;
	padding: 0px !important;
}

.eq-contact-wpforms .wpforms-field-radio li,
.eq-wpforms-enquiry .wpforms-field-radio li {
	margin: 0px !important;
	padding: 0px !important;
}

.eq-contact-wpforms .wpforms-field-radio label,
.eq-contact-wpforms .wpforms-field-radio .wpforms-field-label-inline,
.eq-wpforms-enquiry .wpforms-field-radio label,
.eq-wpforms-enquiry .wpforms-field-radio .wpforms-field-label-inline {
	display: inline-flex !important;
	align-items: center !important;
	padding: var(--eq-space-3) var(--eq-space-4) !important;
	border: 1px solid #e2e2dc !important;
	background: #ffffff !important;
	color: #5c6360 !important;
	font-family: "IBM Plex Mono", monospace !important;
	font-size: var(--eq-text-label) !important;
	letter-spacing: 0.14em !important;
	text-transform: uppercase !important;
	cursor: pointer !important;
	transition: border-color var(--eq-duration-standard) var(--eq-ease), background var(--eq-duration-standard) var(--eq-ease), color var(--eq-duration-standard) var(--eq-ease) !important;
}

.eq-contact-wpforms .wpforms-field-radio input,
.eq-wpforms-enquiry .wpforms-field-radio input {
	position: absolute !important;
	opacity: 0 !important;
	pointer-events: none !important;
}

.eq-contact-wpforms .wpforms-field-radio input:checked + label,
.eq-wpforms-enquiry .wpforms-field-radio input:checked + label {
	border-color: #1e6b44 !important;
	background: #1e6b44 !important;
	color: #ffffff !important;
}

.eq-contact-wpforms input[type="text"],
.eq-contact-wpforms input[type="email"],
.eq-contact-wpforms input[type="tel"],
.eq-contact-wpforms textarea,
.eq-wpforms-enquiry input[type="text"],
.eq-wpforms-enquiry input[type="email"],
.eq-wpforms-enquiry input[type="tel"],
.eq-wpforms-enquiry textarea {
	width: 100% !important;
	max-width: none !important;
	box-sizing: border-box !important;
	background: #ffffff !important;
	border: 1px solid #e2e2dc !important;
	border-radius: 0 !important;
	padding: var(--eq-space-3) var(--eq-space-4) !important;
	font-size: var(--eq-text-small) !important;
	color: #1a1d1b !important;
	box-shadow: none !important;
	transition:
		border-color 0.3s var(--eq-ease),
		box-shadow 0.3s var(--eq-ease),
		background-color 0.3s var(--eq-ease) !important;
}

.eq-contact-wpforms textarea,
.eq-wpforms-enquiry textarea {
	min-height: 120px !important;
	resize: vertical !important;
}

.eq-contact-wpforms .wpforms-submit,
.eq-wpforms-enquiry .wpforms-submit {
	width: 100% !important;
	display: flex !important;
	align-items: center !important;
	gap: var(--eq-space-3) !important;
	background: #1e6b44 !important;
	color: #ffffff !important;
	justify-content: center!important;
	border: none !important;
	border-radius: 0 !important;
	padding: var(--eq-space-4) var(--eq-space-5) !important;
	font-family: "IBM Plex Mono", monospace !important;
	font-size: var(--eq-text-label) !important;
	letter-spacing: 0.18em !important;
	text-transform: uppercase !important;
	cursor: pointer !important;
	transition: background var(--eq-duration-standard) var(--eq-ease), transform var(--eq-duration-standard) var(--eq-ease) !important;
}

.eq-contact-wpforms .wpforms-submit:hover,
.eq-wpforms-enquiry .wpforms-submit:hover {
	background: #14472e !important;
	transform: translateY(-2px) !important;
}

.eq-contact-wpforms .wpforms-field.eq-wpf-works,
.eq-contact-wpforms .wpforms-field.eq-wpf-step,
.eq-wpforms-enquiry .wpforms-field.eq-wpf-works,
.eq-wpforms-enquiry .wpforms-field.eq-wpf-step {
	margin-bottom: var(--eq-space-2) !important;
}

.eq-contact-wpforms .wpforms-submit-container,
.eq-wpforms-enquiry .wpforms-submit-container {
	margin-top: var(--eq-space-2) !important;
}

.eq-contact-wpforms .wpforms-confirmation-container-full,
.eq-wpforms-enquiry .wpforms-confirmation-container-full {
	grid-column: 1 / -1 !important;
	margin: 0px !important;
	padding: var(--eq-space-4) 0px 0px !important;
	font-size: var(--eq-text-small) !important;
	line-height: var(--eq-leading-body) !important;
	color: #5c6360 !important;
}

@media (max-width: 767px) {
	.eq-contact-wpforms .wpforms-field-container,
	.eq-wpforms-enquiry .wpforms-field-container {
		grid-template-columns: 1fr !important;
	}
}

/* ---------------------------------------------------------------
   Map pins — 44x44 touch target without changing the 4px visual dot.
   min-width/min-height do not apply to SVG <g>; a non-scaling transparent
   stroke does, and it stays 44px at any map scale.
   --------------------------------------------------------------- */

.eq-map-city {
	cursor: pointer;
}

.eq-map-city .eq-map-marker {
	stroke: rgba(0, 0, 0, 0);
	stroke-width: 40px;
	vector-effect: non-scaling-stroke;
	paint-order: stroke fill;
	pointer-events: all;
}

/* ---------------------------------------------------------------
   Form controls — native radios/checkboxes are 16x16. Size the label row,
   which is the real target, and enlarge the control itself to 20px.
   --------------------------------------------------------------- */

.eq-contact-wpforms .wpforms-field-radio label,
.eq-contact-wpforms .wpforms-field-checkbox label,
.eq-wpforms-enquiry .wpforms-field-radio label,
.eq-wpforms-enquiry .wpforms-field-checkbox label {
	display: flex;
	align-items: center;
	gap: var(--eq-space-3);
	min-height: 44px;
	cursor: pointer;
}

.eq-contact-wpforms input[type="radio"],
.eq-contact-wpforms input[type="checkbox"],
.eq-wpforms-enquiry input[type="radio"],
.eq-wpforms-enquiry input[type="checkbox"] {
	width: 20px;
	height: 20px;
	min-width: 20px;
	flex: none;
	accent-color: var(--eq-green);
}

.eq-contact-wpforms input[type="text"],
.eq-contact-wpforms input[type="email"],
.eq-contact-wpforms input[type="tel"],
.eq-contact-wpforms textarea,
.eq-wpforms-enquiry input[type="text"],
.eq-wpforms-enquiry input[type="email"],
.eq-wpforms-enquiry input[type="tel"],
.eq-wpforms-enquiry textarea {
	min-height: 44px;
}

/* ---------------------------------------------------------------
   Plugin + browser form defaults.

   WPForms and the WordPress block stylesheet ship their own leadings
   (1.0, 1.3, 1.4, 1.58) and radii. Those were the only line-heights left
   outside the three-leading system, and the only radii outside the two-radius
   system — none of them authored here. Bind them to the tokens so the form
   inherits the page's typography instead of the plugin's.
   --------------------------------------------------------------- */

.eq-contact-wpforms :is(label, legend, span, p, li, button, input, select, textarea),
.eq-wpforms-enquiry :is(label, legend, span, p, li, button, input, select, textarea),
.eq-contact-wpforms .wpforms-field-label,
.eq-wpforms-enquiry .wpforms-field-label {
	line-height: var(--eq-leading-body);
}

.eq-contact-wpforms :is(h1, h2, h3, h4, h5, h6),
.eq-wpforms-enquiry :is(h1, h2, h3, h4, h5, h6) {
	line-height: var(--eq-leading-heading);
}

.eq-contact-wpforms :is(input, select, textarea, button),
.eq-wpforms-enquiry :is(input, select, textarea, button) {
	border-radius: var(--eq-radius-sharp);
}

/* Bricks/WP defaults leak a 3px radius onto a couple of controls. */
.brxe-button,
.bricks-button,
.wpforms-submit {
	border-radius: var(--eq-radius-sharp);
}

/* ---------------------------------------------------------------
   Third-party widget typography.

   The Google-reviews widget ships its own stylesheet (.mur-* classes) with
   leadings of 1.30/1.40/1.58 and its own radii. Those were the only remaining
   line-heights outside the three-leading system and they are not authored
   here. Bind the widget to the page's typography so the reviews section reads
   as part of the design rather than as an embed.
   --------------------------------------------------------------- */

[class*="mur-"] :is(h1, h2, h3, h4, h5, h6),
h1[class*="mur-"], h2[class*="mur-"], h3[class*="mur-"],
h4[class*="mur-"], h5[class*="mur-"], h6[class*="mur-"] {
	line-height: var(--eq-leading-heading);
}

[class*="mur-"] :is(p, span, li, div, a, button, label),
p[class*="mur-"], span[class*="mur-"], li[class*="mur-"],
div[class*="mur-"], a[class*="mur-"] {
	line-height: var(--eq-leading-body);
}

/* ---------------------------------------------------------------
   Any form control on the page, not just the two Equinox form wrappers.
   Native controls default to 16x16 (radio/checkbox) and whatever height the
   plugin sets; both were below the 44px floor.
   --------------------------------------------------------------- */

input:not([type="hidden"]):not([type="radio"]):not([type="checkbox"]),
select,
textarea {
	min-height: 44px;
}

input[type="radio"],
input[type="checkbox"] {
	width: 20px;
	height: 20px;
	min-width: 20px;
	flex: none;
	accent-color: var(--eq-green);
}

/* The label is the real target for a native radio/checkbox. */
label:has(> input[type="radio"]),
label:has(> input[type="checkbox"]),
.wpforms-field-radio label,
.wpforms-field-checkbox label {
	display: flex;
	align-items: center;
	gap: var(--eq-space-3);
	min-height: 44px;
	cursor: pointer;
}

/* ---------------------------------------------------------------
   Rail ticks: 44px tall but only ~30px wide because the rail's inner track is
   narrower than the 64px rail. Bleed the hit box out to the full rail width
   without moving the tick graphic.
   --------------------------------------------------------------- */

[data-rail] .eq-rail-about,
.eq-rail-about {
	padding-inline: var(--eq-space-2) !important;
	margin-inline: calc(var(--eq-space-2) * -1) !important;
}

/* ---------------------------------------------------------------
   WPForms.

   Everything below is the plugin's own stylesheet, not authored here. It was
   the last source of line-heights outside the three-leading system (1.00 on
   the submit button, 1.30 on inline labels, 1.58 on field labels), the last
   radius outside the two-radius system (3px on the container), and the last
   sub-44px controls (native 16x16 radios that WPForms renders as siblings of
   their label, not inside it, so a :has() label rule cannot reach them).

   Selectors are deliberately scoped through .wpforms-container to outrank the
   plugin's own .wpforms-container-prefixed rules without !important.
   --------------------------------------------------------------- */

.wpforms-container {
	border-radius: var(--eq-radius-sharp);
}

.wpforms-container :is(.wpforms-field-label, .wpforms-field-label-inline, legend, label, p, li, span) {
	line-height: var(--eq-leading-body);
}

.wpforms-container :is(button, .wpforms-submit, input[type="submit"]) {
	line-height: var(--eq-leading-body);
	border-radius: var(--eq-radius-sharp);
	min-height: 44px;
}

.wpforms-container :is(input[type="radio"], input[type="checkbox"]) {
	width: 20px;
	height: 20px;
	min-width: 20px;
	margin: 0px;
	flex: none;
	accent-color: var(--eq-green);
}

/* WPForms wraps each option in .choice-N. Make that row the 44px target and
   let the whole row, label included, be clickable. */
.wpforms-container :is(.wpforms-field-radio, .wpforms-field-checkbox) ul li,
.wpforms-container [class*="choice-"] {
	display: flex;
	align-items: center;
	gap: var(--eq-space-3);
	min-height: 44px;
}

.wpforms-container :is(.wpforms-field-radio, .wpforms-field-checkbox) label {
	display: flex;
	align-items: center;
	min-height: 44px;
	margin: 0px;
	cursor: pointer;
}

/* ---------------------------------------------------------------
   Skip link.

   WordPress core styles this with its own radius and colours. It is the first
   thing a keyboard user meets, so it gets the focus token, the type scale and
   a guaranteed contrast pair.
   --------------------------------------------------------------- */

.skip-link,
a.skip-link,
.skip-link:focus,
a.skip-link:focus {
	border-radius: var(--eq-radius-sharp) !important;
	background: var(--eq-ink-deep) !important;
	color: var(--eq-white) !important;
	font-family: var(--eq-font-body) !important;
	font-size: var(--eq-text-small) !important;
	line-height: var(--eq-leading-body) !important;
	padding: var(--eq-space-3) var(--eq-space-4) !important;
	min-height: 44px !important;
	display: inline-flex !important;
	align-items: center !important;
	box-shadow: none !important;
	text-decoration: underline !important;
}

.skip-link:focus-visible,
a.skip-link:focus-visible {
	outline: 2px solid var(--eq-gold) !important;
	outline-offset: 2px !important;
}

/* ---------------------------------------------------------------
   WPForms exposes its whole design as CSS variables (48 of them). Rebinding
   those is the correct integration point — it beats fighting the plugin's own
   selectors and it survives plugin updates. The line-height vars are consumed
   as `line-height: var(...)`, so unitless leading tokens drop straight in and
   the ratio holds whatever font-size the field ends up at.
   --------------------------------------------------------------- */

.wpforms-container,
.wpforms-container-full,
div[class*="wpforms-container"] {
	--wpforms-field-border-radius: var(--eq-radius-sharp);
	--wpforms-button-border-radius: var(--eq-radius-sharp);
	--wpforms-container-border-radius: var(--eq-radius-sharp);

	--wpforms-field-size-input-height: 44px;
	--wpforms-field-size-input-spacing: var(--eq-space-4);
	--wpforms-field-size-font-size: var(--eq-text-body);
	--wpforms-field-size-line-height: var(--eq-leading-body);

	--wpforms-label-size-font-size: var(--eq-text-small);
	--wpforms-label-size-line-height: var(--eq-leading-body);
	--wpforms-label-size-sublabel-font-size: var(--eq-text-label);
	--wpforms-label-size-sublabel-line-height: var(--eq-leading-body);

	--wpforms-button-size-font-size: var(--eq-text-small);
	--wpforms-button-size-height: 44px;
	--wpforms-button-size-line-height: var(--eq-leading-body);
}

/* Last two WPForms values that are hardcoded in the plugin's stylesheet rather
   than driven by its variables. !important is the only integration point left
   for these two selectors; every other form rule above wins on specificity. */
.wpforms-container label.wpforms-field-label-inline {
	line-height: var(--eq-leading-body) !important;
}

.wpforms-container button.wpforms-submit,
.wpforms-container .wpforms-submit {
	line-height: var(--eq-leading-body) !important;
}

/* Native radios/checkboxes: the plugin sizes these directly. */
.wpforms-container input[type="radio"],
.wpforms-container input[type="checkbox"] {
	width: 20px !important;
	height: 20px !important;
	min-width: 20px !important;
}

/* ---------------------------------------------------------------
   Sector panel caption plate.

   The six sector panels put white text straight onto a photograph with no
   scrim. Measured 1.09-1.11:1 — the worst contrast on the page, and the only
   text on the site a sighted user genuinely could not read.

   This belongs on the .eq-sequence-*-6 Bricks global class so the content team
   can see it in the Style panel. It is here instead because Bricks stores that
   class as structured settings rather than custom CSS, and the seeder that
   compiles specs.php into those settings needs the Bricks 2.4 Abilities API
   (this site runs 2.3.11). specs.php already carries the same declarations;
   move this block out and re-seed once Bricks 2.4 is restored.
   --------------------------------------------------------------- */

.eq-sequence-0-6,
.eq-sequence-1-6,
.eq-sequence-0-6.brxe-div,
.eq-sequence-1-6.brxe-div {
	left: 0 !important;
	right: 0 !important;
	bottom: 0 !important;
	width: auto !important;
	max-width: none !important;
	padding: var(--eq-space-8) var(--eq-space-5) var(--eq-space-5) !important;
	background: var(--eq-scrim-panel) !important;
	display: flex !important;
	flex-direction: column !important;
	align-items: flex-start !important;
	gap: 0 !important;
	box-sizing: border-box !important;
}

/* Keep the original line breaks now that the plate spans the panel. */
.eq-sequence-txt-7,
.eq-sequence-txt-8,
.eq-sequence-txt-9 {
	max-width: clamp(250px, 25vw, 400px);
}

/* Sector caption rhythm — yellow index, title, hairline, body, meta. */
.eq-sequence-0-6 .eq-sequence-txt-6,
.eq-sequence-1-6 .eq-sequence-txt-6 {
	display: block !important;
	margin: 0 0 var(--eq-space-3) !important;
	font-family: var(--eq-font-mono) !important;
	font-size: var(--eq-text-label) !important;
	letter-spacing: 0.22em !important;
	text-transform: uppercase !important;
	color: var(--eq-gold) !important;
}

.eq-sequence-0-6 .eq-sequence-txt-7,
.eq-sequence-1-6 .eq-sequence-txt-7 {
	display: block !important;
	margin: 0 0 var(--eq-space-3) !important;
	padding: 0 0 var(--eq-space-3) !important;
	font-family: var(--eq-font-display) !important;
	font-size: var(--eq-text-h3) !important;
	line-height: var(--eq-leading-heading) !important;
	letter-spacing: -0.03em !important;
	color: var(--eq-white) !important;
}

.eq-sequence-0-6 .eq-sequence-txt-8,
.eq-sequence-1-6 .eq-sequence-txt-8 {
	display: block !important;
	margin: 0 0 var(--eq-space-2) !important;
	font-size: var(--eq-text-small) !important;
	line-height: var(--eq-leading-body) !important;
	color: rgba(255, 255, 255, 0.92) !important;
}

.eq-sequence-0-6 .eq-sequence-txt-9,
.eq-sequence-1-6 .eq-sequence-txt-9 {
	display: block !important;
	margin: 0 !important;
	font-family: var(--eq-font-mono) !important;
	font-size: var(--eq-text-label) !important;
	letter-spacing: 0.16em !important;
	text-transform: uppercase !important;
	color: var(--eq-gold)  !important;
}

/* Stagger caption lines when a sector opens — yellow index leads.
   Animation (not persistent opacity:0) so the first panel stays readable
   before JS stamps .is-sector-open. Parent opacity still gates closed panels. */
@keyframes eq-sector-in {
	from {
		opacity: 0;
		transform: translateY(12px);
	}
	to {
		opacity: 1;
		transform: none;
	}
}

[data-sector-panel].is-sector-open > *,
.eq-sequence-0-6.is-sector-open > *,
.eq-sequence-1-6.is-sector-open > * {
	animation: eq-sector-in 0.55s var(--eq-ease-out) both;
}

[data-sector-panel].is-sector-open > *:nth-child(1),
.eq-sequence-0-6.is-sector-open > *:nth-child(1),
.eq-sequence-1-6.is-sector-open > *:nth-child(1) {
	animation-delay: 0.06s;
}

[data-sector-panel].is-sector-open > *:nth-child(2),
.eq-sequence-0-6.is-sector-open > *:nth-child(2),
.eq-sequence-1-6.is-sector-open > *:nth-child(2) {
	animation-delay: 0.14s;
}

[data-sector-panel].is-sector-open > *:nth-child(3),
.eq-sequence-0-6.is-sector-open > *:nth-child(3),
.eq-sequence-1-6.is-sector-open > *:nth-child(3) {
	animation-delay: 0.22s;
}

[data-sector-panel].is-sector-open > *:nth-child(4),
.eq-sequence-0-6.is-sector-open > *:nth-child(4),
.eq-sequence-1-6.is-sector-open > *:nth-child(4) {
	animation-delay: 0.3s;
}

@media (prefers-reduced-motion: reduce) {
	[data-sector-panel].is-sector-open > *,
	.eq-sequence-0-6.is-sector-open > *,
	.eq-sequence-1-6.is-sector-open > * {
		animation: none !important;
	}
}

/* ---------------------------------------------------------------
   Remaining contrast pairs, all measured on the rendered page.
   --------------------------------------------------------------- */

/* The rotated sector labels run up the side of each panel, directly on the
   photograph. White on the brightest panel measured 1.11:1. Same plate
   treatment as the caption, sized to the rotated text. */
.eq-sequence-0-5,
.eq-sequence-1-5,
.eq-sequence-0-5.brxe-div,
.eq-sequence-1-5.brxe-div {
	background: var(--eq-scrim-plate);
	padding-block: var(--eq-space-4);
	padding-inline: var(--eq-space-2);
}

/* The plate above sits behind the rotated label's number, which was
   --eq-gold-ink (dark gold, chosen for a light photograph). On the plate it
   became dark-on-dark at 1.41:1. Bright gold is the correct pair here. */
.eq-sequence-0-5 .eq-sequence-txt-5,
.eq-sequence-1-5 .eq-sequence-txt-5,
.eq-sequence-0-5 [class*="eq-sequence-txt"],
.eq-sequence-1-5 [class*="eq-sequence-txt"] {
	color: var(--eq-gold) !important;
}

/* WPForms drives label colour through its own variables. */
.wpforms-container,
.wpforms-container-full,
div[class*="wpforms-container"] {
	--wpforms-label-color: var(--eq-ink);
	--wpforms-label-sublabel-color: var(--eq-gray);
	--wpforms-field-text-color: var(--eq-ink);
}

/* FAQ open/close glyph was rgba(255,255,255,.48) on the deep green: 3.94:1
   against a 4.5:1 requirement at 14px. */
/* WPForms sublabels ship var(--eq-gray), which is 2.99:1 on the form's own
   near-white ground. --eq-gray is the same role at 5.3:1. */
.wpforms-container :is(.wpforms-field-label, .wpforms-field-sublabel, legend, label) {
	color: var(--eq-gray);
}

/* The reviews widget's Google badge glyph is rgb(198,202,199) on white:
   1.66:1. It is decorative but it is still text. */
[class*="mur-"] [class*="__g"],
[class*="mur-el-google-badge"] {
	color: var(--eq-gray) !important;
}

/* ---------------------------------------------------------------
   Entrance motion, unified.

   57 reveal declarations carried a 1s duration and 2 carried 1.35s. Those
   values live in per-element Bricks settings (page/component post meta), not
   in bricks_global_classes, so the normaliser cannot reach them without
   walking element trees — which is where text and image choices also live, so
   it deliberately does not.

   Binding duration and easing here instead gets every entrance onto one token
   without touching a single element tree. Delay is left alone: that is the
   stagger, and it is per-element by design.
   --------------------------------------------------------------- */

[data-reveal] {
	transition-duration: var(--eq-duration-reveal) !important;
	transition-timing-function: var(--eq-ease-out) !important;
}

/* Entrances animate compositor properties only. Anything in an element's own
   settings that names a layout property is overridden here. */
[data-reveal]:not([data-reveal-layout]) {
	transition-property: opacity, transform, clip-path !important;
}

/* ---------------------------------------------------------------
   Apply the hero scrim.

   The scrim sits inside .eq-top-hero-media, which is the absolutely
   positioned image layer, so it covers the photograph and nothing else —
   the headline, proof strip and CTAs are siblings that paint above it.
   --------------------------------------------------------------- */

.eq-top-hero-media::after,
.eq-top-hero-media.brxe-div::after {
	content: '';
	position: absolute;
	inset: 0;
	background: var(--eq-scrim-hero);
	pointer-events: none;
	z-index: 1;
}

/* NOT applied to inner-page heroes: those already carry their own
   .eq-inner-hero-overlay element. Adding a second scrim there double-darkened
   the image to the point the photograph disappeared — caught on /about-us/. */

/* ---------------------------------------------------------------
   Scroll cue (SCROLL · FIG. 01) — restore gold tip animation and align UI.
   Token remapping had mangled `2.4s ease-in-out` into an invalid shorthand,
   so the tip sat dead. Sweep along the track instead of a vertical drift.
   --------------------------------------------------------------- */

.eq-top-box-3,
.eq-top-box-3.brxe-div {
	display: flex !important;
	align-items: center !important;
	justify-content: flex-start !important;
	gap: var(--eq-space-5) !important;
	padding: 0 var(--eq-space-f6) var(--eq-space-5) !important;
	min-height: 0 !important;
}

.eq-top-fade-2,
.eq-top-fade-2.brxe-text-basic,
span.eq-top-fade-2 {
	display: inline-flex !important;
	align-items: center !important;
	gap: var(--eq-space-3) !important;
	margin: 0 !important;
	font-family: var(--eq-font-mono) !important;
	font-size: var(--eq-text-label) !important;
	line-height: 1 !important;
	letter-spacing: 0.18em !important;
	text-transform: uppercase !important;
	color: rgba(255, 255, 255, 0.72) !important;
}

.eq-top-txt-11,
.eq-top-txt-11.brxe-div {
	display: block !important;
	position: relative !important;
	width: 40px !important;
	height: 1px !important;
	background: rgba(255, 255, 255, 0.34) !important;
	overflow: hidden !important;
	flex: none !important;
}

.eq-top-txt-12,
.eq-top-txt-12.brxe-div {
	display: block !important;
	width: 14px !important;
	height: 1px !important;
	background: var(--eq-gold-bright) !important;
	animation: eqcue 2.4s ease-in-out infinite !important;
	will-change: transform, opacity;
}

@media (prefers-reduced-motion: reduce) {
	.eq-top-txt-12,
	.eq-top-txt-12.brxe-div {
		animation: none !important;
		opacity: 1 !important;
		transform: none !important;
	}
}

/* ---------------------------------------------------------------
   Hover + transition overhaul.

   Several Bricks classes were left with only a timing-function (no property
   or duration), so buttons and links snapped. Restore full transitions on
   compositor-safe properties and give interactive surfaces a shared curve.
   --------------------------------------------------------------- */

.eq-top-link,
a.eq-top-link,
.eq-mnav-cta,
a.eq-mnav-cta,
.eq-contact-link,
a.eq-contact-link,
.eq-header-link-8,
a.eq-header-link-8,
.wpforms-container .wpforms-submit {
	transition:
		background-color 0.35s var(--eq-ease),
		color 0.35s var(--eq-ease),
		border-color 0.35s var(--eq-ease),
		transform 0.35s var(--eq-ease),
		box-shadow 0.35s var(--eq-ease) !important;
}

.eq-top-link:hover,
a.eq-top-link:hover,
.eq-mnav-cta:hover,
a.eq-mnav-cta:hover {
	background: var(--eq-white) !important;
	color: var(--eq-green-hover) !important;
	transform: translateY(-2px) !important;
	box-shadow: 0 10px 28px rgba(8, 18, 13, 0.18) !important;
}

.eq-top-link:active,
a.eq-top-link:active {
	transform: translateY(0) !important;
	box-shadow: none !important;
}

.eq-top-link-2,
a.eq-top-link-2,
.eq-top-link-3,
a.eq-top-link-3,
.eq-header-link-7,
a.eq-header-link-7,
.eq-about-link,
a.eq-about-link,
.eq-capabilities-link,
a.eq-capabilities-link,
.eq-faq-wrap .eq-faq-link,
.eq-faq-wrap a.eq-faq-link {
	transition:
		color 0.35s var(--eq-ease),
		border-color 0.35s var(--eq-ease),
		transform 0.35s var(--eq-ease),
		opacity 0.35s var(--eq-ease) !important;
}

.eq-top-link-2:hover,
a.eq-top-link-2:hover {
	transform: translateX(5px) !important;
	border-bottom-color: var(--eq-gold-bright) !important;
	color: var(--eq-white) !important;
}

.eq-top-link-2:hover .eq-top-txt-10,
a.eq-top-link-2:hover .eq-top-txt-10 {
	transform: translateX(3px);
	transition: transform 0.35s var(--eq-ease);
}

.eq-top-link-3:hover,
a.eq-top-link-3:hover,
.eq-header-link-7:hover,
a.eq-header-link-7:hover {
	transform: translateX(4px) !important;
	color: var(--eq-green-hover) !important;
}

.eq-header-link-3,
a.eq-header-link-3,
.eq-header-link-6,
a.eq-header-link-6,
[data-desktop-nav] > [data-menu] > a,
[data-desktop-nav] > a {
	transition:
		color 0.32s var(--eq-ease),
		border-color 0.4s var(--eq-ease),
		opacity 0.32s var(--eq-ease) !important;
}

.eq-header-link-3:hover,
a.eq-header-link-3:hover {
	color: var(--eq-ink) !important;
}

body.eq-over-hero .eq-header-link-3:hover,
body.eq-over-hero a.eq-header-link-3:hover,
body.eq-over-hero [data-desktop-nav] > [data-menu] > a:hover,
body.eq-over-hero [data-desktop-nav] > a:hover {
	color: #E9A958 !important;
}
.eq-header-link-6 {
	padding-bottom:4px!important;
}
.eq-header-link-4,
a.eq-header-link-4 {
	transition:
		background-color 0.3s var(--eq-ease),
		color 0.3s var(--eq-ease),
		transform 0.3s var(--eq-ease) !important;
}

.eq-header-link-4:hover,
a.eq-header-link-4:hover {
	background: var(--eq-paper-lightest, #F8F8F5) !important;
	color: var(--eq-green) !important;
	transform: translateX(6px) !important;
	padding-left: var(--eq-space-5) !important; /* cancel layout-shift hover */
}

.eq-header-link-5,
a.eq-header-link-5 {
	transition:
		background-color 0.3s var(--eq-ease),
		color 0.3s var(--eq-ease) !important;
}

.eq-header-link-5:hover,
a.eq-header-link-5:hover {
	background: var(--eq-paper-alt, #F1F1EC) !important;
	color: var(--eq-green-hover) !important;
}

.eq-projects-0,
.eq-projects-1,
.eq-pg-card,
.eq-sol-card,
.eq-cred-card,
.eq-reviews-box-2,
.eq-top-box-6 {
	transition:
		transform 0.45s var(--eq-ease-out),
		box-shadow 0.45s var(--eq-ease-out),
		border-color 0.35s var(--eq-ease),
		filter 0.45s var(--eq-ease) !important;
}

.eq-projects-0:hover,
.eq-projects-1:hover,
.eq-pg-card:hover,
.eq-sol-card:hover,
.eq-cred-card:hover {
	transform: translateY(-6px) !important;
	box-shadow: 0 18px 40px rgba(8, 18, 13, 0.1) !important;
}

.eq-top-box-6:hover {
	filter: saturate(1) !important;
	transform: translateY(-3px) !important;
}

[data-sector],
.eq-sequence-0-4,
.eq-sequence-1-4 {
	transition:
		flex 0.85s var(--eq-ease-out),
		filter 0.45s var(--eq-ease),
		opacity 0.45s var(--eq-ease) !important;
}

[data-sector]:hover,
.eq-sequence-0-4:hover,
.eq-sequence-1-4:hover {
	filter: brightness(1.04);
}

[data-sector-panel],
.eq-sequence-0-6,
.eq-sequence-1-6 {
	transition: opacity 0.55s var(--eq-ease-out) !important;
}

[data-sector-tab],
.eq-sequence-0-5,
.eq-sequence-1-5 {
	transition: opacity 0.45s var(--eq-ease-out) !important;
}

[data-cap],
.eq-capabilities-0,
.eq-capabilities-3 {
	transition:
		color 0.35s var(--eq-ease),
		background-color 0.35s var(--eq-ease),
		border-color 0.35s var(--eq-ease),
		transform 0.4s var(--eq-ease-out) !important;
}

[data-cap]:hover,
.eq-capabilities-0:hover,
.eq-capabilities-3:hover {
	transform: translateX(4px);
}

[data-cap-img],
[data-seq-img],
.eq-capabilities-0-2,
.eq-capabilities-1,
.eq-sequence-0,
.eq-sequence-1 {
	transition: opacity 0.75s var(--eq-ease-out) !important;
}

[data-seq-text],
.eq-sequence-0-2,
.eq-sequence-1-2 {
	transition:
		opacity 0.65s var(--eq-ease-out),
		transform 0.65s var(--eq-ease-out),
		border-color 0.4s var(--eq-ease),
		color 0.35s var(--eq-ease) !important;
}

.eq-mnav-link,
a.eq-mnav-link,
.eq-mnav-close,
.eq-mnav-phone,
a.eq-mnav-phone,
.eq-mnav-email,
a.eq-mnav-email {
	transition:
		color 0.28s var(--eq-ease),
		background-color 0.28s var(--eq-ease),
		border-color 0.28s var(--eq-ease),
		transform 0.28s var(--eq-ease) !important;
}

.eq-mnav-link:hover,
a.eq-mnav-link:hover {
	color: var(--eq-green) !important;
	transform: translateX(4px) !important;
}

[data-rail] .eq-rail-about .eq-rail-txt,
[data-rail] .eq-rail-about .eq-rail-label {
	transition:
		width 0.42s var(--eq-ease),
		height 0.32s var(--eq-ease),
		background 0.35s var(--eq-ease),
		opacity 0.32s var(--eq-ease),
		max-width 0.42s var(--eq-ease),
		color 0.35s var(--eq-ease),
		box-shadow 0.35s var(--eq-ease) !important;
}

a,
button,
.eq-top-link,
.eq-top-link-2,
.eq-header-link-3,
.eq-header-link-4,
.eq-header-link-7,
[data-sector],
[data-cap] {
	-webkit-tap-highlight-color: transparent;
}

@media (prefers-reduced-motion: reduce) {
	.eq-top-link:hover,
	a.eq-top-link:hover,
	.eq-top-link-2:hover,
	a.eq-top-link-2:hover,
	.eq-projects-0:hover,
	.eq-projects-1:hover,
	.eq-pg-card:hover,
	.eq-sol-card:hover,
	.eq-cred-card:hover,
	.eq-top-box-6:hover,
	.eq-header-link-4:hover,
	a.eq-projects-proj:hover,
	[data-cap]:hover {
		transform: none !important;
		box-shadow: none !important;
	}
}

/* ---------------------------------------------------------------
   Interaction polish pass — static text, projects, form, footer.
   --------------------------------------------------------------- */

/* Team intro header is not a card — never lift / shadow on hover. */
.eq-team-box-2,
.eq-team-box-2.brxe-div,
.eq-team-box-2:hover,
.eq-team-title,
.eq-team-title:hover,
.eq-team-up,
.eq-team-up:hover,
.eq-team-fade,
.eq-team-fade:hover {
	transform: none !important;
	box-shadow: none !important;
	filter: none !important;
	cursor: default !important;
}

.eq-team-box-2,
.eq-team-box-2.brxe-div {
	transition: none !important;
}

/* Footer column labels (Explore / Contact / Accreditations) are not links. */
.eq-footer-text-3,
.eq-footer-text-3.brxe-text-basic,
p.eq-footer-text-3 {
	pointer-events: none !important;
	cursor: default !important;
	transition: none !important;
	transform: none !important;
	color: var(--eq-gray-faint) !important;
}

.eq-footer-text-3:hover,
p.eq-footer-text-3:hover {
	color: var(--eq-gray-faint) !important;
	transform: none !important;
}

/* Footer nav — tighter stack, size aligned to other text links (14px). */
.eq-footer-box-3,
.eq-footer-box-3.brxe-div,
[data-eq-footer-nav] {
	display: flex !important;
	flex-direction: column !important;
	gap: var(--eq-space-2) !important;
}

.eq-footer-box-3 > .eq-footer-link,
.eq-footer-box-3 > a.eq-footer-link,
[data-eq-footer-nav] > .eq-footer-link,
[data-eq-footer-nav] > a.eq-footer-link {
	font-family: var(--eq-font-body) !important;
	font-size: var(--eq-text-small) !important;
	line-height: var(--eq-leading-body) !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	color: var(--eq-ink) !important;
	text-decoration: none !important;
	padding: 2px 0 !important;
	border-bottom: 1px solid transparent !important;
	width: fit-content !important;
	max-width: 100% !important;
	transition:
		color 0.35s var(--eq-ease),
		border-color 0.35s var(--eq-ease),
		transform 0.35s var(--eq-ease) !important;
}

.eq-footer-box-3 > .eq-footer-link:hover,
.eq-footer-box-3 > a.eq-footer-link:hover,
[data-eq-footer-nav] > .eq-footer-link:hover,
[data-eq-footer-nav] > a.eq-footer-link:hover {
	color: var(--eq-green) !important;
	border-bottom-color: rgba(30, 107, 68, 0.35) !important;
	transform: translateX(3px) !important;
}

.eq-footer-link-2,
a.eq-footer-link-2,
.eq-footer-link-3,
a.eq-footer-link-3,
.eq-footer-link-4,
a.eq-footer-link-4 {
	transition:
		color 0.35s var(--eq-ease),
		border-color 0.35s var(--eq-ease),
		transform 0.35s var(--eq-ease),
		opacity 0.35s var(--eq-ease) !important;
}

.eq-footer-link-2:hover,
a.eq-footer-link-2:hover,
.eq-footer-link-3:hover,
a.eq-footer-link-3:hover,
.eq-footer-link-4:hover,
a.eq-footer-link-4:hover {
	color: var(--eq-green) !important;
}

.eq-footer-link-3:hover,
a.eq-footer-link-3:hover {
	transform: translateY(-1px) !important;
}

.eq-footer-img-2,
.eq-footer-img-3 {
	transition:
		filter 0.45s var(--eq-ease),
		opacity 0.45s var(--eq-ease),
		transform 0.45s var(--eq-ease) !important;
}

.eq-footer-img-2:hover,
.eq-footer-img-3:hover {
	filter: grayscale(0) !important;
	opacity: 1 !important;
	transform: translateY(-2px) !important;
}

.eq-footer-gotop,
.eq-footer-sticky,
a.eq-footer-gotop,
a.eq-footer-sticky {
	transition:
		opacity 0.45s var(--eq-ease),
		transform 0.45s var(--eq-ease-out),
		background-color 0.35s var(--eq-ease),
		color 0.35s var(--eq-ease),
		border-color 0.35s var(--eq-ease),
		box-shadow 0.35s var(--eq-ease) !important;
}

.eq-footer-gotop:hover,
a.eq-footer-gotop:hover {
	background: var(--eq-green) !important;
	border-color: var(--eq-green) !important;
	color: var(--eq-white) !important;
	transform: translateY(-2px) !important;
}

.eq-footer-sticky:hover,
a.eq-footer-sticky:hover {
	background: var(--eq-green) !important;
	color: var(--eq-white) !important;
	transform: translateY(-2px) !important;
	box-shadow: 0 16px 36px rgba(16, 24, 20, 0.14) !important;
}

/* Project cards + All projects — explicit ease (replace transition:all). */
.eq-projects-proj,
a.eq-projects-proj {
	color: var(--eq-ink) !important;
	text-decoration: none !important;
	transition: color 0.4s var(--eq-ease) !important;
}

.eq-projects-proj .eq-projects-box-2,
a.eq-projects-proj .eq-projects-box-2 {
	overflow: hidden !important;
	isolation: isolate;
}

.eq-projects-proj .eq-projects-img,
a.eq-projects-proj .eq-projects-img,
.eq-projects-img {
	display: block !important;
	width: 100% !important;
	transition:
		transform 0.65s var(--eq-ease-out),
		filter 0.45s var(--eq-ease) !important;
	transform-origin: center center;
	will-change: transform;
}

.eq-projects-proj .eq-projects-subtitle,
a.eq-projects-proj .eq-projects-subtitle,
.eq-projects-proj .eq-projects-text,
a.eq-projects-proj .eq-projects-text,
.eq-projects-proj .eq-projects-txt-4,
a.eq-projects-proj .eq-projects-txt-4 {
	transition: color 0.4s var(--eq-ease) !important;
}

.eq-projects-proj .eq-projects-txt-5,
a.eq-projects-proj .eq-projects-txt-5 {
	display: inline-block !important;
	transition: transform 0.4s var(--eq-ease) !important;
}

.eq-projects-proj:hover,
a.eq-projects-proj:hover {
	color: var(--eq-green) !important;
}

.eq-projects-proj:hover .eq-projects-img,
a.eq-projects-proj:hover .eq-projects-img {
	transform: scale(1.045) !important;
	filter: saturate(1.05);
}

.eq-projects-proj:hover .eq-projects-subtitle,
a.eq-projects-proj:hover .eq-projects-subtitle {
	color: var(--eq-green) !important;
}

.eq-projects-proj:hover .eq-projects-txt-5,
a.eq-projects-proj:hover .eq-projects-txt-5 {
	transform: translateX(5px) !important;
}

.eq-projects-link,
a.eq-projects-link {
	transition:
		background-color 0.4s var(--eq-ease),
		border-color 0.4s var(--eq-ease),
		color 0.4s var(--eq-ease),
		transform 0.4s var(--eq-ease-out) !important;
}

.eq-projects-link:hover,
a.eq-projects-link:hover {
	background: var(--eq-paper-alt, #F1F1EC) !important;
	transform: translateY(-3px) !important;
	color: var(--eq-ink) !important;
}

.eq-projects-link-2,
a.eq-projects-link-2 {
	display: inline-flex !important;
	align-items: center !important;
	gap: var(--eq-space-2) !important;
	font-family: var(--eq-font-mono) !important;
	font-size: var(--eq-text-label) !important;
	letter-spacing: 0.18em !important;
	text-transform: uppercase !important;
	color: var(--eq-ink) !important;
	padding-bottom: var(--eq-space-1) !important;
	border-bottom: 1px solid var(--eq-border-mute) !important;
	text-decoration: none !important;
	transition:
		color 0.35s var(--eq-ease),
		border-color 0.35s var(--eq-ease),
		transform 0.4s var(--eq-ease) !important;
}

.eq-projects-link-2:hover,
a.eq-projects-link-2:hover {
	color: var(--eq-green) !important;
	border-bottom-color: var(--eq-green) !important;
	transform: translateX(5px) !important;
}

/* Form — fill the row; professional hover / focus. */
.eq-contact-wpforms .wpforms-field input,
.eq-contact-wpforms .wpforms-field textarea,
.eq-contact-wpforms .wpforms-field select,
.eq-wpforms-enquiry .wpforms-field input,
.eq-wpforms-enquiry .wpforms-field textarea,
.eq-wpforms-enquiry .wpforms-field select,
.wpforms-container input[type="text"],
.wpforms-container input[type="email"],
.wpforms-container input[type="tel"],
.wpforms-container input[type="number"],
.wpforms-container input[type="url"],
.wpforms-container textarea,
.wpforms-container select {
	width: 100% !important;
	max-width: none !important;
	min-width: 0 !important;
	box-sizing: border-box !important;
}

.eq-contact-wpforms .wpforms-field.eq-wpf-half,
.eq-wpforms-enquiry .wpforms-field.eq-wpf-half {
	grid-column: span 1 !important;
}

.eq-contact-wpforms .wpforms-field.eq-wpf-location,
.eq-wpforms-enquiry .wpforms-field.eq-wpf-location,
.eq-contact-wpforms .wpforms-field[data-field-id="5"],
.eq-wpforms-enquiry .wpforms-field[data-field-id="5"] {
	grid-column: span 1 !important;
}

.eq-contact-wpforms input[type="text"]:hover,
.eq-contact-wpforms input[type="email"]:hover,
.eq-contact-wpforms input[type="tel"]:hover,
.eq-contact-wpforms textarea:hover,
.eq-wpforms-enquiry input[type="text"]:hover,
.eq-wpforms-enquiry input[type="email"]:hover,
.eq-wpforms-enquiry input[type="tel"]:hover,
.eq-wpforms-enquiry textarea:hover {
	border-color: #c5c8c2 !important;
	background: #fcfcfa !important;
}

.eq-contact-wpforms input[type="text"]:focus,
.eq-contact-wpforms input[type="email"]:focus,
.eq-contact-wpforms input[type="tel"]:focus,
.eq-contact-wpforms textarea:focus,
.eq-wpforms-enquiry input[type="text"]:focus,
.eq-wpforms-enquiry input[type="email"]:focus,
.eq-wpforms-enquiry input[type="tel"]:focus,
.eq-wpforms-enquiry textarea:focus {
	outline: none !important;
	border-color: var(--eq-green) !important;
	background: #ffffff !important;
	box-shadow: 0 0 0 3px rgba(30, 107, 68, 0.14) !important;
}

.eq-contact-wpforms .wpforms-field-radio label,
.eq-wpforms-enquiry .wpforms-field-radio label {
	transition:
		border-color 0.3s var(--eq-ease),
		background-color 0.3s var(--eq-ease),
		color 0.3s var(--eq-ease),
		transform 0.3s var(--eq-ease),
		box-shadow 0.3s var(--eq-ease) !important;
}

.eq-contact-wpforms .wpforms-field-radio label:hover,
.eq-wpforms-enquiry .wpforms-field-radio label:hover {
	border-color: var(--eq-green) !important;
	color: var(--eq-green) !important;
	transform: translateY(-1px) !important;
}

.eq-contact-wpforms .wpforms-field-radio input:checked + label:hover,
.eq-wpforms-enquiry .wpforms-field-radio input:checked + label:hover {
	border-color: var(--eq-green-hover) !important;
	background: var(--eq-green-hover) !important;
	color: var(--eq-white) !important;
	transform: none !important;
}

.eq-contact-wpforms .wpforms-submit,
.eq-wpforms-enquiry .wpforms-submit {
	transition:
		background-color 0.35s var(--eq-ease),
		transform 0.35s var(--eq-ease),
		box-shadow 0.35s var(--eq-ease) !important;
}

.eq-contact-wpforms .wpforms-submit:hover,
.eq-wpforms-enquiry .wpforms-submit:hover {
	background: var(--eq-green-hover) !important;
	transform: translateY(-2px) !important;
	box-shadow: 0 12px 28px rgba(8, 18, 13, 0.16) !important;
}

.eq-contact-wpforms .wpforms-submit:active,
.eq-wpforms-enquiry .wpforms-submit:active {
	transform: translateY(0) !important;
	box-shadow: none !important;
}

/* Header + global text links — consistent ease. */
[data-desktop-nav] > a,
[data-desktop-nav] > [data-menu] > a,
.eq-header-link-3,
a.eq-header-link-3,
.eq-header-link-6,
a.eq-header-link-6,
.eq-header-link-7,
a.eq-header-link-7 {
	transition:
		color 0.32s var(--eq-ease),
		border-color 0.4s var(--eq-ease),
		opacity 0.32s var(--eq-ease),
		transform 0.32s var(--eq-ease) !important;
}

.eq-header-link-7:hover,
a.eq-header-link-7:hover {
	transform: translateX(4px) !important;
}

/* Content images that sit in interactive cards. */
.eq-pg-card img,
.eq-sol-card img,
.eq-cred-card img,
.eq-about-box-2 img,
.eq-capabilities-0-2 img,
.eq-capabilities-1 img {
	transition:
		transform 0.65s var(--eq-ease-out),
		filter 0.45s var(--eq-ease),
		opacity 0.45s var(--eq-ease) !important;
}

.eq-pg-card:hover img,
.eq-sol-card:hover img,
.eq-cred-card:hover img,
.eq-about-box-2:hover img {
	transform: scale(1.03);
}

/* Archive status lines removed (projects + insights/blog). */
.eq-arch-note,
.eq-arch-note.brxe-text-basic,
.eq-pg-status,
.eq-pg-status.brxe-text-basic {
	display: none !important;
}

/* Intro-only archive chrome — never hide the posts/projects grid itself. */
.eq-arch-wrap:not(.eq-posts-grid):not(.eq-insights-grid):not(.eq-pg-wrap),
.eq-arch-wrap.brxe-section:not(.eq-posts-grid):not(.eq-insights-grid):not(.eq-pg-wrap) {
	display: none !important;
}

/* ---------------------------------------------------------------
   Design edits 2026-09 — Contact dark plate, Sequence green band,
   Team portraits (hide placeholder chrome).
   --------------------------------------------------------------- */

.eq-contact-wrap,
.eq-contact-wrap.brxe-section {
	position: relative !important;
	isolation: isolate !important;
	overflow: hidden !important;
	background: #0d1a13 ;
	border-top: none !important;
	color: var(--eq-white) !important;
}

.eq-contact-box-4,
.eq-contact-box-4.brxe-div {
	position: absolute !important;
	inset: 0 !important;
	z-index: 0 !important;
	margin: 0 !important;
	pointer-events: none !important;
	overflow: hidden !important;
}

.eq-contact-img,
.eq-contact-img.brxe-image,
.eq-contact-img img {
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	filter: brightness(0.42) saturate(0.9) !important;
	max-width: none !important;
}

.eq-contact-box,
.eq-contact-box.brxe-div {
	position: relative !important;
	z-index: 1 !important;
}

.eq-contact-fade,
.eq-contact-fade.brxe-text-basic,
.eq-contact-txt-2,
.eq-contact-txt-2.brxe-text-basic {
	color: var(--eq-gold) !important;
}

.eq-contact-title,
.eq-contact-title.brxe-heading,
.eq-contact-up,
.eq-contact-up.brxe-text-basic,
.eq-contact-link,
a.eq-contact-link,
.eq-contact-link-2,
a.eq-contact-link-2,
.eq-contact-txt-3,
.eq-contact-txt-3.brxe-text-basic {
	color: var(--eq-white) !important;
}

.eq-contact-box-2,
.eq-contact-box-3 {
	border-color: rgba(255, 255, 255, 0.18) !important;
}

.eq-contact-text-2,
.eq-contact-form-note {
	display: none !important;
}

.eq-contact-up-3,
.eq-contact-up-3.brxe-div {
	position: relative !important;
	z-index: 1 !important;
	background: var(--eq-white) !important;
	border: none !important;
	color: var(--eq-ink) !important;
}

.eq-sequence-wrap,
.eq-sequence-wrap.brxe-section {
	background: var(--eq-green-deep) !important;
	border-top-color: rgba(255, 255, 255, 0.1) !important;
	color: var(--eq-white) !important;
}

.eq-sequence-wrap .eq-sequence-fade,
.eq-sequence-wrap .eq-sequence-txt-2 {
	color: var(--eq-gold-bright) !important;
}

.eq-sequence-wrap .eq-sequence-title,
.eq-sequence-wrap .eq-sequence-subtitle {
	color: var(--eq-white) ;
}

.eq-sequence-wrap .eq-sequence-text-2 {
	color: rgba(255, 255, 255, 0.86);
}

.eq-sequence-wrap .eq-sequence-0-3 {
	color: var(--eq-gold-bright);
}

.eq-sequence-wrap .eq-sequence-1-3 {
	border-top-color: rgba(255, 255, 255, 0.28) ;
	color: rgba(255, 255, 255, 0.55) ;
}

.eq-sequence-wrap .eq-sequence-text {
	display: none !important;
}


.eq-team-photo,
.eq-team-photo.brxe-image,
.eq-team-photo img {
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	object-position: center top !important;
}

.eq-team-box-4,
.eq-team-box-4.brxe-div {
	background: var(--eq-paper) !important;
}

/* Team roster — restrained hover / select motion (name + role on photo). */
#team .eq-team-up-2,
.eq-team-wrap .eq-team-up-2 {
	position: relative;
	cursor: pointer;
	outline: none;
}

#team .eq-team-box-4,
.eq-team-wrap .eq-team-box-4 {
	position: relative !important;
	overflow: hidden !important;
	aspect-ratio: 3 / 4;
}

#team .eq-team-box-4::after,
.eq-team-wrap .eq-team-box-4::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(
		to top,
		rgba(13, 26, 19, 0.8) 0%,
		rgba(13, 26, 19, 0.32) 42%,
		transparent 74%
	);
	opacity: 0;
	transition: opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1);
	pointer-events: none;
}

#team .eq-team-box-4 .eq-team-photo img,
.eq-team-wrap .eq-team-box-4 .eq-team-photo img,
#team .eq-team-box-4 img.eq-team-photo,
.eq-team-wrap .eq-team-box-4 img.eq-team-photo {
	transition:
		transform 0.7s cubic-bezier(0.22, 1, 0.36, 1),
		filter 0.5s ease;
	transform: scale(1);
	filter: saturate(0.94) contrast(1.02);
	transform-origin: center top;
}

#team .eq-team-txt-2,
.eq-team-wrap .eq-team-txt-2 {
	z-index: 3 !important;
	transition: opacity 0.35s ease;
}

#team .eq-team-box-5,
.eq-team-wrap .eq-team-box-5 {
	position: absolute !important;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 2;
	margin: 0 !important;
	padding: 1.25rem 1rem 3rem !important;
	opacity: 0;
	transform: translateY(12px);
	transition:
		opacity 0.4s cubic-bezier(0.22, 1, 0.36, 1),
		transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
	pointer-events: none;
}

#team .eq-team-box-5 .eq-team-subtitle,
.eq-team-wrap .eq-team-box-5 .eq-team-subtitle {
	color: #fff !important;
	margin-bottom: 0.15rem !important;
}

#team .eq-team-box-5 .eq-team-text,
.eq-team-wrap .eq-team-box-5 .eq-team-text,
#team .eq-team-box-5 p,
.eq-team-wrap .eq-team-box-5 p {
	color: rgba(233, 169, 60, 0.95) !important;
}

#team .eq-team-up-2:hover .eq-team-box-4::after,
#team .eq-team-up-2.is-active .eq-team-box-4::after,
#team .eq-team-up-2:focus-visible .eq-team-box-4::after,
.eq-team-wrap .eq-team-up-2:hover .eq-team-box-4::after,
.eq-team-wrap .eq-team-up-2.is-active .eq-team-box-4::after,
.eq-team-wrap .eq-team-up-2:focus-visible .eq-team-box-4::after {
	opacity: 1 !important;
}

#team .eq-team-up-2:hover .eq-team-box-4 .eq-team-photo img,
#team .eq-team-up-2.is-active .eq-team-box-4 .eq-team-photo img,
#team .eq-team-up-2:focus-visible .eq-team-box-4 .eq-team-photo img,
#team .eq-team-up-2:hover .eq-team-box-4 img.eq-team-photo,
#team .eq-team-up-2.is-active .eq-team-box-4 img.eq-team-photo,
#team .eq-team-up-2:focus-visible .eq-team-box-4 img.eq-team-photo,
.eq-team-wrap .eq-team-up-2:hover .eq-team-box-4 .eq-team-photo img,
.eq-team-wrap .eq-team-up-2.is-active .eq-team-box-4 .eq-team-photo img,
.eq-team-wrap .eq-team-up-2:focus-visible .eq-team-box-4 .eq-team-photo img,
.eq-team-wrap .eq-team-up-2:hover .eq-team-box-4 img.eq-team-photo,
.eq-team-wrap .eq-team-up-2.is-active .eq-team-box-4 img.eq-team-photo,
.eq-team-wrap .eq-team-up-2:focus-visible .eq-team-box-4 img.eq-team-photo {
	transform: scale(1.045) !important;
	filter: saturate(1) contrast(1.04) !important;
}

#team .eq-team-up-2:hover .eq-team-box-5,
#team .eq-team-up-2.is-active .eq-team-box-5,
#team .eq-team-up-2:focus-visible .eq-team-box-5,
.eq-team-wrap .eq-team-up-2:hover .eq-team-box-5,
.eq-team-wrap .eq-team-up-2.is-active .eq-team-box-5,
.eq-team-wrap .eq-team-up-2:focus-visible .eq-team-box-5 {
	opacity: 1 !important;
	transform: translateY(0) !important;
}

#team .eq-team-up-2:hover .eq-team-txt-2,
#team .eq-team-up-2.is-active .eq-team-txt-2,
#team .eq-team-up-2:focus-visible .eq-team-txt-2,
.eq-team-wrap .eq-team-up-2:hover .eq-team-txt-2,
.eq-team-wrap .eq-team-up-2.is-active .eq-team-txt-2,
.eq-team-wrap .eq-team-up-2:focus-visible .eq-team-txt-2 {
	opacity: 0.9;
}

#team .eq-team-up-2:focus-visible,
.eq-team-wrap .eq-team-up-2:focus-visible {
	box-shadow: 0 0 0 2px var(--eq-gold, #e9a93c);
}

/* Touch / narrow screens: always show name + role below the photo — no tap required. */
@media (hover: none), (max-width: 991px) {
	#team .eq-team-up-2,
	.eq-team-wrap .eq-team-up-2 {
		cursor: default;
	}

	#team .eq-team-box-4::after,
	.eq-team-wrap .eq-team-box-4::after {
		display: none !important;
	}

	#team .eq-team-box-4 .eq-team-photo img,
	.eq-team-wrap .eq-team-box-4 .eq-team-photo img,
	#team .eq-team-box-4 img.eq-team-photo,
	.eq-team-wrap .eq-team-box-4 img.eq-team-photo {
		filter: none !important;
		transform: none !important;
	}

	#team .eq-team-box-5,
	.eq-team-wrap .eq-team-box-5 {
		position: static !important;
		opacity: 1 !important;
		transform: none !important;
		padding: var(--eq-space-3) 0 0 !important;
	}

	#team .eq-team-box-5 .eq-team-subtitle,
	.eq-team-wrap .eq-team-box-5 .eq-team-subtitle {
		color: var(--eq-ink) !important;
	}

	#team .eq-team-box-5 .eq-team-text,
	.eq-team-wrap .eq-team-box-5 .eq-team-text,
	#team .eq-team-box-5 p,
	.eq-team-wrap .eq-team-box-5 p {
		color: var(--eq-gray) !important;
	}

	#team .eq-team-txt-2,
	.eq-team-wrap .eq-team-txt-2 {
		opacity: 1 !important;
	}

	#team .eq-team-up-2.is-active .eq-team-box-4::after,
	.eq-team-wrap .eq-team-up-2.is-active .eq-team-box-4::after {
		display: none !important;
	}
}

html.no-js #team .eq-team-box-5,
html.no-js .eq-team-wrap .eq-team-box-5 {
	position: static !important;
	opacity: 1;
	transform: none;
	padding: var(--eq-space-4) 0 0 !important;
}

html.no-js #team .eq-team-box-5 .eq-team-subtitle,
html.no-js .eq-team-wrap .eq-team-box-5 .eq-team-subtitle {
	color: var(--eq-ink) !important;
}

html.no-js #team .eq-team-box-5 .eq-team-text,
html.no-js .eq-team-wrap .eq-team-box-5 .eq-team-text,
html.no-js #team .eq-team-box-5 p,
html.no-js .eq-team-wrap .eq-team-box-5 p {
	color: var(--eq-gray) !important;
}

html.no-js #team .eq-team-box-4::after,
html.no-js .eq-team-wrap .eq-team-box-4::after {
	display: none;
}

@media (prefers-reduced-motion: reduce) {
	#team .eq-team-box-4 .eq-team-photo img,
	#team .eq-team-box-4 img.eq-team-photo,
	.eq-team-wrap .eq-team-box-4 .eq-team-photo img,
	.eq-team-wrap .eq-team-box-4 img.eq-team-photo,
	#team .eq-team-box-5,
	.eq-team-wrap .eq-team-box-5,
	#team .eq-team-box-4::after,
	.eq-team-wrap .eq-team-box-4::after {
		transition: none !important;
	}

	#team .eq-team-box-5,
	.eq-team-wrap .eq-team-box-5 {
		position: static !important;
		opacity: 1;
		transform: none;
		padding: var(--eq-space-4) 0 0 !important;
	}

	#team .eq-team-box-5 .eq-team-subtitle,
	.eq-team-wrap .eq-team-box-5 .eq-team-subtitle {
		color: var(--eq-ink) !important;
	}

	#team .eq-team-box-5 .eq-team-text,
	.eq-team-wrap .eq-team-box-5 .eq-team-text,
	#team .eq-team-box-5 p,
	.eq-team-wrap .eq-team-box-5 p {
		color: var(--eq-gray) !important;
	}

	#team .eq-team-box-4::after,
	.eq-team-wrap .eq-team-box-4::after {
		display: none;
	}

	#team .eq-team-up-2:hover .eq-team-box-4 .eq-team-photo img,
	#team .eq-team-up-2.is-active .eq-team-box-4 .eq-team-photo img,
	.eq-team-wrap .eq-team-up-2:hover .eq-team-box-4 .eq-team-photo img,
	.eq-team-wrap .eq-team-up-2.is-active .eq-team-box-4 .eq-team-photo img {
		transform: none;
		filter: none;
	}
}

.eq-footer-text-2,
.eq-footer-text-2.brxe-text-basic {
	color: var(--eq-green) !important;
	letter-spacing: 0.14em !important;
	text-transform: uppercase !important;
}


/* Prequalified cert marquee — logo above, label below, infinite auto-loop. */
.eq-top-box-7,
.eq-top-box-7.brxe-div {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	align-items: center !important;
	gap: clamp(16px, 2vw, 28px) !important;
}

.eq-top-txt-16,
.eq-top-txt-16.brxe-div {
	flex: 0 0 auto !important;
}

.eq-top-link-3,
.eq-top-link-3.brxe-text-link {
	flex: 0 0 auto !important;
}

.eq-top-box-8.eq-cert-marquee,
.eq-cert-marquee,
[data-eq-cert-marquee] {
	display: block !important;
	flex: 1 1 auto !important;
	min-width: 0 !important;
	overflow: hidden !important;
	mask-image: linear-gradient(90deg, transparent, #000 3%, #000 97%, transparent);
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 3%, #000 97%, transparent);
}

.eq-cert-track,
.eq-cert-track.brxe-div {
	display: flex !important;
	flex-direction: row !important;
	align-items: stretch !important;
	gap: clamp(28px, 3.5vw, 48px) !important;
	width: max-content !important;
	will-change: transform;
}

.eq-cert-track.is-animating {
	animation: eq-cert-marquee 38s linear infinite;
}

.eq-cert-marquee:hover .eq-cert-track.is-animating {
	animation-play-state: paused;
}

.eq-cert-item,
.eq-cert-item.brxe-div {
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	justify-content: space-between !important;
	gap: 10px !important;
	flex: 0 0 auto !important;
	min-width: 7.5rem !important;
	text-align: center !important;
}

.eq-cert-logo,
.eq-cert-item img,
.eq-cert-item .brxe-image,
.eq-cert-item .brxe-image img {
	display: block !important;
	width: auto !important;
	height: 52px !important;
	max-width: 120px !important;
	object-fit: contain !important;
	margin: 0 auto !important;
}

.eq-cert-item--dark .eq-cert-logo,
.eq-cert-item--dark img {
	border-radius: 6px;
	padding: 8px 12px;
	height: 44px !important;
	box-sizing: content-box;
}

.eq-cert-label,
.eq-cert-item .eq-top-txt-18,
.eq-cert-item .eq-cert-label {
	display: block !important;
	margin: 0 !important;
	font-size: clamp(12px, 1vw, 14px) !important;
	line-height: 1.25 !important;
	letter-spacing: -0.01em !important;
	color: var(--eq-ink) !important;
	white-space: nowrap !important;
	text-align: center !important;
}

.eq-top-box-8 .eq-top-txt-19 {
	display: none !important;
}

@keyframes eq-cert-marquee {
	from {
		transform: translate3d(0, 0, 0);
	}
	to {
		transform: translate3d(-50%, 0, 0);
	}
}

@media (max-width: 991px) {
	.eq-top-box-7,
	.eq-top-box-7.brxe-div {
		flex-wrap: wrap !important;
	}

	.eq-top-box-8.eq-cert-marquee,
	.eq-cert-marquee {
		flex: 1 1 100% !important;
		order: 3;
		width: 100% !important;
	}

	.eq-cert-logo,
	.eq-cert-item img {
		height: 100% !important;
        max-width: auto!important;
	}
}

@media (prefers-reduced-motion: reduce) {
	.eq-cert-track.is-animating {
		animation: none !important;
		transform: none !important;
	}
}
/* ------------------------------------------------------------------ *
 * Load-in curtain — prototype markup is printed at wp_body_open.
 * Hide only the seeded Bricks curtain (no counter), never the proto.
 * ------------------------------------------------------------------ */
.eq-curtain-curtain.brxe-div:not(:has([data-curtain-count])),
.eq-curtain-curtain.brxe-section:not(:has([data-curtain-count])) {
	display: none !important;
	pointer-events: none !important;
	visibility: hidden !important;
}

/* ------------------------------------------------------------------ *
 * Hero opening — exact port of styles.css:304–340
 * Green hoarding panels part after the white curtain lifts; survey
 * setout lines + datum dots draw across, then fade.
 * Trigger: [data-hero].eq-hero-in (set by equinox-curtain.js startHero)
 * ------------------------------------------------------------------ */
.eq-setout {
	position: absolute;
	inset: 0;
	z-index: 2;
	pointer-events: none;
	overflow: hidden;
}

.eq-setout span {
	position: absolute;
	background: rgba(233, 169, 60, 0.55);
}

.eq-setout .h {
	left: 0;
	right: 0;
	height: 1px;
	transform: scaleX(0);
	transform-origin: left;
}

.eq-setout .v {
	top: 0;
	bottom: 0;
	width: 1px;
	transform: scaleY(0);
	transform-origin: top;
}

[data-hero].eq-hero-in .eq-setout .h {
	animation:
		eqdrawx 0.95s cubic-bezier(0.76, 0, 0.24, 1) forwards,
		eqfadeline 0.9s ease 1.9s forwards;
}

[data-hero].eq-hero-in .eq-setout .v {
	animation:
		eqdrawy 0.95s cubic-bezier(0.76, 0, 0.24, 1) forwards,
		eqfadeline 0.9s ease 1.9s forwards;
}

@keyframes eqdrawx {
	to {
		transform: scaleX(1);
	}
}

@keyframes eqdrawy {
	to {
		transform: scaleY(1);
	}
}

@keyframes eqfadeline {
	to {
		opacity: 0;
	}
}

.eq-setout .d {
	width: 9px;
	height: 9px;
	border: 1px solid #e9a93c;
	background: transparent;
	opacity: 0;
	transform: rotate(45deg) scale(0.4);
}

[data-hero].eq-hero-in .eq-setout .d {
	animation:
		eqdatum 0.7s cubic-bezier(0.2, 0.7, 0.2, 1) 0.5s forwards,
		eqfadeline 0.9s ease 2s forwards;
}

@keyframes eqdatum {
	to {
		opacity: 1;
		transform: rotate(45deg) scale(1);
	}
}

.eq-hoard {
	position: absolute;
	top: 0;
	bottom: 0;
	width: 50.5%;
	background: #0d1a13;
	z-index: 3;
	pointer-events: none;
}

.eq-hoard.l {
	left: 0;
	transform: translateX(0);
}

.eq-hoard.r {
	right: 0;
	transform: translateX(0);
}

[data-hero].eq-hero-in .eq-hoard.l {
	animation: eqhoardl 1.5s cubic-bezier(0.76, 0, 0.24, 1) 0.15s forwards;
}

[data-hero].eq-hero-in .eq-hoard.r {
	animation: eqhoardr 1.5s cubic-bezier(0.76, 0, 0.24, 1) 0.15s forwards;
}

@keyframes eqhoardl {
	to {
		transform: translateX(-101%);
	}
}

@keyframes eqhoardr {
	to {
		transform: translateX(101%);
	}
}

.eq-sign {
	display: inline-flex;
	align-items: center;
	gap: 0;
	border: 1px solid rgba(255, 255, 255, 0.28);
	opacity: 0;
	transform: translateY(10px);
	transition:
		opacity 0.8s ease 1.5s,
		transform 0.9s cubic-bezier(0.2, 0.7, 0.2, 1) 1.5s;
}

[data-hero].eq-hero-in .eq-sign {
	opacity: 1;
	transform: translateY(0);
}

.eq-sign b {
	font-weight: 400;
	padding: 8px 12px;
	font-family: 'IBM Plex Mono', monospace;
	font-size: 9.5px;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.6);
	border-right: 1px solid rgba(255, 255, 255, 0.2);
}

.eq-sign b:last-child {
	border-right: none;
	color: #e9a93c;
}

.eq-hero-static .eq-hoard,
.eq-hero-static .eq-setout {
	display: none;
}

@media (prefers-reduced-motion: reduce) {
	.eq-setout,
	.eq-hoard {
		display: none;
	}

	.eq-sign {
		opacity: 1;
		transform: none;
		transition: none;
	}
}

/* ------------------------------------------------------------------ *
 * Location map — hooks consumed by assets/js/equinox-map.js.
 * Motion lives in JS (GSAP); this only handles layout, cursor and the
 * non-transform parts of the focus state so the two never fight.
 * ------------------------------------------------------------------ */
.eq-location-map-svg-host,
.eq-location-map-svg-host.brxe-div {
	display: block !important;
	width: 100% !important;
	height: 100% !important;
}

.eq-location-map-svg {
	display: block;
	width: 100%;
	height: 100%;
}

.eq-location-map-fallback {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.eq-map-city {
	cursor: pointer;
}

.eq-map-hit {
	pointer-events: all;
}

.eq-map-overlay,
.eq-map-guide,
.eq-map-ring,
.eq-map-pulse {
	pointer-events: none;
}

.eq-map-land,
.eq-map-border,
.eq-map-label {
	pointer-events: none;
}

/* Recent works list doubles as the map legend. */
.eq-location-works-list li.eq-map-loc {
	cursor: pointer;
	transition:
		color var(--eq-duration-standard) var(--eq-ease),
		padding-left var(--eq-duration-standard) var(--eq-ease);
}

.eq-location-works-list li.eq-map-loc.is-on {
	color: var(--eq-green) !important;
	padding-left: 8px;
}

/* ------------------------------------------------------------------ *
 * GSAP scroll sections — exempt from CSS section opacity gate.
 * Children are revealed by equinox-scroll.js timelines.
 * ------------------------------------------------------------------ */
[data-eq-gsap],
[data-eq-gsap].eq-about-wrap,
[data-eq-gsap].eq-capabilities-wrap,
[data-eq-gsap].eq-sequence-wrap,
[data-eq-gsap].eq-sequence-wrap-2,
[data-eq-gsap].eq-projects-wrap,
[data-eq-gsap].eq-projects-hscroll,
[data-eq-gsap].eq-team-wrap,
[data-eq-gsap].eq-team-wrap-2,
[data-eq-gsap].eq-team-wrap-3,
[data-eq-gsap].eq-reviews-wrap,
[data-eq-gsap].eq-faq-wrap,
[data-eq-gsap].eq-location-wrap,
[data-eq-gsap].eq-contact-wrap,
[data-eq-gsap].eq-why-wrap,
#brx-content > section[data-eq-gsap]:not(#top) {
	opacity: 1 !important;
	transform: none !important;
	transition: none !important;
}

[data-eq-gsap] [data-reveal="mask"] {
	display: block;
	overflow: hidden;
}

[data-eq-gsap] .eq-team-up-2,
[data-eq-gsap] .eq-projects-proj,
[data-eq-gsap] [data-proj] {
	will-change: opacity, transform;
}

/* Trusted-by logo table — grid lines + logo entrance owned by GSAP. */
[data-eq-trusted] .brx-grid,
[data-eq-trusted] .eq-team-fade-5,
[data-eq-trusted] [data-eq-logo-grid] {
	--eq-trusted-line-op: 0;
	will-change: clip-path;
}

[data-eq-trusted] .brx-grid::before {
	opacity: var(--eq-trusted-line-op, 0) !important;
	transition: none !important;
}

[data-eq-trusted] .brx-grid > img,
[data-eq-trusted] .eq-team-fade-5 img,
[data-eq-trusted] .eq-logo-tile,
[data-eq-trusted] .eq-team-img {
	will-change: opacity, transform, filter;
}

[data-eq-trusted].eq-trusted-on .brx-grid,
[data-eq-trusted] .brx-grid.eq-trusted-on {
	--eq-trusted-line-op: 0.55;
}

@media (prefers-reduced-motion: reduce) {
	[data-eq-trusted] .brx-grid,
	[data-eq-trusted] .eq-team-fade-5,
	[data-eq-trusted] [data-eq-logo-grid] {
		clip-path: none !important;
		--eq-trusted-line-op: 0.55;
	}

	[data-eq-trusted] .brx-grid > img,
	[data-eq-trusted] .eq-team-fade-5 img,
	[data-eq-trusted] .eq-logo-tile,
	[data-eq-trusted] .eq-team-img {
		opacity: 1 !important;
		transform: none !important;
		filter: none !important;
		visibility: inherit !important;
	}
}

/* ------------------------------------------------------------------ *
 * Capabilities megamenu — capability statement PDF (prototype .eq-menu-dl)
 * ------------------------------------------------------------------ */
.eq-menu-dl,
a.eq-menu-dl {
	display: flex !important;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 15px 24px;
	background: #1e6b44;
	color: #ffffff !important;
	font-family: 'IBM Plex Mono', monospace;
	font-size: 10px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	text-decoration: none;
	transition: background 0.25s ease, color 0.25s ease;
}

.eq-menu-dl:hover,
a.eq-menu-dl:hover {
	background: #14472e;
	color: #ffffff !important;
}

.eq-menu-dl-icon,
.eq-menu-dl span {
	color: #e9a93c !important;
}

/* Mobile Capabilities submenu — equal type + row size for every link. */
[data-navpanel] .eq-mnav-sub .eq-mnav-sublink,
.eq-header-navpanel .eq-mnav-sub .eq-mnav-sublink {
	display: grid !important;
	grid-template-columns: 28px minmax(0, 1fr) !important;
	align-items: center !important;
	gap: 10px !important;
	min-height: 48px !important;
	padding: 12px 0 !important;
	box-sizing: border-box !important;
	font-family: 'Space Grotesk', Helvetica, sans-serif !important;
	font-size: 12px !important;
	line-height: 1.35 !important;
	letter-spacing: -0.015em !important;
	text-transform: none !important;
	font-weight: 400 !important;
}

[data-navpanel] .eq-mnav-sub .eq-mnav-subnum,
.eq-header-navpanel .eq-mnav-sub .eq-mnav-subnum {
	font-family: 'IBM Plex Mono', monospace !important;
	font-size: 11px !important;
	letter-spacing: 0.14em !important;
	line-height: 1 !important;
	padding-top: 0 !important;
	align-self: center !important;
}

[data-navpanel] .eq-mnav-sub .eq-mnav-sublabel,
.eq-header-navpanel .eq-mnav-sub .eq-mnav-sublabel {
	font-size: inherit !important;
	line-height: inherit !important;
}

/* “View all” / PDF — flex so the arrow stays on the same line (grid was wrapping <span>). */
[data-navpanel] .eq-mnav-sub .eq-mnav-suball,
.eq-header-navpanel .eq-mnav-sub .eq-mnav-suball {
	display: flex !important;
	align-items: center !important;
	justify-content: flex-start !important;
	flex-wrap: nowrap !important;
	gap: 8px !important;
	grid-template-columns: none !important;
	min-height: 48px !important;
	padding: 12px 0 12px 0px !important; /* to align with numbered labels: (28px + 10px gap) */
	box-sizing: border-box !important;
	font-family: 'Space Grotesk', Helvetica, sans-serif !important;
	font-size: 12px !important;
	line-height: 1.35 !important;
	letter-spacing: -0.015em !important;
	text-transform: none !important;
	font-weight: 400 !important;
	color: var(--eq-green) !important;
}

[data-navpanel] .eq-mnav-sub .eq-mnav-suball > span,
.eq-header-navpanel .eq-mnav-sub .eq-mnav-suball > span {
	flex: 0 0 auto !important;
	font-size: inherit !important;
	line-height: inherit !important;
}

[data-navpanel] .eq-mnav-sub .eq-mnav-pdf,
.eq-header-navpanel .eq-mnav-sub .eq-mnav-pdf {
	color: var(--eq-green) !important;
}

/* GSAP owns mobile panel item stagger — panel shell stays CSS-driven. */
[data-navpanel].eq-nav-open .eq-mnav-head,
[data-navpanel].eq-nav-open .eq-mnav-list > .eq-mnav-link,
[data-navpanel].eq-nav-open .eq-mnav-list > .eq-mnav-group,
[data-navpanel].eq-nav-open .eq-mnav-foot {
	will-change: opacity, transform;
	min-height: auto;
}

/* ------------------------------------------------------------------ */
/* Who — normal section pad (NOT 100vh). CSS sticky + scrub (no pin). */
/* How — full-viewport sticky scrub (unchanged)                       */
/* Vision — normal pad + sticky shell scrub (no GSAP pin)             */
/* ------------------------------------------------------------------ */
@media (min-width: 701px) {
	[data-rd-who],
	[data-rd-who].rd-pin-section,
	#brx-content > [data-rd-who]:not(#top),
	#brx-content > [data-rd-who].rd-pin-section:not(#top) {
		min-height: 0 !important;
		padding: var(--eq-section-pad-y) var(--eq-section-pad-x) !important;
		box-sizing: border-box;
	}

		/* Who sticky: full-viewport stage + scrub runway (matches How). */
	[data-rd-who].rd-pin-section.is-rd-sticky,
	#brx-content > [data-rd-who].rd-pin-section.is-rd-sticky:not(#top) {
		position: relative;
		min-height: calc(100vh + var(--rd-pin-run, 240vh)) !important;
		padding: 0 var(--eq-section-pad-x) !important;
		align-items: stretch;
		box-sizing: border-box;
	}

	/* Kill Bricks 100vh on the who stage — content height only (non-sticky only). */
	[data-rd-who]:not(.is-rd-sticky) .rd-who-pin.brxe-div,
	[data-rd-who]:not(.is-rd-sticky) [data-rd-who-pin],
	[data-rd-who]:not(.is-rd-sticky) .rd-pin-stage {
		min-height: 0 !important;
		height: auto !important;
	}

	[data-rd-who].is-rd-sticky > .rd-pin-stage,
	[data-rd-who].is-rd-sticky > [data-rd-who-pin] {
		position: sticky;
		top: 0;
		z-index: 2;
		min-height: 100vh;
		height: 100vh !important;
		width: 100%;
		box-sizing: border-box;
		display: flex;
		flex-direction: column;
		justify-content: center;
		padding-block: clamp(24px, 6vh, var(--eq-section-pad-y));
		align-self: flex-start;
		overflow: hidden;
	}
/* Who — mobile pins too (reference behaviour): single column, stack travels. */
@media (max-width: 700px) {
	[data-rd-who].rd-pin-section.is-rd-sticky,
	#brx-content > [data-rd-who].rd-pin-section.is-rd-sticky:not(#top) {
		position: relative;
		min-height: calc(100svh + var(--rd-pin-run, 240vh)) !important;
		padding: 0 var(--eq-section-pad-x-mobile, var(--eq-section-pad-x)) !important;
		align-items: stretch;
		box-sizing: border-box;
	}

	[data-rd-who].is-rd-sticky > .rd-pin-stage,
	[data-rd-who].is-rd-sticky > [data-rd-who-pin] {
		position: sticky;
		top: 0;
		z-index: 2;
		min-height: 100svh;
		height: 100svh !important;
		width: 100%;
		box-sizing: border-box;
		display: flex;
		flex-direction: column;
		justify-content: center;
		padding-block: clamp(
			16px,
			4svh,
			var(--eq-section-pad-y-mobile, var(--eq-section-pad-y))
		);
		align-self: flex-start;
		overflow: hidden;
	}

	html.rd-st-measuring [data-rd-who].is-rd-sticky > .rd-pin-stage,
	html.rd-st-measuring [data-rd-who].is-rd-sticky > [data-rd-who-pin] {
		position: relative !important;
		top: auto !important;
	}

	/* GSAP scrub owns opacity — CSS transition sticks it at 0. */
	.rd-motion-ready [data-rd-who-card],
	.rd-motion-ready .rd-who-card {
		transition: none !important;
		will-change: transform, opacity, filter;
	}
}
	html.rd-st-measuring [data-rd-who].is-rd-sticky > .rd-pin-stage,
	html.rd-st-measuring [data-rd-who].is-rd-sticky > [data-rd-who-pin],
	html.rd-st-measuring [data-rd-who].is-rd-sticky .rd-pin-stage--content {
		position: relative !important;
		top: auto !important;
	}

	/* GSAP scrub owns opacity — CSS transition restarts every tick and sticks at 0. */
	.rd-motion-ready [data-rd-who-card],
	.rd-motion-ready .rd-who-card {
		transition: none !important;
		will-change: transform, opacity, filter;
	}

	/* How: viewport sticky stage (kept). */
	[data-rd-how].rd-pin-section.is-rd-sticky {
		position: relative;
		min-height: calc(100vh + var(--rd-pin-run, 240vh));
		align-items: stretch;
	}

	[data-rd-how].rd-pin-section.is-rd-sticky > .rd-pin-stage,
	[data-rd-how].rd-pin-section.is-rd-sticky > [data-rd-how-pin],
	[data-rd-how].rd-pin-section.is-rd-sticky .rd-pin-stage {
		position: sticky;
		top: 0;
		z-index: 2;
		min-height: 100vh;
		width: 100%;
		box-sizing: border-box;
		align-self: flex-start;
	}

	html.rd-st-measuring [data-rd-how].rd-pin-section.is-rd-sticky > .rd-pin-stage,
	html.rd-st-measuring [data-rd-how].rd-pin-section.is-rd-sticky > [data-rd-how-pin],
	html.rd-st-measuring [data-rd-how].rd-pin-section.is-rd-sticky .rd-pin-stage {
		position: relative !important;
		top: auto !important;
	}

	/* Vision sticky shell — runway via min-height (content box), not padding. */
	[data-rd-vision].rd-pin-section.is-rd-sticky,
	.rd-vision.rd-pin-section.is-rd-sticky,
	#brx-content > [data-rd-vision].is-rd-sticky:not(#top),
	#brx-content > section.rd-vision.is-rd-sticky:not(#top) {
		position: relative;
		min-height: calc(
			var(--rd-vision-stage-h, 36rem) + var(--rd-pin-run, 0px) +
				(var(--eq-section-pad-y) * 2)
		) !important;
		padding: var(--eq-section-pad-y) var(--eq-section-pad-x) !important;
		box-sizing: border-box;
	}

	[data-rd-vision].is-rd-sticky > .rd-pin-stage,
	[data-rd-vision].is-rd-sticky .rd-vision-grid.rd-pin-stage,
	[data-rd-vision].is-rd-sticky .rd-shell.rd-pin-stage,
	.rd-vision.is-rd-sticky > .rd-pin-stage,
	.rd-vision.is-rd-sticky .rd-vision-grid.rd-pin-stage {
		position: sticky;
		top: var(--rd-sticky-top, 72px);
		z-index: 2;
		width: 100%;
		box-sizing: border-box;
		align-self: flex-start;
	}

	html.rd-st-measuring [data-rd-vision].is-rd-sticky > .rd-pin-stage,
	html.rd-st-measuring [data-rd-vision].is-rd-sticky .rd-vision-grid.rd-pin-stage,
	html.rd-st-measuring [data-rd-vision].is-rd-sticky .rd-shell.rd-pin-stage,
	html.rd-st-measuring .rd-vision.is-rd-sticky > .rd-pin-stage,
	html.rd-st-measuring .rd-vision.is-rd-sticky .rd-vision-grid.rd-pin-stage {
		position: relative !important;
		top: auto !important;
	}
}

@media (max-width: 700px) {
	[data-rd-who],
	#brx-content > [data-rd-who]:not(#top) {
		min-height: 0 !important;
		padding: var(--eq-section-pad-y-mobile, var(--eq-section-pad-y))
			var(--eq-section-pad-x-mobile, var(--eq-section-pad-x)) !important;
	}

	[data-rd-how].rd-pin-section.is-rd-sticky {
		min-height: 0;
	}

	[data-rd-how].rd-pin-section .rd-pin-stage,
	[data-rd-how].rd-pin-section [data-rd-how-pin] {
		position: static;
		min-height: 0;
	}
}

/* ------------------------------------------------------------------ */
/* Vision — normal pad (NOT 100vh). Pin/scrub owned by GSAP.          */
/* ------------------------------------------------------------------ */
.rd-vision .rd-char {
	display: inline;
	color: rgba(26, 29, 27, 0.18);
}

.rd-vision-media {
	--rd-vision-media-shine: 0;
	position: relative;
	overflow: hidden;
	isolation: isolate;
}

.rd-vision-media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	will-change: transform;
}

.rd-vision-media--hover {
	cursor: none;
}

.rd-vision-media--hover::after {
	content: '';
	position: absolute;
	inset: 0;
	pointer-events: none;
	background: linear-gradient(
		145deg,
		rgba(255, 255, 255, var(--rd-vision-media-shine, 0)) 0%,
		transparent 48%
	);
	transition: opacity 0.85s ease;
	z-index: 1;
}

.rd-vision,
.rd-vision.brxe-section,
#brx-content > section.rd-vision:not(#top) {
	min-height: 0 !important;
	padding: var(--eq-section-pad-y) var(--eq-section-pad-x) !important;
	box-sizing: border-box;
}

@media (max-width: 700px) {
	.rd-vision,
	.rd-vision.brxe-section,
	#brx-content > section.rd-vision:not(#top) {
		padding: var(--eq-section-pad-y-mobile, var(--eq-section-pad-y))
			var(--eq-section-pad-x-mobile, var(--eq-section-pad-x)) !important;
	}
}

@media (hover: hover) and (pointer: fine) {
	.rd-vision-media--hover {
		cursor: pointer;
	}
}


/* ------------------------------------------------------------------ */
/* Projects archive + single project — approved comps                 */
/*                                                                    */
/* Classes are namespaced (eq-pj-* archive, eq-pd-* project detail,    */
/* eq-ph-* project hero) because Bricks prints its seeded component    */
/* CSS after this stylesheet — reusing the seeded names would need a   */
/* specificity override on every single rule. The seeded section       */
/* wrappers (.eq-arch-wrap, .eq-pg-wrap, .eq-proj-*) stay as the       */
/* replacement anchors and are retuned under a body template class.    */
/* ------------------------------------------------------------------ */

.eq-pj-dash {
	display: block;
	flex: none;
	width: 14px;
	height: 1px;
	background: var(--eq-gold);
}

/* ---------------------------------------------------------------- */
/* Archive — seeded chrome                                          */
/* ---------------------------------------------------------------- */
body.eq-tpl-projects .eq-arch-wrap {
	padding-top: var(--eq-section-pad-y-fluid);
	padding-bottom: var(--eq-space-7);
	border-top: 0;
}

/* The portfolio section carries three full-bleed bands (toolbar, grid, staging),
   so it drops its own horizontal padding and each band supplies the gutter.
   Bleeding with negative margins instead would silently break wherever Bricks
   changes the section padding at one of its own breakpoints. */
body.eq-tpl-projects .eq-pg-wrap {
	--eq-pj-gutter: var(--eq-section-pad-x);
	padding-top: 0;
	padding-bottom: 0;
	padding-left: 0 !important;
	padding-right: 0 !important;
	border-top: 0;
}

/* ---------------------------------------------------------------- */
/* Archive — intro and counters                                     */
/* ---------------------------------------------------------------- */
.eq-pj-intro {
	width: 100%;
	max-width: var(--eq-shell);
	margin: 0 auto;
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
	gap: var(--eq-space-f6) var(--eq-space-8);
	align-items: end;
}

.eq-pj-kicker {
	display: block;
	margin-bottom: var(--eq-rel-eyebrow-headline);
	font-family: var(--eq-font-mono);
	font-size: var(--eq-text-label);
	line-height: var(--eq-leading-body);
	letter-spacing: var(--eq-tracking-wider);
	text-transform: uppercase;
	color: var(--eq-gray-faint);
}

.eq-pj-intro-lead {
	margin: 0 0 var(--eq-space-4);
	max-width: 56ch;
	font-size: var(--eq-text-lead);
	line-height: var(--eq-leading-body);
	color: var(--eq-ink);
	text-wrap: pretty;
}

.eq-pj-intro-note {
	margin: 0;
	max-width: 58ch;
	font-size: var(--eq-text-body);
	line-height: var(--eq-leading-body);
	color: var(--eq-gray);
	text-wrap: pretty;
}

.eq-pj-stats {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1px;
	background: var(--eq-paper-dim);
	border: 1px solid var(--eq-paper-dim);
}

.eq-pj-stat {
	display: block;
	background: var(--eq-white);
	padding: var(--eq-space-f5) var(--eq-space-f4);
}

.eq-pj-stat-n {
	display: block;
	font-family: var(--eq-font-display);
	font-size: clamp(1.875rem, 3.4vw, 2.75rem);
	line-height: 0.95;
	letter-spacing: -0.045em;
	color: var(--eq-green);
	font-variant-numeric: tabular-nums;
}

.eq-pj-stat-k {
	display: block;
	margin-top: var(--eq-space-3);
	font-family: var(--eq-font-mono);
	font-size: var(--eq-text-label);
	line-height: var(--eq-leading-body);
	letter-spacing: var(--eq-tracking-wide);
	text-transform: uppercase;
	color: var(--eq-gray-faint);
}
.eq-inner-hero-content > .eq-inner-title {
	font-size :var(--eq-text-display);
}
.brxe-div.eq-inner-hero-content {
    padding: calc(var(--eq-header-height) + var(--eq-space-6)) var(--eq-section-pad-x) var(--eq-space-6);
}
/* ---------------------------------------------------------------- */
/* Archive — sticky toolbar                                         */
/* ---------------------------------------------------------------- */
.eq-pj-bar {
	/* The seeded section is a wrapping column flex container, so align-self has
	   no effect — each band needs an explicit width or it sizes to max-content. */
	width: 100%;
	
	top: calc(var(--eq-header-height) + var(--eq-admin-offset));
	z-index: 40;
	margin: 0 0 var(--eq-space-7);
	padding: 0 var(--eq-pj-gutter);
	background: rgba(255, 255, 255, 0.96);
	backdrop-filter: blur(10px);
	border-top: 1px solid var(--eq-border-soft);
	border-bottom: 1px solid var(--eq-border-soft);
}
@media (min-width: 991px) {
	.eq-pj-bar {
		position: sticky;
	}
}
.eq-pj-bar-box {
	width: 100%;
	max-width: var(--eq-shell);
	margin: 0 auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--eq-space-5);
	flex-wrap: wrap;
	padding: var(--eq-space-4) 0;
}

.eq-pj-filters {
	display: flex;
	align-items: center;
	gap: var(--eq-space-f3) var(--eq-space-f4);
	flex-wrap: wrap;
	/* Must be shrinkable, or the chip row forces the toolbar wider than the page. */
	flex: 1 1 260px;
	min-width: 0;
}

.eq-pj-bar-label {
	font-family: var(--eq-font-mono);
	font-size: var(--eq-text-label);
	letter-spacing: var(--eq-tracking-wider);
	text-transform: uppercase;
	color: var(--eq-gray-faint);
}

.eq-pj-filter {
	appearance: none;
	display: inline-flex;
	align-items: baseline;
	gap: var(--eq-space-2);
	background: transparent;
	border: 0;
	border-bottom: 1px solid transparent;
	color: var(--eq-gray-faint);
	padding: var(--eq-space-1) 0 var(--eq-space-2);
	font-family: var(--eq-font-mono);
	font-size: var(--eq-text-label);
	letter-spacing: var(--eq-tracking-nav);
	text-transform: uppercase;
	cursor: pointer;
	transition: color var(--eq-duration-standard) var(--eq-ease),
		border-color var(--eq-duration-standard) var(--eq-ease);
}

.eq-pj-filter:hover,
.eq-pj-filter.is-on {
	color: var(--eq-ink);
}

.eq-pj-filter.is-on {
	border-bottom-color: var(--eq-gold);
}

.eq-pj-filter-n {
	font-size: 0.625rem;
	letter-spacing: 0.1em;
	color: var(--eq-gold);
	font-variant-numeric: tabular-nums;
}

.eq-pj-bar-right {
	display: flex;
	align-items: center;
	gap: var(--eq-space-4);
}

.eq-pj-count {
	font-family: var(--eq-font-mono);
	font-size: var(--eq-text-label);
	letter-spacing: var(--eq-tracking-wide);
	text-transform: uppercase;
	color: var(--eq-gray-faint);
	white-space: nowrap;
}

.eq-pj-views {
	display: flex;
	flex: none;
}

.eq-pj-view {
	appearance: none;
	background: var(--eq-white);
	border: 1px solid var(--eq-paper-dim);
	color: var(--eq-gray);
	padding: var(--eq-space-2) var(--eq-space-4);
	font-family: var(--eq-font-mono);
	font-size: var(--eq-text-label);
	letter-spacing: var(--eq-tracking-nav);
	text-transform: uppercase;
	cursor: pointer;
	transition: background var(--eq-duration-standard) var(--eq-ease),
		color var(--eq-duration-standard) var(--eq-ease),
		border-color var(--eq-duration-standard) var(--eq-ease);
}

.eq-pj-view + .eq-pj-view {
	border-left: 0;
}

.eq-pj-view.is-on {
	background: var(--eq-ink);
	border-color: var(--eq-ink);
	color: var(--eq-white);
}

/* ---------------------------------------------------------------- */
/* Archive + "more work" — project card                             */
/* ---------------------------------------------------------------- */
.eq-pj-box {
	width: 100%;
	max-width: calc(var(--eq-shell) + 2 * var(--eq-pj-gutter));
	margin: 0 auto;
	padding: 0 var(--eq-pj-gutter);
}

/* An explicit display value would otherwise defeat the hidden attribute. */
.eq-pj-grid[hidden],
.eq-pj-index[hidden],
.eq-pj-card[hidden],
.eq-pj-row[hidden] {
	display: none;
}

.eq-pj-grid {
	--eq-pj-h-tall: clamp(300px, 46vh, 540px);
	--eq-pj-h-mid: clamp(240px, 34vh, 400px);
	--eq-pj-h-even: clamp(260px, 38vh, 460px);
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	gap: var(--eq-space-f6) var(--eq-space-f5);
	margin-bottom: var(--eq-space-9);
}

.eq-pj-card {
	grid-column: span var(--eq-pj-span, 4);
	display: flex;
	flex-direction: column;
	color: var(--eq-ink);
	transition: color var(--eq-duration-deliberate) var(--eq-ease);
}

.eq-pj-card.is-filtered-out {
	display: none;
}

.eq-pj-card-media {
	position: relative;
	display: block;
	overflow: hidden;
	background: var(--eq-paper);
}

.eq-pj-card-img {
	display: block;
	width: 100%;
	height: var(--eq-pj-h, clamp(260px, 38vh, 460px));
	object-fit: cover;
	transform: scale(1.001);
	filter: saturate(0.92);
	transition: transform 1.15s var(--eq-ease-out),
		filter var(--eq-duration-deliberate) var(--eq-ease);
}

.eq-pj-card-scrim {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		to top,
		rgba(16, 65, 43, 0.28),
		rgba(16, 65, 43, 0) 55%
	);
	opacity: 0;
	transition: opacity var(--eq-duration-deliberate) var(--eq-ease);
	pointer-events: none;
}

.eq-pj-card-badge {
	position: absolute;
	right: var(--eq-space-4);
	top: var(--eq-space-4);
	width: 40px;
	height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--eq-white);
	color: var(--eq-green);
	font-family: var(--eq-font-mono);
	font-size: var(--eq-text-small);
	opacity: 0;
	transform: translateY(-6px) rotate(-8deg);
	transition: opacity var(--eq-duration-deliberate) var(--eq-ease),
		transform var(--eq-duration-deliberate) var(--eq-ease);
	pointer-events: none;
}

.eq-pj-card-num {
	position: absolute;
	left: 0;
	bottom: 0;
	background: var(--eq-white);
	color: var(--eq-ink);
	padding: var(--eq-space-2) var(--eq-space-3);
	font-family: var(--eq-font-mono);
	font-size: var(--eq-text-label);
	letter-spacing: var(--eq-tracking-nav);
	font-variant-numeric: tabular-nums;
}

.eq-pj-card-cta {
	position: absolute;
	right: var(--eq-space-4);
	bottom: var(--eq-space-4);
	background: var(--eq-green);
	color: var(--eq-white);
	padding: var(--eq-space-2) var(--eq-space-3);
	font-family: var(--eq-font-mono);
	font-size: var(--eq-text-label);
	letter-spacing: var(--eq-tracking-nav);
	text-transform: uppercase;
	opacity: 0;
	transform: translateY(8px);
	transition: opacity var(--eq-duration-deliberate) var(--eq-ease),
		transform var(--eq-duration-deliberate) var(--eq-ease);
	pointer-events: none;
}

.eq-pj-card-body {
	display: block;
	margin-top: var(--eq-space-4);
	padding-top: var(--eq-space-4);
	border-top: 1px solid var(--eq-paper-dim);
	transition: border-color var(--eq-duration-deliberate) var(--eq-ease);
}

.eq-pj-card-row {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: var(--eq-space-3);
}

.eq-pj-card-tag,
.eq-pj-card-when {
	font-family: var(--eq-font-mono);
	font-size: var(--eq-text-label);
	line-height: var(--eq-leading-body);
	letter-spacing: var(--eq-tracking-wide);
	text-transform: uppercase;
	color: var(--eq-gray-faint);
}

.eq-pj-card-when {
	flex: none;
	text-align: right;
}

.eq-pj-card-title {
	display: block;
	margin: var(--eq-space-3) 0 var(--eq-space-2);
	font-family: var(--eq-font-display);
	font-weight: var(--eq-weight-medium);
	font-size: clamp(1.1875rem, 2.1vw, 1.625rem);
	line-height: var(--eq-leading-heading);
	letter-spacing: -0.03em;
}

.eq-pj-card-desc {
	display: block;
	max-width: 44ch;
	font-size: var(--eq-text-small);
	line-height: var(--eq-leading-body);
	color: var(--eq-gray);
	text-wrap: pretty;
}

.eq-pj-card-loc {
	display: flex;
	align-items: center;
	gap: var(--eq-space-3);
	margin-top: var(--eq-space-4);
	font-family: var(--eq-font-mono);
	font-size: var(--eq-text-label);
	letter-spacing: var(--eq-tracking-nav);
	text-transform: uppercase;
	color: var(--eq-gray-faint);
}

.eq-pj-card:focus-visible .eq-pj-card-badge,
.eq-pj-card:focus-visible .eq-pj-card-cta {
	opacity: 1;
	transform: none;
}

@media (hover: hover) and (pointer: fine) {
	.eq-pj-card:hover {
		color: var(--eq-green);
	}

	.eq-pj-card:hover .eq-pj-card-img {
		transform: scale(1.055);
		filter: saturate(1);
	}

	.eq-pj-card:hover .eq-pj-card-scrim {
		opacity: 1;
	}

	.eq-pj-card:hover .eq-pj-card-badge,
	.eq-pj-card:hover .eq-pj-card-cta {
		opacity: 1;
		transform: none;
	}

	.eq-pj-card:hover .eq-pj-card-body {
		border-top-color: var(--eq-green);
	}
}

/* ---------------------------------------------------------------- */
/* Archive — index view                                             */
/* ---------------------------------------------------------------- */
.eq-pj-index {
	margin-bottom: var(--eq-space-9);
}

.eq-pj-index-head,
.eq-pj-row {
	display: grid;
	grid-template-columns:
		78px minmax(0, 2.1fr) minmax(0, 1fr)
		minmax(0, 1fr) 120px 26px;
	gap: var(--eq-space-4);
}

.eq-pj-index-head {
	padding-bottom: var(--eq-space-3);
	font-family: var(--eq-font-mono);
	font-size: var(--eq-text-label);
	letter-spacing: var(--eq-tracking-wider);
	text-transform: uppercase;
	color: var(--eq-gray-faint);
}

.eq-pj-row {
	align-items: center;
	padding: var(--eq-space-5) 0;
	border-top: 1px solid var(--eq-paper-dim);
	color: var(--eq-ink);
	transition: padding-left var(--eq-duration-deliberate) var(--eq-ease),
		background var(--eq-duration-deliberate) var(--eq-ease),
		color var(--eq-duration-deliberate) var(--eq-ease);
}

.eq-pj-row.is-filtered-out {
	display: none;
}

.eq-pj-row-num {
	font-family: var(--eq-font-display);
	font-size: clamp(1.75rem, 3vw, 2.5rem);
	line-height: 0.9;
	letter-spacing: -0.05em;
	color: var(--eq-green);
	font-variant-numeric: tabular-nums;
}

.eq-pj-row-main {
	display: flex;
	align-items: center;
	gap: var(--eq-space-5);
	min-width: 0;
}

.eq-pj-row-strip {
	display: block;
	flex: none;
	width: 0;
	height: 52px;
	overflow: hidden;
	background: var(--eq-paper);
	transition: width var(--eq-duration-deliberate) var(--eq-ease);
}

.eq-pj-row-strip img {
	display: block;
	width: 78px;
	height: 52px;
	object-fit: cover;
	filter: saturate(0.92);
}

.eq-pj-row-text {
	min-width: 0;
}

.eq-pj-row-title {
	display: block;
	font-family: var(--eq-font-display);
	font-weight: var(--eq-weight-medium);
	font-size: clamp(1.125rem, 1.9vw, 1.4375rem);
	line-height: var(--eq-leading-heading);
	letter-spacing: -0.025em;
}

.eq-pj-row-desc {
	display: block;
	margin-top: var(--eq-space-2);
	max-width: 46ch;
	font-size: var(--eq-text-small);
	line-height: var(--eq-leading-body);
	color: var(--eq-gray);
}

.eq-pj-row-tag {
	font-family: var(--eq-font-mono);
	font-size: var(--eq-text-label);
	line-height: var(--eq-leading-body);
	letter-spacing: var(--eq-tracking-wide);
	text-transform: uppercase;
	color: var(--eq-gray);
}

.eq-pj-row-loc {
	font-size: var(--eq-text-small);
	color: var(--eq-gray);
}

.eq-pj-row-when {
	font-family: var(--eq-font-mono);
	font-size: var(--eq-text-label);
	letter-spacing: var(--eq-tracking-label);
	text-transform: uppercase;
	color: var(--eq-gray-faint);
}

.eq-pj-row-arrow {
	font-family: var(--eq-font-mono);
	font-size: var(--eq-text-small);
	color: var(--eq-border-mute);
	text-align: right;
	transition: color var(--eq-duration-standard) var(--eq-ease),
		transform var(--eq-duration-deliberate) var(--eq-ease);
}

.eq-pj-index-end {
	display: block;
	border-top: 1px solid var(--eq-paper-dim);
}

@media (hover: hover) and (pointer: fine) {
	.eq-pj-row:hover {
		padding-left: var(--eq-space-3);
		background: var(--eq-paper-lightest);
	}

	.eq-pj-row:hover .eq-pj-row-strip {
		width: 78px;
	}

	.eq-pj-row:hover .eq-pj-row-arrow {
		color: var(--eq-green);
		transform: translateX(4px);
	}
}

/* ---------------------------------------------------------------- */
/* Archive — staging band                                           */
/* ---------------------------------------------------------------- */
.eq-pj-staged {
	width: 100%;
	padding: var(--eq-section-pad-y-fluid) var(--eq-pj-gutter);
	background: var(--eq-ink-deep);
	color: var(--eq-white);
}

.eq-pj-staged-box {
	width: 100%;
	max-width: var(--eq-shell);
	margin: 0 auto;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: var(--eq-space-f6) var(--eq-space-8);
	align-items: center;
}

.eq-pj-staged-kicker {
	display: block;
	margin-bottom: var(--eq-rel-eyebrow-headline);
	font-family: var(--eq-font-mono);
	font-size: var(--eq-text-label);
	letter-spacing: var(--eq-tracking-wider);
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.6);
}

.eq-pj-staged-lead {
	margin: 0;
	max-width: 38ch;
	font-family: var(--eq-font-display);
	font-size: clamp(1.3125rem, 2.3vw, 2rem);
	line-height: 1.32;
	letter-spacing: -0.028em;
	color: var(--eq-white);
	text-wrap: pretty;
}

.eq-pj-pills {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: var(--eq-space-4) var(--eq-space-f6);
}

.eq-pj-pill {
	display: block;
	padding-top: var(--eq-space-4);
	border-top: 2px solid rgba(255, 255, 255, 0.2);
}

.eq-pj-pill-k {
	display: block;
	font-family: var(--eq-font-mono);
	font-size: var(--eq-text-label);
	letter-spacing: var(--eq-tracking-wide);
	color: var(--eq-gold);
}

.eq-pj-pill-t {
	display: block;
	margin-top: var(--eq-space-2);
	font-family: var(--eq-font-display);
	font-size: 1rem;
	letter-spacing: -0.02em;
	color: var(--eq-white);
}

.eq-pj-pill-d {
	display: block;
	margin-top: var(--eq-space-2);
	font-size: var(--eq-text-small);
	line-height: var(--eq-leading-body);
	color: rgba(255, 255, 255, 0.66);
}

/* ---------------------------------------------------------------- */
/* Single project — hero                                            */
/* ---------------------------------------------------------------- */
body.eq-tpl-project .eq-inner-hero {
	min-height: clamp(460px, 68vh, 760px);
}

body.eq-tpl-project .eq-inner-hero-content {
	padding-bottom: 0;
}

body.eq-tpl-project .eq-inner-title {
	max-width: 16ch;
}

.eq-ph-crumbs {
	display: inline-flex;
	align-items: center;
	gap: var(--eq-space-3);
	flex-wrap: wrap;
	margin-bottom: var(--eq-space-f4);
	font-family: var(--eq-font-mono);
	font-size: var(--eq-text-label);
	letter-spacing: var(--eq-tracking-wider);
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.72);
}

.eq-ph-crumb {
	color: rgba(255, 255, 255, 0.72);
	transition: color var(--eq-duration-standard) var(--eq-ease);
}

.eq-ph-crumb:hover {
	color: var(--eq-white);
}

.eq-ph-dash {
	display: block;
	flex: none;
	width: 16px;
	height: 1px;
	background: var(--eq-gold);
}

.eq-ph-count {
	color: var(--eq-gold);
	font-variant-numeric: tabular-nums;
}

.eq-ph-strip {
	display: flex;
	flex-wrap: wrap;
	margin: var(--eq-space-f6) calc(-1 * var(--eq-section-pad-x)) 0;
	border-top: 1px solid rgba(255, 255, 255, 0.18);
	background: rgba(8, 18, 13, 0.34);
	backdrop-filter: blur(6px);
}

.eq-ph-cell {
	flex: 1 1 200px;
	padding: var(--eq-space-f4) var(--eq-space-f5);
	border-right: 1px solid rgba(255, 255, 255, 0.14);
}

.eq-ph-n {
	display: block;
	font-family: var(--eq-font-display);
	font-size: clamp(1.125rem, 2vw, 1.5rem);
	line-height: 1.15;
	letter-spacing: -0.03em;
	color: var(--eq-white);
}

.eq-ph-k {
	display: block;
	margin-top: var(--eq-space-3);
	font-family: var(--eq-font-mono);
	font-size: var(--eq-text-label);
	letter-spacing: var(--eq-tracking-wide);
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.58);
}

/* ---------------------------------------------------------------- */
/* Single project — docket + narrative                              */
/* ---------------------------------------------------------------- */
body.eq-tpl-project .eq-proj-body {
	padding-top: var(--eq-section-pad-y-fluid);
	padding-bottom: var(--eq-section-pad-y-fluid);
}

.eq-pd-docket {
	width: 100%;
	max-width: var(--eq-shell);
	margin: 0 auto;
	display: grid;
	grid-template-columns: clamp(250px, 23vw, 330px) minmax(0, 1fr);
	gap: var(--eq-space-f6) var(--eq-space-8);
	align-items: start;
}

.eq-pd-aside {
	position: sticky;
	top: calc(
		var(--eq-header-height) + var(--eq-space-6) + var(--eq-admin-offset)
	);
	display: flex;
	flex-direction: column;
	border: 1px solid var(--eq-paper-dim);
	background: var(--eq-paper-lightest);
}

.eq-pd-aside-rule {
	display: block;
	height: 2px;
	background: var(--eq-gold);
}

.eq-pd-aside-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--eq-space-3);
	padding: var(--eq-space-4);
	border-bottom: 1px solid var(--eq-paper-dim);
	font-family: var(--eq-font-mono);
	font-size: var(--eq-text-label);
	letter-spacing: var(--eq-tracking-wider);
	text-transform: uppercase;
	color: var(--eq-gray-faint);
}

.eq-pd-aside-n {
	color: var(--eq-green);
	letter-spacing: var(--eq-tracking-nav);
	font-variant-numeric: tabular-nums;
}

.eq-pd-fact {
	display: grid;
	grid-template-columns: 78px minmax(0, 1fr);
	gap: var(--eq-space-3);
	align-items: baseline;
	padding: var(--eq-space-3) var(--eq-space-4);
	border-bottom: 1px solid var(--eq-border-soft);
}

.eq-pd-fact-k {
	font-family: var(--eq-font-mono);
	font-size: var(--eq-text-label);
	letter-spacing: var(--eq-tracking-wide);
	text-transform: uppercase;
	color: var(--eq-gray-faint);
}

.eq-pd-fact-v {
	font-size: var(--eq-text-small);
	line-height: 1.45;
	color: var(--eq-ink);
}

.eq-pd-aside-cta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--eq-space-3);
	margin-top: auto;
	background: var(--eq-green);
	color: var(--eq-white);
	padding: var(--eq-space-4);
	font-family: var(--eq-font-mono);
	font-size: var(--eq-text-label);
	letter-spacing: var(--eq-tracking-nav);
	text-transform: uppercase;
	transition: background var(--eq-duration-standard) var(--eq-ease);
}

.eq-pd-aside-cta:hover {
	background: var(--eq-green-hover);
	color: var(--eq-white);
}

.eq-pd-aside-cta span {
	color: var(--eq-gold);
}

.eq-pd-block + .eq-pd-block {
	margin-top: var(--eq-space-9);
}

.eq-pd-kicker {
	display: block;
	margin-bottom: var(--eq-rel-eyebrow-headline);
	font-family: var(--eq-font-mono);
	font-size: var(--eq-text-label);
	line-height: var(--eq-leading-body);
	letter-spacing: var(--eq-tracking-wider);
	text-transform: uppercase;
	color: var(--eq-gray-faint);
}

.eq-pd-kicker--dark {
	color: rgba(255, 255, 255, 0.6);
}

.eq-pd-h2 {
	margin: 0 0 var(--eq-space-5);
	max-width: 26ch;
	font-family: var(--eq-font-display);
	font-weight: var(--eq-weight-medium);
	font-size: clamp(1.625rem, 3.2vw, 2.75rem);
	line-height: 1.08;
	letter-spacing: -0.032em;
	color: var(--eq-ink);
	text-wrap: balance;
}

.eq-pd-h2--dark {
	color: var(--eq-white);
}

.eq-pd-cols {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: var(--eq-space-f6);
}

.eq-pd-desc {
	margin: 0;
	font-size: var(--eq-text-body);
	line-height: 1.72;
	color: var(--eq-ink);
	text-wrap: pretty;
}

.eq-pd-desc-2 {
	margin: 0;
	font-size: var(--eq-text-small);
	line-height: 1.75;
	color: var(--eq-gray);
	text-wrap: pretty;
}

.eq-pd-quote {
	margin: var(--eq-space-f6) 0 0;
	padding: var(--eq-space-f5) var(--eq-space-f6);
	background: var(--eq-paper-lightest);
	border-left: 2px solid var(--eq-gold);
}

.eq-pd-quote-p {
	margin: 0;
	max-width: 48ch;
	font-family: var(--eq-font-display);
	font-size: clamp(1.125rem, 1.8vw, 1.5625rem);
	line-height: 1.36;
	letter-spacing: -0.024em;
	color: var(--eq-ink);
	text-wrap: pretty;
}

.eq-pd-quote-by {
	display: flex;
	align-items: center;
	gap: var(--eq-space-3);
	margin-top: var(--eq-space-4);
	font-family: var(--eq-font-mono);
	font-size: var(--eq-text-label);
	letter-spacing: var(--eq-tracking-wide);
	text-transform: uppercase;
	color: var(--eq-gray-faint);
}

/* ---------------------------------------------------------------- */
/* Single project — delivery sequence                               */
/* ---------------------------------------------------------------- */
.eq-pd-stage {
	display: grid;
	grid-template-columns: 48px minmax(0, 1fr);
	gap: var(--eq-space-f4);
	padding-bottom: var(--eq-space-f5);
}

.eq-pd-stage-line {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
}

.eq-pd-stage-node {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	flex: none;
	background: var(--eq-paper-lightest);
	border: 1px solid var(--eq-border-mute);
	font-family: var(--eq-font-mono);
	font-size: var(--eq-text-label);
	letter-spacing: var(--eq-tracking-label);
	color: var(--eq-gray-faint);
	transition: background var(--eq-duration-deliberate) var(--eq-ease),
		border-color var(--eq-duration-deliberate) var(--eq-ease),
		color var(--eq-duration-deliberate) var(--eq-ease);
}

.eq-pd-stage.is-on .eq-pd-stage-node {
	background: var(--eq-green);
	border-color: var(--eq-green);
	color: var(--eq-white);
}

.eq-pd-stage-rail {
	display: block;
	flex: 1;
	width: 1px;
	margin-top: var(--eq-space-2);
	background: var(--eq-paper-dim);
}

.eq-pd-stage:last-child .eq-pd-stage-rail {
	display: none;
}

.eq-pd-stage-body {
	padding-top: 2px;
}

.eq-pd-stage-row {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: var(--eq-space-3);
	flex-wrap: wrap;
}

.eq-pd-stage-t {
	font-family: var(--eq-font-display);
	font-weight: var(--eq-weight-medium);
	font-size: clamp(1.1875rem, 1.9vw, 1.5rem);
	line-height: var(--eq-leading-heading);
	letter-spacing: -0.028em;
	color: var(--eq-ink);
}

.eq-pd-stage-w {
	font-family: var(--eq-font-mono);
	font-size: var(--eq-text-label);
	letter-spacing: var(--eq-tracking-nav);
	text-transform: uppercase;
	color: var(--eq-gray-faint);
}

.eq-pd-stage-d {
	display: block;
	margin-top: var(--eq-space-2);
	max-width: 52ch;
	font-size: var(--eq-text-small);
	line-height: var(--eq-leading-body);
	color: var(--eq-gray);
	text-wrap: pretty;
}

/* ---------------------------------------------------------------- */
/* Single project — site record                                     */
/* ---------------------------------------------------------------- */
body.eq-tpl-project .eq-proj-gallery {
	margin-left: calc(-1 * var(--eq-rail-width));
	width: calc(100% + var(--eq-rail-width));
	max-width: none;
	padding: var(--eq-section-pad-y-fluid) var(--eq-section-pad-x)
		var(--eq-section-pad-y-fluid)
		calc(var(--eq-rail-width) + var(--eq-section-pad-x));
	background: var(--eq-green-deep);
}

.eq-pd-rec {
	width: 100%;
	max-width: var(--eq-shell);
	margin: 0 auto;
}

.eq-pd-rec-head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: var(--eq-space-f5);
	flex-wrap: wrap;
	margin-bottom: var(--eq-space-f6);
}

.eq-pd-rec-tools {
	display: flex;
	align-items: center;
	gap: var(--eq-space-f4);
	flex-wrap: wrap;
}

.eq-pd-rec-count {
	font-family: var(--eq-font-mono);
	font-size: var(--eq-text-label);
	letter-spacing: var(--eq-tracking-wide);
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.5);
}

.eq-pd-rec-open {
	appearance: none;
	display: inline-flex;
	align-items: center;
	gap: var(--eq-space-3);
	background: transparent;
	border: 1px solid rgba(255, 255, 255, 0.3);
	color: var(--eq-white);
	padding: var(--eq-space-3) var(--eq-space-4);
	font-family: var(--eq-font-mono);
	font-size: var(--eq-text-label);
	letter-spacing: var(--eq-tracking-nav);
	text-transform: uppercase;
	cursor: pointer;
	transition: background var(--eq-duration-standard) var(--eq-ease),
		border-color var(--eq-duration-standard) var(--eq-ease);
}

.eq-pd-rec-open:hover {
	background: var(--eq-green);
	border-color: var(--eq-green);
}

.eq-pd-rec-open span {
	color: var(--eq-gold);
}

.eq-pd-shots {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	grid-auto-rows: 8px;
	grid-auto-flow: row dense;
	gap: var(--eq-space-f3);
}

.eq-pd-shot {
	grid-column: span var(--eq-shot-cols, 12);
	aspect-ratio: var(--eq-shot-ar, 1.5);
	appearance: none;
	position: relative;
	display: block;
	overflow: hidden;
	padding: 0;
	border: 0;
	background: #12241b;
	cursor: pointer;
}

/* Released per frame, so an undecoded image keeps its fallback ratio and the
   grid can never collapse while it waits. */
.eq-pd-shot.is-measured {
	aspect-ratio: auto;
}

.eq-pd-shot img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transform: scale(1.001);
	filter: saturate(0.86) brightness(0.92);
	transition: transform 1.2s var(--eq-ease-out),
		filter var(--eq-duration-deliberate) var(--eq-ease);
}

.eq-pd-shot-scrim {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		to top,
		rgba(8, 18, 13, 0.78),
		rgba(8, 18, 13, 0.05) 52%,
		rgba(8, 18, 13, 0)
	);
	opacity: 0;
	transition: opacity var(--eq-duration-deliberate) var(--eq-ease);
	pointer-events: none;
}

.eq-pd-shot-n {
	position: absolute;
	left: var(--eq-space-4);
	top: var(--eq-space-3);
	font-family: var(--eq-font-mono);
	font-size: var(--eq-text-label);
	letter-spacing: var(--eq-tracking-wide);
	color: rgba(255, 255, 255, 0.62);
	font-variant-numeric: tabular-nums;
	pointer-events: none;
}

.eq-pd-shot-badge {
	position: absolute;
	right: var(--eq-space-3);
	top: var(--eq-space-3);
	width: 40px;
	height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--eq-white);
	color: var(--eq-green);
	font-family: var(--eq-font-mono);
	font-size: var(--eq-text-small);
	opacity: 0;
	transform: translateY(-6px) rotate(-8deg);
	transition: opacity var(--eq-duration-deliberate) var(--eq-ease),
		transform var(--eq-duration-deliberate) var(--eq-ease);
	pointer-events: none;
}

.eq-pd-shot-cap {
	position: absolute;
	left: var(--eq-space-4);
	right: var(--eq-space-4);
	bottom: var(--eq-space-4);
	display: flex;
	align-items: center;
	gap: var(--eq-space-3);
	text-align: left;
	font-family: var(--eq-font-mono);
	font-size: var(--eq-text-label);
	letter-spacing: var(--eq-tracking-nav);
	text-transform: uppercase;
	color: var(--eq-white);
	opacity: 0;
	transform: translateY(8px);
	transition: opacity var(--eq-duration-deliberate) var(--eq-ease),
		transform var(--eq-duration-deliberate) var(--eq-ease-out);
	pointer-events: none;
}

.eq-pd-shot:focus-visible .eq-pd-shot-badge,
.eq-pd-shot:focus-visible .eq-pd-shot-cap {
	opacity: 1;
	transform: none;
}

@media (hover: hover) and (pointer: fine) {
	.eq-pd-shot:hover img {
		transform: scale(1.05);
		filter: saturate(1) brightness(1);
	}

	.eq-pd-shot:hover .eq-pd-shot-scrim {
		opacity: 1;
	}

	.eq-pd-shot:hover .eq-pd-shot-badge,
	.eq-pd-shot:hover .eq-pd-shot-cap {
		opacity: 1;
		transform: none;
	}
}

/* ---------------------------------------------------------------- */
/* Single project — more work + pager                               */
/* ---------------------------------------------------------------- */
body.eq-tpl-project .eq-proj-nav {
	padding-top: var(--eq-section-pad-y-fluid);
	padding-bottom: var(--eq-space-7);
	background: var(--eq-white);
	border-top: 0;
}

.eq-pd-more {
	width: 100%;
	max-width: var(--eq-shell);
	margin: 0 auto;
}

.eq-pd-more-head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: var(--eq-space-f5);
	flex-wrap: wrap;
	margin-bottom: var(--eq-space-f6);
}

.eq-pd-more-all {
	display: inline-flex;
	align-items: center;
	gap: var(--eq-space-3);
	font-family: var(--eq-font-mono);
	font-size: var(--eq-text-label);
	letter-spacing: var(--eq-tracking-nav);
	text-transform: uppercase;
	color: var(--eq-green);
	padding-bottom: var(--eq-space-1);
	border-bottom: 1px solid var(--eq-green);
	transition: transform var(--eq-duration-deliberate) var(--eq-ease);
}

.eq-pd-more-all:hover {
	transform: translateX(4px);
	color: var(--eq-green-hover);
}

.eq-pd-more-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: var(--eq-space-f6) var(--eq-space-f5);
}

.eq-pd-more-grid .eq-pj-card {
	grid-column: auto;
}

.eq-pd-more-grid .eq-pj-card-img {
	height: clamp(200px, 26vh, 280px);
}

.eq-pd-pager {
	display: flex;
	align-items: stretch;
	flex-wrap: wrap;
	margin-top: var(--eq-space-9);
	border-top: 1px solid var(--eq-border-soft);
}

.eq-pd-pager-link {
	flex: 1 1 260px;
	display: flex;
	flex-direction: column;
	gap: var(--eq-space-3);
	padding: var(--eq-space-f5) 0;
	color: var(--eq-ink);
	transition: padding var(--eq-duration-deliberate) var(--eq-ease),
		color var(--eq-duration-standard) var(--eq-ease);
}

.eq-pd-pager-link--next {
	align-items: flex-end;
	text-align: right;
	border-left: 1px solid var(--eq-border-soft);
	padding-left: var(--eq-space-f6);
}

.eq-pd-pager-k {
	font-family: var(--eq-font-mono);
	font-size: var(--eq-text-label);
	letter-spacing: var(--eq-tracking-wider);
	text-transform: uppercase;
	color: var(--eq-gray-faint);
}

.eq-pd-pager-t {
	font-family: var(--eq-font-display);
	font-weight: var(--eq-weight-medium);
	font-size: clamp(1.1875rem, 2vw, 1.625rem);
	line-height: 1.16;
	letter-spacing: -0.03em;
}

a.eq-pd-pager-link:hover {
	color: var(--eq-green);
	padding-left: var(--eq-space-3);
}

a.eq-pd-pager-link--next:hover {
	padding-left: var(--eq-space-f6);
	padding-right: var(--eq-space-3);
}

/* ---------------------------------------------------------------- */
/* Full-screen slideshow                                            */
/* ---------------------------------------------------------------- */
.eq-lightbox {
	position: fixed;
	inset: 0;
	z-index: 200;
	display: none;
	width: 100%;
	max-width: none;
	height: 100%;
	max-height: none;
	margin: 0;
	padding: 0;
	border: 0;
	background: rgba(8, 18, 13, 0.97);
	color: var(--eq-white);
}

.eq-lightbox[open] {
	display: flex;
	flex-direction: column;
}

.eq-lightbox::backdrop {
	background: rgba(8, 18, 13, 0.92);
}

.eq-lightbox-head,
.eq-lightbox-foot {
	flex: none;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--eq-space-5);
	flex-wrap: wrap;
	padding: var(--eq-space-4) var(--eq-space-f5);
}

.eq-lightbox-head {
	border-bottom: 1px solid rgba(255, 255, 255, 0.16);
}

.eq-lightbox-foot {
	border-top: 1px solid rgba(255, 255, 255, 0.16);
}

.eq-lightbox-title {
	display: inline-flex;
	align-items: center;
	gap: var(--eq-space-3);
	font-family: var(--eq-font-mono);
	font-size: var(--eq-text-label);
	letter-spacing: var(--eq-tracking-wider);
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.6);
}

.eq-lightbox-counter {
	color: var(--eq-gold);
	font-variant-numeric: tabular-nums;
}

.eq-lightbox-btn {
	appearance: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--eq-space-2);
	background: transparent;
	border: 1px solid rgba(255, 255, 255, 0.28);
	color: var(--eq-white);
	padding: var(--eq-space-3) var(--eq-space-4);
	font-family: var(--eq-font-mono);
	font-size: var(--eq-text-label);
	letter-spacing: var(--eq-tracking-nav);
	text-transform: uppercase;
	cursor: pointer;
	transition: background var(--eq-duration-standard) var(--eq-ease),
		border-color var(--eq-duration-standard) var(--eq-ease);
}

.eq-lightbox-btn:hover {
	background: var(--eq-green);
	border-color: var(--eq-green);
}

.eq-lightbox-stage {
	flex: 1;
	min-height: 0;
	display: flex;
	align-items: center;
	gap: var(--eq-space-f4);
	padding: var(--eq-space-f4) var(--eq-space-f3);
}

.eq-lightbox-nav {
	flex: none;
	width: 44px;
	height: 44px;
	padding: 0;
	font-size: var(--eq-text-body);
}

.eq-lightbox-figure {
	flex: 1;
	min-width: 0;
	height: 100%;
	margin: 0;
	display: flex;
	align-items: center;
	justify-content: center;
}

.eq-lightbox-img {
	display: block;
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
	animation: eq-lb-pop var(--eq-duration-deliberate) var(--eq-ease-out) both;
}

.eq-lightbox.is-static .eq-lightbox-img {
	animation: none;
}

.eq-lightbox-cap {
	font-size: var(--eq-text-small);
	line-height: var(--eq-leading-body);
	color: rgba(255, 255, 255, 0.72);
	max-width: 52ch;
}

.eq-lightbox-thumbs {
	display: flex;
	align-items: center;
	gap: var(--eq-space-2);
	overflow-x: auto;
	padding: 2px;
}

.eq-lightbox-thumb {
	appearance: none;
	flex: none;
	width: 70px;
	height: 48px;
	padding: 0;
	overflow: hidden;
	background: var(--eq-ink-deep);
	border: 1px solid rgba(255, 255, 255, 0.22);
	opacity: 0.5;
	cursor: pointer;
	transition: opacity var(--eq-duration-standard) var(--eq-ease),
		border-color var(--eq-duration-standard) var(--eq-ease);
}

.eq-lightbox-thumb img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.eq-lightbox-thumb.is-on {
	opacity: 1;
	border-color: var(--eq-gold);
}

@keyframes eq-lb-pop {
	from {
		opacity: 0;
		transform: scale(0.968);
	}

	to {
		opacity: 1;
		transform: none;
	}
}

/* ---------------------------------------------------------------- */
/* Breakpoints                                                      */
/* ---------------------------------------------------------------- */
@media (max-width: 1199px) {
	.eq-pj-index-head,
	.eq-pj-row {
		grid-template-columns: 64px minmax(0, 2fr) minmax(0, 1fr) 120px 26px;
	}

	.eq-pj-index-head > span:nth-child(4),
	.eq-pj-row-loc {
		display: none;
	}
}

@media (max-width: 991px) {
	.eq-pj-intro {
		grid-template-columns: 1fr;
	}

	.eq-pj-card {
		grid-column: span 6;
	}

	.eq-pj-index-head {
		display: none;
	}

	.eq-pj-row {
		grid-template-columns: 56px minmax(0, 1fr) 26px;
	}

	.eq-pj-row-tag,
	.eq-pj-row-when {
		display: none;
	}

	.eq-pd-docket {
		grid-template-columns: 1fr;
	}

	.eq-pd-aside {
		position: static;
	}

	body.eq-tpl-project .eq-proj-gallery {
		margin-left: 0;
		width: 100%;
		padding-left: var(--eq-section-pad-x);
	}

	.eq-pd-shot {
		grid-column: span 6;
	}

	.eq-pd-pager-link--next {
		border-left: 0;
		padding-left: 0;
	}
}

@media (max-width: 700px) {
	body.eq-tpl-projects .eq-pg-wrap {
		--eq-pj-gutter: var(--eq-space-5);
	}

	body.eq-tpl-projects .eq-arch-wrap,
	body.eq-tpl-project .eq-proj-body,
	body.eq-tpl-project .eq-proj-nav {
		padding-left: var(--eq-space-5) !important;
		padding-right: var(--eq-space-5) !important;
	}

	.eq-pj-stats {
		grid-template-columns: 1fr;
	}

	.eq-pj-bar-box {
		gap: var(--eq-space-3);
	}

	.eq-pj-filters,
	.eq-pj-bar-right {
		flex: 1 1 100%;
	}

	.eq-pj-bar-right {
		justify-content: space-between;
	}

	.eq-pj-card,
	.eq-pd-shot {
		grid-column: span 12;
	}

	.eq-pj-row-strip {
		display: none;
	}

	.eq-ph-cell {
		flex: 1 1 50%;
	}

	.eq-lightbox-thumbs {
		width: 100%;
	}
}

@media (prefers-reduced-motion: reduce) {
	.eq-pj-card,
	.eq-pj-card-img,
	.eq-pj-card-scrim,
	.eq-pj-card-badge,
	.eq-pj-card-cta,
	.eq-pj-card-body,
	.eq-pj-row,
	.eq-pj-row-strip,
	.eq-pj-row-arrow,
	.eq-pd-shot img,
	.eq-pd-shot-scrim,
	.eq-pd-shot-badge,
	.eq-pd-shot-cap,
	.eq-pd-stage-node,
	.eq-pd-pager-link,
	.eq-pd-more-all,
	.eq-lightbox-img {
		transition: none !important;
		animation: none !important;
	}

	.eq-pj-row-strip {
		width: 78px;
	}
}
.eq-inner-title , .eq-inner-lead {
	color: white;
}