/**
 * Contact — offices, maps and the enquiry form in three columns.
 *
 * The page sits on a soft grey-blue ground instead of the site-wide lavender,
 * with each column in a white card and a navy "Send Message" button.
 */

body:has(.ax-contact) {
	background-color: #eef1f8;
}

/* Three white cards: addresses, maps, form. */
.ax-contact > .ax-row {
	row-gap: 24px;
	margin-bottom: 24px;
}

.ax-contact > .ax-row > [class*="ax-col"] > * {
	position: relative;
}

.ax-contact > .ax-row > [class*="ax-col"]::before {
	content: "";
	position: absolute;
	top: 0;
	right: 12px;
	bottom: 0;
	left: 12px;
	z-index: 0;
	border: 1px solid #e3e7f2;
	border-radius: 18px;
	background: #fff;
	box-shadow: 0 1px 2px rgba(14, 25, 54, 0.05), 0 18px 40px -26px rgba(14, 25, 54, 0.35);
}

.ax-contact > .ax-row > [class*="ax-col"] {
	padding: 28px 38px 12px;
}

@media (max-width: 767px) {
	.ax-contact > .ax-row > [class*="ax-col"] {
		padding: 24px 30px 8px;
	}
}

.ax-contact__title,
.ax-contact .apextion-form__title {
	margin: 0 0 20px;
	font-size: 18px;
	font-weight: 800;
	line-height: 1.2;
	color: #132146;
	text-transform: capitalize;
}

.ax-contact__title::after,
.ax-contact .apextion-form__title::after {
	content: "";
	display: block;
	width: 40px;
	height: 3px;
	margin-top: 10px;
	border-radius: 3px;
	background: #ffb606;
}

.ax-contact__head {
	margin: 0 0 16px;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.12em;
	line-height: 20px;
	color: #132146;
	text-align: left;
	text-transform: uppercase;
}

.ax-contact__text {
	margin: 0 0 16px;
	font-size: 15px;
	line-height: 24px;
	color: #3f4866;
	text-align: left;
}

.ax-contact__text strong {
	font-weight: 700;
	color: #132146;
}

/* Each office is its own small card under its label, so the addresses read
   as separate blocks. Styled from the existing paragraphs; the page content
   is unchanged. */
.ax-contact__head {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-top: 22px;
	margin-bottom: 10px;
}

.ax-contact__title + .ax-contact__head {
	margin-top: 0;
}

.ax-contact__head::before {
	content: "";
	flex: none;
	width: 14px;
	height: 14px;
	background-color: #ffb606;
	-webkit-mask: var(--ax-i-location-dot) center / contain no-repeat;
	mask: var(--ax-i-location-dot) center / contain no-repeat;
}

.ax-contact__text {
	position: relative;
	margin-bottom: 12px;
	padding: 14px 16px 14px 18px;
	border: 1px solid #e3e7f2;
	border-radius: 12px;
	background: #f5f7fc;
	transition: border-color 200ms ease, box-shadow 200ms ease, transform 200ms ease;
}

.ax-contact__text::before {
	content: "";
	position: absolute;
	top: 14px;
	bottom: 14px;
	left: 0;
	width: 3px;
	border-radius: 0 3px 3px 0;
	background: #ffb606;
}

.ax-contact__text:hover {
	border-color: #cfd6ea;
	box-shadow: 0 12px 24px -18px rgba(14, 25, 54, 0.45);
	transform: translateY(-1px);
}

/* The city name that opens the two India cards (Delhi, Mumbai). */
.ax-contact__text strong:first-child {
	display: block;
	margin-bottom: 2px;
	font-size: 16px;
}

@media (prefers-reduced-motion: reduce) {
	.ax-contact__text {
		transition: none;
	}

	.ax-contact__text:hover {
		transform: none;
	}
}

.ax-contact a {
	color: #007bff;
	text-decoration: none;
}

.ax-contact a:hover {
	color: #0056b3;
	text-decoration: underline;
}

/* Maps: inline iframes in paragraphs, so each gets the line's descender gap. */
.ax-contact__map {
	margin: 0 0 16px;
	line-height: 23px;
}

.ax-contact__map.is-padded {
	padding-top: 5px;
}

.ax-contact__map iframe {
	display: block;
	width: 100%;
	border: 0;
	border-radius: 12px;
}

/* ---------------------------------------------------------------- Form --- */

.ax-contact-form {
	position: relative;
}

.ax-contact-form label {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}

.ax-contact-form .apextion-form__hp {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	margin: 0;
	overflow: hidden;
}

.ax-contact-form .apextion-form__field {
	margin-bottom: 16px;
}

.ax-contact-form input,
.ax-contact-form textarea {
	display: inline-block;
	width: 100%;
	margin: 0;
	padding: 6px 12px;
	font-family: Lato, sans-serif;
	font-weight: 400;
	background-color: #f5f7fc;
	background-clip: padding-box;
	outline: 0;
	box-shadow: none;
	transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}

.ax-contact-form input {
	height: 46px;
	border: 1px solid #dfe4f1;
	border-radius: 10px;
	font-size: 14px;
	line-height: 20px;
	color: #132146;
}

.ax-contact-form textarea {
	display: block;
	height: auto;
	border: 1px solid #dfe4f1;
	border-radius: 10px;
	font-size: 14px;
	line-height: 22px;
	color: #132146;
	resize: vertical;
	overflow: auto;
}

.ax-contact-form input::placeholder,
.ax-contact-form textarea::placeholder {
	color: #7c86a3;
	opacity: 1;
}

.ax-contact-form input:focus,
.ax-contact-form textarea:focus {
	border-color: #132146;
	background-color: #fff;
	color: #132146;
	box-shadow: 0 0 0 3px rgba(255, 182, 6, 0.35);
}

.ax-contact-form .is-invalid input,
.ax-contact-form .is-invalid textarea {
	border-color: #dc3545;
}

.ax-contact-form .apextion-form__error {
	margin: 4px 0 0;
	font-size: 13px;
	line-height: 18px;
	color: #dc3545;
}

.ax-contact-form .apextion-form__notice {
	margin: 0 0 16px;
	padding: 10px 14px;
	border-radius: 4px;
	font-size: 14px;
	line-height: 21px;
}

.ax-contact-form .apextion-form__notice--success {
	background-color: #d4edda;
	color: #155724;
}

.ax-contact-form .apextion-form__notice--error {
	background-color: #f8d7da;
	color: #721c24;
}

.ax-contact-form .apextion-form__submit {
	display: block;
	width: 100%;
	margin: 8px 0 24px;
	padding: 13px 25px;
	border: 1px solid #132146;
	border-radius: 999px;
	background-color: #132146;
	color: #fff;
	font-family: inherit;
	font-size: 15px;
	font-weight: 700;
	line-height: 21px;
	letter-spacing: 0.5px;
	text-align: center;
	text-transform: capitalize;
	vertical-align: middle;
	cursor: pointer;
	transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out;
}

.ax-contact-form .apextion-form__submit:hover,
.ax-contact-form .apextion-form__submit:focus-visible {
	border-color: #ffb606;
	background-color: #ffb606;
	color: #132146;
}

.ax-contact-form .apextion-form__note {
	margin: 0;
}
