/* ==========================================================================
   CONTACT PAGE — "Sky" theme (matches the homepage).
   Loaded after Contact.css and Sky-common.css.
   ========================================================================== */
body {
	background: #f3f7fe !important;
	color: #4a5672 !important;
}

.contact-hero-title,
.form-title,
.address-title,
.consultation-section-title,
.step-title {
	font-family: "Sora", "Inter", system-ui, sans-serif;
}

/* ---------- Hero ---------- */
.contact-hero {
	padding: 140px 0 190px;
}

.contact-hero-pill {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	padding: 7px 16px;
	margin-bottom: 18px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.12);
	border: 1px solid rgba(255, 255, 255, 0.26);
	color: #ffffff;
	font-size: 0.86rem;
	font-weight: 600;
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
}

.contact-hero-dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: #34d399;
	animation: livePulse 2s infinite;
}

.contact-hero-title {
	font-size: clamp(2rem, 4.4vw, 3.1rem);
	font-weight: 600;
	letter-spacing: -0.03em;
	margin-bottom: 14px;
	text-shadow: 0 2px 16px rgba(2, 0, 36, 0.5);
}

.contact-hero-title .sky-accent {
	background: linear-gradient(90deg, #bae6fd, #7dd3fc);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	text-shadow: none;
}

.contact-hero-subtitle {
	color: rgba(255, 255, 255, 0.92);
	font-size: 1.08rem;
	line-height: 1.7;
	max-width: 620px;
}

/* ---------- Form and contact details: one card that overlaps the hero ---------- */
#contactFormSection {
	margin-top: -95px !important;
	z-index: 3;
}

.contact-shell {
	display: grid;
	grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr);
	overflow: hidden;
	border-radius: 26px;
	border: 1px solid #e1eafa;
	background: #ffffff;
	box-shadow: 0 40px 80px -40px rgba(9, 9, 121, 0.55);
}

.contact-form-pane {
	padding: 36px 38px;
}

.form-title,
.address-title {
	font-size: 1.5rem;
	font-weight: 600;
	letter-spacing: -0.02em;
	color: #0a1633;
	margin-bottom: 6px;
}

.form-lead {
	color: #5a6785;
	margin-bottom: 24px;
}

/* Contact.css zeroes every row margin; restore the gutter offset so fields line up */
.contact-form-pane .row {
	margin-right: calc(var(--bs-gutter-x) * -0.5) !important;
	margin-left: calc(var(--bs-gutter-x) * -0.5) !important;
}

.form-lead[hidden],
.form-title[hidden] {
	display: none;
}

.premium-label {
	color: #0a1633;
	font-size: 0.92rem;
}

.premium-input {
	border-radius: 14px;
	border: 1px solid #d5e3fb;
	background: #f7faff;
	padding: 12px 16px;
	color: #0a1633;
}

.premium-input:focus {
	border-color: #2563eb;
	box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.14) !important;
}

/* Topic chips */
.service-chip {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	border-radius: 999px;
	border: 1px solid #d5e3fb;
	background: #ffffff;
	color: #33405f;
	font-weight: 600;
}

.service-chip i {
	color: #2563eb;
	font-size: 0.85em;
}

.service-chip:hover {
	border-color: #2563eb;
	color: #1d4ed8;
	background: #eef4ff;
}

.service-chip.active {
	background: linear-gradient(135deg, #2563eb, #38bdf8);
	border-color: transparent;
	color: #ffffff;
	box-shadow: 0 10px 20px -10px rgba(37, 99, 235, 0.8);
}

.service-chip.active i {
	color: #ffffff;
}

/* Buttons */
.btn-premium {
	border-radius: 999px;
	padding: 14px 24px;
	border: 0;
	background: linear-gradient(135deg, #2563eb, #38bdf8);
	font-weight: 700;
	box-shadow: 0 16px 30px -14px rgba(37, 99, 235, 0.75);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.btn-premium:hover {
	transform: translateY(-2px);
	background: linear-gradient(135deg, #1d4ed8, #0ea5e9);
	box-shadow: 0 20px 34px -14px rgba(37, 99, 235, 0.85);
}

.btn-send-otp {
	border-radius: 0 14px 14px 0;
	background: #2563eb;
}

/* ---------- Direct contact panel (right half of the card) ---------- */
.contact-aside {
	position: relative;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	padding: 36px 34px;
	color: #ffffff;
	background: linear-gradient(165deg, #060552 0%, #090979 42%, #0a5fb0 100%);
}

.contact-aside::before,
.contact-aside::after {
	content: '';
	position: absolute;
	border-radius: 50%;
	border: 1.5px solid rgba(255, 255, 255, 0.16);
	pointer-events: none;
}

.contact-aside::before { width: 280px; height: 280px; top: -140px; right: -110px; }
.contact-aside::after { width: 200px; height: 200px; bottom: -110px; left: -70px; }

.contact-aside > * {
	position: relative;
	z-index: 1;
}

.contact-aside .address-title {
	color: #ffffff;
	margin-bottom: 8px;
}

.contact-aside-lead {
	color: rgba(255, 255, 255, 0.86);
	font-size: 0.98rem;
	line-height: 1.65;
	margin-bottom: 26px;
}

.contact-aside-details {
	display: grid;
	gap: 16px;
	margin-bottom: 26px;
}

.contact-aside .contact-detail-row {
	margin-bottom: 0;
}

.contact-aside .contact-detail-row:has(.contact-address) {
	align-items: flex-start;
}

.contact-aside .contact-icon {
	width: 42px;
	height: 42px;
	border-radius: 14px;
	background: rgba(255, 255, 255, 0.14);
	border: 1px solid rgba(255, 255, 255, 0.22);
	color: #ffffff;
}

.contact-aside .contact-text {
	color: #ffffff;
	font-size: 0.98rem;
	overflow-wrap: anywhere;
}

.contact-aside .contact-link:hover {
	color: #bae6fd;
}

.contact-address {
	margin: 0;
	font-style: normal;
	line-height: 1.55;
}

.contact-aside .btn-copy-email {
	margin-left: 0;
	background: rgba(255, 255, 255, 0.14);
	border-color: rgba(255, 255, 255, 0.28);
	color: #ffffff;
}

.contact-aside .btn-copy-email:hover {
	background: #ffffff;
	color: #1d4ed8;
}

.contact-quick-actions {
	display: grid;
	gap: 10px;
	margin-bottom: 28px;
}

.contact-aside .btn-quick-action {
	width: 100%;
	padding: 12px 16px;
	border-radius: 999px;
	font-family: inherit;
	font-weight: 700;
	cursor: pointer;
}

.contact-aside .btn-quick-action.action-whatsapp {
	background: #128c4a;
	border: 1px solid #128c4a;
	color: #ffffff;
}

.contact-aside .btn-quick-action.action-whatsapp:hover {
	background: #0e7a40;
	border-color: #0e7a40;
}

.contact-aside .btn-quick-action.action-email {
	background: #ffffff;
	border: 1px solid #ffffff;
	color: #1d4ed8;
}

.contact-aside .btn-quick-action.action-email:hover {
	background: #dbeafe;
	border-color: #dbeafe;
	color: #1d4ed8;
}

.contact-aside .btn-quick-action.action-assistant {
	background: transparent;
	border: 1px solid rgba(255, 255, 255, 0.45);
	color: #ffffff;
}

.contact-aside .btn-quick-action.action-assistant:hover {
	background: rgba(255, 255, 255, 0.16);
	transform: translateY(-1px);
}

.contact-aside-points {
	list-style: none;
	margin: auto 0 0;
	padding: 22px 0 0;
	border-top: 1px solid rgba(255, 255, 255, 0.18);
	display: grid;
	gap: 11px;
	color: rgba(255, 255, 255, 0.92);
	font-size: 0.92rem;
}

.contact-aside-points li {
	display: flex;
	align-items: center;
	gap: 10px;
}

.contact-aside-points i {
	width: 16px;
	text-align: center;
	color: #7dd3fc;
}

/* ---------- Office map ---------- */
.contact-map-section {
	position: relative;
	z-index: 2;
	margin-top: 34px;
	margin-bottom: 70px;
}

.contact-map-band {
	position: relative;
	height: 380px;
	overflow: hidden;
	border-radius: 26px;
	border: 1px solid #e1eafa;
	/* Solid backing while the map loads */
	background: #e5e7eb;
	box-shadow: 0 30px 60px -34px rgba(37, 99, 235, 0.5);
}

.contact-map-band iframe {
	display: block;
	width: 100%;
	height: 100%;
}

.contact-map-card {
	position: absolute;
	top: 20px;
	right: 20px;
	width: min(300px, calc(100% - 40px));
	padding: 18px 20px;
	border-radius: 18px;
	border: 1px solid #e1eafa;
	background: #ffffff;
	box-shadow: 0 24px 44px -24px rgba(9, 9, 121, 0.5);
}

.contact-map-kicker {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	margin-bottom: 8px;
	color: #2563eb;
	font-size: 0.76rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.contact-map-address {
	margin: 0;
	color: #0a1633;
	font-weight: 500;
	line-height: 1.55;
}

.contact-directions {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin-top: 10px;
	color: #2563eb;
	font-size: 0.9rem;
	font-weight: 600;
	text-decoration: none;
}

.contact-directions:hover {
	color: #1d4ed8;
	text-decoration: underline;
}

/* ---------- What happens next: four steps on a line ---------- */
#consultationProcess {
	position: relative;
	background: #ffffff;
	padding: 130px 0 90px;
}

#consultationProcess > .container {
	position: relative;
	z-index: 2;
}

.contact-process-head {
	margin-bottom: 48px;
}

.consultation-section-title {
	position: relative;
	display: inline-block;
	font-weight: 600;
	letter-spacing: -0.03em;
	font-size: clamp(1.7rem, 3vw, 2.35rem);
	color: #0a1633 !important;
	padding-bottom: 16px;
	margin: 0 0 14px;
}

.consultation-section-title::after {
	content: '';
	position: absolute;
	left: 50%;
	bottom: 0;
	width: 56px;
	height: 3px;
	border-radius: 3px;
	transform: translateX(-50%);
	background: linear-gradient(90deg, #2563eb, #38bdf8);
}

.section-subtitle-dark {
	color: #5a6785 !important;
	font-size: 1.04rem;
}

.contact-steps {
	position: relative;
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 28px;
}

/* The line that joins the four icons */
.contact-steps::before {
	content: '';
	position: absolute;
	top: 30px;
	left: 12.5%;
	right: 12.5%;
	height: 2px;
	background: linear-gradient(90deg, #2563eb, #38bdf8);
	opacity: 0.3;
}

.contact-step {
	position: relative;
	padding: 0 6px;
	text-align: center;
}

.contact-step .step-icon-wrap {
	position: relative;
	width: 60px;
	height: 60px;
	margin: 0 auto 16px;
	border-radius: 50%;
	background: linear-gradient(135deg, #2563eb, #38bdf8);
	color: #ffffff;
	font-size: 1.3rem;
	box-shadow: 0 0 0 8px #ffffff, 0 22px 26px -10px rgba(37, 99, 235, 0.6);
}

.contact-step .step-num-badge {
	position: static;
	display: inline-block;
	margin-bottom: 10px;
	padding: 3px 12px;
	border: 0;
	border-radius: 999px;
	background: #eaf2ff;
	color: #1d4ed8;
	font-size: 0.74rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.step-title {
	font-size: 1.1rem;
	font-weight: 600;
	color: #0a1633;
	margin-bottom: 8px;
}

.step-desc {
	color: #5a6785;
	font-size: 0.94rem;
	line-height: 1.65;
}

/* ---------- FAQ: heading on the left, answers on the right ---------- */
.contact-faq {
	position: relative;
	background: #f3f7fe;
	padding: 130px 0 90px;
}

.contact-faq > .container {
	position: relative;
	z-index: 2;
}

.contact-faq-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.7fr);
	gap: 56px;
	align-items: start;
}

.contact-faq-head {
	position: sticky;
	top: 110px;
}

.contact-faq-head .consultation-section-title::after {
	left: 0;
	transform: none;
}

.contact-faq-head .section-subtitle-dark {
	max-width: none;
	margin: 0 0 24px;
}

.contact-faq-ask {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	padding: 12px 24px;
	border: 0;
	border-radius: 999px;
	background: linear-gradient(135deg, #2563eb, #38bdf8);
	color: #ffffff;
	font-weight: 700;
	box-shadow: 0 16px 30px -14px rgba(37, 99, 235, 0.75);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.contact-faq-ask:hover {
	transform: translateY(-2px);
	box-shadow: 0 20px 34px -14px rgba(37, 99, 235, 0.85);
}

.contact-faq-list {
	display: grid;
	gap: 12px;
}

.contact-faq-list details {
	border: 1px solid #e1eafa;
	border-radius: 16px;
	background: #ffffff;
	box-shadow: 0 16px 34px -28px rgba(37, 99, 235, 0.45);
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.contact-faq-list details[open] {
	border-color: #b9d2fb;
	box-shadow: 0 26px 46px -28px rgba(37, 99, 235, 0.5);
}

.contact-faq-list summary {
	position: relative;
	list-style: none;
	cursor: pointer;
	padding: 18px 56px 18px 22px;
	font-family: "Sora", "Inter", system-ui, sans-serif;
	font-weight: 600;
	color: #0a1633;
}

.contact-faq-list summary::-webkit-details-marker {
	display: none;
}

.contact-faq-list summary::after {
	content: '+';
	position: absolute;
	right: 18px;
	top: 50%;
	width: 28px;
	height: 28px;
	margin-top: -14px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: #eaf2ff;
	color: #2563eb;
	font-family: "Inter", system-ui, sans-serif;
	font-size: 1.1rem;
	transition: transform 0.25s ease, background 0.2s ease, color 0.2s ease;
}

.contact-faq-list details[open] summary {
	color: #1d4ed8;
}

.contact-faq-list details[open] summary::after {
	transform: rotate(45deg);
	background: #2563eb;
	color: #ffffff;
}

.contact-faq-list details p {
	margin: 0;
	padding: 0 22px 20px;
	color: #4a5672;
	line-height: 1.7;
}

/* ---------- Budget / timeline ---------- */
.premium-optional {
	color: #7c89a6;
	font-weight: 500;
	font-size: 0.82rem;
}

select.premium-input {
	padding-right: 36px;
}

/* ---------- Message sent ---------- */
.contact-success {
	padding: 26px 6px 10px;
	text-align: center;
	outline: none;
}

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

.contact-success-tick {
	width: 76px;
	height: 76px;
	margin-bottom: 18px;
	fill: none;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.contact-success-tick circle {
	stroke: #2563eb;
	stroke-width: 3;
	fill: #eaf2ff;
	stroke-dasharray: 208;
	stroke-dashoffset: 208;
	animation: contactTickRing 0.6s ease-out forwards;
}

.contact-success-tick path {
	stroke: #2563eb;
	stroke-width: 5;
	stroke-dasharray: 46;
	stroke-dashoffset: 46;
	animation: contactTickMark 0.35s 0.5s ease-out forwards;
}

@keyframes contactTickRing {
	to { stroke-dashoffset: 0; }
}

@keyframes contactTickMark {
	to { stroke-dashoffset: 0; }
}

.contact-success h3 {
	font-family: "Sora", "Inter", system-ui, sans-serif;
	font-size: 1.5rem;
	font-weight: 600;
	letter-spacing: -0.02em;
	color: #0a1633;
	margin-bottom: 8px;
}

.contact-success p {
	color: #4a5672;
	margin-bottom: 22px;
}

.contact-success ul {
	list-style: none;
	max-width: 400px;
	margin: 0 auto 26px;
	padding: 0;
	display: grid;
	gap: 10px;
	text-align: left;
}

.contact-success li {
	display: flex;
	gap: 12px;
	align-items: flex-start;
	padding: 12px 14px;
	border-radius: 14px;
	background: #f7faff;
	border: 1px solid #e1eafa;
	color: #33405f;
	font-size: 0.94rem;
	line-height: 1.5;
}

.contact-success li i {
	margin-top: 3px;
	color: #2563eb;
}

.contact-success-again {
	padding: 12px 26px;
	border-radius: 999px;
	border: 1px solid #d5e3fb;
	background: #ffffff;
	color: #1d4ed8;
	font-weight: 700;
	transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.contact-success-again:hover {
	background: #2563eb;
	border-color: #2563eb;
	color: #ffffff;
}

/* ---------- Tablet and phone ---------- */
@media (max-width: 991.98px) {
	.contact-hero { padding: 120px 0 170px; }
	#contactFormSection { margin-top: -90px !important; }

	/* The form first, the contact panel under it */
	.contact-shell { grid-template-columns: minmax(0, 1fr); }
	.contact-form-pane { padding: 30px 28px; }
	.contact-aside { padding: 30px 28px; }
	.contact-aside-points { margin-top: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); }

	#consultationProcess { padding: 104px 0 70px; }

	/* Steps become cards, two to a row */
	.contact-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
	.contact-steps::before { display: none; }

	.contact-step {
		padding: 24px 22px;
		text-align: left;
		border: 1px solid #e1eafa;
		border-radius: 20px;
		background: #ffffff;
		box-shadow: 0 22px 44px -30px rgba(37, 99, 235, 0.4);
	}

	.contact-step .step-icon-wrap {
		width: 52px;
		height: 52px;
		margin: 0 0 14px;
		border-radius: 16px;
		font-size: 1.2rem;
		box-shadow: 0 14px 24px -12px rgba(37, 99, 235, 0.7);
	}

	.contact-faq { padding: 104px 0 70px; }
	.contact-faq-grid { grid-template-columns: minmax(0, 1fr); gap: 28px; }
	.contact-faq-head { position: static; text-align: center; }
	.contact-faq-head .consultation-section-title::after { left: 50%; transform: translateX(-50%); }
	.contact-faq-list { max-width: 820px; width: 100%; margin: 0 auto; }

	/* Tap targets: chips and small actions are easier to hit on touch screens */
	.service-chip {
		min-height: 38px;
		padding-top: 8px !important;
		padding-bottom: 8px !important;
		font-size: 0.8rem !important;
	}

	.btn-copy-email,
	.contact-directions,
	.resend-otp-link {
		min-height: 32px;
		display: inline-flex;
		align-items: center;
	}

	.btn-send-otp {
		min-height: 44px;
	}

	a.contact-text {
		display: inline-flex;
		align-items: center;
		min-height: 32px;
	}
}

@media (max-width: 767.98px) {
	.contact-hero { padding: 104px 0 150px; }
	.contact-hero-pill { font-size: 0.8rem; margin-bottom: 14px; }
	.contact-hero-subtitle { font-size: 0.98rem; }
	#contactFormSection { margin-top: -85px !important; }

	.contact-shell { border-radius: 22px; }
	.contact-form-pane,
	.contact-aside { padding: 24px 18px; }
	.form-title,
	.address-title { font-size: 1.3rem; }
	.form-lead { margin-bottom: 18px; font-size: 0.94rem; }
	.contact-aside .contact-icon { width: 38px; height: 38px; margin-right: 4px; }
	.contact-aside-points { grid-template-columns: minmax(0, 1fr); }

	/* The address card sits under the map instead of on top of it */
	.contact-map-section { margin-top: 22px; margin-bottom: 48px; }
	.contact-map-band { height: auto; border-radius: 22px; }
	.contact-map-band iframe { height: 260px; }

	.contact-map-card {
		position: static;
		width: auto;
		border: 0;
		border-top: 1px solid #e1eafa;
		border-radius: 0;
		box-shadow: none;
	}

	/* Contact.css squeezes this section on phones; keep room for the wave */
	#consultationProcess { padding: 80px 0 52px !important; margin-bottom: 0 !important; }
	.contact-process-head { margin-bottom: 28px; }
	.consultation-section-title { font-size: 1.4rem; text-wrap: balance; }

	.contact-faq { padding: 80px 0 52px; }
	.contact-faq-list summary { padding: 15px 50px 15px 16px; font-size: 0.96rem; }
	.contact-faq-list details p { padding: 0 16px 16px; font-size: 0.93rem; }
}

@media (max-width: 575.98px) {
	/* Six topics: an even two-column grid */
	.service-chip[data-service="General Inquiry"] {
		grid-column: auto;
	}

	.service-chip {
		justify-content: center;
	}

	.contact-steps { grid-template-columns: minmax(0, 1fr); }
}

@media (prefers-reduced-motion: reduce) {
	.contact-hero-dot {
		animation: none;
	}

	.contact-success-tick circle,
	.contact-success-tick path {
		animation: none;
		stroke-dashoffset: 0;
	}
}
