.favorites-page {
	min-height: 100vh;
	padding-top: clamp(88px, 7vw, 118px);
	background: var(--white);
	color: var(--ink)
}

.favorites-content {
	padding: clamp(24px, 3vw, 36px) 0 90px
}

.favorites-heading {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 24px;
	margin-bottom: 24px;
	padding-bottom: 18px;
	border-bottom: 1px solid var(--line)
}

.favorites-heading-actions-only {
	justify-content: flex-end
}

.favorites-heading h2 {
	margin: 3px 0 0;
	font-size: 2.15rem;
	font-weight: 650;
	line-height: 1.1
}

.favorites-heading-actions {
	display: flex;
	align-items: center;
	gap: 18px
}

.favorites-heading-actions>p {
	margin: 0;
	color: var(--muted);
	font-size: .86rem
}

.favorites-heading-actions strong {
	color: var(--muted);
	font-size: inherit;
	font-weight: 700
}

.favorites-grid {
	display: flex;
	align-items: stretch;
	gap: 24px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scrollbar-width: none;
	padding: 8px 12px 24px;
	margin: -8px -12px -6px;
	scroll-padding-inline: 12px
}

.favorites-grid::-webkit-scrollbar {
	display: none
}

.favorites-grid>.property-card {
	flex: 0 0 calc((100% - 48px)/3);
	height: auto;
	scroll-snap-align: start
}

.favorites-loading {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 220px;
	color: var(--muted)
}

.favorites-spinner {
	width: 25px;
	height: 25px;
	border: 3px solid var(--line);
	border-top-color: var(--brand);
	border-radius: 50%;
	animation: favorites-spin .8s linear infinite
}

.favorites-loading[hidden],
.favorites-error[hidden],
.favorites-empty[hidden],
.favorites-lead[hidden],
.favorites-form-alert[hidden] {
	display: none !important
}

.favorites-error {
	padding: 14px;
	border: 1px solid color-mix(in srgb, var(--brand) 38%, var(--line));
	border-radius: 10px;
	background: var(--paper);
	text-align: center
}

.favorites-empty {
	display: grid;
	justify-items: center;
	padding: clamp(55px, 8vw, 100px) 20px;
	text-align: center
}

.favorites-empty>.icon {
	width: 62px;
	height: 62px;
	color: var(--brand)
}

.favorites-empty h2 {
	margin: 16px 0 5px;
	font-size: 2rem
}

.favorites-empty p {
	max-width: 550px;
	margin: 0;
	color: var(--muted)
}

.favorites-empty a,
.favorites-lead-copy>a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin-top: 22px;
	padding: 12px 20px;
	border: 1px solid var(--brand);
	border-radius: var(--radius);
	background: var(--brand);
	color: var(--brand-contrast, #fff);
	font-weight: 750
}

.favorites-lead-copy>a .icon {
	width: 20px;
	height: 20px
}

.favorites-lead {
	display: grid;
	grid-template-columns: minmax(0, .9fr) minmax(420px, 1.1fr);
	gap: clamp(32px, 6vw, 84px);
	align-items: start;
	margin-top: clamp(52px, 7vw, 90px);
	padding: clamp(26px, 4vw, 48px);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	background: var(--paper)
}

.favorites-lead-copy {
	position: sticky;
	top: 130px
}

.favorites-lead-copy h2 {
	margin: 4px 0 12px;
	font-size: 1.25rem;
	font-weight: 650;
	line-height: 1.08;
	letter-spacing: -.03em
}

.favorites-lead-copy>p:last-of-type {
	margin: 0;
	color: var(--muted)
}

.favorites-form {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
	padding: clamp(20px, 3vw, 30px);
	border: 1px solid var(--line);
	border-radius: 16px;
	background: var(--white)
}

.favorites-form>label {
	display: grid;
	gap: 5px;
	color: var(--muted);
	font-size: .84rem
}

.favorites-form>label:nth-of-type(1),
.favorites-form>label:nth-of-type(4),
.favorites-privacy,
.favorites-form>.h-captcha,
.favorites-form-feedback,
.favorites-form-alert,
.favorites-form>button {
	grid-column: 1/-1
}

.favorites-form input,
.favorites-form textarea {
	width: 100%;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	outline: 0;
	background: var(--white);
	color: var(--ink);
	font: inherit;
	font-size: .9rem
}

.favorites-form input {
	height: 48px;
	padding: 0 12px
}

.favorites-form textarea {
	min-height: 105px;
	padding: 11px 12px;
	resize: vertical
}

.favorites-form input:focus,
.favorites-form textarea:focus {
	border-color: var(--ink);
	outline: 0
}

.favorites-form input:focus-visible,
.favorites-form textarea:focus-visible {
	box-shadow: 0 0 0 2px color-mix(in srgb, var(--ink) 8%, transparent)
}

.favorites-form .favorites-privacy {
	display: flex;
	grid-template-columns: none;
	align-items: flex-start;
	gap: 9px
}

.favorites-privacy input {
	flex: 0 0 auto;
	width: 17px;
	height: 17px;
	margin-top: 2px;
	accent-color: var(--brand)
}

.favorites-privacy a {
	color: var(--brand);
	text-decoration: underline
}

.favorites-form>button {
	min-height: 50px;
	border: 1px solid var(--brand);
	border-radius: calc(var(--radius)*2);
	background: var(--brand);
	color: var(--brand-contrast, #fff);
	font-size: .82rem;
	font-weight: 750;
	cursor: pointer
}

.favorites-form>button:hover {
	filter: brightness(.94)
}

.favorites-form-feedback,
.favorites-form-alert {
	margin: 0;
	padding: 11px 13px;
	border-radius: 9px;
	font-size: .84rem
}

.favorites-form-feedback.is-success {
	background: #e8f7ee;
	color: #176b38
}

.favorites-form-feedback.is-error,
.favorites-form-alert {
	background: #fff0f0;
	color: #a72828
}

.favorites-form-alert.is-visible {
	display: block
}

.favorites-form .h-captcha {
	position: relative;
	z-index: 1;
	max-width: 100%;
	overflow: visible
}

@keyframes favorites-spin {
	to {
		transform: rotate(360deg)
	}
}

@media(max-width:1199px) {
	.favorites-grid>.property-card {
		flex-basis: calc((100% - 24px)/2)
	}

	.favorites-lead {
		grid-template-columns: 1fr
	}

	.favorites-lead-copy {
		position: static
	}
}

@media(max-width:699px) {
	.favorites-page {
		padding-top: 76px
	}

	.favorites-heading {
		align-items: flex-start
	}

	.favorites-heading-actions {
		align-items: flex-end;
		flex-direction: column;
		gap: 8px
	}

	.favorites-grid>.property-card {
		flex-basis: 88%
	}

	.favorites-lead {
		padding: 18px
	}

	.favorites-form {
		grid-template-columns: 1fr;
		padding: 18px
	}

	.favorites-form>label {
		grid-column: 1/-1
	}
}

@media(prefers-reduced-motion:reduce) {
	.favorites-loading .favorites-spinner {
		animation: none
	}

	.favorites-grid {
		scroll-behavior: auto
	}
}

.favorites-contact {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	justify-content: space-between;
	gap: clamp(28px, 5vw, 72px);
	margin-top: clamp(48px, 6vw, 76px);
	padding: 36px;
	border-radius: var(--radius);
	background: var(--paper)
}

.favorites-contact[hidden],
.favorites-modal[hidden],
.favorites-modal-backdrop[hidden] {
	display: none !important
}

.favorites-contact h2 {
	margin: 3px 0 8px;
	font-size: 1.25rem;
	font-weight: 600;
	line-height: 1.08;
	letter-spacing: -.035em
}

.favorites-contact p:last-child {
	max-width: 720px;
	margin: 0;
	color: var(--muted)
}

.favorites-contact>button {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	gap: 9px;
	min-height: 50px;
	padding: 11px 18px;
	border: 1px solid var(--brand);
	border-radius: var(--radius-sm);
	background: var(--brand);
	color: var(--brand-contrast, #fff);
	font-size: .82rem;
	font-weight: 750;
	letter-spacing: .04em;
	line-height: 1.2;
	cursor: pointer
}

.favorites-contact>button:hover {
	filter: brightness(.94)
}

.favorites-contact>button .icon {
	width: 20px;
	height: 20px
}

.favorites-contact>button:hover .icon {
	fill: currentColor
}

.favorites-modal-backdrop {
	position: fixed;
	z-index: 90;
	inset: 0;
	background: rgba(8, 12, 10, .58);
	animation: favorites-backdrop-in .2s ease
}

.favorites-modal {
	position: fixed;
	z-index: 91;
	top: 50%;
	left: 50%;
	width: min(680px, calc(100% - 32px));
	max-height: calc(100dvh - 40px);
	overflow-y: auto;
	padding: clamp(22px, 3vw, 32px);
	border: 1px solid var(--line);
	border-radius: calc(var(--radius)*2);
	background: var(--white);
	color: var(--ink);
	box-shadow: 0 28px 80px rgba(0, 0, 0, .28);
	transform: translate(-50%, -50%);
	animation: favorites-modal-in .22s ease
}

.favorites-modal-head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 20px;
	padding-bottom: 16px;
	border-bottom: 1px solid var(--line)
}

.favorites-modal-head h2 {
	margin: 3px 0 0;
	font-size: 2rem;
	font-weight: 650;
	line-height: 1.1
}

.favorites-modal-head>button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	padding: 0;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	background: transparent;
	color: var(--ink);
	cursor: pointer
}

.favorites-modal-head>button:hover {
	background: var(--line);
	color: var(--ink)
}

.favorites-modal-head>button .icon {
	width: 18px;
	height: 18px
}

.favorites-modal-intro {
	margin: 17px 0;
	color: var(--muted);
	font-size: .88rem
}

.favorites-modal .favorites-form {
	padding: 0;
	border: 0;
	border-radius: 0
}

.favorites-modal-open {
	overflow: hidden
}

.favorites-modal-open .site-header {
	z-index: 20
}

@keyframes favorites-backdrop-in {
	from {
		opacity: 0
	}
}

@keyframes favorites-modal-in {
	from {
		opacity: 0;
		transform: translate(-50%, calc(-50% + 16px))
	}
}

@media(max-width:699px) {
	.favorites-contact {
		align-items: stretch;
		grid-template-columns: 1fr;
		padding: 28px 20px
	}

	.favorites-contact>button {
		width: 100%
	}

	.favorites-modal {
		top: auto;
		bottom: 0;
		left: 0;
		width: 100%;
		max-height: calc(100dvh - 18px);
		padding: 20px 18px;
		border-radius: 18px 18px 0 0;
		transform: none;
		animation: favorites-sheet-in .23s ease
	}

	.favorites-modal-head>button span {
		display: none
	}

	@keyframes favorites-sheet-in {
		from {
			transform: translateY(24px);
			opacity: 0
		}
	}
}

/* Mantém o conteúdo imediatamente abaixo da altura real do cabeçalho. */
.favorites-page {
	padding-top: var(--site-header-height, 88px)
}
