/* Homepage final-polish corrections. Loaded after the shared stylesheet so
 * these route-specific measured adjustments remain explicit and reversible. */
@media (min-width: 960px) {
	.home-showcase > .lld-container {
		width: min(calc(100% - 100px), 1764px);
		max-width: 1764px;
	}

	.home-card-grid--case-studies,
	.home-card-grid--insights {
		grid-template-columns: none;
		grid-auto-flow: column;
		grid-auto-columns: calc((min(100vw - 100px, 1764px) - 144px) / 3);
		gap: 72px;
	}

	.home-rail-controls {
		display: none;
	}

	.home-stats > .lld-container {
		width: min(calc(100% - 144px), 1760px);
		max-width: 1760px;
		margin-inline: auto;
	}

	.home-clients {
		min-height: 324px;
		height: 324px;
		overflow: hidden;
	}

	.home-client-gallery {
		height: 390px;
	}

	.home-client-gallery__track {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 12px;
		height: 100%;
		padding-inline: 10px;
	}

	.home-client-gallery__item {
		height: 100%;
		margin: 0;
		overflow: hidden;
	}

	.home-client-gallery__item img {
		display: block;
		width: 100%;
		height: 100%;
		object-fit: cover;
		object-position: center;
	}

	.home-client-gallery__controls {
		display: none;
	}

	.home-services__inner {
		display: block;
		text-align: center;
	}

	.home-services__copy {
		max-width: 1080px;
		margin-inline: auto;
	}

	.home-services__copy p {
		max-width: none;
		margin-top: 36px;
		font-size: 20px;
		line-height: 31.5px;
	}

	.home-services__copy .lld-button {
		margin-top: 36px;
	}

	.home-stats {
		min-height: 826px;
	}

	.home-why__intro .home-section-heading__lead {
		font-family: var(--lld-font-display);
		font-weight: 600;
	}
}

@media (min-width: 1600px) {
	.home-stats {
		min-height: 938px;
	}
}

@media (min-width: 960px) and (max-width: 1199px) {
	.home-showcase > .lld-container {
		width: calc(100% - 136px);
		max-width: none;
	}

	body.home .site-footer > .site-footer__inner {
		grid-template-columns: 180px 180px minmax(0, 1fr);
		width: calc(100% - 160px);
		gap: 36px;
		padding-block: 80px 48px;
	}

	.home-stats {
		min-height: 963px;
	}
	.home-clients {
		min-height: 290px;
		height: 290px;
	}

	.home-stats__intro-row {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 36px;
	}

	.home-stats__intro-copy {
		min-width: 0;
		max-width: none;
	}

	.home-stats__intro-copy p {
		max-width: 100%;
	}

	.home-stats__grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		column-gap: 36px;
	}

	.home-card-grid--case-studies,
	.home-card-grid--insights {
		grid-template-columns: none;
		grid-auto-flow: column;
		width: 100%;
		max-width: 100%;
		min-width: 0;
		grid-auto-columns: calc((100% - 72px) / 3);
		gap: 36px;
	}
}

@media (max-width: 959px) {
	.home-stats {
		min-height: 1054px;
	}
	.home-services__inner {
		display: block;
		text-align: center;
	}

	.home-services__copy {
		max-width: 100%;
		margin-inline: auto;
	}

	.home-services__copy p {
		max-width: 34ch;
		margin-inline: auto;
		font-size: 18px;
		line-height: 31.5px;
	}

	.home-stats > .lld-container {
		width: calc(100% - (2 * var(--lld-gutter)));
		max-width: none;
	}

	.home-stats__intro-row {
		text-align: center;
	}

	.home-stats__heading h2 {
		align-items: center;
	}

	.home-stats__intro-copy {
		padding-top: 0;
	}

	.home-stats__intro-copy .lld-button {
		margin-inline: auto;
	}

	.home-client-gallery {
		position: relative;
		height: 389px;
		overflow: hidden;
		background: var(--lld-color-paper);
	}

	.home-client-gallery__track {
		display: flex;
		height: 100%;
		transition: transform 220ms ease-out;
	}

	.home-client-gallery__item {
		flex: 0 0 100%;
		height: 100%;
		margin: 0;
	}

	.home-client-gallery__item img {
		display: block;
		width: 100%;
		height: 100%;
		object-fit: cover;
		object-position: center;
	}

	.home-client-gallery__controls {
		position: absolute;
		bottom: 1.25rem;
		left: 50%;
		display: flex;
		gap: 0.65rem;
		transform: translateX(-50%);
	}

	.home-client-gallery__dot {
		width: 0.7rem;
		height: 0.7rem;
		padding: 0;
		border: 1px solid var(--lld-color-surface);
		border-radius: 50%;
		background: transparent;
		cursor: pointer;
	}

	.home-client-gallery__dot.is-active {
		background: var(--lld-color-surface);
	}

	.home-card-grid--case-studies,
	.home-card-grid--insights {
		grid-template-columns: none;
		grid-auto-flow: column;
		width: 100%;
		max-width: 100%;
		min-width: 0;
		grid-auto-columns: calc((100vw - 144px) / 3);
		scroll-snap-type: x mandatory;
		scrollbar-width: none;
	}

	.home-card-grid--case-studies::-webkit-scrollbar,
	.home-card-grid--insights::-webkit-scrollbar {
		display: none;
	}

	.home-card-grid--case-studies > .home-card,
	.home-card-grid--insights > .lld-post-card {
		scroll-snap-align: start;
	}

	.home-stats__intro-copy p {
		font-size: 20px;
		font-weight: 400;
		line-height: 24px;
	}
}

@media (min-width: 1200px) and (max-width: 1599px) {
	.home-insights {
		min-height: 721px;
	}
}

@media (min-width: 1600px) {
	.home-insights {
		min-height: 861px;
	}
}

@media (min-width: 640px) and (max-width: 959px) {
	.home-services {
		min-height: 457px;
		height: 457px;
	}

	.home-services__copy p {
		max-width: 700px;
	}

	.home-why__intro .home-section-heading__lead {
		font-family: var(--lld-font-display);
		font-weight: 600;
	}
}

@media (max-width: 639px) {
	.home-stats {
		min-height: 1449px;
	}
	.home-stats__intro-copy p {
		font-size: 18px;
		line-height: 24px;
	}

	.home-stat__value {
		font-size: 50px;
		line-height: 60px;
	}

	.home-stats__grid {
		row-gap: 48px;
	}

	.home-clients {
		min-height: 340px;
		height: 340px;
	}

	.home-services {
		min-height: 565px;
		height: 565px;
	}

	.home-card-grid--case-studies,
	.home-card-grid--insights {
		grid-template-columns: none;
		grid-auto-flow: column;
		grid-auto-columns: 100%;
	}

	.home-rail-controls {
		display: flex;
		justify-content: center;
		gap: 0.65rem;
		margin-top: 36px;
	}

	.home-rail-dot {
		width: 0.7rem;
		height: 0.7rem;
		padding: 0;
		border: 0;
		border-radius: 50%;
		background: #c7c7c7;
		cursor: pointer;
	}

	.home-rail-dot.is-active {
		background: #a9a9a9;
	}

	.home-case-studies {
		min-height: 774px;
	}

	.home-insights {
		min-height: 779px;
	}

	.home-case-studies .home-section-heading__intro,
	.home-insights .home-section-heading__intro {
		max-width: 100%;
		font-size: 30px;
		line-height: 36px;
	}

	.home-insights .lld-post-card__title {
		font-weight: 600;
	}

	.home-case-studies .home-section-heading__title,
	.home-insights .home-section-heading__title,
	.home-clients .home-section-heading__title,
	.home-services h2,
	.home-stats__heading h2 {
		font-size: 35px;
		line-height: 42px;
	}

	.home-case-studies .home-section-heading,
	.home-insights .home-section-heading {
		display: block;
		margin-bottom: 48px;
	}

	.home-case-studies .home-section-heading > .lld-button,
	.home-insights .home-section-heading > .lld-button {
		display: none;
	}

	.home-why__intro .home-section-heading__lead {
		font-family: var(--lld-font-display);
		font-weight: 600;
	}

	.home-client-gallery {
		height: 343px;
	}
}

body.home .site-cta {
	background-color: #2d2d2d;
	background-image: linear-gradient(rgba(0, 0, 0, 0.64), rgba(0, 0, 0, 0.64)), url('../images/home-hero.webp');
	background-position: center;
	background-size: cover;
}

body.home .site-cta .lld-button {
	background: var(--lld-color-ink);
	color: var(--lld-color-surface);
}

body.home .site-cta .lld-button:hover,
body.home .site-cta .lld-button:focus-visible {
	background: var(--lld-color-surface);
	color: var(--lld-color-ink);
}

@media (min-width: 960px) {
	body.home .site-footer > .site-footer__inner {
		display: grid;
		grid-template-columns: 285px 285px minmax(0, 1fr);
		width: min(calc(100% - 160px), 1280px);
		max-width: 1280px;
		gap: 40px;
		padding-block: 120px 72px;
	}

	body.home .site-footer__inner {
		min-height: 411px;
	}

	body.home .site-cta__inner {
		min-height: 477px;
		height: 477px;
	}
}

@media (min-width: 960px) and (max-width: 1599px) {
	body.home .site-footer__inner {
		min-height: 375px;
	}
}

@media (min-width: 640px) and (max-width: 959px) {
	body.home .site-footer__inner {
		align-items: stretch;
		flex-direction: column;
		gap: 64px;
		padding-block: 56px 96px;
	}

	body.home .site-footer__brand,
	body.home .footer-navigation,
	body.home .site-footer__contact {
		width: 100%;
	}

	body.home .site-footer__note {
		font-size: 18px;
		line-height: 31.5px;
	}

	body.home .site-footer > .site-footer__inner {
		width: calc(100% - (2 * var(--lld-gutter)));
		max-width: none;
	}

	body.home .site-cta__inner {
		min-height: 373px;
		height: 373px;
	}
}

@media (max-width: 639px) {
	body.home .site-footer__inner {
		gap: 64px;
		padding-block: 56px 96px;
	}

	body.home .site-footer__note {
		font-size: 18px;
		line-height: 31.5px;
	}

	body.home .site-footer > .site-footer__inner {
		width: calc(100% - (2 * var(--lld-gutter)));
		max-width: none;
	}

	body.home .site-cta__inner {
		min-height: 297px;
		height: 297px;
	}
}

body.home .site-footer {
	background: var(--lld-color-ink);
}

body.home .site-footer__inner {
	background: var(--lld-color-ink);
}

body.home .site-footer__mark {
	width: 128px;
}

@media (min-width: 640px) and (max-width: 959px) {
	.home-clients {
		min-height: 268px;
		height: 268px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.home-client-gallery__track {
		transition: none;
	}
}

/* Keep the narrower desktop footer columns after the shared desktop footer
 * rule so the 1024px composition does not collapse the recruitment copy. */
@media (min-width: 960px) and (max-width: 1199px) {
	body.home .site-footer > .site-footer__inner {
		grid-template-columns: 180px 180px minmax(0, 1fr);
		width: calc(100% - 160px);
		gap: 36px;
		padding-block: 80px 48px;
	}
}
