/**
 * casara/property-grid + views/property-card.php (also loaded by related-properties).
 * Builds on .c-card / .c-card--property / --featured / --off-market primitives (components.css).
 */

/* ---------- Grid toolbar ---------- */
.c-property-grid__bar {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: var(--s-2) var(--s-5);
	margin-bottom: var(--s-7);
	padding-bottom: var(--s-4);
	border-bottom: var(--hairline) solid var(--c-line);
}
.c-property-grid__count {
	font-family: var(--f-serif);
	font-size: var(--f-size-h5);
	font-style: italic;
	font-weight: var(--f-weight-light);
}
.c-property-grid__note {
	font-size: var(--f-size-caption);
	letter-spacing: var(--f-track-label);
	text-transform: uppercase;
	color: var(--c-text-muted);
}

/* ---------- Lists ---------- */
.c-property-grid__list {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--s-8) var(--s-gutter);
	transition: opacity var(--d-base) var(--e-out);
}
.c-property-grid__list[aria-busy="true"] { opacity: 0.35; pointer-events: none; }

.c-property-grid--grid .c-property-grid__list { row-gap: var(--s-8); }
@media (min-width: 48em) {
	.c-property-grid--grid .c-property-grid__list { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: var(--s-9); }
}
@media (min-width: 80em) {
	.c-property-grid--grid .c-property-grid__list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* Editorial (Private Collection, BRANDBOOK §11.1): featured lead card 8/4 (3:2 on desktop), then 2–3 per row.
   Pairs are staggered (6 · gap · 5); when the remaining count is odd, the last three share one row,
   so the grid never ends on a lone card. */
@media (min-width: 48em) {
	.c-property-grid--editorial .c-property-grid__list {
		grid-template-columns: repeat(12, minmax(0, 1fr));
		row-gap: var(--s-9);
	}
	.c-property-grid--editorial .c-property-card { grid-column: span 6; }
	.c-property-grid--editorial .c-property-card--featured { grid-column: 1 / -1; }
	.c-property-grid--editorial .c-property-card--featured ~ .c-property-card:nth-child(odd) { margin-top: var(--s-9); }
	.c-property-grid--editorial .c-property-grid__list:has(> .c-property-card--featured):has(> :last-child:nth-child(even)) > .c-property-card--featured ~ .c-property-card:nth-last-child(-n+3) {
		grid-column: span 4;
		margin-top: 0;
	}
	.c-property-grid--editorial .c-property-grid__list:has(> :last-child:nth-child(even)) > .c-property-card--featured ~ .c-property-card:nth-last-child(-n+3) .c-card__title { font-size: var(--f-size-h4); }
	/* Without a featured card (1–2 residences): a plain staggered pair. */
	.c-property-grid--editorial .c-property-card--editorial:first-child + .c-property-card { margin-top: var(--s-9); }
}
@media (min-width: 64em) {
	.c-property-grid--editorial .c-property-card--featured ~ .c-property-card:nth-child(even) { grid-column: 1 / span 6; }
	.c-property-grid--editorial .c-property-card--featured ~ .c-property-card:nth-child(odd),
	.c-property-grid--editorial .c-property-card--editorial:first-child + .c-property-card { grid-column: 8 / span 5; margin-top: var(--s-10); }
	.c-property-grid--editorial .c-property-grid__list:has(> .c-property-card--featured):has(> :last-child:nth-child(even)) > .c-property-card--featured ~ .c-property-card:nth-last-child(-n+3) {
		grid-column: auto / span 4;
		margin-top: 0;
	}
}
.c-property-grid--editorial .c-property-card { --card-ratio: var(--ratio-property); }
.c-property-grid--editorial .c-property-card .c-card__title { font-size: var(--f-size-h3); font-weight: var(--f-weight-light); }

/* ---------- Card refinements ---------- */
.c-property-card { row-gap: 0; } /* keep the featured card's 8/4 column gap from components.css */
.c-property-card__media { background: var(--c-surface-alt); }
.c-property-card__img { width: 100%; height: 100%; object-fit: cover; }
.c-property-card .c-card__body { gap: var(--s-2); }
.c-property-card .c-card__meta { margin-bottom: var(--s-1); }
.c-property-card__title { text-wrap: balance; }
.c-property-card .c-card__spec { color: var(--c-text-muted); }
.c-property-card__footer { margin-top: var(--s-3); align-items: baseline; }
.c-property-card__price { display: inline-flex; flex-wrap: wrap; align-items: baseline; gap: var(--s-2) var(--s-3); min-width: 0; }
.c-property-card__price .c-price { font-size: var(--f-size-body); letter-spacing: 0.02em; }
.c-property-card__price .c-price--request { font-size: var(--f-size-h5); }
.c-property-card .c-price-private {
	max-width: 22rem;
	font-family: var(--f-serif);
	font-size: var(--f-size-h5);
	font-style: italic;
	line-height: 1.3;
	color: var(--c-text);
}
.c-property-card .c-demo { opacity: 0.8; }
.c-property-card .c-card__cta { white-space: nowrap; color: var(--c-text); }

/* Off-market veil: quieter than the primitive (no blur jump on hover). */
.c-property-card.is-off-market .c-card__media::after {
	font-size: var(--f-size-h4);
	font-weight: var(--f-weight-light);
	letter-spacing: 0.04em;
}

/* Featured lead card: image 8 / text 4 on desktop (from .c-card--featured). */
.c-property-card--featured .c-card__title { font-size: var(--f-size-h2); line-height: 1.04; }
.c-property-card--featured .c-card__spec { font-size: var(--f-size-body); }
@media (min-width: 64em) {
	.c-property-card--featured .c-card__body { gap: var(--s-3); padding-bottom: 0; }
	.c-property-card--featured .c-property-card__footer { flex-direction: column; align-items: flex-start; gap: var(--s-5); }
}

/* Compact (related): smaller titles. */
.c-property-card--compact .c-card__title { font-size: var(--f-size-h4); }

/* ---------- Empty / error / more ---------- */
.c-property-grid__empty {
	display: grid;
	justify-items: start;
	gap: var(--s-4);
	max-width: 40rem;
	padding-block: var(--s-8);
}
.c-property-grid__empty[hidden] { display: none; }
.c-property-grid__empty-title { font-family: var(--f-serif); font-size: var(--f-size-h3); font-weight: var(--f-weight-light); line-height: 1.12; }
.c-property-grid__empty-text { color: var(--c-text-muted); }
.c-property-grid__empty-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-4) var(--s-6); margin-top: var(--s-4); }
.c-property-grid__error { margin-top: var(--s-6); color: var(--c-invalid); font-size: var(--f-size-small); }
.c-property-grid__more { display: flex; justify-content: center; margin-top: var(--s-9); }
.c-property-grid__more[hidden] { display: none; }

/* Off-market: the private label needs its own line. */
.c-property-card.is-off-market .c-property-card__footer { flex-direction: column; align-items: flex-start; }
@media (min-width: 48em) {
	.c-property-grid--editorial .c-property-card--featured { --card-ratio: var(--ratio-property-wide); }
}
