/*
 * GuardZapp theme styles — "clean light enterprise".
 *
 * Layout-sensitive rules are prefixed with `body` so they beat WordPress's
 * generated layout styles (`:root :where(.is-layout-*) > *`).
 */

/* ------------------------------------------------------------------ */
/* Tokens                                                              */
/* ------------------------------------------------------------------ */

:root {
	--background: 0 0% 100%;
	--foreground: 222 47% 11%;
	--card: 0 0% 100%;
	--primary: 207 90% 44%;
	--primary-strong: 208 88% 37%;
	--primary-foreground: 0 0% 100%;
	--secondary: 210 40% 96%;
	--muted: 210 40% 96%;
	--soft: 210 40% 98%;
	--muted-foreground: 215 19% 35%;
	--subtle-foreground: 215 16% 47%;
	--border: 214 32% 91%;
	--input: 214 32% 88%;
	--ring: 207 90% 44%;
	--destructive: 0 84% 60%;
	--navy: 214 68% 14%;

	--brand-gradient: linear-gradient(135deg, hsl(207 90% 44%), hsl(196 92% 46%));
	--shadow-xs: 0 1px 2px hsl(222 47% 11% / 0.05);
	--shadow-sm: 0 1px 3px hsl(222 47% 11% / 0.06), 0 1px 2px hsl(222 47% 11% / 0.04);
	--shadow-md: 0 4px 8px -2px hsl(222 47% 11% / 0.05), 0 12px 24px -8px hsl(222 47% 11% / 0.1);
	--shadow-lg: 0 24px 48px -16px hsl(222 47% 11% / 0.22), 0 2px 6px hsl(222 47% 11% / 0.04);
	/* Legacy names used by blocks/templates. */
	--card-shadow: var(--shadow-sm);
	--card-shadow-hover: var(--shadow-md);

	--color-blue: 207 90% 44%;
	--color-cyan: 190 85% 40%;
	--color-emerald: 160 84% 34%;
	--color-violet: 263 70% 52%;
	--color-amber: 32 95% 44%;
	--color-rose: 350 80% 52%;
	--color-orange: 21 90% 48%;
	--color-teal: 172 66% 34%;
	--color-indigo: 239 70% 58%;
	--color-pink: 330 75% 52%;
	--gz-accent: var(--color-blue);

	--font-sans: Inter, sans-serif;
	--font-heading: "Plus Jakarta Sans", Inter, sans-serif;
	--gz-header-h: 4.25rem;
	--gz-container: 1248px;
	--gz-gutter: 1.5rem;
	--radius-sm: 0.5rem;
	--radius: 0.75rem;
	--radius-lg: 1rem;
	--radius-xl: 1.5rem;

	--gz-icon-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m12 5 7 7-7 7'/%3E%3C/svg%3E");
	--gz-icon-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
	--gz-icon-x: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 6 6 18'/%3E%3Cpath d='m6 6 12 12'/%3E%3C/svg%3E");
	--gz-icon-phone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E");
}

.gz-accent-blue { --gz-accent: var(--color-blue); }
.gz-accent-cyan { --gz-accent: var(--color-cyan); }
.gz-accent-emerald { --gz-accent: var(--color-emerald); }
.gz-accent-violet { --gz-accent: var(--color-violet); }
.gz-accent-amber { --gz-accent: var(--color-amber); }
.gz-accent-rose { --gz-accent: var(--color-rose); }
.gz-accent-orange { --gz-accent: var(--color-orange); }
.gz-accent-teal { --gz-accent: var(--color-teal); }
.gz-accent-indigo { --gz-accent: var(--color-indigo); }
.gz-accent-pink { --gz-accent: var(--color-pink); }

/* ------------------------------------------------------------------ */
/* Base                                                                */
/* ------------------------------------------------------------------ */

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

html {
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--gz-header-h) + 1rem);
	-webkit-text-size-adjust: 100%;
}

body {
	margin: 0;
	background: hsl(var(--background));
	color: hsl(var(--foreground));
	font-family: var(--font-sans);
	font-size: 1rem;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

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

h1,
h2,
h3,
h4,
h5,
h6 {
	color: hsl(var(--foreground));
	font-family: var(--font-heading);
	font-weight: 700;
	letter-spacing: -0.025em;
	line-height: 1.15;
}

::selection {
	background: hsl(var(--primary) / 0.16);
}

:focus-visible {
	outline: 2px solid hsl(var(--ring));
	outline-offset: 2px;
}

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.gz-skip-link:focus {
	position: fixed !important;
	top: 0.5rem;
	left: 0.5rem;
	z-index: 200;
	width: auto;
	height: auto;
	padding: 0.75rem 1rem;
	clip: auto;
	background: hsl(var(--card));
	color: hsl(var(--foreground));
	border-radius: var(--radius-sm);
	box-shadow: var(--shadow-md);
}

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

.gz-main {
	padding-top: var(--gz-header-h);
}

/* The video hero (optional block) sits under the fixed header. */
.gz-blocks > .wp-block-guardzapp-hero:first-child {
	margin-top: calc(var(--gz-header-h) * -1);
}

.gz-blocks > * {
	margin-block: 0;
}

/* ------------------------------------------------------------------ */
/* Text helpers                                                        */
/* ------------------------------------------------------------------ */

.text-gradient-brand {
	background: var(--brand-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
}

.bg-brand-gradient {
	background: var(--brand-gradient);
}

.gz-lead {
	color: hsl(var(--muted-foreground));
	font-size: 1.125rem;
	line-height: 1.7;
}

p.is-style-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	margin: 0;
	padding: 0.3125rem 0.875rem 0.3125rem 0.75rem;
	border: 1px solid hsl(var(--primary) / 0.18);
	border-radius: 9999px;
	background: hsl(var(--primary) / 0.06);
	color: hsl(var(--primary-strong));
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.01em;
	line-height: 1.4;
}

p.is-style-eyebrow::before {
	content: "";
	width: 0.375rem;
	height: 0.375rem;
	border-radius: 9999px;
	background: hsl(var(--primary));
	box-shadow: 0 0 0 3px hsl(var(--primary) / 0.18);
}

p.is-style-eyebrow a {
	color: inherit;
	text-decoration: none;
}

.gz-squiggle {
	position: relative;
	display: inline-block;
}

.gz-squiggle::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: -0.4rem;
	width: 100%;
	height: 10px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 12' preserveAspectRatio='none' fill='none'%3E%3Cpath d='M2 8C30 3 60 10 90 6C120 2 150 9 180 5C210 1 240 8 270 4C285 2 295 6 298 5' stroke='%2330c9e8' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
	pointer-events: none;
}

/* ------------------------------------------------------------------ */
/* Buttons                                                             */
/* ------------------------------------------------------------------ */

.gz-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	padding: 0.5rem 0.875rem;
	border: 1px solid transparent;
	border-radius: var(--radius-sm);
	font: 600 0.8125rem/1.25 var(--font-sans);
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
	transition: background-color 0.15s, border-color 0.15s, color 0.15s, box-shadow 0.15s;
}

@media (min-width: 640px) {
	.gz-btn {
		padding: 0.5625rem 1.125rem;
		font-size: 0.875rem;
	}
}

.gz-btn--primary,
.gz-btn--gradient {
	background: hsl(var(--primary));
	color: hsl(var(--primary-foreground));
	box-shadow: var(--shadow-xs), inset 0 1px 0 hsl(0 0% 100% / 0.15);
}

.gz-btn--primary:hover,
.gz-btn--gradient:hover {
	background: hsl(var(--primary-strong));
}

.gz-btn--outline {
	border-color: hsl(var(--border));
	background: hsl(var(--card));
	color: hsl(var(--foreground));
	box-shadow: var(--shadow-xs);
}

.gz-btn--outline:hover {
	border-color: hsl(var(--input));
	background: hsl(var(--soft));
}

.gz-btn--ghost {
	background: transparent;
	color: hsl(var(--muted-foreground));
}

.gz-btn--ghost:hover {
	background: hsl(var(--muted));
	color: hsl(var(--foreground));
}

.gz-btn--block {
	width: 100%;
	padding: 0.8125rem 1rem;
	border-radius: 10px;
	font-size: 0.9375rem;
}

.gz-btn:disabled {
	opacity: 0.6;
	cursor: default;
}

body .wp-block-buttons {
	gap: 0.75rem;
}

.wp-block-button.is-style-gradient .wp-block-button__link,
.wp-block-button.is-style-outline .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.8125rem 1.375rem;
	border-radius: 10px;
	font: 600 0.9375rem/1.4 var(--font-sans);
	text-decoration: none;
	transition: background-color 0.15s, border-color 0.15s, box-shadow 0.15s, transform 0.15s;
}

.wp-block-button.is-style-gradient .wp-block-button__link {
	border: 1px solid hsl(var(--primary-strong));
	background: hsl(var(--primary));
	color: hsl(var(--primary-foreground));
	box-shadow: 0 1px 2px hsl(var(--primary-strong) / 0.3), 0 6px 16px -6px hsl(var(--primary) / 0.55), inset 0 1px 0 hsl(0 0% 100% / 0.18);
}

.wp-block-button.is-style-gradient .wp-block-button__link:hover {
	background: hsl(var(--primary-strong));
	transform: translateY(-1px);
}

.wp-block-button.is-style-gradient .wp-block-button__link::after {
	content: "";
	width: 1.125rem;
	height: 1.125rem;
	background: currentColor;
	-webkit-mask: var(--gz-icon-arrow) center / contain no-repeat;
	mask: var(--gz-icon-arrow) center / contain no-repeat;
	transition: transform 0.15s;
}

.wp-block-button.is-style-gradient .wp-block-button__link:hover::after {
	transform: translateX(2px);
}

.wp-block-button.is-style-outline .wp-block-button__link {
	border: 1px solid hsl(var(--border));
	background: hsl(var(--card));
	color: hsl(var(--foreground));
	box-shadow: var(--shadow-xs);
}

.wp-block-button.is-style-outline .wp-block-button__link:hover {
	border-color: hsl(var(--input));
	background: hsl(var(--soft));
}

/* ------------------------------------------------------------------ */
/* Header                                                              */
/* ------------------------------------------------------------------ */

.gz-header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 50;
	background: hsl(0 0% 100% / 0.85);
	-webkit-backdrop-filter: saturate(180%) blur(16px);
	backdrop-filter: saturate(180%) blur(16px);
	border-bottom: 1px solid hsl(var(--border) / 0.8);
}

.admin-bar .gz-header {
	top: 32px;
}

@media (max-width: 782px) {
	.admin-bar .gz-header {
		top: 46px;
	}
}

@media (max-width: 600px) {
	.admin-bar .gz-header {
		top: 0;
	}
}

.gz-header__inner {
	display: flex;
	align-items: center;
	gap: 1.5rem;
	height: var(--gz-header-h);
}

.gz-logo {
	display: flex;
	align-items: center;
	flex-shrink: 0;
}

.gz-logo__img {
	display: block;
	width: auto;
	max-width: none;
	height: 5.5rem;
}

@media (min-width: 640px) {
	.gz-logo__img {
		height: 6.5rem;
	}
}

.gz-menu {
	display: flex;
	align-items: center;
	gap: 0.25rem;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 0.9375rem;
}

.gz-header .gz-menu a {
	position: relative;
	display: block;
	padding: 0.5rem 0.875rem;
	color: hsl(var(--muted-foreground));
	font-weight: 500;
	text-decoration: none;
	transition: color 0.15s;
}

.gz-header .gz-menu a::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: -0.1875rem;
	width: 1.25rem;
	height: 2px;
	border-radius: 9999px;
	background: hsl(var(--primary));
	opacity: 0;
	transform: translateX(-50%) scaleX(0.4);
	transition: opacity 0.2s, transform 0.2s;
}

.gz-header .gz-menu a:hover {
	color: hsl(var(--foreground));
}

.gz-header .gz-menu .current_page_item > a,
.gz-header .gz-menu .current_page_parent > a {
	color: hsl(var(--primary-strong));
	font-weight: 600;
}

.gz-header .gz-menu .current_page_item > a::after,
.gz-header .gz-menu .current_page_parent > a::after {
	opacity: 1;
	transform: translateX(-50%) scaleX(1);
}

.gz-nav {
	display: none;
	flex: 1;
}

.gz-nav__login {
	display: none;
}

.gz-header__actions {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin-left: auto;
}

.gz-header__login {
	display: none;
}

.gz-nav-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.375rem;
	height: 2.375rem;
	padding: 0;
	border: 1px solid hsl(var(--border));
	border-radius: var(--radius-sm);
	background: hsl(var(--card));
	color: hsl(var(--foreground));
	cursor: pointer;
}

.gz-nav-toggle svg {
	width: 1.25rem;
	height: 1.25rem;
}

@media (max-width: 899px) {
	.gz-nav.is-open {
		display: block;
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		padding: 0.75rem var(--gz-gutter) 1.25rem;
		background: hsl(var(--card));
		border-bottom: 1px solid hsl(var(--border));
		box-shadow: var(--shadow-md);
	}

	.gz-nav.is-open .gz-menu {
		flex-direction: column;
		align-items: stretch;
	}

	.gz-nav.is-open .gz-menu a {
		padding: 0.75rem;
		color: hsl(var(--foreground));
		font-size: 1rem;
	}

	.gz-nav.is-open .gz-menu a::after {
		display: none;
	}

	.gz-nav.is-open .gz-menu .current_page_item > a,
	.gz-nav.is-open .gz-menu .current_page_parent > a {
		color: hsl(var(--primary-strong));
	}

	.gz-nav.is-open .gz-nav__login {
		display: flex;
		margin-top: 0.75rem;
		padding-block: 0.75rem;
	}
}

@media (min-width: 640px) {
	.gz-header__login {
		display: inline-flex;
	}
}

@media (min-width: 900px) {
	.gz-nav {
		display: flex;
		justify-content: center;
	}

	.gz-nav-toggle {
		display: none;
	}

	.gz-header__actions {
		margin-left: 0;
	}
}

/* ------------------------------------------------------------------ */
/* Footer                                                              */
/* ------------------------------------------------------------------ */

.gz-footer {
	background: hsl(var(--soft));
	border-top: 1px solid hsl(var(--border));
	color: hsl(var(--muted-foreground));
	font-size: 0.9375rem;
}

.gz-footer__top {
	display: grid;
	gap: 2.5rem;
	padding-top: 4rem;
	padding-bottom: 3rem;
}

.gz-footer__brand p {
	max-width: 22rem;
	margin: 0.25rem 0 1.5rem;
	line-height: 1.65;
}

.gz-logo--footer {
	display: inline-flex;
	margin: -1.75rem 0 -1.5rem -0.5rem;
}

.gz-logo--footer .gz-logo__img {
	height: 6rem;
}

.gz-footer__col h2 {
	margin: 0 0 1rem;
	color: hsl(var(--foreground));
	font-family: var(--font-sans);
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.gz-footer .gz-menu {
	flex-direction: column;
	align-items: flex-start;
	gap: 0.625rem;
	font-size: 0.9375rem;
}

.gz-footer .gz-menu a {
	color: hsl(var(--muted-foreground));
	text-decoration: none;
	transition: color 0.15s;
}

.gz-footer .gz-menu a:hover {
	color: hsl(var(--primary));
}

.gz-footer .gz-menu a span {
	display: inline-block;
	min-width: 5.5rem;
	color: hsl(var(--subtle-foreground));
}

.gz-footer .gz-menu a.gz-footer__cta {
	color: hsl(var(--primary));
	font-weight: 600;
}

.gz-footer .gz-app-badges {
	margin: 0;
}

.gz-footer__bottom {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	padding-top: 1.5rem;
	padding-bottom: 2rem;
	position: relative;
	font-size: 0.875rem;
}

.gz-footer__bottom::before {
	content: "";
	position: absolute;
	top: 0;
	left: var(--gz-gutter);
	right: var(--gz-gutter);
	border-top: 1px solid hsl(var(--border));
}

.gz-footer__bottom p {
	margin: 0;
}

.gz-footer__bottom a {
	color: hsl(var(--muted-foreground));
	font-weight: 500;
	text-decoration: none;
}

.gz-footer__bottom a:hover {
	color: hsl(var(--primary));
}

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

@media (min-width: 1024px) {
	.gz-footer__top {
		grid-template-columns: 1.6fr 1fr 1fr 1.3fr;
		gap: 3rem;
	}
}

/* ------------------------------------------------------------------ */
/* Sections                                                            */
/* ------------------------------------------------------------------ */

body .gz-section {
	position: relative;
	margin: 0;
	padding: 4rem var(--gz-gutter);
}

body .gz-section.has-background {
	border-block: 1px solid hsl(var(--border) / 0.7);
}

body .gz-section--lg {
	padding-block: 5rem;
}

@media (min-width: 768px) {
	body .gz-section {
		padding-block: 5.5rem;
	}

	body .gz-section--lg {
		padding-block: 6rem;
	}
}

body .gz-section-head {
	max-width: 46rem;
	margin: 0 auto 3rem;
	text-align: center;
}

@media (min-width: 768px) {
	body .gz-section-head {
		margin-bottom: 4rem;
	}
}

body .gz-section-head > * {
	margin: 0;
}

body .gz-section-head h2 {
	margin: 1rem 0 1rem;
	font-size: 2rem;
	font-weight: 700;
	letter-spacing: -0.03em;
	line-height: 1.12;
}

body .gz-section-head > h2:first-child {
	margin-top: 0;
}

body .gz-section-head .gz-lead {
	max-width: 40rem;
	margin-inline: auto;
}

body .gz-section-head .wp-block-buttons {
	justify-content: center;
	margin-top: 2rem;
}

body .gz-section-head hr.is-style-accent-bar {
	display: none;
}

@media (min-width: 768px) {
	body .gz-section-head h2 {
		font-size: 2.625rem;
	}
}

body hr.wp-block-separator.is-style-accent-bar {
	width: 3rem;
	height: 0.25rem;
	border: 0;
	border-radius: 9999px;
	background: hsl(var(--primary));
	opacity: 1;
}

/* Grids */

body .gz-grid {
	display: grid;
	gap: 1.25rem;
}

body .gz-grid > * {
	margin: 0;
}

body .gz-grid--4 {
	grid-template-columns: minmax(0, 1fr);
	gap: 0.875rem;
}

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

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

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

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

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

/* Cards */

body .wp-block-group.is-style-card {
	padding: 1.75rem;
	background: hsl(var(--card));
	border: 1px solid hsl(var(--border));
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-xs);
	transition: box-shadow 0.25s, border-color 0.25s, transform 0.25s;
}

body .wp-block-group.is-style-card:hover {
	border-color: hsl(var(--input));
	box-shadow: var(--shadow-md);
}

body .gz-card h3 {
	margin: 1.25rem 0 0;
	font-size: 1.0625rem;
	font-weight: 650;
	letter-spacing: -0.015em;
	line-height: 1.35;
}

body .gz-card p {
	margin: 0.5rem 0 0;
	color: hsl(var(--muted-foreground));
	font-size: 0.9375rem;
	line-height: 1.65;
}

/* Solutions tiles: icon + label in a row */

body .wp-block-group.gz-tile {
	display: flex;
	align-items: center;
	gap: 0.875rem;
	padding: 1rem 1.125rem;
	border-radius: var(--radius);
}

body .gz-tile > * {
	margin: 0;
}

body .gz-tile .gz-icon {
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 0.625rem;
}

body .gz-tile .gz-icon svg {
	width: 1.25rem;
	height: 1.25rem;
}

body .gz-tile p {
	color: hsl(var(--foreground));
	font-size: 0.9375rem;
	font-weight: 600;
	letter-spacing: -0.01em;
	line-height: 1.35;
}

/* Icons */

.gz-icon {
	display: flex;
	flex-shrink: 0;
	align-items: center;
	justify-content: center;
	width: 3rem;
	height: 3rem;
	border: 1px solid hsl(var(--gz-accent) / 0.14);
	border-radius: var(--radius);
	background: hsl(var(--gz-accent) / 0.08);
	color: hsl(var(--gz-accent));
}

.gz-icon svg {
	display: block;
	width: 1.375rem;
	height: 1.375rem;
}

.gz-icon--xs {
	width: 1.25rem;
	height: 1.25rem;
}

.gz-icon--xs svg {
	width: 0.75rem;
	height: 0.75rem;
}

.gz-icon--sm {
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 0.625rem;
}

.gz-icon--sm svg {
	width: 1.25rem;
	height: 1.25rem;
}

.gz-icon--lg {
	width: 3.25rem;
	height: 3.25rem;
}

.gz-icon--lg svg {
	width: 1.5rem;
	height: 1.5rem;
}

.gz-icon.gz-icon--circle {
	border-radius: 9999px;
}

.gz-icon--solid {
	border: 0;
	background: hsl(var(--primary));
	color: hsl(var(--primary-foreground));
}

/* Badges / check / cross lists */

body ul.is-style-badges {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

body ul.is-style-badges li {
	display: inline-flex;
	align-items: center;
	gap: 0.4375rem;
	margin: 0;
	padding: 0.3125rem 0.75rem;
	border: 1px solid hsl(var(--border));
	border-radius: 9999px;
	background: hsl(var(--card));
	color: hsl(var(--muted-foreground));
	font-size: 0.8125rem;
	font-weight: 500;
	line-height: 1.25rem;
}

body ul.is-style-badges li::before {
	content: "";
	width: 0.375rem;
	height: 0.375rem;
	border-radius: 9999px;
	background: hsl(var(--gz-accent));
}

body ul.is-style-check,
body ul.is-style-cross {
	margin: 0;
	padding: 0;
	list-style: none;
}

ul.is-style-check {
	--gz-list: var(--color-emerald);
	--gz-list-icon: var(--gz-icon-check);
}

ul.is-style-cross {
	--gz-list: var(--color-rose);
	--gz-list-icon: var(--gz-icon-x);
}

ul.is-style-check li,
ul.is-style-cross li {
	position: relative;
	padding-left: 1.875rem;
	color: hsl(var(--muted-foreground));
	font-size: 0.9375rem;
	line-height: 1.6;
}

ul.is-style-check li + li,
ul.is-style-cross li + li {
	margin-top: 0.75rem;
}

ul.is-style-check li::before,
ul.is-style-cross li::before {
	content: "";
	position: absolute;
	top: 0.125rem;
	left: 0;
	width: 1.25rem;
	height: 1.25rem;
	border-radius: 9999px;
	background: hsl(var(--gz-list) / 0.12);
}

ul.is-style-check li::after,
ul.is-style-cross li::after {
	content: "";
	position: absolute;
	top: 0.375rem;
	left: 0.25rem;
	width: 0.75rem;
	height: 0.75rem;
	background: hsl(var(--gz-list));
	-webkit-mask: var(--gz-list-icon) center / contain no-repeat;
	mask: var(--gz-list-icon) center / contain no-repeat;
}

body ul.gz-inline-checks {
	display: flex;
	flex-wrap: wrap;
	gap: 0.625rem 1.5rem;
}

body ul.gz-inline-checks li {
	margin: 0;
	font-size: 0.875rem;
	font-weight: 500;
}

/* Framed images */

body .wp-block-image.is-style-frame,
body .gz-frame {
	margin: 0;
	overflow: hidden;
	border: 1px solid hsl(var(--border));
	border-radius: var(--radius);
	background: hsl(var(--card));
	box-shadow: var(--shadow-md);
}

body .wp-block-image.is-style-frame img,
body .gz-frame img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 0;
}

/* Browser-window frame */

body .wp-block-image.is-style-browser {
	position: relative;
	margin: 0;
	padding-top: 2.25rem;
	overflow: hidden;
	border: 1px solid hsl(var(--border));
	border-radius: 0.875rem;
	background: hsl(var(--card));
	box-shadow: var(--shadow-lg);
}

body .wp-block-image.is-style-browser::before {
	content: "";
	position: absolute;
	inset: 0 0 auto;
	height: 2.25rem;
	border-bottom: 1px solid hsl(var(--border));
	background:
		radial-gradient(circle at 1.125rem 50%, #f87171 0.3125rem, transparent 0.34rem),
		radial-gradient(circle at 2.125rem 50%, #fbbf24 0.3125rem, transparent 0.34rem),
		radial-gradient(circle at 3.125rem 50%, #34d399 0.3125rem, transparent 0.34rem),
		hsl(var(--soft));
}

body .wp-block-image.is-style-browser img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 0;
}

/* ------------------------------------------------------------------ */
/* Hero (light)                                                        */
/* ------------------------------------------------------------------ */

body .gz-hero-light {
	overflow: hidden;
	padding-top: 3.5rem;
	padding-bottom: 4.5rem;
	background:
		radial-gradient(56rem 28rem at 85% -8%, hsl(207 90% 44% / 0.11), transparent 65%),
		radial-gradient(40rem 22rem at -5% 10%, hsl(190 85% 50% / 0.09), transparent 60%),
		hsl(var(--background));
	border-bottom: 1px solid hsl(var(--border) / 0.7);
}

.gz-hero-light::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image:
		linear-gradient(hsl(var(--border) / 0.7) 1px, transparent 1px),
		linear-gradient(90deg, hsl(var(--border) / 0.7) 1px, transparent 1px);
	background-size: 56px 56px;
	-webkit-mask-image: radial-gradient(ellipse 70% 60% at 50% 0%, #000 20%, transparent 75%);
	mask-image: radial-gradient(ellipse 70% 60% at 50% 0%, #000 20%, transparent 75%);
	pointer-events: none;
}

.gz-hero-light > * {
	position: relative;
}

body .wp-block-columns.gz-hero-split {
	flex-direction: column;
	align-items: stretch;
	gap: 3.5rem;
	margin: 0;
}

body .gz-hero-split > .wp-block-column {
	align-self: stretch;
}

body .gz-hero-split .wp-block-column > * {
	margin: 0;
}

body .gz-hero-light h1 {
	margin-top: 1.5rem;
	font-size: 2.5rem;
	font-weight: 800;
	letter-spacing: -0.04em;
	line-height: 1.04;
}

body .gz-hero-light .gz-lead {
	max-width: 34rem;
	margin-top: 1.5rem;
	font-size: 1.125rem;
}

body .gz-hero-light .wp-block-buttons {
	margin-top: 2rem;
}

body .gz-hero-light .gz-inline-checks {
	margin-top: 2rem;
}

.gz-hero-visual {
	position: relative;
	animation: gz-fade-up 0.9s 0.1s ease both;
}

body .gz-hero-visual > * {
	margin: 0;
}

body .wp-block-group.gz-float {
	position: absolute;
	z-index: 2;
	display: flex;
	align-items: center;
	gap: 0.75rem;
	max-width: 17rem;
	padding: 0.75rem 1rem 0.75rem 0.75rem;
	border: 1px solid hsl(var(--border));
	border-radius: var(--radius);
	background: hsl(0 0% 100% / 0.96);
	box-shadow: var(--shadow-lg);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
}

body .gz-float > * {
	margin: 0;
}

body .gz-float p {
	color: hsl(var(--subtle-foreground));
	font-size: 0.75rem;
	line-height: 1.45;
}

body .gz-float strong {
	color: hsl(var(--foreground));
	font-size: 0.8125rem;
	font-weight: 600;
}

body .gz-float--a {
	left: -1.25rem;
	bottom: -1.75rem;
	animation: gz-float 6s ease-in-out infinite;
}

body .gz-float--b {
	right: -1rem;
	top: 22%;
	animation: gz-float 6s 1.5s ease-in-out infinite;
}

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

	50% {
		transform: translateY(-6px);
	}
}

@media (max-width: 639px) {
	body .wp-block-group.gz-float {
		display: none;
	}
}

@media (max-width: 1279px) {
	body .gz-float--a {
		left: 0.75rem;
	}

	body .gz-float--b {
		right: 0.75rem;
	}
}

@media (min-width: 640px) {
	body .gz-hero-light h1 {
		font-size: 3.25rem;
	}
}

@media (min-width: 768px) {
	body .gz-hero-light {
		padding-top: 5rem;
		padding-bottom: 6.5rem;
	}
}

@media (min-width: 1024px) {
	body .wp-block-columns.gz-hero-split {
		flex-direction: row;
		align-items: center;
		gap: 4rem;
	}

	body .gz-hero-split > .wp-block-column {
		align-self: center;
	}

	body .gz-hero-split > .wp-block-column:first-child {
		flex: 0 0 46%;
	}

	body .gz-hero-light h1 {
		font-size: 3.25rem;
	}
}

@media (min-width: 1280px) {
	body .gz-hero-light h1 {
		font-size: 3.75rem;
	}
}

@keyframes gz-fade-up {
	from {
		opacity: 0;
		transform: translateY(24px);
	}

	to {
		opacity: 1;
		transform: none;
	}
}

/* Optional video hero block */

body .gz-hero {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 100vh;
	min-height: 100svh;
	margin: 0;
	overflow: hidden;
	background: hsl(var(--navy));
	color: #fff;
}

.gz-hero__video {
	position: absolute;
	inset: 0;
	width: 100%;
	max-width: none;
	height: 100%;
	object-fit: cover;
}

.gz-hero__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(to right, hsl(220 45% 8% / 0.92), hsl(220 45% 10% / 0.8), hsl(220 45% 12% / 0.5));
	pointer-events: none;
}

.gz-hero__inner {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: var(--gz-container);
	margin-inline: auto;
	padding: 6rem var(--gz-gutter);
}

.gz-hero__content {
	max-width: 42rem;
	animation: gz-fade-up 0.8s ease both;
}

body .gz-hero__content > * {
	margin: 0 0 1.5rem;
}

body .gz-hero h1 {
	color: #fff;
	font-size: clamp(2.25rem, 5vw, 3.75rem);
	font-weight: 800;
	letter-spacing: -0.035em;
	line-height: 1.05;
}

body .gz-hero .gz-lead {
	color: hsl(210 20% 80%);
}

/* App badge */

.gz-app-badges {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-bottom: 2.5rem;
}

.gz-app-badge {
	display: inline-flex;
	align-items: center;
	gap: 0.625rem;
	padding: 0.5rem 1rem 0.5rem 0.875rem;
	border: 1px solid hsl(222 47% 11%);
	border-radius: 0.625rem;
	background: hsl(222 47% 11%);
	color: #fff;
	text-decoration: none;
	white-space: nowrap;
	transition: background-color 0.15s;
}

.gz-app-badge:hover {
	background: #000;
}

.gz-app-badge svg {
	flex-shrink: 0;
	width: 1.375rem;
	height: 1.375rem;
}

.gz-app-badge small {
	display: block;
	color: rgb(255 255 255 / 0.7);
	font-size: 0.5625rem;
	letter-spacing: 0.04em;
	line-height: 1;
}

.gz-app-badge strong {
	display: block;
	font-size: 0.9375rem;
	font-weight: 600;
	line-height: 1.3;
}

/* ------------------------------------------------------------------ */
/* Feature rows & showcase (columns stack until 1024px)                */
/* ------------------------------------------------------------------ */

body .gz-features > * {
	margin: 0;
}

body .gz-features > .gz-feature + .gz-feature {
	margin-top: 4rem;
}

body .wp-block-columns.gz-feature,
body .wp-block-columns.gz-showcase {
	flex-direction: column;
	align-items: stretch;
	gap: 2rem;
	margin: 0;
}

body .gz-feature > .wp-block-column,
body .gz-showcase > .wp-block-column {
	align-self: stretch;
}

@media (max-width: 1023px) {
	/* Core sets flex-basis 0/100% with !important; stacked columns should size to content. */
	body .gz-feature > .wp-block-column,
	body .gz-showcase > .wp-block-column,
	body .gz-hero-split > .wp-block-column {
		flex-basis: auto !important;
	}
}

body .gz-feature .wp-block-column > *,
body .gz-showcase .wp-block-column > * {
	margin: 0;
}

body .gz-feature .wp-block-column > * + *,
body .gz-showcase .wp-block-column > * + * {
	margin-top: 1.25rem;
}

body .gz-feature h3 {
	font-size: 1.625rem;
	font-weight: 700;
	letter-spacing: -0.03em;
	line-height: 1.2;
}

body .gz-feature .gz-lead {
	max-width: 34rem;
	font-size: 1.0625rem;
}

/* Screenshot sits on a tinted panel */
body .gz-feature > .wp-block-column:last-child {
	padding: 1.25rem;
	border: 1px solid hsl(var(--gz-accent) / 0.12);
	border-radius: var(--radius-xl);
	background:
		radial-gradient(28rem 18rem at 100% 0%, hsl(var(--gz-accent) / 0.12), transparent 70%),
		linear-gradient(180deg, hsl(var(--gz-accent) / 0.05), hsl(var(--soft)));
}

body .gz-feature--reverse > .wp-block-column:last-child {
	background:
		radial-gradient(28rem 18rem at 0% 0%, hsl(var(--gz-accent) / 0.12), transparent 70%),
		linear-gradient(180deg, hsl(var(--gz-accent) / 0.05), hsl(var(--soft)));
}

body .gz-showcase h2 {
	font-size: 2rem;
	font-weight: 700;
	letter-spacing: -0.03em;
	line-height: 1.15;
}

body .gz-showcase .gz-lead {
	max-width: 32rem;
}

@media (min-width: 768px) {
	body .gz-features > .gz-feature + .gz-feature {
		margin-top: 6rem;
	}

	body .gz-feature > .wp-block-column:last-child {
		padding: 2rem;
	}

	body .gz-feature h3 {
		font-size: 1.875rem;
	}

	body .gz-showcase h2 {
		font-size: 2.5rem;
	}
}

@media (min-width: 1024px) {
	body .wp-block-columns.gz-feature,
	body .wp-block-columns.gz-showcase {
		flex-direction: row;
		align-items: center;
		gap: 4.5rem;
	}

	body .wp-block-columns.gz-feature--reverse {
		flex-direction: row-reverse;
	}

	body .gz-feature > .wp-block-column,
	body .gz-showcase > .wp-block-column {
		align-self: center;
	}

	body .gz-feature > .wp-block-column:first-child {
		flex: 0 0 40%;
	}
}

/* ------------------------------------------------------------------ */
/* Before / after                                                      */
/* ------------------------------------------------------------------ */

body .wp-block-group.gz-compare {
	position: relative;
	padding: 1.75rem;
	overflow: hidden;
	border: 1px solid hsl(var(--border));
	border-radius: var(--radius-xl);
	background: hsl(var(--card));
	box-shadow: var(--shadow-sm);
}

body .wp-block-group.gz-compare::before {
	content: "";
	position: absolute;
	inset: 0 0 auto;
	height: 3px;
	background: hsl(var(--gz-accent));
}

body .gz-compare > * {
	margin: 0;
}

body .gz-compare.gz-compare > * + * {
	margin-top: 1.5rem;
}

body .gz-compare__head {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

body .gz-compare__head > * {
	margin: 0;
}

body .gz-compare h3 {
	font-size: 1.25rem;
	font-weight: 700;
	letter-spacing: -0.02em;
}

body .wp-block-image.gz-compare__img {
	overflow: hidden;
	border-radius: var(--radius);
}

body .wp-block-image.gz-compare__img img {
	display: block;
	width: 100%;
	height: 220px;
	object-fit: cover;
}

body .gz-compare.gz-accent-rose .wp-block-image.gz-compare__img img {
	filter: saturate(0.6);
}

@media (min-width: 768px) {
	body .wp-block-group.gz-compare {
		padding: 2.25rem;
	}
}

/* ------------------------------------------------------------------ */
/* Benefits                                                            */
/* ------------------------------------------------------------------ */

body .wp-block-group.gz-benefit {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
}

body .gz-benefit > *,
body .gz-benefit__body > * {
	margin: 0;
}

body .gz-benefit__body > .gz-stat {
	margin-bottom: 0.375rem;
	color: hsl(var(--foreground));
	font-family: var(--font-heading);
	font-size: 2.75rem;
	font-weight: 800;
	letter-spacing: -0.045em;
	line-height: 1;
}

body .gz-benefit__body > .gz-stat-label {
	margin-bottom: 0.5rem;
	color: hsl(var(--foreground));
	font-size: 0.9375rem;
	font-weight: 600;
}

body .gz-benefit__body > p:last-child {
	color: hsl(var(--muted-foreground));
	font-size: 0.9375rem;
	line-height: 1.6;
}

/* ------------------------------------------------------------------ */
/* Pricing card & closing CTA banner                                   */
/* ------------------------------------------------------------------ */

body .wp-block-group.gz-pricing-card {
	max-width: 68rem;
	padding: 2rem 1.5rem;
	border: 1px solid hsl(var(--border));
	border-radius: var(--radius-xl);
	background: hsl(var(--card));
	box-shadow: var(--shadow-md);
}

body .gz-pricing-card > * {
	margin: 0;
}

body .wp-block-columns.gz-pricing-split {
	flex-direction: column;
	align-items: stretch;
	gap: 2rem;
	margin: 0;
}

body .gz-pricing-split > .wp-block-column {
	align-self: stretch;
}

@media (max-width: 1023px) {
	body .gz-pricing-split > .wp-block-column {
		flex-basis: auto !important;
	}
}

body .gz-pricing-split .wp-block-column > * {
	margin: 0;
}

body .gz-pricing-split .wp-block-heading {
	margin-top: 1rem;
	font-size: 2rem;
	letter-spacing: -0.03em;
	line-height: 1.12;
}

body .gz-pricing-split .gz-lead {
	margin-top: 1rem;
	max-width: 30rem;
}

body .gz-pricing-split .wp-block-buttons {
	margin-top: 2rem;
}

/* Right column: "Every plan includes" panel */
body .gz-pricing-split > .wp-block-column:last-child {
	padding: 1.75rem;
	border: 1px solid hsl(var(--border));
	border-radius: var(--radius-lg);
	background: hsl(var(--soft));
}

body .gz-plan-label {
	margin-bottom: 1.25rem !important;
	color: hsl(var(--foreground));
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

body ul.gz-plan-list li {
	color: hsl(var(--foreground));
	font-weight: 500;
}

@media (min-width: 640px) {
	body ul.gz-plan-list {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0.875rem 1.5rem;
	}

	body ul.gz-plan-list li + li {
		margin-top: 0;
	}
}

@media (min-width: 768px) {
	body .wp-block-group.gz-pricing-card {
		padding: 3rem;
	}

	body .gz-pricing-split .wp-block-heading {
		font-size: 2.5rem;
	}
}

@media (min-width: 1024px) {
	body .wp-block-columns.gz-pricing-split {
		flex-direction: row;
		align-items: center;
		gap: 3.5rem;
	}

	body .gz-pricing-split > .wp-block-column {
		flex: 1 1 0;
		align-self: center;
	}

	body .gz-pricing-split > .wp-block-column:last-child {
		flex: 1.4 1 0;
		padding: 2.25rem;
	}
}

body .gz-section.gz-cta {
	background: transparent !important;
	border: 0;
}

body .gz-cta .gz-section-head {
	position: relative;
	max-width: var(--wp--style--global--content-size, 1200px);
	margin-bottom: 0;
	padding: 3.5rem 1.5rem;
	overflow: hidden;
	border-radius: var(--radius-xl);
	background:
		radial-gradient(40rem 20rem at 85% 0%, hsl(196 92% 46% / 0.35), transparent 60%),
		radial-gradient(30rem 20rem at 0% 100%, hsl(207 90% 44% / 0.45), transparent 60%),
		hsl(var(--navy));
	box-shadow: var(--shadow-lg);
}

body .gz-cta .gz-section-head::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image:
		linear-gradient(hsl(0 0% 100% / 0.06) 1px, transparent 1px),
		linear-gradient(90deg, hsl(0 0% 100% / 0.06) 1px, transparent 1px);
	background-size: 48px 48px;
	-webkit-mask-image: radial-gradient(ellipse at center, #000 30%, transparent 80%);
	mask-image: radial-gradient(ellipse at center, #000 30%, transparent 80%);
	pointer-events: none;
}

body .gz-cta .gz-section-head > * {
	position: relative;
}

body .gz-cta h2 {
	color: #fff;
}

body .gz-cta h2 .text-gradient-brand {
	background: linear-gradient(90deg, #7dd3fc, #67e8f9);
	-webkit-background-clip: text;
	background-clip: text;
}

body .gz-cta .gz-lead {
	color: hsl(210 40% 85%);
}

body .gz-cta .is-style-gradient .wp-block-button__link {
	border-color: #fff;
	background: #fff;
	color: hsl(var(--navy));
	box-shadow: 0 8px 24px -8px rgb(0 0 0 / 0.5);
}

body .gz-cta .is-style-gradient .wp-block-button__link:hover {
	background: hsl(210 40% 96%);
}

@media (min-width: 768px) {
	body .gz-cta .gz-section-head {
		padding: 5rem 3rem;
	}
}

/* ------------------------------------------------------------------ */
/* ROI calculator                                                      */
/* ------------------------------------------------------------------ */

.gz-roi {
	display: grid;
	align-items: start;
	gap: 1.5rem;
}

.gz-roi p {
	margin: 0;
}

.gz-roi__inputs {
	display: flex;
	flex-direction: column;
	gap: 2rem;
	padding: 1.75rem;
	border: 1px solid hsl(var(--border));
	border-radius: var(--radius-xl);
	background: hsl(var(--card));
	box-shadow: var(--shadow-sm);
}

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

.gz-roi__title h3 {
	margin: 0;
	font-size: 1.125rem;
	font-weight: 700;
}

.gz-range__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: 0.875rem;
}

.gz-range__head label {
	color: hsl(var(--muted-foreground));
	font-size: 0.9375rem;
	font-weight: 500;
}

.gz-range__head output {
	color: hsl(var(--foreground));
	font-family: var(--font-heading);
	font-size: 1.375rem;
	font-weight: 700;
	letter-spacing: -0.02em;
	white-space: nowrap;
}

.gz-range__limits {
	display: flex;
	justify-content: space-between;
	margin-top: 0.375rem;
	color: hsl(var(--subtle-foreground));
	font-size: 0.75rem;
}

.gz-range input[type="range"] {
	--gz-fill: 50%;
	display: block;
	width: 100%;
	height: 1.25rem;
	margin: 0;
	background: transparent;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
}

.gz-range input[type="range"]::-webkit-slider-runnable-track {
	height: 0.375rem;
	border-radius: 9999px;
	background: linear-gradient(hsl(var(--primary)), hsl(var(--primary))) 0 / var(--gz-fill) 100% no-repeat, hsl(var(--muted));
}

.gz-range input[type="range"]::-webkit-slider-thumb {
	width: 1.25rem;
	height: 1.25rem;
	margin-top: -0.4375rem;
	border: 2px solid hsl(var(--primary));
	border-radius: 50%;
	background: #fff;
	box-shadow: var(--shadow-sm);
	-webkit-appearance: none;
	appearance: none;
	transition: box-shadow 0.15s;
}

.gz-range input[type="range"]::-moz-range-track {
	height: 0.375rem;
	border-radius: 9999px;
	background: hsl(var(--muted));
}

.gz-range input[type="range"]::-moz-range-progress {
	height: 0.375rem;
	border-radius: 9999px;
	background: hsl(var(--primary));
}

.gz-range input[type="range"]::-moz-range-thumb {
	width: 1rem;
	height: 1rem;
	border: 2px solid hsl(var(--primary));
	border-radius: 50%;
	background: #fff;
}

.gz-range input[type="range"]:focus-visible {
	outline: none;
}

.gz-range input[type="range"]:focus-visible::-webkit-slider-thumb {
	box-shadow: 0 0 0 4px hsl(var(--ring) / 0.25);
}

.gz-range input[type="range"]:focus-visible::-moz-range-thumb {
	box-shadow: 0 0 0 4px hsl(var(--ring) / 0.25);
}

.gz-roi__results {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.gz-roi__total {
	position: relative;
	padding: 1.75rem;
	overflow: hidden;
	border-radius: var(--radius-xl);
	background:
		radial-gradient(24rem 12rem at 100% 0%, hsl(196 92% 46% / 0.35), transparent 65%),
		hsl(var(--navy));
	color: #fff;
}

.gz-roi__total-label {
	margin-bottom: 0.5rem !important;
	color: hsl(210 40% 80%);
	font-size: 0.875rem;
	font-weight: 500;
}

.gz-roi__total-value {
	margin-bottom: 0.5rem !important;
	font: 800 2.5rem/1 var(--font-heading);
	letter-spacing: -0.045em;
}

.gz-roi__total-note {
	color: hsl(210 40% 80%);
	font-size: 0.875rem;
}

.gz-roi__total-note strong {
	color: #fff;
	font-weight: 600;
}

.gz-roi__breakdown {
	display: flex;
	flex-direction: column;
	margin: 0;
	padding: 0.25rem 0;
	overflow: hidden;
	border: 1px solid hsl(var(--border));
	border-radius: var(--radius-xl);
	background: hsl(var(--card));
	list-style: none;
	box-shadow: var(--shadow-sm);
}

.gz-roi__item {
	display: flex;
	align-items: flex-start;
	gap: 1rem;
	padding: 1rem 1.25rem;
}

.gz-roi__item + .gz-roi__item {
	border-top: 1px solid hsl(var(--border));
}

.gz-roi__item > div {
	flex: 1;
	min-width: 0;
}

.gz-roi__item-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
	font-size: 0.9375rem;
}

.gz-roi__item-head strong {
	font-weight: 600;
}

.gz-roi__item-head > span {
	font-weight: 700;
	white-space: nowrap;
}

.gz-roi__item-desc {
	margin-top: 0.125rem !important;
	color: hsl(var(--subtle-foreground));
	font-size: 0.8125rem;
}

.gz-roi__note {
	color: hsl(var(--subtle-foreground));
	font-size: 0.75rem;
	text-align: center;
}

@media (min-width: 768px) {
	.gz-roi__inputs,
	.gz-roi__total {
		padding: 2.25rem;
	}

	.gz-roi__total-value {
		font-size: 3.25rem;
	}
}

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

/* ------------------------------------------------------------------ */
/* Pages & prose                                                       */
/* ------------------------------------------------------------------ */

.gz-page {
	max-width: calc(48rem + 2 * var(--gz-gutter));
	padding-top: 3.5rem;
	padding-bottom: 6rem;
}

.gz-page__title {
	margin: 0 0 1.25rem;
	font-size: 2.25rem;
	font-weight: 800;
	letter-spacing: -0.04em;
}

@media (min-width: 768px) {
	.gz-page {
		padding-top: 5rem;
		padding-bottom: 8rem;
	}

	.gz-page__title {
		font-size: 3rem;
	}
}

.gz-prose {
	color: hsl(var(--muted-foreground));
	font-size: 1.0625rem;
	line-height: 1.75;
}

.gz-prose > * {
	margin-top: 0;
	margin-bottom: 1.25rem;
}

.gz-prose h2 {
	margin: 2.75rem 0 1rem;
	font-size: 1.5rem;
	font-weight: 700;
	letter-spacing: -0.025em;
}

.gz-prose h3 {
	margin: 2rem 0 0.75rem;
	font-size: 1.1875rem;
	font-weight: 650;
	letter-spacing: -0.015em;
}

.gz-prose ul,
.gz-prose ol {
	padding-left: 1.375rem;
}

.gz-prose li + li {
	margin-top: 0.5rem;
}

.gz-prose li::marker {
	color: hsl(var(--primary));
}

.gz-prose a {
	color: hsl(var(--primary));
	text-decoration: underline;
	text-decoration-color: hsl(var(--primary) / 0.35);
	text-underline-offset: 3px;
}

.gz-prose a:hover {
	text-decoration-color: currentColor;
}

.gz-prose strong {
	color: hsl(var(--foreground));
	font-weight: 600;
}

.gz-prose code {
	padding: 0.125rem 0.375rem;
	border-radius: 0.25rem;
	background: hsl(var(--muted));
	color: hsl(var(--foreground));
	font-size: 0.875em;
}

.gz-prose--muted > p {
	margin-bottom: 1.25rem;
}

.gz-prose--muted > ul,
.gz-prose--muted > ol {
	margin-bottom: 1.5rem;
}

/* Contact page */

.gz-prose > .gz-lead {
	margin-bottom: 2.5rem;
	font-size: 1.125rem;
}

.gz-prose .gz-contact-grid {
	gap: 1rem;
	margin-bottom: 1.5rem;
}

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

body .wp-block-group.gz-contact-card {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.375rem;
	padding: 1.5rem;
}

body .wp-block-group.gz-contact-card:hover {
	border-color: hsl(var(--primary) / 0.4);
}

body .gz-contact-card > * {
	margin: 0;
}

.gz-contact-card__flag {
	margin-bottom: 0.5rem !important;
	font-size: 1.75rem;
	line-height: 1;
}

.gz-contact-card__country {
	color: hsl(var(--foreground));
	font-size: 1.0625rem;
	font-weight: 600;
}

.gz-prose .gz-contact-card__phone a {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	color: hsl(var(--muted-foreground));
	font-size: 0.9375rem;
	text-decoration: none;
}

.gz-contact-card__phone a::before {
	content: "";
	width: 0.875rem;
	height: 0.875rem;
	background: currentColor;
	-webkit-mask: var(--gz-icon-phone) center / contain no-repeat;
	mask: var(--gz-icon-phone) center / contain no-repeat;
}

/* Whole card is clickable. */
.gz-contact-card__phone a::after {
	content: "";
	position: absolute;
	inset: 0;
}

body .wp-block-group.gz-contact-mail {
	padding: 1.75rem;
}

body .gz-contact-mail > * {
	margin: 0;
}

.gz-prose .gz-contact-mail h2 {
	margin: 0 0 0.75rem;
	font-size: 1.25rem;
}

.gz-contact-email {
	font-size: 1.125rem;
	font-weight: 600;
}

.gz-prose .gz-contact-email a {
	text-decoration: none;
}

body .gz-contact-mail > p:last-child {
	margin-top: 1rem;
	color: hsl(var(--subtle-foreground));
	font-size: 0.9375rem;
}

/* ------------------------------------------------------------------ */
/* Blog                                                                */
/* ------------------------------------------------------------------ */

.gz-blog,
.gz-article {
	padding-top: 3.5rem;
	padding-bottom: 5rem;
}

@media (min-width: 768px) {
	.gz-blog,
	.gz-article {
		padding-top: 5rem;
		padding-bottom: 7rem;
	}
}

.gz-blog__head {
	max-width: 44rem;
	margin: 0 auto 3.5rem;
	text-align: center;
}

.gz-blog__head h1 {
	margin: 1rem 0 1rem;
	font-size: 2.5rem;
	font-weight: 800;
	letter-spacing: -0.04em;
	line-height: 1.08;
}

.gz-blog__head .gz-lead {
	margin: 0 auto;
}

@media (min-width: 768px) {
	.gz-blog__head h1 {
		font-size: 3.25rem;
	}
}

.gz-post-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem 0.875rem;
	color: hsl(var(--subtle-foreground));
	font-size: 0.875rem;
}

.gz-post-meta__item {
	display: inline-flex;
	align-items: center;
	gap: 0.3125rem;
}

.gz-post-meta__item svg {
	width: 0.875rem;
	height: 0.875rem;
}

.gz-pill {
	padding: 0.1875rem 0.625rem;
	border: 1px solid hsl(var(--primary) / 0.18);
	border-radius: 9999px;
	background: hsl(var(--primary) / 0.06);
	color: hsl(var(--primary-strong));
	font-size: 0.75rem;
	font-weight: 600;
}

.gz-post-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	border: 1px solid hsl(var(--border));
	border-radius: var(--radius-lg);
	background: hsl(var(--card));
	box-shadow: var(--shadow-xs);
	color: inherit;
	text-decoration: none;
	transition: box-shadow 0.25s, border-color 0.25s, opacity 0.6s ease, transform 0.6s ease;
}

.gz-post-card:hover {
	border-color: hsl(var(--input));
	box-shadow: var(--shadow-md);
}

.gz-post-card__media {
	overflow: hidden;
	aspect-ratio: 16 / 9;
	background: hsl(var(--muted));
}

.gz-post-card__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.5s;
}

.gz-post-card:hover .gz-post-card__media img {
	transform: scale(1.04);
}

.gz-post-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: 1.5rem;
}

.gz-post-card .gz-post-meta {
	margin-bottom: 0.875rem;
	font-size: 0.8125rem;
}

.gz-post-card__title {
	display: -webkit-box;
	margin: 0 0 0.625rem;
	overflow: hidden;
	font-size: 1.1875rem;
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.35;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	transition: color 0.15s;
}

.gz-post-card:hover .gz-post-card__title {
	color: hsl(var(--primary));
}

.gz-post-card__excerpt {
	display: -webkit-box;
	flex: 1;
	margin: 0;
	overflow: hidden;
	color: hsl(var(--muted-foreground));
	font-size: 0.9375rem;
	line-height: 1.65;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
}

.gz-post-card__more {
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	margin-top: 1.25rem;
	color: hsl(var(--primary));
	font-size: 0.875rem;
	font-weight: 600;
}

.gz-post-card__more svg {
	width: 1rem;
	height: 1rem;
	transition: transform 0.15s;
}

.gz-post-card:hover .gz-post-card__more svg {
	transform: translateX(3px);
}

/* Featured (first post on the blog index) */

.gz-post-card--featured {
	display: grid;
	align-items: center;
	gap: 0;
	margin-bottom: 2rem;
	border-radius: var(--radius-xl);
}

.gz-post-card--featured .gz-post-card__media {
	aspect-ratio: 16 / 10;
}

.gz-post-card--featured .gz-post-card__body {
	gap: 1rem;
	padding: 2rem;
}

.gz-post-card--featured .gz-post-meta {
	margin: 0;
	font-size: 0.875rem;
}

.gz-post-card--featured .gz-post-card__title {
	margin: 0;
	font-size: 1.625rem;
	letter-spacing: -0.03em;
	-webkit-line-clamp: unset;
}

.gz-post-card--featured .gz-post-card__excerpt {
	flex: none;
	font-size: 1rem;
	-webkit-line-clamp: unset;
}

.gz-post-card--featured .gz-post-card__more {
	margin-top: 0.25rem;
}

@media (min-width: 768px) {
	.gz-post-card--featured {
		grid-template-columns: 1.15fr 1fr;
	}

	.gz-post-card--featured .gz-post-card__media {
		height: 100%;
		aspect-ratio: auto;
		min-height: 22rem;
	}

	.gz-post-card--featured .gz-post-card__body {
		padding: 2.5rem 3rem;
	}

	.gz-post-card--featured .gz-post-card__title {
		font-size: 2rem;
	}
}

.gz-post-grid {
	display: grid;
	gap: 1.5rem;
}

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

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

/* Related posts under an article */

.gz-related {
	margin-top: 5rem;
	padding-top: 4rem;
	border-top: 1px solid hsl(var(--border));
}

.gz-related h2 {
	margin: 0 0 2rem;
	font-size: 1.5rem;
	font-weight: 700;
	letter-spacing: -0.025em;
}

.gz-post-grid--related {
	gap: 1.5rem;
}

@media (min-width: 768px) {
	.gz-post-grid--related {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.gz-post-card--related .gz-post-card__body {
	padding: 1.25rem;
}

.gz-post-card__cat {
	color: hsl(var(--primary));
	font-size: 0.75rem;
	font-weight: 600;
}

.gz-post-card--related .gz-post-card__title {
	margin: 0.375rem 0 0;
	font-size: 1.0625rem;
}

/* Single article */

.gz-article__inner {
	max-width: calc(46rem + 2 * var(--gz-gutter));
}

.gz-back {
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	margin-bottom: 2rem;
	color: hsl(var(--muted-foreground));
	font-size: 0.875rem;
	font-weight: 500;
	text-decoration: none;
	transition: color 0.15s;
}

.gz-back:hover {
	color: hsl(var(--primary));
}

.gz-back svg {
	width: 1rem;
	height: 1rem;
}

.gz-article .gz-post-meta {
	margin-bottom: 1.25rem;
}

.gz-article__title {
	margin: 0 0 2.5rem;
	font-size: 2.25rem;
	font-weight: 800;
	letter-spacing: -0.04em;
	line-height: 1.1;
}

@media (min-width: 768px) {
	.gz-article__title {
		font-size: 3rem;
	}
}

.gz-article__image {
	margin-bottom: 3rem;
	overflow: hidden;
	border: 1px solid hsl(var(--border));
	border-radius: var(--radius-xl);
	box-shadow: var(--shadow-md);
}

.gz-article__image img {
	display: block;
	width: 100%;
	height: auto;
}

.gz-pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.5rem;
	margin-top: 3rem;
}

.gz-pagination .page-numbers {
	padding: 0.5rem 0.875rem;
	border: 1px solid hsl(var(--border));
	border-radius: var(--radius-sm);
	background: hsl(var(--card));
	color: hsl(var(--foreground));
	font-size: 0.875rem;
	text-decoration: none;
}

.gz-pagination .page-numbers.current {
	border-color: hsl(var(--primary));
	background: hsl(var(--primary));
	color: hsl(var(--primary-foreground));
}

.gz-empty {
	color: hsl(var(--muted-foreground));
	text-align: center;
}

/* 404 */

.gz-404 {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-height: 60vh;
	padding-block: 4rem;
	text-align: center;
}

.gz-404 h1 {
	margin: 0 0 0.75rem;
	color: hsl(var(--primary));
	font-size: 4rem;
	font-weight: 800;
	letter-spacing: -0.05em;
}

.gz-404 p {
	margin: 0 0 1.5rem;
	color: hsl(var(--muted-foreground));
	font-size: 1.25rem;
}

.gz-404 a {
	color: hsl(var(--primary));
	font-weight: 600;
}

/* ------------------------------------------------------------------ */
/* Call-back modal & toasts                                            */
/* ------------------------------------------------------------------ */

body.gz-modal-open {
	overflow: hidden;
}

.gz-modal {
	position: fixed;
	inset: 0;
	z-index: 100;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1rem;
	opacity: 0;
	transition: opacity 0.2s;
}

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

.gz-modal.is-open {
	opacity: 1;
}

.gz-modal__backdrop {
	position: absolute;
	inset: 0;
	background: hsl(222 47% 11% / 0.5);
	-webkit-backdrop-filter: blur(4px);
	backdrop-filter: blur(4px);
}

.gz-modal__dialog {
	position: relative;
	width: 100%;
	max-width: 28rem;
	max-height: calc(100vh - 2rem);
	padding: 2rem;
	overflow-y: auto;
	border: 1px solid hsl(var(--border));
	border-radius: var(--radius-xl);
	background: hsl(var(--card));
	box-shadow: var(--shadow-lg);
	transform: translateY(16px) scale(0.97);
	transition: transform 0.2s;
}

.gz-modal.is-open .gz-modal__dialog {
	transform: none;
}

.gz-modal__close {
	position: absolute;
	top: 1rem;
	right: 1rem;
	padding: 0.375rem;
	border: 0;
	border-radius: var(--radius-sm);
	background: none;
	color: hsl(var(--subtle-foreground));
	cursor: pointer;
}

.gz-modal__close:hover {
	background: hsl(var(--muted));
	color: hsl(var(--foreground));
}

.gz-modal__close svg {
	display: block;
	width: 1.125rem;
	height: 1.125rem;
}

.gz-modal h3 {
	margin: 0 0 0.375rem;
	font-size: 1.375rem;
	font-weight: 700;
	letter-spacing: -0.025em;
}

.gz-modal__intro {
	margin: 0 0 1.5rem;
	color: hsl(var(--muted-foreground));
	font-size: 0.9375rem;
}

.gz-form {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.gz-field label {
	display: block;
	margin-bottom: 0.4375rem;
	color: hsl(var(--foreground));
	font-size: 0.875rem;
	font-weight: 500;
	line-height: 1.2;
}

.gz-field input,
.gz-field select {
	width: 100%;
	height: 2.75rem;
	padding: 0.5rem 0.875rem;
	border: 1px solid hsl(var(--input));
	border-radius: var(--radius-sm);
	background: hsl(var(--background));
	box-shadow: var(--shadow-xs);
	color: hsl(var(--foreground));
	font: inherit;
	font-size: 0.9375rem;
	transition: border-color 0.15s, box-shadow 0.15s;
}

.gz-field input:focus,
.gz-field select:focus {
	outline: none;
	border-color: hsl(var(--primary));
	box-shadow: 0 0 0 3px hsl(var(--ring) / 0.18);
}

.gz-field__phone {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

/* Side by side when there's room; stacked on narrow phones so country names aren't cut off. */
.gz-field__phone select {
	flex: 1 1 10rem;
}

.gz-field__phone input {
	flex: 1.4 1 10rem;
}

.gz-form .gz-btn--block {
	margin-top: 0.5rem;
}

.gz-hp {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.gz-toasts {
	position: fixed;
	right: 1rem;
	bottom: 1rem;
	z-index: 110;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	width: 22rem;
	max-width: calc(100vw - 2rem);
	pointer-events: none;
}

.gz-toast {
	padding: 1rem 1.25rem;
	border: 1px solid hsl(var(--border));
	border-radius: var(--radius);
	background: hsl(var(--card));
	box-shadow: var(--shadow-lg);
	pointer-events: auto;
	animation: gz-fade-up 0.2s ease;
	transition: opacity 0.3s, transform 0.3s;
}

.gz-toast strong {
	display: block;
	font-size: 0.875rem;
	font-weight: 600;
}

.gz-toast p {
	margin: 0.25rem 0 0;
	color: hsl(var(--muted-foreground));
	font-size: 0.875rem;
}

.gz-toast--error {
	border-color: hsl(var(--destructive));
	background: hsl(var(--destructive));
	color: #fff;
}

.gz-toast--error p {
	color: rgb(255 255 255 / 0.9);
}

.gz-toast.is-leaving {
	opacity: 0;
	transform: translateY(0.5rem);
}

.gz-debug-country {
	position: fixed;
	right: 1rem;
	bottom: 1rem;
	z-index: 9999;
	display: flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.75rem;
	border: 1px solid hsl(var(--border));
	border-radius: var(--radius-sm);
	background: hsl(var(--card));
	box-shadow: var(--shadow-md);
	color: hsl(var(--muted-foreground));
	font-size: 0.75rem;
	font-weight: 500;
}

/* ------------------------------------------------------------------ */
/* Scroll reveal (class added by theme.js)                             */
/* ------------------------------------------------------------------ */

.gz-reveal {
	opacity: 0;
	transform: translateY(16px);
	transition: opacity 0.6s ease, transform 0.6s ease, box-shadow 0.25s, border-color 0.25s;
}

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

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

	.gz-hero__content,
	.gz-hero-visual,
	.gz-float,
	.gz-toast {
		animation: none !important;
	}

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

/* Hairline between consecutive white sections. */
body .gz-section:not(.has-background):not(.gz-hero-light):not(.gz-cta) + .gz-section:not(.has-background):not(.gz-cta) {
	border-top: 1px solid hsl(var(--border) / 0.7);
}
