/* Class Auto Center — Hero + Locations */

:root {
	--bg: #050a12;
	--bg-elevated: #0a1220;
	--border: rgba(80, 120, 200, 0.28);
	--border-soft: rgba(255, 255, 255, 0.08);
	--text: #ffffff;
	--text-muted: rgba(255, 255, 255, 0.75);
	--accent: #0047ff;
	--accent-soft: #3d6eff;
	--accent-hover: #1a5aff;
	--radius: 6px;
	--header-h: 70px;
	--font: "Manrope", system-ui, sans-serif;
}

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

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	font-family: var(--font);
	background: var(--bg);
	color: var(--text);
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
}

img,
video {
	max-width: 100%;
	display: block;
}

a {
	color: inherit;
	text-decoration: none;
}

button {
	font: inherit;
}

.visually-hidden {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	border: 0;
}

.accent {
	color: var(--accent-soft);
}

/* ——— Header ——— */
.site-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: rgba(5, 10, 18, 0.94);
	backdrop-filter: blur(14px);
	border-bottom: 1px solid var(--border-soft);
}

.header-inner {
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: 24px;
	max-width: 1280px;
	margin: 0 auto;
	padding: 0 24px;
	min-height: var(--header-h);
}

.site-logo {
	display: flex;
	align-items: center;
	max-width: 220px;
	min-width: 0;
}

.site-logo .custom-logo-link {
	display: flex;
	align-items: center;
	line-height: 0;
	max-width: 100%;
}

.site-logo .custom-logo,
.site-logo img {
	display: block;
	height: 48px;
	width: auto;
	max-width: 220px;
	max-height: 52px;
	object-fit: contain;
}

.site-logo-text {
	display: flex;
	flex-direction: column;
	line-height: 1;
	gap: 2px;
}

.logo-mark {
	font-weight: 800;
	letter-spacing: 0.04em;
	font-size: 1.15rem;
}

.logo-text {
	font-size: 0.68rem;
	letter-spacing: 0.22em;
	font-weight: 600;
	opacity: 0.9;
}

.primary-nav .nav-menu {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 2px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.primary-nav a {
	display: block;
	padding: 8px 12px;
	font-size: 0.88rem;
	font-weight: 500;
	color: var(--text-muted);
	transition: color 0.2s ease;
}

.primary-nav a:hover {
	color: var(--text);
}

.header-actions {
	display: flex;
	align-items: center;
	gap: 10px;
}

.nav-toggle {
	display: none;
	flex-direction: column;
	justify-content: center;
	gap: 5px;
	width: 42px;
	height: 42px;
	padding: 0;
	border: 1px solid var(--border-soft);
	border-radius: 8px;
	background: transparent;
	cursor: pointer;
}

.nav-toggle span {
	display: block;
	width: 18px;
	height: 2px;
	margin: 0 auto;
	background: var(--text);
}

.nav-toggle[aria-expanded="true"] span:nth-child(1) {
	transform: translateY(7px) rotate(45deg);
}

.nav-toggle[aria-expanded="true"] span:nth-child(2) {
	opacity: 0;
}

.nav-toggle[aria-expanded="true"] span:nth-child(3) {
	transform: translateY(-7px) rotate(-45deg);
}

/* ——— Buttons ——— */
.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	border: 1px solid transparent;
	border-radius: var(--radius);
	padding: 12px 18px;
	font-weight: 700;
	font-size: 0.9rem;
	cursor: pointer;
	transition: background 0.2s ease, border-color 0.2s ease;
	text-align: center;
	white-space: nowrap;
}

.btn-primary {
	background: var(--accent);
	color: #fff;
}

.btn-primary:hover {
	background: var(--accent-hover);
}

.btn-outline {
	background: transparent;
	border-color: var(--accent);
	color: var(--text);
}

.btn-outline:hover {
	background: rgba(0, 71, 255, 0.12);
}

.btn-soft {
	background: rgba(255, 255, 255, 0.04);
	border-color: rgba(255, 255, 255, 0.2);
	color: var(--text);
	padding: 11px 12px;
	font-size: 0.82rem;
	flex: 1;
}

.btn-soft:hover {
	border-color: var(--accent);
	background: rgba(0, 71, 255, 0.1);
}

.btn-sm {
	padding: 9px 14px;
	font-size: 0.8rem;
}

.btn-lg {
	padding: 15px 24px;
	font-size: 1rem;
}

.btn-xl {
	padding: 18px 32px;
	font-size: 1.1rem;
	border-radius: 8px;
}

.btn-block {
	width: 100%;
}

.cac-btn-pair {
	display: flex;
	gap: 10px;
	width: 100%;
}

.cac-btn-pair.is-stack {
	flex-direction: column;
}

.cac-btn-pair.is-row {
	flex-direction: row;
	align-items: stretch;
	flex-wrap: nowrap;
}

.cac-btn-pair.is-row > .btn {
	flex: 1 1 0;
	width: auto !important;
	min-width: 0;
	justify-content: center;
	white-space: nowrap;
}

.cac-btn-pair.is-stack > .btn {
	width: 100%;
}

.elementor-widget-cac_button .cac-el-btn-wrap {
	width: 100%;
}

.elementor-widget-cac_button .elementor-button-wrapper {
	display: block;
}

.elementor-widget-cac_button .elementor-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	text-decoration: none;
}

/* Beat Elementor's default grey (#69727D) on .elementor-button */
.elementor-widget-cac_button .elementor-button.btn-primary {
	background-color: var(--accent);
	background: var(--accent);
	color: #fff;
	fill: #fff;
	border-color: transparent;
}

.elementor-widget-cac_button .elementor-button.btn-primary:hover,
.elementor-widget-cac_button .elementor-button.btn-primary:focus {
	background-color: var(--accent-hover);
	background: var(--accent-hover);
	color: #fff;
}

.elementor-widget-cac_button .elementor-button.btn-outline {
	background-color: transparent;
	background: transparent;
	border-color: var(--accent);
	color: var(--text);
	fill: currentColor;
}

.elementor-widget-cac_button .elementor-button.btn-outline:hover,
.elementor-widget-cac_button .elementor-button.btn-outline:focus {
	background-color: rgba(0, 71, 255, 0.12);
	background: rgba(0, 71, 255, 0.12);
	border-color: var(--accent);
	color: var(--text);
}

.elementor-widget-cac_button .elementor-button.btn-soft {
	background-color: rgba(255, 255, 255, 0.04);
	background: rgba(255, 255, 255, 0.04);
	border-color: rgba(255, 255, 255, 0.2);
	color: var(--text);
	fill: currentColor;
}

.elementor-widget-cac_button .elementor-button.btn-soft:hover,
.elementor-widget-cac_button .elementor-button.btn-soft:focus {
	background-color: rgba(0, 71, 255, 0.1);
	background: rgba(0, 71, 255, 0.1);
	border-color: var(--accent);
	color: var(--text);
}

.elementor-widget-cac_button .elementor-button-content-wrapper {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
}

.elementor-widget-cac_button.elementor-align-justify .elementor-button,
.elementor-widget-cac_button.elementor-mobile-align-justify .elementor-button {
	width: 100%;
}

.elementor-widget-cac_button .cac-btn-el.btn-block {
	width: 100%;
}

.elementor-widget-cac_heading .cac-heading {
	margin: 0;
}

.elementor-widget-cac_heading .cac-heading-title {
	margin: 0;
	color: var(--text);
	line-height: 1.15;
}

.elementor-widget-cac_heading .cac-heading-accent {
	color: var(--accent-soft);
	margin-top: 0.15em;
}

.elementor-widget-cac_text .cac-text {
	color: var(--text-muted);
	line-height: 1.6;
}

.elementor-widget-cac_text .cac-text p:last-child {
	margin-bottom: 0;
}

/* ——— HERO ——— */
.hero {
	position: relative;
	min-height: calc(100vh - var(--header-h));
	min-height: calc(100dvh - var(--header-h));
	display: flex;
	align-items: center;
	overflow: hidden;
	isolation: isolate;
}

.hero-media {
	position: absolute;
	inset: 0;
	z-index: 0;
}

.hero-video,
.hero-fallback {
	width: 100%;
	height: 100%;
	object-fit: cover;
	pointer-events: none;
}

.hero-video::-webkit-media-controls,
.hero-video::-webkit-media-controls-enclosure,
.hero-video::-webkit-media-controls-panel,
.hero-video::-webkit-media-controls-start-playback-button,
.hero-video::-webkit-media-controls-play-button {
	display: none !important;
	opacity: 0;
	pointer-events: none;
}

.hero-fallback {
	background:
		radial-gradient(ellipse at 55% 45%, rgba(0, 71, 255, 0.22), transparent 50%),
		linear-gradient(160deg, #0a1528 0%, #050a12 45%, #0c1a38 100%);
	background-size: cover;
	background-position: center;
	animation: heroPulse 12s ease-in-out infinite alternate;
}

@keyframes heroPulse {
	from { filter: brightness(0.95); transform: scale(1); }
	to { filter: brightness(1.08); transform: scale(1.04); }
}

.hero-overlay {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(90deg, rgba(5, 10, 18, 0.72) 0%, rgba(5, 10, 18, 0.35) 42%, rgba(5, 10, 18, 0.15) 100%),
		linear-gradient(180deg, rgba(5, 10, 18, 0.1) 0%, rgba(5, 10, 18, 0.45) 100%);
	z-index: 1;
}

.hero-inner {
	position: relative;
	z-index: 2;
	width: 100%;
	max-width: 1280px;
	margin: 0 auto;
	padding: 64px 24px;
}

.hero-title {
	margin: 0 0 16px;
	max-width: 640px;
	font-size: clamp(2.2rem, 5vw, 3.4rem);
	font-weight: 800;
	line-height: 1.08;
	letter-spacing: -0.03em;
}

.hero-sub {
	margin: 0 0 28px;
	max-width: 480px;
	color: rgba(255, 255, 255, 0.92);
	font-size: 1.05rem;
}

.hero-note {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 16px 0 0;
	color: rgba(255, 255, 255, 0.88);
	font-size: 0.9rem;
}

/* ——— LOCATIONS ——— */
.locations {
	background: var(--bg);
	padding: 56px 0 72px;
	width: 100%;
}

.locations-inner {
	max-width: none;
	width: 100%;
	margin: 0 auto;
	padding: 0 24px;
	box-sizing: border-box;
}

.section-label {
	display: flex;
	align-items: center;
	gap: 18px;
	margin: 0 0 36px;
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.2em;
	color: var(--text);
	text-align: center;
}

.section-label span {
	flex-shrink: 0;
}

.section-label::before,
.section-label::after {
	content: "";
	flex: 1;
	height: 1px;
	background: var(--accent);
	opacity: 0.75;
}

.locations-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 40px;
	max-width: none;
	width: 100%;
}

.location-card {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.location-top {
	display: grid;
	grid-template-columns: 110px 1fr;
	gap: 14px;
	align-items: start;
}

.location-photo {
	width: 110px;
	height: 90px;
	border-radius: 4px;
	background:
		linear-gradient(180deg, transparent 35%, rgba(0, 0, 0, 0.45)),
		linear-gradient(135deg, #1a2740, #0a101c 60%, #152038);
	flex-shrink: 0;
}

.location-name {
	display: flex;
	align-items: center;
	gap: 6px;
	margin: 0 0 8px;
	font-size: 1rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	color: var(--accent-soft);
}

.location-address {
	margin: 0 0 8px;
	font-size: 0.88rem;
	color: var(--text-muted);
	line-height: 1.45;
}

.location-phone {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	font-size: 0.88rem;
	color: var(--text);
}

.location-phone svg {
	flex-shrink: 0;
	opacity: 0.85;
}

.location-quick {
	display: flex;
	gap: 10px;
}

/* ——— Trust sections (Certs / DRP / Excellence) ——— */
.trust-block {
	background: var(--bg);
	padding: 64px 24px;
	border-top: 1px solid var(--border-soft);
	width: 100%;
}

.trust-inner {
	max-width: none;
	width: 100%;
	margin: 0 auto;
}

.trust-inner--narrow {
	max-width: none;
	text-align: center;
}

.trust-title {
	margin: 0 0 12px;
	font-size: clamp(1.75rem, 3.2vw, 2.35rem);
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: -0.02em;
}

.trust-sub {
	margin: 0 0 32px;
	color: var(--text-muted);
	font-size: 1rem;
}

.brand-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	border: 1px solid rgba(255, 255, 255, 0.12);
	margin-bottom: 28px;
	width: 100%;
}

.brand-cell {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 110px;
	padding: 18px 10px;
	border-right: 1px solid rgba(255, 255, 255, 0.12);
	border-bottom: 1px solid rgba(255, 255, 255, 0.12);
	text-decoration: none;
	color: inherit;
}

a.brand-cell--link {
	cursor: pointer;
	transition: background 0.2s ease;
}

a.brand-cell--link:hover {
	background: rgba(0, 71, 255, 0.08);
}

.brand-cell:nth-child(4n) {
	border-right: 0;
}

.brand-cell:nth-last-child(-n+3) {
	border-bottom: 0;
}

.brand-cell--wide {
	grid-column: span 2;
	border-right: 0;
}

.brand-mark {
	width: 42px;
	height: 42px;
	border-radius: 50%;
	border: 1.5px solid rgba(255, 255, 255, 0.55);
	background: radial-gradient(circle at 40% 35%, rgba(255, 255, 255, 0.18), transparent 60%);
}

.brand-logo-img {
	max-width: 64px;
	max-height: 42px;
	width: auto;
	height: auto;
	object-fit: contain;
	filter: none !important;
}

.brand-logo-img.is-mono,
.cac-logos-mono .brand-logo-img {
	filter: brightness(0) invert(1) !important;
}

.brand-name {
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.9);
	text-align: center;
}

.insurer img {
	max-width: var(--cac-insurer-logo-w, 140px);
	max-height: var(--cac-insurer-logo-h, 48px);
	width: auto;
	height: auto;
	object-fit: contain;
	filter: none !important;
}

.insurer img.is-mono,
.cac-logos-mono .insurer img {
	filter: brightness(0) invert(1) !important;
}

.excellence-visual.has-image::after {
	display: none;
}

.certs-bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
}

.sprinter-label {
	font-size: 0.95rem;
	font-weight: 600;
	color: rgba(255, 255, 255, 0.9);
}

.insurer-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 28px 80px;
	align-items: center;
	justify-items: center;
	margin: 0 auto 36px;
	max-width: 720px;
}

.insurer {
	font-size: 1.15rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.92);
}

.btn-wide {
	min-width: min(100%, 480px);
	padding-left: 28px;
	padding-right: 28px;
}

.excellence .trust-title,
.excellence .trust-sub {
	text-align: left;
}

.excellence-visual {
	margin-top: 8px;
	height: clamp(220px, 38vw, 340px);
	border-radius: 4px;
	background:
		radial-gradient(ellipse at 50% 78%, rgba(0, 71, 255, 0.28), transparent 55%),
		linear-gradient(180deg, transparent 0%, rgba(5, 10, 18, 0.15) 40%, rgba(5, 10, 18, 0.85) 100%),
		linear-gradient(160deg, #121a2c 0%, #070b14 55%, #0a1428 100%);
	box-shadow: inset 0 -40px 60px rgba(5, 10, 18, 0.9);
	position: relative;
	overflow: hidden;
}

.excellence-visual::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 8%;
	transform: translateX(-50%);
	width: min(78%, 520px);
	height: 55%;
	background:
		radial-gradient(ellipse at 30% 40%, rgba(255, 255, 255, 0.35) 0 2px, transparent 3px),
		radial-gradient(ellipse at 70% 40%, rgba(255, 255, 255, 0.35) 0 2px, transparent 3px),
		linear-gradient(180deg, #1a3058 0%, #0c1628 100%);
	border-radius: 40% 40% 8% 8% / 55% 55% 20% 20%;
	opacity: 0.85;
	filter: blur(0.2px);
}

/* ——— Real Results ——— */
.results {
	background: var(--bg);
	padding: 64px 24px;
	border-top: 1px solid var(--border-soft);
	width: 100%;
}

.results-inner {
	max-width: none;
	width: 100%;
	margin: 0 auto;
}

.results-header {
	margin-bottom: 28px;
}

.results-title {
	margin: 0 0 10px;
	font-size: clamp(1.9rem, 3.5vw, 2.5rem);
	font-weight: 800;
	line-height: 1.15;
	letter-spacing: -0.02em;
}

.results-sub {
	margin: 0;
	color: var(--text-muted);
	font-size: 1rem;
}

.results-grid {
	display: grid;
	grid-template-columns: 1fr 1.15fr;
	gap: 24px;
	align-items: start;
}

.review-card {
	padding: 22px 20px;
	border: 1px solid var(--border);
	border-radius: 10px;
	background: rgba(255, 255, 255, 0.02);
	margin-bottom: 16px;
}

.stars {
	color: #f5c542;
	letter-spacing: 3px;
	font-size: 1rem;
	margin-bottom: 12px;
	text-align: center;
}

.review-quote {
	margin: 0;
	font-size: 0.98rem;
	line-height: 1.55;
	color: rgba(255, 255, 255, 0.95);
	text-align: center;
}

.review-attr {
	margin: 14px 0 0;
	font-size: 0.88rem;
	color: var(--text-muted);
	text-align: center;
	line-height: 1.4;
}

.review-attr span {
	display: inline-block;
}

.results-actions {
	max-width: 280px;
}

.results-actions.is-row {
	max-width: none;
}

.results-thumb {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 10;
	border: 1px solid var(--border-soft);
	border-radius: 10px;
	cursor: pointer;
	background:
		linear-gradient(160deg, rgba(0, 0, 0, 0.12), rgba(0, 0, 0, 0.55)),
		radial-gradient(circle at 45% 40%, #1a3a6e, #050a12 72%);
	overflow: hidden;
}

.play-icon {
	position: absolute;
	inset: 0;
	margin: auto;
	width: 58px;
	height: 58px;
	border-radius: 50%;
	background: var(--accent);
	box-shadow: 0 8px 24px rgba(0, 71, 255, 0.45);
}

.play-icon::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 54%;
	transform: translate(-50%, -50%);
	border-style: solid;
	border-width: 9px 0 9px 15px;
	border-color: transparent transparent transparent #fff;
}

.carousel-dots {
	display: flex;
	justify-content: center;
	gap: 7px;
	margin-top: 14px;
}

.carousel-dots span {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.25);
}

.carousel-dots span.active {
	background: var(--accent);
}

/* ——— Services + Connect ——— */
.bottom-split {
	display: grid;
	grid-template-columns: 1fr 1fr;
	width: 100%;
	max-width: none;
	margin: 0;
	border-top: 1px solid var(--border-soft);
}

.services-block,
.connect-block {
	padding: 48px 40px 56px;
}

.services-block {
	border-right: 1px solid var(--border-soft);
}

.services-heading {
	display: flex;
	align-items: center;
	gap: 14px;
	margin: 0 0 24px;
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.12em;
}

.services-heading::before,
.services-heading::after {
	content: "";
	flex: 1;
	height: 2px;
	background: var(--accent);
}

.services-heading span {
	flex-shrink: 0;
}

.service-list {
	list-style: none;
	margin: 0 0 24px;
	padding: 0;
}

.service-item {
	display: flex;
	gap: 14px;
	align-items: center;
	padding: 14px 0;
	border-bottom: 1px solid var(--border-soft);
}

.service-item:last-child {
	border-bottom: 0;
}

.service-thumb {
	flex-shrink: 0;
	width: 52px;
	height: 52px;
	border-radius: 6px;
	background:
		linear-gradient(145deg, rgba(0, 71, 255, 0.25), rgba(255, 255, 255, 0.05)),
		#0c1424;
	border: 0;
}

.service-item strong {
	display: block;
	font-size: 0.95rem;
	margin-bottom: 2px;
}

.service-item span {
	display: block;
	font-size: 0.8rem;
	color: var(--text-muted);
}

.connect-heading {
	margin: 0 0 8px;
	font-size: 0.9rem;
	font-weight: 800;
	letter-spacing: 0.14em;
}

.connect-sub {
	margin: 0 0 16px;
	color: var(--text-muted);
	font-size: 0.9rem;
}

.social-icons {
	display: flex;
	width: 100%;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin: 0 0 14px;
}

.social-link {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 1 1 0;
	width: auto;
	min-width: 0;
	aspect-ratio: 1;
	height: auto;
	max-height: 64px;
	border: 1px solid var(--border);
	border-radius: 50%;
	color: var(--text);
	transition: background 0.2s ease, border-color 0.2s ease;
}

.social-link:hover {
	background: rgba(0, 71, 255, 0.2);
	border-color: var(--accent);
}

.social-link svg {
	width: 42%;
	height: 42%;
	max-width: 24px;
	max-height: 24px;
}

.connect-photo {
	width: 100%;
	height: 160px;
	margin-bottom: 20px;
	border-radius: 8px;
	background:
		linear-gradient(180deg, transparent, rgba(0, 0, 0, 0.45)),
		linear-gradient(135deg, #1a2030, #0a0e16);
	background-size: cover;
	background-position: center;
}

/* Full-width footer connect */
.connect-block--footer {
	width: 100%;
	max-width: none;
	padding: 48px 24px 56px;
	border-top: 1px solid var(--border-soft);
	background: var(--bg);
}

.connect-block--footer .connect-inner {
	width: 100%;
	max-width: 1280px;
	margin: 0 auto;
}

.connect-block--footer .social-icons,
.connect-block--footer .connect-photo,
.connect-block--footer .connect-links,
.connect-block--footer .connect-legal {
	width: 100%;
}

.connect-block--footer .connect-links {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	max-width: none;
}

.cac-part--footer,
.cac-part--connect_only {
	width: 100%;
}

.connect-links {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 8px 20px;
	margin-bottom: 18px;
}

.connect-links ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.connect-links a {
	display: block;
	padding: 5px 0;
	font-size: 0.9rem;
	color: var(--text-muted);
}

.connect-links a:hover {
	color: var(--text);
}

.lang-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 20px;
	padding: 8px 12px;
	border: 1px solid var(--border-soft);
	border-radius: 6px;
	background: transparent;
	color: var(--text-muted);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	cursor: pointer;
}

.connect-legal {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 14px;
	margin-bottom: 14px;
}

.connect-legal a,
.copyright {
	font-size: 0.7rem;
	color: rgba(255, 255, 255, 0.4);
	margin: 0;
}

/* ——— Footer / modal ——— */
.site-footer-simple {
	padding: 24px;
	text-align: center;
	border-top: 1px solid var(--border-soft);
	color: rgba(255, 255, 255, 0.4);
	font-size: 0.8rem;
}

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

.contact-modal {
	position: fixed;
	inset: 0;
	z-index: 200;
	display: grid;
	place-items: center;
	padding: 20px;
}

.contact-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.72);
}

.contact-modal__panel {
	position: relative;
	z-index: 1;
	width: min(420px, 100%);
	background: #0c1220;
	border: 1px solid var(--border);
	border-radius: 16px;
	padding: 28px 24px 24px;
}

.contact-modal__close {
	position: absolute;
	top: 10px;
	right: 14px;
	border: 0;
	background: transparent;
	color: var(--text-muted);
	font-size: 1.6rem;
	cursor: pointer;
	line-height: 1;
}

.contact-modal__logo {
	display: flex;
	flex-direction: column;
	align-items: center;
	margin-bottom: 20px;
}

.contact-modal__list {
	list-style: none;
	margin: 0 0 20px;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.contact-modal__list li {
	display: flex;
	gap: 12px;
	align-items: flex-start;
	font-size: 0.9rem;
	color: var(--text-muted);
}

.contact-modal__list svg {
	flex-shrink: 0;
	margin-top: 2px;
	color: var(--accent-soft);
}

.contact-modal__list a {
	color: var(--text);
}

.page-content {
	max-width: 840px;
	margin: 0 auto;
	padding: 40px 22px 80px;
}

/* ——— Responsive ——— */
@media (max-width: 860px) {
	.header-inner {
		display: flex;
		grid-template-columns: none;
		align-items: center;
		justify-content: flex-end;
		gap: 8px;
	}

	.header-inner .site-logo {
		margin-right: auto;
	}

	.primary-nav {
		position: fixed;
		inset: var(--header-h) 0 auto 0;
		background: rgba(5, 10, 18, 0.98);
		border-bottom: 1px solid var(--border-soft);
		padding: 12px 18px 20px;
		transform: translateY(-120%);
		opacity: 0;
		pointer-events: none;
		transition: transform 0.25s ease, opacity 0.25s ease;
	}

	.primary-nav.is-open {
		transform: translateY(0);
		opacity: 1;
		pointer-events: auto;
	}

	.primary-nav .nav-menu {
		flex-direction: column;
		align-items: stretch;
	}

	.header-actions {
		display: none;
	}

	.cac-header-call.show-on-mobile {
		display: inline-flex;
	}

	.nav-toggle {
		display: flex;
	}

	.hero {
		min-height: 78vh;
		align-items: flex-end;
	}

	.hero-inner {
		padding: 40px 20px 48px;
	}

	.hero-title {
		font-size: clamp(1.9rem, 8vw, 2.5rem);
	}

	.locations {
		padding: 40px 16px 56px;
	}

	.locations-grid {
		grid-template-columns: 1fr;
		gap: 36px;
		max-width: none;
		margin: 0;
	}

	.location-top {
		grid-template-columns: 100px 1fr;
	}

	.trust-block {
		padding: 48px 16px;
	}

	.brand-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.brand-cell:nth-child(4n) {
		border-right: 1px solid rgba(255, 255, 255, 0.12);
	}

	.brand-cell:nth-child(2n) {
		border-right: 0;
	}

	.brand-cell--wide {
		grid-column: span 2;
	}

	.brand-cell:nth-last-child(-n+2) {
		border-bottom: 1px solid rgba(255, 255, 255, 0.12);
	}

	.brand-cell:last-child {
		border-bottom: 0;
	}

	.certs-bar {
		flex-direction: column;
		align-items: flex-start;
	}

	.certs-bar .btn {
		width: 100%;
	}

	.insurer-grid {
		gap: 22px 24px;
	}

	.results {
		padding: 48px 16px;
	}

	.results-grid {
		grid-template-columns: 1fr;
	}

	.results-actions {
		max-width: none;
	}

	.results-actions.is-stack .btn {
		width: 100%;
	}

	.bottom-split {
		grid-template-columns: 1fr;
	}

	.services-block {
		border-right: 0;
		border-bottom: 1px solid var(--border-soft);
	}

	.services-block,
	.connect-block {
		padding: 40px 16px 48px;
	}
}

/* Elementor full-bleed overrides */
.elementor-section.elementor-section-boxed > .elementor-container,
.e-con {
	max-width: 100% !important;
}

.elementor-widget-cac_hero,
.elementor-widget-cac_hero_media,
.elementor-widget-cac_locations,
.elementor-widget-cac_certs,
.elementor-widget-cac_drp,
.elementor-widget-cac_excellence,
.elementor-widget-cac_results,
.elementor-widget-cac_services_connect {
	width: 100%;
}

/* ——— Composable Elementor home (Heading / Text / Button) ——— */
.elementor-section.cac-el-hero {
	position: relative;
	isolation: isolate;
	/* Makes position:fixed children cover THIS section, not the viewport */
	transform: translateZ(0);
	overflow: hidden;
	display: flex;
	align-items: center;
	min-height: calc(100vh - var(--header-h));
	min-height: calc(100dvh - var(--header-h));
	background: var(--bg);
}

.elementor-section.cac-el-hero > .elementor-container {
	position: relative;
	z-index: 2;
	width: 100%;
	max-width: 1280px !important;
	margin: 0 auto;
	padding: 64px 24px;
	overflow: visible !important;
}

.elementor-section.cac-el-hero .elementor-column,
.elementor-section.cac-el-hero .elementor-widget-wrap,
.elementor-section.cac-el-hero .elementor-element {
	overflow: visible !important;
}

/* Collapse the media widget in the flow — video is painted on the section */
.elementor-section.cac-el-hero .elementor-widget-cac_hero_media {
	position: static !important;
	width: 0 !important;
	height: 0 !important;
	max-width: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: visible !important;
	pointer-events: none;
	z-index: 0;
}

.elementor-section.cac-el-hero .elementor-widget-cac_hero_media > .elementor-widget-container {
	padding: 0 !important;
	margin: 0 !important;
	overflow: visible !important;
}

/* Full-section background video (edge to edge) */
.elementor-section.cac-el-hero .cac-hero-media--section {
	position: fixed;
	inset: 0;
	width: 100%;
	height: 100%;
	z-index: 0;
	pointer-events: none;
}

.elementor-section.cac-el-hero .cac-hero-media--section .hero-video,
.elementor-section.cac-el-hero .cac-hero-media--section .hero-fallback,
.elementor-section.cac-el-hero .cac-hero-media--section .hero-overlay {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	pointer-events: none;
}

/* When JS moves media to be a direct child of the section */
.elementor-section.cac-el-hero > .cac-hero-media--section {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	z-index: 0;
	pointer-events: none;
}

.elementor-section.cac-el-hero .cac-el-hero-content {
	position: relative;
	z-index: 2;
}

.elementor-section.cac-el-hero .cac-el-hero-content > .elementor-widget-wrap > .elementor-element:not(.elementor-widget-cac_hero_media) {
	position: relative;
	z-index: 2;
}

.elementor-section.cac-el-hero .elementor-widget-cac_heading .cac-heading-title {
	font-size: clamp(2.2rem, 5vw, 3.4rem);
	font-weight: 800;
	line-height: 1.08;
	letter-spacing: -0.03em;
	max-width: 640px;
}

.elementor-section.cac-el-hero .elementor-widget-cac_text .cac-text {
	max-width: 480px;
	color: rgba(255, 255, 255, 0.92);
}

/* Column-only mode (optional) */
.elementor-section.cac-el-hero .cac-el-hero-content:has(.cac-hero-media--column) {
	position: relative;
}

.elementor-section.cac-el-hero .elementor-widget-cac_hero_media:has(.cac-hero-media--column) {
	position: absolute !important;
	inset: 0;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
}

.elementor-section.cac-el-hero .cac-hero-media--column {
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
}

.elementor-section.cac-el-hero .cac-hero-media--column .hero-video,
.elementor-section.cac-el-hero .cac-hero-media--column .hero-fallback,
.elementor-section.cac-el-hero .cac-hero-media--column .hero-overlay {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.elementor-section.cac-el-band {
	background: var(--bg);
	padding: 64px 24px !important;
}

.elementor-section.cac-el-band > .elementor-container {
	max-width: 1280px !important;
	margin: 0 auto;
}

.elementor-section.cac-el-cta-row > .elementor-container {
	max-width: 720px !important;
	gap: 12px;
}

.elementor-section.cac-el-bottom {
	padding: 0 !important;
}

.elementor-section.cac-el-bottom > .elementor-container {
	max-width: 100% !important;
}

.elementor-section.cac-el-services {
	padding: 48px 24px !important;
}

.elementor-section.cac-el-services > .elementor-container {
	max-width: 1280px !important;
	margin: 0 auto;
}

.elementor-section.cac-el-footer {
	padding: 0 !important;
	width: 100% !important;
	max-width: none !important;
}

.elementor-section.cac-el-footer > .elementor-container {
	max-width: 100% !important;
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
}

.elementor-section.cac-el-footer .cac-el-footer-col {
	width: 100% !important;
	padding: 0 !important;
}

.elementor-section.cac-el-footer .elementor-widget-cac_heading {
	max-width: 1280px;
	margin-left: auto;
	margin-right: auto;
	padding: 48px 24px 0;
}

.elementor-section.cac-el-footer .elementor-widget-cac_heading .cac-heading-title {
	letter-spacing: 0.12em;
	font-size: 0.9rem;
}

.elementor-section.cac-el-bottom .cac-el-services-col,
.elementor-section.cac-el-bottom .cac-el-connect-col {
	padding: 48px 32px;
}

.elementor-section.cac-el-bottom .cac-el-services-col {
	border-right: 1px solid var(--border-soft);
}

.elementor-widget-cac_locations .locations,
.elementor-widget-cac_certs .trust-block,
.elementor-widget-cac_drp .trust-block,
.elementor-widget-cac_excellence .trust-block,
.elementor-widget-cac_results .results {
	padding-left: 0;
	padding-right: 0;
}

/* ——— Elementor site header ——— */
.cac-elementor-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: rgba(5, 10, 18, 0.94);
	backdrop-filter: blur(14px);
	border-bottom: 1px solid var(--border-soft);
}

.cac-elementor-header .elementor-section.cac-el-header {
	background: transparent;
}

.cac-elementor-header .elementor-section.cac-el-header > .elementor-container {
	max-width: none !important;
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
}

.cac-header-bar {
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	column-gap: 24px;
	max-width: 1280px;
	margin: 0 auto;
	padding: 0 24px;
	min-height: var(--header-h);
	width: 100%;
	box-sizing: border-box;
}

.cac-header-bar__logo {
	justify-self: start;
	min-width: 0;
}

.cac-header-bar__nav {
	grid-column: 2;
	justify-self: stretch;
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 0;
}

.cac-header-bar__actions {
	grid-column: 3;
	justify-self: end;
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: flex-end;
	gap: 10px;
	min-width: 0;
}

.cac-header-bar__nav .primary-nav .nav-menu {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-wrap: nowrap;
	gap: 2px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.cac-header-bar__nav .nav-toggle {
	display: none;
}

.cac-header-call {
	display: none;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	border: 1px solid var(--border-soft);
	border-radius: 8px;
	color: var(--text);
	background: transparent;
	text-decoration: none;
	flex-shrink: 0;
	transition: border-color 0.2s ease, color 0.2s ease, background 0.2s ease;
}

.cac-header-call:hover,
.cac-header-call:focus {
	border-color: var(--accent);
	color: #fff;
	background: rgba(0, 71, 255, 0.15);
}

@media (min-width: 1025px) {
	.cac-header-call.show-on-desktop {
		display: inline-flex;
	}
}

.cac-header-bar__actions .btn {
	white-space: nowrap;
}

.elementor-widget-cac_header_bar {
	width: 100%;
}

.cac-part--services_only .services-block,
.cac-part--connect_only .connect-block {
	border: 0;
	max-width: none;
}

.elementor-section:not(.cac-el-band):not(.cac-el-hero),
.e-con.e-parent {
	margin: 0 !important;
}

@media (max-width: 1024px) {
	.elementor-section.cac-el-bottom .cac-el-services-col {
		border-right: 0;
		border-bottom: 1px solid var(--border-soft);
	}

	.cac-header-bar {
		display: flex !important;
		flex-direction: row !important;
		flex-wrap: nowrap !important;
		align-items: center !important;
		column-gap: 8px;
	}

	.cac-header-bar__logo {
		flex: 1 1 auto;
		min-width: 0;
	}

	.cac-header-bar__actions {
		display: none !important;
	}

	.cac-header-bar__nav {
		display: flex !important;
		flex-direction: row !important;
		flex-wrap: nowrap !important;
		align-items: center !important;
		justify-content: flex-end !important;
		gap: 8px;
		flex: 0 0 auto;
		width: auto !important;
		max-width: none !important;
	}

	.cac-header-call.show-on-mobile {
		display: inline-flex !important;
		order: 1;
	}

	.cac-header-bar__nav .nav-toggle {
		display: flex !important;
		position: relative;
		transform: none;
		top: auto;
		right: auto;
		order: 2;
		margin: 0;
	}

	.cac-header-bar__nav .primary-nav {
		display: none;
		position: fixed;
		top: var(--header-h);
		left: 0;
		right: 0;
		width: 100%;
		background: rgba(5, 10, 18, 0.98);
		border-bottom: 1px solid var(--border-soft);
		padding: 16px 24px 24px;
		z-index: 99;
		order: 3;
	}

	.cac-header-bar__nav .primary-nav.is-open {
		display: block;
	}

	.cac-header-bar__nav .primary-nav .nav-menu {
		flex-direction: column;
		align-items: stretch;
		gap: 0;
	}
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.hero-fallback { animation: none; }
}
