/**
 * Contact page — hero, message form, global presence, CTA, FAQ.
 *
 * @package Skavend
 */

.page-template-templates-contact-php .site-main,
.contact-page {
	background: #fdfbf7;
	padding: 0 !important;
	margin: 0 !important;
	max-width: none !important;
	width: 100% !important;
	overflow-x: hidden;
}

.contact-page {
	--cp-cream: #f8f1e7;
	--cp-cream-2: #f2e9db;
	--cp-green: #0b4232;
	--cp-green-2: #062c21;
	--cp-green-3: #0a3d2d;
	--cp-gold: #b58a55;
	--cp-gold-light: #e2bd80;
	--cp-text: #152520;
	--cp-muted: #5c6560;
	--serif: var(--font-serif, 'Playfair Display', Georgia, serif);
	--sans: var(--font-sans, 'DM Sans', system-ui, sans-serif);
	--cp-space: var(--section-space, 7%);
	--cp-gap: 24px;
}

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

.cp-shell {
	width: var(--shell-width, 90%);
	margin: 0 auto;
}

/* Single-sided rhythm: every section only pushes space AFTER itself,
   so stacked sections never double up their gap. */
.cp-section {
	padding-top: 0;
	padding-bottom: 0;
}

/* Shared type */
.cp-kicker {
	margin: 0 0 14px;
	font-family: var(--sans);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--cp-gold);
}

.cp-kicker--on-dark { color: var(--cp-gold-light); }

.cp-h {
	margin: 0 0 14px;
	font-family: var(--serif);
	font-size: clamp(30px, 3.4vw, 42px);
	font-weight: 700;
	line-height: 1.16;
	color: var(--cp-text);
}

.cp-p {
	margin: 0;
	font-family: var(--sans);
	font-size: 16px;
	line-height: 1.7;
	color: var(--cp-muted);
}

.cp-center { text-align: center; margin-bottom: 48px; }
.cp-center .cp-h,
.cp-center .cp-p { max-width: 640px; margin-left: auto; margin-right: auto; }
.cp-center .cp-p { margin-top: 4px; }

.cp-card__title {
	margin: 0 0 8px;
	font-family: var(--serif);
	font-size: clamp(22px, 2.4vw, 28px);
	font-weight: 700;
	color: var(--cp-text);
}

.cp-card__lead {
	margin: 0 0 28px;
	font-family: var(--sans);
	font-size: 14px;
	line-height: 1.6;
	color: var(--cp-muted);
}

/* Scroll-reveal base (mirrors global .skavend-reveal, scoped defensively) */
.contact-page [data-reveal] {
	opacity: 0;
	transform: translateY(18px);
	transition: opacity 0.6s ease, transform 0.6s ease;
}

.contact-page [data-reveal].is-revealed {
	opacity: 1;
	transform: none;
}

/* ═══════════════ HERO ═══════════════ */
.cp-hero {
	position: relative;
	background: linear-gradient(112deg, var(--cp-cream) 0%, #f5ede2 46%, var(--cp-cream-2) 100%);
	overflow: hidden;
}

.cp-hero__grid {
	display: grid;
	grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
	gap: 56px;
	align-items: center;
}

.cp-hero__title {
	margin: 0 0 20px;
	font-family: var(--serif);
	font-size: clamp(36px, 4.2vw, 54px);
	font-weight: 700;
	line-height: 1.12;
	color: var(--cp-text);
	letter-spacing: -0.01em;
}

.cp-hero__title em {
	font-style: normal;
	color: var(--cp-gold);
}

.cp-hero__lead {
	margin: 0 0 34px;
	font-family: var(--sans);
	font-size: 15.5px;
	line-height: 1.75;
	color: var(--cp-muted);
	max-width: 480px;
}

.cp-hero__features {
	display: flex;
	flex-wrap: wrap;
	gap: 22px 28px;
}

.cp-feature {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	max-width: 190px;
}

.cp-feature__ico {
	flex-shrink: 0;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	display: grid;
	place-items: center;
	color: var(--cp-gold);
	background: rgba(181, 138, 85, 0.12);
	border: 1px solid rgba(181, 138, 85, 0.28);
}

.cp-feature__body h3 {
	margin: 0 0 4px;
	font-family: var(--sans);
	font-size: 13.5px;
	font-weight: 700;
	color: var(--cp-text);
}

.cp-feature__body p {
	margin: 0;
	font-family: var(--sans);
	font-size: 12.5px;
	line-height: 1.5;
	color: var(--cp-muted);
}

.cp-hero__visual {
	position: relative;
}

.cp-hero__photo {
	position: relative;
	border-radius: 26px;
	overflow: hidden;
	box-shadow: var(--shadow-xl, 0 22px 50px rgba(4, 40, 31, 0.2));
}

.cp-hero__photo img {
	display: block;
	width: 100%;
	height: auto;
}

/* Accessible, keyboard-focusable phone link laid over the baked-in call card
   graphic in the photo (real phone number + hours are visible in the image;
   this keeps the CTA operable for keyboard/screen-reader users). */
.cp-hero__phone-link {
	position: absolute;
	left: 2%;
	bottom: 6%;
	width: 44%;
	height: 32%;
	color: transparent;
	font-size: 1px;
	line-height: 0;
	border-radius: 14px;
}

.cp-hero__phone-link:focus-visible {
	outline: 2px solid var(--cp-gold-light);
	outline-offset: 3px;
}

/* ═══════════════ CONTACT GRID ═══════════════ */
.cp-contact { padding-top: calc(var(--cp-space) + 30px); }

.cp-contact__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr);
	gap: var(--cp-gap);
	align-items: start;
}

.cp-card,
.cp-connect {
	border-radius: 22px;
	padding: 34px 32px;
}

.cp-form-card {
	background: #fff;
	border: 1px solid rgba(6, 44, 33, 0.08);
	box-shadow: 0 14px 34px rgba(10, 48, 36, 0.06);
}

.cp-form { display: flex; flex-direction: column; gap: 20px; }

.cp-form__row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 18px;
}

.cp-field { display: flex; flex-direction: column; gap: 8px; min-width: 0; }

.cp-field label {
	font-family: var(--sans);
	font-size: 12.5px;
	font-weight: 700;
	color: var(--cp-text);
}

.cp-field input,
.cp-field textarea,
.cp-select select {
	width: 100%;
	padding: 13px 16px;
	font-family: var(--sans);
	font-size: 14.5px;
	color: var(--cp-text);
	background: var(--cp-cream);
	border: 1px solid rgba(181, 138, 85, 0.25);
	border-radius: 10px;
	transition: border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
}

.cp-field textarea { resize: vertical; min-height: 120px; font-family: var(--sans); }

.cp-field input:focus,
.cp-field textarea:focus,
.cp-select select:focus {
	outline: none;
	border-color: var(--cp-gold);
	background: #fff;
	box-shadow: 0 0 0 3px rgba(181, 138, 85, 0.16);
}

.cp-select { position: relative; }

.cp-select select {
	appearance: none;
	-webkit-appearance: none;
	padding-right: 40px;
	cursor: pointer;
}

.cp-select__ico {
	position: absolute;
	right: 14px;
	top: 50%;
	transform: translateY(-50%);
	color: var(--cp-gold);
	pointer-events: none;
	display: grid;
}

.cp-checkbox {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	cursor: pointer;
	font-family: var(--sans);
	font-size: 13px;
	line-height: 1.55;
	color: var(--cp-muted);
}

.cp-checkbox input {
	position: absolute;
	opacity: 0;
	width: 1px;
	height: 1px;
}

.cp-checkbox__box {
	flex-shrink: 0;
	width: 19px;
	height: 19px;
	margin-top: 1px;
	border-radius: 5px;
	border: 1.5px solid rgba(181, 138, 85, 0.5);
	background: #fff;
	position: relative;
	transition: background 0.2s ease, border-color 0.2s ease;
}

.cp-checkbox__box::after {
	content: "";
	position: absolute;
	left: 4px;
	top: 1px;
	width: 8px;
	height: 12px;
	border: solid #fff;
	border-width: 0 2px 2px 0;
	transform: rotate(45deg) scale(0);
	transition: transform 0.15s ease;
}

.cp-checkbox input:checked + .cp-checkbox__box {
	background: var(--cp-green);
	border-color: var(--cp-green);
}

.cp-checkbox input:checked + .cp-checkbox__box::after {
	transform: rotate(45deg) scale(1);
}

.cp-checkbox input:focus-visible + .cp-checkbox__box {
	outline: 2px solid var(--cp-green);
	outline-offset: 2px;
}

.cp-checkbox__label a { color: var(--cp-gold); text-decoration: underline; }

.contact-page button.cp-form__submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	height: 56px;
	border: none;
	border-radius: 12px;
	background: linear-gradient(180deg, var(--cp-green), var(--cp-green-2));
	color: #f5e8d3;
	font-family: var(--sans);
	font-size: 15px;
	font-weight: 700;
	cursor: pointer;
	transition: transform 0.25s ease, box-shadow 0.25s ease, background 0.25s ease;
	box-shadow: 0 14px 28px rgba(6, 50, 38, 0.24);
}

.contact-page button.cp-form__submit:hover { transform: translateY(-2px); background: linear-gradient(180deg, #0c4a38, #083624); }
.contact-page button.cp-form__submit:active { transform: translateY(1px); }

.cp-form__submit svg {
	width: 17px;
	height: 17px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.cp-form__submit:disabled { opacity: 0.7; cursor: default; transform: none; }

.cp-form__status {
	margin: 0;
	padding: 12px 16px;
	border-radius: 10px;
	font-family: var(--sans);
	font-size: 13.5px;
	background: rgba(11, 66, 50, 0.08);
	color: var(--cp-green);
}

.cp-form__status.is-error {
	background: rgba(178, 60, 45, 0.08);
	color: #a33b2b;
}

/* Other ways to connect */
.cp-connect {
	background: #fff;
	border: 1px solid rgba(6, 44, 33, 0.08);
	box-shadow: 0 14px 34px rgba(10, 48, 36, 0.06);
}

.cp-connect__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.cp-connect__item {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	padding-bottom: 20px;
	border-bottom: 1px solid rgba(6, 44, 33, 0.07);
}

.cp-connect__item:last-child { border-bottom: none; padding-bottom: 0; }

.cp-connect__ico {
	flex-shrink: 0;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	display: grid;
	place-items: center;
	color: var(--cp-gold);
	background: var(--cp-cream);
	border: 1px solid rgba(181, 138, 85, 0.3);
}

.cp-connect__item h3 {
	margin: 0 0 3px;
	font-family: var(--sans);
	font-size: 14.5px;
	font-weight: 700;
	color: var(--cp-text);
}

.cp-connect__item a,
.cp-connect__static {
	display: inline-block;
	font-family: var(--sans);
	font-size: 13.5px;
	font-weight: 600;
	color: var(--cp-gold);
	text-decoration: none;
}

.cp-connect__item a:hover { text-decoration: underline; }

.cp-connect__item p {
	margin: 4px 0 0;
	font-family: var(--sans);
	font-size: 12px;
	color: var(--cp-muted);
}

/* Together card */
.cp-together {
	position: relative;
	background: linear-gradient(160deg, #0c4433 0%, #052018 100%);
	color: #fff;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	min-height: 100%;
}

.cp-together__glow {
	position: absolute;
	inset: 0;
	background:
		radial-gradient(circle at 20% 12%, rgba(226, 189, 128, 0.16), transparent 45%),
		radial-gradient(circle at 90% 85%, rgba(255, 255, 255, 0.06), transparent 40%);
	pointer-events: none;
}

.cp-together h2 {
	position: relative;
	margin: 0 0 10px;
	font-family: var(--serif);
	font-size: 24px;
	font-weight: 700;
	line-height: 1.25;
}

.cp-together p {
	position: relative;
	margin: 0;
	font-family: var(--sans);
	font-size: 13.5px;
	color: rgba(244, 236, 224, 0.78);
}

.cp-together__art {
	position: relative;
	margin-top: auto;
	padding-top: 28px;
}

.cp-together__art img { width: 100%; height: auto; display: block; border-radius: 0 0 22px 22px; }

/* ═══════════════ GLOBAL PRESENCE ═══════════════ */
.cp-presence { background: var(--cp-cream); }

.cp-presence__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
	gap: 32px;
	align-items: stretch;
}

.cp-offices {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.cp-office {
	display: flex;
	gap: 16px;
	padding: 18px;
	background: #fff;
	border: 1px solid rgba(6, 44, 33, 0.08);
	border-radius: 18px;
	box-shadow: 0 10px 26px rgba(10, 48, 36, 0.05);
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.cp-office:hover {
	transform: translateY(-3px);
	box-shadow: 0 16px 32px rgba(10, 48, 36, 0.1);
}

.cp-office.is-globe-active {
	border-color: rgba(94, 228, 200, 0.55);
	box-shadow:
		0 0 0 1px rgba(94, 228, 200, 0.35),
		0 18px 36px rgba(10, 48, 36, 0.12);
	transform: translateY(-4px);
}

.cp-office[data-office-city] {
	cursor: pointer;
}

.cp-office__media {
	position: relative;
	flex: 0 0 96px;
	width: 96px;
	height: 96px;
	border-radius: 14px;
	overflow: hidden;
	background: linear-gradient(150deg, #0f5b44, #062f24);
}

.cp-office__media img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.cp-office__media::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(0deg, rgba(4, 20, 14, 0.55) 0%, transparent 55%);
	z-index: 1;
}

.cp-office__badge {
	position: absolute;
	left: 10px;
	bottom: 10px;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	display: grid;
	place-items: center;
	color: var(--cp-gold-light);
	background: rgba(4, 20, 14, 0.55);
	border: 1px solid rgba(226, 189, 128, 0.4);
}

.cp-office__body { min-width: 0; }

.cp-office__body h3 {
	margin: 0 0 6px;
	font-family: var(--sans);
	font-size: 15px;
	font-weight: 700;
	color: var(--cp-text);
}

.cp-office__label {
	display: inline-block;
	margin-bottom: 8px;
	padding: 3px 10px;
	border-radius: 999px;
	font-family: var(--sans);
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.cp-office__label--head { background: rgba(11, 66, 50, 0.12); color: var(--cp-green); }
.cp-office__label--regional { background: rgba(181, 138, 85, 0.16); color: var(--cp-gold-dark, #9d6f42); }

.cp-office__address {
	margin: 0 0 8px;
	font-family: var(--sans);
	font-size: 12.5px;
	line-height: 1.5;
	color: var(--cp-muted);
}

.cp-office__line {
	display: block;
	font-family: var(--sans);
	font-size: 12.5px;
	color: var(--cp-text);
	text-decoration: none;
	line-height: 1.65;
}

.cp-office__line:hover { color: var(--cp-gold); }

/* Interactive 3D globe — depth space, physics, visible pins */
.cp-globe {
	--globe-tilt-x: 0deg;
	--globe-tilt-y: 0deg;
	--globe-shift-x: 0px;
	--globe-shift-y: 0px;
	--globe-depth-x: 0px;
	--globe-depth-y: 0px;
	position: relative;
	min-height: 460px;
	background: transparent;
	border: none;
	box-shadow: none;
	overflow: visible;
	cursor: grab;
	perspective: 1400px;
	transform-style: preserve-3d;
	isolation: isolate;
}

.cp-globe:active { cursor: grabbing; }

.cp-globe__space {
	position: absolute;
	inset: -8% -6%;
	pointer-events: none;
	z-index: 0;
	transform: translate3d(var(--globe-depth-x), var(--globe-depth-y), -80px);
}

.cp-globe__nebula {
	position: absolute;
	border-radius: 50%;
	filter: blur(42px);
	opacity: 0.55;
	animation: cpGlobeNebula 14s ease-in-out infinite alternate;
}

.cp-globe__nebula--a {
	width: 52%;
	height: 38%;
	top: 8%;
	left: 4%;
	background: radial-gradient(circle, rgba(94, 228, 200, 0.28), transparent 70%);
}

.cp-globe__nebula--b {
	width: 44%;
	height: 36%;
	right: 0;
	bottom: 10%;
	background: radial-gradient(circle, rgba(255, 217, 138, 0.22), transparent 72%);
	animation-delay: -4s;
}

.cp-globe__nebula--c {
	width: 36%;
	height: 30%;
	top: 42%;
	left: 38%;
	background: radial-gradient(circle, rgba(126, 205, 184, 0.18), transparent 75%);
	animation-delay: -8s;
}

@keyframes cpGlobeNebula {
	0% { transform: translate3d(0, 0, 0) scale(1); opacity: 0.45; }
	100% { transform: translate3d(12px, -8px, 0) scale(1.08); opacity: 0.62; }
}

.cp-globe__stage {
	position: relative;
	z-index: 1;
	transform-style: preserve-3d;
	transform:
		rotateX(var(--globe-tilt-x))
		rotateY(var(--globe-tilt-y))
		translate3d(var(--globe-shift-x), var(--globe-shift-y), 0);
	transition: transform 0.12s linear;
	will-change: transform;
}

.cp-globe__viewport {
	width: 100%;
	height: clamp(400px, 46vw, 520px);
	min-height: 400px;
	border-radius: 18px;
	overflow: hidden;
	transform: translateZ(40px);
	background:
		radial-gradient(ellipse at 50% 42%, rgba(30, 80, 90, 0.45) 0%, transparent 55%),
		radial-gradient(circle at 50% 50%, #0b1a24 0%, #040a10 100%);
}

.cp-globe--ready .cp-globe__viewport {
	box-shadow:
		0 0 0 1px rgba(94, 228, 200, 0.12),
		0 24px 60px rgba(4, 12, 18, 0.35);
}

.cp-globe__viewport canvas {
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	outline: none;
}

/* HTML location pins — highly visible 3D markers */
.cp-globe-pin {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 5px;
	padding: 0 0 18px;
	border: none;
	background: transparent;
	cursor: pointer;
	font: inherit;
	color: inherit;
	z-index: 3;
	pointer-events: auto;
}

.cp-globe-pin__beam {
	position: absolute;
	bottom: 0;
	left: 50%;
	width: 2px;
	height: 22px;
	transform: translateX(-50%);
	background: linear-gradient(to top, rgba(255, 255, 255, 0.05), rgba(94, 228, 200, 0.85));
	border-radius: 999px;
	opacity: 0.85;
}

.cp-globe-pin--regional .cp-globe-pin__beam {
	background: linear-gradient(to top, rgba(255, 255, 255, 0.05), rgba(255, 217, 138, 0.9));
}

.cp-globe-pin__pulse {
	position: absolute;
	bottom: 16px;
	left: 50%;
	width: 34px;
	height: 34px;
	transform: translate(-50%, 0);
	border-radius: 50%;
	border: 2px solid rgba(94, 228, 200, 0.65);
	animation: cpGlobePinPulse 2s ease-out infinite;
}

.cp-globe-pin--regional .cp-globe-pin__pulse {
	border-color: rgba(255, 217, 138, 0.7);
}

.cp-globe-pin__core {
	position: relative;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: radial-gradient(circle at 35% 30%, #fff 0%, #5ee4c8 35%, #0b4232 100%);
	box-shadow:
		0 0 0 3px rgba(94, 228, 200, 0.35),
		0 0 18px rgba(94, 228, 200, 0.85),
		0 0 36px rgba(94, 228, 200, 0.45);
}

.cp-globe-pin--regional .cp-globe-pin__core {
	background: radial-gradient(circle at 35% 30%, #fff 0%, #ffd98a 35%, #9d6f42 100%);
	box-shadow:
		0 0 0 3px rgba(255, 217, 138, 0.4),
		0 0 18px rgba(255, 217, 138, 0.85),
		0 0 36px rgba(255, 217, 138, 0.45);
}

.cp-globe-pin__label {
	display: inline-flex;
	align-items: center;
	padding: 5px 11px;
	border-radius: 999px;
	background: rgba(6, 20, 14, 0.88);
	border: 1px solid rgba(94, 228, 200, 0.45);
	font-family: var(--sans);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.03em;
	color: #fff;
	white-space: nowrap;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
	backdrop-filter: blur(6px);
}

.cp-globe-pin--regional .cp-globe-pin__label {
	border-color: rgba(255, 217, 138, 0.5);
}

.cp-globe-pin:hover .cp-globe-pin__core,
.cp-globe-pin.is-active .cp-globe-pin__core {
	transform: scale(1.18);
}

.cp-globe-pin.is-active .cp-globe-pin__label {
	background: rgba(11, 66, 50, 0.95);
	border-color: rgba(94, 228, 200, 0.85);
	box-shadow: 0 0 24px rgba(94, 228, 200, 0.35);
}

.cp-globe-pin--regional.is-active .cp-globe-pin__label {
	background: rgba(80, 56, 20, 0.92);
	border-color: rgba(255, 217, 138, 0.85);
	box-shadow: 0 0 24px rgba(255, 217, 138, 0.35);
}

.cp-globe-pin.is-active .cp-globe-pin__pulse {
	animation-duration: 1.2s;
	border-width: 3px;
}

@keyframes cpGlobePinPulse {
	0% { transform: translate(-50%, 0) scale(0.55); opacity: 0.95; }
	100% { transform: translate(-50%, 0) scale(1.65); opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
	.cp-globe__nebula,
	.cp-globe-pin__pulse {
		animation: none;
	}

	.cp-globe__stage {
		transition: none;
	}
}

.cp-globe.is-focused .cp-globe__stage {
	transform:
		rotateX(calc(var(--globe-tilt-x) * 0.6))
		rotateY(calc(var(--globe-tilt-y) * 0.6))
		translate3d(var(--globe-shift-x), var(--globe-shift-y), 0)
		scale(1.02);
}

.cp-globe__hint {
	position: absolute;
	top: 12px;
	left: 50%;
	transform: translateX(-50%);
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 6px 14px;
	padding: 7px 16px;
	border-radius: 999px;
	background: rgba(6, 20, 14, 0.72);
	border: 1px solid rgba(126, 205, 184, 0.25);
	font-family: var(--sans);
	font-size: 11px;
	font-weight: 600;
	color: rgba(255, 255, 255, 0.82);
	pointer-events: none;
	backdrop-filter: blur(8px);
	z-index: 2;
}

.cp-globe__legend {
	position: absolute;
	left: 0;
	bottom: 8px;
	display: flex;
	gap: 18px;
	font-family: var(--sans);
	font-size: 12px;
	font-weight: 600;
	color: var(--cp-text);
	pointer-events: none;
	z-index: 2;
}

.cp-globe__legend span { display: flex; align-items: center; gap: 7px; }

.cp-globe__legend-dot {
	display: inline-block;
	width: 8px;
	height: 8px;
	border-radius: 50%;
}

.cp-globe__legend-dot--head { background: var(--cp-green); }
.cp-globe__legend-dot--regional { background: var(--cp-gold-light); }

.cp-globe__popup {
	position: absolute;
	right: 0;
	bottom: 12px;
	width: min(calc(100% - 8px), 280px);
	padding: 18px 18px 16px;
	border-radius: 16px;
	background: rgba(255, 255, 255, 0.97);
	border: 1px solid rgba(126, 205, 184, 0.35);
	box-shadow: 0 20px 50px rgba(4, 20, 14, 0.22);
	z-index: 4;
	transform: translateY(14px) scale(0.95);
	opacity: 0;
	pointer-events: none;
	transition:
		transform 0.5s cubic-bezier(0.22, 1, 0.36, 1),
		opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}

.cp-globe.has-popup .cp-globe__popup {
	transform: none;
	opacity: 1;
	pointer-events: auto;
}

.cp-globe__popup[hidden] {
	display: none !important;
}

.cp-globe__popup-close {
	position: absolute;
	top: 10px;
	right: 10px;
	width: 30px;
	height: 30px;
	border: none;
	border-radius: 50%;
	display: grid;
	place-items: center;
	background: var(--cp-cream);
	color: var(--cp-green);
	cursor: pointer;
	transition: transform 0.2s ease, background 0.2s ease;
}

.cp-globe__popup-close:hover {
	transform: scale(1.06);
	background: #fff;
}

.cp-globe__popup-label {
	display: inline-block;
	margin-bottom: 6px;
	padding: 3px 10px;
	border-radius: 999px;
	font-family: var(--sans);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}

.cp-globe__popup-label--head {
	background: rgba(11, 66, 50, 0.12);
	color: var(--cp-green);
}

.cp-globe__popup-label--regional {
	background: rgba(181, 138, 85, 0.16);
	color: var(--cp-gold-dark, #9d6f42);
}

.cp-globe__popup-city {
	margin: 0 0 8px;
	padding-right: 28px;
	font-family: var(--serif);
	font-size: 17px;
	font-weight: 700;
	color: var(--cp-text);
	line-height: 1.25;
}

.cp-globe__popup-address {
	margin: 0 0 10px;
	font-family: var(--sans);
	font-size: 12.5px;
	line-height: 1.55;
	color: var(--cp-muted);
}

.cp-globe__popup-phone,
.cp-globe__popup-email {
	display: block;
	font-family: var(--sans);
	font-size: 12.5px;
	font-weight: 600;
	color: var(--cp-green);
	text-decoration: none;
	line-height: 1.6;
}

.cp-globe__popup-phone:hover,
.cp-globe__popup-email:hover {
	color: var(--cp-gold);
}

/* Legacy dot map — kept for reference */
.cp-map {
	position: relative;
	border-radius: 22px;
	overflow: hidden;
	min-height: 320px;
	background: #fff;
	border: 1px solid rgba(6, 44, 33, 0.08);
	box-shadow: 0 10px 26px rgba(10, 48, 36, 0.05);
}

.cp-map__dots {
	position: absolute;
	inset: 0;
	background-image: radial-gradient(circle, rgba(11, 66, 50, 0.16) 1.4px, transparent 1.6px);
	background-size: 16px 16px;
	-webkit-mask-image: radial-gradient(ellipse 78% 70% at 50% 46%, #000 60%, transparent 100%);
	mask-image: radial-gradient(ellipse 78% 70% at 50% 46%, #000 60%, transparent 100%);
}

.cp-map__pin {
	position: absolute;
	width: 14px;
	height: 14px;
	transform: translate(-50%, -50%);
}

.cp-map__pin-dot {
	position: absolute;
	inset: 0;
	border-radius: 50%;
	box-shadow: 0 4px 10px rgba(10, 48, 36, 0.35);
}

.cp-map__pin--head .cp-map__pin-dot { background: var(--cp-green); }
.cp-map__pin--regional .cp-map__pin-dot { background: var(--cp-gold-light); }

.cp-map__pin-ring {
	position: absolute;
	inset: -6px;
	border-radius: 50%;
	border: 1.5px solid currentColor;
	animation: cpPinPulse 2.6s ease-out infinite;
}

.cp-map__pin--head .cp-map__pin-ring { color: var(--cp-green); }
.cp-map__pin--regional .cp-map__pin-ring { color: var(--cp-gold-light); }
.cp-map__pin--regional:nth-of-type(3) .cp-map__pin-ring { animation-delay: 0.8s; }

@keyframes cpPinPulse {
	0% { transform: scale(0.7); opacity: 0.7; }
	100% { transform: scale(2.1); opacity: 0; }
}

.cp-map__legend {
	position: absolute;
	left: 20px;
	bottom: 18px;
	display: flex;
	gap: 18px;
	font-family: var(--sans);
	font-size: 12px;
	font-weight: 600;
	color: var(--cp-text);
}

.cp-map__legend span { display: flex; align-items: center; gap: 8px; }

.cp-map__legend-dot {
	display: inline-block;
	width: 9px;
	height: 9px;
	border-radius: 50%;
}

.cp-map__legend-dot--head { background: var(--cp-green); }
.cp-map__legend-dot--regional { background: var(--cp-gold-light); }

/* ═══════════════ CTA ═══════════════ */
.cp-cta {
	padding: var(--cp-space) 0 calc(var(--cp-space) + 16px);
	background: var(--cp-cream);
}

.cp-cta .cp-shell {
	width: var(--shell-width, 90%);
	margin: 0 auto;
}

.cp-cta__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 32px;
	flex-wrap: wrap;
	padding: clamp(40px, 4.5vw, 52px) clamp(32px, 4vw, 48px);
	border-radius: 26px;
	background: linear-gradient(135deg, #0a3d2d 0%, #062a1f 55%, #07301f 100%);
	box-shadow: 0 28px 60px rgba(10, 48, 36, 0.28);
	position: relative;
	overflow: hidden;
}

.cp-cta__inner::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
		radial-gradient(circle at 12% 20%, rgba(201, 164, 107, 0.14), transparent 45%),
		radial-gradient(circle at 88% 80%, rgba(255, 255, 255, 0.06), transparent 40%);
	pointer-events: none;
}

.cp-cta__lead {
	position: relative;
	display: flex;
	align-items: flex-start;
	gap: 20px;
	flex: 1 1 420px;
	min-width: 0;
}

.cp-cta__ico {
	flex-shrink: 0;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	display: grid;
	place-items: center;
	color: var(--cp-gold-light);
	background: rgba(226, 189, 128, 0.14);
	border: 1px solid rgba(226, 189, 128, 0.4);
}

.cp-cta__lead h2 {
	margin: 0 0 8px;
	font-family: var(--serif);
	font-size: clamp(24px, 2.6vw, 32px);
	font-weight: 700;
	line-height: 1.2;
	color: #fff;
}

.cp-cta__text {
	margin: 0;
	max-width: 480px;
	font-family: var(--sans);
	font-size: 14.5px;
	line-height: 1.6;
	color: rgba(255, 255, 255, 0.8);
}

.cp-cta__btn {
	position: relative;
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	height: 56px;
	padding: 0 30px;
	border-radius: 999px;
	background: linear-gradient(135deg, #d4a95a 0%, #c9a46b 100%);
	color: #0a3d2d;
	font-family: var(--sans);
	font-size: 15px;
	font-weight: 700;
	text-decoration: none;
	box-shadow: 0 10px 26px rgba(201, 164, 107, 0.35);
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.cp-cta__btn:hover { transform: translateY(-3px); color: #0a3d2d; text-decoration: none; }

.cp-cta__btn svg {
	width: 18px;
	height: 18px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

/* ═══════════════ FAQ — dynamic accordion ═══════════════ */
.cp-faq__grid {
	display: flex;
	flex-direction: column;
	gap: 12px;
	max-width: 820px;
	margin: 0 auto;
}

.cp-faq__item {
	background: #fff;
	border: 1px solid rgba(6, 44, 33, 0.08);
	border-radius: 18px;
	overflow: visible;
	transition:
		box-shadow 0.45s cubic-bezier(0.22, 1, 0.36, 1),
		border-color 0.45s ease,
		transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

.cp-faq__item.is-open {
	border-color: rgba(181, 138, 85, 0.35);
	box-shadow:
		0 18px 40px rgba(10, 48, 36, 0.1),
		inset 4px 0 0 var(--cp-gold);
	transform: translateY(-2px);
}

.cp-faq__item:has(.cp-faq__q[aria-expanded="true"]) {
	box-shadow: 0 14px 30px rgba(10, 48, 36, 0.1);
}

.cp-faq__item h3 { margin: 0; }

.contact-page button.cp-faq__q {
	display: flex;
	align-items: center;
	gap: 14px;
	width: 100%;
	padding: 20px 22px;
	background: none;
	border: none;
	border-radius: 0;
	cursor: pointer;
	text-align: left;
	font-family: var(--sans);
	color: inherit;
	transition: background 0.35s ease;
}

.contact-page button.cp-faq__q:hover {
	background: rgba(248, 241, 231, 0.65);
	transform: none;
}

.cp-faq__q-ico {
	flex-shrink: 0;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	display: grid;
	place-items: center;
	color: var(--cp-gold);
	background: var(--cp-cream);
	transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1), background 0.35s ease, color 0.35s ease;
}

.cp-faq__item.is-open .cp-faq__q-ico {
	background: var(--cp-green);
	color: #e2bd80;
	transform: scale(1.06);
}

.cp-faq__q-text {
	flex: 1;
	min-width: 0;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.45;
	color: var(--cp-text);
	overflow-wrap: break-word;
	transition: color 0.35s ease;
}

.cp-faq__item.is-open .cp-faq__q-text {
	color: var(--cp-green);
}

.cp-faq__chevron {
	flex-shrink: 0;
	display: grid;
	place-items: center;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	color: var(--cp-gold);
	background: rgba(181, 138, 85, 0.1);
	transition: transform 0.55s cubic-bezier(0.22, 1, 0.36, 1), background 0.35s ease;
}

.cp-faq__item.is-open .cp-faq__chevron {
	transform: rotate(180deg);
	background: rgba(11, 66, 50, 0.1);
	color: var(--cp-green);
}

.cp-faq__q[aria-expanded="true"] .cp-faq__chevron { transform: rotate(180deg); }

.cp-faq__a {
	height: 0;
	overflow: hidden;
	transition: height 0.55s cubic-bezier(0.22, 1, 0.36, 1);
}

.cp-faq__a-inner {
	padding: 0 22px 0 74px;
	opacity: 0;
	transform: translateY(-8px);
	transition:
		opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1) 0.05s,
		transform 0.45s cubic-bezier(0.22, 1, 0.36, 1) 0.05s;
}

.cp-faq__a-inner > p {
	margin: 0;
	padding-bottom: 22px;
	font-family: var(--sans);
	font-size: 14px;
	line-height: 1.65;
	color: var(--cp-muted);
}

.cp-faq__item.is-open .cp-faq__a-inner {
	opacity: 1;
	transform: none;
}

@media (prefers-reduced-motion: reduce) {
	.contact-page [data-reveal] { transition: none; }
	.cp-faq__a,
	.cp-faq__a-inner,
	.cp-faq__chevron,
	.cp-faq__q-ico { transition: none; }
}

/* ═══════════════ RESPONSIVE ═══════════════ */
@media (max-width: 1280px) {
	.cp-contact__grid {
		grid-template-columns: 1fr 1fr;
	}
}

@media (max-width: 1100px) {
	.cp-hero__grid { grid-template-columns: 1fr; }
	.cp-hero__visual { max-width: 560px; }

	.cp-presence__grid { grid-template-columns: 1fr; }
	.cp-globe { min-height: 400px; }
	.cp-globe__viewport { height: 400px; min-height: 400px; }
}

@media (max-width: 900px) {
	.cp-cta__inner {
		flex-direction: column;
		align-items: stretch;
		gap: 20px;
		padding: 28px 22px;
	}

	.cp-cta__lead {
		flex: none;
		width: 100%;
	}

	.cp-cta__btn {
		width: 100%;
		justify-content: center;
	}

	.cp-faq__a-inner { padding-left: 22px; }
}

@media (max-width: 780px) {
	.cp-contact__grid { grid-template-columns: 1fr; }

	.cp-hero__features { gap: 20px 24px; }
	.cp-feature { max-width: none; flex: 1 1 45%; }

	.cp-office { flex-direction: column; }
	.cp-office__media { width: 100%; height: 120px; }

	.contact-page button.cp-faq__q {
		padding: 16px 14px;
		gap: 10px;
	}

	.cp-faq__q-ico {
		width: 34px;
		height: 34px;
	}

	.cp-faq__q-text {
		font-size: 14px;
	}

	.cp-faq__chevron {
		width: 28px;
		height: 28px;
	}

	.cp-faq__a-inner {
		padding: 0 14px 16px 14px;
	}
}

@media (max-width: 640px) {
	.cp-form__row { grid-template-columns: 1fr; }
	.cp-card, .cp-connect { padding: 26px 22px; }

	.cp-cta {
		padding-top: calc(var(--cp-space) * 0.75);
		padding-bottom: calc(var(--cp-space) * 0.75);
	}

	.cp-cta__inner {
		padding: 24px 18px;
		border-radius: 20px;
	}

	.cp-cta__lead {
		flex-direction: column;
		gap: 14px;
	}

	.cp-cta__ico {
		width: 48px;
		height: 48px;
	}

	.cp-cta__lead h2 {
		font-size: 22px;
	}

	.cp-cta__text {
		font-size: 13.5px;
	}

	.cp-cta__btn {
		height: 50px;
		padding: 0 20px;
		font-size: 14px;
	}

	.cp-faq__item {
		border-radius: 14px;
	}

	.contact-page button.cp-faq__q {
		padding: 14px 12px;
	}

	.cp-faq__q-text {
		font-size: 13px;
		line-height: 1.4;
	}
}

@media (max-width: 480px) {
	.cp-office__media { height: 100px; }
	.cp-feature { flex: 1 1 100%; }
	.cp-globe { min-height: 340px; }
	.cp-globe__viewport { height: 340px; min-height: 340px; }
	.cp-globe-pin__label { font-size: 10px; padding: 4px 9px; }
	.cp-globe__popup {
		right: 0;
		bottom: 8px;
		width: 100%;
	}
}
