/**
 * Allegiance theme styles.
 *
 * Layout follows the client's reference (an elder-care theme): square photos,
 * no card shadows, pill buttons, quiet grey body text, serif headings.
 * Colors come from the client's palette: teal green leads, navy and coral
 * support it (roughly one part navy to three parts teal).
 * Coral-deep (#F07260) is the client's chosen orange for buttons and fills.
 * Small coral text uses the darker coral-ink so it stays readable on white.
 */

:root {
	--navy: #233460;
	--navy-deep: #1A2748;
	--teal: #85A6AD;
	--teal-deep: #4A6C74;
	--teal-light: #B5D5E1;
	--coral: #DD755C;
	--coral-deep: #F07260;
	--coral-ink: #C4523C;
	--mist: #EAF3F6;
	--paper: #F4F8FA;
	--white: #FFFFFF;
	--ink: #1D2433;
	--body: #5E6573;
	--line: #D8E4E8;
	--whatsapp: #25D366;

	--serif: "Gelasio", Georgia, serif;
	--sans: "DM Sans", system-ui, sans-serif;

	--wrap: 1180px;
	--gutter: clamp(20px, 4vw, 40px);
	--section: clamp(72px, 9vw, 112px);
	--header-h: 88px;
	--contact-bar-height: 56px;
}

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

* {
	margin: 0;
}

html {
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--header-h) + 16px);
}

body {
	min-height: 100vh;
	overflow-x: hidden;
	background-color: var(--white);
	color: var(--body);
	font-family: var(--sans);
	font-size: 17px;
	line-height: 1.7;
	-webkit-font-smoothing: antialiased;
}

img,
svg,
video,
iframe {
	display: block;
	max-width: 100%;
}

h1,
h2,
h3,
h4 {
	color: var(--ink);
	font-family: var(--serif);
	font-weight: 500;
	line-height: 1.15;
	letter-spacing: -0.01em;
}

a {
	color: var(--navy);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.2em;
}

a:hover {
	color: var(--coral-ink);
}

:focus-visible {
	outline: 2px solid var(--coral);
	outline-offset: 3px;
}

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.wp-site-blocks > * {
	margin-block: 0;
}

.ac-main,
.ac-main > * {
	max-width: none;
	margin: 0;
}

.ac-wrap {
	width: 100%;
	max-width: calc(var(--wrap) + var(--gutter) * 2);
	margin-inline: auto;
	padding-inline: var(--gutter);
}

.ac-section {
	padding-block: var(--section);
}

.ac-section--mist {
	background-color: var(--mist);
}

.ac-section--paper {
	background-color: var(--paper);
}

/* Type */

.ac-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 18px;
	margin: 0 0 16px;
	color: var(--ink);
	font-family: var(--serif);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.16em;
	line-height: 1;
	text-transform: uppercase;
}

.ac-eyebrow--rule::before {
	content: "";
	width: 40px;
	height: 1px;
	background-color: var(--coral);
}

.ac-h2 {
	font-size: clamp(2rem, 1.2rem + 2.6vw, 2.9rem);
	text-wrap: balance;
}

.ac-h3 {
	font-size: 1.5rem;
}

.ac-lead {
	color: var(--body);
	font-size: 1.125rem;
}

.ac-head {
	max-width: 640px;
	margin-bottom: clamp(36px, 5vw, 56px);
}

.ac-head--center {
	margin-inline: auto;
	text-align: center;
}

.ac-head p:not(.ac-eyebrow) {
	margin-top: 16px;
}

.ac-accent {
	color: var(--coral-ink);
}

/* Buttons */

.ac-btn,
.ac-btn:visited {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 48px;
	padding: 12px 34px;
	border: 0;
	border-radius: 999px;
	background-color: var(--coral-deep);
	color: var(--white);
	font-family: var(--serif);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
	transition: background-color 250ms ease, color 250ms ease;
}

.ac-btn:hover {
	background-color: var(--teal-deep);
	color: var(--white);
}

.ac-btn--teal,
.ac-btn--teal:visited {
	background-color: var(--teal-deep);
}

.ac-btn--light,
.ac-btn--light:visited {
	background-color: var(--white);
	color: var(--navy);
}

.ac-btn--light:hover {
	background-color: var(--coral-deep);
	color: var(--white);
}

.ac-btn svg {
	width: 16px;
	height: 16px;
}

.ac-btns {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-top: 32px;
}

.ac-more,
.ac-more:visited {
	display: inline-block;
	padding-bottom: 4px;
	border-bottom: 1px solid var(--ink);
	color: var(--ink);
	font-family: var(--serif);
	font-size: 15px;
	font-weight: 600;
	text-decoration: none;
}

.ac-more:hover {
	border-color: var(--coral-deep);
	color: var(--coral-ink);
}

.ac-arrow,
.ac-arrow:visited {
	display: inline-grid;
	place-items: center;
	width: 34px;
	height: 34px;
	border: 1px solid var(--line);
	border-radius: 50%;
	color: var(--ink);
	text-decoration: none;
	transition: background-color 250ms ease, border-color 250ms ease, color 250ms ease;
}

.ac-arrow svg {
	width: 14px;
	height: 14px;
}

.ac-arrow:hover,
a:hover > .ac-arrow {
	border-color: var(--coral-deep);
	background-color: var(--coral-deep);
	color: var(--white);
}

/* Header */

.wp-block-template-part:has(> .ac-header) {
	position: sticky;
	top: 0;
	z-index: 100;
}

body.admin-bar .wp-block-template-part:has(> .ac-header) {
	top: 32px;
}

.ac-header {
	width: 100%;
	background-color: var(--white);
	transition: background-color 300ms ease, box-shadow 300ms ease;
}

.ac-header__inner {
	display: flex;
	align-items: center;
	gap: 32px;
	height: var(--header-h);
	max-width: none;
	padding-inline: clamp(20px, 3vw, 52px);
}

.ac-logo {
	position: relative;
	display: block;
	flex: none;
	width: 210px;
}

.ac-logo img {
	width: 100%;
	height: auto;
	transition: opacity 300ms ease;
}

.ac-logo__light {
	position: absolute;
	inset: 0;
	opacity: 0;
}

.ac-nav {
	margin-left: auto;
}

.ac-nav__list {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ac-nav__list > li {
	position: relative;
}

.ac-nav__list > li > a,
.ac-nav__parent > a {
	position: relative;
	display: inline-block;
	padding: 8px 12px;
	color: var(--ink);
	font-family: var(--serif);
	font-size: 15px;
	font-weight: 500;
	line-height: 1.2;
	text-decoration: none;
}

.ac-nav__parent {
	display: inline-flex;
	align-items: center;
}

/* Active and hover state: a short rule under the link. */
.ac-nav__list > li > a::after,
.ac-nav__parent > a::after {
	content: "";
	position: absolute;
	right: 12px;
	bottom: 2px;
	left: 12px;
	height: 1px;
	background-color: currentColor;
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform 250ms ease;
}

.ac-nav__list > li > a:hover::after,
.ac-nav__list > li > a[aria-current="page"]::after,
.ac-nav__parent > a:hover::after,
.ac-nav__parent > a[aria-current="page"]::after {
	transform: scaleX(1);
}

.ac-nav__sub-btn {
	display: inline-grid;
	place-items: center;
	width: 22px;
	height: 22px;
	margin-left: -8px;
	padding: 0;
	border: 0;
	background: none;
	color: inherit;
	cursor: pointer;
}

.ac-nav__chev {
	width: 9px;
	height: 9px;
	transition: transform 200ms ease;
}

.ac-sub {
	position: absolute;
	top: calc(100% + 12px);
	left: 0;
	z-index: 5;
	min-width: 240px;
	margin: 0;
	padding: 14px 0;
	background-color: var(--white);
	box-shadow: 0 14px 36px -18px rgba(26, 39, 72, 0.35);
	list-style: none;
	opacity: 0;
	visibility: hidden;
	transform: translateY(8px);
	transition: opacity 200ms ease, transform 200ms ease, visibility 200ms ease;
}

.ac-sub::before {
	content: "";
	position: absolute;
	top: -14px;
	right: 0;
	left: 0;
	height: 14px;
}

.ac-sub a,
.ac-sub a:visited {
	display: block;
	padding: 8px 26px;
	color: var(--body);
	font-family: var(--sans);
	font-size: 15px;
	line-height: 1.4;
	text-decoration: none;
	transition: color 150ms ease;
}

.ac-sub a:hover,
.ac-sub a[aria-current="page"] {
	color: var(--coral-ink);
}

.ac-header__actions {
	display: flex;
	align-items: center;
	gap: 22px;
	padding-left: 18px;
}

.ac-phone,
.ac-phone:visited {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: var(--ink);
	font-family: var(--serif);
	font-size: 15px;
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
}

.ac-phone svg {
	width: 15px;
	height: 15px;
	color: var(--coral-ink);
}

.ac-header__actions .ac-btn {
	min-height: 42px;
	padding: 10px 24px;
	font-size: 14px;
}

.ac-toggle {
	display: none;
	width: 44px;
	height: 44px;
	margin-left: auto;
	padding: 0;
	border: 0;
	background: none;
	color: var(--ink);
	cursor: pointer;
}

.ac-toggle span {
	display: block;
	width: 24px;
	height: 2px;
	margin: 5px auto;
	background-color: currentColor;
}

.ac-header.is-scrolled {
	box-shadow: 0 6px 24px -14px rgba(26, 39, 72, 0.3);
}

@media (width >= 62rem) {
	.has-sub:hover > .ac-sub,
	.has-sub:focus-within > .ac-sub,
	.has-sub.is-open > .ac-sub {
		opacity: 1;
		visibility: visible;
		transform: none;
	}

	.has-sub:hover .ac-nav__chev,
	.has-sub.is-open .ac-nav__chev {
		transform: rotate(180deg);
	}

	.ac-nav__close,
	.ac-nav__footer {
		display: none;
	}
}

@media (width < 75rem) {
	.ac-phone span {
		display: none;
	}
}

@media (width < 62rem) {
	:root {
		--header-h: 74px;
	}

	.ac-logo {
		width: 146px;
	}

	.ac-toggle {
		display: block;
	}

	.ac-header__actions {
		display: none;
	}

	.ac-nav {
		position: fixed;
		inset: 0;
		z-index: 200;
		display: none;
		flex-direction: column;
		margin: 0;
		padding: 92px var(--gutter) 40px;
		overflow-y: auto;
		background-color: var(--teal-deep);
	}

	.ac-nav.is-open {
		display: flex;
	}

	.ac-nav__close {
		position: absolute;
		top: 16px;
		right: var(--gutter);
		display: grid;
		place-items: center;
		width: 44px;
		height: 44px;
		border: 0;
		background: none;
		color: var(--white);
		cursor: pointer;
	}

	.ac-nav__close svg {
		width: 22px;
		height: 22px;
	}

	.ac-nav__list {
		flex-direction: column;
		align-items: stretch;
		gap: 0;
	}

	.ac-nav__list > li {
		border-bottom: 1px solid rgba(255, 255, 255, 0.12);
	}

	.ac-nav__parent {
		display: flex;
		justify-content: space-between;
	}

	.ac-nav__list > li > a,
	.ac-nav__parent > a {
		display: block;
		padding: 16px 0;
		color: var(--white);
		font-size: 1.75rem;
	}

	.ac-nav__list > li > a::after,
	.ac-nav__parent > a::after {
		content: none;
	}

	.ac-nav__list > li > a[aria-current="page"],
	.ac-nav__parent > a[aria-current="page"] {
		color: var(--coral);
	}

	.ac-nav__sub-btn {
		width: 44px;
		height: 44px;
		margin: 0;
		color: var(--white);
	}

	.ac-nav__chev {
		width: 14px;
		height: 14px;
	}

	.has-sub.is-open .ac-nav__chev {
		transform: rotate(180deg);
	}

	.ac-sub {
		position: static;
		display: none;
		min-width: 0;
		padding: 0 0 14px;
		background: none;
		box-shadow: none;
		opacity: 1;
		visibility: visible;
		transform: none;
	}

	.ac-sub::before {
		content: none;
	}

	.has-sub.is-open > .ac-sub {
		display: block;
	}

	.ac-sub a,
	.ac-sub a:visited {
		padding: 8px 0;
		color: rgba(255, 255, 255, 0.88);
		font-size: 1.0625rem;
	}

	.ac-sub a:hover,
	.ac-sub a[aria-current="page"] {
		color: var(--white);
	}

	.ac-nav__footer {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		gap: 18px;
		margin-top: 32px;
	}

	.ac-nav__footer .ac-nav__tel,
	.ac-nav__footer .ac-nav__tel:visited {
		color: var(--white);
		font-family: var(--serif);
		font-size: 1.75rem;
		text-decoration: none;
	}

	body.nav-open {
		overflow: hidden;
	}
}

/* Hero (home): full-screen photo, centered copy. */

.ac-hero {
	position: relative;
	display: grid;
	place-items: center;
	min-height: max(620px, 100svh);
	padding-block: calc(var(--header-h) + 40px) 100px;
	overflow: hidden;
	background-color: var(--teal-deep);
	color: var(--white);
	text-align: center;
}

.ac-hero__media {
	position: absolute;
	inset: 0;
	margin: 0;
}

.ac-hero__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 50% 30%;
	transform: scale(1.05);
	animation: ac-zoom 14s ease-out forwards;
}

/* A 55% navy wash plus a soft centre pool keeps white text above 4.5:1. */
.ac-hero__media::after {
	content: "";
	position: absolute;
	inset: 0;
	background:
		radial-gradient(ellipse 55% 45% at 50% 50%, rgba(30, 52, 58, 0.3), transparent 70%),
		rgba(30, 52, 58, 0.55);
}

.ac-hero__content {
	position: relative;
	z-index: 1;
	max-width: 760px;
}

.ac-hero .ac-eyebrow {
	color: var(--white);
}

.ac-hero h1 {
	color: var(--white);
	font-size: clamp(2.4rem, 1.4rem + 3.6vw, 3.6rem);
	font-weight: 600;
	line-height: 1.12;
	text-wrap: balance;
}

.ac-hero__text {
	max-width: 56ch;
	margin: 20px auto 0;
	color: rgba(255, 255, 255, 0.92);
	font-size: 1.0625rem;
}

.ac-hero .ac-btns {
	justify-content: center;
}

.ac-hero__scroll,
.ac-hero__scroll:visited {
	position: absolute;
	right: clamp(20px, 4vw, 60px);
	bottom: 36px;
	z-index: 1;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: var(--white);
	font-family: var(--serif);
	font-size: 14px;
	text-decoration: none;
}

.ac-hero__scroll svg {
	width: 12px;
	height: 12px;
	animation: ac-bob 2s ease-in-out infinite;
}

@keyframes ac-zoom {
	to { transform: scale(1); }
}

@keyframes ac-bob {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(4px); }
}

/* Inner page title band */

.ac-title {
	padding-block: clamp(64px, 8vw, 96px) clamp(48px, 6vw, 72px);
	background-color: var(--paper);
	text-align: center;
}

.ac-title h1,
.ac-title .wp-block-post-title {
	font-size: clamp(2.4rem, 1.6rem + 2.6vw, 3.4rem);
}

.ac-title__sub {
	max-width: 56ch;
	margin: 14px auto 0;
}

.ac-title__chev {
	width: 14px;
	height: 14px;
	margin: 22px auto 0;
	color: var(--ink);
}

/* Photo banner (single posts) */

.ac-photo-banner {
	position: relative;
	display: grid;
	place-items: center;
	min-height: 440px;
	padding-block: 80px;
	overflow: hidden;
	background-color: var(--teal-deep);
	text-align: center;
}

.ac-photo-banner .wp-block-post-featured-image {
	position: absolute;
	inset: 0;
	margin: 0;
}

.ac-photo-banner .wp-block-post-featured-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ac-photo-banner .wp-block-post-featured-image::after {
	content: "";
	position: absolute;
	inset: 0;
	background-color: rgba(30, 52, 58, 0.55);
}

.ac-photo-banner > .ac-wrap {
	position: relative;
	z-index: 1;
	max-width: 860px;
}

.ac-photo-banner .wp-block-post-title {
	color: var(--white);
	font-size: clamp(2.2rem, 1.4rem + 2.8vw, 3.2rem);
	font-weight: 600;
}

.ac-photo-banner .wp-block-post-terms {
	display: inline-block;
	margin-bottom: 18px;
}

.ac-photo-banner .wp-block-post-terms a,
.ac-photo-banner .wp-block-post-terms a:visited {
	display: inline-block;
	padding: 6px 14px;
	border-radius: 999px;
	background-color: rgba(255, 255, 255, 0.2);
	color: var(--white);
	font-family: var(--serif);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-decoration: none;
	text-transform: uppercase;
}

.ac-photo-banner .wp-block-post-date {
	margin-top: 16px;
	color: rgba(255, 255, 255, 0.85);
	font-size: 14px;
}

/* Full-bleed photo strip */

.ac-strip {
	height: clamp(280px, 42vw, 560px);
	margin: 0;
	overflow: hidden;
}

.ac-strip img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Grids */

.ac-grid-2,
.ac-grid-3 {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: clamp(32px, 5vw, 64px);
}

.ac-grid-2 > *,
.ac-grid-3 > * {
	min-width: 0;
}

@media (width >= 56rem) {
	.ac-grid-2 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.ac-grid-3 {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 32px;
	}
}

.ac-center {
	align-items: center;
}

/* Welcome */

.ac-welcome__title {
	max-width: 15ch;
	margin-bottom: 40px;
}

.ac-welcome {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 32px 48px;
}

.ac-welcome > * {
	min-width: 0;
}

@media (width >= 56rem) {
	.ac-welcome {
		grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr) minmax(0, 0.85fr);
	}
}

.ac-welcome__intro {
	color: var(--body);
	font-size: 1.0625rem;
}

.ac-welcome p + p {
	margin-top: 22px;
}

.ac-dropcap::first-letter {
	float: left;
	margin: 6px 12px 0 0;
	color: var(--ink);
	font-family: var(--serif);
	font-size: 3.4em;
	line-height: 0.8;
}

.ac-person {
	display: flex;
	align-items: center;
	gap: 16px;
	margin-top: 48px;
}

.ac-person__mark {
	display: grid;
	place-items: center;
	flex: none;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background-color: var(--mist);
	color: var(--teal-deep);
	font-family: var(--serif);
	font-size: 1.125rem;
	font-weight: 600;
}

.ac-person img {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	object-fit: cover;
}

.ac-person strong {
	display: block;
	color: var(--ink);
	font-family: var(--serif);
	font-size: 1.25rem;
	font-weight: 600;
	line-height: 1.2;
}

.ac-person span {
	display: block;
	color: var(--body);
	font-size: 14px;
}

/* Services: text first, photo underneath */

.ac-help {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 40px;
}

@media (width >= 64rem) {
	.ac-help {
		grid-template-columns: 220px minmax(0, 1fr);
		gap: 48px;
	}
}

.ac-services {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 48px 32px;
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (width >= 40rem) {
	.ac-services {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (width >= 64rem) {
	.ac-services {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.ac-service-item {
	position: relative;
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.ac-service-item h3 {
	margin-bottom: 14px;
	font-size: 1.5rem;
}

.ac-service-item h3 a,
.ac-service-item h3 a:visited {
	color: var(--ink);
	text-decoration: none;
}

.ac-service-item h3 a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

.ac-service-item p {
	font-size: 15px;
	line-height: 1.65;
}

.ac-service-item .ac-go {
	display: block;
	width: 16px;
	height: 16px;
	margin: 20px 0 28px;
	color: var(--ink);
	transition: transform 250ms ease, color 250ms ease;
}

.ac-service-item:hover .ac-go {
	color: var(--coral-ink);
	transform: translateX(6px);
}

.ac-service-item:hover h3 a {
	color: var(--coral-ink);
}

.ac-service-item__media {
	margin: auto 0 0;
	overflow: hidden;
	aspect-ratio: 4 / 3;
	background-color: var(--teal-light);
}

.ac-service-item__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 800ms ease;
}

.ac-service-item:hover .ac-service-item__media img {
	transform: scale(1.05);
}

/* FAQ beside a photo with stat boxes */

.ac-faq-wrap {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 48px;
	align-items: center;
}

@media (width >= 56rem) {
	.ac-faq-wrap {
		grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
		gap: 64px;
	}
}

.ac-faq-wrap > * {
	min-width: 0;
}

.ac-faq {
	margin-top: 32px;
}

.ac-faq details + details {
	border-top: 1px solid var(--line);
}

.ac-faq summary {
	position: relative;
	padding: 16px 0 16px 28px;
	color: var(--ink);
	font-family: var(--serif);
	font-size: 1.0625rem;
	font-weight: 500;
	line-height: 1.4;
	list-style: none;
	cursor: pointer;
}

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

.ac-faq summary::before,
.ac-faq summary::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 0;
	width: 12px;
	height: 1.5px;
	background-color: var(--ink);
	transition: transform 250ms ease;
}

.ac-faq summary::after {
	transform: rotate(90deg);
}

.ac-faq details[open] summary::after {
	transform: rotate(0deg);
}

.ac-faq__answer {
	padding: 0 0 18px 28px;
	font-size: 15px;
}

.ac-faq__answer p + p {
	margin-top: 10px;
}

.ac-statpic {
	position: relative;
	padding: 0 0 40px 18%;
}

.ac-statpic__img {
	margin: 0;
	overflow: hidden;
	aspect-ratio: 5 / 6;
}

.ac-statpic__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ac-statpic__boxes {
	position: absolute;
	bottom: 0;
	left: 0;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 200px));
	gap: 14px;
}

.ac-statbox {
	padding: 26px 24px;
	background-color: var(--teal-deep);
	color: var(--white);
}

.ac-statbox + .ac-statbox {
	background-color: var(--teal-deep);
}

.ac-statbox h3 {
	color: var(--white);
	font-size: 1rem;
	font-weight: 600;
}

.ac-statbox strong {
	display: block;
	margin: 12px 0 8px;
	font-family: var(--serif);
	font-size: 2.6rem;
	font-weight: 500;
	line-height: 1;
}

.ac-statbox p {
	color: rgba(255, 255, 255, 0.85);
	font-size: 14px;
	line-height: 1.4;
}

@media (width < 40rem) {
	.ac-statpic {
		padding-left: 0;
	}

	.ac-statpic__boxes {
		position: static;
		margin-top: 14px;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* Numbered "let us help" items */

.ac-steps {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 44px 40px;
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (width >= 56rem) {
	.ac-steps {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.ac-step {
	position: relative;
	min-width: 0;
}

.ac-step__head {
	position: relative;
	display: flex;
	align-items: center;
	gap: 16px;
	margin-bottom: 16px;
}

.ac-step__num {
	position: absolute;
	top: 50%;
	left: -4px;
	z-index: -1;
	color: var(--mist);
	font-family: var(--serif);
	font-size: 5.5rem;
	font-weight: 600;
	line-height: 1;
	transform: translateY(-50%);
}

.ac-step__icon {
	flex: none;
	width: 46px;
	height: 46px;
	color: var(--teal-deep);
}

.ac-step h3 {
	font-size: 1.5rem;
}

.ac-step p {
	font-size: 15px;
}

.ac-step .ac-arrow {
	margin-top: 22px;
}

/* Testimonials: dark panel over a large photo */

.ac-testi {
	position: relative;
	padding-block: 80px;
}

.ac-testi__img {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 80px;
	left: 0;
	margin: 0;
	overflow: hidden;
}

.ac-testi__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 70% 30%;
}

.ac-testi__panel {
	position: relative;
	z-index: 1;
	width: min(100%, 560px);
	padding: clamp(40px, 6vw, 72px) clamp(28px, 5vw, 64px);
	background-color: var(--teal-deep);
	color: rgba(255, 255, 255, 0.86);
}

.ac-testi__panel .ac-eyebrow {
	color: var(--white);
}

.ac-testi__panel h2 {
	color: var(--white);
}

.ac-testi__quote {
	position: relative;
	margin: 32px 0 0;
	padding-left: 44px;
}

.ac-testi__quote::before {
	content: "\201D";
	position: absolute;
	top: -8px;
	left: 0;
	color: var(--coral);
	font-family: var(--serif);
	font-size: 3.6rem;
	line-height: 1;
}

.ac-testi__quote p {
	font-size: 1rem;
	line-height: 1.75;
}

.ac-testi__quote footer {
	margin-top: 24px;
	color: var(--white);
	font-family: var(--serif);
	font-size: 1.0625rem;
	font-weight: 600;
}

.ac-testi__quote footer span {
	display: block;
	color: rgba(255, 255, 255, 0.7);
	font-family: var(--sans);
	font-size: 14px;
	font-weight: 400;
}

.ac-testi__dots {
	display: flex;
	gap: 10px;
	margin-top: 36px;
	padding-left: 44px;
}

.ac-testi__dots button {
	width: 10px;
	height: 10px;
	padding: 0;
	border: 1px solid rgba(255, 255, 255, 0.7);
	border-radius: 50%;
	background: none;
	cursor: pointer;
}

.ac-testi__dots button[aria-current="true"] {
	border-color: var(--coral);
	background-color: var(--coral);
}

.ac-testi__quote[hidden] {
	display: none;
}

@media (width < 56rem) {
	.ac-testi {
		padding-block: 0;
	}

	.ac-testi__img {
		position: static;
		aspect-ratio: 4 / 3;
	}
}

/* Blog cards (core query loop): photo, category, title, meta. */

.ac-posts .wp-block-post-template {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 44px 32px;
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (width >= 40rem) {
	.ac-posts .wp-block-post-template {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (width >= 64rem) {
	.ac-posts .wp-block-post-template {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.ac-posts .wp-block-post {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 14px;
	min-width: 0;
	margin: 0;
}

.ac-posts .wp-block-post-featured-image {
	position: relative;
	margin: 0 0 6px;
	overflow: hidden;
	aspect-ratio: 4 / 3;
	background-color: var(--teal-light);
}

.ac-posts .wp-block-post-featured-image a {
	position: absolute;
	inset: 0;
}

.ac-posts .wp-block-post-featured-image img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 800ms ease;
}

.ac-posts .wp-block-post:hover .wp-block-post-featured-image img {
	transform: scale(1.05);
}

.ac-post__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 12px;
	font-size: 13px;
}

.ac-post__meta > * {
	margin: 0;
}

.ac-posts .wp-block-post-terms a,
.ac-posts .wp-block-post-terms a:visited {
	position: relative;
	z-index: 2;
	color: var(--teal-deep);
	font-family: var(--serif);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-decoration: none;
	text-transform: uppercase;
}

.ac-posts .wp-block-post-date {
	color: var(--body);
}

.ac-posts .wp-block-post-title {
	font-size: 1.375rem;
	font-weight: 600;
	line-height: 1.3;
}

.ac-posts .wp-block-post-title a,
.ac-posts .wp-block-post-title a:visited {
	color: var(--ink);
	text-decoration: none;
}

.ac-posts .wp-block-post-title a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

.ac-posts .wp-block-post:hover .wp-block-post-title a {
	color: var(--coral-ink);
}

.ac-posts .wp-block-post-excerpt {
	margin: 0;
	font-size: 15px;
}

.ac-posts .wp-block-query-pagination {
	justify-content: center;
	gap: 10px;
	margin-top: 56px;
	font-family: var(--serif);
}

/* Centered call-to-action band (replaces the reference's newsletter) */

.ac-callout {
	background-color: var(--mist);
	text-align: center;
}

.ac-callout__icon {
	display: grid;
	place-items: center;
	width: 52px;
	height: 52px;
	margin: 0 auto 22px;
	border-radius: 50%;
	background-color: var(--coral-deep);
	color: var(--white);
}

.ac-callout__icon svg {
	width: 22px;
	height: 22px;
}

.ac-callout h2 {
	max-width: 22ch;
	margin-inline: auto;
	font-size: clamp(1.8rem, 1.2rem + 1.6vw, 2.3rem);
	font-weight: 600;
}

.ac-callout p {
	margin-top: 14px;
}

.ac-callout .ac-btns {
	justify-content: center;
}

/* Photo CTA band (contact page) */

.ac-photo-cta {
	position: relative;
	padding-block: clamp(64px, 8vw, 96px);
	overflow: hidden;
	color: var(--white);
}

.ac-photo-cta__img {
	position: absolute;
	inset: 0;
	margin: 0;
}

.ac-photo-cta__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ac-photo-cta__img::after {
	content: "";
	position: absolute;
	inset: 0;
	background-color: rgba(30, 52, 58, 0.6);
}

.ac-photo-cta .ac-wrap {
	position: relative;
	z-index: 1;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 28px;
}

.ac-photo-cta h2 {
	max-width: 20ch;
	color: var(--white);
	font-size: clamp(1.8rem, 1.2rem + 1.8vw, 2.5rem);
	font-weight: 600;
}

/* Services page: photo with an overlapping coral box */

.ac-overlap {
	position: relative;
	padding: 0 18% 22% 0;
}

.ac-overlap__img {
	margin: 0;
	overflow: hidden;
	aspect-ratio: 1 / 1;
}

.ac-overlap__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ac-overlap__box {
	position: absolute;
	right: 0;
	bottom: 0;
	width: min(70%, 300px);
	padding: 40px 30px;
	background-color: var(--coral-deep);
	color: rgba(255, 255, 255, 0.92);
	text-align: center;
}

.ac-overlap__box svg {
	width: 46px;
	height: 46px;
	margin: 0 auto 18px;
	color: var(--white);
}

.ac-overlap__box h3 {
	margin-bottom: 10px;
	color: var(--white);
	font-size: 1.375rem;
	font-weight: 600;
}

.ac-overlap__box p {
	font-size: 14px;
}

.ac-split-copy > * + * {
	margin-top: 18px;
}

.ac-split-copy > .ac-eyebrow + * {
	margin-top: 0;
}

.ac-indent {
	max-width: 46ch;
}

@media (width >= 56rem) {
	.ac-indent {
		margin-left: 22%;
	}
}

.ac-numlist {
	margin: 28px 0 0;
	padding: 0;
	list-style: none;
}

.ac-numlist li {
	display: flex;
	align-items: baseline;
	gap: 16px;
	padding: 12px 0;
	color: var(--ink);
	font-family: var(--serif);
	font-size: 1.25rem;
	font-weight: 600;
}

.ac-numlist li span {
	color: var(--body);
	font-size: 1.0625rem;
	font-weight: 400;
}

.ac-numlist small {
	display: block;
	color: var(--body);
	font-family: var(--sans);
	font-size: 14px;
	font-weight: 400;
}

/* Image cards with overlaid icon and title */

.ac-tiles {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 24px;
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (width >= 40rem) {
	.ac-tiles {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (width >= 64rem) {
	.ac-tiles {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.ac-tile {
	position: relative;
	display: grid;
	place-items: center;
	min-width: 0;
	aspect-ratio: 6 / 7;
	overflow: hidden;
	color: var(--white);
	text-align: center;
}

.ac-tile img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 800ms ease;
}

.ac-tile::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background-color: rgba(30, 52, 58, 0.48);
	transition: background-color 300ms ease;
}

.ac-tile:hover::before {
	background-color: rgba(184, 74, 53, 0.72);
}

.ac-tile:hover img {
	transform: scale(1.05);
}

.ac-tile__body {
	position: relative;
	z-index: 2;
	padding: 24px;
}

.ac-tile__body svg {
	width: 46px;
	height: 46px;
	margin: 0 auto 16px;
}

.ac-tile h3 {
	color: var(--white);
	font-size: 1.625rem;
	font-weight: 600;
}

.ac-tile h3 a,
.ac-tile h3 a:visited {
	color: inherit;
	text-decoration: none;
}

.ac-tile h3 a::after {
	content: "";
	position: absolute;
	inset: 0;
}

.ac-tile p {
	margin-top: 8px;
	color: rgba(255, 255, 255, 0.92);
	font-size: 15px;
}

/* Stats row */

.ac-figures {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 32px;
	margin: 0;
	padding: 0;
	list-style: none;
	text-align: center;
}

@media (width >= 56rem) {
	.ac-figures {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

.ac-figures strong {
	display: block;
	color: var(--ink);
	font-family: var(--serif);
	font-size: clamp(2.4rem, 1.8rem + 1.8vw, 3.2rem);
	font-weight: 500;
	line-height: 1;
}

.ac-figures span {
	display: block;
	margin-top: 10px;
	color: var(--body);
	font-family: var(--serif);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

/* Fact list with rules (About) */

.ac-facts {
	margin: 0;
	padding: 0;
	list-style: none;
}

.ac-facts li {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	padding: 16px 0;
	border-bottom: 2px solid var(--coral-deep);
	color: var(--ink);
	font-family: var(--serif);
	font-size: 1.0625rem;
	font-weight: 500;
}

.ac-facts li span {
	color: var(--body);
	font-family: var(--sans);
	font-size: 15px;
	font-weight: 400;
	text-align: right;
}

.ac-statement {
	max-width: 22ch;
	font-size: clamp(2rem, 1.2rem + 2.6vw, 2.9rem);
}

.ac-mail,
.ac-mail:visited {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	color: var(--ink);
	font-family: var(--serif);
	font-weight: 600;
	text-decoration: none;
}

.ac-mail span {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background-color: var(--mist);
	color: var(--coral-ink);
}

.ac-mail svg {
	width: 16px;
	height: 16px;
}

/* Service page: content plus sidebar */

.ac-service {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 48px;
}

.ac-service > * {
	min-width: 0;
}

@media (width >= 62rem) {
	.ac-service {
		grid-template-columns: minmax(0, 1fr) 340px;
		gap: 40px;
		align-items: start;
	}
}

.ac-service__img {
	margin: 0 0 40px;
	overflow: hidden;
	aspect-ratio: 3 / 2;
}

.ac-service__img img,
.ac-service .wp-block-post-featured-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ac-service .wp-block-post-featured-image {
	margin: 0 0 36px;
	overflow: hidden;
	aspect-ratio: 3 / 2;
}

.ac-side {
	padding: 34px 30px;
	background-color: var(--white);
}

@media (width >= 62rem) {
	.ac-side {
		position: sticky;
		top: calc(var(--header-h) + 24px);
	}
}

.ac-side h2 {
	margin-bottom: 8px;
	font-size: 1.25rem;
	font-weight: 600;
}

.ac-side h2 + .wpcf7 {
	margin-top: 0;
}

.ac-side__info {
	margin: 32px 0 0;
	padding: 0;
	list-style: none;
}

.ac-side__info li {
	display: grid;
	grid-template-columns: 22px minmax(0, 1fr);
	gap: 12px;
	align-items: start;
	font-size: 15px;
}

.ac-side__info li + li {
	margin-top: 16px;
}

.ac-side__info svg {
	width: 18px;
	height: 18px;
	margin-top: 4px;
	color: var(--teal-deep);
}

.ac-side__info a {
	color: var(--body);
	text-decoration: none;
	overflow-wrap: anywhere;
}

.ac-side__links {
	margin: 32px 0 0;
	padding: 24px 0 0;
	border-top: 1px solid var(--line);
	list-style: none;
}

.ac-side__links li + li {
	margin-top: 8px;
}

.ac-side__links a,
.ac-side__links a:visited {
	color: var(--body);
	font-size: 15px;
	text-decoration: none;
}

.ac-side__links a:hover,
.ac-side__links a[aria-current="page"] {
	color: var(--coral-ink);
}

/* Long-form copy (service pages and posts) */

.ac-prose {
	font-size: 16px;
}

.ac-prose > * + * {
	margin-top: 1.2em;
}

.ac-prose > :first-child {
	margin-top: 0;
}

.ac-prose h2 {
	margin-top: 1.8em;
	font-size: 1.5rem;
	font-weight: 600;
}

.ac-prose h3 {
	margin-top: 1.6em;
	font-size: 1.25rem;
	font-weight: 600;
}

.ac-prose ul,
.ac-prose ol {
	padding-left: 1.2em;
}

.ac-prose li + li {
	margin-top: 0.35em;
}

.ac-prose li::marker {
	color: var(--coral-ink);
}

.ac-prose .ac-ticks {
	padding-left: 0;
}

.ac-prose > p:first-of-type.ac-has-drop::first-letter,
.ac-article .ac-prose > p:first-child::first-letter {
	float: left;
	margin: 6px 12px 0 0;
	color: var(--ink);
	font-family: var(--serif);
	font-size: 3.4em;
	line-height: 0.8;
}

.ac-prose blockquote {
	padding-left: 24px;
	border-left: 2px solid var(--coral);
	color: var(--ink);
	font-family: var(--serif);
	font-size: 1.25rem;
	font-style: italic;
}

.ac-prose > .wp-block-buttons {
	gap: 12px;
	margin-top: 2em;
}

.ac-prose .wp-block-button__link {
	padding: 12px 30px;
	border-radius: 999px;
	font-family: var(--serif);
	font-size: 15px;
	font-weight: 600;
	text-decoration: none;
}

.ac-prose .is-style-outline .wp-block-button__link {
	border: 1px solid var(--ink);
	background: transparent;
	color: var(--ink);
}

.ac-prose .wp-block-button__link:hover {
	background-color: var(--teal-deep);
	color: var(--white);
}

.ac-note,
.ac-prose .ac-note {
	padding: 20px 24px;
	border-left: 2px solid var(--teal);
	background-color: var(--mist);
	font-size: 15px;
}

.ac-article {
	max-width: 720px;
	margin-inline: auto;
}

.ac-back {
	margin-top: 48px;
	padding-top: 28px;
	border-top: 1px solid var(--line);
}

/* Tick lists */

.ac-ticks {
	margin: 0;
	padding: 0;
	list-style: none;
}

.ac-ticks li {
	position: relative;
	padding-left: 28px;
}

.ac-ticks li + li {
	margin-top: 10px;
}

.ac-ticks li::before {
	content: "";
	position: absolute;
	top: 0.45em;
	left: 0;
	width: 14px;
	height: 8px;
	border-bottom: 2px solid var(--coral-deep);
	border-left: 2px solid var(--coral-deep);
	transform: rotate(-45deg);
}

.ac-ticks--2 {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 10px 28px;
}

.ac-ticks--2 li + li {
	margin-top: 0;
}

@media (width >= 40rem) {
	.ac-ticks--2 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* Contact */

.ac-map {
	height: clamp(320px, 40vw, 460px);
	margin: 0;
	background-color: var(--teal-light);
}

.ac-map iframe {
	width: 100%;
	height: 100%;
	border: 0;
}

.ac-contact {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 48px;
}

.ac-contact > * {
	min-width: 0;
}

@media (width >= 56rem) {
	.ac-contact {
		grid-template-columns: minmax(0, 0.38fr) minmax(0, 1fr);
		gap: 64px;
	}
}

.ac-contact h2 {
	margin-bottom: 22px;
	font-size: 1.625rem;
	font-weight: 600;
}

.ac-contact__info p + p {
	margin-top: 16px;
}

.ac-contact__phone,
.ac-contact__phone:visited {
	color: var(--ink);
	font-family: var(--serif);
	font-size: 1.25rem;
	font-weight: 600;
	text-decoration: none;
}

.ac-contact__info a {
	color: var(--body);
	text-decoration: none;
}

/* Footer */

.ac-footer {
	padding-top: clamp(56px, 7vw, 80px);
	background-color: var(--teal-deep);
	color: rgba(255, 255, 255, 0.72);
	font-size: 15px;
}

.ac-footer__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 40px;
}

@media (width >= 40rem) {
	.ac-footer__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (width >= 64rem) {
	.ac-footer__grid {
		grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, 0.8fr) minmax(0, 0.9fr);
		gap: 48px;
	}
}

.ac-footer__grid > * {
	min-width: 0;
}

.ac-footer h2 {
	margin-bottom: 22px;
	color: var(--white);
	font-size: 1.0625rem;
	font-weight: 600;
}

.ac-footer .ac-footer__logo {
	width: 170px;
	height: auto;
	margin-bottom: 20px;
}

.ac-footer ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.ac-footer li + li {
	margin-top: 10px;
}

.ac-footer p + p {
	margin-top: 16px;
}

.ac-footer a,
.ac-footer a:visited {
	color: rgba(255, 255, 255, 0.72);
	text-decoration: none;
	transition: color 200ms ease;
}

.ac-footer a:hover {
	color: var(--white);
}

.ac-footer .ac-footer__phone,
.ac-footer .ac-footer__phone:visited {
	color: var(--white);
	font-family: var(--serif);
	font-size: 1.125rem;
	font-weight: 600;
}

.ac-footer__bar {
	margin-top: clamp(48px, 6vw, 64px);
	padding-block: 26px;
	border-top: 1px solid rgba(255, 255, 255, 0.1);
	font-size: 14px;
}

.ac-footer__bar p {
	margin: 0;
}

.ac-footer__bar strong {
	color: var(--white);
	font-weight: 500;
}

/* Scroll reveal: hidden only once JS has confirmed it can reveal. */
.ac-js [data-reveal] {
	opacity: 0;
	transform: translateY(26px);
	transition: opacity 900ms ease, transform 900ms cubic-bezier(0.2, 0.7, 0.2, 1);
	transition-delay: var(--reveal-delay, 0ms);
}

.ac-js [data-reveal].is-visible {
	opacity: 1;
	transform: none;
}

/* Mobile contact bar */

.allegiance-contact-bar {
	display: none;
}

@media (width < 48rem) {
	body {
		padding-bottom: calc(var(--contact-bar-height) + env(safe-area-inset-bottom, 0px));
	}

	.allegiance-contact-bar {
		position: fixed;
		right: 0;
		bottom: 0;
		left: 0;
		z-index: 150;
		display: grid;
		grid-template-columns: 1fr 1fr;
		padding-bottom: env(safe-area-inset-bottom, 0px);
		background-color: var(--teal-deep);
	}

	.allegiance-contact-bar a {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 8px;
		height: var(--contact-bar-height);
		font: 700 15px / 1 var(--sans);
		text-decoration: none;
	}

	.allegiance-contact-bar svg {
		width: 1.1em;
		height: 1.1em;
	}

	.allegiance-contact-bar__call,
	.allegiance-contact-bar__call:visited,
	.allegiance-contact-bar__call:hover {
		background-color: var(--coral-deep);
		color: var(--white);
	}

	.allegiance-contact-bar__whatsapp,
	.allegiance-contact-bar__whatsapp:visited,
	.allegiance-contact-bar__whatsapp:hover {
		background-color: var(--whatsapp);
		color: var(--ink);
	}
}

@media print {
	.allegiance-contact-bar,
	.ac-header {
		display: none;
	}
}

/* Contact Form 7: underline fields, like the reference. */

.wpcf7 {
	position: relative;
	margin-top: 8px;
}

.cf7-fields {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 8px 28px;
}

.cf7-fields p {
	display: contents;
}

.wpcf7 label,
.cf7-wide {
	display: flex;
	flex-direction: column;
	gap: 0;
	margin: 0;
	color: var(--ink);
	font-family: var(--sans);
	font-size: 13px;
	font-weight: 500;
	line-height: 1.3;
}

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

.wpcf7 input:not([type="submit"]),
.wpcf7 select,
.wpcf7 textarea {
	width: 100%;
	margin: 0;
	padding: 12px 0;
	border: 0;
	border-bottom: 1px solid var(--line);
	border-radius: 0;
	background-color: transparent;
	color: var(--ink);
	font: 400 15px / 1.4 var(--sans);
	transition: border-color 200ms ease;
}

.wpcf7 textarea {
	min-height: 110px;
	resize: vertical;
}

.wpcf7 input:not([type="submit"]):focus,
.wpcf7 select:focus,
.wpcf7 textarea:focus {
	border-bottom-color: var(--coral-deep);
	outline: 0;
	box-shadow: 0 1px 0 var(--coral-deep);
}

.wpcf7 input[type="submit"] {
	justify-self: start;
	width: auto;
	min-height: 48px;
	margin-top: 18px;
	padding: 12px 34px;
	border: 0;
	border-radius: 999px;
	background-color: var(--coral-deep);
	color: var(--white);
	font: 600 15px / 1.2 var(--serif);
	cursor: pointer;
	transition: background-color 250ms ease;
}

.wpcf7 input[type="submit"]:hover,
.wpcf7 input[type="submit"]:focus-visible {
	background-color: var(--teal-deep);
}

/* Error text uses coral-ink: about 4.5:1 on white. */
.wpcf7-not-valid-tip {
	margin-top: 4px;
	color: var(--coral-ink);
	font-size: 13px;
}

.wpcf7-response-output {
	margin: 18px 0 0;
	padding: 12px 16px;
	border: 0;
	border-left: 2px solid var(--coral-deep);
	background-color: var(--mist);
	color: var(--ink);
	font-size: 14px;
}

.wpcf7 form.sent .wpcf7-response-output {
	border-left-color: var(--teal);
}

.cf7-honeypot {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

@media (width >= 48rem) {
	.cf7-fields {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.cf7-wide,
	.wpcf7 textarea,
	.wpcf7 input[type="submit"] {
		grid-column: 1 / -1;
	}

	/* The sidebar form is narrow: one column. */
	.ac-side .cf7-fields {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation: none !important;
		transition: none !important;
		scroll-behavior: auto !important;
	}

	.ac-js [data-reveal] {
		opacity: 1;
		transform: none;
	}
}

.ac-step__head {
	isolation: isolate;
}

.ac-help {
	align-items: start;
}

.ac-help > .ac-eyebrow {
	margin-top: 8px;
}

.ac-person .ac-person__mark {
	display: grid;
	color: var(--teal-deep);
	font-size: 1.125rem;
}

/* Submit buttons stay pill-sized instead of stretching across the form. */
.cf7-wide {
	align-items: flex-start;
}

.cf7-wide label,
.cf7-wide textarea {
	align-self: stretch;
}

/* ------------------------------------------------------------------
 * Home, second redesign: the client's banner as the hero, a photo
 * collage intro, service cards, a dark reasons band and a gallery of
 * the home's own social posts.
 * ------------------------------------------------------------------ */

/* Hero banner: the artwork already carries the logo and headline, so it
   shows uncropped with no overlay. Phones get a crop of the people. */
.ac-banner__media img {
	display: block;
	width: 100%;
	height: auto;
}

.ac-banner__bar {
	padding-block: 28px;
	background-color: var(--teal-deep);
	color: var(--white);
}

.ac-banner__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 20px 40px;
}

.ac-banner .ac-eyebrow {
	margin-bottom: 10px;
	color: var(--teal-light);
}

.ac-banner h1 {
	color: var(--white);
	font-size: clamp(1.5rem, 1.1rem + 1.2vw, 2rem);
	font-weight: 600;
	line-height: 1.2;
	text-wrap: balance;
}

.ac-banner .ac-btns {
	margin-top: 0;
}

/* Intro: photo collage beside the welcome copy */
.ac-intro {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 56px;
	align-items: center;
}

@media (width >= 60rem) {
	.ac-intro {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		gap: clamp(56px, 7vw, 96px);
	}
}

.ac-collage {
	position: relative;
	padding: 0 16% 18% 0;
}

.ac-collage figure {
	margin: 0;
	overflow: hidden;
}

.ac-collage__main {
	aspect-ratio: 4 / 3.4;
}

.ac-collage__small {
	position: absolute;
	right: 0;
	bottom: 0;
	width: 52%;
	aspect-ratio: 4 / 3;
	border: 8px solid var(--white);
}

.ac-collage img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ac-collage__badge {
	position: absolute;
	bottom: 8%;
	left: -12px;
	display: grid;
	width: 150px;
	padding: 22px 20px;
	background-color: var(--coral-deep);
	color: var(--white);
	line-height: 1.35;
}

.ac-collage__badge strong {
	font-family: var(--serif);
	font-size: 2.4rem;
	font-weight: 600;
	line-height: 1;
}

.ac-collage__badge span {
	margin-top: 8px;
	font-size: 14px;
}

.ac-intro__copy .ac-h2 {
	margin-bottom: 20px;
}

.ac-intro__copy .ac-lead {
	color: var(--ink);
}

.ac-intro__copy p + p {
	margin-top: 16px;
}

.ac-intro__ticks {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 10px 28px;
	margin-top: 28px;
	color: var(--ink);
	font-size: 15px;
}

.ac-intro__ticks li + li {
	margin-top: 0;
}

@media (width >= 40rem) {
	.ac-intro__ticks {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.ac-intro__foot {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	margin-top: 36px;
	padding-top: 28px;
	border-top: 1px solid var(--line);
}

.ac-intro__foot .ac-person {
	margin-top: 0;
}

/* Service cards: photo on top, white body */
.ac-cards {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 28px;
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (width >= 40rem) {
	.ac-cards {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (width >= 64rem) {
	.ac-cards {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.ac-card {
	position: relative;
	display: flex;
	flex-direction: column;
	min-width: 0;
	overflow: hidden;
	background-color: var(--white);
	transition: transform 350ms ease, box-shadow 350ms ease;
}

.ac-card:hover {
	box-shadow: 0 24px 48px -28px rgba(26, 39, 72, 0.35);
	transform: translateY(-4px);
}

.ac-card__media {
	margin: 0;
	overflow: hidden;
	aspect-ratio: 4 / 3;
	background-color: var(--teal-light);
}

.ac-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 800ms ease;
}

.ac-card:hover .ac-card__media img {
	transform: scale(1.05);
}

.ac-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: 28px 28px 30px;
	border-top: 3px solid var(--teal);
}

.ac-card h3 {
	margin-bottom: 12px;
	font-size: 1.45rem;
}

.ac-card h3 a,
.ac-card h3 a:visited {
	color: var(--ink);
	text-decoration: none;
}

.ac-card h3 a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

.ac-card p {
	font-size: 15px;
	line-height: 1.65;
}

.ac-card__more {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: auto;
	padding-top: 20px;
	color: var(--coral-ink);
	font-family: var(--serif);
	font-size: 14px;
	font-weight: 600;
}

.ac-card__more svg {
	width: 16px;
	height: 16px;
	transition: transform 250ms ease;
}

.ac-card:hover .ac-card__more svg {
	transform: translateX(6px);
}

.ac-card:hover h3 a {
	color: var(--coral-ink);
}

/* Reasons: dark band, numbered cards */
.ac-why {
	background-color: var(--teal-deep);
	color: rgba(255, 255, 255, 0.8);
}

.ac-why .ac-eyebrow,
.ac-why h2,
.ac-why h3 {
	color: var(--white);
}

.ac-why .ac-step {
	padding: 36px 32px;
	border: 1px solid rgba(255, 255, 255, 0.14);
	transition: background-color 300ms ease;
}

.ac-why .ac-step:hover {
	background-color: rgba(255, 255, 255, 0.04);
}

.ac-why .ac-step__head {
	flex-wrap: wrap;
	gap: 18px;
	margin-bottom: 18px;
}

.ac-why .ac-step__num {
	position: static;
	z-index: auto;
	flex-basis: 100%;
	color: var(--coral);
	font-size: 2.6rem;
	transform: none;
}

.ac-why .ac-step__icon {
	color: var(--teal-light);
}

.ac-why .ac-step p {
	color: rgba(255, 255, 255, 0.8);
}

.ac-why .ac-arrow,
.ac-why .ac-arrow:visited {
	border-color: rgba(255, 255, 255, 0.35);
	color: var(--white);
}

/* Testimonials with the panel on the right */
.ac-testi--right .ac-testi__panel {
	margin-left: auto;
}

.ac-testi--right .ac-testi__img img {
	object-position: 15% 15%;
}

/* Gallery of the home's own social posts, shown whole */
.ac-gallery {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 28px;
	align-items: center;
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (width >= 48rem) {
	.ac-gallery {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.ac-gallery img {
	display: block;
	width: 100%;
	height: auto;
	border: 1px solid var(--line);
}

/* Centered photo CTA (home) */
.ac-photo-cta--center {
	padding-block: clamp(88px, 11vw, 140px);
	text-align: center;
}

.ac-photo-cta--center .ac-wrap {
	flex-direction: column;
	justify-content: center;
	gap: 0;
	max-width: 760px;
}

.ac-photo-cta--center .ac-eyebrow {
	color: var(--white);
}

.ac-photo-cta--center h2 {
	max-width: 22ch;
}

.ac-photo-cta--center p:not(.ac-eyebrow) {
	margin-top: 16px;
	color: rgba(255, 255, 255, 0.9);
}

.ac-photo-cta--center .ac-btns {
	justify-content: center;
}

@media (width < 62rem) {
	.ac-logo {
		width: 170px;
	}
}

/* ------------------------------------------------------------------
 * Teal-led palette (client request): the large dark bands are teal
 * green with dark navy text. #85A6AD is too light for white text, so
 * text on it is --navy-deep (about 5:1). Solid dark areas use --teal-deep
 * (white text 5.7:1) instead of navy; navy is left only in text.
 * ------------------------------------------------------------------ */
.ac-banner__bar,
.ac-why,
.ac-testi__panel,
.ac-footer,
.ac-statbox:first-child {
	background-color: var(--teal);
	color: var(--navy-deep);
}

.ac-banner h1,
.ac-banner .ac-eyebrow,
.ac-why .ac-eyebrow,
.ac-why h2,
.ac-why h3,
.ac-why .ac-step p,
.ac-why .ac-step__num,
.ac-why .ac-step__icon,
.ac-testi__panel .ac-eyebrow,
.ac-testi__panel h2,
.ac-testi__quote footer,
.ac-testi__quote footer span,
.ac-statbox:first-child h3,
.ac-statbox:first-child p,
.ac-footer h2,
.ac-footer__bar strong {
	color: var(--navy-deep);
}

.ac-why .ac-step {
	border-color: rgba(26, 39, 72, 0.22);
	background-color: rgba(255, 255, 255, 0.14);
}

.ac-why .ac-step:hover {
	background-color: rgba(255, 255, 255, 0.26);
}

.ac-why .ac-arrow,
.ac-why .ac-arrow:visited {
	border-color: rgba(26, 39, 72, 0.4);
	color: var(--navy-deep);
}

.ac-testi__quote::before {
	color: var(--navy);
}

.ac-testi__dots button {
	border-color: var(--navy-deep);
}

.ac-testi__dots button[aria-current="true"] {
	border-color: var(--navy-deep);
	background-color: var(--teal-deep);
}

.ac-statbox + .ac-statbox {
	background-color: var(--teal-deep);
}

.ac-footer a,
.ac-footer a:visited,
.ac-footer .ac-footer__phone,
.ac-footer .ac-footer__phone:visited {
	color: var(--navy-deep);
}

.ac-footer a:hover {
	color: var(--white);
}

.ac-footer__bar {
	border-top-color: rgba(26, 39, 72, 0.2);
}

.ac-eyebrow--rule::before {
	background-color: var(--teal);
}

.ac-footer a:hover {
	color: var(--navy-deep);
	text-decoration: underline;
}

.ac-testi__panel .ac-eyebrow--rule::before {
	background-color: var(--teal-deep);
}

/* Header "Call now" block with both numbers */
.ac-callnow {
	display: flex;
	align-items: center;
	gap: 12px;
	color: var(--ink);
	white-space: nowrap;
}

.ac-callnow__icon {
	flex: none;
	width: 34px;
	height: 34px;
	color: var(--teal-deep);
}

.ac-callnow__text {
	display: grid;
	line-height: 1.25;
}

.ac-callnow__label {
	color: var(--body);
	font-size: 12px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.ac-callnow__nums {
	display: flex;
	gap: 12px;
}

.ac-callnow__nums a,
.ac-callnow__nums a:visited {
	color: var(--ink);
	font-family: var(--serif);
	font-size: 15px;
	font-weight: 600;
	text-decoration: none;
}

.ac-callnow__nums a + a {
	padding-left: 12px;
	border-left: 1px solid var(--line);
}

.ac-callnow__nums a:hover {
	color: var(--coral-ink);
}

@media (width < 84rem) {
	.ac-callnow__nums {
		display: grid;
		gap: 0;
	}

	.ac-callnow__nums a + a {
		padding-left: 0;
		border-left: 0;
	}
}

@media (width < 72rem) {
	.ac-callnow {
		display: none;
	}
}

.ac-nav__footer .ac-nav__tel + .ac-nav__tel {
	margin-top: -8px;
}

/* Google reviews: short quotes in the testimonial panel, the rest in a
   scroll-snap slider. Long reviews are clamped with a "Read full review"
   toggle. Without JS the track still scrolls sideways. */
.ac-stars {
	display: inline-flex;
	gap: 2px;
	color: #E8A317;
}

.ac-stars svg {
	width: 16px;
	height: 16px;
}

.ac-testi__rating {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	margin-top: 14px;
	font-size: 14px;
	font-weight: 500;
}

.ac-testi__panel .ac-stars {
	color: var(--navy-deep);
}

.ac-testi__quote p + p {
	margin-top: 12px;
}

.ac-reviews-head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 28px 48px;
	margin-bottom: clamp(36px, 5vw, 56px);
}

.ac-reviews-head .ac-h2 {
	max-width: 18ch;
}

.ac-score {
	display: flex;
	align-items: center;
	gap: 18px;
	padding: 20px 26px;
	background-color: var(--white);
	border-left: 4px solid var(--teal);
}

.ac-score strong {
	color: var(--ink);
	font-family: var(--serif);
	font-size: 3rem;
	font-weight: 600;
	line-height: 1;
}

.ac-score .ac-stars svg {
	width: 20px;
	height: 20px;
}

.ac-score span:not(.ac-stars) {
	display: block;
	max-width: 22ch;
	margin-top: 6px;
	color: var(--body);
	font-size: 14px;
	line-height: 1.4;
}

.ac-review {
	display: flex;
	flex-direction: column;
	min-width: 0;
	padding: 28px 28px 30px;
	background-color: var(--white);
	border-top: 3px solid var(--teal);
	transition: box-shadow 300ms ease;
}

.ac-review:hover {
	box-shadow: 0 20px 44px -30px rgba(26, 39, 72, 0.4);
}

.ac-review__head {
	display: grid;
	grid-template-columns: 44px minmax(0, 1fr) 20px;
	gap: 14px;
	align-items: center;
	margin-bottom: 14px;
}

.ac-review__head strong {
	display: block;
	color: var(--ink);
	font-family: var(--serif);
	font-size: 1.0625rem;
	font-weight: 600;
	line-height: 1.25;
}

.ac-review__head span:not(.ac-review__avatar) {
	color: var(--body);
	font-size: 13px;
}

.ac-review__avatar {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	color: var(--white);
	font-family: var(--serif);
	font-size: 15px;
	font-weight: 600;
}

.ac-review__avatar--0 { background-color: var(--teal-deep); }
.ac-review__avatar--1 { background-color: var(--coral-deep); }
.ac-review__avatar--2 { background-color: var(--teal-deep); }
.ac-review__avatar--3 { background-color: var(--teal); color: var(--navy-deep); }

.ac-g {
	width: 20px;
	height: 20px;
}

.ac-review__text {
	margin-top: 14px;
	color: var(--body);
	font-size: 15px;
	line-height: 1.7;
}

.ac-review__text p + p {
	margin-top: 12px;
}


.ac-slider__track {
	display: grid;
	grid-auto-columns: 100%;
	grid-auto-flow: column;
	gap: 24px;
	margin: 0;
	padding: 0 0 6px;
	overflow-x: auto;
	list-style: none;
	scroll-behavior: smooth;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	overscroll-behavior-x: contain;
}

.ac-slider__track::-webkit-scrollbar {
	display: none;
}

@media (width >= 40rem) {
	.ac-slider__track {
		grid-auto-columns: calc((100% - 24px) / 2);
	}
}

@media (width >= 64rem) {
	.ac-slider__track {
		grid-auto-columns: calc((100% - 48px) / 3);
	}
}

.ac-slider__track > li {
	scroll-snap-align: start;
}

.ac-review__text {
	display: -webkit-box;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 6;
}

.ac-review.is-open .ac-review__text {
	display: block;
}

.ac-review__text p + p {
	margin-top: 0;
}

.ac-review__text p + p::before {
	content: " ";
}

.ac-review__text p {
	display: inline;
}

.ac-review__toggle {
	align-self: flex-start;
	margin-top: 14px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--coral-ink);
	font-family: var(--serif);
	font-size: 14px;
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
}

.ac-slider__nav {
	display: flex;
	justify-content: center;
	gap: 12px;
	margin-top: 36px;
}

.ac-slider__btn {
	display: grid;
	place-items: center;
	width: 52px;
	height: 52px;
	border: 1px solid var(--teal-deep);
	border-radius: 50%;
	background-color: var(--white);
	color: var(--teal-deep);
	cursor: pointer;
	transition: background-color 250ms ease, color 250ms ease;
}

.ac-slider__btn:hover:not(:disabled) {
	background-color: var(--teal-deep);
	color: var(--white);
}

.ac-slider__btn:disabled {
	opacity: 0.35;
	cursor: default;
}

.ac-slider__btn svg {
	width: 20px;
	height: 20px;
}

.ac-review.is-open .ac-review__text p {
	display: block;
}

.ac-review.is-open .ac-review__text p + p {
	margin-top: 12px;
}

/* Section pages: links to child pages, step lists, menus, FAQ in prose */
.ac-pagelinks {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 16px;
	margin: 0 0 40px;
	padding: 0;
	list-style: none;
}

@media (width >= 40rem) {
	.ac-pagelinks {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.ac-prose .ac-pagelinks li {
	margin: 0;
	padding: 0;
}

.ac-prose .ac-pagelinks li::before {
	content: none;
}

.ac-pagelinks a,
.ac-pagelinks a:visited {
	display: grid;
	gap: 6px;
	height: 100%;
	padding: 22px 24px;
	border-top: 3px solid var(--teal);
	background-color: var(--white);
	color: var(--body);
	text-decoration: none;
	transition: box-shadow 250ms ease;
}

.ac-pagelinks a:hover {
	box-shadow: 0 18px 40px -28px rgba(26, 39, 72, 0.45);
}

.ac-pagelinks strong {
	color: var(--ink);
	font-family: var(--serif);
	font-size: 1.2rem;
	font-weight: 600;
}

.ac-pagelinks a:hover strong {
	color: var(--coral-ink);
}

.ac-pagelinks span {
	font-size: 15px;
}

.ac-steplist {
	counter-reset: step;
	padding-left: 0;
	list-style: none;
}

.ac-steplist li {
	position: relative;
	padding-left: 56px;
	counter-increment: step;
}

.ac-steplist li + li {
	margin-top: 18px;
}

.ac-steplist li::before {
	content: counter(step, decimal-leading-zero);
	position: absolute;
	top: -2px;
	left: 0;
	color: var(--coral-ink);
	font-family: var(--serif);
	font-size: 1.5rem;
	font-weight: 600;
	line-height: 1.2;
}

.ac-steplist strong {
	color: var(--ink);
}

.ac-menu {
	padding-left: 0;
	list-style: none;
}

.ac-menu li {
	padding: 10px 0;
	border-bottom: 1px solid var(--line);
}

.ac-menu strong {
	color: var(--ink);
}

.ac-prose .ac-faq {
	margin-block: 8px 36px;
}

/* Sidebar: section links title and the coral "Need any help?" box */
.ac-side__title {
	margin-top: 36px;
}

.ac-help-box {
	margin-top: 36px;
	padding: 32px 24px;
	background-color: var(--coral-deep);
	color: var(--white);
	text-align: center;
}

.ac-help-box h2 {
	color: var(--white);
	font-size: 1.5rem;
}

.ac-help-box svg {
	width: 84px;
	height: 84px;
	margin: 18px auto;
}

.ac-help-box p {
	display: grid;
	gap: 4px;
	margin: 0;
}

.ac-help-box a,
.ac-help-box a:visited {
	color: var(--white);
	font-family: var(--serif);
	font-size: 1.25rem;
	font-weight: 600;
	text-decoration: none;
}

.ac-help-box a:hover {
	text-decoration: underline;
}

/* Nonprofit mark */
.ac-org {
	display: flex;
	align-items: center;
	gap: 20px;
	margin-bottom: 28px;
}

.ac-org img {
	width: 96px;
	height: 96px;
}

.ac-org strong {
	display: block;
	color: var(--ink);
	font-family: var(--serif);
	font-size: 1.5rem;
	font-weight: 600;
}

.ac-org span {
	color: var(--body);
	font-size: 15px;
}

.ac-footer .ac-footer__org,
.ac-footer .ac-footer__org:visited {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	margin-top: 20px;
	font-size: 14px;
}

.ac-footer__org img {
	width: 48px;
	height: 48px;
}

.ac-footer__org strong {
	display: block;
	font-family: var(--serif);
	font-size: 15px;
}

/* Eight services: four across on wide screens */
@media (width >= 80rem) {
	.ac-cards,
	.ac-tiles {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

/* Mobile contact bar: two numbers and WhatsApp (icon only) */
@media (width < 48rem) {
	.allegiance-contact-bar {
		grid-template-columns: 1fr 1fr 64px;
	}

	.allegiance-contact-bar a {
		gap: 6px;
		font-size: 14px;
		white-space: nowrap;
	}

	.allegiance-contact-bar__call + .allegiance-contact-bar__call {
		border-left: 1px solid rgba(255, 255, 255, 0.35);
	}

	.allegiance-contact-bar__wa-label {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(0 0 0 0);
		white-space: nowrap;
	}

	.allegiance-contact-bar__whatsapp svg {
		width: 26px;
		height: 26px;
	}
}

/* Lists in page copy keep the paragraph rhythm */
.ac-prose > * + .ac-ticks,
.ac-prose > * + .ac-steplist,
.ac-prose > * + .ac-menu,
.ac-prose > * + .ac-pagelinks {
	margin-top: 1.2em;
}

.ac-prose .ac-pagelinks,
.ac-prose .ac-steplist,
.ac-prose .ac-menu {
	padding-left: 0;
}

/* Seven menu items: keep each on one line */
.ac-nav__list > li > a,
.ac-nav__parent > a {
	white-space: nowrap;
}

@media (width >= 62rem) and (width < 92rem) {
	.ac-header__inner {
		gap: 20px;
	}

	.ac-nav__list {
		gap: 2px;
	}

	.ac-nav__list > li > a,
	.ac-nav__parent > a {
		padding-inline: 8px;
		font-size: 14.5px;
	}

	.ac-nav__parent > a::after {
		right: 8px;
		left: 8px;
	}

	.ac-logo {
		width: 180px;
	}
}

/* Small laptops: the logo already links home */
@media (width >= 62rem) and (width < 75rem) {
	.ac-nav__list > li:first-child {
		display: none;
	}
}

/* ------------------------------------------------------------------
 * Forms, second pass: boxed fields with a label above, one height for
 * inputs, dropdowns and dates, and a custom dropdown arrow.
 * ------------------------------------------------------------------ */
.cf7-fields {
	gap: 20px 24px;
}

.wpcf7 label,
.cf7-wide {
	gap: 8px;
	color: var(--ink);
	font-size: 14px;
	font-weight: 600;
}

.wpcf7 input:not([type="submit"]),
.wpcf7 select,
.wpcf7 textarea {
	min-height: 52px;
	padding: 13px 16px;
	border: 1px solid #C9D8DD;
	border-radius: 6px;
	background-color: var(--white);
	font-size: 15px;
	appearance: none;
	-webkit-appearance: none;
	transition: border-color 200ms ease, box-shadow 200ms ease;
}

.wpcf7 select {
	padding-right: 44px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%234A6C74' stroke-width='1.8' d='M1 1.5 6 6.5 11 1.5'/%3E%3C/svg%3E");
	background-position: right 16px center;
	background-repeat: no-repeat;
	background-size: 12px 8px;
	cursor: pointer;
}

.wpcf7 input[type="date"] {
	line-height: 1.4;
}

.wpcf7 input[type="date"]::-webkit-calendar-picker-indicator {
	opacity: 0.55;
	cursor: pointer;
}

.wpcf7 textarea {
	min-height: 140px;
	line-height: 1.55;
}

.wpcf7 ::placeholder {
	color: #8A929E;
	opacity: 1;
}

.wpcf7 input:not([type="submit"]):hover,
.wpcf7 select:hover,
.wpcf7 textarea:hover {
	border-color: var(--teal);
}

.wpcf7 input:not([type="submit"]):focus,
.wpcf7 select:focus,
.wpcf7 textarea:focus {
	border-color: var(--teal-deep);
	outline: 0;
	box-shadow: 0 0 0 3px rgba(74, 108, 116, 0.18);
}

.wpcf7 .wpcf7-not-valid {
	border-color: var(--coral-deep);
}

.wpcf7 input[type="submit"] {
	margin-top: 4px;
	padding-inline: 40px;
}

/* Contact page: teal details panel beside a white form card */
.ac-contact {
	align-items: start;
}

@media (width >= 56rem) {
	.ac-contact {
		grid-template-columns: minmax(0, 0.42fr) minmax(0, 1fr);
		gap: 32px;
	}
}

.ac-contact__info {
	padding: clamp(28px, 4vw, 44px);
	background-color: var(--teal-deep);
	color: rgba(255, 255, 255, 0.88);
}

.ac-contact__info h2 {
	color: var(--white);
}

.ac-contact__lead {
	margin-bottom: 28px;
	font-size: 15px;
}

.ac-contact__list {
	display: grid;
	gap: 22px;
	margin: 0 0 32px;
	padding: 0;
	list-style: none;
	font-size: 15px;
	line-height: 1.55;
}

.ac-contact__list li {
	display: grid;
	grid-template-columns: 40px minmax(0, 1fr);
	gap: 14px;
	align-items: start;
}

.ac-contact__list svg {
	width: 40px;
	height: 40px;
	padding: 10px;
	border-radius: 50%;
	background-color: rgba(255, 255, 255, 0.14);
	color: var(--white);
}

.ac-contact__list strong {
	display: block;
	margin-bottom: 2px;
	color: var(--white);
	font-family: var(--serif);
	font-size: 15px;
	font-weight: 600;
}

.ac-contact__info .ac-contact__list a,
.ac-contact__info .ac-contact__list a:visited {
	display: block;
	color: var(--white);
	text-decoration: none;
}

.ac-contact__info .ac-contact__list a:hover {
	text-decoration: underline;
}

.ac-contact__info .ac-contact__phone {
	font-size: 1.125rem;
}

.ac-contact__info .ac-btn--light,
.ac-contact__info .ac-btn--light:visited {
	color: var(--teal-deep);
}

.ac-contact__form {
	padding: clamp(28px, 4vw, 48px);
	background-color: var(--white);
	box-shadow: 0 30px 60px -40px rgba(30, 52, 58, 0.35);
}

.ac-contact__form h2 {
	margin-bottom: 6px;
}

.ac-contact__note {
	margin-bottom: 24px;
	color: var(--body);
	font-size: 14px;
}

/* Wide fields (message boxes) fill the row; the submit stays pill-sized. */
label.cf7-wide {
	align-items: stretch;
}

.cf7-wide .wpcf7-form-control-wrap {
	width: 100%;
}

.wpcf7 textarea {
	height: 150px;
}

/* Social links (footer and contact panel) */
.ac-social {
	display: flex;
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ac-social li + li {
	margin-top: 0;
}

.ac-social a,
.ac-social a:visited {
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	background-color: var(--teal-deep);
	color: var(--white);
	text-decoration: none;
	transition: background-color 250ms ease;
}

.ac-social a:hover {
	background-color: var(--coral-deep);
	color: var(--white);
}

.ac-social svg {
	width: 20px;
	height: 20px;
}

.ac-footer .ac-footer__follow {
	margin: 28px 0 14px;
}

.ac-footer .ac-social a,
.ac-footer .ac-social a:visited {
	color: var(--white);
}

.ac-footer .ac-social a:hover {
	text-decoration: none;
}

.ac-contact__follow {
	margin-bottom: 12px;
	color: var(--white);
	font-family: var(--serif);
	font-size: 15px;
	font-weight: 600;
}

.ac-contact__info .ac-social {
	margin-bottom: 28px;
}

.ac-contact__info .ac-social a {
	background-color: rgba(255, 255, 255, 0.16);
}

.ac-contact__info .ac-social a:hover {
	background-color: var(--coral-deep);
}

/* About figures: number, short teal rule, label; dividers between.
   Phones show three across with the fourth centred underneath. */
.ac-figures {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0;
}

.ac-figures li {
	padding: 8px 10px;
}

.ac-figures li + li {
	border-left: 1px solid var(--teal);
}

.ac-figures li:nth-child(4) {
	grid-column: 1 / -1;
	margin-top: 24px;
	padding-top: 28px;
	border-top: 1px solid var(--line);
	border-left: 0;
}

.ac-figures strong::after {
	content: "";
	display: block;
	width: 44px;
	height: 2px;
	margin: 16px auto 0;
	background-color: var(--teal);
}

.ac-figures span {
	margin-top: 14px;
	line-height: 1.5;
}

@media (width >= 56rem) {
	.ac-figures {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.ac-figures li:nth-child(4) {
		grid-column: auto;
		margin-top: 0;
		padding-top: 8px;
		border-top: 0;
		border-left: 1px solid var(--teal);
	}
}

/* Team mark (replaces the director's initials) */
.ac-person__mark svg {
	width: 26px;
	height: 26px;
}
