/**
 * Reviews Page · Postcards Template
 *
 * Phase 5 v3.3, shipped 2026-05-06.
 *
 * Layout:
 *   Desktop ≥ 980px: 2-column grid — sidebar (locations + sort) + main
 *                    (search + wall + pagination)
 *   Mobile  < 980px:  stacked — hero, search, sort, horizontal-scroll
 *                     location chips, wall, pagination
 *
 * Brand: #1E1A14 ink, #C4A078 gold, #FAF7F1 cream, #A03330 postmark.
 */

@import url('https://fonts.googleapis.com/css2?family=Caveat:wght@500;600&family=Cormorant+Garamond:ital,wght@0,500;1,400&family=Special+Elite&display=swap');

.haven-reviews-page {
	background: #E8DDC8;
	background-image:
		radial-gradient(at 12% 18%, rgba(196,160,120,0.30), transparent 38%),
		radial-gradient(at 88% 70%, rgba(160,51,48,0.10), transparent 50%),
		repeating-linear-gradient(135deg, transparent, transparent 12px, rgba(30,26,20,0.015) 12px, rgba(30,26,20,0.015) 13px);
	min-height: 100vh;
}

/* ── Hero ─────────────────────────────────────────────────────────────── */

.haven-reviews-pc-hero { padding: 56px 32px 24px; text-align: center; }
.haven-reviews-pc-hero__eyebrow {
	display: inline-block; margin: 0 0 16px; padding: 6px 14px;
	font: 500 10px/1 'Inter', system-ui, -apple-system, sans-serif;
	letter-spacing: 0.30em; text-transform: uppercase; color: #4A3F2E;
	background: rgba(255,255,255,0.55); border: 1px solid rgba(30,26,20,0.10);
}
.haven-reviews-pc-hero__title {
	margin: 0 0 14px;
	font: italic 400 clamp(40px, 6vw, 68px)/1.1 'Cormorant Garamond', Georgia, serif;
	color: #1E1A14;
}
.haven-reviews-pc-hero__title em { font-style: italic; color: #4A3F2E; }
.haven-reviews-pc-hero__lede {
	margin: 0 auto; max-width: 540px;
	font: 400 14px/1.65 'Inter', system-ui, -apple-system, sans-serif;
	color: #4A3F2E;
}
.haven-reviews-pc-hero__counts {
	display: flex; justify-content: center; flex-wrap: wrap; gap: 32px; margin-top: 24px;
}
.haven-reviews-pc-hero__count {
	font: 600 12px/1 'Inter', sans-serif;
	letter-spacing: 0.16em; text-transform: uppercase; color: #1E1A14;
}
.haven-reviews-pc-hero__count em {
	font-family: 'Caveat', cursive; font-style: normal;
	font-size: 22px; color: #A03330; margin-right: 6px;
}

/* ── 2-column layout ──────────────────────────────────────────────────── */

.haven-reviews-pc-layout {
	max-width: 1320px;
	margin: 0 auto;
	padding: 24px 24px 80px;
	display: grid;
	grid-template-columns: 260px minmax(0, 1fr);
	gap: 32px;
}

@media (max-width: 979px) {
	.haven-reviews-pc-layout {
		grid-template-columns: 1fr;
		gap: 16px;
		padding: 16px 0 56px;
	}
}

/* ── Sidebar ──────────────────────────────────────────────────────────── */

.haven-reviews-pc-sidebar {
	position: sticky;
	top: 16px;
	align-self: start;
	max-height: calc(100vh - 32px);
}

.haven-reviews-pc-sidebar__inner {
	display: flex; flex-direction: column; gap: 24px;
	padding: 22px 22px 18px;
	background: rgba(255,255,255,0.65);
	border: 1px solid rgba(30,26,20,0.10);
	border-radius: 16px;
	box-shadow: 0 6px 20px rgba(30,26,20,0.06);
	max-height: calc(100vh - 32px);
	overflow-y: auto;
}

.haven-reviews-pc-sidebar__section { display: flex; flex-direction: column; gap: 10px; }

.haven-reviews-pc-sidebar__heading {
	margin: 0;
	font: 600 10px/1 'Inter', sans-serif;
	letter-spacing: 0.24em; text-transform: uppercase; color: #7A6A52;
}

.haven-reviews-pc-filter {
	display: flex; flex-direction: column; gap: 4px;
}

@media (max-width: 979px) {
	.haven-reviews-pc-sidebar {
		position: static;
		max-height: none;
		padding: 0 16px;
	}
	.haven-reviews-pc-sidebar__inner {
		padding: 14px 16px 16px;
		max-height: none;
		overflow: visible;
		gap: 14px;
	}
	.haven-reviews-pc-filter {
		flex-direction: row;
		flex-wrap: nowrap;
		overflow-x: auto;
		gap: 8px;
		padding-bottom: 6px;
		scrollbar-width: thin;
		scrollbar-color: rgba(30,26,20,0.20) transparent;
	}
	.haven-reviews-pc-filter::-webkit-scrollbar { height: 6px; }
	.haven-reviews-pc-filter::-webkit-scrollbar-thumb {
		background: rgba(30,26,20,0.20); border-radius: 999px;
	}
}

/* ── Chip ─────────────────────────────────────────────────────────────── */

.haven-reviews-pc-chip {
	display: inline-flex; align-items: center; justify-content: space-between; gap: 8px;
	padding: 9px 14px; min-height: 36px;
	font: 500 12px/1.3 'Inter', sans-serif;
	letter-spacing: 0.02em;
	background: transparent; color: #4A3F2E;
	border: 1px solid rgba(30,26,20,0.14); border-radius: 8px;
	cursor: pointer; text-align: left;
	transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.haven-reviews-pc-chip:hover {
	background: rgba(255,255,255,0.85);
	border-color: rgba(196,160,120,0.55);
	color: #1E1A14;
}
.haven-reviews-pc-chip.is-active {
	background: #1E1A14; color: #FBF6E9; border-color: #1E1A14;
}
.haven-reviews-pc-chip__label { flex: 1 1 auto; min-width: 0; }
.haven-reviews-pc-chip__count {
	flex: 0 0 auto;
	font-size: 10px; font-weight: 600;
	color: inherit; opacity: 0.6;
	letter-spacing: 0.04em;
}
.haven-reviews-pc-chip.is-active .haven-reviews-pc-chip__count { opacity: 0.85; }

@media (max-width: 979px) {
	.haven-reviews-pc-chip {
		flex-shrink: 0;
		padding: 8px 14px;
		border-radius: 999px;
		min-width: max-content;
	}
	.haven-reviews-pc-chip__label { white-space: nowrap; }
}

/* ── Sort dropdown ────────────────────────────────────────────────────── */

.haven-reviews-pc-sort {
	width: 100%;
	min-height: 40px;
	padding: 9px 32px 9px 14px;
	font: 500 13px/1 'Inter', sans-serif; color: #1E1A14;
	background: #FFF url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 16 16'%3E%3Cpath d='M4 6 L8 10 L12 6' stroke='%231E1A14' stroke-width='1.6' fill='none'/%3E%3C/svg%3E") no-repeat right 12px center;
	border: 1px solid rgba(30,26,20,0.18); border-radius: 8px;
	cursor: pointer;
	-webkit-appearance: none; -moz-appearance: none; appearance: none;
}
.haven-reviews-pc-sort:hover { border-color: rgba(196,160,120,0.55); }
.haven-reviews-pc-sort:focus {
	outline: 2px solid rgba(196,160,120,0.55);
	outline-offset: 1px;
	border-color: rgba(196,160,120,0.55);
}

/* ── Main ─────────────────────────────────────────────────────────────── */

.haven-reviews-pc-main { min-width: 0; }

/* ── Search ───────────────────────────────────────────────────────────── */

.haven-reviews-pc-search {
	position: relative; max-width: 520px; margin: 0 auto 28px;
}

@media (max-width: 979px) {
	.haven-reviews-pc-search { padding: 0 16px; }
}

.haven-reviews-pc-search__field {
	display: flex; align-items: center; gap: 10px;
	padding: 8px 14px; min-height: 42px;
	background: #FFF; border: 1px solid rgba(30,26,20,0.18); border-radius: 999px;
	transition: border-color .15s ease, box-shadow .15s ease;
}
.haven-reviews-pc-search__field:focus-within {
	border-color: rgba(196,160,120,0.55);
	box-shadow: 0 0 0 3px rgba(196,160,120,0.18);
}
.haven-reviews-pc-search__icon { flex: 0 0 auto; color: #7A6A52; }
.haven-reviews-pc-search__input {
	flex: 1 1 auto; min-width: 0; padding: 0;
	font: 400 14px/1.4 'Inter', sans-serif; color: #1E1A14;
	background: transparent; border: 0; outline: none;
}
.haven-reviews-pc-search__input::placeholder { color: #9C8E76; }
.haven-reviews-pc-search__clear {
	flex: 0 0 auto; width: 22px; height: 22px;
	display: inline-flex; align-items: center; justify-content: center;
	font: 400 18px/1 sans-serif; color: #7A6A52;
	background: transparent; border: 0; border-radius: 999px; cursor: pointer;
}
.haven-reviews-pc-search__clear:hover { color: #1E1A14; background: rgba(30,26,20,0.06); }

.haven-reviews-pc-search__suggestions {
	position: absolute; top: calc(100% + 6px); left: 0; right: 0;
	z-index: 10; margin: 0; padding: 6px;
	list-style: none;
	background: #FFF; border: 1px solid rgba(30,26,20,0.12); border-radius: 12px;
	box-shadow: 0 16px 40px rgba(30,26,20,0.18);
	max-height: 320px; overflow-y: auto;
}
.haven-reviews-pc-search__suggestion {
	display: flex; flex-direction: column; gap: 2px;
	padding: 10px 14px; border-radius: 8px; cursor: pointer;
	transition: background .12s ease;
}
.haven-reviews-pc-search__suggestion:hover,
.haven-reviews-pc-search__suggestion:focus {
	background: rgba(196,160,120,0.18); outline: none;
}
.haven-reviews-pc-search__suggestion-name {
	font: 500 14px/1.3 'Inter', sans-serif; color: #1E1A14;
}
.haven-reviews-pc-search__suggestion-dest {
	font: italic 400 12px/1.3 'Cormorant Garamond', Georgia, serif; color: #7A6A52;
}
.haven-reviews-pc-search__no-match {
	padding: 14px; text-align: center;
	font: italic 400 13px/1.4 'Cormorant Garamond', Georgia, serif; color: #7A6A52;
}

/* ── Postcard wall ────────────────────────────────────────────────────── */

.haven-reviews-pc-wall {
	column-count: 2; column-gap: 28px;
}
@media (max-width: 720px) { .haven-reviews-pc-wall { column-count: 1; padding: 0 16px; } }
@media (min-width: 1280px) { .haven-reviews-pc-wall { column-count: 3; column-gap: 32px; } }

.haven-reviews-pc-card {
	break-inside: avoid; display: block; margin: 0 0 28px;
	background: #FBF6E9;
	border: 1px solid rgba(30,26,20,0.08);
	box-shadow:
		0 1px 0 rgba(255,255,255,0.6) inset,
		0 2px 4px rgba(30,26,20,0.10),
		0 18px 40px rgba(30,26,20,0.16);
	transform: rotate(var(--pc-rot, 0deg));
	transition: transform .25s ease, box-shadow .25s ease;
}
.haven-reviews-pc-card:hover {
	transform: rotate(0deg) translateY(-4px);
	box-shadow: 0 24px 48px rgba(30,26,20,0.22);
}
.haven-reviews-pc-card.is-hidden { display: none; }

.haven-reviews-pc-card__front {
	position: relative; aspect-ratio: 4/3;
	background: linear-gradient(135deg, #C4A078, #1E1A14);
	background-size: cover; background-position: center;
	border-bottom: 1px dashed rgba(30,26,20,0.12);
}

.haven-reviews-pc-postmark {
	position: absolute; top: 18px; left: 18px;
	width: 108px; height: 108px; border-radius: 50%;
	border: 2px solid #A03330; opacity: 0.55;
	display: flex; flex-direction: column; align-items: center; justify-content: center;
	transform: rotate(-12deg);
	font-family: 'Special Elite', 'Courier New', monospace;
	color: #A03330; text-align: center;
}
.haven-reviews-pc-postmark__top {
	font-size: 9px; letter-spacing: 0.18em; text-transform: uppercase;
	border-bottom: 1px solid #A03330; padding-bottom: 3px; width: 74%;
}
.haven-reviews-pc-postmark__loc {
	font-size: 11px; letter-spacing: 0.10em; text-transform: uppercase;
	font-weight: 700; margin: 6px 0 4px;
}
.haven-reviews-pc-postmark__date {
	font-size: 10px; letter-spacing: 0.10em; text-transform: uppercase;
	border-top: 1px solid #A03330; padding-top: 3px; width: 74%;
}

.haven-reviews-pc-stamp {
	position: absolute; top: 12px; right: 12px;
	width: 62px; height: 78px;
	background: #FBF6E9; border: 6px solid #FBF6E9;
	outline: 2px dotted rgba(30,26,20,0.18); outline-offset: -3px;
	display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px;
	font-family: 'Special Elite', 'Courier New', monospace;
	text-align: center; line-height: 1.0; color: #A03330;
}
.haven-reviews-pc-stamp__brand {
	font-size: 10px; letter-spacing: 0.10em; text-transform: uppercase;
	color: #1E1A14; font-weight: 700;
}
.haven-reviews-pc-stamp__rate { font-size: 18px; font-weight: 700; color: #A03330; }
.haven-reviews-pc-stamp__stars { font-size: 9px; letter-spacing: 1px; color: #C4A078; }

.haven-reviews-pc-card__front-cap {
	position: absolute; left: 0; right: 0; bottom: 0;
	padding: 14px 18px 16px;
	background: linear-gradient(180deg, transparent, rgba(30,26,20,0.78));
	color: #FFF;
}
.haven-reviews-pc-card__property-link {
	display: block; color: #FFF; text-decoration: none;
	transition: color .15s ease;
}
.haven-reviews-pc-card__property-link:hover { color: #C4A078; }
.haven-reviews-pc-card__property-name {
	margin: 0;
	font: italic 400 22px/1.2 'Cormorant Garamond', Georgia, serif;
}
.haven-reviews-pc-card__property-loc {
	margin: 6px 0 0;
	font: 500 11px/1 'Inter', sans-serif;
	letter-spacing: 0.18em; text-transform: uppercase; opacity: 0.85;
}

.haven-reviews-pc-card__back {
	padding: 24px 26px 22px;
	background:
		repeating-linear-gradient(0deg, transparent, transparent 26px, rgba(30,26,20,0.04) 26px, rgba(30,26,20,0.04) 27px),
		#FBF6E9;
}
.haven-reviews-pc-card__head {
	display: flex; align-items: flex-start; justify-content: space-between; gap: 12px;
	margin-bottom: 10px;
}
.haven-reviews-pc-card__title {
	flex: 1; margin: 0;
	font: italic 500 17px/1.3 'Cormorant Garamond', Georgia, serif; color: #1E1A14;
}
.haven-reviews-pc-card__rating {
	white-space: nowrap; font-size: 13px; letter-spacing: 1px;
	color: #C4A078; line-height: 1.2;
}
.haven-reviews-pc-card__msg {
	margin: 0 0 14px;
	font: 600 18px/1.45 'Caveat', cursive; color: #1E1A14;
	white-space: pre-wrap;
}
.haven-reviews-pc-card__signoff {
	display: flex; align-items: flex-end; justify-content: space-between; gap: 12px;
	border-top: 1px dashed rgba(30,26,20,0.15); padding-top: 10px;
}
.haven-reviews-pc-card__signature { font: 500 22px/1 'Caveat', cursive; color: #A03330; }
.haven-reviews-pc-card__date {
	font: 400 10px/1 'Special Elite', 'Courier New', monospace;
	letter-spacing: 0.10em; text-transform: uppercase; color: #7A6A52;
}

/* ── Pagination ───────────────────────────────────────────────────────── */

.haven-reviews-pc-pagination {
	display: flex; align-items: center; justify-content: center; gap: 16px;
	margin-top: 32px; padding: 16px 0 0;
}
.haven-reviews-pc-page-btn {
	display: inline-flex; align-items: center; gap: 8px;
	padding: 10px 20px; min-height: 40px;
	font: 600 12px/1 'Inter', sans-serif;
	letter-spacing: 0.10em; text-transform: uppercase; color: #1E1A14;
	background: rgba(255,255,255,0.72);
	border: 1px solid rgba(30,26,20,0.18); border-radius: 999px;
	cursor: pointer;
	transition: background .15s ease, border-color .15s ease, color .15s ease, opacity .15s ease;
}
.haven-reviews-pc-page-btn:hover:not(:disabled) {
	background: #1E1A14; color: #FBF6E9; border-color: #1E1A14;
}
.haven-reviews-pc-page-btn:disabled { opacity: 0.4; cursor: not-allowed; }
.haven-reviews-pc-page-info {
	font: 500 11px/1.4 'Inter', sans-serif;
	letter-spacing: 0.10em; text-transform: uppercase; color: #4A3F2E;
	min-width: 220px; text-align: center;
}

/* ── Empty states ─────────────────────────────────────────────────────── */

.haven-reviews-pc-empty,
.haven-reviews-pc-empty-state {
	max-width: 540px; margin: 0 auto; padding: 40px 24px;
	text-align: center;
	font: italic 400 18px/1.5 'Cormorant Garamond', Georgia, serif; color: #4A3F2E;
}

@media (prefers-reduced-motion: reduce) {
	.haven-reviews-pc-card,
	.haven-reviews-pc-search__field,
	.haven-reviews-pc-page-btn,
	.haven-reviews-pc-chip { transition: none; }
}
