/*
 * ATS sections: the arrangement each section type takes. No page-specific selectors.
 */

/* ---------------------------------------------------------------------
 * Hero
 * ------------------------------------------------------------------ */

.ats-hero {
	display: flex;
	flex-direction: column;
	overflow: hidden;
}

.ats-hero--home.has-image {
	min-height: var(--wp--custom--hero--home-height);
}

.ats-hero--photo.has-image {
	min-height: var(--wp--custom--hero--photo-height);
}

.ats-hero--tint,
.ats-hero.no-image {
	min-height: var(--wp--custom--hero--tint-height);
}

.ats-hero__media,
.ats-band__media,
.ats-faq__media {
	position: absolute;
	inset: 0;
	z-index: 0;
}

.ats-hero__media picture,
.ats-band__media picture,
.ats-faq__media picture,
.ats-hero__img,
.ats-band__img,
.ats-faq__img {
	width: 100%;
	height: 100%;
}

.ats-hero__img,
.ats-band__img,
.ats-faq__img {
	object-fit: cover;
}

.ats-hero__scrim,
.ats-band__scrim,
.ats-faq__scrim {
	position: absolute;
	inset: 0;
	z-index: 1;
	background: var(--wp--custom--scrim--left);
}

.ats-hero__inner,
.ats-band__inner,
.ats-faq__inner {
	position: relative;
	z-index: 2;
}

.ats-hero__inner {
	display: flex;
	flex-direction: column;
	justify-content: center;
	flex: 1 1 auto;
	padding-top: var(--wp--preset--spacing--64);
	padding-bottom: var(--wp--preset--spacing--96);
}

/* Photo heroes pad for the transparent header sitting over them. */
body.has-photo-hero .ats-hero.has-image .ats-hero__inner {
	padding-top: calc(var(--ats-header-height) + var(--wp--preset--spacing--64));
}

.ats-hero__content {
	max-width: var(--wp--custom--hero--content-width);
}

.ats-hero__content > * + * {
	margin-top: var(--wp--preset--spacing--24);
}

.ats-hero__headline {
	margin-top: var(--wp--preset--spacing--20);
}

.ats-hero__accent {
	display: block;
	color: var(--wp--preset--color--action-link-on-dark);
}

.ats-hero__lead {
	max-width: var(--wp--custom--hero--lead-width);
}

.ats-hero__ctas {
	margin-top: var(--wp--preset--spacing--28);
}

/* Inner photo heroes run a wider measure than the home hero. */
.ats-hero--photo .ats-hero__content {
	max-width: var(--wp--custom--hero--photo-content-width);
}

.ats-hero--photo .ats-hero__lead {
	max-width: var(--wp--custom--hero--photo-lead-width);
}

.ats-hero--tint .ats-hero__content,
.ats-hero.no-image .ats-hero__content {
	max-width: var(--wp--custom--layout--measure-wide);
}

.ats-hero--tint .ats-hero__lead,
.ats-hero.no-image .ats-hero__lead {
	max-width: var(--wp--custom--layout--measure);
}

/* Inner heroes without a button carry the phone route as a strong lead line. */
.ats-hero--tint .ats-hero__ctas:not(:has(.ats-button)) .ats-hero__phone,
.ats-hero.no-image .ats-hero__ctas:not(:has(.ats-button)) .ats-hero__phone {
	font-size: var(--wp--preset--font-size--lead);
	line-height: var(--wp--custom--type--lead--line-height);
	font-weight: var(--wp--custom--type--weight-semibold);
	color: var(--wp--preset--color--text-strong);
	max-width: var(--wp--custom--layout--measure);
}

.ats-hero__routes {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--wp--preset--spacing--40);
	align-items: center;
	margin-top: var(--wp--preset--spacing--24);
	max-width: var(--wp--custom--layout--container);
}

.ats-hero--tint .ats-hero__content:has(.ats-hero__routes),
.ats-hero.no-image .ats-hero__content:has(.ats-hero__routes) {
	max-width: none;
}

.ats-hero__route {
	font-size: var(--wp--preset--font-size--lead);
	line-height: var(--wp--custom--type--lead--line-height);
}

.ats-hero__route-text {
	font-weight: var(--wp--custom--type--weight-semibold);
	color: var(--wp--preset--color--text-strong);
}

.ats-hero__route .ats-link {
	font-size: inherit;
}

.is-ground-dark .ats-hero__route-text {
	color: var(--wp--preset--color--text-on-dark-strong);
}

@media (max-width: 900px) {
	.ats-hero--home.has-image,
	.ats-hero--photo.has-image,
	.ats-hero--tint,
	.ats-hero.no-image {
		min-height: 0;
	}

	/* The 768 and 390 frames keep the hero's 64 over 96 padding; only the home hero
	 * changes height, through its tablet and phone tokens. */
	.ats-hero--home.has-image {
		min-height: var(--wp--custom--hero--home-height-tablet);
	}

	.ats-hero__routes {
		grid-template-columns: minmax(0, 1fr);
		gap: var(--wp--preset--spacing--16);
	}

	.ats-hero__scrim {
		background: var(--wp--custom--scrim--stack);
	}
}

/* ---------------------------------------------------------------------
 * Trust strip
 * ------------------------------------------------------------------ */

.ats-trust__stats {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--wp--custom--gutter--three-up);
}

.ats-trust__line {
	margin: var(--wp--preset--spacing--24) auto 0;
	max-width: var(--wp--custom--layout--measure-wide);
	text-align: center;
	color: var(--wp--preset--color--text-muted);
}

.ats-trust__figure {
	white-space: nowrap;
}

@media (max-width: 900px) {
	.ats-trust__stats {
		grid-template-columns: minmax(0, 1fr);
		gap: var(--wp--preset--spacing--20);
	}
}

/* ---------------------------------------------------------------------
 * Services grid
 * ------------------------------------------------------------------ */

.ats-services__lead {
	margin-bottom: var(--wp--preset--spacing--40);
}

.ats-services__footnote {
	margin-top: var(--wp--preset--spacing--40);
	color: var(--wp--preset--color--text-body);
}

/* ---------------------------------------------------------------------
 * Photo band
 * ------------------------------------------------------------------ */

.ats-band {
	display: flex;
	align-items: center;
	overflow: hidden;
}

/* Approved band heights: right-aligned bands sit at 520, centred at 460;
 * text-driven bands simply grow past the minimum. */
@media (min-width: 901px) {
	.ats-band--right {
		min-height: var(--wp--custom--band--min-height-right);
	}

	.ats-band--center {
		min-height: var(--wp--custom--band--min-height-center);
	}

	.ats-section--photo_band.ats-band--cta {
		min-height: var(--wp--custom--band--cta-min-height);
	}
}

/* The closing band is its own Figma component with tighter padding. */
.ats-section--photo_band.ats-band--cta {
	padding-block: var(--wp--custom--band--cta-padding);
}

.ats-band__inner {
	display: flex;
	width: 100%;
}

.ats-band__content {
	max-width: var(--wp--custom--band--content-width);
}

.ats-band__content > * + * {
	margin-top: var(--wp--preset--spacing--20);
}

.ats-band__content .ats-eyebrow + .ats-h2 {
	margin-top: var(--wp--preset--spacing--24);
}

.ats-band__content .ats-cta-row {
	margin-top: var(--wp--preset--spacing--28);
}

.ats-band__paragraphs p {
	max-width: none;
}

.ats-band__closing {
	color: var(--wp--preset--color--text-on-dark-strong);
}

/* Directional: left text, scrim darkest on the left. */
.ats-band--left .ats-band__inner {
	justify-content: flex-start;
}

.ats-band--left.ats-band--scrim-directional .ats-band__scrim {
	background: var(--wp--custom--scrim--left);
}

/* Directional mirrored for right-aligned text. */
.ats-band--right .ats-band__inner {
	justify-content: flex-end;
}

.ats-band--right.ats-band--scrim-directional .ats-band__scrim {
	background: var(--wp--custom--scrim--right);
}

/* Centred text sits in the middle of a symmetrical scrim. */
.ats-band--center .ats-band__inner {
	justify-content: center;
}

.ats-band--center .ats-band__content {
	text-align: center;
	max-width: var(--wp--custom--band--content-width-center);
}

.ats-band--center .ats-eyebrow {
	justify-content: center;
}

.ats-band--center .ats-cta-row {
	justify-content: center;
}

.ats-band--center .ats-cta-row--stack {
	align-items: center;
}

.ats-band--center.ats-band--scrim-directional .ats-band__scrim {
	background: var(--wp--custom--scrim--center);
}

.ats-band--scrim-even .ats-band__scrim {
	background: var(--wp--custom--scrim--even);
}

@media (max-width: 900px) {
	.ats-band--scrim-directional .ats-band__scrim {
		background: var(--wp--custom--scrim--stack);
	}
}

/* ---------------------------------------------------------------------
 * Reasons
 * ------------------------------------------------------------------ */

.ats-reasons__heading {
	margin-bottom: var(--wp--preset--spacing--48);
}

.ats-reasons__heading > * + * {
	margin-top: var(--wp--preset--spacing--20);
}

.ats-reasons__headline {
	max-width: var(--wp--custom--layout--measure);
}

/* Phone route first, button under it, as the approved section sets it. */
.ats-reasons__cta {
	margin-top: var(--wp--preset--spacing--40);
	gap: var(--wp--preset--spacing--40);
}

.ats-reasons__cta .ats-phone-line {
	font-size: var(--wp--preset--font-size--lead);
	line-height: var(--wp--custom--type--lead--line-height);
	color: var(--wp--preset--color--text-body);
}

.ats-reasons--center .ats-reasons__heading {
	text-align: center;
	max-width: var(--wp--custom--layout--measure-wide);
	margin-inline: auto;
}

.ats-reasons--center .ats-eyebrow {
	justify-content: center;
}

.ats-reasons__items + .ats-cta-row {
	margin-top: var(--wp--preset--spacing--48);
}

.ats-reasons--center .ats-cta-row {
	justify-content: center;
}

/* ---------------------------------------------------------------------
 * Person
 * ------------------------------------------------------------------ */

.ats-person__grid {
	display: grid;
	grid-template-columns: minmax(0, var(--wp--custom--split--heading)) minmax(0, var(--wp--custom--split--content));
	gap: var(--wp--custom--gutter--split);
	align-items: center;
}

.ats-person__media picture,
.ats-person__img {
	width: 100%;
}

.ats-person__img {
	aspect-ratio: 1 / 1;
	object-fit: cover;
	border-radius: var(--wp--custom--radius--feature);
}

.ats-person__content > * + * {
	margin-top: var(--wp--preset--spacing--16);
}

.ats-person__bio {
	margin-top: var(--wp--preset--spacing--24);
}

.ats-person__bio p {
	max-width: none;
}

.ats-person.no-image .ats-person__grid {
	grid-template-columns: minmax(0, 1fr);
}

@media (max-width: 900px) {
	.ats-person__grid {
		grid-template-columns: minmax(0, 1fr);
		gap: var(--wp--preset--spacing--32);
	}
}

/* ---------------------------------------------------------------------
 * Process: three-up steps, 34px descending stagger at desktop only
 * ------------------------------------------------------------------ */

.ats-process__headline {
	margin-bottom: var(--wp--preset--spacing--44);
}

.ats-process__steps {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--wp--custom--gutter--steps);
	align-items: start;
	counter-reset: ats-step;
}

.ats-process__step {
	counter-increment: ats-step;
}

.ats-process__steps + .ats-cta-row {
	margin-top: var(--wp--preset--spacing--44);
}

@media (min-width: 901px) {
	.ats-process__step:nth-child(2) {
		padding-top: var(--wp--custom--process--stagger);
	}

	.ats-process__step:nth-child(3) {
		padding-top: calc(2 * var(--wp--custom--process--stagger));
	}
}

@media (max-width: 900px) {
	.ats-process__steps {
		grid-template-columns: minmax(0, 1fr);
		gap: var(--wp--preset--spacing--32);
	}
}

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

.ats-testimonials__heading {
	margin-bottom: var(--wp--preset--spacing--44);
}

.ats-testimonials__heading > * + * {
	margin-top: var(--wp--preset--spacing--16);
}

.ats-testimonials--center .ats-testimonials__heading {
	text-align: center;
	max-width: var(--wp--custom--layout--measure-wide);
	margin-inline: auto;
}

.ats-testimonials--center .ats-eyebrow {
	justify-content: center;
}

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

.ats-faq {
	overflow: hidden;
}

.ats-faq__scrim {
	background: var(--wp--custom--scrim--even);
}

.ats-faq__grid {
	display: grid;
	grid-template-columns: minmax(0, var(--wp--custom--split--heading-narrow)) minmax(0, var(--wp--custom--split--content-wide));
	gap: var(--wp--custom--gutter--split);
	align-items: start;
}

.ats-faq__heading > * + * {
	margin-top: var(--wp--preset--spacing--20);
}

.ats-faq__list {
	border-top: 0;
}

@media (max-width: 900px) {
	.ats-faq__grid {
		grid-template-columns: minmax(0, 1fr);
		gap: var(--wp--preset--spacing--32);
	}
}

/* ---------------------------------------------------------------------
 * Service lane
 * ------------------------------------------------------------------ */

.ats-heading-row--lane {
	margin-bottom: var(--wp--preset--spacing--44);
}

.ats-lane__included {
	margin-top: var(--wp--preset--spacing--44);
}

.ats-lane__included-label {
	margin-bottom: var(--wp--preset--spacing--32);
}

.ats-lane__blocks {
	margin-top: var(--wp--preset--spacing--44);
}

.ats-lane__proof {
	margin-top: var(--wp--preset--spacing--44);
	max-width: calc((var(--wp--custom--layout--container) - var(--wp--custom--gutter--split)) / 2 + var(--wp--preset--spacing--56));
}

/* ---------------------------------------------------------------------
 * Image lane
 * ------------------------------------------------------------------ */

.ats-image-lane__grid {
	display: grid;
	grid-template-columns: minmax(0, var(--wp--custom--split--heading)) minmax(0, var(--wp--custom--split--content));
	gap: var(--wp--custom--gutter--split);
	align-items: start;
}

.ats-image-lane.no-image .ats-image-lane__grid {
	grid-template-columns: minmax(0, 1fr);
}

.ats-image-lane__media picture,
.ats-image-lane__img {
	width: 100%;
}

.ats-image-lane__img {
	aspect-ratio: 1 / 1;
	object-fit: cover;
	border-radius: var(--wp--custom--radius--feature);
}

.ats-image-lane__content > * + * {
	margin-top: var(--wp--preset--spacing--24);
}

.ats-image-lane__content .ats-eyebrow + .ats-h2 {
	margin-top: var(--wp--preset--spacing--20);
}

.ats-image-lane__paragraphs p {
	max-width: none;
}

.ats-image-lane__outcome {
	margin-top: var(--wp--preset--spacing--44);
	max-width: var(--wp--custom--layout--measure-wide);
}

.ats-image-lane__proof {
	margin-top: var(--wp--preset--spacing--44);
	max-width: calc(var(--wp--custom--layout--container) / 2);
}

@media (max-width: 900px) {
	.ats-image-lane__grid {
		grid-template-columns: minmax(0, 1fr);
		gap: var(--wp--preset--spacing--32);
	}
}

/* ---------------------------------------------------------------------
 * Routes: stacked panels in the content column
 * ------------------------------------------------------------------ */

.ats-routes__panels {
	display: grid;
	gap: var(--wp--custom--gutter--three-up);
}

/* ---------------------------------------------------------------------
 * Note
 * ------------------------------------------------------------------ */

.ats-note__content {
	max-width: var(--wp--custom--layout--measure-wide);
}

.ats-note__content > * + * {
	margin-top: var(--wp--preset--spacing--20);
}

.ats-note__body p {
	max-width: none;
}

.ats-note__proof {
	margin-top: var(--wp--preset--spacing--40);
	max-width: calc(var(--wp--custom--layout--container) / 2);
}

/* With a testimonial the note runs two columns: copy left, card right. */
.ats-note .ats-container:has(.ats-note__proof) {
	display: grid;
	grid-template-columns: minmax(0, 59fr) minmax(0, 60fr);
	gap: var(--wp--custom--gutter--split);
	align-items: start;
}

.ats-note .ats-container:has(.ats-note__proof) .ats-note__content {
	max-width: none;
}

.ats-note .ats-container:has(.ats-note__proof) .ats-note__proof {
	margin-top: 0;
	max-width: none;
}

@media (max-width: 900px) {
	.ats-note .ats-container:has(.ats-note__proof) {
		grid-template-columns: minmax(0, 1fr);
		gap: var(--wp--preset--spacing--40);
	}
}

/* ---------------------------------------------------------------------
 * Contact form
 * ------------------------------------------------------------------ */

.ats-contact__heading {
	margin-bottom: var(--wp--preset--spacing--44);
	max-width: var(--wp--custom--layout--measure-wide);
}

.ats-contact__heading > * + * {
	margin-top: var(--wp--preset--spacing--16);
}

.ats-contact__intro p {
	max-width: var(--wp--custom--layout--measure);
}

.ats-contact__grid {
	display: grid;
	grid-template-columns: minmax(0, var(--wp--custom--split--form)) minmax(0, var(--wp--custom--split--aside));
	gap: var(--wp--custom--gutter--split);
	align-items: start;
}

.ats-contact__aside {
	padding: var(--wp--custom--card--padding-aside);
	background: var(--wp--preset--color--surface-wash);
	border-radius: var(--wp--custom--radius--feature);
}

.ats-contact__aside-title {
	margin-bottom: var(--wp--preset--spacing--28);
}

.ats-contact__step + .ats-contact__step {
	margin-top: var(--wp--preset--spacing--28);
}

@media (max-width: 900px) {
	.ats-contact__grid {
		grid-template-columns: minmax(0, 1fr);
		gap: var(--wp--preset--spacing--40);
	}
}

/* ---------------------------------------------------------------------
 * Index fallback
 * ------------------------------------------------------------------ */

.ats-entry + .ats-entry {
	margin-top: var(--wp--preset--spacing--40);
}

@media (max-width: 640px) {
	.ats-hero--home.has-image {
		min-height: var(--wp--custom--hero--home-height-mobile);
	}
}
