/* =====================================================================
   Gazer Monitoring Theme — main.css
   Black security-tech interface + neon-lime intelligence layer.
   Mobile-first. CSS custom properties. Reduced-motion safe.
   ===================================================================== */

/* ---------- Inter (self-hosted, latin subset, font-display: swap) ---------- */
@font-face { font-family: "Inter"; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/inter-400.woff2") format("woff2"); }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 500; font-display: swap; src: url("../fonts/inter-500.woff2") format("woff2"); }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 600; font-display: swap; src: url("../fonts/inter-600.woff2") format("woff2"); }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 700; font-display: swap; src: url("../fonts/inter-700.woff2") format("woff2"); }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 800; font-display: swap; src: url("../fonts/inter-800.woff2") format("woff2"); }

/* ---------- Design tokens ---------- */
:root {
	--gz-black: #000000;
	--gz-charcoal: #070707;
	--gz-soft-black: #111111;
	--gz-dark-gray: #1a1a1a;
	--gz-border: #232323;
	--gz-medium-gray: #6f6f6f;
	--gz-light-gray: #d8d8d8;
	--gz-white: #ffffff;
	--gz-lime: #eaff12;
	--gz-lime-dark: #c9dc0a;
	--gz-lime-dim: rgba(234, 255, 18, 0.14);
	--gz-error: #ff5c5c;
	--gz-success: #8aff7a;

	--gz-font: "Inter", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", Arial, sans-serif;
	--gz-font-mono: "Cascadia Code", Consolas, "SF Mono", Menlo, monospace;

	--gz-radius: 14px;
	--gz-radius-pill: 999px;
	--gz-container: 1200px;
	--gz-gutter: 1.25rem;

	--gz-text: rgba(255, 255, 255, 0.92);
	--gz-text-soft: rgba(255, 255, 255, 0.72);
	--gz-text-faint: rgba(255, 255, 255, 0.62);

	--gz-transition: 200ms ease;

	/* z-index scale */
	--gz-z-header: 50;
	--gz-z-nav: 40;
	--gz-z-skip: 100;
}

/* ---------- Base ---------- */
*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
	-webkit-text-size-adjust: 100%;
}

body {
	margin: 0;
	background: var(--gz-charcoal);
	color: var(--gz-text);
	font-family: var(--gz-font);
	font-size: 1rem;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
}

img,
svg,
video {
	max-width: 100%;
	height: auto;
}

h1, h2, h3, h4 {
	color: var(--gz-white);
	line-height: 1.15;
	letter-spacing: -0.015em;
	margin: 0 0 0.6em;
	font-weight: 700;
	text-wrap: balance;
}

h1 { font-size: clamp(2rem, 5.5vw, 3.4rem); font-weight: 800; }
h2 { font-size: clamp(1.6rem, 3.6vw, 2.5rem); }
h3 { font-size: clamp(1.1rem, 2.2vw, 1.3rem); }

p { margin: 0 0 1em; }

a {
	color: var(--gz-lime);
	text-decoration: none;
	transition: color var(--gz-transition);
}

a:hover { color: var(--gz-lime-dark); }

ul, ol { padding-left: 1.25rem; }

::selection {
	background: var(--gz-lime);
	color: var(--gz-black);
}

/* Focus visibility */
:focus-visible {
	outline: 2px solid var(--gz-lime);
	outline-offset: 3px;
	border-radius: 4px;
}

/* Skip link */
.gz-skip-link {
	position: absolute;
	top: -100px;
	left: 1rem;
	z-index: var(--gz-z-skip);
	background: var(--gz-lime);
	color: var(--gz-black);
	padding: 0.6rem 1.2rem;
	border-radius: var(--gz-radius-pill);
	font-weight: 700;
}

.gz-skip-link:focus {
	top: 1rem;
	color: var(--gz-black);
}

/* Layout */
.gz-container {
	width: 100%;
	max-width: var(--gz-container);
	margin-inline: auto;
	padding-inline: var(--gz-gutter);
}

.gz-main { display: block; }

/* ---------- Kicker / status ---------- */
.gz-kicker {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	color: var(--gz-lime);
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	margin-bottom: 0.9rem;
}

.gz-status-dot {
	width: 9px;
	height: 9px;
	border-radius: 50%;
	background: var(--gz-lime);
	box-shadow: 0 0 0 0 rgba(234, 255, 18, 0.5);
	animation: gz-pulse 2.2s infinite;
	flex: none;
}

@keyframes gz-pulse {
	0%   { box-shadow: 0 0 0 0 rgba(234, 255, 18, 0.45); }
	70%  { box-shadow: 0 0 0 9px rgba(234, 255, 18, 0); }
	100% { box-shadow: 0 0 0 0 rgba(234, 255, 18, 0); }
}

/* ---------- Buttons ---------- */
.gz-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	padding: 0.72rem 1.5rem;
	border-radius: var(--gz-radius-pill);
	font-weight: 700;
	font-size: 0.95rem;
	line-height: 1.2;
	cursor: pointer;
	border: 1px solid transparent;
	transition: background var(--gz-transition), color var(--gz-transition), border-color var(--gz-transition), box-shadow var(--gz-transition);
	text-align: center;
	min-height: 44px;
}

.gz-btn--lg { padding: 0.9rem 1.9rem; font-size: 1rem; }

.gz-btn--primary {
	background: var(--gz-lime);
	color: var(--gz-black);
}

.gz-btn--primary:hover,
.gz-btn--primary:focus-visible {
	background: var(--gz-lime-dark);
	color: var(--gz-black);
	box-shadow: 0 0 22px rgba(234, 255, 18, 0.28);
}

/* Secondary action: quiet neutral outline at rest so the lime PRIMARY button
   owns attention; lime is earned on hover/focus (fill-wipe handled in v1.6.4). */
.gz-btn--ghost {
	background: transparent;
	border-color: rgba(255, 255, 255, 0.22);
	color: var(--gz-text);
}

.gz-btn--ghost:hover,
.gz-btn--ghost:focus-visible {
	background: var(--gz-lime);
	border-color: var(--gz-lime);
	color: var(--gz-black);
}

/* ---------- Header / navigation ---------- */
.gz-header {
	position: sticky;
	top: 0;
	z-index: var(--gz-z-header);
	background: rgba(0, 0, 0, 0.88);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	border-bottom: 1px solid var(--gz-border);
}

.gz-header-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	min-height: 70px;
}

.gz-logo {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	color: var(--gz-white);
}

.gz-logo:hover { color: var(--gz-white); }

.gz-logo-text {
	font-weight: 800;
	letter-spacing: 0.14em;
	font-size: 1.05rem;
	display: flex;
	flex-direction: column;
	line-height: 1.05;
}

.gz-logo-sub {
	color: var(--gz-medium-gray);
	font-size: 0.62rem;
	font-weight: 600;
	letter-spacing: 0.3em;
	text-transform: uppercase;
}

/* Uploaded custom logo (Customize → Site Identity → Logo): constrain to the
   header row so any upload size fits cleanly and never crowds the nav. */
.gz-brand .custom-logo-link { display: inline-flex; align-items: center; line-height: 0; }
.custom-logo { display: block; width: auto; height: auto; max-height: 42px; }
@media (min-width: 1024px) { .custom-logo { max-height: 46px; } }

.gz-header-actions {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

.gz-header-cta { display: none; }

/* Hamburger */
.gz-nav-toggle {
	display: inline-flex;
	flex-direction: column;
	justify-content: center;
	gap: 5px;
	width: 46px;
	height: 44px;
	padding: 10px;
	background: transparent;
	border: 1px solid var(--gz-border);
	border-radius: 10px;
	cursor: pointer;
}

.gz-nav-toggle-bar {
	display: block;
	height: 2px;
	width: 100%;
	background: var(--gz-lime);
	border-radius: 2px;
	transition: transform var(--gz-transition), opacity var(--gz-transition);
}

.gz-nav-toggle[aria-expanded="true"] .gz-nav-toggle-bar:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.gz-nav-toggle[aria-expanded="true"] .gz-nav-toggle-bar:nth-child(2) { opacity: 0; }
.gz-nav-toggle[aria-expanded="true"] .gz-nav-toggle-bar:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* Mobile nav panel */
.gz-nav {
	position: fixed;
	inset: 70px 0 0 0;
	z-index: var(--gz-z-nav);
	background: var(--gz-black);
	padding: 1.25rem var(--gz-gutter) 3rem;
	overflow-y: auto;
	display: none;
}

.gz-nav.is-open { display: block; }

.gz-nav-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.gz-nav-item {
	border-bottom: 1px solid var(--gz-dark-gray);
	position: relative;
}

.gz-nav-item > a {
	display: block;
	padding: 0.9rem 3rem 0.9rem 0.25rem;
	color: var(--gz-white);
	font-weight: 600;
	font-size: 1.05rem;
}

.gz-nav-item > a:hover,
.gz-nav-item.is-current > a {
	color: var(--gz-lime);
}

.gz-subtoggle {
	position: absolute;
	top: 0.55rem;
	right: 0;
	width: 44px;
	height: 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: transparent;
	border: 1px solid var(--gz-border);
	border-radius: 10px;
	color: var(--gz-lime);
	cursor: pointer;
	transition: transform var(--gz-transition);
}

.gz-subtoggle[aria-expanded="true"] { transform: rotate(180deg); }

.gz-dropdown {
	list-style: none;
	margin: 0;
	padding: 0 0 0.75rem 0.75rem;
	display: none;
}

.gz-nav-item.is-sub-open > .gz-dropdown { display: block; }

.gz-dropdown a {
	display: block;
	padding: 0.5rem 0.25rem;
	color: var(--gz-text-soft);
	font-size: 0.95rem;
	min-height: 40px;
	display: flex;
	align-items: center;
}

.gz-dropdown a:hover { color: var(--gz-lime); }

.gz-nav-mobile-cta {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	margin-top: 1.5rem;
}

/* Desktop nav */
@media (min-width: 1024px) {
	.gz-nav-toggle { display: none; }
	.gz-header-cta { display: inline-flex; }
	.gz-nav-mobile-cta { display: none; }

	.gz-nav {
		position: static;
		display: block;
		background: transparent;
		padding: 0;
		overflow: visible;
		inset: auto;
	}

	.gz-nav-list {
		display: flex;
		align-items: center;
		gap: 0.25rem;
	}

	.gz-nav-item { border-bottom: 0; }

	.gz-nav-item > a {
		padding: 0.6rem 0.85rem;
		font-size: 0.92rem;
		border-radius: 8px;
		white-space: nowrap;
	}

	.gz-subtoggle {
		position: static;
		width: 26px;
		height: 26px;
		border: 0;
		margin-left: -8px;
	}

	.gz-nav-item.has-dropdown {
		display: inline-flex;
		align-items: center;
	}

	.gz-dropdown {
		position: absolute;
		top: calc(100% + 8px);
		left: 0;
		z-index: 60;
		min-width: 260px;
		background: var(--gz-soft-black);
		border: 1px solid var(--gz-border);
		border-radius: var(--gz-radius);
		padding: 0.5rem;
		box-shadow: 0 18px 40px rgba(0, 0, 0, 0.55);
		display: none;
	}

	/* Invisible hover bridge so the cursor can cross the gap
	   between the menu item and its dropdown without closing it. */
	.gz-dropdown::before {
		content: "";
		position: absolute;
		top: -12px;
		left: 0;
		right: 0;
		height: 12px;
	}

	.gz-nav-item.has-dropdown:hover > .gz-dropdown,
	.gz-nav-item.has-dropdown:focus-within > .gz-dropdown,
	.gz-nav-item.is-sub-open > .gz-dropdown {
		display: block;
	}

	.gz-dropdown a {
		padding: 0.55rem 0.8rem;
		border-radius: 8px;
	}

	.gz-dropdown a:hover {
		background: var(--gz-dark-gray);
	}
}

/* WP default menu compatibility (wp_nav_menu) */
.gz-nav-list .menu-item-has-children { position: relative; }
.gz-nav-list .sub-menu {
	list-style: none;
	margin: 0;
	padding: 0 0 0.5rem 0.75rem;
}
@media (min-width: 1024px) {
	.gz-nav-list .sub-menu {
		position: absolute;
		top: calc(100% + 8px);
		left: 0;
		z-index: 60;
		min-width: 260px;
		background: var(--gz-soft-black);
		border: 1px solid var(--gz-border);
		border-radius: var(--gz-radius);
		padding: 0.5rem;
		display: none;
	}
	.gz-nav-list .sub-menu::before {
		content: "";
		position: absolute;
		top: -12px;
		left: 0;
		right: 0;
		height: 12px;
	}
	.gz-nav-list .menu-item-has-children:hover > .sub-menu,
	.gz-nav-list .menu-item-has-children:focus-within > .sub-menu {
		display: block;
	}
}
.gz-nav-list .sub-menu a {
	display: block;
	padding: 0.55rem 0.8rem;
	color: var(--gz-text-soft);
	border-radius: 8px;
}
.gz-nav-list .sub-menu a:hover { color: var(--gz-lime); background: var(--gz-dark-gray); }

/* ---------- Hero ---------- */
.gz-hero {
	position: relative;
	background: var(--gz-black);
	border-bottom: 1px solid var(--gz-border);
	overflow: hidden;
}

.gz-hero--page { padding: 2.75rem 0 3rem; }

/* Interior hero: copy + artwork */
.gz-hero-grid {
	display: grid;
	gap: 2.25rem;
	align-items: center;
}

@media (min-width: 980px) {
	.gz-hero-grid { grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr); }
}

.gz-page-visual {
	width: 100%;
	max-width: 520px;
	margin-inline: auto;
}

.gz-page-visual svg {
	width: 100%;
	height: auto;
	display: block;
	filter: drop-shadow(0 24px 48px rgba(0, 0, 0, 0.5));
}

.gz-pv-blink { animation: gz-box-blink 1.8s ease-in-out infinite; }

.gz-pv-sweep {
	animation: gz-pv-rotate 7s linear infinite;
	transform-origin: 240px 180px;
	transform-box: view-box;
}

@keyframes gz-pv-rotate {
	to { transform: rotate(360deg); }
}

.gz-hero--home {
	padding: 4.5rem 0 5rem;
	min-height: min(72vh, 760px);
	display: flex;
	align-items: center;
}

.gz-hero-inner {
	position: relative;
	z-index: 2;
	max-width: 60rem;
}

.gz-hero-lead {
	color: var(--gz-text-soft);
	font-size: clamp(1.05rem, 2vw, 1.25rem);
	max-width: 46rem;
	margin-bottom: 1.75rem;
}

.gz-hero-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.85rem;
	margin-top: 0.5rem;
}

/* 3D scene */
.gz-hero-scene {
	position: absolute;
	inset: 0;
	z-index: 0;
}

.gz-three-canvas {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	display: block;
	opacity: 0.85;
}

.gz-hero-fallback {
	position: absolute;
	inset: 0;
	background:
		radial-gradient(ellipse 65% 55% at 72% 38%, rgba(234, 255, 18, 0.07), transparent 60%),
		repeating-linear-gradient(0deg, transparent 0 39px, rgba(234, 255, 18, 0.045) 39px 40px),
		repeating-linear-gradient(90deg, transparent 0 39px, rgba(234, 255, 18, 0.045) 39px 40px);
}

.gz-hero--home .gz-hero-inner::before {
	content: "";
	position: absolute;
	inset: -2rem -2rem -2rem -2rem;
	background: radial-gradient(ellipse at 25% 50%, rgba(0, 0, 0, 0.82), transparent 75%);
	z-index: -1;
}

/* Scan line */
.gz-scanline {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 2px;
	background: linear-gradient(90deg, transparent, var(--gz-lime) 35%, var(--gz-lime) 65%, transparent);
	opacity: 0.55;
	animation: gz-scan 6s linear infinite;
	pointer-events: none;
}

@keyframes gz-scan {
	0%   { transform: translateX(-60%); }
	100% { transform: translateX(60%); }
}

/* ---------- Trust strip ---------- */
.gz-trust-strip {
	background: var(--gz-soft-black);
	border-bottom: 1px solid var(--gz-border);
	padding: 1rem 0;
}

.gz-trust-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 2rem;
	justify-content: center;
}

.gz-trust-list li {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	color: var(--gz-light-gray);
	font-size: 0.82rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.gz-ico { color: var(--gz-lime); flex: none; }

/* ---------- Sections ---------- */
.gz-section-block { padding: clamp(4rem, 9vw, 6.5rem) 0; }
.gz-section-block--alt { background: var(--gz-black); border-block: 1px solid var(--gz-border); }
.gz-section-block--feature { background: linear-gradient(180deg, var(--gz-charcoal), var(--gz-black)); }

.gz-split {
	display: grid;
	gap: 2.5rem;
	align-items: center;
}

@media (min-width: 900px) {
	.gz-split { grid-template-columns: 1fr 1fr; }
}

.gz-page-content {
	padding: 3rem 0 3.5rem;
	max-width: min(var(--gz-container), 100%);
}

.gz-page-content > p:first-child {
	font-size: 1.08rem;
	color: var(--gz-text-soft);
	max-width: 50rem;
}

.gz-section {
	margin: 0 0 2.5rem;
	padding-top: 2.5rem;
	border-top: 1px solid var(--gz-border);
}

.gz-section:last-child { margin-bottom: 0; }

.gz-section h2 {
	position: relative;
	padding-left: 1.1rem;
	font-size: clamp(1.3rem, 2.6vw, 1.6rem);
}

.gz-section h2::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.18em;
	bottom: 0.18em;
	width: 3px;
	border-radius: 2px;
	background: var(--gz-lime);
}

.gz-section p,
.gz-section li { color: var(--gz-text-soft); max-width: 52rem; }

/* Editorial two-column rhythm on desktop: heading left, body right */
@media (min-width: 920px) {
	.gz-page-content .gz-section {
		display: grid;
		grid-template-columns: 280px minmax(0, 1fr);
		column-gap: 3.5rem;
		align-items: start;
	}

	.gz-page-content .gz-section > h2 {
		grid-column: 1;
		grid-row: 1 / span 30;
		position: sticky;
		top: 100px;
		margin-bottom: 0;
	}

	.gz-page-content .gz-section > *:not(h2) {
		grid-column: 2;
	}
}

.gz-list {
	list-style: none;
	padding: 0;
	display: grid;
	gap: 0.5rem;
}

.gz-list li {
	padding-left: 1.6rem;
	position: relative;
}

.gz-list li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.52em;
	width: 9px;
	height: 9px;
	border-radius: 2px;
	background: var(--gz-lime);
}

/* ---------- Cards ---------- */
.gz-card-grid {
	display: grid;
	gap: 1rem;
	grid-template-columns: minmax(0, 1fr);
	margin: 1.75rem 0;
}

@media (min-width: 640px)  { .gz-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .gz-card-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .gz-card-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

.gz-card {
	position: relative;
	display: block;
	background: var(--gz-soft-black);
	border: 1px solid var(--gz-border);
	border-radius: var(--gz-radius);
	padding: 1.4rem 1.4rem 2.4rem;
	color: var(--gz-text-soft);
	transition: border-color var(--gz-transition), background var(--gz-transition);
	cursor: pointer;
}

.gz-card:hover,
.gz-card:focus-visible {
	border-color: rgba(234, 255, 18, 0.55);
	background: var(--gz-dark-gray);
	color: var(--gz-text-soft);
}

.gz-card h3,
.gz-card-title-sm {
	font-size: 1.05rem;
	margin-bottom: 0.4rem;
	color: var(--gz-white);
}

.gz-card p { margin: 0; font-size: 0.93rem; }

.gz-card-arrow {
	position: absolute;
	right: 1.25rem;
	bottom: 0.9rem;
	color: var(--gz-lime);
	font-size: 1.1rem;
	transition: transform var(--gz-transition);
}

.gz-card:hover .gz-card-arrow { transform: translateX(5px); }

/* Services overview: compact 2-up horizontal cards (the former Industries style) —
   icon left, title + description middle, round lime arrow button right. */
.gz-svc-compact { grid-template-columns: 1fr; }
@media (min-width: 720px) { .gz-svc-compact { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.1rem; } }
.gz-svc-compact .gz-card--service {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	grid-template-areas:
		"icon title arrow"
		"icon desc  arrow";
	align-items: center;
	column-gap: 1.15rem;
	row-gap: 0.1rem;
	padding: 1.3rem 1.45rem;
	background: linear-gradient(150deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.012));
	border: 1px solid rgba(234, 255, 18, 0.16);
	border-radius: var(--gz-radius);
	box-shadow: var(--gz-bevel);
	transition: border-color var(--gz-transition), box-shadow var(--gz-transition), transform var(--gz-transition);
}
.gz-svc-compact .gz-card--service:hover,
.gz-svc-compact .gz-card--service:focus-visible {
	transform: translateY(-4px);
	border-color: rgba(234, 255, 18, 0.5);
	box-shadow: var(--gz-card-lift), var(--gz-bevel);
}
.gz-svc-compact .gz-card--service .gz-card-icon { grid-area: icon; margin: 0; align-self: center; }
.gz-svc-compact .gz-card--service .gz-card-title-sm { grid-area: title; margin: 0; align-self: end; font-size: 1rem; }
.gz-svc-compact .gz-card--service p { grid-area: desc; margin: 0; align-self: start; color: var(--gz-text-soft); font-size: 0.86rem; }
.gz-svc-compact .gz-card--service .gz-card-arrow {
	grid-area: arrow;
	align-self: center;
	position: static;
	margin: 0;
	width: 36px;
	height: 36px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1px solid rgba(234, 255, 18, 0.38);
	border-radius: 50%;
	color: var(--gz-lime);
	font-size: 1rem;
	transition: background-color var(--gz-transition), color var(--gz-transition), border-color var(--gz-transition), box-shadow var(--gz-transition);
}
.gz-svc-compact .gz-card--service:hover .gz-card-arrow,
.gz-svc-compact .gz-card--service:focus-visible .gz-card-arrow {
	animation: none;
	transform: none;
	background: var(--gz-lime);
	color: var(--gz-black);
	border-color: var(--gz-lime);
	box-shadow: 0 0 12px rgba(234, 255, 18, 0.4);
}

.gz-card-icon {
	display: inline-flex;
	width: 44px;
	height: 44px;
	align-items: center;
	justify-content: center;
	border-radius: 10px;
	background: var(--gz-lime-dim);
	color: var(--gz-lime);
	margin-bottom: 0.85rem;
}

/* Feature tiles (non-link) */
.gz-cols {
	display: grid;
	gap: 1rem;
	grid-template-columns: 1fr;
	margin: 1.5rem 0;
}

@media (min-width: 640px)  { .gz-cols { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .gz-cols { grid-template-columns: repeat(4, 1fr); } }

/* Inside the editorial section column, keep grids at 2-up so cards stay readable */
@media (min-width: 920px) {
	.gz-page-content .gz-section .gz-cols,
	.gz-page-content .gz-section .gz-card-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

.gz-feature {
	background: var(--gz-soft-black);
	border: 1px solid var(--gz-border);
	border-left: 3px solid var(--gz-lime);
	border-radius: 10px;
	padding: 1.1rem 1.2rem;
}

.gz-feature h3 { font-size: 0.98rem; margin-bottom: 0.35rem; }
.gz-feature p { margin: 0; font-size: 0.9rem; color: var(--gz-text-faint); }

/* ---------- Steps ---------- */
.gz-steps {
	list-style: none;
	padding: 0;
	display: grid;
	gap: 1rem;
	grid-template-columns: 1fr;
	margin: 2rem 0 1rem;
	counter-reset: gz-step;
}

@media (min-width: 700px)  { .gz-steps { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .gz-steps { grid-template-columns: repeat(4, 1fr); } }

.gz-steps--stack { grid-template-columns: 1fr !important; }

.gz-steps li {
	background: var(--gz-soft-black);
	border: 1px solid var(--gz-border);
	border-radius: var(--gz-radius);
	padding: 1.3rem;
}

.gz-step-num {
	display: inline-block;
	font-family: var(--gz-font-mono);
	color: var(--gz-lime);
	font-weight: 700;
	font-size: 0.9rem;
	letter-spacing: 0.1em;
	margin-bottom: 0.6rem;
}

.gz-steps h3 { font-size: 1rem; margin-bottom: 0.3rem; }
.gz-steps p { margin: 0; font-size: 0.9rem; color: var(--gz-text-faint); }

/* ---------- Inline CTA ---------- */
.gz-inline-cta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.85rem;
	margin: 2.5rem 0;
	padding: 1.6rem;
	background: var(--gz-black);
	border: 1px solid var(--gz-border);
	border-radius: var(--gz-radius);
}

.gz-more-link { margin-top: 1.5rem; font-weight: 600; }

/* ---------- CTA band ---------- */
.gz-cta-band {
	padding: 4rem 0;
	border-top: 1px solid var(--gz-border);
	background: var(--gz-charcoal);
}

.gz-cta-band-inner {
	display: grid;
	gap: 2rem;
	align-items: center;
	background:
		radial-gradient(ellipse 60% 120% at 90% 50%, rgba(234, 255, 18, 0.1), transparent 70%),
		var(--gz-black);
	border: 1px solid var(--gz-border);
	border-radius: calc(var(--gz-radius) + 6px);
	padding: 2.5rem 1.75rem;
	position: relative;
	overflow: hidden;
}

.gz-cta-band-inner::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
	width: 3px;
	background: var(--gz-lime);
}

@media (min-width: 900px) {
	.gz-cta-band-inner {
		grid-template-columns: 1.4fr auto;
		padding: 3rem 3.25rem;
	}
}

.gz-cta-band h2 { margin-bottom: 0.5rem; }
.gz-cta-band p { color: var(--gz-text-soft); max-width: 38rem; margin-bottom: 0; }

.gz-cta-band-actions {
	display: flex;
	flex-direction: column;
	gap: 0.85rem;
	align-items: stretch;
}

@media (min-width: 480px) and (max-width: 899px) {
	.gz-cta-band-actions { flex-direction: row; flex-wrap: wrap; }
}

/* ---------- Location strip ---------- */
.gz-location-strip {
	background: var(--gz-soft-black);
	border-block: 1px solid var(--gz-border);
	padding: 3.25rem 0;
}

.gz-location-sentence {
	color: var(--gz-text-soft);
	max-width: 52rem;
}

.gz-city-chips {
	list-style: none;
	margin: 1.25rem 0 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
}

.gz-city-chips li {
	border: 1px solid rgba(234, 255, 18, 0.4);
	color: var(--gz-light-gray);
	border-radius: var(--gz-radius-pill);
	padding: 0.35rem 0.95rem;
	font-size: 0.85rem;
	font-weight: 600;
}

/* ---------- FAQ ---------- */
.gz-faq { padding: 3.5rem 0; background: var(--gz-black); border-top: 1px solid var(--gz-border); }

.gz-faq-list {
	display: grid;
	gap: 0.75rem;
	margin-top: 1.5rem;
	max-width: 56rem;
}

.gz-faq-item {
	background: var(--gz-soft-black);
	border: 1px solid var(--gz-border);
	border-radius: var(--gz-radius);
	overflow: hidden;
	transition: border-color var(--gz-transition);
}

.gz-faq-item[open] { border-color: rgba(234, 255, 18, 0.5); }

.gz-faq-item summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1.05rem 1.25rem;
	cursor: pointer;
	font-weight: 600;
	color: var(--gz-white);
	list-style: none;
	min-height: 44px;
}

.gz-faq-item summary::-webkit-details-marker { display: none; }

.gz-faq-chevron { color: var(--gz-lime); flex: none; transition: transform var(--gz-transition); }
.gz-faq-item[open] .gz-faq-chevron { transform: rotate(180deg); }

.gz-faq-answer { padding: 0 1.25rem 1.2rem; }
.gz-faq-answer p { margin: 0; color: var(--gz-text-soft); }

/* ---------- Forms ---------- */
.gz-form-wrap { margin: 1.5rem 0 2.5rem; }

.gz-form {
	background: var(--gz-soft-black);
	border: 1px solid var(--gz-border);
	border-radius: var(--gz-radius);
	padding: 1.5rem;
}

.gz-form-grid {
	display: grid;
	gap: 1.1rem;
	grid-template-columns: 1fr;
}

@media (min-width: 700px) {
	.gz-form-grid { grid-template-columns: repeat(2, 1fr); }
	.gz-field--full { grid-column: 1 / -1; }
}

.gz-field { margin: 0; }

.gz-field label,
.gz-field legend {
	display: block;
	font-weight: 600;
	font-size: 0.92rem;
	color: var(--gz-white);
	margin-bottom: 0.4rem;
}

.gz-req { color: var(--gz-lime); }

.gz-field-hint { color: var(--gz-text-faint); font-weight: 400; font-size: 0.85rem; }

.gz-field input[type="text"],
.gz-field input[type="tel"],
.gz-field input[type="email"],
.gz-field select,
.gz-field textarea {
	width: 100%;
	background: var(--gz-black);
	color: var(--gz-text);
	border: 1px solid var(--gz-border);
	border-radius: 10px;
	padding: 0.7rem 0.9rem;
	font: inherit;
	min-height: 44px;
	transition: border-color var(--gz-transition);
}

.gz-field textarea { resize: vertical; }

.gz-field input:focus,
.gz-field select:focus,
.gz-field textarea:focus {
	outline: none;
	border-color: var(--gz-lime);
	box-shadow: 0 0 0 1px var(--gz-lime);
}

.gz-field input[aria-invalid="true"],
.gz-field select[aria-invalid="true"] {
	border-color: var(--gz-error);
}

.gz-field-error {
	display: block;
	color: var(--gz-error);
	font-size: 0.85rem;
	margin-top: 0.35rem;
}

.gz-field-error[hidden] { display: none; }

fieldset.gz-field {
	border: 1px solid var(--gz-border);
	border-radius: 10px;
	padding: 0.9rem 1rem 1rem;
}

.gz-radio,
.gz-check {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	margin: 0.25rem 1rem 0.25rem 0;
	font-size: 0.92rem;
	color: var(--gz-text-soft);
	cursor: pointer;
	min-height: 32px;
}

.gz-radio input,
.gz-check input {
	accent-color: var(--gz-lime);
	width: 18px;
	height: 18px;
}

.gz-check-grid {
	display: grid;
	gap: 0.25rem 1rem;
	grid-template-columns: 1fr;
}

@media (min-width: 600px) { .gz-check-grid { grid-template-columns: repeat(2, 1fr); } }

.gz-form-actions { margin-top: 1.4rem; }

.gz-form-privacy {
	margin-top: 0.9rem;
	font-size: 0.85rem;
	color: var(--gz-text-faint);
}

.gz-form button[disabled] { opacity: 0.6; cursor: wait; }

/* Honeypot */
.gz-hp-field {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

/* Notices */
.gz-notice {
	border-radius: var(--gz-radius);
	padding: 1rem 1.25rem;
	margin-bottom: 1.25rem;
	border: 1px solid;
}

.gz-notice--success {
	border-color: rgba(138, 255, 122, 0.5);
	background: rgba(138, 255, 122, 0.07);
	color: var(--gz-success);
}

.gz-notice--error {
	border-color: rgba(255, 92, 92, 0.5);
	background: rgba(255, 92, 92, 0.07);
	color: var(--gz-error);
}

/* Assessment layout */
.gz-assessment-layout {
	display: grid;
	gap: 2.5rem;
	align-items: start;
}

@media (min-width: 1024px) {
	.gz-assessment-layout { grid-template-columns: 1.6fr 1fr; }
}

.gz-assessment-aside {
	background: var(--gz-black);
	border: 1px solid var(--gz-border);
	border-radius: var(--gz-radius);
	padding: 1.5rem;
	position: sticky;
	top: 90px;
}

.gz-aside-call { margin-top: 1.5rem; }

.gz-contact-list {
	list-style: none;
	padding: 0;
	display: grid;
	gap: 1rem;
}

.gz-contact-label {
	display: block;
	color: var(--gz-text-faint);
	font-size: 0.78rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	margin-bottom: 0.15rem;
}

/* ---------- Breadcrumbs ---------- */
.gz-breadcrumbs { margin-bottom: 1.25rem; font-size: 0.85rem; }

.gz-breadcrumbs ol {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
}

.gz-breadcrumbs li { color: var(--gz-text-faint); }

.gz-breadcrumbs li + li::before {
	content: "/";
	margin-right: 0.35rem;
	color: var(--gz-medium-gray);
}

.gz-breadcrumbs a { color: var(--gz-text-soft); }
.gz-breadcrumbs a:hover { color: var(--gz-lime); }

/* ---------- Visual blocks ---------- */
.gz-visual-block { margin: 2rem auto; }

.gz-visual-legend {
	list-style: none;
	margin: 0.75rem 0 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1.5rem;
	font-size: 0.82rem;
	color: var(--gz-text-faint);
}

.gz-visual-legend li { display: inline-flex; align-items: center; gap: 0.45rem; }

.gz-legend-swatch {
	width: 12px;
	height: 12px;
	border-radius: 3px;
	display: inline-block;
}

.gz-legend-swatch--lime { background: var(--gz-lime); }
.gz-legend-swatch--zone { background: rgba(234, 255, 18, 0.18); border: 1px dashed rgba(234, 255, 18, 0.5); }

/* Yard / parking SVG */
.gz-yard-visual,
.gz-parking-visual {
	max-width: 760px;
	margin-inline: auto;
	padding: 0 var(--gz-gutter);
}

.gz-yard-visual--compact { padding: 0; }

.gz-yard-svg,
.gz-parking-svg {
	width: 100%;
	height: auto;
	background: var(--gz-black);
	border: 1px solid var(--gz-border);
	border-radius: var(--gz-radius);
	display: block;
}

.gz-yd-fence { fill: var(--gz-charcoal); stroke: var(--gz-border); stroke-width: 2; }
.gz-yd-trailers rect,
.gz-pk-stalls rect { fill: var(--gz-dark-gray); stroke: #2c2c2c; stroke-width: 1; }
.gz-pk-building { fill: var(--gz-dark-gray); stroke: #2c2c2c; }
.gz-pk-loading { fill: rgba(234, 255, 18, 0.06); stroke: rgba(234, 255, 18, 0.4); stroke-dasharray: 5 4; }
.gz-pk-gap { fill: var(--gz-lime); opacity: 0.7; }

.gz-yd-zone {
	fill: rgba(234, 255, 18, 0.05);
	stroke: rgba(234, 255, 18, 0.35);
	stroke-width: 1;
	stroke-dasharray: 5 5;
	animation: gz-zone-breathe 4s ease-in-out infinite;
	transform-origin: center;
	transform-box: fill-box;
}

.gz-yd-zone--d2 { animation-delay: 1s; }
.gz-yd-zone--d3 { animation-delay: 2s; }
.gz-yd-zone--d4 { animation-delay: 3s; }

@keyframes gz-zone-breathe {
	0%, 100% { opacity: 0.55; }
	50%      { opacity: 1; }
}

.gz-yd-cams circle { fill: var(--gz-lime); }

.gz-yd-gate-arm { fill: var(--gz-lime); }
.gz-yd-gate-post { fill: var(--gz-dark-gray); stroke: var(--gz-lime); stroke-width: 1; }
.gz-yd-intercom { fill: var(--gz-dark-gray); stroke: var(--gz-lime); stroke-width: 1.5; }

.gz-yd-point { fill: var(--gz-black); stroke: var(--gz-lime); stroke-width: 2; }

.gz-yd-log { fill: rgba(234, 255, 18, 0.08); stroke: var(--gz-lime); stroke-width: 1; }

.gz-yd-label {
	fill: var(--gz-light-gray);
	font-family: var(--gz-font-mono);
	font-size: 11px;
	letter-spacing: 0.08em;
}

.gz-yd-label--log { fill: var(--gz-lime); }

.gz-yd-patrol {
	fill: none;
	stroke: var(--gz-lime);
	stroke-width: 1.5;
	stroke-dasharray: 7 7;
	opacity: 0.6;
	animation: gz-dash 1.6s linear infinite;
}

@keyframes gz-dash {
	to { stroke-dashoffset: -14; }
}

.gz-yd-patrol-dot {
	fill: var(--gz-lime);
	animation-name: gz-patrol-move;
	animation-timing-function: linear;
	animation-iteration-count: infinite;
}

@keyframes gz-patrol-move {
	to { offset-distance: 100%; }
}

/* Monitoring dashboard visual */
.gz-monitor-visual { max-width: 720px; margin-inline: auto; padding: 0 var(--gz-gutter); }
.gz-monitor-visual--compact { padding: 0; }

.gz-monitor-frame {
	background: var(--gz-black);
	border: 1px solid var(--gz-border);
	border-radius: var(--gz-radius);
	padding: 1rem;
	font-family: var(--gz-font-mono);
}

.gz-monitor-topbar {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	padding-bottom: 0.8rem;
	border-bottom: 1px solid var(--gz-border);
	margin-bottom: 0.8rem;
}

.gz-monitor-label {
	color: var(--gz-lime);
	font-size: 0.7rem;
	letter-spacing: 0.18em;
	font-weight: 700;
}

.gz-monitor-time {
	margin-left: auto;
	color: var(--gz-medium-gray);
	font-size: 0.7rem;
	letter-spacing: 0.18em;
}

.gz-monitor-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 0.6rem;
}

.gz-cam-tile {
	position: relative;
	aspect-ratio: 16 / 10;
	background:
		repeating-linear-gradient(0deg, transparent 0 11px, rgba(255, 255, 255, 0.025) 11px 12px),
		var(--gz-soft-black);
	border: 1px solid var(--gz-border);
	border-radius: 8px;
	overflow: hidden;
}

.gz-cam-tile::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 40%, rgba(234, 255, 18, 0.05) 50%, transparent 60%);
	animation: gz-cam-scan 5s linear infinite;
}

.gz-cam-tile--alert { border-color: rgba(234, 255, 18, 0.6); }

@keyframes gz-cam-scan {
	0%   { transform: translateY(-100%); }
	100% { transform: translateY(100%); }
}

.gz-cam-id {
	position: absolute;
	top: 7px;
	left: 8px;
	font-size: 0.58rem;
	letter-spacing: 0.14em;
	color: var(--gz-medium-gray);
}

.gz-cam-box {
	position: absolute;
	left: 28%;
	top: 34%;
	width: 36%;
	height: 44%;
	border: 1.5px solid var(--gz-lime);
	border-radius: 3px;
	animation: gz-box-blink 1.8s ease-in-out infinite;
}

@keyframes gz-box-blink {
	0%, 100% { opacity: 1; }
	50%      { opacity: 0.45; }
}

.gz-cam-tag {
	position: absolute;
	bottom: 7px;
	left: 8px;
	font-size: 0.56rem;
	letter-spacing: 0.12em;
	font-weight: 700;
	color: var(--gz-black);
	background: var(--gz-lime);
	border-radius: 3px;
	padding: 2px 6px;
}

.gz-cam-tag--patrol {
	background: transparent;
	color: var(--gz-lime);
	border: 1px solid var(--gz-lime);
}

.gz-monitor-rows {
	display: grid;
	gap: 0.45rem;
	margin-top: 0.8rem;
}

.gz-monitor-row {
	display: flex;
	align-items: center;
	gap: 0.55rem;
	font-size: 0.62rem;
	letter-spacing: 0.12em;
	color: var(--gz-light-gray);
	background: var(--gz-soft-black);
	border: 1px solid var(--gz-border);
	border-radius: 7px;
	padding: 0.5rem 0.7rem;
}

.gz-monitor-row--verify { border-color: rgba(234, 255, 18, 0.45); }

.gz-monitor-row-dot {
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--gz-lime);
	animation: gz-box-blink 1.4s infinite;
	flex: none;
}

.gz-monitor-row-dot--ok { background: var(--gz-success); animation: none; }

/* ---------- Pipeline (How It Works) ---------- */
.gz-pipeline { padding: 1.5rem 0 0.5rem; }

.gz-pipeline-track {
	list-style: none;
	margin: 0;
	padding: 0;
	position: relative;
	display: grid;
	gap: 1.4rem;
}

.gz-pipeline-track::before {
	content: "";
	position: absolute;
	left: 21px;
	top: 10px;
	bottom: 10px;
	width: 2px;
	background: linear-gradient(180deg, var(--gz-lime), rgba(234, 255, 18, 0.12));
}

.gz-pipeline-step {
	display: flex;
	gap: 1.1rem;
	align-items: flex-start;
	position: relative;
}

.gz-pipeline-node {
	flex: none;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--gz-black);
	border: 2px solid var(--gz-lime);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	z-index: 1;
}

.gz-pipeline-num {
	font-family: var(--gz-font-mono);
	font-weight: 700;
	font-size: 0.78rem;
	color: var(--gz-lime);
}

.gz-pipeline-body h3 { margin-bottom: 0.2rem; font-size: 1.02rem; }
.gz-pipeline-body p { margin: 0; color: var(--gz-text-faint); font-size: 0.92rem; }

@media (min-width: 900px) {
	.gz-pipeline-track {
		grid-template-columns: repeat(6, 1fr);
		gap: 1rem;
	}
	.gz-pipeline-track::before {
		left: 22px;
		right: 22px;
		top: 21px;
		bottom: auto;
		width: auto;
		height: 2px;
		background: linear-gradient(90deg, var(--gz-lime), rgba(234, 255, 18, 0.12));
	}
	.gz-pipeline-step { flex-direction: column; }
}

/* ---------- Footer ---------- */
.gz-footer {
	background: var(--gz-black);
	border-top: 1px solid var(--gz-border);
	padding: 3.5rem 0 2rem;
	color: var(--gz-text-soft);
}

.gz-footer-grid {
	display: grid;
	gap: 2rem 1.5rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (min-width: 900px) { .gz-footer-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); } }

/* Long unbreakable strings (emails, URLs) must never force page width */
.gz-footer-col a,
.gz-footer-area,
.gz-contact-list a {
	overflow-wrap: anywhere;
}

.gz-footer-heading {
	font-size: 0.8rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--gz-lime);
	margin-bottom: 0.9rem;
}

.gz-footer-col ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0.45rem;
}

.gz-footer-col a:not(.gz-btn) {
	color: var(--gz-text-soft);
	font-size: 0.9rem;
}

.gz-footer-col a:not(.gz-btn):hover { color: var(--gz-lime); }

.gz-footer-cta-link { font-weight: 700; color: var(--gz-lime) !important; }

.gz-footer-area {
	margin-top: 1rem;
	font-size: 0.8rem;
	color: var(--gz-text-faint);
}

.gz-footer-bottom {
	margin-top: 2.5rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--gz-border);
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 2rem;
	justify-content: space-between;
	font-size: 0.85rem;
	color: var(--gz-text-faint);
}

.gz-footer-legal {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 1.25rem;
}

.gz-footer-legal a { color: var(--gz-text-faint); }
.gz-footer-legal a:hover { color: var(--gz-lime); }

/* ---------- Article / blog ---------- */
.gz-article-image img { border-radius: var(--gz-radius); }
.gz-article-footer { margin-top: 2.5rem; padding-top: 1.5rem; border-top: 1px solid var(--gz-border); }

.gz-pagination { margin-top: 2.5rem; }
.gz-pagination .nav-links { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.gz-pagination .page-numbers {
	display: inline-flex;
	min-width: 44px;
	min-height: 44px;
	align-items: center;
	justify-content: center;
	padding: 0.4rem 0.9rem;
	border: 1px solid var(--gz-border);
	border-radius: 10px;
	color: var(--gz-text-soft);
}
.gz-pagination .page-numbers.current {
	background: var(--gz-lime);
	color: var(--gz-black);
	border-color: var(--gz-lime);
	font-weight: 700;
}

/* Search */
.gz-search-wrap { margin-top: 3rem; max-width: 32rem; }
.gz-search-wrap form { display: flex; gap: 0.6rem; }
.gz-search-wrap input[type="search"] {
	flex: 1;
	background: var(--gz-black);
	color: var(--gz-text);
	border: 1px solid var(--gz-border);
	border-radius: var(--gz-radius-pill);
	padding: 0.7rem 1.2rem;
	font: inherit;
	min-height: 44px;
}
.gz-search-wrap input[type="search"]:focus { border-color: var(--gz-lime); outline: none; }
.gz-search-wrap input[type="submit"],
.gz-search-wrap button {
	background: var(--gz-lime);
	color: var(--gz-black);
	border: 0;
	border-radius: var(--gz-radius-pill);
	padding: 0.7rem 1.4rem;
	font-weight: 700;
	cursor: pointer;
	min-height: 44px;
}

/* Sitemap */
.gz-sitemap-list { columns: 1; }
@media (min-width: 700px) { .gz-sitemap-list { columns: 2; column-gap: 3rem; } }
.gz-sitemap-list li { margin-bottom: 0.4rem; break-inside: avoid; }
.gz-sitemap-list ul { list-style: none; padding-left: 1.1rem; margin-top: 0.4rem; }
.gz-sitemap-list > li { list-style: none; }
.gz-sitemap-list a { color: var(--gz-text-soft); }
.gz-sitemap-list a:hover { color: var(--gz-lime); }

/* ---------- Reveal animation hooks ---------- */
.gz-reveal {
	opacity: 0;
	transform: translateY(22px);
	transition: opacity var(--gz-reveal-dur, 560ms) var(--gz-curve-enter, ease), transform var(--gz-reveal-dur, 560ms) var(--gz-curve-enter, ease);
	transition-delay: var(--gz-delay, 0ms);
}

.gz-reveal.is-visible {
	opacity: 1;
	transform: none;
}

/* No-JS / pre-JS safety: only hide when JS has tagged the document */
html:not(.gz-js) .gz-reveal {
	opacity: 1;
	transform: none;
}

/* ---------- WordPress core alignment classes ---------- */
.alignwide { max-width: var(--gz-container); }
.alignfull { width: 100%; max-width: none; }
.aligncenter { display: block; margin-inline: auto; }
.wp-caption { max-width: 100%; }
.wp-caption-text { color: var(--gz-text-faint); font-size: 0.85rem; }
.screen-reader-text {
	border: 0;
	clip-path: inset(50%);
	height: 1px;
	width: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
}

/* =====================================================================
   Phase 1 homepage components
   ===================================================================== */

/* ---------- Split hero ---------- */
.gz-hero--split { padding: 4rem 0 4.5rem; }

@media (min-width: 1024px) {
	.gz-hero--split { padding: 5.5rem 0 6rem; }
}

.gz-hero-split-grid {
	position: relative;
	z-index: 2;
	display: grid;
	gap: 3rem;
	align-items: center;
}

@media (min-width: 1024px) {
	.gz-hero-split-grid { grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr); }
}

.gz-hero--split .gz-hero-lead { max-width: 38rem; }
.gz-hero--split .gz-three-canvas { opacity: 0.4; }
.gz-hero--split h1 { font-size: clamp(2rem, 4.6vw, 3.1rem); }

.gz-btn--glow { box-shadow: 0 0 28px rgba(234, 255, 18, 0.22); }

.gz-kicker--muted { color: var(--gz-medium-gray); }

.gz-trust-notes {
	list-style: none;
	margin: 2rem 0 0;
	padding: 1.25rem 0 0;
	border-top: 1px solid var(--gz-border);
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem 1.75rem;
}

.gz-trust-notes li {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.85rem;
	color: var(--gz-text-faint);
}

.gz-trust-notes svg { color: var(--gz-lime); flex: none; }

/* Trust strip dot separators (text-only items) */
.gz-trust-list li::before {
	content: "";
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--gz-lime);
	flex: none;
}

/* ---------- Ops dashboard (hero visual) ---------- */
.gz-dash-wrap {
	perspective: 1400px;
	width: 100%;
	max-width: 560px;
	margin-inline: auto;
	min-width: 0;
}

.gz-dash {
	position: relative;
	overflow: hidden;
	background: #0a0a0a;
	border: 1px solid var(--gz-border);
	border-radius: 18px;
	padding: 1rem;
	font-family: var(--gz-font-mono);
	box-shadow: 0 40px 90px rgba(0, 0, 0, 0.65);
}

@media (min-width: 1024px) {
	.gz-dash { animation: gz-dash-float 9s ease-in-out infinite; }
}

@keyframes gz-dash-float {
	0%, 100% { transform: rotateY(-7deg) rotateX(2.5deg) translateY(0); }
	50%      { transform: rotateY(-7deg) rotateX(2.5deg) translateY(-10px); }
}

.gz-dash-topbar {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	padding-bottom: 0.7rem;
	border-bottom: 1px solid var(--gz-border);
}

.gz-dash-title { color: var(--gz-lime); font-size: 0.68rem; letter-spacing: 0.18em; font-weight: 700; }
.gz-dash-meta { margin-left: auto; color: var(--gz-medium-gray); font-size: 0.62rem; letter-spacing: 0.14em; }

.gz-dash-chips { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 0.7rem 0; }

.gz-chip {
	font-size: 0.58rem;
	font-weight: 700;
	letter-spacing: 0.13em;
	color: var(--gz-lime);
	border: 1px solid rgba(234, 255, 18, 0.45);
	border-radius: var(--gz-radius-pill);
	padding: 0.28rem 0.65rem;
	white-space: nowrap;
}

.gz-chip--solid { background: var(--gz-lime); color: var(--gz-black); border-color: var(--gz-lime); }

.gz-dash-grid { display: grid; grid-template-columns: 1.25fr 0.9fr; gap: 0.6rem; }

@media (max-width: 540px) {
	.gz-dash-grid { grid-template-columns: 1fr; }
}

.gz-dash-cams { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.6rem; align-content: start; min-width: 0; }
.gz-dash-side { display: grid; gap: 0.6rem; align-content: start; min-width: 0; }

.gz-radar {
	position: relative;
	width: 104px;
	height: 104px;
	border-radius: 50%;
	border: 1px solid #2c2c2c;
	background: radial-gradient(circle, transparent 0 32%, rgba(234, 255, 18, 0.08) 32% 33%, transparent 33% 64%, rgba(234, 255, 18, 0.08) 64% 65%, transparent 65%);
	overflow: hidden;
	justify-self: center;
}

.gz-radar::before {
	content: "";
	position: absolute;
	left: 50%;
	top: 0;
	bottom: 0;
	width: 1px;
	background: rgba(234, 255, 18, 0.12);
}

.gz-radar::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 0;
	right: 0;
	height: 1px;
	background: rgba(234, 255, 18, 0.12);
}

.gz-radar-sweep {
	position: absolute;
	inset: 0;
	border-radius: 50%;
	background: conic-gradient(from 0deg, rgba(234, 255, 18, 0.35), transparent 75deg, transparent 360deg);
	animation: gz-radar-spin 4.5s linear infinite;
}

@keyframes gz-radar-spin {
	to { transform: rotate(360deg); }
}

.gz-radar-blip {
	position: absolute;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--gz-lime);
	animation: gz-box-blink 2.2s infinite;
}

.gz-radar-blip--1 { left: 30%; top: 38%; }
.gz-radar-blip--2 { left: 64%; top: 62%; animation-delay: 1.1s; }

.gz-dash-panel {
	background: var(--gz-soft-black);
	border: 1px solid var(--gz-border);
	border-radius: 9px;
	padding: 0.55rem 0.7rem;
	display: grid;
	gap: 0.25rem;
}

.gz-dash-panel--alert { border-color: rgba(234, 255, 18, 0.55); }
.gz-dash-panel--verify { border-color: rgba(234, 255, 18, 0.3); }

.gz-dash-panel-label {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	font-size: 0.58rem;
	letter-spacing: 0.14em;
	font-weight: 700;
	color: var(--gz-lime);
}

.gz-dash-panel-text { font-size: 0.66rem; letter-spacing: 0.06em; color: var(--gz-light-gray); }

.gz-dash-bar { height: 4px; border-radius: 2px; background: #1d1d1d; overflow: hidden; }

.gz-dash-bar-fill {
	display: block;
	height: 100%;
	width: 62%;
	background: var(--gz-lime);
	animation: gz-bar-grow 3s ease-in-out infinite;
}

@keyframes gz-bar-grow {
	0%, 100% { width: 40%; }
	50%      { width: 78%; }
}

.gz-dash-scan {
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	height: 1.5px;
	background: linear-gradient(90deg, transparent, var(--gz-lime), transparent);
	opacity: 0.5;
	animation: gz-dash-scanline 5.5s linear infinite;
}

@keyframes gz-dash-scanline {
	0%   { top: 0; }
	100% { top: 100%; }
}

/* ---------- Problem / solution split ---------- */
.gz-duo { display: grid; gap: 1.25rem; }

@media (min-width: 900px) {
	.gz-duo { grid-template-columns: 1fr 1fr; }
}

.gz-duo-panel {
	border: 1px solid var(--gz-border);
	border-radius: calc(var(--gz-radius) + 6px);
	padding: 2rem 1.75rem;
	background: var(--gz-soft-black);
}

@media (min-width: 900px) {
	.gz-duo-panel { padding: 2.75rem 2.5rem; }
}

.gz-duo-panel h2 { font-size: clamp(1.35rem, 2.6vw, 1.7rem); }
.gz-duo-panel p { color: var(--gz-text-soft); }

.gz-duo-panel--solution {
	background:
		radial-gradient(ellipse 80% 60% at 85% 0%, rgba(234, 255, 18, 0.07), transparent 65%),
		var(--gz-black);
	border-color: rgba(234, 255, 18, 0.4);
	position: relative;
	overflow: hidden;
}

.gz-duo-panel--solution::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
	width: 3px;
	background: var(--gz-lime);
}

/* ---------- Tick lists ---------- */
.gz-ticks {
	list-style: none;
	margin: 1.25rem 0 0;
	padding: 0;
	display: grid;
	gap: 0.6rem;
}

.gz-ticks li {
	display: flex;
	align-items: flex-start;
	gap: 0.6rem;
	color: var(--gz-text-soft);
	font-size: 0.95rem;
}

.gz-ticks svg { color: var(--gz-lime); flex: none; margin-top: 0.25em; }

.gz-ticks--cols { margin-bottom: 1.75rem; }

@media (min-width: 640px) {
	.gz-ticks--cols { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 1200px) {
	.gz-ticks--cols { grid-template-columns: repeat(3, 1fr); }
}

/* ---------- Section head ---------- */
.gz-section-head { max-width: 54rem; margin-bottom: clamp(1.75rem, 4vw, 3rem); }
.gz-section-intro { color: var(--gz-text-soft); font-size: 1.05rem; max-width: 42rem; }

/* ---------- Visual-first split ordering ---------- */
.gz-split--visual-first .gz-feature-visual { order: 2; }

@media (min-width: 900px) {
	.gz-split--visual-first .gz-feature-visual { order: 0; }
}

/* ---------- 7-step pipeline (home) ---------- */
.gz-pipeline-track--seven { margin-top: 2.25rem; }

@media (min-width: 900px) {
	.gz-pipeline-track--seven { grid-template-columns: repeat(4, 1fr); }
	.gz-pipeline-track--seven::before { display: none; }
}

@media (min-width: 1200px) {
	.gz-pipeline-track--seven { grid-template-columns: repeat(7, 1fr); }
	.gz-pipeline-track--seven::before { display: block; }
}

/* ---------- Two-up feature columns ---------- */
@media (min-width: 640px) {
	.gz-cols--2 { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 1024px) {
	.gz-cols--2 { grid-template-columns: repeat(2, 1fr); }
}

/* ---------- Industry card capability chips ---------- */
.gz-card-caps {
	list-style: none;
	margin: 0.75rem 0 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem 0.9rem;
}

.gz-card-caps li {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	font-size: 0.78rem;
	color: var(--gz-text-faint);
}

.gz-card-caps li::before {
	content: "";
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: var(--gz-lime);
	flex: none;
}

/* ---------- Final CTA: subtle grid background ---------- */
.gz-cta-band-inner {
	background:
		radial-gradient(ellipse 60% 120% at 90% 50%, rgba(234, 255, 18, 0.1), transparent 70%),
		repeating-linear-gradient(90deg, transparent 0 79px, rgba(234, 255, 18, 0.025) 79px 80px),
		var(--gz-black);
}

/* =====================================================================
   v1.2 — Command-center homepage layout
   ===================================================================== */

/* ---------- Header: transparent over hero, solid on scroll ---------- */
.gz-home .gz-header {
	background: transparent;
	border-bottom-color: transparent;
	backdrop-filter: none;
	-webkit-backdrop-filter: none;
	transition: background var(--gz-transition), border-color var(--gz-transition);
}

.gz-home .gz-header.is-scrolled {
	background: rgba(0, 0, 0, 0.9);
	border-bottom-color: var(--gz-border);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
}

/* ---------- 1. Command center hero ---------- */
.gz-hero--command {
	display: flex;
	flex-direction: column;
	min-height: min(96svh, 980px);
	padding: 2.5rem 0 0;
	overflow: hidden;
}

.gz-home .gz-hero--command { margin-top: -70px; padding-top: calc(70px + 2.5rem); }

.gz-command-grid {
	position: relative;
	z-index: 2;
	display: grid;
	gap: 3rem;
	align-items: center;
	flex: 1;
	padding-block: 3rem 4rem;
}

@media (min-width: 1024px) {
	.gz-command-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 4.5rem; }
}

.gz-hero--command h1 { font-size: clamp(2rem, 4.4vw, 3rem); letter-spacing: -0.02em; }
.gz-hero--command .gz-hero-lead { max-width: 34rem; }
.gz-hero--command .gz-three-canvas { opacity: 0.35; }

/* Oversized dashboard that bleeds past the container edge */
.gz-command-visual { position: relative; min-width: 0; }

.gz-command-visual .gz-dash-wrap {
	max-width: 660px;
	transform: translate(var(--gz-px, 0px), var(--gz-py, 0px));
	transition: transform 300ms ease-out;
}

@media (min-width: 1280px) {
	.gz-command-visual .gz-dash-wrap { width: calc(100% + 5rem); max-width: none; }
}

/* glow halo behind the dashboard */
.gz-command-visual::before {
	content: "";
	position: absolute;
	inset: -12% -18%;
	background: radial-gradient(ellipse 60% 55% at 55% 45%, rgba(234, 255, 18, 0.09), transparent 70%);
	pointer-events: none;
}

/* floating depth panels around the dash */
.gz-dash-float {
	position: absolute;
	z-index: 3;
	background: var(--gz-soft-black);
	border: 1px solid rgba(234, 255, 18, 0.4);
	border-radius: 10px;
	padding: 0.55rem 0.8rem;
	display: grid;
	gap: 0.2rem;
	font-family: var(--gz-font-mono);
	box-shadow: 0 18px 44px rgba(0, 0, 0, 0.6);
	animation: gz-float-b 7s ease-in-out infinite;
}

.gz-dash-float--log { right: -0.75rem; bottom: 9%; }
.gz-dash-float--chip { left: -0.9rem; top: 14%; padding: 0.35rem; animation-delay: 1.6s; }

@media (max-width: 1023px) {
	.gz-dash-float--log { right: 0; }
	.gz-dash-float--chip { left: 0; }
}

@keyframes gz-float-b {
	0%, 100% { transform: translateY(0); }
	50%      { transform: translateY(-8px); }
}

/* Capability strip integrated at hero bottom */
.gz-hero-capstrip {
	position: relative;
	z-index: 2;
	border-top: 1px solid var(--gz-border);
	background: rgba(0, 0, 0, 0.6);
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
	padding: 1.5rem 0;
}

.gz-hero-capstrip .gz-trust-list { gap: 0.85rem 3rem; }

/* ---------- 2. Workflow panels ---------- */
.gz-flow-list { display: grid; gap: 2rem; margin-top: 2rem; }

.gz-flow-panel {
	display: grid;
	gap: 1.75rem;
	background: var(--gz-soft-black);
	border: 1px solid var(--gz-border);
	border-radius: calc(var(--gz-radius) + 8px);
	padding: 2.25rem 1.75rem;
	transition: transform var(--gz-transition), border-color var(--gz-transition);
}

@media (min-width: 980px) {
	.gz-flow-panel {
		grid-template-columns: 84px minmax(0, 1.2fr) minmax(0, 0.8fr);
		align-items: center;
		padding: 3rem 3.25rem;
		gap: 2.5rem;
	}
}

.gz-flow-panel:hover {
	transform: translateY(-5px);
	border-color: rgba(234, 255, 18, 0.5);
}

.gz-flow-num {
	font-family: var(--gz-font-mono);
	font-size: clamp(1.6rem, 3vw, 2.4rem);
	font-weight: 700;
	color: var(--gz-lime);
	opacity: 0.85;
	line-height: 1;
}

.gz-flow-main h3 { font-size: clamp(1.2rem, 2.2vw, 1.5rem); margin-bottom: 0.5rem; }
.gz-flow-main p { color: var(--gz-text-soft); margin-bottom: 0.9rem; max-width: 44rem; }

.gz-tagrow {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
}

.gz-tagrow li {
	font-size: 0.76rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	color: var(--gz-light-gray);
	border: 1px solid var(--gz-border);
	border-radius: var(--gz-radius-pill);
	padding: 0.28rem 0.75rem;
	background: var(--gz-dark-gray);
}

.gz-flow-visual { min-width: 0; }

.gz-mini-ui {
	display: grid;
	gap: 0.5rem;
	font-family: var(--gz-font-mono);
	max-width: 300px;
}

.gz-mini-cam {
	position: relative;
	aspect-ratio: 16 / 7;
	background:
		repeating-linear-gradient(0deg, transparent 0 11px, rgba(255, 255, 255, 0.025) 11px 12px),
		var(--gz-black);
	border: 1px solid var(--gz-border);
	border-radius: 8px;
	overflow: hidden;
}

.gz-mini-gatebar {
	position: absolute;
	left: 12%;
	bottom: 22%;
	width: 55%;
	height: 4px;
	border-radius: 2px;
	background: var(--gz-lime);
	transform-origin: left center;
	transform: rotate(-16deg);
}

.gz-mini-lot {
	position: relative;
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: 4px;
	background: var(--gz-black);
	border: 1px solid var(--gz-border);
	border-radius: 8px;
	padding: 10px;
}

.gz-mini-lot span {
	height: 22px;
	background: var(--gz-dark-gray);
	border-radius: 3px;
}

.gz-mini-patrol {
	position: absolute;
	left: 10%;
	top: 50%;
	width: 80%;
	height: 1.5px;
	background: linear-gradient(90deg, transparent, var(--gz-lime), transparent);
	opacity: 0.8;
}

/* ---------- 3. Mission control ---------- */
.gz-mission-grid {
	display: grid;
	gap: 2.5rem;
	margin-top: 1.5rem;
	align-items: start;
}

@media (min-width: 1024px) {
	.gz-mission-grid { grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr); gap: 4rem; }

	.gz-mission-map {
		position: sticky;
		top: 100px;
	}
}

.gz-mission-map .gz-yard-visual { margin: 0; padding: 0; max-width: none; }

.gz-mission-readout {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	margin-top: 1rem;
	font-family: var(--gz-font-mono);
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--gz-lime);
	border: 1px solid rgba(234, 255, 18, 0.4);
	border-radius: var(--gz-radius-pill);
	padding: 0.45rem 1rem;
}

.gz-mission-steps {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 2.25rem;
}

.gz-mission-step {
	border-left: 3px solid var(--gz-border);
	padding: 0.4rem 0 0.4rem 1.75rem;
	transition: border-color var(--gz-transition);
}

@media (min-width: 1024px) {
	.gz-mission-step { min-height: 7.5rem; }
}

.gz-mission-step h3 { font-size: 1.15rem; margin-bottom: 0.45rem; color: var(--gz-text-soft); transition: color var(--gz-transition); }
.gz-mission-step p { margin: 0; color: var(--gz-text-faint); font-size: 0.97rem; max-width: 34rem; transition: color var(--gz-transition); }

.gz-mission-step.is-active { border-left-color: var(--gz-lime); }
.gz-mission-step.is-active h3 { color: var(--gz-white); }
.gz-mission-step.is-active p { color: var(--gz-text-soft); }

/* Without JS or with reduced motion, all steps read at full strength */
html:not(.gz-js) .gz-mission-step h3 { color: var(--gz-white); }
html:not(.gz-js) .gz-mission-step p { color: var(--gz-text-soft); }

@media (prefers-reduced-motion: reduce) {
	.gz-mission-step h3 { color: var(--gz-white); }
	.gz-mission-step p { color: var(--gz-text-soft); }
}

.gz-mission-cta { margin-top: 2.25rem; }

/* Marker dimming: enhancement only (JS present + motion allowed) */
@media (prefers-reduced-motion: no-preference) {
	.gz-js .gz-yard-visual--mission .gz-yd-marker {
		opacity: 0.35;
		transition: opacity 300ms ease;
	}

	.gz-js .gz-yard-visual--mission .gz-yd-marker.is-on { opacity: 1; }

	.gz-js .gz-yard-visual--mission .gz-yd-marker.is-on .gz-yd-point,
	.gz-js .gz-yard-visual--mission .gz-yd-marker.is-on .gz-yd-gate-arm {
		filter: drop-shadow(0 0 6px rgba(234, 255, 18, 0.7));
	}
}

/* ---------- 4. Bento grid ---------- */
.gz-bento {
	display: grid;
	gap: 1.4rem;
	margin-top: 2rem;
	grid-template-columns: 1fr;
}

.gz-bento-card { padding: 1.75rem 1.75rem 2.9rem; }
.gz-bento-card h3 { font-size: 1.05rem; margin-bottom: 0.4rem; color: var(--gz-white); }
.gz-bento-card p { font-size: 0.92rem; margin: 0; }

@media (min-width: 640px) {
	.gz-bento { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 1024px) {
	.gz-bento {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		grid-template-areas:
			"live live ai   gate"
			"live live int  int"
			"drv  vis  voi  inc"
			"logs logs logs cta";
	}

	.gz-bento--live { grid-area: live; }
	.gz-bento--ai { grid-area: ai; }
	.gz-bento--gate { grid-area: gate; }
	.gz-bento--intercom { grid-area: int; }
	.gz-bento--wide { grid-area: logs; display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem 1.25rem; }
	.gz-bento--wide p { flex-basis: 100%; max-width: 44rem; }
	.gz-bento--cta { grid-area: cta; }
	.gz-bento--sm:nth-of-type(5) { grid-area: drv; }
	.gz-bento--sm:nth-of-type(6) { grid-area: vis; }
	.gz-bento--sm:nth-of-type(7) { grid-area: voi; }
	.gz-bento--sm:nth-of-type(8) { grid-area: inc; }

	.gz-bento--live { display: flex; flex-direction: column; }
	.gz-bento--live p { max-width: 30rem; }
	.gz-bento--live .gz-mini-ui--bento { margin-top: auto; grid-template-columns: 1fr 1fr; max-width: none; padding-top: 1.25rem; }
}

.gz-bento--sm { padding: 1.2rem 1.3rem 2.4rem; }
.gz-bento--sm h3 { margin: 0; font-size: 0.98rem; }

.gz-bento--cta {
	background: var(--gz-lime);
	border-color: var(--gz-lime);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1.4rem;
}

.gz-bento--cta h3 { color: var(--gz-black); font-size: 1.02rem; margin: 0; }
.gz-bento--cta:hover { background: var(--gz-lime-dark); border-color: var(--gz-lime-dark); }
.gz-bento-cta-arrow { color: var(--gz-black); font-size: 1.4rem; font-weight: 700; flex: none; }

/* ---------- 5. Activity groups ---------- */
.gz-group {
	border: 1px solid var(--gz-border);
	border-radius: calc(var(--gz-radius) + 8px);
	background: var(--gz-black);
	padding: 1.75rem 1.5rem;
	margin-top: 1.5rem;
}

@media (min-width: 900px) {
	.gz-group { padding: 2.25rem 2.5rem; }
}

.gz-group-head {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.4rem 1.5rem;
	padding-bottom: 1.25rem;
	margin-bottom: 1.25rem;
	border-bottom: 1px solid var(--gz-border);
}

.gz-group-head h3 {
	font-size: 1.05rem;
	margin: 0;
	color: var(--gz-lime);
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.gz-group-head p { margin: 0; color: var(--gz-text-faint); font-size: 0.9rem; }

.gz-group-grid { display: grid; gap: 1.1rem; }

@media (min-width: 760px) { .gz-group-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.gz-mini-row {
	position: relative;
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 0.75rem;
	border: 1px solid var(--gz-border);
	border-radius: var(--gz-radius);
	background: var(--gz-soft-black);
	padding: 1.5rem 1.6rem;
	color: var(--gz-text-soft);
	transition: border-color var(--gz-transition), background var(--gz-transition);
	cursor: pointer;
}

.gz-mini-row:hover {
	border-color: rgba(234, 255, 18, 0.5);
	background: var(--gz-dark-gray);
	color: var(--gz-text-soft);
}

.gz-mini-row-main { display: grid; gap: 0.3rem; min-width: 0; }
.gz-mini-row-title { color: var(--gz-white); font-weight: 700; font-size: 0.98rem; }
.gz-mini-row-text { font-size: 0.85rem; color: var(--gz-text-faint); }
.gz-mini-row .gz-card-arrow { position: static; margin-top: 0.15rem; }
.gz-mini-row .gz-card-caps { margin-top: 0.35rem; display: flex; flex-wrap: wrap; gap: 0.3rem 0.85rem; padding: 0; }
.gz-mini-row .gz-card-caps span { display: inline-flex; align-items: center; gap: 0.4rem; font-size: 0.76rem; color: var(--gz-text-faint); }
.gz-mini-row .gz-card-caps span::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: var(--gz-lime); flex: none; }

/* ---------- 7. Operations stack ---------- */
.gz-stack-grid { display: grid; gap: 2.5rem; align-items: center; }

@media (min-width: 1024px) {
	.gz-stack-grid { grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); gap: 4rem; }
}

.gz-stack {
	list-style: none;
	margin: 0;
	padding: 0 0 0 1.25rem;
	position: relative;
	display: grid;
	gap: 1.2rem;
	perspective: 1100px;
}

.gz-stack::before {
	content: "";
	position: absolute;
	left: 0;
	top: 18px;
	bottom: 18px;
	width: 2px;
	background: linear-gradient(180deg, var(--gz-lime), rgba(234, 255, 18, 0.12));
}

/* margin (not transform) so the .gz-reveal animation can't cancel the offset */
.gz-stack-layer { margin-left: calc(var(--gz-i, 0) * 14px); }

@media (max-width: 760px) {
	.gz-stack-layer { margin-left: 0; }
}

.gz-stack-layer a {
	position: relative;
	display: flex;
	align-items: center;
	gap: 1.1rem;
	border: 1px solid var(--gz-border);
	border-radius: var(--gz-radius);
	background: linear-gradient(180deg, var(--gz-soft-black), var(--gz-charcoal));
	padding: 1.1rem 1.4rem;
	color: var(--gz-text-soft);
	box-shadow: 0 14px 30px rgba(0, 0, 0, 0.45);
	transition: border-color var(--gz-transition), transform var(--gz-transition);
}

.gz-stack-layer a:hover {
	border-color: rgba(234, 255, 18, 0.5);
	transform: translateY(-3px);
}

.gz-stack-layer a::before {
	content: "";
	position: absolute;
	left: calc(-1.25rem - var(--gz-i, 0) * 14px);
	top: 50%;
	width: 9px;
	height: 9px;
	border-radius: 50%;
	background: var(--gz-lime);
	transform: translate(-3.5px, -50%);
}

.gz-stack-num {
	font-family: var(--gz-font-mono);
	font-weight: 700;
	font-size: 0.85rem;
	color: var(--gz-lime);
	flex: none;
}

.gz-stack-body { display: grid; gap: 0.15rem; min-width: 0; }
.gz-stack-body strong { color: var(--gz-white); font-size: 1rem; }
.gz-stack-body span { font-size: 0.88rem; color: var(--gz-text-faint); }
.gz-stack-layer .gz-card-arrow { position: static; margin-left: auto; }

/* ---------- 8. Compact location strip ---------- */
.gz-location-strip--compact { padding: 2.25rem 0; }

.gz-location-strip--compact .gz-location-title { font-size: 1.2rem; margin-bottom: 0.4rem; }
.gz-location-strip--compact .gz-location-sentence { font-size: 0.9rem; color: var(--gz-text-faint); margin: 0; }
.gz-location-strip--compact .gz-kicker { margin-bottom: 0.5rem; }

.gz-location-inner { display: grid; gap: 1.25rem; align-items: center; }

@media (min-width: 1024px) {
	.gz-location-strip--compact .gz-location-inner { grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); }
}

.gz-location-strip--compact .gz-city-chips { margin: 0; }
.gz-location-strip--compact .gz-city-chips li { font-size: 0.78rem; padding: 0.28rem 0.8rem; }

/* ---------- 9. FAQ two-column ---------- */
.gz-faq-grid { display: grid; gap: 2rem; align-items: start; }

@media (min-width: 1024px) {
	.gz-faq-grid { grid-template-columns: minmax(0, 0.75fr) minmax(0, 1.25fr); gap: 4rem; }

	.gz-faq-intro { position: sticky; top: 110px; }
}

.gz-faq-grid .gz-faq-list { margin-top: 0; max-width: none; }
.gz-faq-intro-text { color: var(--gz-text-soft); max-width: 26rem; }

/* ---------- 10. Cinematic final CTA ---------- */
.gz-cta-final {
	position: relative;
	overflow: hidden;
	padding: 6rem 0;
	background:
		radial-gradient(ellipse 70% 90% at 80% 20%, rgba(234, 255, 18, 0.07), transparent 65%),
		repeating-linear-gradient(90deg, transparent 0 79px, rgba(234, 255, 18, 0.03) 79px 80px),
		repeating-linear-gradient(0deg, transparent 0 79px, rgba(234, 255, 18, 0.02) 79px 80px),
		var(--gz-black);
	border-top: 1px solid var(--gz-border);
}

.gz-cta-final-grid { display: grid; gap: 3rem; align-items: center; }

@media (min-width: 1024px) {
	.gz-cta-final-grid { grid-template-columns: minmax(0, 1.25fr) minmax(0, 0.75fr); }
}

.gz-cta-final h2 { font-size: clamp(1.8rem, 4vw, 2.8rem); }
.gz-cta-final p { color: var(--gz-text-soft); max-width: 36rem; }

.gz-cta-final-visual { position: relative; min-height: 180px; font-family: var(--gz-font-mono); }

.gz-cta-card {
	position: absolute;
	width: min(320px, 100%);
	box-shadow: 0 24px 60px rgba(0, 0, 0, 0.6);
	animation: gz-float-b 8s ease-in-out infinite;
}

.gz-cta-card { left: 0; top: 0; transform: rotate(-2deg); }
.gz-cta-card--b { left: 14%; top: 96px; transform: rotate(1.5deg); animation-delay: 1.4s; border-color: rgba(234, 255, 18, 0.45); }

/* ---------- Footer CTA card ---------- */
.gz-footer-card {
	border: 1px solid rgba(234, 255, 18, 0.4);
	border-radius: var(--gz-radius);
	background: var(--gz-soft-black);
	padding: 1rem 1.1rem;
	margin-bottom: 1rem;
	display: grid;
	gap: 0.7rem;
}

.gz-footer-card-title { margin: 0; color: var(--gz-white); font-weight: 700; font-size: 0.92rem; }

.gz-btn--sm { padding: 0.5rem 1.1rem; font-size: 0.85rem; min-height: 38px; }

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

	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
	}

	.gz-reveal { opacity: 1; transform: none; }
	.gz-scanline { display: none; }
	.gz-three-canvas { display: none; }
	.gz-yd-patrol-dot { display: none; }
}

/* =====================================================================
   v1.3 — "Quiet Command Center" design layer
   Premium pass via restraint, rhythm, depth-from-light, unified motion.
   Appended last so later-wins overrides apply without touching base rules.
   Every animation gated behind .gz-js + prefers-reduced-motion: no-preference,
   each with a fully readable static / no-JS fallback.
   ===================================================================== */

/* ---------- New tokens (alpha/grayscale derivations only — no new hue) ---------- */
:root {
	--gz-curve-enter: cubic-bezier(0.32, 0.72, 0, 1);
	--gz-curve-button: cubic-bezier(0.34, 1.56, 0.64, 1);
	--gz-curve-soft: cubic-bezier(0.25, 0.46, 0.45, 0.94);
	--gz-reveal-dur: 560ms;

	--gz-bevel: inset 0 1px 0 0 rgba(234, 255, 18, 0.05);
	--gz-pin-border: 1px solid rgba(234, 255, 18, 0.18);
	--gz-glow-rest: 0 0 16px rgba(234, 255, 18, 0.12);
	--gz-glow-hover: 0 0 24px rgba(234, 255, 18, 0.26);
	--gz-card-lift: 0 8px 24px rgba(0, 0, 0, 0.35);

	--gz-lime-accent-rest: rgba(234, 255, 18, 0.42);
	--gz-meta-gray: #9a9a9a;
}

/* ---------- Page field: deeper OLED black + ambient intelligence wash ---------- */
body { background: var(--gz-black); }

@media (prefers-reduced-motion: no-preference) {
	.gz-js body::before {
		content: "";
		position: fixed;
		inset: -12%;
		z-index: -1;
		pointer-events: none;
		background:
			radial-gradient(42% 52% at 18% 22%, rgba(234, 255, 18, 0.13), transparent 70%),
			radial-gradient(46% 56% at 82% 72%, rgba(234, 255, 18, 0.10), transparent 70%);
		animation: gz-ambient-drift 22s ease-in-out infinite alternate;
		will-change: transform, opacity;
	}

	/* Background field breathes + drifts. Transform + opacity only (GPU-composited,
	   no repaint). inset:-12% bleed so the scale/translate never reveals an edge. */
	@keyframes gz-ambient-drift {
		0%   { transform: translate3d(-4%, 3%, 0)  scale(1.04); opacity: 0.5; }
		100% { transform: translate3d(5%, -4%, 0) scale(1.16); opacity: 1; }
	}
}

/* ---------- Type hierarchy + quiet mono eyebrow ---------- */
h1 { letter-spacing: -0.02em; }
h2 { letter-spacing: -0.02em; }
.gz-hero-lead { font-size: clamp(1.05rem, 1.6vw, 1.2rem); line-height: 1.6; }

/* Lime is reserved as a signal (hero + final close + interaction); interior
   section eyebrows go quiet mono-gray for premium contrast/rhythm. */
.gz-kicker--section {
	color: var(--gz-meta-gray);
	font-family: var(--gz-font-mono);
	font-size: 0.72rem;
	letter-spacing: 0.22em;
	font-weight: 700;
}

/* ---------- Section pacing rhythm (paced acts, not equal slabs) ---------- */
.gz-section-block--flows    { padding: clamp(4rem, 9vw, 4.5rem) 0 clamp(5rem, 10vw, 5.5rem); }
.gz-section-block--mission  { padding: clamp(5rem, 10vw, 5.5rem) 0 clamp(4.5rem, 9vw, 5rem); }
.gz-section-block--bento    { padding: clamp(3.5rem, 8vw, 4rem) 0 clamp(5.5rem, 11vw, 6.5rem); }
.gz-section-block--activity { padding: clamp(3rem, 7vw, 3.5rem) 0; }
.gz-section-block--stepper  { padding: clamp(4.5rem, 9vw, 5rem) 0 clamp(5rem, 10vw, 5.5rem); }
.gz-section-block--stack    { padding: clamp(4rem, 8vw, 4.5rem) 0 clamp(4.5rem, 9vw, 5rem); }
.gz-section-block--capstrip { padding: clamp(2.5rem, 6vw, 3rem) 0 clamp(3.5rem, 7vw, 4rem); --gz-reveal-dur: 340ms; }

/* ---------- Card depth system: bevel + legible machined left-accent ---------- */
/* mission steps intentionally excluded (they keep their own single accent). */
.gz-card:not(.gz-bento--cta),
.gz-flow-panel,
.gz-mini-row,
.gz-faq-item {
	box-shadow: var(--gz-bevel);
	border-left-width: 2px;
	border-left-style: solid;
	border-left-color: var(--gz-lime-accent-rest);
	transition: border-color var(--gz-transition), background-color var(--gz-transition), box-shadow var(--gz-transition), transform var(--gz-transition);
}

.gz-card:not(.gz-bento--cta):hover,
.gz-card:not(.gz-bento--cta):focus-visible,
.gz-flow-panel:hover,
.gz-mini-row:hover,
.gz-mini-row:focus-visible,
.gz-faq-item:hover {
	border-left-color: var(--gz-lime);
	box-shadow: var(--gz-card-lift), var(--gz-bevel);
}

.gz-group { box-shadow: var(--gz-bevel); }
.gz-faq-item[open] { border-left-color: var(--gz-lime); }

/* ---------- Buttons: persistent glow + tactile press (split curves) ---------- */
.gz-btn--primary,
.gz-btn--glow {
	box-shadow: var(--gz-glow-rest);
	transform-origin: center;
	transition: background var(--gz-transition), color var(--gz-transition), border-color var(--gz-transition), box-shadow 260ms var(--gz-curve-soft), transform 200ms var(--gz-curve-button);
}
.gz-btn--primary:hover,
.gz-btn--primary:focus-visible,
.gz-btn--glow:hover,
.gz-btn--glow:focus-visible {
	box-shadow: var(--gz-glow-hover);
	transform: scale(0.985);
}
.gz-btn--primary:active,
.gz-btn--glow:active { transform: scale(0.97); }

/* ---------- Hero: compact trust row + dashboard focal depth ---------- */
.gz-hero-trust-mini {
	list-style: none;
	margin: 1.25rem 0 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(2, auto);
	gap: 0.45rem 1.5rem;
	justify-content: start;
}
.gz-hero-trust-mini li {
	display: inline-flex;
	align-items: center;
	gap: 0.55rem;
	font-family: var(--gz-font-mono);
	font-size: 0.76rem;
	letter-spacing: 0.02em;
	color: var(--gz-text-faint);
}
.gz-hero-trust-mini li::before {
	content: "";
	width: 6px;
	height: 6px;
	border-radius: 2px;
	background: var(--gz-lime);
	flex: none;
}

.gz-command-visual .gz-dash-wrap {
	box-shadow: 0 30px 60px -22px rgba(0, 0, 0, 0.78);
	border-radius: var(--gz-radius);
}
.gz-command-visual::before {
	background: radial-gradient(ellipse 62% 58% at 55% 45%, rgba(234, 255, 18, 0.12), transparent 72%);
}

/* Hero entrance: staggered fade-in on load (above the fold, not scroll-driven) */
@media (prefers-reduced-motion: no-preference) {
	.gz-js .gz-hero-copy > * {
		opacity: 0;
		animation: gz-hero-in var(--gz-reveal-dur, 560ms) var(--gz-curve-enter) forwards;
		animation-delay: var(--gz-delay, 0ms);
	}
	.gz-js .gz-command-visual {
		opacity: 0;
		animation: gz-hero-in var(--gz-reveal-dur, 560ms) var(--gz-curve-enter) 0.18s forwards;
	}
}
@keyframes gz-hero-in {
	from { opacity: 0; transform: translateY(18px); }
	to   { opacity: 1; transform: none; }
}

/* ---------- Section 2: workflow panel reveal stagger ---------- */
.gz-flows { --gz-reveal-dur: 340ms; }
.gz-flow-panel:nth-child(1) { --gz-delay: 0ms; }
.gz-flow-panel:nth-child(2) { --gz-delay: 100ms; }
.gz-flow-panel:nth-child(3) { --gz-delay: 200ms; }
.gz-flow-panel .gz-flow-visual { background: var(--gz-soft-black); box-shadow: var(--gz-bevel); border-radius: var(--gz-radius); }

/* ---------- Section 3: pinned-feel map frame ---------- */
.gz-mission-map {
	border: 1px solid rgba(234, 255, 18, 0.15);
	border-radius: var(--gz-radius);
	background: rgba(0, 0, 0, 0.35);
	box-shadow: var(--gz-bevel);
	padding: 0.85rem;
}

/* ---------- Section 4: premium bento settle ---------- */
.gz-bento { --gz-reveal-dur: 380ms; }
.gz-bento--cta { background: linear-gradient(135deg, var(--gz-lime), var(--gz-lime-dark)); padding: 2.25rem 1.6rem; }

/* ---------- Section 7: stack arrow overshoot on hover ---------- */
.gz-stack-layer a:hover .gz-card-arrow { transform: translateX(5px); transition: transform 300ms var(--gz-curve-button); }

/* ---------- Section 10: final CTA is the loudest, largest action ---------- */
.gz-cta-final { padding-block: clamp(4.5rem, 9vw, 6.5rem); }
.gz-cta-final .gz-btn--primary { box-shadow: var(--gz-glow-hover); }

/* ---------- Relocated capability strip (below hero) ---------- */
.gz-section-block--capstrip { border-block: 1px solid var(--gz-border); background: var(--gz-black); }
.gz-section-block--capstrip .gz-trust-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.8rem 2.5rem;
}
.gz-section-block--capstrip .gz-trust-list li {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	font-family: var(--gz-font-mono);
	font-size: 0.8rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--gz-text-soft);
}
.gz-section-block--capstrip .gz-trust-list li::before {
	content: "";
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--gz-lime);
	flex: none;
}

/* =====================================================================
   v1.4 — Simplified homepage + editable media placeholders
   ===================================================================== */

/* ---------- Media placeholders ---------- */
.gz-media-placeholder {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	background: linear-gradient(180deg, var(--gz-soft-black), var(--gz-charcoal));
	border: 1px dashed var(--gz-border);
	border-radius: var(--gz-radius);
	overflow: hidden;
	color: var(--gz-text-faint);
}
.gz-media-placeholder.ratio-16x9  { aspect-ratio: 16 / 9; }
.gz-media-placeholder.ratio-4x3   { aspect-ratio: 4 / 3; }
.gz-media-placeholder.ratio-square { aspect-ratio: 1 / 1; }
.gz-media-placeholder.ratio-wide  { aspect-ratio: 21 / 9; }

/* Real images (set via Featured Image or Customizer) shown in a media zone.
   aspect-ratio + object-fit:cover keeps framing consistent and avoids layout shift. */
.gz-media { position: relative; width: 100%; margin: 0; overflow: hidden; border-radius: var(--gz-radius); border: 1px solid var(--gz-border); background: var(--gz-soft-black); }
.gz-media.ratio-16x9   { aspect-ratio: 16 / 9; }
.gz-media.ratio-4x3    { aspect-ratio: 4 / 3; }
.gz-media.ratio-square { aspect-ratio: 1 / 1; }
.gz-media.ratio-wide   { aspect-ratio: 21 / 9; }
.gz-media-img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gz-media--hero { box-shadow: 0 30px 60px -24px rgba(0, 0, 0, 0.8); }
/* Video media zones (homepage hero): fill the aspect-ratio box (uploaded file or oEmbed iframe) */
.gz-media--video iframe, .gz-media--video video, .gz-media-video { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; object-fit: cover; display: block; }
.gz-media-link { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: var(--gz-lime); font-weight: 600; }

.gz-ph-inner {
	position: relative;
	z-index: 2;
	display: grid;
	justify-items: center;
	gap: 0.55rem;
	text-align: center;
	padding: 1.5rem;
}
.gz-ph-icon { color: var(--gz-lime); opacity: 0.9; }
.gz-ph-label {
	font-family: var(--gz-font-mono);
	font-size: 0.82rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--gz-light-gray);
}
.gz-ph-help { font-size: 0.8rem; color: var(--gz-text-faint); max-width: 26rem; line-height: 1.5; }

.gz-ph-corner { position: absolute; width: 16px; height: 16px; border: 2px solid var(--gz-lime); opacity: 0.55; z-index: 2; }
.gz-ph-corner--tl { top: 12px; left: 12px; border-right: 0; border-bottom: 0; }
.gz-ph-corner--tr { top: 12px; right: 12px; border-left: 0; border-bottom: 0; }
.gz-ph-corner--bl { bottom: 12px; left: 12px; border-right: 0; border-top: 0; }
.gz-ph-corner--br { bottom: 12px; right: 12px; border-left: 0; border-top: 0; }

.gz-ph-scan {
	position: absolute; inset: 0; z-index: 1; pointer-events: none;
	background: linear-gradient(180deg, transparent 0%, rgba(234, 255, 18, 0.05) 50%, transparent 100%);
	background-size: 100% 220%;
	background-position: 0 -110%;
}
@media (prefers-reduced-motion: no-preference) {
	.gz-js .gz-ph-scan { animation: gz-ph-scan 5s ease-in-out infinite; }
}
@keyframes gz-ph-scan { 0% { background-position: 0 -110%; } 100% { background-position: 0 110%; } }

.gz-hero-media-placeholder { box-shadow: 0 30px 60px -24px rgba(0, 0, 0, 0.8); }
.gz-card-media-placeholder { border-radius: calc(var(--gz-radius) - 4px); }

/* ---------- Hero (split) ---------- */
.gz-hero--split { position: relative; overflow: hidden; padding: clamp(2.5rem, 7vw, 5rem) 0 clamp(3rem, 8vw, 5.5rem); }
.gz-home .gz-hero--split { margin-top: -70px; padding-top: calc(70px + clamp(2.5rem, 7vw, 4.5rem)); }
.gz-hero-grid { display: grid; gap: clamp(2rem, 5vw, 4rem); align-items: center; }
@media (min-width: 1024px) {
	.gz-hero-grid { grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr); }
}
.gz-hero--split .gz-hero-media { min-width: 0; }

/* trust-mini becomes a flexible row */
.gz-hero-trust-mini { display: flex; flex-wrap: wrap; grid-template-columns: none; gap: 0.5rem 1.5rem; }

/* ---------- Section CTA (centered under grids) ---------- */
.gz-section-cta { margin-top: clamp(1.75rem, 4vw, 2.5rem); text-align: center; }

/* ---------- Two-column feature (truck yard / technology) ---------- */
.gz-splitrow { display: grid; gap: clamp(2rem, 5vw, 3.5rem); align-items: center; }
@media (min-width: 900px) {
	.gz-splitrow { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
	.gz-splitrow--media-right .gz-feature-media { order: 2; }
}
.gz-feature-copy { min-width: 0; }
.gz-feature-copy h2 { margin-top: 0.2rem; }
.gz-feature-media { min-width: 0; }

.gz-feature-list { list-style: none; margin: 1.25rem 0 1.75rem; padding: 0; display: grid; gap: 0.7rem; }
.gz-feature-list li { display: flex; align-items: flex-start; gap: 0.65rem; color: var(--gz-text-soft); }
.gz-feature-list li::before { content: ""; width: 7px; height: 7px; margin-top: 0.5rem; border-radius: 2px; background: var(--gz-lime); flex: none; }
@media (min-width: 560px) {
	.gz-feature-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.7rem 1.5rem; }
}

/* hero media entrance (matches copy stagger) */
@media (prefers-reduced-motion: no-preference) {
	.gz-js .gz-hero--split .gz-hero-media { opacity: 0; animation: gz-hero-in var(--gz-reveal-dur, 560ms) var(--gz-curve-enter) 0.2s forwards; }
}

/* =====================================================================
   v1.5 — Nash-inspired clean pass (Inter type, arrow CTAs, refined air)
   ===================================================================== */

/* Inter reads crisper with a hair of negative tracking */
body { letter-spacing: -0.006em; }

/* Forward primary CTAs get a trailing arrow that nudges on hover (nash style) */
/* Forward CTAs (primary + ghost) get the arrow; tel: "Call" buttons stay clean */
.gz-btn--primary,
.gz-btn--ghost:not([href^="tel:"]) { gap: 0.6rem; }
.gz-btn--primary::after,
.gz-btn--ghost:not([href^="tel:"])::after {
	content: "\2192";
	font-size: 1.05em;
	line-height: 1;
	transition: transform 200ms var(--gz-curve-soft, ease);
}
.gz-btn--primary:hover::after,
.gz-btn--primary:focus-visible::after,
.gz-btn--ghost:not([href^="tel:"]):hover::after,
.gz-btn--ghost:not([href^="tel:"]):focus-visible::after { transform: translateX(3px); }

/* Generous, nash-style hero whitespace */
.gz-hero--split .gz-hero-lead { max-width: 40rem; }
@media (min-width: 1024px) {
	.gz-hero-grid { gap: clamp(3rem, 6vw, 5rem); }
}

/* =====================================================================
   v1.6 — Better icons (in template parts) + nash-style CTA arrow-loop
   Arrow slides out to the right, re-enters from the left, then settles.
   ===================================================================== */
@keyframes gz-arrow-loop {
	0%   { transform: translateX(0);    opacity: 1; }
	40%  { transform: translateX(9px);  opacity: 0; }
	41%  { transform: translateX(-9px); opacity: 0; }
	100% { transform: translateX(0);    opacity: 1; }
}

/* Primary + forward-ghost CTA arrows loop on hover/focus */
.gz-btn--primary:hover::after,
.gz-btn--primary:focus-visible::after,
.gz-btn--ghost:not([href^="tel:"]):hover::after,
.gz-btn--ghost:not([href^="tel:"]):focus-visible::after {
	animation: gz-arrow-loop 0.5s var(--gz-curve-soft, ease);
	transform: translateX(0);
}

/* Card / row / stack link arrows loop the same way */
.gz-card:hover .gz-card-arrow,
.gz-card:focus-visible .gz-card-arrow,
.gz-mini-row:hover .gz-card-arrow,
.gz-mini-row:focus-visible .gz-card-arrow,
.gz-stack-layer a:hover .gz-card-arrow,
.gz-stack-layer a:focus-visible .gz-card-arrow {
	animation: gz-arrow-loop 0.5s var(--gz-curve-soft, ease);
	transform: translateX(0);
}

/* Industries: premium photo cards (icon chip + title + desc + Learn more), 4-up.
   Background = the linked industry page's Featured Image (.gz-card-bg); when no
   photo is set it falls back to a clean dark gradient (no stock imagery).
   Used on BOTH the homepage Industries section and the Industries hub. */
.gz-industry-grid { display: grid; gap: 1rem; grid-template-columns: 1fr; margin-top: 2rem; }
@media (min-width: 600px)  { .gz-industry-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.1rem; } }
@media (min-width: 1024px) { .gz-industry-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

.gz-industry-grid .gz-card--industry {
	position: relative;
	display: block;
	overflow: hidden;
	min-height: 250px;
	padding: 0;
	border: 1px solid rgba(234, 255, 18, 0.16);
	border-radius: calc(var(--gz-radius) + 2px);
	background: var(--gz-soft-black);
	box-shadow: var(--gz-bevel);
	transition: border-color var(--gz-transition), box-shadow var(--gz-transition), transform var(--gz-transition);
}
.gz-industry-grid .gz-card--industry:hover,
.gz-industry-grid .gz-card--industry:focus-visible {
	transform: translateY(-4px);
	border-color: rgba(234, 255, 18, 0.5);
	box-shadow: var(--gz-card-lift), var(--gz-bevel);
}
.gz-card-bg {
	position: absolute;
	inset: 0;
	z-index: 0;
	background: linear-gradient(160deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.012));
	background-size: cover;
	background-position: center;
	transition: transform 0.5s var(--gz-curve-soft, ease);
}
.gz-card-bg--photo::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(7, 7, 7, 0.42) 0%, rgba(7, 7, 7, 0.74) 56%, rgba(7, 7, 7, 0.93) 100%);
}
.gz-industry-grid .gz-card--industry:hover .gz-card-bg--photo,
.gz-industry-grid .gz-card--industry:focus-visible .gz-card-bg--photo { transform: scale(1.06); }
.gz-card-inner {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.5rem;
	height: 100%;
	padding: 1.4rem 1.45rem;
}
.gz-industry-grid .gz-card--industry .gz-card-icon {
	margin: 0 0 0.35rem;
	border-radius: 50%;
	background: rgba(7, 7, 7, 0.6);
	border: 1px solid rgba(234, 255, 18, 0.45);
}
.gz-industry-grid .gz-card--industry .gz-card-title-sm { margin: 0; font-size: 1.15rem; color: var(--gz-white); }
.gz-industry-grid .gz-card--industry p { margin: 0; color: var(--gz-text-soft); font-size: 0.9rem; line-height: 1.5; }
.gz-card-more {
	margin-top: auto;
	padding-top: 0.75rem;
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	color: var(--gz-lime);
	font-weight: 600;
	font-size: 0.9rem;
}
.gz-card-more-arrow { transition: transform var(--gz-transition); }
.gz-industry-grid .gz-card--industry:hover .gz-card-more-arrow,
.gz-industry-grid .gz-card--industry:focus-visible .gz-card-more-arrow { transform: translateX(4px); }
.gz-industry-grid .gz-card--industry:first-child { border-color: rgba(234, 255, 18, 0.42); }

/* Industries feature row — claim-safe trust points (mirrors the hero) */
.gz-ind-features { list-style: none; margin: 1.75rem 0 0; padding: 0; display: grid; gap: 1.1rem; grid-template-columns: 1fr; }
@media (min-width: 768px) { .gz-ind-features { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; } }
.gz-ind-features li { display: flex; align-items: center; gap: 0.85rem; min-width: 0; }
.gz-ind-feature-icon {
	flex: none; width: 48px; height: 48px;
	display: inline-flex; align-items: center; justify-content: center;
	border-radius: 50%; background: var(--gz-lime-dim);
	border: 1px solid rgba(234, 255, 18, 0.4); color: var(--gz-lime);
}
.gz-ind-feature-txt { display: grid; gap: 0.1rem; min-width: 0; }
.gz-ind-feature-txt strong { color: var(--gz-white); font-size: 0.98rem; font-weight: 700; line-height: 1.2; }
.gz-ind-feature-txt span { color: var(--gz-text-faint); font-size: 0.84rem; line-height: 1.3; }

/* Industries section: subtle lime "signal field" texture fading up from the bottom */
.gz-industries-sec { position: relative; overflow: hidden; }
.gz-industries-sec::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 160px;
	pointer-events: none; z-index: 0;
	background-image: radial-gradient(rgba(234, 255, 18, 0.55) 1px, transparent 1.7px);
	background-size: 22px 22px;
	-webkit-mask-image: linear-gradient(to top, #000, transparent);
	mask-image: linear-gradient(to top, #000, transparent);
	opacity: 0.16;
}
.gz-industries-sec > .gz-container { position: relative; z-index: 1; }

/* =====================================================================
   v1.7.2 — Technology feature list (icon + label + descriptor) + city-chip hover
   ===================================================================== */
.gz-techlist { list-style: none; margin: 1.5rem 0 1.85rem; padding: 0; display: grid; gap: 1rem; }
.gz-techlist li { display: flex; align-items: flex-start; gap: 0.85rem; }
.gz-techlist-icon {
	flex: none;
	width: 38px;
	height: 38px;
	border-radius: 10px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--gz-lime);
	background: var(--gz-lime-dim);
}
.gz-techlist-txt { display: grid; gap: 0.12rem; min-width: 0; }
.gz-techlist-txt strong { color: var(--gz-white); font-size: 0.95rem; font-weight: 700; line-height: 1.25; }
.gz-techlist-txt span { color: var(--gz-text-faint); font-size: 0.83rem; line-height: 1.3; }

/* City chips: tactile hover (fill lime + lift) */
.gz-city-chips li {
	cursor: default;
	transition: background-color var(--gz-transition), color var(--gz-transition), border-color var(--gz-transition), transform var(--gz-transition), box-shadow var(--gz-transition);
}
.gz-city-chips li:hover {
	background: var(--gz-lime);
	color: var(--gz-black);
	border-color: var(--gz-lime);
	transform: translateY(-2px);
	box-shadow: 0 0 14px rgba(234, 255, 18, 0.3);
}

/* =====================================================================
   v2.0.0 — How It Works: process tab navigator (curved arc + detail panel)
   Desktop + JS + no-preference: pinned track, curved arc of step tabs
   (JS positions + advances on scroll), large glass detail panel.
   Mobile / tablet / no-JS / reduced-motion: horizontal scroll tab row,
   panel below; no pin, no curve.
   ===================================================================== */
.gz-process-arc-section { position: relative; }
.gz-process-layout { display: grid; gap: 2rem; align-items: center; }

/* mobile-first tab list */
.gz-process-arc {
	display: flex;
	gap: 0.6rem;
	overflow-x: auto;
	padding: 0.25rem 0.25rem 0.75rem;
	scrollbar-width: thin;
	-webkit-overflow-scrolling: touch;
}
.gz-process-arc-wrap { min-width: 0; margin: 1.25rem 0 0.25rem; }
.gz-process-intro { min-width: 0; }
.gz-process-lead { color: var(--gz-text-soft); max-width: 30rem; }

.gz-process-tab {
	display: inline-flex;
	align-items: center;
	gap: 0.7rem;
	flex: none;
	padding: 0.7rem 1.05rem;
	border: 1px solid var(--gz-border);
	border-left: 2px solid var(--gz-lime-accent-rest, rgba(234, 255, 18, 0.42));
	border-radius: var(--gz-radius-pill);
	background: linear-gradient(150deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.012));
	color: var(--gz-text-soft);
	font-family: inherit;
	font-size: 0.92rem;
	text-align: left;
	cursor: pointer;
	transition: background-color var(--gz-transition), border-color var(--gz-transition), color var(--gz-transition), box-shadow var(--gz-transition), transform 360ms var(--gz-curve-soft), opacity 360ms var(--gz-curve-soft);
}
.gz-process-tab:hover { border-color: rgba(234, 255, 18, 0.5); }
.gz-process-tab-icon { display: inline-flex; color: var(--gz-lime); flex: none; }
.gz-process-tab-num { font-family: var(--gz-font-mono); font-weight: 700; font-size: 0.76rem; color: var(--gz-text-faint); flex: none; }
.gz-process-tab-title { font-weight: 600; color: var(--gz-text-soft); white-space: nowrap; }
.gz-process-tab.is-active {
	background: var(--gz-lime);
	border-color: var(--gz-lime);
	box-shadow: 0 0 22px rgba(234, 255, 18, 0.4);
}
.gz-process-tab.is-active .gz-process-tab-icon,
.gz-process-tab.is-active .gz-process-tab-num,
.gz-process-tab.is-active .gz-process-tab-title { color: var(--gz-black); }

/* detail panel */
.gz-process-panel {
	border: 1px solid rgba(234, 255, 18, 0.16);
	border-radius: calc(var(--gz-radius) + 6px);
	background: linear-gradient(160deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.012));
	box-shadow: var(--gz-bevel);
	padding: clamp(1.4rem, 3vw, 2.25rem);
}
.gz-process-progress { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1.1rem; }
.gz-process-step-of { font-family: var(--gz-font-mono); font-size: 0.76rem; letter-spacing: 0.12em; color: var(--gz-text-faint); text-transform: uppercase; }
.gz-process-step-of .gz-pp-cur { color: var(--gz-lime); }
.gz-process-dots { display: inline-flex; gap: 6px; }
.gz-pp-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--gz-dark-gray); transition: background-color var(--gz-transition); }
.gz-pp-dot.is-active { background: var(--gz-lime); }
.gz-process-num { font-family: var(--gz-font-mono); font-weight: 700; color: var(--gz-lime); font-size: 0.95rem; letter-spacing: 0.14em; }
.gz-process-ptitle { margin: 0.3rem 0 0.6rem; font-size: clamp(1.5rem, 3vw, 2rem); }
.gz-process-pdesc { color: var(--gz-text-soft); margin: 0 0 1.1rem; max-width: 46rem; }
.gz-process-pbullets { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.55rem; }
@media (min-width: 560px) { .gz-process-pbullets { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.55rem 1.5rem; } }
.gz-process-pbullets li { display: flex; align-items: flex-start; gap: 0.6rem; color: var(--gz-text-soft); font-size: 0.92rem; }
.gz-process-pbullets li::before { content: ""; width: 7px; height: 7px; margin-top: 0.45rem; border-radius: 2px; background: var(--gz-lime); flex: none; }

/* Static step list = the readable DEFAULT (mobile / tablet / reduced-motion / no-JS).
   The pinned interactive arc + panel are a desktop-only enhancement (re-shown below). */
.gz-process-arc-wrap, .gz-process-panel { display: none; }
/* Compact, continuously SCROLLING row of step cards (marquee). Pauses on hover/
   focus; under reduced-motion it becomes a static, swipeable row. The cards are
   rendered twice in .gz-process-track so the loop is seamless. */
.gz-process-steps {
	position: relative;
	overflow: hidden;
	margin-top: clamp(1.5rem, 3vw, 2rem);
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 5%, #000 95%, transparent);
	mask-image: linear-gradient(90deg, transparent, #000 5%, #000 95%, transparent);
}
.gz-process-track {
	display: flex;
	gap: 0.9rem;
	width: max-content;
	will-change: transform;
	animation: gz-process-scroll 46s linear infinite;
}
.gz-process-steps:hover .gz-process-track,
.gz-process-steps:focus-within .gz-process-track { animation-play-state: paused; }
@keyframes gz-process-scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) {
	.gz-process-track { animation: none; }
	.gz-process-steps { overflow-x: auto; -webkit-mask-image: none; mask-image: none; }
}
.gz-process-step {
	flex: 0 0 270px;
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
	border: 1px solid var(--gz-border);
	border-top: 2px solid var(--gz-lime-accent-rest, rgba(234, 255, 18, 0.42));
	border-radius: var(--gz-radius);
	background: linear-gradient(160deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.012));
	box-shadow: var(--gz-bevel);
	padding: 1.1rem 1.2rem;
	transition: border-color var(--gz-transition), box-shadow var(--gz-transition), transform var(--gz-transition);
}
.gz-process-step:hover {
	border-top-color: var(--gz-lime);
	transform: translateY(-3px);
	box-shadow: var(--gz-card-lift, 0 8px 24px rgba(0, 0, 0, 0.35)), var(--gz-bevel);
}
.gz-process-step-num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	margin-bottom: 0.6rem;
	border-radius: 50%;
	border: 1px solid rgba(234, 255, 18, 0.5);
	background: var(--gz-lime-dim);
	color: var(--gz-lime);
	font-family: var(--gz-font-mono);
	font-weight: 700;
	font-size: 0.82rem;
}
.gz-process-step-title { margin: 0 0 0.25rem; font-size: 1rem; color: var(--gz-white); }
.gz-process-step-desc { margin: 0; color: var(--gz-text-soft); font-size: 0.87rem; line-height: 1.45; }

/* Process section = intro on top, every step shown as a "process map" grid below.
   No tabs (click), no pinned scroll, no full-viewport stage = no dead space; the
   layout is identical on every device. The old interactive arc + panel markup is
   left in the DOM but always hidden (display:none above) as a clean fallback. */
.gz-process-track { height: auto; }
.gz-process-pin { position: static; min-height: 0; display: block; }
@media (min-width: 768px) {
	.gz-process-layout { grid-template-columns: 1fr; gap: 1.5rem; align-items: stretch; }
}

/* (The old mobile/tablet tab-stack override is gone — phone/tablet now use the
   static .gz-process-steps list above instead of the desktop tab/panel pattern.) */

/* =====================================================================
   v1.6.4 — Stronger nash-style ghost-CTA hover: lime fill wipes in
   left -> right, text/arrow invert to black. Robust against the base
   .gz-btn--ghost:hover shorthand via `a.` prefix + background longhands.
   ===================================================================== */
a.gz-btn--ghost:not([href^="tel:"]) {
	background-color: transparent;
	background-image: linear-gradient(var(--gz-lime), var(--gz-lime));
	background-repeat: no-repeat;
	background-position: left center;
	background-size: 0% 100%;
	transition: background-size 340ms var(--gz-curve-soft, ease), color 220ms ease, border-color 200ms ease, box-shadow 220ms ease;
}
a.gz-btn--ghost:not([href^="tel:"]):hover,
a.gz-btn--ghost:not([href^="tel:"]):focus-visible {
	background-size: 100% 100%;
	color: var(--gz-black);
	border-color: var(--gz-lime);
	box-shadow: var(--gz-glow-hover);
}

/* =====================================================================
   v1.6.5 — Hero trust bar (icon + title + subtitle, divider-separated)
   ===================================================================== */
.gz-hero-trust-wrap { margin-top: clamp(2rem, 4vw, 3rem); }
.gz-hero-trust { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.95rem; }
.gz-hero-trust li { display: flex; align-items: center; gap: 0.7rem; min-width: 0; }
.gz-hero-trust-icon { color: var(--gz-lime); flex: none; display: inline-flex; }
.gz-hero-trust-txt { display: grid; gap: 0.1rem; min-width: 0; }
.gz-hero-trust-txt strong { color: var(--gz-white); font-size: 0.9rem; font-weight: 700; line-height: 1.2; }
.gz-hero-trust-txt span { color: var(--gz-text-faint); font-size: 0.78rem; line-height: 1.25; }

@media (min-width: 560px) {
	.gz-hero-trust { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; }
	.gz-hero-trust li:not(:first-child) { padding-left: 1.5rem; border-left: 1px solid var(--gz-border); }
}
@media (prefers-reduced-motion: no-preference) {
	.gz-js .gz-hero-trust-wrap { opacity: 0; animation: gz-hero-in var(--gz-reveal-dur, 560ms) var(--gz-curve-enter) 0.36s forwards; }
}

/* =====================================================================
   v2.1 — Reusable service page template
   Continuation of the homepage language: dark glass cards, thin lime
   borders, corner accents, scanline/glow. Reuses .gz-hero--split,
   .gz-splitrow, .gz-steps, .gz-techlist, .gz-card, .gz-location-strip,
   .gz-cta-band; only the service-specific pieces are defined here.
   ===================================================================== */

/* Hero: breadcrumbs sit just above the kicker */
.gz-svc-hero .gz-breadcrumbs { margin: 0 0 1.1rem; }

/* Section 2 — checklist card (copy left, glass checklist right) */
.gz-svc-includes { align-items: start; }
.gz-svc-checklist-card {
	background: linear-gradient(160deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.012));
	border: 1px solid rgba(234, 255, 18, 0.16);
	border-radius: calc(var(--gz-radius) + 4px);
	box-shadow: var(--gz-bevel);
	padding: clamp(1.5rem, 3vw, 2.15rem);
}
.gz-svc-checklist { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.95rem; }
.gz-svc-checklist li { display: flex; align-items: flex-start; gap: 0.8rem; color: var(--gz-text-soft); font-size: 0.98rem; line-height: 1.4; }
.gz-svc-check-wrap {
	flex: none; display: inline-flex; align-items: center; justify-content: center;
	width: 26px; height: 26px; border-radius: 7px;
	background: var(--gz-lime-dim); color: var(--gz-lime); margin-top: 0.04rem;
}
.gz-svc-check { display: block; }

/* Section 3 — four-step process (reuses .gz-steps) */
.gz-svc-steps { margin: clamp(1.5rem, 4vw, 2.25rem) 0 0; }
.gz-svc-steps li { border-left: 2px solid var(--gz-lime-accent-rest, rgba(234, 255, 18, 0.42)); box-shadow: var(--gz-bevel); }

/* Section 4 — comparison panels (Gazer panel is the stronger one) */
.gz-compare { display: grid; gap: 1.25rem; grid-template-columns: 1fr; margin-top: clamp(1.5rem, 4vw, 2.5rem); }
@media (min-width: 820px) { .gz-compare { grid-template-columns: 1fr 1fr; gap: 1.5rem; align-items: stretch; } }
.gz-compare-panel {
	position: relative;
	border: 1px solid var(--gz-border);
	border-radius: calc(var(--gz-radius) + 4px);
	background: var(--gz-soft-black);
	box-shadow: var(--gz-bevel);
	padding: clamp(1.5rem, 3vw, 2.15rem);
}
.gz-compare-panel--basic { background: rgba(255, 255, 255, 0.018); }
.gz-compare-panel--gazer {
	border-color: rgba(234, 255, 18, 0.42);
	background: linear-gradient(160deg, rgba(234, 255, 18, 0.06), rgba(255, 255, 255, 0.012));
	box-shadow: var(--gz-bevel), 0 18px 50px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(234, 255, 18, 0.1);
}
.gz-compare-title { font-size: 1.15rem; margin: 0 0 1.15rem; color: var(--gz-white); }
.gz-compare-panel--gazer .gz-compare-title { color: var(--gz-lime); }
.gz-compare-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.8rem; }
.gz-compare-list li { display: flex; align-items: flex-start; gap: 0.7rem; color: var(--gz-text-soft); font-size: 0.95rem; line-height: 1.4; }
.gz-compare-mark { flex: none; display: inline-flex; margin-top: 0.08rem; }
.gz-compare-mark--no { color: var(--gz-medium-gray, #888); }
.gz-compare-mark--yes { color: var(--gz-lime); }

/* Lime corner brackets (machined accent, matches media placeholder) */
.gz-svc-corner { position: absolute; width: 14px; height: 14px; border: 2px solid var(--gz-lime); pointer-events: none; }
.gz-svc-corner--tl { top: 10px; left: 10px; border-right: 0; border-bottom: 0; }
.gz-svc-corner--tr { top: 10px; right: 10px; border-left: 0; border-bottom: 0; }
.gz-svc-corner--bl { bottom: 10px; left: 10px; border-right: 0; border-top: 0; }
.gz-svc-corner--br { bottom: 10px; right: 10px; border-left: 0; border-top: 0; }

/* Section 5 — use-case cards (title + copy, not icon-heavy) */
.gz-usecase-grid { display: grid; gap: 1rem; grid-template-columns: 1fr; margin-top: clamp(1.5rem, 4vw, 2.25rem); }
@media (min-width: 640px)  { .gz-usecase-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1000px) { .gz-usecase-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.gz-usecase-card {
	border: 1px solid var(--gz-border);
	border-left: 2px solid var(--gz-lime-accent-rest, rgba(234, 255, 18, 0.42));
	border-radius: var(--gz-radius);
	background: linear-gradient(160deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.012));
	box-shadow: var(--gz-bevel);
	padding: 1.45rem 1.5rem;
	transition: border-color var(--gz-transition), box-shadow var(--gz-transition), transform var(--gz-transition);
}
.gz-usecase-card:hover { border-left-color: var(--gz-lime); box-shadow: var(--gz-card-lift, 0 8px 24px rgba(0, 0, 0, 0.35)), var(--gz-bevel); transform: translateY(-4px); }
.gz-usecase-card h3 { font-size: 1.05rem; margin: 0 0 0.4rem; color: var(--gz-white); }
.gz-usecase-card p { margin: 0; font-size: 0.92rem; color: var(--gz-text-faint); line-height: 1.5; }

/* Section 8 — industries served (simple bordered link grid) */
.gz-svc-industry-links { list-style: none; margin: clamp(1.5rem, 4vw, 2.25rem) 0 0; padding: 0; display: grid; gap: 0.7rem; grid-template-columns: 1fr; }
@media (min-width: 560px) { .gz-svc-industry-links { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 940px) { .gz-svc-industry-links { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.gz-svc-industry-links a {
	display: flex; align-items: center; justify-content: space-between; gap: 0.75rem;
	padding: 0.85rem 1.05rem;
	border: 1px solid var(--gz-border);
	border-left: 2px solid var(--gz-lime-accent-rest, rgba(234, 255, 18, 0.42));
	border-radius: var(--gz-radius);
	background: var(--gz-soft-black);
	color: var(--gz-text-soft); font-weight: 600; font-size: 0.92rem;
	transition: border-color var(--gz-transition), background var(--gz-transition), color var(--gz-transition), transform var(--gz-transition);
}
.gz-svc-industry-links a:hover,
.gz-svc-industry-links a:focus-visible {
	border-left-color: var(--gz-lime); border-color: rgba(234, 255, 18, 0.4);
	background: var(--gz-dark-gray); color: var(--gz-white); transform: translateY(-2px);
}
.gz-svc-industry-arrow { color: var(--gz-lime); flex: none; transition: transform var(--gz-transition); }
.gz-svc-industry-links a:hover .gz-svc-industry-arrow { transform: translateX(4px); }

/* Section 4 (benefits variant) — key-benefit cards */
.gz-benefit-grid { display: grid; gap: 1rem; grid-template-columns: 1fr; margin-top: clamp(1.5rem, 4vw, 2.25rem); }
@media (min-width: 560px)  { .gz-benefit-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1000px) { .gz-benefit-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.gz-benefit-card {
	display: flex; align-items: center; gap: 0.8rem;
	border: 1px solid var(--gz-border);
	border-left: 2px solid var(--gz-lime-accent-rest, rgba(234, 255, 18, 0.42));
	border-radius: var(--gz-radius);
	background: linear-gradient(160deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.012));
	box-shadow: var(--gz-bevel);
	padding: 1.15rem 1.2rem;
	transition: border-color var(--gz-transition), box-shadow var(--gz-transition), transform var(--gz-transition);
}
.gz-benefit-card:hover { border-left-color: var(--gz-lime); box-shadow: var(--gz-card-lift, 0 8px 24px rgba(0, 0, 0, 0.35)), var(--gz-bevel); transform: translateY(-3px); }
.gz-benefit-mark { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 7px; background: var(--gz-lime-dim); color: var(--gz-lime); }
.gz-benefit-text { color: var(--gz-white); font-weight: 600; font-size: 0.95rem; line-height: 1.35; }

/* All Services hub — centered hero + "work together" grouped cards */
.gz-svc-hub-hero { padding-bottom: clamp(1rem, 3vw, 2.5rem); }
.gz-svc-hub-hero-copy { max-width: 60rem; }
.gz-svc-hub-hero .gz-breadcrumbs { margin: 0 0 1.1rem; }

.gz-svc-groups { display: grid; gap: 1.1rem; grid-template-columns: 1fr; margin-top: clamp(1.5rem, 4vw, 2.25rem); }
@media (min-width: 600px)  { .gz-svc-groups { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1000px) { .gz-svc-groups { grid-template-columns: repeat(4, minmax(0, 1fr)); align-items: start; } }
.gz-svc-group {
	border: 1px solid var(--gz-border);
	border-top: 2px solid var(--gz-lime-accent-rest, rgba(234, 255, 18, 0.42));
	border-radius: calc(var(--gz-radius) + 2px);
	background: linear-gradient(160deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.012));
	box-shadow: var(--gz-bevel);
	padding: 1.25rem 1.3rem;
}
.gz-svc-group-label { font-family: var(--gz-font-mono); font-size: 0.74rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--gz-meta-gray, #9a9a9a); margin: 0 0 0.6rem; }
.gz-svc-group-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; }
.gz-svc-group-list li { border-bottom: 1px solid var(--gz-border); }
.gz-svc-group-list li:last-child { border-bottom: 0; }
.gz-svc-group-list a { display: flex; align-items: center; justify-content: space-between; gap: 0.6rem; padding: 0.6rem 0.1rem; color: var(--gz-text-soft); font-weight: 600; font-size: 0.92rem; transition: color var(--gz-transition); }
.gz-svc-group-list a:hover,
.gz-svc-group-list a:focus-visible { color: var(--gz-lime); }
.gz-svc-group-arrow { color: var(--gz-lime); flex: none; transition: transform var(--gz-transition); }
.gz-svc-group-list a:hover .gz-svc-group-arrow { transform: translateX(4px); }
.gz-svc-together-cta { margin-top: clamp(1.75rem, 4vw, 2.75rem); }

/* =====================================================================
   v2.3 — Industry pages (risks, how-grid, area chips, reporting)
   ===================================================================== */

/* Section 2 — property risk cards */
.gz-risk-grid { display: grid; gap: 1rem; grid-template-columns: 1fr; margin-top: clamp(1.5rem, 4vw, 2.25rem); }
@media (min-width: 560px)  { .gz-risk-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1000px) { .gz-risk-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.gz-risk-card {
	position: relative;
	display: flex; align-items: center; gap: 0.95rem;
	border: 1px solid var(--gz-border);
	border-radius: var(--gz-radius);
	background: linear-gradient(155deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.012));
	box-shadow: var(--gz-bevel);
	padding: 1.15rem 1.3rem;
	overflow: hidden;
	transition: border-color var(--gz-transition), box-shadow var(--gz-transition), transform var(--gz-transition), background var(--gz-transition);
}
/* Lime accent rail down the left edge — brightens + glows on hover. */
.gz-risk-card::before {
	content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px;
	background: var(--gz-lime-accent-rest, rgba(234, 255, 18, 0.42));
	transition: background var(--gz-transition), box-shadow var(--gz-transition);
}
.gz-risk-card:hover {
	border-color: rgba(234, 255, 18, 0.45);
	background: linear-gradient(155deg, rgba(234, 255, 18, 0.06), rgba(255, 255, 255, 0.012));
	box-shadow: var(--gz-card-lift, 0 8px 24px rgba(0, 0, 0, 0.35)), var(--gz-bevel);
	transform: translateY(-3px);
}
.gz-risk-card:hover::before { background: var(--gz-lime); box-shadow: 0 0 14px rgba(234, 255, 18, 0.5); }
.gz-risk-mark {
	flex: none; display: inline-flex; align-items: center; justify-content: center;
	width: 42px; height: 42px; border-radius: 11px;
	background: var(--gz-lime-dim); color: var(--gz-lime);
	border: 1px solid rgba(234, 255, 18, 0.28);
	transition: border-color var(--gz-transition), box-shadow var(--gz-transition), transform var(--gz-transition);
}
.gz-risk-mark svg { width: 22px; height: 22px; }
.gz-risk-card:hover .gz-risk-mark { border-color: rgba(234, 255, 18, 0.6); box-shadow: 0 0 16px rgba(234, 255, 18, 0.22); transform: scale(1.05); }
.gz-risk-text { color: var(--gz-white); font-weight: 600; font-size: 0.98rem; line-height: 1.35; }

/* Section 3 — how-it-works step grid (4-6 steps) */
.gz-how-grid { list-style: none; margin: clamp(1.5rem, 4vw, 2.25rem) 0 0; padding: 0; display: grid; gap: 1rem; grid-template-columns: 1fr; }
@media (min-width: 640px)  { .gz-how-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1000px) { .gz-how-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.gz-how-step {
	border: 1px solid var(--gz-border);
	border-left: 2px solid var(--gz-lime-accent-rest, rgba(234, 255, 18, 0.42));
	border-radius: var(--gz-radius);
	background: var(--gz-soft-black);
	box-shadow: var(--gz-bevel);
	padding: 1.4rem 1.45rem;
}
.gz-how-step .gz-step-num { margin-bottom: 0.5rem; }
.gz-how-step h3 { font-size: 1.02rem; margin: 0 0 0.35rem; color: var(--gz-white); }
.gz-how-step p { margin: 0; font-size: 0.9rem; color: var(--gz-text-faint); line-height: 1.5; }

/* Section 4 — key-area chips: reuse .gz-city-chips pill, add a lime check + tint */
.gz-area-chips { margin-top: clamp(1.5rem, 4vw, 2.25rem); gap: 0.65rem; }
.gz-area-chips li {
	cursor: default;
	display: inline-flex; align-items: center; gap: 0.5rem;
	padding: 0.46rem 1rem 0.46rem 0.8rem;
	background: rgba(234, 255, 18, 0.05);
	color: var(--gz-white);
}
.gz-area-chip-ic { display: inline-flex; flex: none; color: var(--gz-lime); transition: color var(--gz-transition); }
.gz-area-chip-ic svg { display: block; width: 15px; height: 15px; }
.gz-area-chips li:hover .gz-area-chip-ic { color: var(--gz-black); }

/* Section 7 — reporting: two-column checklist + aligned split */
.gz-ind-report { align-items: start; }
@media (min-width: 480px) {
	.gz-svc-checklist--two { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.85rem 1.5rem; }
}

/* Industries hub — "built around the property" list */
.gz-ind-built-list { max-width: 60rem; }

/* ============================================================
   v2.5 — Core pages (Company, Resources, How It Works, Assess)
   ============================================================ */

/* Grouped FAQ page (Resources → FAQ) */
.gz-faq-groups { display: grid; gap: clamp(2rem, 4vw, 2.75rem); margin-top: clamp(1.5rem, 4vw, 2.25rem); }
.gz-faq-group-title {
	font-size: clamp(1.15rem, 2.4vw, 1.4rem);
	margin: 0 0 1rem;
	color: var(--gz-white);
	padding-left: 0.85rem;
	border-left: 3px solid var(--gz-lime);
	line-height: 1.25;
}
.gz-faq-group .gz-faq-list { margin-top: 0; max-width: none; }

/* Three-column positioning comparison (Why Gazer) */
@media (min-width: 820px) {
	.gz-compare--trio { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* Neutral comparison marker (balanced comparisons — no good/bad framing) */
.gz-compare-mark--neutral { color: var(--gz-text-faint); }

/* Trusted By — editable logo placeholders (Why Gazer) */
.gz-logo-grid {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin-top: clamp(1.5rem, 4vw, 2.25rem);
}
@media (min-width: 640px)  { .gz-logo-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .gz-logo-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
.gz-logo-note { margin-top: 1.1rem; font-size: 0.85rem; color: var(--gz-text-faint); }

/* Blog — honest empty state (no fake posts) */
.gz-empty-state {
	margin-top: clamp(1.5rem, 4vw, 2.25rem);
	padding: clamp(1.75rem, 4vw, 2.5rem);
	background: var(--gz-soft-black);
	border: 1px dashed var(--gz-border);
	border-radius: var(--gz-radius);
	max-width: 56rem;
}
.gz-empty-state p { margin: 0; color: var(--gz-text-soft); line-height: 1.6; }

/* Contact — "what to include" card */
.gz-include-card {
	margin: clamp(1.5rem, 4vw, 2.25rem) 0;
	padding: clamp(1.5rem, 3vw, 2rem);
	background: var(--gz-soft-black);
	border: 1px solid var(--gz-border);
	border-radius: var(--gz-radius);
}
.gz-include-card h2 { font-size: 1.15rem; margin: 0 0 1.1rem; color: var(--gz-white); }
.gz-include-card .gz-svc-checklist { margin: 0; }

/* Legal / utility pages (Privacy, Terms, Accessibility) — clean + readable */
.gz-hero--legal { padding-bottom: clamp(0.5rem, 2vw, 1.5rem); }
.gz-legal-content { max-width: 58rem; }
.gz-legal-content .gz-section { margin: 0 0 1.75rem; }
.gz-legal-content .gz-section h2 { font-size: clamp(1.1rem, 2.2vw, 1.35rem); margin: 0 0 0.6rem; color: var(--gz-white); }
.gz-legal-content .gz-section p { color: var(--gz-text-soft); line-height: 1.65; }
.gz-legal-content .gz-list { color: var(--gz-text-soft); line-height: 1.6; padding-left: 1.1rem; }
.gz-legal-content .gz-list li { margin: 0.3rem 0; }
.gz-legal-note {
	margin: 2rem 0 0;
	padding: 1rem 1.25rem;
	background: rgba(234, 255, 18, 0.05);
	border: 1px solid rgba(234, 255, 18, 0.25);
	border-radius: var(--gz-radius);
	color: var(--gz-text-faint);
	font-size: 0.9rem;
	line-height: 1.55;
}
.gz-legal-contact { margin-top: 2.5rem; padding-top: 1.75rem; border-top: 1px solid var(--gz-border); }
.gz-legal-contact h2 { font-size: 1.2rem; margin: 0 0 0.85rem; color: var(--gz-white); }
.gz-legal-address { font-style: normal; color: var(--gz-text-soft); line-height: 1.7; }
.gz-legal-address a { color: var(--gz-lime); }

/* Footer address — keep upright, not italic */
address.gz-footer-area { font-style: normal; margin-bottom: 0.35rem; }

/* HTML sitemap — grouped link columns */
.gz-sitemap-groups {
	display: grid;
	gap: clamp(1.5rem, 3vw, 2.25rem);
	grid-template-columns: 1fr;
	margin-top: 0.5rem;
}
@media (min-width: 560px)  { .gz-sitemap-groups { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1000px) { .gz-sitemap-groups { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.gz-sitemap-group-title {
	font-size: 1.05rem;
	margin: 0 0 0.85rem;
	color: var(--gz-white);
	padding-left: 0.75rem;
	border-left: 3px solid var(--gz-lime);
}
.gz-sitemap-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.55rem; }
.gz-sitemap-list a { color: var(--gz-text-soft); transition: color var(--gz-transition); }
.gz-sitemap-list a:hover, .gz-sitemap-list a:focus-visible { color: var(--gz-lime); }

