/*
 * Products Engine — componentes públicos V0.9.1.18.
 * Isolado do painel, preparado para Elementor e calibrado em 1280 / 1100 / 925 / 780 / 728 / 350px.
 */

:root {
	--pe-public-primary: #31523d;
	--pe-public-accent: #c36232;
	--pe-public-text: #20251f;
	--pe-public-muted: #697169;
	--pe-public-line: #e1e6e1;
	--pe-public-surface: #ffffff;
	--pe-public-soft: #f6f8f6;
	--pe-public-radius: 5px;
	--pe-public-columns: 3;
}

.pe-public,
.pe-public * {
	box-sizing: border-box;
}

.pe-public {
	--pe-ornament-color: #ffffff;
	--pe-ornament-opacity: .82;
	--pe-ornament-inset: 14px;
	--pe-ornament-mask: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201000%20600%22%20preserveAspectRatio%3D%22none%22%3E%3Cpath%20d%3D%22M64%208H936C936%2036%20958%2058%20992%2058V542C958%20542%20936%20564%20936%20592H64C64%20564%2042%20542%208%20542V58C42%2058%2064%2036%2064%208Z%22%20fill%3D%22none%22%20stroke%3D%22white%22%20stroke-width%3D%222.2%22%20vector-effect%3D%22non-scaling-stroke%22%2F%3E%3C%2Fsvg%3E");
	color: var(--pe-public-text);
	font-family: inherit;
	font-size: inherit;
	line-height: inherit;
}

.pe-public svg {
	display: block;
	width: 1em;
	height: 1em;
}

/* SVG de comodidade renderizado como máscara para herdar a cor do contexto. */
.pe-amenity-svg-mask {
	display: block;
	width: var(--pe-amenity-icon-width, 1em);
	height: var(--pe-amenity-icon-height, 1em);
	flex: 0 0 auto;
	background-color: currentColor;
	-webkit-mask-image: var(--pe-amenity-icon-url);
	mask-image: var(--pe-amenity-icon-url);
	mask-mode: alpha;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-size: contain;
	mask-size: contain;
}

/* SVG inline normalizado: preserva cor, respiro e proporção em qualquer contexto. */
.pe-amenity-inline-svg {
	display: block;
	max-width: 100%;
	max-height: 100%;
	flex: 0 0 auto;
	overflow: visible;
	color: inherit;
}

/* Campo individual */
.pe-public-field {
	margin: 0;
}

.pe-public-field--image {
	overflow: hidden;
	margin: 0;
	border-radius: 5px;
}

.pe-public-field__image {
	display: block;
	width: 100%;
	height: auto;
}

/* Galeria */
.pe-public-gallery {
	display: grid;
	grid-template-columns: repeat(var(--pe-public-columns), minmax(0, 1fr));
	gap: 12px;
}

.pe-public-gallery__item {
	min-width: 0;
	margin: 0;
}

.pe-public-gallery__trigger,
.pe-public-gallery__static {
	position: relative;
	display: block;
	width: 100%;
	overflow: hidden;
	padding: 0;
	border: 0;
	border-radius: 5px;
	background: var(--pe-public-soft);
}

.pe-public-gallery__trigger {
	cursor: zoom-in;
}

.pe-public-gallery__image {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	transition: transform .28s ease;
}

.pe-public-gallery__trigger:hover .pe-public-gallery__image,
.pe-public-gallery__trigger:focus-visible .pe-public-gallery__image {
	transform: scale(1.025);
}

.pe-public-gallery__trigger:focus-visible {
	outline: 3px solid color-mix(in srgb, var(--pe-public-primary) 25%, transparent);
	outline-offset: 3px;
}

.pe-public-gallery__zoom {
	position: absolute;
	right: 12px;
	bottom: 12px;
	display: grid;
	width: 36px;
	height: 36px;
	place-items: center;
	border-radius: 50%;
	color: #fff;
	background: rgba(20, 26, 21, .72);
	backdrop-filter: blur(8px);
}

.pe-public-gallery__zoom svg {
	width: 18px;
	height: 18px;
}

.pe-public-gallery figcaption {
	margin-top: 7px;
	color: var(--pe-public-muted);
	font-size: .82em;
}

/* Comodidades e camas */
.pe-public-amenities,
.pe-public-beds {
	display: grid;
	grid-template-columns: repeat(var(--pe-public-columns), minmax(0, 1fr));
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.pe-public-amenity,
.pe-public-bed {
	display: flex;
	min-width: 0;
	align-items: center;
	gap: 12px;
	padding: 13px 14px;
	border: 1px solid var(--pe-public-line);
	border-radius: 5px;
	background: var(--pe-public-surface);
}

.pe-public-amenity__icon,
.pe-public-bed__icon {
	display: grid;
	width: 34px;
	height: 34px;
	flex: 0 0 34px;
	place-items: center;
	border-radius: 5px;
	color: var(--pe-public-primary);
	background: color-mix(in srgb, var(--pe-public-primary) 9%, #fff);
}

.pe-public-amenity__icon img,
.pe-public-amenity__icon .pe-amenity-svg-mask,
.pe-public-amenity__icon .pe-amenity-inline-svg {
	display: block;
	width: 26px;
	height: 26px;
	max-width: none;
	max-height: none;
	object-fit: contain;
	opacity: 1;
	overflow: visible;
	transform: scale(1.04);
	transform-origin: center;
}

.pe-public-amenity__icon svg,
.pe-public-bed__icon svg {
	width: 24px;
	height: 24px;
}

.pe-public-amenity__content {
	display: flex;
	min-width: 0;
	flex-direction: column;
}

.pe-public-amenity__name,
.pe-public-amenity strong,
.pe-public-bed strong {
	color: var(--pe-public-text);
	font-family: inherit;
	font-size: inherit;
	font-style: normal;
	font-weight: 400 !important;
	line-height: inherit;
}

.pe-public-amenity small {
	margin-top: 2px;
	color: var(--pe-public-muted);
	line-height: 1.4;
}

/* Blocos editoriais */
.pe-public-content-blocks {
	display: flex;
	flex-direction: column;
	gap: clamp(28px, 5vw, 72px);
}

.pe-public-content-block {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: clamp(24px, 5vw, 72px);
	align-items: center;
}

.pe-public-content-block--image-right .pe-public-content-block__media {
	order: 2;
}

.pe-public-content-block--image-full {
	grid-template-columns: 1fr;
}

.pe-public-content-block--image-full .pe-public-content-block__content {
	max-width: 850px;
}

.pe-public-content-block--text-only,
.pe-public-content-block--without-image {
	grid-template-columns: 1fr;
}

.pe-public-content-block__media {
	overflow: hidden;
	margin: 0;
	border-radius: 5px;
	background: var(--pe-public-soft);
}

.pe-public-content-block__image {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.pe-public-content-block--image-full .pe-public-content-block__image {
	aspect-ratio: 16 / 7;
}

.pe-public-content-block__title {
	margin: 0 0 14px;
	color: var(--pe-public-text);
	font-family: inherit;
	font-size: clamp(1.55rem, 3vw, 2.25rem);
	font-weight: 600;
	line-height: 1.18;
}

.pe-public-content-block__text,
.pe-public-content-block__text p {
	color: var(--pe-public-muted);
	line-height: 1.72;
}

.pe-public-content-block__text p {
	margin: 0 0 1em;
}

.pe-public-content-block__text p:last-child {
	margin-bottom: 0;
}

/* Depoimentos */
.pe-public-testimonials {
	display: grid;
	grid-template-columns: repeat(var(--pe-public-columns), minmax(0, 1fr));
	gap: 14px;
}

.pe-public-testimonial {
	position: relative;
	display: flex;
	min-width: 0;
	flex-direction: column;
	padding: 22px;
	border: 1px solid var(--pe-public-line);
	border-radius: 5px;
	background: var(--pe-public-surface);
}

.pe-public-testimonial__quote {
	position: absolute;
	top: 11px;
	right: 17px;
	color: color-mix(in srgb, var(--pe-public-accent) 22%, transparent);
	font-family: Georgia, serif;
	font-size: 64px;
	line-height: 1;
}

.pe-public-testimonial__rating {
	display: inline-flex;
	width: fit-content;
	align-items: center;
	gap: 4px;
	margin-bottom: 16px;
	padding: 6px 9px;
	border-radius: 5px;
	color: var(--pe-public-primary);
	background: color-mix(in srgb, var(--pe-public-primary) 9%, #fff);
}

.pe-public-testimonial__rating svg {
	width: 15px;
	height: 15px;
}

.pe-public-testimonial__rating span {
	color: var(--pe-public-muted);
	font-size: .72em;
}

.pe-public-testimonial__text {
	flex: 1;
}

.pe-public-testimonial__text p {
	margin: 0 0 1em;
	color: var(--pe-public-text);
	line-height: 1.65;
}

.pe-public-testimonial__text p:last-child {
	margin-bottom: 0;
}

.pe-public-testimonial__footer {
	display: flex;
	flex-direction: column;
	margin-top: 20px;
	padding-top: 15px;
	border-top: 1px solid var(--pe-public-line);
}

.pe-public-testimonial__footer strong {
	color: var(--pe-public-text);
}

.pe-public-testimonial__footer span {
	margin-top: 2px;
	color: var(--pe-public-muted);
	font-size: .8em;
}

/* Indicadores */
.pe-public-indicators {
	display: grid;
	grid-template-columns: repeat(var(--pe-public-columns), minmax(0, 1fr));
	gap: 12px;
}

.pe-public-indicator {
	display: flex;
	min-height: 150px;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 22px;
	border: 1px solid var(--pe-public-line);
	border-radius: 5px;
	background: var(--pe-public-soft);
	text-align: center;
}

.pe-public-indicator__icon {
	display: grid;
	width: 34px;
	height: 34px;
	margin-bottom: 10px;
	place-items: center;
	color: var(--pe-public-accent);
}

.pe-public-indicator__icon svg {
	width: 26px;
	height: 26px;
}

.pe-public-indicator strong {
	color: var(--pe-public-primary);
	font-size: clamp(1.8rem, 4vw, 2.6rem);
	font-weight: 600;
	line-height: 1;
}

.pe-public-indicator small {
	margin-top: 7px;
	color: var(--pe-public-muted);
}

/* Botão de reserva */
.pe-public-booking {
	display: inline-flex;
	min-height: 48px;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 0 20px;
	border: 1px solid transparent;
	border-radius: 5px;
	font-family: inherit;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none !important;
	transition: background-color .18s ease, color .18s ease, border-color .18s ease, transform .18s ease;
}

.pe-public-booking svg {
	width: 18px;
	height: 18px;
}

.pe-public-booking:hover {
	transform: translateY(-1px);
}

.pe-public-booking--primary {
	color: #fff !important;
	background: var(--pe-public-primary);
}

.pe-public-booking--primary:hover {
	color: #fff !important;
	background: color-mix(in srgb, var(--pe-public-primary) 84%, #000);
}

.pe-public-booking--outline {
	color: var(--pe-public-primary) !important;
	border-color: var(--pe-public-primary);
	background: transparent;
}

.pe-public-booking--outline:hover {
	color: #fff !important;
	background: var(--pe-public-primary);
}

.pe-public-booking--text {
	min-height: auto;
	padding: 5px 0;
	color: var(--pe-public-primary) !important;
}

.pe-public-booking--full {
	display: flex;
	width: 100%;
}

/* Cards relacionados */

/* Isolamento visual contra estilos globais do Elementor/tema — V0.9.1.3. */
.pe-public :where(.pe-public-gallery__trigger, .pe-public-booking, .pe-public-lightbox__close, .pe-public-lightbox__nav) {
	-webkit-appearance: none;
	appearance: none;
	box-shadow: none;
	text-shadow: none;
	text-decoration: none;
}

.pe-public .pe-public-gallery__trigger,
.pe-public .pe-public-gallery__trigger:hover,
.pe-public .pe-public-gallery__trigger:focus-visible,
.pe-public .pe-public-gallery__trigger:active {
	border-color: transparent;
	background-color: var(--pe-public-soft);
	color: inherit;
}

.pe-public .pe-public-booking--primary,
.pe-public .pe-public-booking--primary:active {
	border-color: transparent;
	background-color: var(--pe-public-primary);
	color: #fff !important;
}

.pe-public .pe-public-booking--primary:hover,
.pe-public .pe-public-booking--primary:focus-visible {
	border-color: transparent;
	background-color: color-mix(in srgb, var(--pe-public-primary) 84%, #000);
	color: #fff !important;
}

.pe-public .pe-public-booking--outline,
.pe-public .pe-public-booking--outline:active {
	border-color: var(--pe-public-primary);
	background-color: transparent;
	color: var(--pe-public-primary) !important;
}

.pe-public .pe-public-booking--outline:hover,
.pe-public .pe-public-booking--outline:focus-visible {
	border-color: var(--pe-public-primary);
	background-color: var(--pe-public-primary);
	color: #fff !important;
}

.pe-public .pe-public-booking--text,
.pe-public .pe-public-booking--text:hover,
.pe-public .pe-public-booking--text:focus-visible,
.pe-public .pe-public-booking--text:active {
	border-color: transparent;
	background: transparent;
	color: var(--pe-public-primary) !important;
}

/* Lightbox */
.pe-public-lightbox {
	position: fixed;
	z-index: 999999;
	inset: 0;
	display: none;
	align-items: center;
	justify-content: center;
	padding: 24px;
	background: rgba(12, 15, 13, .94);
}

.pe-public-lightbox.is-open {
	display: flex;
}

.pe-public-lightbox__dialog {
	position: relative;
	display: flex;
	width: min(1200px, 100%);
	max-height: calc(100vh - 48px);
	flex-direction: column;
	align-items: center;
}

.pe-public-lightbox__image {
	display: block;
	max-width: 100%;
	max-height: calc(100vh - 125px);
	object-fit: contain;
}

.pe-public-lightbox__caption {
	min-height: 24px;
	margin-top: 10px;
	color: rgba(255, 255, 255, .78);
	text-align: center;
}

.pe-public-lightbox__counter {
	position: fixed;
	top: 20px;
	left: 20px;
	color: rgba(255, 255, 255, .78);
	font-size: .84rem;
}

.pe-public-lightbox__close,
.pe-public-lightbox__nav {
	position: fixed;
	display: grid;
	width: 44px;
	height: 44px;
	place-items: center;
	padding: 0;
	border: 1px solid rgba(255, 255, 255, .2);
	border-radius: 50%;
	color: #fff;
	background: rgba(255, 255, 255, .08);
	cursor: pointer;
}

.pe-public-lightbox__close {
	top: 18px;
	right: 18px;
	font-size: 25px;
}

.pe-public-lightbox__prev {
	top: 50%;
	left: 18px;
	transform: translateY(-50%);
}

.pe-public-lightbox__next {
	top: 50%;
	right: 18px;
	transform: translateY(-50%);
}

.pe-public-lightbox__nav svg {
	width: 20px;
	height: 20px;
}

body.pe-public-lightbox-open {
	overflow: hidden;
}

/* Laptop — largura de validação: 1100px. */
@media (max-width: 1100px) {
	.pe-public-content-blocks {
		gap: clamp(28px, 4vw, 56px);
	}

	.pe-public-content-block {
		gap: clamp(24px, 4vw, 52px);
	}
}

/* Tablet paisagem — largura de validação: 925px. */
@media (max-width: 925px) {

	.pe-public-content-block {
		grid-template-columns: 1fr;
	}

	.pe-public-content-block--image-right .pe-public-content-block__media {
		order: 0;
	}
}

/* Tablet retrato — largura de validação: 780px. */
@media (max-width: 780px) {

	.pe-public-content-block__title {
		font-size: clamp(1.45rem, 5vw, 2rem);
	}
}

/* Mobile paisagem e abaixo — largura de validação: 728px. */
@media (max-width: 728px) {

	.pe-public-gallery {
		gap: 9px;
	}

	.pe-public-content-block--image-full .pe-public-content-block__image {
		aspect-ratio: 4 / 3;
	}

	.pe-public-lightbox {
		padding: 14px;
	}

	.pe-public-lightbox__nav {
		top: auto;
		bottom: 18px;
		transform: none;
	}

	.pe-public-lightbox__prev {
		left: calc(50% - 54px);
	}

	.pe-public-lightbox__next {
		right: calc(50% - 54px);
	}
}

/* Preço e rodapé comercial dos cards públicos — V0.9.1.3 */

/* Mobile retrato pequeno — largura de validação: 350px. */
@media (max-width: 350px) {
	.pe-public-amenity,
	.pe-public-bed {
		gap: 10px;
		padding: 11px 12px;
	}

	.pe-public-booking:not(.pe-public-booking--text) {
		width: 100%;
		padding-inline: 14px;
	}

	.pe-public-lightbox__close {
		top: 12px;
		right: 12px;
	}

	.pe-public-lightbox__counter {
		top: 16px;
		left: 14px;
	}
}

/* Controles do lightbox protegidos contra a cor global do kit Elementor. */
.pe-public-lightbox .pe-public-lightbox__close,
.pe-public-lightbox .pe-public-lightbox__nav,
.pe-public-lightbox .pe-public-lightbox__close:hover,
.pe-public-lightbox .pe-public-lightbox__nav:hover,
.pe-public-lightbox .pe-public-lightbox__close:focus-visible,
.pe-public-lightbox .pe-public-lightbox__nav:focus-visible,
.pe-public-lightbox .pe-public-lightbox__close:active,
.pe-public-lightbox .pe-public-lightbox__nav:active {
	-webkit-appearance: none;
	appearance: none;
	border-color: rgba(255, 255, 255, .2);
	background-color: rgba(255, 255, 255, .08);
	box-shadow: none;
	color: #fff;
}

.pe-public-lightbox .pe-public-lightbox__close:hover,
.pe-public-lightbox .pe-public-lightbox__nav:hover,
.pe-public-lightbox .pe-public-lightbox__close:focus-visible,
.pe-public-lightbox .pe-public-lightbox__nav:focus-visible {
	background-color: rgba(255, 255, 255, .16);
}

/* O botão de reserva pode ser o próprio elemento raiz .pe-public. */
.pe-public.pe-public-booking {
	-webkit-appearance: none;
	appearance: none;
	box-shadow: none;
	text-shadow: none;
	text-decoration: none !important;
}

.pe-public.pe-public-booking--primary,
.pe-public.pe-public-booking--primary:active {
	border-color: transparent;
	background-color: var(--pe-public-primary);
	color: #fff !important;
}

.pe-public.pe-public-booking--primary:hover,
.pe-public.pe-public-booking--primary:focus-visible {
	border-color: transparent;
	background-color: color-mix(in srgb, var(--pe-public-primary) 84%, #000);
	color: #fff !important;
}

.pe-public.pe-public-booking--outline,
.pe-public.pe-public-booking--outline:active {
	border-color: var(--pe-public-primary);
	background-color: transparent;
	color: var(--pe-public-primary) !important;
}

.pe-public.pe-public-booking--outline:hover,
.pe-public.pe-public-booking--outline:focus-visible {
	border-color: var(--pe-public-primary);
	background-color: var(--pe-public-primary);
	color: #fff !important;
}

.pe-public.pe-public-booking--text,
.pe-public.pe-public-booking--text:hover,
.pe-public.pe-public-booking--text:focus-visible,
.pe-public.pe-public-booking--text:active {
	border-color: transparent;
	background: transparent;
	color: var(--pe-public-primary) !important;
}

/* Moldura ornamental interna — V0.9.1.9. */

@media (max-width: 728px) {
	.pe-public {
		--pe-ornament-inset: 11px;
	}
}

@media (max-width: 350px) {
	.pe-public {
		--pe-ornament-inset: 9px;
	}
}

/* Refinamento dos cards públicos — V0.9.1.9. */

/* Card canônico de acomodações — V0.9.1.23.
 * Usado em todos os contextos públicos.
 * A tag H2–H6 preserva a semântica e a família tipográfica global.
 * O tamanho visual do título é controlado pelo próprio card para não herdar
 * a escala grande do Elementor Kit (ex.: .elementor-kit-* h3).
 */
.pe-public-related {
	display: grid;
	grid-template-columns: repeat(var(--pe-public-columns, 3), minmax(0, 1fr));
	gap: 20px;
}

.pe-public-card {
	--pe-card-media-ratio: 16 / 10;
	--pe-card-title-size: 28px;
	display: flex;
	height: 100%;
	min-width: 0;
	min-height: 0;
	overflow: hidden;
	flex-direction: column;
	border: 1px solid var(--pe-public-line);
	border-radius: 5px;
	background: var(--pe-public-surface);
	transition: border-color .22s ease, transform .22s ease;
}

.pe-public-card:hover {
	border-color: color-mix(in srgb, var(--pe-public-primary) 24%, var(--pe-public-line));
	transform: translateY(-2px);
}

.pe-public-card__media,
.pe-public-card__media:hover,
.pe-public-card__media:focus-visible,
.pe-public-card__media:active {
	position: relative;
	display: block;
	width: 100%;
	aspect-ratio: var(--pe-card-media-ratio);
	overflow: hidden;
	flex: 0 0 auto;
	background: var(--pe-public-soft);
	box-shadow: none;
	text-decoration: none !important;
}

.pe-public-card__image,
.pe-public-card__placeholder {
	display: block;
	width: 100%;
	height: 100%;
}

.pe-public-card__image {
	object-fit: cover;
	object-position: center center;
	transition: transform .28s ease;
}

.pe-public-card:hover .pe-public-card__image {
	transform: scale(1.025);
}

.pe-public-card__placeholder {
	display: grid;
	place-items: center;
	color: var(--pe-public-primary);
	background: linear-gradient(145deg, color-mix(in srgb, var(--pe-public-soft) 90%, #fff), color-mix(in srgb, var(--pe-public-primary) 4%, var(--pe-public-soft)));
}

.pe-public-card__placeholder svg {
	width: 40px;
	height: 40px;
	opacity: .9;
}

.pe-public-card__badge {
	position: absolute;
	z-index: 3;
	top: 14px;
	left: 14px;
	max-width: calc(100% - 28px);
	padding: 8px 12px;
	border-radius: 5px;
	color: #fff;
	background: var(--pe-public-accent);
	font-size: .72rem;
	font-weight: 700;
	line-height: 1.05;
	white-space: normal;
}

.pe-public-card__body {
	display: flex;
	min-height: 0;
	flex: 1 1 auto;
	flex-direction: column;
	gap: 13px;
	padding: clamp(18px, 2vw, 22px);
}

.pe-public-card__heading {
	display: grid;
	gap: 5px;
}

.pe-public-card .pe-public-card__title {
	margin: 0;
	color: var(--pe-public-text);
	/*
	 * !important é intencional: o Elementor aplica o H3 global com seletor
	 * mais específico (.elementor-kit-* h3). Sem isso, o título voltava ao
	 * tamanho global mesmo quando a regra do card estava correta.
	 */
	font-size: var(--pe-card-title-size) !important;
	line-height: 1.12 !important;
}

.pe-public-card .pe-public-card__title > a,
.pe-public-card .pe-public-card__title > a:hover,
.pe-public-card .pe-public-card__title > a:focus,
.pe-public-card .pe-public-card__title > a:focus-visible,
.pe-public-card .pe-public-card__title > a:active,
.pe-public-card .pe-public-card__title > a:visited {
	color: inherit !important;
	background: transparent !important;
	box-shadow: none !important;
	font-family: inherit !important;
	font-size: inherit !important;
	font-style: inherit !important;
	font-weight: inherit !important;
	line-height: inherit !important;
	letter-spacing: inherit !important;
	text-transform: inherit !important;
	text-decoration: none !important;
}

@media (max-width: 728px) {
	.pe-public-card {
		--pe-card-title-size: 26px;
	}
}

.pe-public-card__subtitle {
	margin: 0;
	color: var(--pe-public-muted);
	font-size: .92rem;
	line-height: 1.48;
}

.pe-public-card__specs {
	display: flex;
	flex-wrap: wrap;
	gap: 7px 12px;
	color: var(--pe-public-muted);
	font-size: .78rem;
	line-height: 1.35;
}

.pe-public-card__specs span {
	display: inline-flex;
	align-items: center;
	gap: 4px;
}

.pe-public-card__specs svg {
	width: 15px;
	height: 15px;
	color: var(--pe-public-primary);
}

.pe-public-card__commerce {
	display: flex;
	min-height: 58px;
	margin-top: auto;
	align-items: flex-end;
	justify-content: space-between;
	gap: 16px;
	padding-top: 14px;
	border-top: 1px solid var(--pe-public-line);
}

.pe-public-card__commerce.no-price,
.pe-public-card--no-price .pe-public-card__commerce {
	justify-content: flex-end;
}

.pe-public-card__price {
	display: flex;
	min-width: 0;
	flex-direction: column;
}

.pe-public-card__price small {
	color: var(--pe-public-muted);
	font-size: .64rem;
	font-weight: 700;
	line-height: 1.25;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.pe-public-card__price strong {
	color: var(--pe-public-text);
	font-size: 1.35rem;
	line-height: 1.2;
}

.pe-public-card__price em {
	color: var(--pe-public-muted);
	font-size: .7rem;
	font-style: normal;
	font-weight: 600;
}

.pe-public-card__link,
.pe-public-card__link:hover,
.pe-public-card__link:focus-visible,
.pe-public-card__link:active {
	display: inline-flex;
	width: fit-content;
	margin-left: auto;
	align-items: center;
	gap: 6px;
	padding: 7px 0;
	color: var(--pe-public-primary) !important;
	background: transparent !important;
	box-shadow: none !important;
	font-size: .86rem;
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none !important;
	white-space: nowrap;
}

.pe-public-card__link svg {
	width: 16px;
	height: 16px;
	transition: transform .18s ease;
}

.pe-public-card__link:hover svg {
	transform: translateX(3px);
}

.pe-public-card__link:focus-visible,
.pe-public-card__media:focus-visible,
.pe-public-card__title a:focus-visible {
	outline: 2px solid var(--pe-public-accent);
	outline-offset: 3px;
}

.pe-public-card--ornament.pe-public-card--has-image .pe-public-card__media::after {
	content: "";
	position: absolute;
	z-index: 2;
	inset: var(--pe-ornament-inset, 14px);
	pointer-events: none;
	background-color: var(--pe-ornament-color, #fff);
	opacity: var(--pe-ornament-opacity, .82);
	filter: drop-shadow(0 1px 1px rgba(0, 0, 0, .3));
	-webkit-mask-image: var(--pe-ornament-mask);
	mask-image: var(--pe-ornament-mask);
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-size: 100% 100%;
	mask-size: 100% 100%;
	mask-mode: alpha;
	transition: opacity .22s ease;
}

.pe-public-card--ornament.pe-public-card--has-image:hover .pe-public-card__media::after,
.pe-public-card--ornament.pe-public-card--has-image .pe-public-card__media:focus-visible::after {
	opacity: 1;
}

.pe-public-card--no-media .pe-public-card__body {
	padding-top: clamp(20px, 2.4vw, 26px);
}

@media (max-width: 925px) {
	.pe-public-related {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.pe-public-card__body {
		gap: 12px;
		padding: 18px;
	}

	.pe-public-card__commerce {
		gap: 12px;
	}
}

@media (max-width: 728px) {
	.pe-public-related {
		grid-template-columns: 1fr;
	}

	.pe-public-card {
		--pe-ornament-inset: 11px;
	}

	.pe-public-card__link {
		font-size: .84rem;
	}
}

@media (max-width: 350px) {
	.pe-public-card {
		--pe-ornament-inset: 9px;
	}

	.pe-public-card__body {
		gap: 11px;
		padding: 15px;
	}

	.pe-public-card__commerce.has-price {
		min-height: 0;
		align-items: flex-start;
		flex-direction: column;
		gap: 10px;
	}

	.pe-public-card__link {
		margin-left: 0;
		white-space: normal;
	}
}

@media (prefers-reduced-motion: reduce) {
	.pe-public-card,
	.pe-public-card__image,
	.pe-public-card__link svg {
		transition: none;
	}

	.pe-public-card:hover {
		transform: none;
	}
}

/* Regras responsivas preservadas ao consolidar os cards. */
@media (max-width: 925px) {
	.pe-public-gallery,
	.pe-public-amenities,
	.pe-public-beds,
	.pe-public-testimonials,
	.pe-public-indicators {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 780px) {
	.pe-public-testimonial,
	.pe-public-indicator {
		padding: 18px;
	}
}

@media (max-width: 728px) {
	.pe-public-gallery,
	.pe-public-amenities,
	.pe-public-beds,
	.pe-public-testimonials,
	.pe-public-indicators {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 350px) {
	.pe-public-testimonial,
	.pe-public-indicator {
		padding: 15px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.pe-public-gallery__image,
	.pe-public-booking {
		transition: none;
	}
}
