.bc-contact-wrap {
		--bc-contact-primary: #1a3c6e;
		--bc-contact-badge-icon: #1a3c6e;
		--bc-contact-secondary: #2d6be4;
		--bc-contact-accent: #e84545;
		--bc-contact-text: #333333;
		--bc-contact-text-light: #888888;
		--bc-contact-bg: #f5f7fa;
		--bc-contact-bg-card: #ffffff;
		--bc-contact-border: #e2e8f0;
		--bc-contact-info-bg: #1a3c6e;
		--bc-contact-link: #cfe3ff;
		position: relative;
		background: var(--bc-contact-bg);
		padding: 72px 20px;
		font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
		overflow: hidden;
	}
	.bc-contact-wrap *, .bc-contact-wrap *::before, .bc-contact-wrap *::after { box-sizing: border-box; }

	/* Soft decorative glow behind the layout */
	.bc-contact-wrap::before,
	.bc-contact-wrap::after {
		content: "";
		position: absolute;
		width: 420px;
		height: 420px;
		border-radius: 50%;
		filter: blur(90px);
		opacity: .16;
		pointer-events: none;
		z-index: 0;
	}
	.bc-contact-wrap::before { background: var(--bc-contact-secondary); top: -160px; left: -120px; }
	.bc-contact-wrap::after  { background: var(--bc-contact-accent); bottom: -180px; right: -140px; }

	/* Two-column layout: form (left) / info + live map (right) */
	.bc-contact-grid {
		position: relative;
		z-index: 1;
		max-width: 1100px;
		margin: 0 auto;
		display: grid;
		grid-template-columns: 1.05fr .95fr;
		gap: 0 56px;
		align-items: start;
	}

	/* Form column — background removed on purpose; it now sits directly
	   on the section background instead of inside a card. */
	.bc-contact-card {
		position: relative;
		background: none;
		padding: 0;
		box-shadow: none;
		overflow: visible;
	}
	.bc-contact-card-bar { display: none; }
	.bc-contact-card-inner { padding: 0; }

	.bc-contact-badge {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 52px;
		height: 52px;
		border-radius: 14px;
		background: color-mix(in srgb, var(--bc-contact-secondary) 12%, transparent);
		margin-bottom: 18px;
	}
	.bc-contact-wrap .bc-contact-badge { color: var(--bc-contact-badge-icon) !important; }
	.bc-contact-badge svg { width: 24px; height: 24px; }

	.bc-contact-title {
		margin: 0 0 10px;
		font-size: clamp(24px, 3.4vw, 30px);
		font-weight: 800;
		letter-spacing: -.02em;
	}
	/* Same reasoning as the info-column link fix above: many themes style
	   headings inside the content area with selectors like "#content h2"
	   or ".entry-content h2", which otherwise beat the plain class
	   selector regardless of load order. This guarantees the configured
	   Primary colour always wins over theme heading styling. */
	.bc-contact-wrap h2.bc-contact-title { color: var(--bc-contact-primary) !important; }
	.bc-contact-subtitle {
		margin: 0 0 32px;
		font-size: 15.5px;
		line-height: 1.65;
		color: var(--bc-contact-text-light);
		max-width: 46ch;
	}

	.bc-contact-notice {
		display: flex;
		align-items: flex-start;
		gap: 10px;
		padding: 14px 16px;
		border-radius: 12px;
		font-size: 14px;
		line-height: 1.55;
		margin-bottom: 26px;
		border: 1px solid transparent;
	}
	.bc-contact-notice svg { width: 19px; height: 19px; flex-shrink: 0; margin-top: 1px; }
	.bc-contact-notice--success { background: #eefaf1; color: #1a7f37; border-color: #cdedd7; }
	.bc-contact-notice--error   { background: #fdeeee; color: #b32d2e; border-color: #f6cfcf; }

	/* Honeypot — hidden from humans and screen readers, still reachable by bots */
	.bc-contact-hp {
		position: absolute !important;
		width: 1px !important;
		height: 1px !important;
		overflow: hidden !important;
		clip: rect(0 0 0 0);
		clip-path: inset(50%);
		white-space: nowrap;
		left: -9999px !important;
		opacity: 0 !important;
		pointer-events: none;
	}

	.bc-contact-row { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
	.bc-contact-field { margin-bottom: 20px; position: relative; }
	.bc-contact-field > label {
		display: block;
		font-size: 12.5px;
		font-weight: 700;
		text-transform: uppercase;
		letter-spacing: .05em;
		color: var(--bc-contact-text-light);
		margin-bottom: 8px;
	}
	.bc-contact-field > label .bc-req { color: var(--bc-contact-accent); margin-left: 2px; }

	.bc-contact-input-wrap { position: relative; }

	.bc-contact-input-icon {
		position: absolute;
		left: 15px;
		top: 50%;
		transform: translateY(-50%);
		width: 18px;
		height: 18px;
		color: var(--bc-contact-text-light);
		pointer-events: none;
		transition: color .15s ease;
	}
	.bc-contact-input-icon svg { display: block; width: 100%; height: 100%; }
	.bc-contact-field--textarea .bc-contact-input-icon { top: 16px; transform: none; }

	.bc-contact-field input,
	.bc-contact-field textarea {
		width: 100%;
		padding: 13px 14px 13px 44px !important;
		font-size: 14.5px;
		color: var(--bc-contact-text);
		background: color-mix(in srgb, var(--bc-contact-bg) 55%, #fff);
		border: 1.5px solid var(--bc-contact-border);
		border-radius: 11px;
		font-family: inherit;
		transition: border-color .15s ease, box-shadow .15s ease, background-color .15s ease;
	}
	.bc-contact-field textarea { resize: vertical; min-height: 130px; padding-top: 14px !important; }
	.bc-contact-field input::placeholder,
	.bc-contact-field textarea::placeholder { color: color-mix(in srgb, var(--bc-contact-text-light) 75%, transparent); }

	.bc-contact-field input:focus,
	.bc-contact-field textarea:focus {
		outline: none;
		background: #fff;
		border-color: var(--bc-contact-secondary);
		box-shadow: 0 0 0 4px color-mix(in srgb, var(--bc-contact-secondary) 15%, transparent);
	}
	.bc-contact-field:focus-within .bc-contact-input-icon { color: var(--bc-contact-secondary); }

	.bc-contact-submit {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		gap: 9px;
		width: 100%;
		padding: 15px 24px;
		font-size: 15.5px;
		font-weight: 700;
		letter-spacing: .01em;
		color: #fff;
		background: linear-gradient(135deg, var(--bc-contact-accent), color-mix(in srgb, var(--bc-contact-accent) 75%, #000));
		border: none;
		border-radius: 12px;
		cursor: pointer;
		box-shadow: 0 10px 24px -8px color-mix(in srgb, var(--bc-contact-accent) 65%, transparent);
		transition: transform .15s ease, box-shadow .15s ease, filter .15s ease;
	}
	.bc-contact-submit svg { width: 17px; height: 17px; transition: transform .15s ease; }
	.bc-contact-submit:hover { transform: translateY(-2px); box-shadow: 0 14px 30px -8px color-mix(in srgb, var(--bc-contact-accent) 70%, transparent); filter: brightness(1.03); }
	.bc-contact-submit:hover svg { transform: translateX(3px); }
	.bc-contact-submit:active { transform: translateY(0); }

	.bc-contact-privacy {
		margin: 16px 2px 0;
		font-size: 12.5px;
		line-height: 1.6;
		color: var(--bc-contact-text-light);
		text-align: center;
	}

	/* ── Right column: info items + live map ── */
	.bc-contact-info-col { position: relative; }
	.bc-contact-info-card {
		background: var(--bc-contact-info-bg);
		border-radius: 22px;
		padding: 40px clamp(22px, 4vw, 40px) 32px;
		box-shadow: 0 1px 2px rgba(16,24,40,.04), 0 24px 60px -18px rgba(16,24,40,.28);
		color: #fff;
	}
	.bc-contact-info-title {
		margin: 0 0 26px;
		font-size: 20px;
		font-weight: 800;
		letter-spacing: -.01em;
		color: #fff;
	}
	.bc-contact-info-list { list-style: none; margin: 0 0 30px; padding: 0; display: flex; flex-direction: column; gap: 20px; }
	.bc-contact-info-item { display: flex; align-items: flex-start; gap: 14px; }
	.bc-contact-info-icon {
		flex-shrink: 0;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 42px;
		height: 42px;
		border-radius: 12px;
		background: rgba(255,255,255,.14);
		color: #fff;
	}
	.bc-contact-info-icon svg { width: 19px; height: 19px; }
	.bc-contact-info-label {
		display: block;
		font-size: 11.5px;
		font-weight: 700;
		text-transform: uppercase;
		letter-spacing: .06em;
		color: rgba(255,255,255,.62);
		margin-bottom: 3px;
	}
	.bc-contact-info-value, .bc-contact-info-value:visited { display: block; font-size: 15px; line-height: 1.5; color: #fff; text-decoration: none; word-break: break-word; }
	/* Higher specificity (.bc-contact-wrap ... ) + !important — many themes
	   target links inside the content area with selectors like "#content a"
	   or ".entry-content a", which otherwise beat the plain class selector
	   above regardless of load order. This guarantees the configured link
	   colour always wins over theme/page-builder link styling. */
	.bc-contact-wrap a.bc-contact-info-value,
	.bc-contact-wrap a.bc-contact-info-value:visited,
	.bc-contact-wrap a.bc-contact-info-value:link { color: var(--bc-contact-link) !important; }
	.bc-contact-wrap a.bc-contact-info-value:hover { text-decoration: underline; }

	.bc-contact-map-wrap {
		position: relative;
		border-radius: 16px;
		overflow: hidden;
		height: 260px;
		background: rgba(255,255,255,.08);
	}
	.bc-contact-map-wrap iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; filter: grayscale(.15) contrast(1.05); }
	.bc-map-live-badge {
		position: absolute;
		top: 12px;
		left: 12px;
		z-index: 2;
		display: inline-flex;
		align-items: center;
		gap: 6px;
		padding: 6px 11px 6px 9px;
		border-radius: 999px;
		background: rgba(20,22,28,.72);
		backdrop-filter: blur(4px);
		color: #fff;
		font-size: 11.5px;
		font-weight: 700;
		letter-spacing: .04em;
		text-transform: uppercase;
	}
	.bc-live-dot { width: 8px; height: 8px; border-radius: 50%; background: #ff4d4d; position: relative; flex-shrink: 0; }
	.bc-live-dot::after {
		content: "";
		position: absolute;
		inset: -4px;
		border-radius: 50%;
		background: #ff4d4d;
		opacity: .55;
		animation: bc-live-pulse 1.6s ease-out infinite;
	}
	@keyframes bc-live-pulse {
		0%   { transform: scale(.6); opacity: .6; }
		100% { transform: scale(2.1); opacity: 0; }
	}

	@media (max-width: 900px) {
		.bc-contact-grid { grid-template-columns: 1fr; gap: 48px 0; }
		.bc-contact-info-col { order: -1; }
	}

	@media (max-width: 560px) {
		.bc-contact-wrap { padding: 40px 14px; }
		.bc-contact-row { grid-template-columns: 1fr; gap: 0; }
		.bc-contact-info-card { padding: 30px 20px 26px; }
	}