.partners-programs {
	position: relative;
	padding: clamp(4.5rem, 8vw, 7rem) 0 clamp(5rem, 9vw, 8rem);
	background: #f1f2f4;
	color: #1f2933;
	overflow: clip;
}

.partners-programs::before {
	content: "";
	position: absolute;
	top: 0;
	right: -8rem;
	width: 26rem;
	height: 26rem;
	border-radius: 999px;
	background: radial-gradient(circle, rgba(166, 132, 74, 0.12) 0%, rgba(166, 132, 74, 0) 70%);
	pointer-events: none;
}

.partners-programs__inner {
	position: relative;
	display: grid;
	gap: clamp(2rem, 4vw, 3.2rem);
}

.partners-programs__heading {
	display: grid;
	gap: 0.95rem;
	max-width: 58rem;
}

.partners-programs__eyebrow {
	margin: 0;
	color: #8a6b38;
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.partners-programs__title {
	margin: 0;
	max-width: 18ch;
	color: #152030;
	font-family: var(--ldg-font-body);
	font-size: clamp(2.1rem, 4.6vw, 4rem);
	font-weight: 500;
	letter-spacing: -0.05em;
	line-height: 0.92;
	text-transform: uppercase;
	text-wrap: balance;
}

.partners-programs__copy {
	margin: 0;
	max-width: 48rem;
	color: rgba(31, 41, 51, 0.74);
	font-size: 1.02rem;
	line-height: 1.8;
}

.partners-programs__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.35rem;
	align-items: stretch;
}

.partners-program-card {
	position: relative;
	display: grid;
	grid-template-rows: auto 1fr auto;
	gap: 2rem;
	padding: clamp(1.45rem, 2.2vw, 1.9rem);
	min-height: 25rem;
	border: 1px solid rgba(21, 32, 48, 0.08);
	border-radius: 2rem;
	background:
		linear-gradient(180deg, rgba(255, 255, 255, 0.86) 0%, rgba(255, 255, 255, 0.98) 100%);
	box-shadow:
		0 26px 48px rgba(20, 31, 46, 0.08),
		inset 0 1px 0 rgba(255, 255, 255, 0.8);
	overflow: hidden;
}

.partners-program-card.ldg-reveal {
	transform-origin: 50% 100%;
	transition:
		opacity 900ms ease,
		transform 900ms cubic-bezier(0.2, 1, 0.3, 1),
		box-shadow 900ms ease,
		border-color 900ms ease;
}

.partners-program-card::before {
	content: "";
	position: absolute;
	inset: auto 0 0 0;
	height: 0.42rem;
	background: linear-gradient(90deg, rgba(166, 132, 74, 0.9) 0%, rgba(166, 132, 74, 0.16) 85%);
	transform: scaleX(0.18);
	transform-origin: left center;
	opacity: 0.55;
	transition: transform 760ms cubic-bezier(0.2, 1, 0.3, 1), opacity 760ms ease;
}

.partners-program-card::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(135deg, rgba(255, 255, 255, 0.58) 0%, rgba(255, 255, 255, 0) 46%);
	opacity: 0;
	transform: translate3d(-12%, -10%, 0);
	transition: opacity 820ms ease, transform 820ms cubic-bezier(0.2, 1, 0.3, 1);
	pointer-events: none;
}

.partners-program-card--realtor.ldg-reveal {
	transform: translate3d(-2.75rem, 2.6rem, 0) rotate(-4deg) scale(0.965);
}

.partners-program-card--vendor.ldg-reveal {
	transform: translate3d(0, 3rem, 0) scale(0.95);
}

.partners-program-card--subcontractor.ldg-reveal {
	transform: translate3d(2.75rem, 2.6rem, 0) rotate(4deg) scale(0.965);
}

.partners-program-card.ldg-reveal.is-visible {
	transform: translate3d(0, 0, 0) rotate(0deg) scale(1);
	border-color: rgba(166, 132, 74, 0.14);
	box-shadow:
		0 32px 60px rgba(20, 31, 46, 0.11),
		inset 0 1px 0 rgba(255, 255, 255, 0.88);
}

.partners-program-card.ldg-reveal.is-visible::before {
	transform: scaleX(1);
	opacity: 1;
}

.partners-program-card.ldg-reveal.is-visible::after {
	opacity: 1;
	transform: translate3d(0, 0, 0);
}

.partners-program-card--vendor {
	transform: none;
}

.partners-program-card--subcontractor {
	transform: none;
}

.partners-program-card__topline {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 1rem;
	opacity: 0;
	transform: translate3d(0, 0.9rem, 0);
	transition: opacity 560ms ease 150ms, transform 560ms ease 150ms;
}

.partners-program-card__eyebrow {
	margin: 0;
	max-width: 14rem;
	color: #8a6b38;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.partners-program-card__index {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	min-width: 3rem;
	padding: 0.45rem 0.65rem;
	border-radius: 999px;
	background: rgba(21, 32, 48, 0.06);
	color: rgba(21, 32, 48, 0.62);
	font-size: 0.76rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	transform: scale(0.92);
	transition: transform 540ms cubic-bezier(0.2, 1, 0.3, 1);
}

.partners-program-card__body {
	display: grid;
	align-content: start;
	gap: 1rem;
	opacity: 0;
	transform: translate3d(0, 1rem, 0);
	transition: opacity 620ms ease 240ms, transform 620ms ease 240ms;
}

.partners-program-card__title {
	margin: 0;
	max-width: 11ch;
	color: #152030;
	font-family: var(--ldg-font-body);
	font-size: clamp(1.65rem, 2.3vw, 2.2rem);
	font-weight: 500;
	letter-spacing: -0.05em;
	line-height: 0.96;
	text-transform: uppercase;
}

.partners-program-card__description {
	margin: 0;
	max-width: 22rem;
	color: rgba(31, 41, 51, 0.78);
	font-size: 0.98rem;
	line-height: 1.82;
}

.partners-program-card__footer {
	display: flex;
	align-items: flex-end;
	opacity: 0;
	transform: translate3d(0, 1rem, 0);
	transition: opacity 620ms ease 330ms, transform 620ms ease 330ms;
}

.partners-program-card__button {
	display: inline-flex;
	align-items: center;
	gap: 0.75rem;
	padding: 0.95rem 0;
	color: #152030;
	font-size: 0.92rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.partners-program-card__button::after {
	content: "";
	width: 2.6rem;
	height: 2.6rem;
	border-radius: 999px;
	border: 1px solid rgba(21, 32, 48, 0.14);
	background-color: #152030;
	-webkit-mask: url("../../../icons/explore.svg") center / 1.05rem 1.05rem no-repeat;
	mask: url("../../../icons/explore.svg") center / 1.05rem 1.05rem no-repeat;
	box-shadow: 0 12px 24px rgba(20, 31, 46, 0.08);
	flex: 0 0 auto;
	transform: translate3d(-0.3rem, 0, 0) scale(0.9);
	transition: transform 540ms cubic-bezier(0.2, 1, 0.3, 1), border-color 180ms ease, background-color 180ms ease;
}

.partners-program-card.ldg-reveal.is-visible .partners-program-card__topline,
.partners-program-card.ldg-reveal.is-visible .partners-program-card__body,
.partners-program-card.ldg-reveal.is-visible .partners-program-card__footer {
	opacity: 1;
	transform: translate3d(0, 0, 0);
}

.partners-program-card.ldg-reveal.is-visible .partners-program-card__index {
	transform: scale(1);
}

.partners-program-card.ldg-reveal.is-visible .partners-program-card__button::after {
	transform: translate3d(0, 0, 0) scale(1);
}

.partners-program-card__button:hover,
.partners-program-card__button:focus-visible {
	color: #8a6b38;
}

.partners-program-card__button:hover::after,
.partners-program-card__button:focus-visible::after {
	transform: translateX(0.22rem);
	border-color: rgba(166, 132, 74, 0.42);
	background-color: #a6844a;
}

@media (max-width: 1100px) {
	.partners-programs__grid {
		grid-template-columns: 1fr;
	}

	.partners-program-card,
	.partners-program-card--vendor,
	.partners-program-card--subcontractor {
		transform: none;
		min-height: 0;
	}

	.partners-program-card--realtor.ldg-reveal,
	.partners-program-card--vendor.ldg-reveal,
	.partners-program-card--subcontractor.ldg-reveal {
		transform: translate3d(0, 2.4rem, 0) scale(0.97);
	}

	.partners-programs__title {
		max-width: 16ch;
	}
}

@media (max-width: 767px) {
	.partners-programs {
		padding: 4rem 0 5rem;
	}

	.partners-program-card {
		border-radius: 1.6rem;
	}

	.partners-program-card--realtor.ldg-reveal,
	.partners-program-card--vendor.ldg-reveal,
	.partners-program-card--subcontractor.ldg-reveal {
		transform: translate3d(0, 2rem, 0) scale(0.98);
	}

	.partners-programs__title {
		max-width: 11ch;
		font-size: clamp(2rem, 10vw, 3rem);
	}
}

@media (prefers-reduced-motion: reduce) {
	.partners-program-card.ldg-reveal,
	.partners-program-card::before,
	.partners-program-card::after,
	.partners-program-card__topline,
	.partners-program-card__body,
	.partners-program-card__footer,
	.partners-program-card__index,
	.partners-program-card__button::after {
		transition: none;
		transform: none;
		opacity: 1;
	}
}
