/* Araddhya Core — styles for the post-type widgets. Values mirror the Figma design system. */

:root {
	--ar-primary: #0c5ca5;
	--ar-primary-deep: #083e70;
	--ar-navy: #0a2740;
	--ar-sky: #4ca2d3;
	--ar-accent-soft: #e8f2fa;
	--ar-bg: #ffffff;
	--ar-bg-alt: #f1f6fb;
	--ar-text: #0d263e;
	--ar-text-2: #3e5c79;
	--ar-muted: #5f7386;
	--ar-border: #d9e5f0;
	--ar-border-strong: #a5c0d8;
	--ar-display: "Plus Jakarta Sans", system-ui, sans-serif;
	--ar-body: "Inter", system-ui, sans-serif;
}

.ar-eyebrow-sm {
	font-family: var(--ar-body);
	font-size: 11px;
	font-weight: 600;
	line-height: 15px;
	letter-spacing: 1.32px;
	text-transform: uppercase;
	color: var(--ar-primary);
	margin: 0;
}

.ar-eyebrow-xs {
	font-family: var(--ar-body);
	font-size: 10px;
	font-weight: 600;
	line-height: 14px;
	letter-spacing: 1.2px;
	text-transform: uppercase;
	color: var(--ar-sky);
}

/* Buttons ---------------------------------------------------------------- */

.ar-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	padding: 13px 20px;
	border-radius: 8px;
	font-family: var(--ar-body);
	font-size: 14px;
	font-weight: 600;
	line-height: 19px;
	text-decoration: none;
	transition: background-color .18s ease, border-color .18s ease, color .18s ease;
}

.ar-btn--primary {
	flex: 1 0 0;
	min-width: 0;
	background: var(--ar-primary);
	color: #fff;
}

.ar-btn--primary:hover,
.ar-btn--primary:focus {
	background: var(--ar-primary-deep);
	color: #fff;
}

.ar-btn--outline {
	padding: 13px 18px;
	border: 1px solid var(--ar-border-strong);
	color: var(--ar-primary);
	background: transparent;
}

.ar-btn--outline:hover,
.ar-btn--outline:focus {
	border-color: var(--ar-primary);
	background: var(--ar-accent-soft);
	color: var(--ar-primary);
}

/* Project cards ---------------------------------------------------------- */

.ar-project-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
	align-items: stretch;
}

.ar-project-card {
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid var(--ar-border);
	border-radius: 12px;
	overflow: hidden;
	height: 100%;
	transition: box-shadow .2s ease, transform .2s ease;
}

.ar-project-card:hover {
	box-shadow: 0 14px 34px rgba(12, 39, 64, .12);
	transform: translateY(-2px);
}

.ar-project-card__media {
	position: relative;
	height: 260px;
	overflow: hidden;
	flex: none;
}

.ar-project-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.ar-project-card__scrim {
	position: absolute;
	inset: auto 0 0 0;
	height: 120px;
	background: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(5, 23, 41, .72));
	pointer-events: none;
}

.ar-pill {
	position: absolute;
	top: 16px;
	left: 16px;
	background: var(--ar-primary);
	color: #fff;
	border-radius: 999px;
	padding: 7px 12px;
	font-family: var(--ar-body);
	font-size: 10px;
	font-weight: 600;
	line-height: 13px;
	letter-spacing: .8px;
	text-transform: uppercase;
}

.ar-project-card__badges {
	position: absolute;
	left: 16px;
	bottom: 16px;
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
}

.ar-chip {
	background: rgba(255, 255, 255, .16);
	border: 1px solid rgba(255, 255, 255, .34);
	border-radius: 6px;
	padding: 6px 11px;
	color: #fff;
	font-family: var(--ar-body);
	font-size: 10px;
	font-weight: 600;
	line-height: 13px;
	letter-spacing: .6px;
	text-transform: uppercase;
}

.ar-project-card__body {
	display: flex;
	flex-direction: column;
	flex: 1 0 auto;
	padding: 28px;
}

.ar-project-card__title {
	font-family: var(--ar-display);
	font-size: 24px;
	font-weight: 700;
	line-height: 30px;
	letter-spacing: -.24px;
	color: var(--ar-text);
	margin: 10px 0 0;
}

.ar-project-card__title a {
	color: inherit;
	text-decoration: none;
}

.ar-project-card__title a:hover {
	color: var(--ar-primary);
}

.ar-project-card__location {
	display: flex;
	align-items: flex-start;
	gap: 7px;
	margin: 8px 0 0;
	font-family: var(--ar-body);
	font-size: 13px;
	line-height: 20px;
	color: var(--ar-text-2);
}

.ar-dot {
	flex: none;
	width: 9px;
	height: 9px;
	margin-top: 6px;
	border-radius: 50%;
	background: var(--ar-sky);
}

.ar-project-card__excerpt {
	margin-top: 14px;
	font-family: var(--ar-body);
	font-size: 14px;
	line-height: 23px;
	color: var(--ar-muted);
}

.ar-project-card__excerpt p {
	margin: 0;
}

.ar-project-card__foot {
	margin-top: auto;
	padding-top: 18px;
}

.ar-project-card__price {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding-top: 18px;
	border-top: 1px solid var(--ar-border);
}

.ar-price-label {
	font-family: var(--ar-body);
	font-size: 10px;
	font-weight: 600;
	line-height: 14px;
	letter-spacing: 1.2px;
	text-transform: uppercase;
	color: var(--ar-muted);
}

.ar-price-value {
	font-family: var(--ar-display);
	font-size: 22px;
	font-weight: 700;
	line-height: 28px;
	letter-spacing: -.22px;
	color: var(--ar-primary-deep);
}

.ar-project-card__actions {
	display: flex;
	gap: 10px;
	margin-top: 20px;
}

/* Gallery ---------------------------------------------------------------- */

.ar-tabs {
	display: flex;
	gap: 36px;
	border-bottom: 1px solid var(--ar-border);
	margin-bottom: 40px;
}

.ar-tab {
	display: flex;
	align-items: center;
	gap: 9px;
	padding: 0 0 14px;
	background: none;
	border: 0;
	border-bottom: 2px solid transparent;
	margin-bottom: -1px;
	cursor: pointer;
	font-family: var(--ar-body);
	font-size: 17px;
	font-weight: 600;
	line-height: 24px;
	color: var(--ar-muted);
}

.ar-tab.is-active {
	color: var(--ar-text);
	border-bottom-color: var(--ar-primary);
}

.ar-tab__count {
	background: var(--ar-bg-alt);
	color: var(--ar-muted);
	border-radius: 999px;
	padding: 3px 9px;
	font-size: 12px;
	line-height: 16px;
}

.ar-tab.is-active .ar-tab__count {
	background: var(--ar-accent-soft);
	color: var(--ar-primary);
}

.ar-gallery-panel {
	display: none;
}

.ar-gallery-panel.is-active {
	display: block;
}

.ar-gallery-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}

.ar-gallery-tile {
	position: relative;
	display: block;
	height: 320px;
	border-radius: 12px;
	overflow: hidden;
	text-decoration: none;
}

.ar-gallery-tile img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform .35s ease;
}

.ar-gallery-tile:hover img {
	transform: scale(1.04);
}

.ar-gallery-tile__scrim {
	position: absolute;
	inset: auto 0 0 0;
	height: 150px;
	background: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(5, 23, 41, .55) 50%, rgba(5, 23, 41, .92));
	pointer-events: none;
}

.ar-gallery-tile__play {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 56px;
	height: 56px;
	transform: translate(-50%, -50%);
	border-radius: 999px;
	background: rgba(255, 255, 255, .16);
	border: 1.5px solid rgba(255, 255, 255, .5);
}

.ar-gallery-tile__play::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 54%;
	transform: translate(-50%, -50%);
	border-left: 14px solid #fff;
	border-top: 9px solid transparent;
	border-bottom: 9px solid transparent;
}

.ar-gallery-tile__caption {
	position: absolute;
	left: 22px;
	bottom: 26px;
	display: flex;
	flex-direction: column;
	gap: 5px;
}

.ar-gallery-tile__title {
	font-family: var(--ar-display);
	font-size: 17px;
	font-weight: 600;
	line-height: 23px;
	letter-spacing: -.085px;
	color: #fff;
}

.ar-gallery-cta {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	height: 320px;
	padding: 0 44px;
	border-radius: 12px;
	background: var(--ar-navy);
	text-align: center;
	text-decoration: none;
}

.ar-gallery-cta__ring {
	position: relative;
	width: 56px;
	height: 56px;
	border-radius: 999px;
	background: rgba(255, 255, 255, .1);
	border: 1px solid rgba(255, 255, 255, .32);
	margin-bottom: 24px;
}

.ar-gallery-cta__ring::after {
	content: "\2192";
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	font-size: 22px;
	font-weight: 600;
}

.ar-gallery-cta__title {
	font-family: var(--ar-display);
	font-size: 22px;
	font-weight: 600;
	line-height: 30px;
	letter-spacing: -.22px;
	color: #fff;
}

.ar-gallery-cta__subtitle {
	margin-top: 10px;
	font-family: var(--ar-body);
	font-size: 14px;
	line-height: 22px;
	color: rgba(255, 255, 255, .62);
}

/* Testimonials ----------------------------------------------------------- */

.ar-testimonials {
	display: grid;
	gap: 24px;
}

.ar-testimonials--featured {
	grid-template-columns: minmax(0, 1fr);
}

.ar-testimonial {
	display: flex;
	flex-direction: column;
	margin: 0;
	background: #fff;
	border: 1px solid var(--ar-border);
	border-radius: 14px;
	padding: 72px 120px 64px;
	text-align: center;
	align-items: center;
}

.ar-testimonials--grid .ar-testimonial {
	padding: 40px 32px;
	text-align: left;
	align-items: flex-start;
}

.ar-testimonial__mark {
	font-family: var(--ar-display);
	font-size: 88px;
	font-weight: 700;
	line-height: 60px;
	color: var(--ar-sky);
}

.ar-testimonials--grid .ar-testimonial__mark {
	font-size: 56px;
	line-height: 44px;
}

.ar-testimonial__quote {
	margin: 28px 0 0;
	padding: 0;
	border: 0;
	max-width: 880px;
	font-family: var(--ar-display);
	font-size: 28px;
	font-weight: 600;
	line-height: 44px;
	letter-spacing: -.28px;
	color: var(--ar-text);
}

.ar-testimonials--grid .ar-testimonial__quote {
	font-size: 18px;
	line-height: 30px;
}

.ar-testimonial__quote p {
	margin: 0;
}

.ar-testimonial__rule {
	display: block;
	width: 72px;
	height: 1px;
	background: var(--ar-border-strong);
	margin: 44px 0 32px;
}

.ar-testimonial__attribution {
	display: flex;
	align-items: center;
	gap: 16px;
}

.ar-testimonial__photo img {
	width: 56px;
	height: 56px;
	border-radius: 999px;
	object-fit: cover;
	display: block;
}

.ar-testimonial__identity {
	display: flex;
	flex-direction: column;
	gap: 4px;
	text-align: left;
}

.ar-testimonial__name {
	font-family: var(--ar-display);
	font-size: 18px;
	font-weight: 600;
	line-height: 24px;
	letter-spacing: -.09px;
	color: var(--ar-text);
}

.ar-testimonial__meta {
	font-family: var(--ar-body);
	font-size: 14px;
	line-height: 20px;
	color: var(--ar-muted);
}

/* FAQ -------------------------------------------------------------------- */

.ar-faq {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.ar-faq__item {
	background: #fff;
	border: 1px solid var(--ar-border);
	border-radius: 10px;
	padding: 24px 28px;
}

.ar-faq__question {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	width: 100%;
	padding: 0;
	background: none;
	border: 0;
	cursor: pointer;
	text-align: left;
}

.ar-faq__question-text {
	font-family: var(--ar-display);
	font-size: 17px;
	font-weight: 600;
	line-height: 26px;
	letter-spacing: -.085px;
	color: var(--ar-text);
}

.ar-faq__chevron {
	position: relative;
	flex: none;
	width: 28px;
	height: 28px;
	border-radius: 999px;
	background: var(--ar-bg-alt);
}

.ar-faq__chevron::before,
.ar-faq__chevron::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	background: var(--ar-primary);
}

.ar-faq__chevron::before {
	width: 12px;
	height: 2px;
}

.ar-faq__chevron::after {
	width: 2px;
	height: 12px;
	transition: opacity .18s ease;
}

.ar-faq__item.is-open .ar-faq__chevron {
	background: var(--ar-accent-soft);
}

.ar-faq__item.is-open .ar-faq__chevron::after {
	opacity: 0;
}

.ar-faq__divider {
	display: block;
	height: 1px;
	background: var(--ar-border);
	margin: 18px 0;
}

.ar-faq__answer-inner {
	font-family: var(--ar-body);
	font-size: 15px;
	line-height: 26px;
	color: var(--ar-muted);
}

.ar-faq__answer-inner p {
	margin: 0 0 12px;
}

.ar-faq__answer-inner p:last-child {
	margin-bottom: 0;
}

/* Responsive ------------------------------------------------------------- */

@media (max-width: 1024px) {
	.ar-project-grid,
	.ar-gallery-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.ar-testimonial {
		padding: 56px 48px 48px;
	}

	.ar-testimonial__quote {
		font-size: 24px;
		line-height: 38px;
	}
}

@media (max-width: 767px) {
	.ar-project-grid,
	.ar-gallery-grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.ar-project-card__body {
		padding: 24px;
	}

	.ar-project-card__actions {
		flex-wrap: wrap;
	}

	.ar-testimonial {
		padding: 40px 24px;
	}

	.ar-testimonial__quote {
		font-size: 20px;
		line-height: 32px;
	}

	.ar-testimonial__mark {
		font-size: 64px;
		line-height: 48px;
	}

	.ar-tabs {
		gap: 24px;
	}

	.ar-faq__item {
		padding: 20px;
	}

	.ar-faq__question-text {
		font-size: 16px;
		line-height: 24px;
	}
}

/* 360 tour ---------------------------------------------------------------- */

.ar-tour {
	position: relative;
	width: 100%;
	height: 470px;
	border-radius: 14px;
	overflow: hidden;
	background: var(--ar-navy);
}

.ar-tour iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
	display: block;
}

@media (max-width: 767px) {
	.ar-tour {
		height: 320px;
	}
}

/* Resets — the kit's global button style must not reach our own buttons ---- */

.ar-faq .ar-faq__question,
.ar-gallery .ar-tab {
	background: none;
	background-color: transparent;
	border-radius: 0;
	box-shadow: none;
	color: inherit;
	font-family: var(--ar-body);
	text-align: left;
	/* Hello Elementor's reset sets white-space: nowrap on every button. */
	white-space: normal;
	min-width: 0;
}

.ar-faq .ar-faq__question-text {
	min-width: 0;
}

.ar-faq .ar-faq__question {
	padding: 0;
	width: 100%;
}

.ar-faq .ar-faq__question:hover,
.ar-faq .ar-faq__question:focus {
	background: none;
	background-color: transparent;
	color: inherit;
}

.ar-gallery .ar-tab {
	padding: 0 0 14px;
}

.ar-gallery .ar-tab:hover,
.ar-gallery .ar-tab:focus {
	background: none;
	background-color: transparent;
	color: var(--ar-text);
}

/* Contact Form 7 ---------------------------------------------------------- */

.wpcf7 .ar-form-row {
	display: flex;
	gap: 16px;
}

.wpcf7 .ar-form-row > .ar-field {
	flex: 1 1 0;
	min-width: 0;
}

.wpcf7 .ar-field {
	margin: 0 0 20px;
}

.wpcf7 .ar-field label {
	display: block;
	margin-bottom: 9px;
	font-family: var(--ar-body);
	font-size: 10px;
	font-weight: 600;
	line-height: 14px;
	letter-spacing: 1.2px;
	text-transform: uppercase;
	color: var(--ar-text-2);
}

.wpcf7 .ar-field label span {
	color: var(--ar-primary);
	letter-spacing: 0;
}

.wpcf7 input[type="text"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="email"],
.wpcf7 select,
.wpcf7 textarea {
	width: 100%;
	padding: 16px;
	border: 1px solid var(--ar-border);
	border-radius: 8px;
	background: #fff;
	font-family: var(--ar-body);
	font-size: 15px;
	line-height: 22px;
	color: var(--ar-text);
	transition: border-color .18s ease, box-shadow .18s ease;
}

.wpcf7 textarea {
	height: 104px;
	resize: vertical;
}

.wpcf7 input::placeholder,
.wpcf7 textarea::placeholder {
	color: var(--ar-muted);
}

.wpcf7 input:focus,
.wpcf7 select:focus,
.wpcf7 textarea:focus {
	outline: none;
	border-color: var(--ar-primary);
	box-shadow: 0 0 0 3px rgba(12, 92, 165, .12);
}

.wpcf7 .ar-submit {
	margin: 8px 0 0;
}

.wpcf7 .ar-submit input[type="submit"] {
	width: 100%;
	padding: 19px 24px;
	border: 0;
	border-radius: 8px;
	background: var(--ar-primary);
	color: #fff;
	font-family: var(--ar-body);
	font-size: 16px;
	font-weight: 600;
	line-height: 21px;
	cursor: pointer;
	transition: background-color .18s ease;
}

.wpcf7 .ar-submit input[type="submit"]:hover {
	background: var(--ar-primary-deep);
}

.wpcf7 .wpcf7-not-valid-tip {
	margin-top: 6px;
	font-size: 12px;
	color: #b3261e;
}

.wpcf7 .wpcf7-response-output {
	margin: 16px 0 0;
	padding: 12px 16px;
	border-radius: 8px;
	border-color: var(--ar-border);
	font-size: 14px;
}

@media (max-width: 767px) {
	.wpcf7 .ar-form-row {
		flex-direction: column;
		gap: 0;
	}
}

/* Contact Form 7 — validation and feedback states -------------------------- */

.wpcf7 .ar-field label {
	font-size: 11px;
	letter-spacing: 1.1px;
}

/* Required marker. */
.wpcf7 .ar-field label span {
	margin-left: 2px;
	font-size: 13px;
	line-height: 1;
}

/* Native select needs its own affordance once it is restyled. */
.wpcf7 select {
	appearance: none;
	-webkit-appearance: none;
	padding-right: 44px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235f7386' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 16px center;
	background-size: 18px 18px;
}

/* Invalid field. */
.wpcf7 input.wpcf7-not-valid,
.wpcf7 select.wpcf7-not-valid,
.wpcf7 textarea.wpcf7-not-valid {
	border-color: #b3261e;
	background-color: #fdf5f4;
}

.wpcf7 input.wpcf7-not-valid:focus,
.wpcf7 select.wpcf7-not-valid:focus,
.wpcf7 textarea.wpcf7-not-valid:focus {
	border-color: #b3261e;
	box-shadow: 0 0 0 3px rgba(179, 38, 30, .14);
}

.wpcf7 .wpcf7-not-valid-tip {
	display: flex;
	align-items: flex-start;
	gap: 6px;
	margin-top: 7px;
	font-family: var(--ar-body);
	font-size: 12.5px;
	line-height: 18px;
	font-weight: 500;
	color: #b3261e;
}

.wpcf7 .wpcf7-not-valid-tip::before {
	content: "!";
	flex: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 15px;
	height: 15px;
	margin-top: 1px;
	border-radius: 50%;
	background: #b3261e;
	color: #fff;
	font-size: 10px;
	font-weight: 700;
	line-height: 1;
}

/* Form-level response message. */
.wpcf7 form .wpcf7-response-output {
	margin: 18px 0 0;
	padding: 14px 16px;
	border: 1px solid var(--ar-border);
	border-radius: 8px;
	font-family: var(--ar-body);
	font-size: 14px;
	line-height: 21px;
	color: var(--ar-text-2);
	background: var(--ar-bg-alt);
}

.wpcf7 form.sent .wpcf7-response-output {
	border-color: #b6e0cf;
	background: #eef8f4;
	color: #0f7a5a;
}

.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output {
	border-color: #f0c9c6;
	background: #fdf5f4;
	color: #b3261e;
}

.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output,
.wpcf7 form.spam .wpcf7-response-output {
	border-color: #f0d8b8;
	background: #fdf8f1;
	color: #8a5a12;
}

/* Submit row: keep the spinner on the same line as the button. */
.wpcf7 .ar-submit {
	display: flex;
	align-items: center;
	gap: 12px;
}

.wpcf7 .wpcf7-spinner {
	margin: 0;
	flex: none;
}

.wpcf7 .ar-submit input[type="submit"]:disabled {
	opacity: .6;
	cursor: not-allowed;
}

.wpcf7 .ar-submit input[type="submit"]:focus-visible {
	outline: 3px solid rgba(12, 92, 165, .35);
	outline-offset: 2px;
}

/* Mobile legibility and tap targets ---------------------------------------- */

@media (max-width: 767px) {
	/* 10px micro-labels are too small to read on a phone. */
	.ar-price-label,
	.ar-eyebrow-xs {
		font-size: 11px;
		letter-spacing: 1px;
	}

	.ar-eyebrow-sm {
		font-size: 11.5px;
	}

	/* Give inline links a comfortable touch height. */
	.ar-project-card__actions .ar-btn {
		min-height: 46px;
	}

	.ar-gallery-tile,
	.ar-gallery-cta {
		min-height: 220px;
	}

	.ar-faq__question {
		min-height: 44px;
	}
}

/* Contact Form 7 — layout corrections ------------------------------------- */

/* Contact Form 7 wraps each control in an inline span, so the paragraph's
   line-box leading opened a ~30px gap under every label. A flex column gives
   an exact, predictable gap instead. */
.wpcf7 .ar-field {
	display: flex;
	flex-direction: column;
	gap: 9px;
	margin: 0 0 20px;
}

.wpcf7 .ar-field label {
	margin-bottom: 0;
}

.wpcf7 .wpcf7-form-control-wrap {
	display: block;
	width: 100%;
}

.wpcf7 input[type="text"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="email"],
.wpcf7 select,
.wpcf7 textarea {
	display: block;
}

/* The plugin's own stylesheet loads after this one, so the response message
   needs the extra specificity to keep its padding and colours. */
.wpcf7 form.wpcf7-form .wpcf7-response-output {
	margin: 18px 0 0;
	padding: 14px 16px;
	border: 1px solid var(--ar-border);
	border-radius: 8px;
	font-family: var(--ar-body);
	font-size: 14px;
	line-height: 21px;
	background: var(--ar-bg-alt);
	color: var(--ar-text-2);
}

.wpcf7 form.wpcf7-form.sent .wpcf7-response-output {
	border-color: #b6e0cf;
	background: #eef8f4;
	color: #0f7a5a;
}

.wpcf7 form.wpcf7-form.invalid .wpcf7-response-output,
.wpcf7 form.wpcf7-form.unaccepted .wpcf7-response-output,
.wpcf7 form.wpcf7-form.payment-required .wpcf7-response-output {
	border-color: #f0c9c6;
	background: #fdf5f4;
	color: #b3261e;
}

.wpcf7 form.wpcf7-form.failed .wpcf7-response-output,
.wpcf7 form.wpcf7-form.aborted .wpcf7-response-output,
.wpcf7 form.wpcf7-form.spam .wpcf7-response-output {
	border-color: #f0d8b8;
	background: #fdf8f1;
	color: #8a5a12;
}

/* Two fields side by side keep the same column gap. */
.wpcf7 .ar-form-row {
	display: flex;
	gap: 16px;
	margin: 0;
}

.wpcf7 .ar-form-row > .ar-field {
	flex: 1 1 0;
	min-width: 0;
}

/* Contact Form 7 runs wpautop over the form template and inserts a <br>
   between each label and its control. Inside the flex column that <br>
   became an empty row, opening a ~25px gap under every label. */
.wpcf7 .ar-field br,
.wpcf7 .ar-submit br {
	display: none;
}

/* Stacked on a phone the two-up row must not add its column gap on top of
   each field's own bottom margin. */
@media (max-width: 767px) {
	.wpcf7 .ar-form-row {
		flex-direction: column;
		gap: 0;
	}
}

@media (max-width: 767px) {
	/* Status pills and approval chips were 10px — under the legible minimum. */
	.ar-pill,
	.ar-chip {
		font-size: 11px;
		letter-spacing: .6px;
	}
}

/* Inline text links ("View all projects →", footer project names, the CTA
   text buttons) render ~20px tall, below the 24px minimum touch target.
   Padding keeps the type size while enlarging the hit area. */
@media (max-width: 767px) {
	.elementor-widget-heading a {
		display: inline-block;
		padding-block: 10px;
	}

	.elementor-widget-button .elementor-button {
		min-height: 44px;
	}
}

/* Tablets are touch devices too, so the legibility and touch-target floors
   apply up to the tablet breakpoint, not just to phones. */
@media (max-width: 1024px) {
	.ar-pill,
	.ar-chip {
		font-size: 11px;
		letter-spacing: .6px;
	}

	.ar-price-label,
	.ar-eyebrow-xs {
		font-size: 11px;
		letter-spacing: 1px;
	}

	.elementor-widget-heading a {
		display: inline-block;
		padding-block: 8px;
	}

	.elementor-widget-button .elementor-button {
		min-height: 44px;
	}
}

/* Touch-target floor on tablet as well as phone. The heading rule needs the
   widget-level specificity to beat Elementor's own heading styles. */
@media (max-width: 1024px) {
	.ar-faq__question {
		min-height: 44px;
	}

	.elementor-widget-heading .elementor-heading-title a,
	.elementor-widget-heading a {
		display: inline-block;
		padding-block: 9px;
	}
}

/* Elementor 4.x does not put `elementor-widget-heading` on the wrapper, so
   target the heading title itself for the linked-heading touch target. */
@media (max-width: 1024px) {
	.elementor-heading-title a {
		display: inline-block;
		padding-block: 9px;
	}
}

/* Slider chrome ----------------------------------------------------------- */

.ar-slider {
	position: relative;
}

.ar-slider .swiper {
	overflow: hidden;
}

.ar-slider__nav {
	position: absolute;
	top: 50%;
	z-index: 5;
	width: 48px;
	height: 48px;
	transform: translateY(-50%);
	border: 1px solid var(--ar-border-strong);
	border-radius: 999px;
	background: #fff;
	cursor: pointer;
	transition: background-color .18s ease, border-color .18s ease, opacity .18s ease;
}

.ar-slider__nav::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 9px;
	height: 9px;
	border: solid var(--ar-primary);
	border-width: 2px 2px 0 0;
}

.ar-slider__prev { left: -22px; }
.ar-slider__next { right: -22px; }

.ar-slider__prev::after { transform: translate(-40%, -50%) rotate(-135deg); }
.ar-slider__next::after { transform: translate(-60%, -50%) rotate(45deg); }

.ar-slider__nav:hover {
	background: var(--ar-primary);
	border-color: var(--ar-primary);
}

.ar-slider__nav:hover::after {
	border-color: #fff;
}

.ar-slider__nav.swiper-button-disabled {
	opacity: .35;
	cursor: default;
}

.ar-slider__dots {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin-top: 32px;
}

.ar-slider__dots .swiper-pagination-bullet {
	width: 8px;
	height: 8px;
	margin: 0;
	border-radius: 999px;
	background: var(--ar-border-strong);
	opacity: 1;
	transition: width .25s ease, background-color .25s ease;
}

.ar-slider__dots .swiper-pagination-bullet-active {
	width: 28px;
	background: var(--ar-primary);
}

@media (max-width: 1439px) {
	.ar-slider__prev { left: 6px; }
	.ar-slider__next { right: 6px; }
}

/* Scroll reveal ------------------------------------------------------------ */

[data-ar-reveal] {
	opacity: 0;
	transform: translateY(26px);
	transition: opacity .7s cubic-bezier(.22, .61, .36, 1), transform .7s cubic-bezier(.22, .61, .36, 1);
}

[data-ar-reveal].is-inview {
	opacity: 1;
	transform: none;
}

[data-ar-reveal="2"] { transition-delay: .09s; }
[data-ar-reveal="3"] { transition-delay: .18s; }
[data-ar-reveal="4"] { transition-delay: .27s; }

@media (prefers-reduced-motion: reduce) {
	[data-ar-reveal] {
		opacity: 1;
		transform: none;
		transition: none;
	}
}

/* Card hover lift, matching the live site's motion. */
.ar-project-card,
.ar-gallery-tile {
	transition: transform .25s ease, box-shadow .25s ease;
}

.ar-gallery-tile:hover {
	transform: translateY(-3px);
}

/* Figma fixed geometry ----------------------------------------------------- */

/* Figma sets these grids to fixed row heights; matching them keeps the
   vertical rhythm identical to the design. */
.ar-project-card { min-height: 700px; }
.ar-gallery-tile,
.ar-gallery-cta  { height: 320px; }

.ar-testimonials--featured .ar-testimonial,
.ar-testimonial-slider .ar-testimonial { min-height: 533px; justify-content: center; }

@media (max-width: 1024px) {
	.ar-project-card { min-height: 0; }
	.ar-testimonials--featured .ar-testimonial,
	.ar-testimonial-slider .ar-testimonial { min-height: 0; }
}

/* Feature / benefit icon boxes ------------------------------------------- */

/* Figma's card is exactly 210px: a 48px icon well, 20px gap, a 26px title,
   10px gap and a two-line 23px description. Elementor's icon-box defaults
   are looser, so the internals are pinned here. */
.ar-feature .elementor-icon-box-wrapper {
	display: block;
	text-align: left;
}

.ar-feature .elementor-icon-box-icon {
	margin: 0 0 20px;
}

.ar-feature .elementor-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	padding: 0;
	font-size: 24px;
	line-height: 1;
}

.ar-feature .elementor-icon svg,
.ar-feature .elementor-icon img {
	width: 24px;
	height: 24px;
	display: block;
}

.ar-feature .elementor-icon-box-title {
	margin: 0 0 10px;
	font-size: 19px;
	line-height: 26px;
}

.ar-feature .elementor-icon-box-description {
	margin: 0;
	font-size: 14px;
	line-height: 23px;
}

/* FAQ category tabs -------------------------------------------------------- */

.ar-faq-tabs .ar-tabs {
	flex-wrap: wrap;
	gap: 8px;
	border-bottom: 0;
	margin-bottom: 32px;
	justify-content: center;
}

.ar-faq-tabs .ar-tab {
	padding: 10px 18px;
	border: 1px solid var(--ar-border);
	border-radius: 999px;
	font-size: 14px;
	line-height: 20px;
	background: #fff;
	margin-bottom: 0;
}

.ar-faq-tabs .ar-tab.is-active {
	background: var(--ar-primary);
	border-color: var(--ar-primary);
	color: #fff;
}

.ar-faq-tabs .ar-tab.is-active .ar-tab__count {
	background: rgba(255, 255, 255, .22);
	color: #fff;
}

.ar-faq-panel {
	display: none;
}

.ar-faq-panel.is-active {
	display: block;
}

@media (max-width: 767px) {
	.ar-faq-tabs .ar-tabs {
		justify-content: flex-start;
	}

	.ar-faq-tabs .ar-tab {
		padding: 9px 14px;
		font-size: 13px;
	}
}

/* Link colours ------------------------------------------------------------ */

/* Elementor's kit styles links as `.elementor-kit-N a { color:#0C5CA5 }`,
   which outranks a single class — card buttons need element + class. */
.ar-project-card a.ar-btn--primary,
.ar-slider a.ar-btn--primary {
	color: #fff;
}

.ar-project-card a.ar-btn--primary:hover,
.ar-slider a.ar-btn--primary:hover {
	color: #fff;
}

.ar-project-card a.ar-btn--outline,
.ar-slider a.ar-btn--outline {
	color: var(--ar-primary);
}

.ar-gallery-grid a.ar-gallery-tile,
.ar-gallery-grid a.ar-gallery-cta {
	color: #fff;
}

.ar-gallery-grid a.ar-gallery-cta .ar-gallery-cta__subtitle {
	color: rgba(255, 255, 255, .62);
}

/* Lightbox ---------------------------------------------------------------- */

.ar-lightbox {
	position: fixed;
	inset: 0;
	z-index: 99999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 32px;
	background: rgba(5, 23, 41, .92);
	opacity: 0;
	visibility: hidden;
	transition: opacity .25s ease, visibility .25s ease;
}

.ar-lightbox.is-open {
	opacity: 1;
	visibility: visible;
}

.ar-lightbox__stage {
	position: relative;
	width: min(1120px, 100%);
	max-height: 100%;
	transform: scale(.97);
	transition: transform .25s ease;
}

.ar-lightbox.is-open .ar-lightbox__stage {
	transform: none;
}

.ar-lightbox__frame {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 9;
	background: #000;
	border-radius: 12px;
	overflow: hidden;
}

.ar-lightbox__frame iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

.ar-lightbox__stage img {
	display: block;
	width: 100%;
	max-height: 82vh;
	object-fit: contain;
	border-radius: 12px;
}

.ar-lightbox__caption {
	margin-top: 14px;
	font-family: var(--ar-body);
	font-size: 14px;
	line-height: 21px;
	color: rgba(255, 255, 255, .78);
	text-align: center;
}

.ar-lightbox__close {
	position: absolute;
	top: -46px;
	right: 0;
	width: 38px;
	height: 38px;
	border: 1px solid rgba(255, 255, 255, .34);
	border-radius: 999px;
	background: rgba(255, 255, 255, .1);
	cursor: pointer;
}

.ar-lightbox__close::before,
.ar-lightbox__close::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 15px;
	height: 2px;
	background: #fff;
}

.ar-lightbox__close::before { transform: translate(-50%, -50%) rotate(45deg); }
.ar-lightbox__close::after  { transform: translate(-50%, -50%) rotate(-45deg); }

.ar-lightbox__close:hover {
	background: rgba(255, 255, 255, .2);
}

@media (max-width: 767px) {
	.ar-lightbox { padding: 20px; }
	.ar-lightbox__close { top: -42px; }
}

/* 360 preview panel -------------------------------------------------------- */

/* Figma "360 Preview": 720x470 @14px radius, a 42% navy scrim, and a centred
   96px ring reading 360° over an "Interactive preview / Tap to explore" pair. */
.ar-tour--preview {
	position: relative;
	display: block;
	width: 100%;
	height: 470px;
	border-radius: 14px;
	overflow: hidden;
	background-size: cover;
	background-position: center center;
	background-color: var(--ar-navy);
	text-decoration: none;
	cursor: pointer;
}

.ar-tour__scrim {
	position: absolute;
	inset: 0;
	background: rgba(10, 39, 64, .42);
	transition: background-color .25s ease;
}

.ar-tour--preview:hover .ar-tour__scrim {
	background: rgba(10, 39, 64, .55);
}

.ar-tour__badge {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
}

.ar-tour__ring {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 96px;
	height: 96px;
	border-radius: 999px;
	background: rgba(255, 255, 255, .14);
	border: 1.5px solid rgba(255, 255, 255, .5);
	font-family: var(--ar-display);
	font-size: 24px;
	font-weight: 700;
	line-height: 30px;
	letter-spacing: -.24px;
	color: #fff;
	transition: transform .25s ease, background-color .25s ease;
}

.ar-tour--preview:hover .ar-tour__ring {
	transform: scale(1.06);
	background: rgba(255, 255, 255, .22);
}

.ar-tour__label {
	margin-top: 20px;
	font-family: var(--ar-body);
	font-size: 11px;
	font-weight: 600;
	line-height: 16px;
	letter-spacing: 1.54px;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .85);
}

.ar-tour__hint {
	margin-top: 6px;
	font-family: var(--ar-body);
	font-size: 14px;
	line-height: 20px;
	color: rgba(255, 255, 255, .6);
}

@media (max-width: 1024px) {
	.ar-tour--preview { height: 380px; }
}

@media (max-width: 767px) {
	.ar-tour--preview { height: 300px; }
	.ar-tour__ring { width: 76px; height: 76px; font-size: 20px; }
	.ar-tour__label { margin-top: 14px; }
}

/* Elementor text spacing --------------------------------------------------- */

/* Figma controls vertical rhythm with explicit spacers, so the browser's
   default 1em paragraph margins on Text Editor blocks were adding an extra
   ~16px above and below every one of them. */
.elementor-widget-text-editor > .elementor-widget-container > p:first-child,
.elementor-widget-text-editor p:first-child {
	margin-top: 0;
}

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

.elementor-widget-heading .elementor-heading-title {
	margin: 0;
}

/* ==========================================================================
   Figma inner pages (v1.8.0) — listing cards, chips, video, offices, posts,
   timeline, contents box, legal article, sticky mobile CTA
   ========================================================================== */

/* Shared text link "Label →" (Button / Text in Figma) */
.ar-textlink {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: var(--ar-body);
	font-size: 15px;
	font-weight: 600;
	line-height: 20px;
	color: var(--ar-primary);
	text-decoration: none;
	min-height: 40px;
}

.ar-textlink:hover,
.ar-textlink:focus {
	color: var(--ar-primary-deep);
}

.ar-btn--lg {
	padding: 17px 32px;
	font-size: 16px;
	line-height: 21px;
	flex: none;
}

/* Tag pill (HEAD OFFICE / VENTURES HERE / INVESTMENT) */
.ar-tag {
	display: inline-flex;
	align-items: center;
	padding: 7px 12px;
	border-radius: 999px;
	background: var(--ar-primary);
	color: #fff;
	font-family: var(--ar-body);
	font-size: 10px;
	font-weight: 600;
	line-height: 13px;
	letter-spacing: 1.2px;
	text-transform: uppercase;
	white-space: nowrap;
}

.ar-tag--soft {
	background: var(--ar-accent-soft);
	color: var(--ar-primary);
}

/* Listing card (Projects Hub) ------------------------------------------- */

.ar-project-list {
	display: flex;
	flex-direction: column;
	gap: 40px;
}

.ar-listing {
	display: grid;
	grid-template-columns: 560px minmax(0, 1fr);
	background: #fff;
	border: 1px solid var(--ar-border);
	border-radius: 16px;
	overflow: hidden;
}

.ar-listing__media {
	position: relative;
	display: block;
	min-height: 100%;
	background: var(--ar-navy);
}

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

.ar-listing__chips {
	position: absolute;
	top: 20px;
	left: 20px;
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
}

.ar-chip--solid {
	background: #fff;
	border: 0;
	border-radius: 999px;
	padding: 7px 14px;
	font-size: 12px;
	line-height: 16px;
	letter-spacing: .6px;
}

.ar-chip--primary { color: var(--ar-primary); }
.ar-chip--success { color: var(--ar-success, #0f7a5a); }
.ar-chip--alert   { color: #cf3a2b; }

.ar-listing__body {
	padding: 44px 48px;
	display: flex;
	flex-direction: column;
}

.ar-listing__title {
	margin: 0;
	font-family: var(--ar-display);
	font-size: 32px;
	font-weight: 700;
	line-height: 40px;
	letter-spacing: -.32px;
	color: var(--ar-text);
}

.ar-listing__title a {
	color: inherit;
	text-decoration: none;
}

.ar-listing__location {
	margin: 8px 0 0;
	font-family: var(--ar-body);
	font-size: 14px;
	line-height: 20px;
	color: var(--ar-muted);
}

.ar-listing__price {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin-top: 22px;
}

.ar-listing__price-label {
	font-family: var(--ar-body);
	font-size: 12px;
	font-weight: 600;
	line-height: 16px;
	letter-spacing: 1.44px;
	text-transform: uppercase;
	color: var(--ar-muted);
}

.ar-listing__price-value {
	font-family: var(--ar-display);
	font-size: 32px;
	font-weight: 700;
	line-height: 40px;
	letter-spacing: -.32px;
	color: var(--ar-primary);
}

.ar-listing__excerpt {
	margin-top: 22px;
	font-family: var(--ar-body);
	font-size: 16px;
	line-height: 27px;
	color: var(--ar-text-2);
}

.ar-listing__excerpt p { margin: 0; }

.ar-listing__stats {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	margin-top: 28px;
	padding: 24px 0;
	border-top: 1px solid var(--ar-border);
	border-bottom: 1px solid var(--ar-border);
}

.ar-listing__stat {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.ar-listing__stat-value {
	font-family: var(--ar-display);
	font-size: 22px;
	font-weight: 600;
	line-height: 28px;
	letter-spacing: -.22px;
	color: var(--ar-text);
}

.ar-listing__stat-label {
	font-family: var(--ar-body);
	font-size: 12px;
	font-weight: 600;
	line-height: 16px;
	letter-spacing: 1.44px;
	text-transform: uppercase;
	color: var(--ar-muted);
}

.ar-listing__actions {
	display: flex;
	align-items: center;
	gap: 24px;
	margin-top: 28px;
	flex-wrap: wrap;
}

.ar-listing__actions .ar-textlink {
	font-size: 16px;
}

/* Walkthrough video block --------------------------------------------- */

.ar-video {
	position: relative;
	display: block;
	width: 100%;
	height: 640px;
	border-radius: 16px;
	overflow: hidden;
	background: var(--ar-navy);
	text-decoration: none;
	cursor: pointer;
}

.ar-video img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform .4s ease;
}

.ar-video:hover img { transform: scale(1.03); }

.ar-video__scrim {
	position: absolute;
	inset: 0;
	background: linear-gradient(to bottom, rgba(5, 23, 41, 0) 40%, rgba(5, 23, 41, .78) 100%);
	pointer-events: none;
}

.ar-video__play {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 88px;
	height: 88px;
	transform: translate(-50%, -50%);
	border-radius: 999px;
	background: rgba(255, 255, 255, .18);
	border: 1.5px solid rgba(255, 255, 255, .6);
	backdrop-filter: blur(2px);
	transition: transform .25s ease, background-color .25s ease;
}

.ar-video:hover .ar-video__play {
	transform: translate(-50%, -50%) scale(1.06);
	background: rgba(255, 255, 255, .28);
}

.ar-video__play::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 54%;
	transform: translate(-50%, -50%);
	border-left: 22px solid #fff;
	border-top: 13px solid transparent;
	border-bottom: 13px solid transparent;
}

.ar-video__caption {
	position: absolute;
	left: 32px;
	right: 32px;
	bottom: 30px;
	font-family: var(--ar-display);
	font-size: 20px;
	font-weight: 600;
	line-height: 28px;
	letter-spacing: -.2px;
	color: #fff;
}

.ar-lightbox__frame video {
	width: 100%;
	height: 100%;
	display: block;
	background: #000;
}

/* Stacked gallery (Gallery page) --------------------------------------- */

.ar-gallery-videos { margin-top: 64px; }

.ar-gallery-videos__heading {
	margin: 0 0 32px;
	font-family: var(--ar-display);
	font-size: 32px;
	font-weight: 800;
	line-height: 40px;
	letter-spacing: -.64px;
	color: var(--ar-text);
}

.ar-gallery-grid--videos .ar-gallery-tile { border-radius: 14px; }
.ar-gallery-grid--videos .ar-gallery-tile__title { font-size: 18px; line-height: 24px; }
.ar-gallery-grid--videos .ar-gallery-tile__play,
.ar-gallery--stacked .ar-gallery-tile__play { width: 88px; height: 88px; }
.ar-gallery-grid--videos .ar-gallery-tile__play::after { border-left-width: 22px; border-top-width: 13px; border-bottom-width: 13px; }
.ar-gallery--stacked .ar-gallery-tile__caption { left: 24px; right: 24px; bottom: 24px; }

/* Office map ----------------------------------------------------------- */

.ar-offices__layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 480px;
	gap: 40px;
	align-items: stretch;
}

.ar-offices__map {
	position: relative;
	min-height: 560px;
	border-radius: 16px;
	border: 1px solid var(--ar-border);
	background: var(--ar-bg-alt);
	overflow: hidden;
}

.ar-offices__tabs {
	position: absolute;
	top: 24px;
	left: 24px;
	z-index: 2;
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
}

.ar-offices__tab,
.ar-offices .ar-offices__tab {
	padding: 10px 16px;
	border-radius: 999px;
	border: 1px solid var(--ar-border);
	background: #fff;
	color: var(--ar-text);
	font-family: var(--ar-body);
	font-size: 13px;
	font-weight: 600;
	line-height: 18px;
	cursor: pointer;
	white-space: nowrap;
	box-shadow: 0 4px 14px rgba(12, 39, 64, .08);
}

.ar-offices .ar-offices__tab.is-active {
	background: var(--ar-primary);
	border-color: var(--ar-primary);
	color: #fff;
}

.ar-offices__frame {
	display: none;
	position: absolute;
	inset: 0;
}

.ar-offices__frame.is-active { display: block; }

.ar-offices__frame iframe {
	width: 100%;
	height: 100%;
	border: 0;
	display: block;
}

.ar-offices__map-caption {
	position: absolute;
	left: 24px;
	bottom: 20px;
	padding: 8px 14px;
	border-radius: 999px;
	background: rgba(255, 255, 255, .92);
	font-family: var(--ar-body);
	font-size: 13px;
	font-weight: 500;
	line-height: 18px;
	color: var(--ar-text-2);
}

.ar-offices__card {
	display: none;
	padding: 36px;
	border-radius: 14px;
	border: 1px solid var(--ar-border);
	background: #fff;
	box-shadow: 0 12px 32px rgba(12, 39, 64, .08);
}

.ar-offices__card.is-active { display: block; }

.ar-offices__name {
	margin: 16px 0 8px;
	font-family: var(--ar-display);
	font-size: 26px;
	font-weight: 700;
	line-height: 34px;
	letter-spacing: -.26px;
	color: var(--ar-text);
}

.ar-offices__rows {
	margin: 0;
	border-top: 1px solid var(--ar-border);
}

.ar-offices__row {
	padding: 18px 0;
	border-bottom: 1px solid var(--ar-border);
}

.ar-offices__row dt {
	font-family: var(--ar-body);
	font-size: 11px;
	font-weight: 600;
	line-height: 15px;
	letter-spacing: 1.32px;
	text-transform: uppercase;
	color: var(--ar-primary);
}

.ar-offices__row dd {
	margin: 8px 0 0;
	font-family: var(--ar-body);
	font-size: 15px;
	line-height: 24px;
	color: var(--ar-text);
}

.ar-offices__row dd.is-strong { font-weight: 600; }
.ar-offices__row dd a { color: inherit; text-decoration: none; }

.ar-offices__card .ar-textlink { margin-top: 10px; }

.ar-offices__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
	margin-top: 32px;
}

.ar-office-card {
	padding: 28px;
	border-radius: 12px;
	border: 1px solid var(--ar-border);
	background: #fff;
}

.ar-office-card__top {
	display: flex;
	align-items: center;
	gap: 10px;
}

.ar-office-card__city {
	font-family: var(--ar-body);
	font-size: 13px;
	line-height: 18px;
	color: var(--ar-muted);
}

.ar-office-card__title {
	margin: 16px 0 8px;
	font-family: var(--ar-display);
	font-size: 22px;
	font-weight: 600;
	line-height: 28px;
	letter-spacing: -.22px;
	color: var(--ar-text);
}

.ar-office-card__address {
	margin: 0;
	font-family: var(--ar-body);
	font-size: 15px;
	line-height: 24px;
	color: var(--ar-text-2);
}

/* Post cards ----------------------------------------------------------- */

.ar-posts {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 32px;
}

.ar-post-card {
	display: flex;
	flex-direction: column;
	border-radius: 14px;
	border: 1px solid var(--ar-border);
	background: #fff;
	overflow: hidden;
	transition: box-shadow .2s ease, transform .2s ease;
}

.ar-post-card:hover {
	box-shadow: 0 14px 34px rgba(12, 39, 64, .12);
	transform: translateY(-2px);
}

.ar-post-card__cover {
	display: block;
	height: 376px;
	background: var(--ar-bg-alt);
}

.ar-post-card__cover img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.ar-post-card__body {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	padding: 28px 32px 32px;
}

.ar-post-card__meta {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
}

.ar-post-card__date {
	font-family: var(--ar-body);
	font-size: 13px;
	line-height: 18px;
	color: var(--ar-muted);
}

.ar-post-card__title {
	margin: 16px 0 0;
	font-family: var(--ar-display);
	font-size: 24px;
	font-weight: 700;
	line-height: 30px;
	letter-spacing: -.24px;
	color: var(--ar-text);
}

.ar-post-card__title a { color: inherit; text-decoration: none; }
.ar-post-card__title a:hover { color: var(--ar-primary); }

.ar-post-card__excerpt {
	margin: 12px 0 0;
	font-family: var(--ar-body);
	font-size: 15px;
	line-height: 25px;
	color: var(--ar-text-2);
}

.ar-post-card .ar-textlink { margin-top: 12px; }

/* Milestones timeline -------------------------------------------------- */

.ar-timeline__track {
	display: grid;
	grid-template-columns: repeat(var(--ar-timeline-cols, 5), minmax(0, 1fr));
	gap: 24px;
	margin-bottom: 20px;
}

.ar-timeline__node {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	height: 18px;
}

.ar-timeline__node::before,
.ar-timeline__node::after {
	content: "";
	position: absolute;
	top: 8px;
	height: 2px;
	background: var(--ar-border-strong);
}

.ar-timeline__node::before { left: -12px; right: calc(50% + 9px); }
.ar-timeline__node::after { left: calc(50% + 9px); right: -12px; }
.ar-timeline__node.is-first::before,
.ar-timeline__node.is-last::after { display: none; }

.ar-timeline__dot {
	position: relative;
	z-index: 1;
	width: 18px;
	height: 18px;
	border-radius: 999px;
	background: #fff;
	border: 2px solid var(--ar-primary);
}

.ar-timeline__grid {
	display: grid;
	grid-template-columns: repeat(var(--ar-timeline-cols, 5), minmax(0, 1fr));
	gap: 24px;
}

.ar-timeline__card {
	padding: 26px 24px;
	border-radius: 12px;
	border: 1px solid var(--ar-border);
	background: #fff;
}

.ar-timeline__year {
	display: block;
	font-family: var(--ar-display);
	font-size: 30px;
	font-weight: 800;
	line-height: 36px;
	letter-spacing: -.6px;
	color: var(--ar-primary);
}

.ar-timeline__card p {
	margin: 10px 0 0;
	font-family: var(--ar-body);
	font-size: 14px;
	line-height: 23px;
	color: var(--ar-text-2);
}

/* Contents box + legal article ----------------------------------------- */

.ar-toc {
	position: sticky;
	top: 110px;
	padding: 28px;
	border-radius: 12px;
	background: var(--ar-bg-alt);
}

.ar-toc__heading {
	display: block;
	margin-bottom: 16px;
	font-family: var(--ar-body);
	font-size: 11px;
	font-weight: 600;
	line-height: 15px;
	letter-spacing: 1.32px;
	text-transform: uppercase;
	color: var(--ar-primary);
}

.ar-toc ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.ar-toc a {
	display: block;
	font-family: var(--ar-body);
	font-size: 14px;
	font-weight: 500;
	line-height: 20px;
	color: var(--ar-text-2);
	text-decoration: none;
	padding: 2px 0;
}

.ar-toc a.is-active,
.ar-toc a:hover { color: var(--ar-primary); }

.ar-legal-anchor { scroll-margin-top: 110px; }

.ar-legal ul {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.ar-legal li {
	position: relative;
	padding-left: 24px;
	font-family: var(--ar-body);
	font-size: 16px;
	line-height: 27px;
	color: var(--ar-text-2);
}

.ar-legal li::before {
	content: "•";
	position: absolute;
	left: 0;
	top: 0;
	font-weight: 600;
	color: var(--ar-primary);
}

/* Sticky mobile CTA bar ------------------------------------------------ */

.ar-sticky-cta {
	display: none;
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 90;
	gap: 12px;
	padding: 12px 20px calc(12px + env(safe-area-inset-bottom));
	background: #fff;
	border-top: 1px solid var(--ar-border);
	box-shadow: 0 -8px 24px rgba(12, 39, 64, .08);
}

.ar-sticky-cta__phone {
	flex: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 54px;
	height: 54px;
	border-radius: 10px;
	border: 1px solid var(--ar-border-strong);
	color: var(--ar-primary);
	background: #fff;
}

.ar-sticky-cta__btn {
	flex: 1 1 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 54px;
	border-radius: 10px;
	background: var(--ar-primary);
	color: #fff;
	font-family: var(--ar-body);
	font-size: 16px;
	font-weight: 600;
	text-decoration: none;
}

.ar-sticky-cta__btn:hover,
.ar-sticky-cta__btn:focus { background: var(--ar-primary-deep); color: #fff; }

/* Tablet ----------------------------------------------------------------- */

@media (max-width: 1024px) {
	.ar-listing { grid-template-columns: minmax(0, 1fr); }
	.ar-listing__media { height: 300px; min-height: 0; }
	.ar-listing__body { padding: 32px; }
	.ar-listing__stats { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 20px; }
	.ar-video { height: 440px; }
	.ar-offices__layout { grid-template-columns: minmax(0, 1fr); }
	.ar-offices__map { min-height: 420px; }
	.ar-post-card__cover { height: 280px; }
	.ar-timeline__track { display: none; }
	.ar-timeline__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ar-toc { position: static; }
}

/* Mobile ----------------------------------------------------------------- */

@media (max-width: 767px) {
	.ar-project-list { gap: 24px; }
	.ar-listing__media { height: 240px; }
	.ar-listing__body { padding: 24px 20px 28px; }
	.ar-listing__title { font-size: 26px; line-height: 32px; }
	.ar-listing__price-value { font-size: 26px; line-height: 32px; }
	.ar-listing__excerpt { font-size: 15px; line-height: 25px; }
	.ar-listing__actions { flex-direction: column; align-items: stretch; gap: 14px; }
	.ar-listing__actions .ar-btn { width: 100%; }
	.ar-listing__actions .ar-textlink { justify-content: center; }
	.ar-video { height: 240px; border-radius: 12px; }
	.ar-video__play { width: 64px; height: 64px; }
	.ar-video__play::after { border-left-width: 16px; border-top-width: 10px; border-bottom-width: 10px; }
	.ar-video__caption { left: 16px; right: 16px; bottom: 16px; font-size: 15px; line-height: 22px; }
	.ar-gallery-videos { margin-top: 40px; }
	.ar-gallery-videos__heading { font-size: 26px; line-height: 32px; margin-bottom: 20px; }
	.ar-offices__map { min-height: 380px; }
	.ar-offices__tabs { top: 16px; left: 16px; right: 16px; }
	.ar-offices__card { padding: 24px 20px; }
	.ar-offices__grid { grid-template-columns: minmax(0, 1fr); margin-top: 24px; }
	.ar-posts { gap: 24px; }
	.ar-post-card__cover { height: 210px; }
	.ar-post-card__body { padding: 22px 20px 24px; }
	.ar-post-card__title { font-size: 20px; line-height: 27px; }
	.ar-timeline__grid { grid-template-columns: minmax(0, 1fr); gap: 16px; }
	.ar-sticky-cta { display: flex; }
	body { padding-bottom: 80px; }
}

/* The kit's `.elementor-kit-N a` outranks a single class: keep button text white. */
.ar-listing__actions a.ar-btn--primary,
.ar-project-card__actions a.ar-btn--primary,
.ar-sticky-cta a.ar-sticky-cta__btn { color: #fff; }
.ar-listing__actions a.ar-textlink,
.ar-post-card a.ar-textlink,
.ar-offices a.ar-textlink { color: var(--ar-primary); }

/* Card titles are links: keep them navy against the kit link colour. */
.ar-project-list .ar-listing__title a,
.ar-posts .ar-post-card__title a,
.ar-offices .ar-offices__row dd a { color: var(--ar-text); }
.ar-project-list .ar-listing__title a:hover,
.ar-posts .ar-post-card__title a:hover { color: var(--ar-primary); }

/* Kit heading rules (.elementor-kit-N h3) outrank a lone class: pin the card heading sizes. */
.ar-project-list h3.ar-listing__title { font-size: 32px; line-height: 40px; font-weight: 700; letter-spacing: -.32px; margin: 0; }
.ar-posts h3.ar-post-card__title { font-size: 24px; line-height: 30px; font-weight: 700; letter-spacing: -.24px; margin: 16px 0 0; }
.ar-offices h3.ar-offices__name { font-size: 26px; line-height: 34px; font-weight: 700; letter-spacing: -.26px; margin: 16px 0 8px; }
.ar-offices h3.ar-office-card__title { font-size: 22px; line-height: 28px; font-weight: 600; letter-spacing: -.22px; margin: 16px 0 8px; }
.ar-gallery h3.ar-gallery-videos__heading { font-size: 32px; line-height: 40px; font-weight: 800; letter-spacing: -.64px; margin: 0 0 32px; }
@media (max-width: 767px) {
	.ar-project-list h3.ar-listing__title { font-size: 26px; line-height: 32px; }
	.ar-posts h3.ar-post-card__title { font-size: 20px; line-height: 27px; }
	.ar-offices h3.ar-offices__name { font-size: 22px; line-height: 28px; }
	.ar-gallery h3.ar-gallery-videos__heading { font-size: 26px; line-height: 32px; }
}

/* Bleed the Google embed so its own place card sits outside the panel; the pin stays in view. */
.elementor-widget-araddhya-offices, .ar-offices, .ar-offices__layout, .ar-offices__map { width: 100%; min-width: 0; }
.ar-offices__frame iframe { width: calc(100% + 360px); height: calc(100% + 160px); max-width: none; transform: translate(0,0); }

/* Kit link typography must not shrink heading links inside cards. */
.ar-listing__title a,
.ar-post-card__title a,
.ar-office-card__title a,
.ar-offices__name a { font: inherit; letter-spacing: inherit; }

/* Elementor's `.elementor img { height: auto }` outranks the card rule: force the cover fit. */
.ar-project-list .ar-listing__media img,
.elementor .ar-project-list .ar-listing__media img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
}
.ar-project-list .ar-listing__media { min-height: 420px; }
@media (max-width: 1024px) { .ar-project-list .ar-listing__media { min-height: 0; height: 300px; } }
@media (max-width: 767px) { .ar-project-list .ar-listing__media { height: 240px; } }

.ar-project-list h3.ar-listing__title a,
.ar-posts h3.ar-post-card__title a,
.ar-offices h3.ar-office-card__title a { font: inherit; letter-spacing: inherit; }

/* The kit's `.elementor-kit-N button` (blue fill, padding) restyled the slider arrows. */
.ar-testimonial-slider button.ar-slider__nav,
.ar-slider button.ar-slider__nav {
	display: block;
	width: 48px;
	height: 48px;
	min-width: 0;
	min-height: 0;
	padding: 0;
	border: 1px solid var(--ar-border-strong);
	border-radius: 999px;
	background: #fff;
	background-color: #fff;
	color: var(--ar-primary);
	box-shadow: 0 6px 18px rgba(12, 39, 64, .10);
	line-height: 0;
	font-size: 0;
}

.ar-testimonial-slider button.ar-slider__nav::after,
.ar-slider button.ar-slider__nav::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 9px;
	height: 9px;
	border: solid var(--ar-primary);
	border-width: 2px 2px 0 0;
}

.ar-testimonial-slider button.ar-slider__prev::after,
.ar-slider button.ar-slider__prev::after { transform: translate(-40%, -50%) rotate(-135deg); }
.ar-testimonial-slider button.ar-slider__next::after,
.ar-slider button.ar-slider__next::after { transform: translate(-60%, -50%) rotate(45deg); }

.ar-testimonial-slider button.ar-slider__nav:hover,
.ar-testimonial-slider button.ar-slider__nav:focus-visible,
.ar-slider button.ar-slider__nav:hover,
.ar-slider button.ar-slider__nav:focus-visible {
	background: var(--ar-primary);
	background-color: var(--ar-primary);
	border-color: var(--ar-primary);
}

.ar-testimonial-slider button.ar-slider__nav:hover::after,
.ar-testimonial-slider button.ar-slider__nav:focus-visible::after,
.ar-slider button.ar-slider__nav:hover::after,
.ar-slider button.ar-slider__nav:focus-visible::after {
	border-color: #fff;
}

/* Kit `a:hover` colour (deep blue) made primary button labels vanish on hover. */
.elementor a.ar-btn--primary:hover,
.elementor a.ar-btn--primary:focus,
.elementor a.ar-btn--primary:active,
.elementor .ar-sticky-cta a.ar-sticky-cta__btn:hover,
body a.ar-sticky-cta__btn:hover,
.elementor .ar-hero a.ar-hero__btn--primary:hover,
.elementor .ar-hero a.ar-hero__btn--primary:focus {
	color: #fff;
	background: var(--ar-primary-deep);
	background-color: var(--ar-primary-deep);
	border-color: var(--ar-primary-deep);
}

.elementor a.ar-btn--outline:hover,
.elementor a.ar-btn--outline:focus,
.elementor a.ar-textlink:hover,
.elementor a.ar-textlink:focus {
	color: var(--ar-primary);
}

.elementor .ar-hero a.ar-hero__btn--outline:hover,
.elementor .ar-hero a.ar-hero__btn--outline:focus {
	color: var(--ar-navy);
	background: #fff;
	background-color: #fff;
	border-color: #fff;
}

/* Blog single (theme template): the kit's 64px H1 outranked the theme title size and
   widened the layout viewport on phones. */
body h1.ar-single__title {
	font-size: 44px;
	line-height: 1.15;
	letter-spacing: -1.1px;
	overflow-wrap: anywhere;
}

.ar-single .ar-container {
	padding-left: 20px;
	padding-right: 20px;
}

.ar-single__content img,
.ar-single__content iframe,
.ar-single__content video {
	max-width: 100%;
	height: auto;
}

@media (max-width: 767px) {
	body h1.ar-single__title {
		font-size: 30px;
		letter-spacing: -0.6px;
	}

	.ar-single {
		padding: 48px 0 72px;
	}
}
