.hpv-carousel__nav button {
	display: inline-flex;
	width: 2.75rem;
	height: 2.75rem;
	min-height: 2.75rem;
	align-items: center;
	justify-content: center;
	padding: 0;
	border: 1px solid var(--wp--preset--color--limite);
	border-radius: 999px;
	background: var(--wp--preset--color--branco);
	color: var(--wp--preset--color--grupo-mar-800);
	cursor: pointer;
}
.hpv-carousel__nav button:hover { background: var(--wp--preset--color--grupo-mar-100); }
.hpv-carousel__nav button svg { display: block; }
.hpv-unit-rooms__toolbar .hpv-filter--capacity {
	position: relative;
	display: flex;
	max-width: none;
	flex-direction: column;
	gap: 0.25rem;
	margin: 0;
}
.hpv-unit-rooms__toolbar .hpv-filter--capacity > span {
	color: var(--wp--preset--color--tinta-500);
	font-size: 0.75rem;
	font-weight: 800;
}
.hpv-unit-rooms__toolbar .hpv-filter--capacity select {
	width: auto;
	min-width: 9rem;
	min-height: 2.75rem;
	margin: 0;
	padding: 0.4rem 2.25rem 0.4rem 1rem;
	border: 1px solid var(--wp--preset--color--limite);
	border-radius: 999px;
	background: var(--wp--preset--color--branco);
	color: var(--wp--preset--color--tinta-900);
	font-weight: 700;
	line-height: 1;
	appearance: none;
}
.hpv-unit-rooms__toolbar .hpv-filter--capacity::after {
	content: "";
	position: absolute;
	right: 1rem;
	bottom: calc((2.75rem - 0.45rem) / 2);
	width: 0.45rem;
	height: 0.45rem;
	border-right: 2px solid var(--wp--preset--color--tinta-700);
	border-bottom: 2px solid var(--wp--preset--color--tinta-700);
	transform: rotate(45deg);
	pointer-events: none;
}

.hpv-footer__institutional-links,
.hpv-footer__unit-extra { gap: 1rem; margin-block: 1.5rem; }
.hpv-footer__institutional-links {
	flex-direction: column;
	align-items: flex-start;
	width: min(100%, 1280px);
	margin-inline: auto;
	gap: 0.35rem;
}
.hpv-footer__institutional-links p { margin: 0; color: var(--wp--preset--color--branco); font-size: 0.82rem; }
.hpv-footer__institutional-links a { color: var(--wp--preset--color--branco); }
/* A barra de reserva é fixa e cobre o fim do rodapé. O padding da Home
   (47px) é menor que a barra, então Parcerias ficava por baixo dela. */
body:has(.hpv-booking--bar) .hpv-footer { padding-bottom: 9.5rem; }
body:has(.hpv-booking--bar) .hpv-rodape { padding-bottom: 0; }
.hpv-footer__unit-extra { align-items: flex-start; }
.hpv-footer__awards { margin-left: auto; }
.hpv-footer__awards h3 {
	margin: 0 0 0.75rem;
	color: var(--wp--preset--color--grupo-mar-100);
	font-size: 0.75rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}
.hpv-footer__awards:not(:has(.hpv-footer__seal)) { display: none; }
.hpv-footer__seals { display: flex; flex-wrap: wrap; gap: 1rem; align-items: flex-start; }
.hpv-footer__seal { display: flex; max-width: 8rem; flex-direction: column; align-items: center; gap: 0.4rem; text-align: center; }
.hpv-footer__seal .wp-block-image { margin: 0; }
.hpv-footer__seal img { width: auto; max-width: 100%; max-height: 96px; object-fit: contain; }
.hpv-footer__seal p { margin: 0; font-size: 0.75rem; }
.hpv-footer__seal a { color: var(--wp--preset--color--branco); text-decoration: none; }
.hpv-footer__seal a:hover { text-decoration: underline; }

body.hpv-unit-praia-do-frances .hpv-wave { display: none; }
body.hpv-unit-praia-do-frances .hpv-card__image img,
body.hpv-unit-praia-do-frances .wp-block-image img,
body.hpv-unit-praia-do-frances .hpv-gallery img { border-radius: 0; }

/* O item da listagem também leva hpv-unit-offers. :has() não olha o próprio
   elemento, então a regra antiga escondia as ofertas e deixava só o invólucro
   com padding — a faixa vazia entre os nove pontos e o capítulo do destino. */
.wp-block-group.hpv-unit-offers:not(:has(.hpv-listing)) { display: none; }

.hpv-listing--carousel .hpv-listing__grid,
.hpv-gallery--carousel {
	display: flex;
	gap: 1rem;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	padding-bottom: 0.5rem;
	align-items: stretch;
}
.hpv-home-testimonials .hpv-listing__grid,
.hpv-unit-testimonials .hpv-listing__grid {
	display: flex;
	align-items: stretch;
	gap: 1.5rem;
	overflow-x: auto;
	padding-bottom: 0.75rem;
	scroll-snap-type: x mandatory;
	scrollbar-color: var(--wp--preset--color--grupo-mar-400) transparent;
	scrollbar-width: thin;
}
.hpv-listing--carousel .hpv-card,
.hpv-listing--carousel .hpv-room-card,
.hpv-gallery--carousel .hpv-gallery__slide,
.hpv-gallery--carousel figure {
	flex: 0 0 min(78vw, 28rem);
	scroll-snap-align: start;
}
.hpv-listing--carousel .hpv-room-card { height: auto; align-self: stretch; }
.hpv-home-testimonials .hpv-testimonial-card,
.hpv-unit-testimonials .hpv-testimonial-card {
	flex: 0 0 calc((100% - 3rem) / 3);
	scroll-snap-align: start;
}
.hpv-testimonials__nav { justify-content: flex-end; margin-top: 1rem; }
.hpv-unit-testimonials .hpv-testimonials__nav { width: min(100% - clamp(32px, 8vw, 128px), 1280px); margin-inline: auto; }
@media (max-width: 899px) {
	.hpv-home-testimonials .hpv-testimonial-card,
	.hpv-unit-testimonials .hpv-testimonial-card { flex-basis: calc((100% - 1.5rem) / 2); }
}
@media (max-width: 767px) {
	.hpv-home-testimonials .hpv-testimonial-card,
	.hpv-unit-testimonials .hpv-testimonial-card { flex-basis: 85%; }
}
.hpv-gallery--carousel { cursor: grab; overscroll-behavior-x: contain; }
.hpv-gallery--carousel.is-dragging { cursor: grabbing; scroll-snap-type: none; }
.hpv-gallery--carousel img { -webkit-user-drag: none; user-select: none; }
.hpv-gallery__slide { margin: 0; min-width: 0; }
.hpv-gallery__slide figure { margin: 0; }
.hpv-gallery__caption { margin: 0.75rem 0 0; color: var(--wp--preset--color--tinta-700); font-size: 0.875rem; line-height: 1.6; }
.hpv-listing--carousel .hpv-unit-rooms__more { display: none; }
.hpv-carousel__nav { display: flex; gap: 0.5rem; }
.hpv-listing__empty { margin-top: 1rem; }
.hpv-listing__clear {
	display: block;
	min-height: 2.75rem;
	margin: 1.5rem auto 0;
	padding: 0.7rem 1.4rem;
	border: 1px solid var(--wp--preset--color--limite);
	border-radius: 999px;
	background: var(--wp--preset--color--branco);
	color: var(--wp--preset--color--grupo-mar-800);
	font: inherit;
	font-size: 0.875rem;
	font-weight: 800;
	cursor: pointer;
}
.hpv-listing__clear:hover,
.hpv-listing__clear:focus-visible { background: var(--wp--preset--color--grupo-mar-100); }
.hpv-listing__clear[hidden] { display: none; }
.hpv-listing__count { margin: 0; }

.hpv-booking-score { margin-block: 2.5rem 3rem; }
.hpv-minors { padding-block: 4rem; text-align: center; }
.hpv-minors .hpv-minors__title { margin-inline: auto; }
.hpv-minors .hpv-home__pill { display: flex; justify-content: center; margin-top: 1.25rem; }

.hpv-home-newsletter { position: relative; overflow: hidden; }
.hpv-home-newsletter > .hpv-newsletter-pattern { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; pointer-events: none; }
.hpv-home-newsletter__inner { position: relative; z-index: 1; }

body.hpv-unit-landing .hpv-main--unit .wp-block-post-content { background-color: var(--wp--preset--color--branco); }
body.hpv-unit-landing .hpv-hero .hpv-wave--hero { color: var(--wp--preset--color--branco); }
body.hpv-unit-landing.hpv-unit-maceio .wp-block-post-content > .alignfull:nth-child(even):not(.hpv-unit-crumbs-wrap):not(.hpv-unit-facts):not(.hpv-unit-nav) { background-color: var(--wp--preset--color--grupo-mar-50); }
body.hpv-unit-landing.hpv-unit-praia-do-frances .wp-block-post-content > .alignfull:nth-child(even):not(.hpv-unit-crumbs-wrap):not(.hpv-unit-facts):not(.hpv-unit-nav) { background-color: var(--wp--preset--color--areia-100); }
body.hpv-unit-landing.hpv-unit-maceio .wp-block-post-content > .alignfull.hpv-unit-crumbs-wrap,
body.hpv-unit-landing.hpv-unit-maceio .wp-block-post-content > .alignfull.hpv-unit-facts,
body.hpv-unit-landing.hpv-unit-maceio .wp-block-post-content > .alignfull.hpv-unit-nav,
body.hpv-unit-landing.hpv-unit-praia-do-frances .wp-block-post-content > .alignfull.hpv-unit-crumbs-wrap,
body.hpv-unit-landing.hpv-unit-praia-do-frances .wp-block-post-content > .alignfull.hpv-unit-facts,
body.hpv-unit-landing.hpv-unit-praia-do-frances .wp-block-post-content > .alignfull.hpv-unit-nav { background-color: var(--wp--preset--color--branco); }

.hpv-home-posts__grid,
.hpv-home-posts .hpv-listing__grid { display: grid; gap: 1.5rem; }
@media (min-width: 900px) {
	.hpv-home-posts .hpv-listing__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.hpv-unit-points__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; }
}
@media (max-width: 899px) {
	.hpv-unit-points__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
}
@media (max-width: 639px) {
	.hpv-unit-points__grid { grid-template-columns: 1fr; }
}

.hpv-header__booking .wp-block-button__link,
.hpv-button .wp-block-button__link { justify-content: center; text-align: center; }
