/* Reusable light-theme featured community mosaic. */
.ldh-home-communities {
	--home-ink: #1f2933;
	--home-navy: #050c18;
	--home-gold: #a6844a;
	padding: clamp(7rem, 11vw, 11rem) var(--ldh-gutter) clamp(8rem, 12vw, 12rem);
	background: #f1f2f4;
	color: var(--home-ink);
}

.ldh-home-communities__heading {
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) minmax(19rem, 0.6fr);
	align-items: end;
	gap: clamp(3rem, 8vw, 9rem);
	width: min(100%, 1440px);
	margin: 0 auto clamp(4rem, 7vw, 7rem);
}

.ldh-home-communities__heading .ldh-home-kicker {
	margin-top: 0;
	margin-bottom: 1.4rem;
	color: var(--home-gold);
	font-size: 0.66rem;
	font-weight: 500;
	letter-spacing: 0.19em;
	line-height: 1.4;
	text-transform: uppercase;
}

.ldh-home-communities__heading h2 {
	max-width: 12ch;
	margin: 0;
	font-family: var(--ldh-display);
	font-size: clamp(2.2rem, 3.65vw, 4.2rem);
	font-weight: 400;
	letter-spacing: -0.06em;
	line-height: 0.98;
	text-wrap: balance;
}

.ldh-home-communities__heading h2 em {
	color: #8d713e;
	font-family: var(--ldh-serif);
	font-weight: 400;
	letter-spacing: -0.045em;
}

.ldh-home-communities__intro {
	position: relative;
	max-width: 29rem;
	margin: 0;
	padding-top: 2rem;
	color: rgba(31, 41, 51, 0.72);
	font-size: clamp(1rem, 0.94rem + 0.22vw, 1.14rem);
	line-height: 1.75;
}

.ldh-home-communities__intro::before {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 1px;
	background: linear-gradient(90deg, var(--home-gold) 0 4.5rem, rgba(31, 41, 51, 0.18) 4.5rem);
	content: "";
}

.ldh-home-communities__grid {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	gap: clamp(1rem, 1.7vw, 1.75rem);
	width: min(100%, 1540px);
	margin-inline: auto;
}

.ldh-home-community {
	position: relative;
	display: block;
	min-width: 0;
	min-height: 36rem;
	overflow: hidden;
	background: var(--home-navy);
	color: #fff;
	text-decoration: none;
	isolation: isolate;
}

.ldh-home-community--naples { grid-column: span 7; min-height: 47rem; }
.ldh-home-community--marco-island { grid-column: span 5; min-height: 47rem; }
.ldh-home-community--bonita-springs { grid-column: span 5; min-height: 36rem; }
.ldh-home-community--fort-myers { grid-column: span 7; min-height: 36rem; }
.ldh-home-community--estero { grid-column: span 6; min-height: 40rem; }
.ldh-home-community--cape-coral { grid-column: span 6; min-height: 40rem; }

.ldh-home-community__media,
.ldh-home-community__wash { position: absolute; inset: 0; }
.ldh-home-community__media { z-index: -2; }

.ldh-home-community__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: saturate(0.76) contrast(1.03);
	transition: filter 600ms ease, transform 900ms cubic-bezier(.2,.7,.2,1);
}

.ldh-home-community--naples .ldh-home-community__media img { object-position: 48% center; }
.ldh-home-community--marco-island .ldh-home-community__media img { object-position: 54% center; }
.ldh-home-community--bonita-springs .ldh-home-community__media img { object-position: 46% center; }
.ldh-home-community--fort-myers .ldh-home-community__media img { object-position: 72% center; filter: saturate(0.65) contrast(1.08); }
.ldh-home-community--estero .ldh-home-community__media img { object-position: 68% center; }
.ldh-home-community--cape-coral .ldh-home-community__media img { object-position: 38% center; }

.ldh-home-community__wash {
	z-index: -1;
	background:
		linear-gradient(180deg, rgba(5, 12, 24, 0.3), transparent 38%),
		linear-gradient(0deg, rgba(5, 12, 24, 0.9), rgba(5, 12, 24, 0.04) 67%);
	transition: background 450ms ease;
}

.ldh-home-community__content {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	padding: clamp(1.75rem, 3vw, 3.5rem);
}

.ldh-home-community__top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
}

.ldh-home-community__top > span {
	font-size: 0.61rem;
	font-weight: 500;
	letter-spacing: 0.18em;
	line-height: 1.4;
	text-transform: uppercase;
}

.ldh-home-community__top i {
	display: grid;
	place-items: center;
	width: 3.1rem;
	aspect-ratio: 1;
	border: 1px solid rgba(255, 255, 255, 0.55);
	border-radius: 50%;
	font-style: normal;
	transition: background 350ms ease, border-color 350ms ease, transform 450ms cubic-bezier(.2,.7,.2,1);
}

.ldh-home-community__body { margin-top: auto; }

.ldh-home-community h3 {
	max-width: 12ch;
	margin: 0 0 0.8rem;
	font-family: var(--ldh-serif);
	font-size: clamp(3rem, 5vw, 5.75rem);
	font-weight: 400;
	letter-spacing: -0.055em;
	line-height: 0.94;
	text-wrap: balance;
	transition: color 350ms ease, transform 450ms cubic-bezier(.2,.7,.2,1);
}

.ldh-home-community__body p {
	margin: 0;
	color: rgba(255, 255, 255, 0.68);
	font-size: 0.7rem;
	font-weight: 500;
	letter-spacing: 0.13em;
	line-height: 1.4;
	text-transform: uppercase;
}

.ldh-home-community:hover .ldh-home-community__media img,
.ldh-home-community:focus-visible .ldh-home-community__media img { filter: saturate(0.88) contrast(1.02); transform: scale(1.045); }
.ldh-home-community:hover .ldh-home-community__wash,
.ldh-home-community:focus-visible .ldh-home-community__wash { background: linear-gradient(0deg, rgba(5, 12, 24, 0.92), rgba(5, 12, 24, 0.02) 72%); }
.ldh-home-community:hover h3,
.ldh-home-community:focus-visible h3 { color: #d9c08f; transform: translateX(0.3rem); }
.ldh-home-community:hover .ldh-home-community__top i,
.ldh-home-community:focus-visible .ldh-home-community__top i { border-color: var(--home-gold); background: var(--home-gold); transform: rotate(45deg); }

@media (max-width: 1100px) {
	.ldh-home-community,
	.ldh-home-community--naples,
	.ldh-home-community--marco-island,
	.ldh-home-community--bonita-springs,
	.ldh-home-community--fort-myers,
	.ldh-home-community--estero,
	.ldh-home-community--cape-coral { grid-column: span 6; min-height: 38rem; }
}

@media (max-width: 820px) {
	.ldh-home-communities__heading { grid-template-columns: 1fr; gap: 2.75rem; }
	.ldh-home-communities__intro { max-width: 36rem; }
}

@media (max-width: 760px) {
	.ldh-home-communities { padding-inline: 1rem; }
	.ldh-home-communities__heading h2 { font-size: clamp(2rem, 8vw, 3.05rem); }
	.ldh-home-communities__grid { grid-template-columns: 1fr; gap: 1rem; }
	.ldh-home-community,
	.ldh-home-community--naples,
	.ldh-home-community--marco-island,
	.ldh-home-community--bonita-springs,
	.ldh-home-community--fort-myers,
	.ldh-home-community--estero,
	.ldh-home-community--cape-coral { grid-column: auto; width: 100%; min-height: 36rem; }
	.ldh-home-community__content { padding: 1.75rem; }
	.ldh-home-community h3 { font-size: clamp(3.25rem, 15vw, 5rem); }
}

@media (prefers-reduced-motion: reduce) {
	.ldh-home-community__media img,
	.ldh-home-community__wash,
	.ldh-home-community h3,
	.ldh-home-community__top i { transform: none; transition: none; }
}
