/*
 * Styles of the properties plugin elements: property page (imovel mockups), featured properties (home).
 * Colors and gutters come from the child theme tokens (--onyx, --vanilla, --pv-gutter...).
 */

/* Breadcrumb */
.pv-breadcrumb ol {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 13px;
	font-weight: var(--pv-weight-light, 300);
	color: var(--taupe, #a39b90);
}
.pv-breadcrumb li {
	display: flex;
	align-items: center;
	gap: 12px;
}
.pv-breadcrumb li + li::before {
	content: "/";
}
.pv-breadcrumb a {
	color: inherit;
	text-decoration: none;
}
.pv-breadcrumb a:hover {
	color: var(--tobacco, #b59e7d);
}
.pv-breadcrumb [aria-current] {
	color: var(--vanilla, #f1eada);
}

/* Facts tiles */
.pv-facts {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 12px;
	margin: 0;
}
.pv-facts--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.pv-facts--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pv-facts--1 { grid-template-columns: minmax(0, 1fr); }
.pv-facts__item {
	display: flex;
	flex-direction: column-reverse;
	justify-content: space-between; /* labels on one line when an area tile carries its square feet */
	gap: 6px;
	padding: 28px;
	background: var(--leather, #232120);
}
.pv-facts__value {
	margin: 0;
	font-family: "Libre Caslon Display", Georgia, serif;
	font-size: 36px;
	font-weight: 400;
	line-height: 1.1;
	color: var(--vanilla, #f1eada);
	font-variant-numeric: lining-nums;
}
.pv-facts__note {
	display: block;
	margin-top: 6px;
	font-family: "Jost", sans-serif;
	font-size: 13px;
	font-weight: var(--pv-weight-light, 300);
	line-height: 1.4;
	color: var(--taupe, #a39b90);
}
.pv-facts__label {
	font-size: 14px;
	font-weight: var(--pv-weight-light, 300);
	color: var(--sand, #cec1a8);
}

/* Section titles inside the content column */
.pv-description__title,
.pv-nearby__heading,
.pv-sun__heading,
.pv-amenities__heading,
.pv-fx-chart__heading,
.pv-features__heading,
.pv-location__title {
	margin: 0;
	font-family: "Libre Caslon Display", Georgia, serif;
	font-size: 32px;
	font-weight: 400;
	line-height: 1.15;
	color: var(--vanilla, #f1eada);
}

/* Description */
.pv-description {
	display: flex;
	flex-direction: column;
	gap: 20px;
	max-width: 680px;
}
.pv-description__text {
	font-size: 17px;
	font-weight: var(--pv-weight-light, 300);
	line-height: 1.8;
	color: var(--sand, #cec1a8);
}
.pv-description__text > * {
	margin: 0;
}
.pv-description__text > * + * {
	margin-top: 1em;
}
.pv-description__more {
	align-self: flex-start;
	min-height: 44px;
	padding: 0 0 6px;
	border: 0;
	border-bottom: 1px solid var(--tobacco, #b59e7d);
	background: transparent;
	color: var(--vanilla, #f1eada);
	font: 400 13px/1.4 "Jost", sans-serif;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	cursor: pointer;
}
.pv-description__more:hover {
	color: var(--tobacco, #b59e7d);
}

/* Amenities: detected features as line icons, four columns, two on phones */
.pv-amenities {
	display: flex;
	flex-direction: column;
	gap: 28px;
}
.pv-amenities__list {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0;
	margin: 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--linha, #3a3531);
}
.pv-amenities__item {
	display: flex;
	align-items: center;
	gap: 14px;
	min-width: 0;
	padding: 18px 12px 18px 0;
	border-bottom: 1px solid var(--linha, #3a3531);
	color: var(--vanilla, #f1eada);
	font-size: 15px;
	line-height: 1.35;
}
.pv-amenities__icon {
	flex: none;
	color: var(--sand, #cec1a8);
}
@media (max-width: 1100px) {
	.pv-amenities__list {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}
@media (max-width: 767px) {
	.pv-amenities__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.pv-amenities__item {
		gap: 10px;
		font-size: 14px;
	}
}

/* Price in other currencies: one chart per currency, tabs */
.pv-fx-chart {
	display: flex;
	flex-direction: column;
	gap: 18px;
}
.pv-fx-chart__tabs {
	display: flex;
	gap: 0;
	width: max-content;
	border: 1px solid var(--vanilla, #f1eada);
}
.pv-fx-chart__tabs button {
	min-width: 56px;
	padding: 9px 16px;
	text-align: center;
	border: 0;
	background: none;
	color: var(--vanilla, #f1eada);
	font: 400 14px/1 "Jost", sans-serif;
	letter-spacing: 0.06em;
	cursor: pointer;
}
.pv-fx-chart__tabs button[aria-selected="true"] {
	background: var(--vanilla, #f1eada);
	color: var(--onyx, #1c1c1b);
}
.pv-fx-chart__summary {
	margin: 0 0 14px;
	color: var(--vanilla, #f1eada);
	font-size: 16px;
}
.pv-fx-chart__svg {
	display: block;
	width: 100%;
	height: 150px;
	overflow: visible;
}
.pv-fx-chart__area {
	fill: var(--leather, #232120);
}
.pv-fx-chart__line {
	fill: none;
	stroke: var(--vanilla, #f1eada);
	stroke-width: 1.5;
}
.pv-fx-chart__dot {
	fill: var(--pv-button, #9e5e3f);
}
.pv-fx-chart__ends {
	display: flex;
	justify-content: space-between;
	margin-top: 10px;
	color: var(--sand, #cec1a8);
	font-size: 13px;
}
.pv-fx-chart__ends span:last-child {
	text-align: right;
}
.pv-fx-chart__ends strong {
	display: block;
	margin-top: 2px;
	color: var(--vanilla, #f1eada);
	font-size: 16px;
	font-weight: 400;
}
.pv-fx-chart__note {
	margin: 0;
	color: var(--sand, #cec1a8);
	font-size: 13px;
	line-height: 1.5;
}

/* The sun and the property: compass + text */
.pv-sun {
	display: flex;
	flex-direction: column;
	gap: 24px;
}
.pv-sun__body {
	display: grid;
	grid-template-columns: 200px minmax(0, 1fr);
	align-items: center;
	gap: 40px;
}
.pv-sun__compass {
	width: 200px;
	height: 200px;
	overflow: visible;
}
.pv-sun__ring {
	fill: none;
	stroke: var(--linha, #3a3531);
}
.pv-sun__range {
	fill: var(--leather, #232120);
}
.pv-sun__tick {
	stroke: var(--sand, #cec1a8);
}
.pv-sun__letter {
	fill: var(--sand, #cec1a8);
	font: 400 11px "Jost", sans-serif;
	letter-spacing: 0.08em;
	text-anchor: middle;
	dominant-baseline: central;
}
.pv-sun__ray {
	stroke: var(--vanilla, #f1eada);
	stroke-width: 1.2;
}
.pv-sun__sun {
	fill: var(--pv-button, #9e5e3f);
}
.pv-sun__facade {
	stroke: var(--vanilla, #f1eada);
	stroke-width: 4;
}
.pv-sun__center {
	fill: var(--vanilla, #f1eada);
}
.pv-sun__text p {
	margin: 0 0 10px;
	color: var(--vanilla, #f1eada);
	font-size: 16px;
	line-height: 1.6;
}
.pv-sun__text .pv-sun__legend {
	margin: 0;
	color: var(--sand, #cec1a8);
	font-size: 13px;
}
@media (max-width: 767px) {
	.pv-sun__body {
		grid-template-columns: 1fr;
		justify-items: center;
		gap: 24px;
	}
}

/* Surroundings and neighbourhood */
.pv-nearby {
	display: flex;
	flex-direction: column;
	gap: 48px;
}
.pv-nearby__places,
.pv-nearby__text {
	display: flex;
	flex-direction: column;
	gap: 22px;
}
.pv-nearby__list {
	margin: 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--linha, #3a3531);
}
.pv-nearby__row {
	display: grid;
	grid-template-columns: 150px minmax(0, 1fr) auto;
	align-items: baseline;
	gap: 6px 20px;
	padding: 14px 0;
	border-bottom: 1px solid var(--linha, #3a3531);
}
.pv-nearby__kind {
	color: var(--sand, #cec1a8);
	font-size: 13px;
}
.pv-nearby__name {
	color: var(--vanilla, #f1eada);
	font-size: 16px;
}
.pv-nearby__dist {
	color: var(--sand, #cec1a8);
	font-size: 14px;
	text-align: right;
	white-space: nowrap;
}
.pv-nearby__note {
	margin: 0;
	color: var(--sand, #cec1a8);
	font-size: 13px;
}
.pv-nearby__text p {
	margin: 0;
	color: var(--vanilla, #f1eada);
	font-size: 16px;
	line-height: 1.75;
}
@media (max-width: 767px) {
	.pv-nearby__row {
		grid-template-columns: minmax(0, 1fr) auto;
	}
	.pv-nearby__kind {
		grid-column: 1 / -1;
	}
	.pv-nearby__dist {
		white-space: normal;
	}
}

/* Price per m² */
.pv-m2 {
	padding: 22px 0;
	border-top: 1px solid var(--linha, #3a3531);
	border-bottom: 1px solid var(--linha, #3a3531);
}
.pv-m2__value {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 6px 24px;
	margin: 0 0 6px;
}
.pv-m2__label {
	color: var(--sand, #cec1a8);
	font-size: 14px;
}
.pv-m2__value strong {
	color: var(--vanilla, #f1eada);
	font: 400 26px/1.1 "Libre Caslon Display", Georgia, serif;
}
.pv-m2__compare {
	margin: 0;
	color: var(--sand, #cec1a8);
	font-size: 14px;
}

/* Features: columns on desktop */
.pv-features {
	display: flex;
	flex-direction: column;
	gap: 32px;
}
.pv-features__groups {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 32px;
}
.pv-features__group {
	border-top: 1px solid var(--linha, #3a3531);
	padding-top: 20px;
}
.pv-features__title {
	margin: 0 0 14px;
	font: inherit;
}
.pv-features__title button {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--vanilla, #f1eada);
	font: 400 16px/1.4 "Jost", sans-serif;
	text-align: left;
	cursor: default;
	pointer-events: none;
}
.pv-features__sign {
	display: none;
}
.pv-features__list {
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 15px;
	font-weight: var(--pv-weight-light, 300);
	line-height: 1.9;
	color: var(--sand, #cec1a8);
}

/* Location */
.pv-location {
	display: flex;
	flex-direction: column;
	gap: 24px;
}
.pv-location__notes {
	margin: 0;
	font-size: 15px;
	font-weight: var(--pv-weight-light, 300);
	line-height: 1.7;
	color: var(--sand, #cec1a8);
}

/* Card strip (similar properties) */
.pv-cards {
	display: flex;
	flex-direction: column;
	gap: 44px;
	padding: 96px 0 96px var(--pv-gutter, 64px);
	background: var(--leather, #232120);
	overflow: hidden;
}
.pv-cards__head {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px 32px;
	padding-right: var(--pv-gutter, 64px);
}
.pv-cards__title {
	margin: 0;
	font-family: "Libre Caslon Display", Georgia, serif;
	font-size: 43px;
	font-weight: 400;
	line-height: 1.1;
	color: var(--vanilla, #f1eada);
}
.pv-cards__all {
	padding-bottom: 6px;
	border-bottom: 1px solid var(--tobacco, #b59e7d);
	color: var(--vanilla, #f1eada);
	font-size: 13px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	text-decoration: none;
}
.pv-cards__all:hover {
	color: var(--tobacco, #b59e7d);
}
.pv-cards__track {
	display: flex;
	gap: 28px;
	padding-right: var(--pv-gutter, 64px);
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-padding-left: 0;
	scrollbar-width: none;
}
.pv-cards__track::-webkit-scrollbar {
	display: none;
}
.pv-card {
	display: flex;
	flex: 0 0 min(520px, 80vw);
	flex-direction: column;
	gap: 16px;
	color: var(--vanilla, #f1eada);
	text-decoration: none;
	scroll-snap-align: start;
}
.pv-card__media {
	display: block;
	height: 380px;
	background: var(--onyx, #1c1c1b);
	overflow: hidden;
}
.pv-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}
.pv-card:hover .pv-card__media img {
	transform: scale(1.02);
}
.pv-card__title {
	font-family: "Libre Caslon Display", Georgia, serif;
	font-size: 25px;
	line-height: 1.2;
}
.pv-card:hover .pv-card__title {
	color: var(--tobacco, #b59e7d);
}
.pv-card__meta {
	margin-top: -8px;
	font-size: 15px;
	font-weight: var(--pv-weight-light, 300);
	color: var(--sand, #cec1a8);
}

/* Header back link: only property pages below desktop (the header template holds it). */
.pv-back-link {
	display: none;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	color: var(--vanilla, #f1eada);
}
.pv-menu-toggle--end {
	display: none !important;
}

/* Action bar (phones and tablets) */
.pv-actionbar {
	display: none;
}

@media (max-width: 1279px) {
	.pv-facts,
	.pv-facts--3 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.pv-features__groups {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	body.single-pv_property .pv-back-link {
		display: flex;
	}
	body.single-pv_property .pv-header .pv-menu-toggle:not(.pv-menu-toggle--end),
	body.single-pv_property .pv-header .pv-languages,
	body.single-pv_property .pv-header .pv-lang-menu {
		display: none !important;
	}
	body.single-pv_property .pv-header .pv-menu-toggle--end {
		display: flex !important;
	}
}

@media (max-width: 1279px) {
	.pv-actionbar {
		position: fixed;
		z-index: 90;
		right: 0;
		bottom: 0;
		left: 0;
		display: grid;
		grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
		gap: 8px;
		padding: 10px var(--pv-gutter, 16px) calc(10px + env(safe-area-inset-bottom));
		background: var(--onyx, #1c1c1b);
		border-top: 1px solid var(--linha, #3a3531);
		transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), visibility 0.35s;
	}
	.pv-actionbar.is-hidden {
		transform: translateY(100%);
		visibility: hidden;
	}
	.pv-actionbar a {
		display: flex;
		align-items: center;
		justify-content: center;
		min-height: 52px;
		font-size: 13px;
		letter-spacing: 0.14em;
		text-transform: uppercase;
		text-decoration: none;
	}
	.pv-actionbar__visit {
		background: var(--pv-button, #9e5e3f);
		color: var(--pv-on-button, #fffaf4);
		font-weight: 500;
	}
	.pv-actionbar__whatsapp {
		border: 1px solid var(--campo, #7a7068);
		color: var(--vanilla, #f1eada);
	}
	body.single-pv_property {
		padding-bottom: calc(72px + env(safe-area-inset-bottom));
	}
}

@media (max-width: 767px) {
	.pv-breadcrumb {
		display: none;
	}
	.pv-facts,
	.pv-facts--3 {
		gap: 8px;
	}
	.pv-facts__item {
		padding: 20px;
		gap: 4px;
	}
	.pv-facts__value {
		font-size: 29px;
	}
	.pv-facts__label {
		font-size: 13px;
	}
	.pv-description__title,
	.pv-features__heading,
	.pv-location__title {
		font-size: 27px;
	}
	.pv-description {
		gap: 16px;
	}
	.pv-description__text {
		font-size: 16px;
		line-height: 1.75;
	}
	.pv-description__text.is-clamped {
		display: -webkit-box;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 5;
		overflow: hidden;
	}
	.pv-description__text.is-clamped > * + * {
		margin-top: 0;
	}

	/* Features: accordion, first group open (property.js marks the section as ready). */
	.pv-features {
		gap: 12px;
	}
	.pv-features__groups {
		display: block;
	}
	.pv-features__group {
		padding-top: 0;
	}
	.pv-features__group:last-child {
		border-bottom: 1px solid var(--linha, #3a3531);
	}
	.pv-features__title {
		margin: 0;
	}
	[data-pv-accordion-ready] .pv-features__title button {
		min-height: 56px;
		cursor: pointer;
		pointer-events: auto;
	}
	[data-pv-accordion-ready] .pv-features__sign {
		display: block;
		position: relative;
		width: 14px;
		height: 14px;
	}
	.pv-features__sign::before,
	.pv-features__sign::after {
		content: "";
		position: absolute;
		top: 50%;
		left: 0;
		width: 14px;
		height: 1px;
		background: var(--tobacco, #b59e7d);
		transition: transform 0.3s ease;
	}
	.pv-features__sign::after {
		transform: rotate(90deg);
	}
	[aria-expanded="true"] .pv-features__sign::after {
		transform: rotate(0deg);
	}
	.pv-features__list {
		padding-bottom: 18px;
	}
	[data-pv-accordion-ready] .pv-features__list[hidden] {
		display: none;
	}

	.pv-location {
		gap: 16px;
	}
	.pv-location .pv-map,
	.pv-location .pv-map-fallback {
		height: 240px;
	}
	.pv-location__notes {
		font-size: 14px;
	}

	.pv-cards {
		gap: 24px;
		padding: 40px 0 40px var(--pv-gutter, 16px);
	}
	.pv-cards__title {
		font-size: 27px;
	}
	.pv-cards__track {
		gap: 12px;
	}
	.pv-card {
		flex-basis: 280px;
		gap: 10px;
	}
	.pv-card__media {
		height: 200px;
	}
	.pv-card__title {
		font-size: 20px;
	}
	.pv-card__meta {
		margin-top: -4px;
		font-size: 13px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.pv-card__media img,
	.pv-actionbar,
	.pv-features__sign::after {
		transition: none;
	}
}

/* Featured properties (home): 7 + 5 on desktop, 6 + 6 on tablets, stacked on phones */
.pv-featured {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	gap: 32px;
	align-items: start;
}
.pv-featured__card {
	display: flex;
	flex-direction: column;
	gap: 20px;
	color: var(--vanilla, #f1eada);
	text-decoration: none;
}
.pv-featured__card--main {
	grid-column: span 7;
	gap: 24px;
}
.pv-featured--1 .pv-featured__card--main {
	grid-column: 1 / -1;
}
.pv-featured__aside {
	display: flex;
	grid-column: span 5;
	flex-direction: column;
	gap: 48px;
	padding-top: 120px;
}
.pv-featured__media {
	display: block;
	background: var(--leather, #232120);
	overflow: hidden;
}
.pv-featured__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.9s cubic-bezier(0.16, 1, 0.3, 1);
}
.pv-featured__card:hover .pv-featured__media img {
	transform: scale(1.02);
}
.pv-featured__card--main .pv-featured__media {
	height: clamp(480px, 55vw, 800px);
}
.pv-featured__aside .pv-featured__card:first-child .pv-featured__media {
	height: clamp(260px, 25vw, 360px);
}
.pv-featured__aside .pv-featured__card + .pv-featured__card .pv-featured__media {
	height: clamp(220px, 19.5vw, 280px);
}
.pv-featured__info {
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.pv-featured__card--main .pv-featured__info {
	flex-direction: row;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
}
.pv-featured__text,
.pv-featured__side {
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.pv-featured__side {
	flex-shrink: 0;
	text-align: right;
}
.pv-featured__title {
	font-family: "Libre Caslon Display", Georgia, serif;
	font-size: 25px;
	line-height: 1.15;
}
.pv-featured__card--main .pv-featured__title {
	font-size: 31px;
}
.pv-featured__card:hover .pv-featured__title {
	color: var(--tobacco, #b59e7d);
}
.pv-featured__place,
.pv-featured__facts {
	font-size: 15px;
	font-weight: var(--pv-weight-light, 300);
	color: var(--sand, #cec1a8);
}
.pv-featured__price {
	font-size: 15px;
	color: var(--tobacco, #b59e7d);
}

@media (max-width: 1279px) {
	.pv-featured__card--main,
	.pv-featured__aside {
		grid-column: span 6;
	}
	.pv-featured__aside {
		padding-top: 64px;
	}
	.pv-featured__card--main .pv-featured__info {
		flex-direction: column;
		align-items: flex-start;
		gap: 8px;
	}
	.pv-featured__side {
		text-align: left;
	}
}

@media (max-width: 767px) {
	.pv-featured {
		display: flex;
		flex-direction: column;
		gap: 36px;
	}
	.pv-featured__aside {
		gap: 36px;
		padding-top: 0;
	}
	.pv-featured__card,
	.pv-featured__card--main {
		gap: 12px;
	}
	.pv-featured__card--main .pv-featured__media {
		height: clamp(300px, 108vw, 420px);
	}
	.pv-featured__aside .pv-featured__card:first-child .pv-featured__media,
	.pv-featured__aside .pv-featured__card + .pv-featured__card .pv-featured__media {
		height: clamp(220px, 67vw, 260px);
	}
	.pv-featured__title,
	.pv-featured__card--main .pv-featured__title {
		font-size: 24px;
	}
	.pv-featured__place,
	.pv-featured__price {
		font-size: 14px;
	}
	.pv-featured__facts {
		display: none;
	}
	.pv-featured__text,
	.pv-featured__side,
	.pv-featured__info {
		gap: 6px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.pv-featured__media img {
		transition: none;
	}
}

/*
 * Destination page sections (destino-trancoso mockups). Each element is a full-width section with its own
 * spacing (so a section without content disappears completely); content is capped at 1440 px.
 */
.pv-destination-region,
.pv-destination-properties,
.pv-destination-guide,
.pv-destination-others {
	--pv-inline: max(var(--pv-gutter, 64px), calc((100% - 1440px) / 2 + var(--pv-gutter, 64px)));
	padding-right: var(--pv-inline);
	padding-left: var(--pv-inline);
}
.pv-destination-breadcrumb {
	font-size: 13px;
	font-weight: var(--pv-weight-light, 300);
	color: var(--sand, #cec1a8);
}
.pv-destination-breadcrumb a {
	color: inherit;
	text-decoration: none;
}
.pv-destination-breadcrumb a:hover {
	color: var(--tobacco, #b59e7d);
}

/* A região: text 5 columns, 2 x 2 numbers from column 7 */
.pv-destination-region {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 1fr) minmax(0, 6fr);
	gap: 32px;
	padding-top: 120px;
	padding-bottom: 120px;
}
.pv-destination-region__text {
	display: flex;
	flex-direction: column;
	gap: 24px;
}
.pv-destination-region__title,
.pv-destination-properties__title {
	margin: 0;
	font-family: "Libre Caslon Display", Georgia, serif;
	font-size: 43px;
	font-weight: 400;
	line-height: 1.1;
	color: var(--vanilla, #f1eada);
}
.pv-destination-region__body {
	font-size: 17px;
	font-weight: var(--pv-weight-light, 300);
	line-height: 1.8;
	color: var(--sand, #cec1a8);
}
.pv-destination-region__body p {
	margin: 0 0 1em;
}
/* Indicators as text rows (identity H: no number tiles). */
.pv-destination-region .pv-facts--region {
	grid-column: 3;
	display: flex;
	flex-direction: column;
	gap: 0;
	align-self: start;
	background: none;
}
.pv-facts--region .pv-facts__item {
	display: grid;
	grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
	align-items: baseline;
	gap: 24px;
	padding: 18px 0;
	border-top: 1px solid var(--linha);
	background: none;
}
.pv-facts--region .pv-facts__item:last-child {
	border-bottom: 1px solid var(--linha);
}
.pv-facts--region .pv-facts__value {
	order: 2;
	font: var(--pv-weight-light, 300) 17px/1.4 "Jost", sans-serif;
	color: var(--vanilla);
	text-align: left;
}
.pv-facts--region .pv-facts__label {
	order: 1;
	font-size: 15px;
	color: var(--sand);
}

/* Properties of the destination: 2 x 2 */
.pv-destination-properties {
	display: flex;
	flex-direction: column;
	gap: 56px;
	padding-top: 40px;
	padding-bottom: 120px;
}
.pv-destination-properties__title {
	font-size: 50px;
}
.pv-destination-properties__head {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px 32px;
}
.pv-destination-properties__map {
	padding-bottom: 6px;
	border-bottom: 1px solid var(--tobacco, #b59e7d);
	color: var(--vanilla, #f1eada);
	font-size: 13px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	text-decoration: none;
}
.pv-destination-properties__map:hover {
	color: var(--tobacco, #b59e7d);
}
.pv-destination-properties__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 56px 32px;
}
.pv-destination-properties__button {
	display: none;
}
.pv-destination-property {
	display: flex;
	flex-direction: column;
	gap: 18px;
	color: var(--vanilla, #f1eada);
	text-decoration: none;
}
.pv-destination-property__media {
	display: block;
	height: clamp(320px, 32vw, 460px);
	background: var(--leather, #232120);
	overflow: hidden;
}
.pv-destination-property__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.9s cubic-bezier(0.16, 1, 0.3, 1);
}
.pv-destination-property:hover .pv-destination-property__media img {
	transform: scale(1.02);
}
.pv-destination-property__info {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
}
.pv-destination-property__text {
	display: flex;
	flex-direction: column;
	gap: 6px;
	min-width: 0;
}
.pv-destination-property__title {
	font-family: "Libre Caslon Display", Georgia, serif;
	font-size: 27px;
	line-height: 1.15;
}
.pv-destination-property:hover .pv-destination-property__title {
	color: var(--tobacco, #b59e7d);
}
.pv-destination-property__facts {
	font-size: 15px;
	font-weight: var(--pv-weight-light, 300);
	color: var(--sand, #cec1a8);
}
.pv-destination-property__price {
	flex-shrink: 0;
	font-size: 15px;
	color: var(--tobacco, #b59e7d);
}

/* Guide: photo 6 columns, text from column 8 */
.pv-destination-guide {
	display: grid;
	grid-template-columns: minmax(0, 6fr) minmax(0, 1fr) minmax(0, 5fr);
	gap: 32px;
	padding-top: 112px;
	padding-bottom: 112px;
	background: var(--leather, #232120);
}
.pv-destination-guide--text {
	grid-template-columns: minmax(0, 1fr);
}
.pv-destination-guide__media {
	height: clamp(360px, 34vw, 496px);
	overflow: hidden;
}
.pv-destination-guide__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.pv-destination-guide__content {
	display: flex;
	grid-column: 3;
	flex-direction: column;
	gap: 40px;
	max-width: 620px;
}
.pv-destination-guide--text .pv-destination-guide__content {
	grid-column: 1;
}
.pv-destination-guide__head {
	display: flex;
	flex-direction: column;
	gap: 16px;
}
.pv-destination-guide__eyebrow {
	font-size: 12px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--tobacco, #b59e7d);
}
.pv-destination-guide__title {
	margin: 0;
	font-family: "Libre Caslon Display", Georgia, serif;
	font-size: 40px;
	font-weight: 400;
	line-height: 1.1;
	color: var(--vanilla, #f1eada);
}
.pv-destination-guide__topic h3 {
	margin: 0 0 8px;
	font-family: "Libre Caslon Display", Georgia, serif;
	font-size: 25px;
	font-weight: 400;
	line-height: 1.2;
	color: var(--vanilla, #f1eada);
}
.pv-destination-guide__topic p {
	margin: 0;
	font-size: 16px;
	font-weight: var(--pv-weight-light, 300);
	line-height: 1.7;
	color: var(--sand, #cec1a8);
}

/* Other destinations */
.pv-destination-others {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 16px 56px;
	padding-top: 88px;
	padding-bottom: 88px;
}
.pv-destination-others__title {
	margin: 0;
	font-family: "Jost", sans-serif;
	font-size: 15px;
	font-weight: 400;
	color: var(--sand, #cec1a8);
}
.pv-destination-others a {
	font-family: "Libre Caslon Display", Georgia, serif;
	font-size: 36px;
	line-height: 1.2;
	color: var(--vanilla, #f1eada);
	text-decoration: none;
}
.pv-destination-others a:hover {
	color: var(--tobacco, #b59e7d);
}

@media (max-width: 1279px) {
	.pv-destination-region {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		padding-top: 88px;
		padding-bottom: 88px;
	}
	.pv-destination-region .pv-facts--region {
		grid-column: 2;
	}
	.pv-destination-guide {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	}
	.pv-destination-guide__content {
		grid-column: 2;
	}
}

@media (max-width: 767px) {
	.pv-destination-region {
		display: flex;
		flex-direction: column;
		gap: 24px;
		padding-top: 64px;
		padding-bottom: 40px;
	}
	.pv-destination-region__title,
	.pv-destination-properties__title {
		font-size: 32px;
	}
	.pv-destination-region__body {
		font-size: 16px;
		line-height: 1.75;
	}
	.pv-facts--region .pv-facts__item {
		padding: 20px;
		gap: 6px;
	}
	.pv-facts--region .pv-facts__value {
		font-size: 29px;
	}
	.pv-facts--region .pv-facts__label {
		font-size: 13px;
	}
	.pv-destination-properties {
		gap: 32px;
		padding-top: 40px;
		padding-bottom: 64px;
	}
	.pv-destination-properties__map {
		display: none;
	}
	.pv-destination-properties__grid {
		display: flex;
		flex-direction: column;
		gap: 32px;
	}
	.pv-destination-properties__button {
		display: flex;
		align-items: center;
		justify-content: center;
		min-height: 52px;
		border: 1px solid var(--campo, #7a7068);
		color: var(--vanilla, #f1eada);
		font-size: 13px;
		letter-spacing: 0.16em;
		text-transform: uppercase;
		text-decoration: none;
	}
	.pv-destination-property {
		gap: 10px;
	}
	.pv-destination-property__media {
		height: 280px;
	}
	.pv-destination-property__info {
		flex-direction: column;
		align-items: flex-start;
		gap: 6px;
	}
	.pv-destination-property__title {
		font-size: 23px;
	}
	.pv-destination-property__facts {
		font-size: 14px;
	}
	.pv-destination-guide {
		display: flex;
		flex-direction: column;
		gap: 32px;
		padding: 0 0 64px;
	}
	.pv-destination-guide--text {
		padding-top: 64px;
	}
	.pv-destination-guide__media {
		height: 240px;
	}
	.pv-destination-guide__content {
		gap: 28px;
		padding: 0 var(--pv-gutter, 16px);
	}
	.pv-destination-guide__head {
		gap: 12px;
	}
	.pv-destination-guide__eyebrow {
		font-size: 11px;
	}
	.pv-destination-guide__title {
		font-size: 31px;
	}
	.pv-destination-guide__topic h3 {
		margin-bottom: 6px;
		font-size: 22px;
	}
	.pv-destination-guide__topic p {
		font-size: 15px;
	}
	.pv-destination-others {
		flex-direction: column;
		align-items: flex-start;
		gap: 16px;
		padding-top: 48px;
		padding-bottom: 48px;
	}
	.pv-destination-others__title {
		font-size: 14px;
	}
	.pv-destination-others a {
		font-size: 27px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.pv-destination-property__media img {
		transition: none;
	}
}

/* Similar properties: a thin scrollbar shows there is more to the right. */
.pv-cards__track {
	scrollbar-width: thin;
	scrollbar-color: var(--campo, #7a7068) transparent;
}
.pv-cards__track::-webkit-scrollbar {
	display: block;
	height: 4px;
}
/* One property in a destination: one full-width card instead of a half-empty pair. */
.pv-destination-properties__grid:has(> .pv-destination-property:only-child) {
	grid-template-columns: minmax(0, 1fr);
}
/* Breadcrumb over the opening photo: readable on bright photos. */
.pv-destination-breadcrumb {
	font-size: 14px;
	font-weight: 400;
	color: var(--vanilla, #f1eada);
	text-shadow: 0 1px 12px rgba(0, 0, 0, 0.5);
}
/* Bound paragraphs of the property template vanish when their tag is empty. */
#brxe-pvpsub:empty,
#brxe-pvpprc:empty,
#brxe-pvpcst:empty {
	display: none;
}

/* Printed sheet / PDF (inc/print.php): light paper, brand line, 4 photos, facts, text, features, contacts.
   An A4 page is phone width for the media queries, so the phone layouts are undone here. */
.pv-print-only {
	display: none;
}
.pv-print-link {
	padding: 0;
	border: 0;
	border-bottom: 1px solid var(--linha);
	background: none;
	color: var(--sand);
	font: var(--pv-weight-light, 300) 13px/1.6 "Jost", sans-serif;
	letter-spacing: 0.04em;
	cursor: pointer;
	justify-self: start;
	align-self: flex-start;
}
.pv-print-link:hover {
	color: var(--tobacco);
	border-color: var(--tobacco);
}
.pv-share {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 6px 18px;
	margin: 14px 0 0;
	font: var(--pv-weight-light, 300) 13px/1.6 "Jost", sans-serif;
	letter-spacing: 0.04em;
}
.pv-share__label {
	color: var(--taupe);
}
.pv-share a,
.pv-share button {
	padding: 0;
	border: 0;
	background: none;
	color: var(--sand);
	font: inherit;
	letter-spacing: inherit;
	text-decoration: none;
	cursor: pointer;
}
.pv-share a:hover,
.pv-share button:hover {
	color: var(--tobacco);
}
@media print {
	@page {
		size: A4;
		margin: 14mm 14mm 16mm;
	}
	/* !important: the Bricks palette file (uploads/bricks/css/color-palettes.min.css) loads after this one. */
	:root {
		--onyx: #fff !important;
		--leather: #fff !important;
		--linha: #d9d4ca !important;
		--campo: #857c71 !important;
		--vanilla: #1c1c1b !important;
		--sand: #4d4035 !important;
		--taupe: #6b645b !important;
		--tobacco: #7d6748 !important;
		color-scheme: light;
	}
	html,
	body {
		background: #fff !important;
		color: #1c1c1b !important;
	}
	body * {
		box-shadow: none !important;
		text-shadow: none !important;
		animation: none !important;
		transition: none !important;
	}
	#brx-header,
	#brx-footer,
	#agendar,
	.pv-breadcrumb,
	.pv-property-actionbar,
	.pv-property-features,
	.pv-cards,
	.pv-location__map,
	.pv-gallery__all,
	.pv-gallery__total,
	.pv-print-link,
	.pv-share,
	dialog,
	.pv-mosaic {
		display: none !important;
	}
	.pv-print-only {
		display: block;
	}
	main section.brxe-section,
	#brx-content section.brxe-section {
		padding: 0 0 7mm !important;
		min-height: 0 !important;
		background: none !important;
	}
	.brxe-container {
		width: 100% !important;
		max-width: none !important;
		padding-inline: 0 !important;
	}
	#brxe-pvpmnc {
		display: block !important;
	}
	a {
		color: inherit !important;
		text-decoration: none !important;
	}
	h1,
	h2,
	h3 {
		break-after: avoid;
	}

	.pv-print-head {
		display: flex;
		align-items: center;
		justify-content: space-between;
		margin-bottom: 7mm;
		padding-bottom: 4mm;
		border-bottom: 1px solid #d9d4ca;
		font: 400 10pt "Jost", sans-serif;
		letter-spacing: 0.12em;
		color: #6b645b;
	}
	.pv-print-head img {
		width: 46mm;
		height: auto;
		filter: brightness(0);
	}

	.pv-property-gallery {
		width: 100% !important;
	}
	.pv-gallery__track {
		display: grid !important;
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
		grid-template-rows: 92mm 36mm !important;
		gap: 2.5mm !important;
		height: auto !important;
		overflow: visible !important;
	}
	.pv-gallery__item,
	.pv-gallery__item:nth-child(n + 5) {
		display: block !important;
		flex: none !important;
		grid-column: auto !important;
		grid-row: auto !important;
		break-inside: avoid;
	}
	.pv-gallery__item--1 {
		grid-column: 1 / -1 !important;
	}
	.pv-gallery__item:nth-child(n + 5) {
		display: none !important;
	}
	.pv-gallery__item img {
		transform: none !important;
	}

	#brxe-pvpttl {
		font-size: 22pt !important;
	}
	.pv-facts {
		grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
		break-inside: avoid;
	}
	.pv-facts__item {
		padding: 4mm !important;
		border: 1px solid #d9d4ca;
	}
	/* Without the map only the distances text is useful; no text, no section. */
	.pv-location:not(:has(.pv-location__notes)) {
		display: none !important;
	}
	.pv-description__text,
	.pv-description__text.is-clamped {
		display: block !important;
		overflow: visible !important;
		-webkit-line-clamp: unset !important;
		max-height: none !important;
		font-size: 10.5pt !important;
		line-height: 1.6 !important;
	}
	.pv-description__text.is-clamped > * + * {
		margin-top: 1em !important;
	}
	.pv-description button,
	.pv-description__more {
		display: none !important;
	}

	.pv-print-foot {
		font: var(--pv-weight-light, 300) 10pt/1.6 "Jost", sans-serif;
		color: #4d4035;
	}
	.pv-print-foot h2 {
		margin: 0 0 3mm;
		font: 400 15pt "Libre Caslon Display", Georgia, serif;
		color: #1c1c1b;
	}
	.pv-print-foot p {
		margin: 0 0 1.5mm;
	}
	.pv-print-foot strong {
		font-weight: 400;
		color: #1c1c1b;
	}
	.pv-print-features {
		margin-bottom: 7mm;
		break-inside: avoid;
	}
	.pv-print-contact {
		padding-top: 4mm;
		border-top: 1px solid #d9d4ca;
		break-inside: avoid;
	}
	.pv-print-contact__lead {
		font-weight: 400;
		color: #1c1c1b;
	}
	.pv-print-contact__note {
		margin-top: 3mm !important;
		font-size: 8.5pt;
		color: #6b645b;
	}
}

/* Converted price note (inc/currency.php [pv_price_note]). */
.pv-price-note {
	margin: 6px 0 0;
	font-size: 13px;
	font-weight: var(--pv-weight-light, 300);
	line-height: 1.5;
	color: var(--taupe);
}
.brxe-shortcode:empty {
	display: none;
}

/*
 * Home "Imóveis à venda" (identity H, element "Featured properties" with the layout "lots"): title on the left and
 * "Ver todos os imóveis" on the right, then one large card (2/3) beside a tall one (1/3) and a row of three.
 */
.pv-lots {
	width: 100%;
}
.pv-lots__head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
	margin-bottom: clamp(40px, 4vw, 56px);
}
.pv-lots__title {
	margin: 0;
	color: var(--vanilla);
	font: 400 clamp(36px, 3.9vw, 58px)/1.06 "Libre Caslon Display", Georgia, serif;
}
.pv-lots__more {
	color: var(--vanilla);
	font-size: 15px;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 6px;
	transition: text-underline-offset 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}
.pv-lots__more:hover {
	color: var(--vanilla);
	text-underline-offset: 9px;
}
.pv-lots__notes:empty {
	display: none;
}
.pv-lots__notes {
	display: flex;
	flex-direction: column;
	gap: 16px;
	margin-bottom: 40px;
}
.pv-lots__grid {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	gap: 56px 24px;
}
.pv-lot {
	display: flex;
	flex-direction: column;
	gap: 6px;
	color: var(--vanilla);
	text-decoration: none;
}
.pv-lot:hover {
	color: var(--vanilla);
}
.pv-lot--big {
	grid-column: span 8;
}
.pv-lot--tall,
.pv-lot--std {
	grid-column: span 4;
}
.pv-lot__media {
	position: relative;
	display: block;
	margin-bottom: 16px;
	overflow: hidden;
	background: var(--linha);
	aspect-ratio: 4 / 3;
}
.pv-lot--big .pv-lot__media {
	aspect-ratio: 3 / 2;
}
.pv-lot--tall .pv-lot__media {
	aspect-ratio: 4 / 5;
}
.pv-lot--tall {
	align-self: end;
}
.pv-lot__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 1.6s cubic-bezier(0.16, 1, 0.3, 1);
}
.pv-lot:hover .pv-lot__media img {
	transform: scale(1.035);
}
.pv-lot__place {
	color: var(--sand);
	font-size: 14px;
}
.pv-lot__row {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
}
.pv-lot__name {
	font: 400 clamp(24px, 2vw, 30px)/1.15 "Libre Caslon Display", Georgia, serif;
}
.pv-lot--big .pv-lot__name {
	font-size: clamp(28px, 2.6vw, 38px);
}
.pv-lot__price {
	flex: none;
	font-size: 15px;
	white-space: nowrap;
}
.pv-lot__facts {
	color: var(--sand);
	font-size: 15px;
}
@media (max-width: 767px) {
	.pv-lots__grid {
		gap: 44px 0;
	}
	.pv-lot--big,
	.pv-lot--tall,
	.pv-lot--std {
		grid-column: 1 / -1;
	}
	.pv-lot--tall .pv-lot__media {
		aspect-ratio: 4 / 3;
	}
	.pv-lot__row {
		flex-direction: column;
		gap: 4px;
	}
}
@media (prefers-reduced-motion: reduce) {
	.pv-lot__media img {
		transition: none;
	}
}

/* Home "Destinos" (identity H, element "Destination cards"): four cards in a row, two per row on tablets and phones. */
.pv-dcards__title {
	margin: 0 0 clamp(36px, 4vw, 52px);
	color: var(--vanilla);
	font: 400 clamp(34px, 3.8vw, 56px)/1.06 "Libre Caslon Display", Georgia, serif;
	text-align: center;
}
.pv-dcards__row {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 24px;
}
.pv-dcard {
	display: flex;
	flex-direction: column;
	gap: 12px;
	color: var(--vanilla);
	text-decoration: none;
}
.pv-dcard:hover {
	color: var(--vanilla);
}
.pv-dcard__media {
	display: block;
	margin-bottom: 6px;
	overflow: hidden;
	background: var(--linha);
	aspect-ratio: 17 / 20;
}
.pv-dcard__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 1.6s cubic-bezier(0.16, 1, 0.3, 1);
}
.pv-dcard:hover .pv-dcard__media img {
	transform: scale(1.035);
}
.pv-dcard__name {
	font: 400 clamp(24px, 2vw, 30px)/1.15 "Libre Caslon Display", Georgia, serif;
}
.pv-dcard__text {
	max-width: 32ch;
	color: var(--sand);
	font-size: 15px;
	line-height: 1.6;
}
.pv-dcard__more {
	align-self: flex-start;
	margin-top: auto;
	font-size: 15px;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 6px;
	transition: text-underline-offset 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}
.pv-dcard:hover .pv-dcard__more {
	text-underline-offset: 9px;
}
@media (max-width: 1100px) {
	.pv-dcards__row {
		grid-template-columns: 1fr 1fr;
		gap: 40px 20px;
	}
}
@media (max-width: 767px) {
	.pv-dcards__row {
		gap: 32px 14px;
	}
	.pv-dcard__media {
		aspect-ratio: 4 / 5;
	}
	.pv-dcard__name {
		font-size: 21px;
	}
	.pv-dcard__text {
		font-size: 14px;
	}
}
@media (prefers-reduced-motion: reduce) {
	.pv-dcard__media img {
		transition: none;
	}
}

/* "Selecionados para você" (home, island "foryou"): empty until there is a signal of the visit. */
.pv-foryou:empty {
	display: none;
}
.pv-foryou__title {
	margin: 0 0 8px;
	color: var(--vanilla);
	font: 400 clamp(30px, 3vw, 46px)/1.08 "Libre Caslon Display", Georgia, serif;
}
.pv-foryou__text {
	margin: 0 0 32px;
	color: var(--sand);
	font-size: 15px;
}
.pv-foryou__row {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}
.pv-lot__why {
	color: var(--sand);
	font: italic 400 14px/1.5 "Libre Caslon Text", Georgia, serif;
}
@media (max-width: 767px) {
	.pv-foryou__row {
		grid-template-columns: 1fr;
		gap: 40px;
	}
}
/* The section holding the strip disappears while there is nothing to suggest. */
.brxe-section:has(.pv-foryou):not(:has(.pv-foryou__in)) {
	display: none;
}

/* Exchange-rate comparison (inc/fx-history.php): one sentence, shown only in the visitor's currency. */
.pv-fx-notes {
	display: contents;
}
.pv-fx-note {
	margin: 0;
	padding: 14px 0 14px 18px;
	border-left: 1px solid var(--linha);
	color: var(--vanilla);
	font: italic 400 17px/1.5 "Libre Caslon Text", Georgia, serif;
}
.pv-fx-note[hidden] {
	display: none;
}
.pv-fx-note__source {
	display: block;
	margin-top: 4px;
	color: var(--sand);
	font: var(--pv-weight-light, 300) 13px/1.5 "Jost", sans-serif;
	font-style: normal;
}
.pv-lots__notes:has(.pv-fx-note:not([hidden])) {
	margin-bottom: 32px;
}

/* Why a similar property was chosen (inc/view.php primevillas_property_similar_reason()). */
.pv-card__why {
	display: block;
	margin-top: 6px;
	color: var(--sand);
	font: italic 400 15px/1.4 "Libre Caslon Text", Georgia, serif;
}

/* Leaflet puts its controls at z-index 1000, above the sticky header while scrolling. */
.leaflet-top,
.leaflet-bottom {
	z-index: 400;
}
