/**
 * UbatubaOn — correções de UI/responsividade (praia, filtros, cards, eventos, guia).
 * Carregado após uo-tourist-mobile.css.
 */

/* --------------------------------------------------------------------------
   Praias / cachoeiras / ilhas — textos longos e responsividade
   -------------------------------------------------------------------------- */

body.node-type-praia #page #content .node-praia h1.nome,
body.node-type-praia .uo-detail-summary h1.nome {
	overflow-wrap: anywhere;
	word-wrap: break-word;
	hyphens: auto;
	max-width: 100%;
	line-height: 1.25;
}

body.node-type-praia .uo-detail-summary .sub-title {
	overflow-wrap: break-word;
	max-width: 100%;
	line-height: 1.35;
}

/* Descrição da praia: mesma largura de #informacoes-local; texto justificado (não centrado). */
body.node-type-praia #page #content .node-praia #informacoes-local .descricao.uo-praia-descricao,
body.node-type-praia #page #content .node-praia #informacoes-local .uo-detail-description,
body.node-type-praia #page #content .node-praia .uo-praia-descricao.uo-detail-description {
	display: block !important;
	float: none !important;
	width: 100% !important;
	max-width: none !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
	box-sizing: border-box !important;
	text-align: justify !important;
}

body.node-type-praia #page #content .node-praia .uo-praia-descricao h2,
body.node-type-praia #page #content .node-praia .descricao.uo-detail-description h2 {
	text-align: left !important;
}

body.node-type-praia #page #content .node-praia .descricao,
body.node-type-praia #page #content .node-praia .descricao p,
body.node-type-praia #page #content .node-praia .uo-praia-descricao p,
body.node-type-praia #page #content .node-praia .como-chegar p {
	overflow-wrap: break-word;
	word-wrap: break-word;
	max-width: none !important;
	width: 100% !important;
	box-sizing: border-box;
	text-align: justify !important;
}

body.node-type-praia #page #content .node-praia .descricao img,
body.node-type-praia #page #content .node-praia .descricao iframe,
body.node-type-praia #page #content .node-praia .descricao table {
	max-width: 100%;
	height: auto;
}

body.node-type-praia .uo-praia-main,
body.node-type-praia .uo-detail-summary {
	overflow-x: hidden;
	max-width: 100%;
}

.page-cachoeiras #page #praias-home .group-praias ul li .views-field-title h3 span:not(.regiao),
.page-ilhas #page #praias-home .group-praias ul li .views-field-title h3 span:not(.regiao),
.page-praias #page #praias-home .group-praias ul li .views-field-title h3 span:not(.regiao),
#page #praias-home .group-praias ul li .views-field-title h3 span:not(.regiao),
#page #praias-home .group-praias ul li .views-field-title h3 span.info-praia-titulo {
	display: inline-block;
	box-sizing: border-box;
	max-width: 100%;
	padding: 0.45rem 0.7rem;
	background: rgba(23, 32, 51, 0.9) !important;
	border-radius: 6px;
	white-space: normal;
	overflow-wrap: break-word;
	word-break: normal;
	hyphens: none;
	line-height: 1.3;
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
}

#page #praias-home .group-praias ul li .views-field-title {
	box-sizing: border-box;
}

#page #praias-home .group-praias ul li .views-field-title h3 {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.35rem;
	max-width: calc(100% - 2.75rem);
	margin: 0;
	box-sizing: border-box;
	font-size: clamp(0.78rem, 1.05vw, 1.05rem);
}

#page #praias-home .group-praias ul li .views-field-title h3 span.regiao {
	display: inline-block;
	max-width: 100%;
	padding: 0.3rem 0.55rem;
	background: rgba(23, 32, 51, 0.9);
	border-radius: 6px;
	white-space: normal;
	line-height: 1.25;
	font-size: 0.72em;
}

#page #praias-home .group-praias ul li .views-field-field-nota-media .field-content {
	display: inline-flex;
	align-items: center;
	gap: 0.2rem;
	padding: 0.35rem 0.5rem;
	border-radius: 6px;
	background: rgba(23, 32, 51, 0.9);
	box-sizing: border-box;
}

/* --------------------------------------------------------------------------
   Interna de serviços — colunas + tipografia da sidebar
   -------------------------------------------------------------------------- */

@media only screen and (min-width: 700px) {
	body.node-type-servicos #page #content .node-hospedagem {
		display: grid !important;
		grid-template-columns: minmax(0, 1.65fr) minmax(300px, 0.9fr);
		gap: 28px 32px;
		width: min(1200px, 94%);
		margin: 0 auto;
		padding: 24px 0 48px;
	}

	body.node-type-servicos #page #content .node-hospedagem .content-node-left,
	body.node-type-servicos #page #content .node-hospedagem .content-node-right {
		float: none !important;
		width: 100% !important;
		margin: 0 !important;
		padding: 0 !important;
		background: transparent !important;
		overflow: visible !important;
	}

	body.node-type-servicos #page #content .node-hospedagem #informacoes-local {
		display: block !important;
		float: none !important;
		width: 100% !important;
		margin: 0 !important;
	}

	body.node-type-servicos #page #content .node-hospedagem #informacoes-servicos {
		grid-column: 2;
		grid-row: 2;
		align-self: start;
		position: sticky;
		top: 94px;
		float: none !important;
		display: block !important;
		box-sizing: border-box;
		width: 100% !important;
		min-width: 0;
		max-width: 100%;
		margin: 0 !important;
		padding: 22px !important;
		overflow: visible;
		border: 1px solid rgba(8, 65, 77, 0.1);
		border-radius: 14px;
		background: #fff;
		box-shadow: 0 5px 20px rgba(8, 25, 35, 0.06);
	}

	body.node-type-servicos #page #content .node-hospedagem #informacoes-servicos h2 {
		margin: 0 0 14px;
		color: #00aac8;
		font-size: 0.85rem;
		font-weight: 700;
		letter-spacing: 0.04em;
		text-transform: uppercase;
	}

	body.node-type-servicos #page #content .node-hospedagem #informacoes-servicos .telefone-servicos,
	body.node-type-servicos #page #content .node-hospedagem #informacoes-servicos .telefone-servicos a {
		font-family: inherit !important;
		font-size: 1.2rem !important;
		font-weight: 800 !important;
		line-height: 1.3 !important;
		color: #082f38 !important;
		overflow-wrap: anywhere;
		word-break: break-word;
	}

	body.node-type-servicos #page #content .node-hospedagem #informacoes-servicos .telefone-e-nota-servicos {
		display: flex;
		flex-wrap: wrap;
		gap: 10px 14px;
		align-items: center;
		margin: 0 0 12px;
	}

	body.node-type-servicos #page #content .node-hospedagem #informacoes-servicos .endereco-servicos {
		margin: 0 0 10px !important;
		padding: 0 !important;
		color: #475569 !important;
		font-size: 0.95rem !important;
		line-height: 1.45 !important;
		overflow-wrap: break-word;
		word-break: normal;
	}

	body.node-type-servicos #page #content .node-hospedagem #informacoes-servicos .email-servicos,
	body.node-type-servicos #page #content .node-hospedagem #informacoes-servicos .email-servicos a,
	body.node-type-servicos #page #content .node-hospedagem #informacoes-servicos .site-servicos a {
		display: block;
		max-width: 100%;
		margin: 0 0 8px;
		padding: 0;
		color: #00aac8 !important;
		font-size: 0.92rem !important;
		font-weight: 600 !important;
		letter-spacing: normal !important;
		line-height: 1.4;
		overflow-wrap: anywhere;
		word-break: break-word;
	}

	body.node-type-servicos #page #content .node-hospedagem .content-node-right .node-left-content,
	body.node-type-servicos #page #content .node-hospedagem .galeria-wrapper {
		float: none !important;
		width: 100% !important;
		margin: 0 0 1.25rem !important;
	}

	body.node-type-servicos #page #content .node-hospedagem .descricao {
		max-width: none;
		padding: 0 !important;
		margin: 0 0 1.25rem !important;
		font-size: 1rem !important;
		line-height: 1.65;
	}
}

/* --------------------------------------------------------------------------
   CTAs — Onde ficar / O que fazer / Como chegar (desktop + tablet)
   -------------------------------------------------------------------------- */

@media only screen and (min-width: 700px) {
	body.node-type-praia .uo-cta-bar.uo-praia-cta {
		display: flex;
		flex-wrap: wrap;
		gap: 10px;
		margin: 0 0 1.75rem;
		padding: 0;
		position: static;
		background: transparent;
		border: 0;
		box-shadow: none;
	}

	body.node-type-praia .uo-cta-bar.uo-praia-cta > a {
		flex: 1 1 0;
		min-width: 140px;
		max-width: none;
		width: auto !important;
		min-height: 46px;
		margin-top: 0 !important;
		padding: 12px 16px;
		border-radius: 10px;
		text-align: center;
		text-decoration: none;
		font-weight: 700;
		font-size: 15px;
		line-height: 1.25;
		color: #fff;
		background: #00aac8;
		box-sizing: border-box;
		transition: background 0.2s ease, transform 0.15s ease;
	}

	body.node-type-praia .uo-cta-bar.uo-praia-cta > a:hover,
	body.node-type-praia .uo-cta-bar.uo-praia-cta > a:focus-visible {
		background: #0096b0;
		transform: translateY(-1px);
		outline: none;
	}

	body.node-type-praia .uo-cta-bar.uo-praia-cta .uo-praia-map-cta {
		background: #08414d;
	}

	body.node-type-praia .uo-cta-bar.uo-praia-cta .uo-praia-map-cta:hover,
	body.node-type-praia .uo-cta-bar.uo-praia-cta .uo-praia-map-cta:focus-visible {
		background: #06333d;
	}
}

@media only screen and (max-width: 699px) {
	body.node-type-praia .uo-cta-bar.uo-praia-cta > a {
		flex: 1 1 0;
		width: auto !important;
		margin-top: 0 !important;
		box-sizing: border-box;
	}
}

/* --------------------------------------------------------------------------
   Filtros — substituir fundo cinza por barra alinhada à identidade visual
   -------------------------------------------------------------------------- */

#page #content.small #busca-praia-home .views-exposed-widgets {
	background: linear-gradient(135deg, rgba(8, 65, 77, 0.92), rgba(0, 130, 152, 0.88)) !important;
	border-bottom: 0 !important;
	box-shadow: 0 4px 14px rgba(8, 25, 35, 0.12);
}

.page-praias #page #content .banner-topo-praias form,
.page-cachoeiras #page #content .banner-topo-praias form,
.page-ilhas #page #content .banner-topo-praias form,
.page-hospedagem #page #content .hospedagem-banner-topo form,
.page-servicos #page #content .banner-topo-servicos form,
.page-eventos #page #content .banner-topo-eventos form,
#page #busca-praia-home .views-exposed-widgets {
	/* background: linear-gradient(135deg, rgba(8, 65, 77, 0.88), rgba(0, 140, 164, 0.78)) !important; */
	background: rgba(255, 255, 255, 0.94);
}

.page-praias #page #content .banner-topo-praias form .views-exposed-widgets,
.page-cachoeiras #page #content .banner-topo-praias form .views-exposed-widgets,
.page-ilhas #page #content .banner-topo-praias form .views-exposed-widgets,
.page-hospedagem #page #content .hospedagem-banner-topo form .views-exposed-widgets,
.page-servicos #page #content .banner-topo-servicos form .views-exposed-widgets,
.page-eventos #page #content .banner-topo-eventos form .views-exposed-widgets,
#page #busca-praia-home .views-exposed-widgets {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0.5rem 0.75rem;
}

.page-praias #page #content .banner-topo-praias form .views-exposed-widgets:before,
.page-cachoeiras #page #content .banner-topo-praias form .views-exposed-widgets:before,
.page-ilhas #page #content .banner-topo-praias form .views-exposed-widgets:before,
.page-hospedagem #page #content .hospedagem-banner-topo form .views-exposed-widgets:before,
.page-servicos #page #content .banner-topo-servicos form .views-exposed-widgets:before,
.page-eventos #page #content .banner-topo-eventos form .views-exposed-widgets:before {
	float: none;
	margin: 0;
	line-height: 1.2;
	align-self: center;
}

.page-praias #page #content .banner-topo-praias form .views-exposed-widget.views-submit-button,
.page-cachoeiras #page #content .banner-topo-praias form .views-exposed-widget.views-submit-button,
.page-ilhas #page #content .banner-topo-praias form .views-exposed-widget.views-submit-button,
.page-hospedagem #page #content .hospedagem-banner-topo form .views-exposed-widget.views-submit-button,
.page-servicos #page #content .banner-topo-servicos form .views-exposed-widget.views-submit-button,
.page-eventos #page #content .banner-topo-eventos form .views-exposed-widget.views-submit-button {
	display: flex;
	align-items: center;
	align-self: center;
	margin: 0 !important;
	padding: 0 !important;
}

.page-praias #page #content .banner-topo-praias form .views-exposed-widget.views-submit-button input,
.page-cachoeiras #page #content .banner-topo-praias form .views-exposed-widget.views-submit-button input,
.page-ilhas #page #content .banner-topo-praias form .views-exposed-widget.views-submit-button input,
.page-hospedagem #page #content .hospedagem-banner-topo form .views-exposed-widget.views-submit-button input,
.page-servicos #page #content .banner-topo-servicos form .views-exposed-widget.views-submit-button input,
.page-eventos #page #content .banner-topo-eventos form .views-exposed-widget.views-submit-button input {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	vertical-align: middle;
}

#page #content form .views-exposed-widget .form-item-field-praia-nid .select2 {
	border: none !important;
}

/* --------------------------------------------------------------------------
   Cards de hospedagem (legado + marketplace) — hover, centralização, CTA valor
   -------------------------------------------------------------------------- */

#page #content .view-hospedagem .view-content ul li:not(.uo-marketplace-row) {
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

#page #content .view-hospedagem .view-content ul li:not(.uo-marketplace-row):hover {
	transform: translateY(-3px);
	box-shadow: 0 10px 24px rgba(8, 25, 35, 0.14);
}

#page #content .view-hospedagem .view-content ul li .views-field-nothing .info-chamadas h3,
#page #content .view-hospedagem .view-content ul li .views-field-nothing .info-chamadas h4,
#page #content .view-hospedagem .view-content ul li .views-field-nothing .info-chamadas p {
	text-align: center;
	margin-left: auto;
	margin-right: auto;
}

#page #content .view-hospedagem .view-content ul li .views-field-nothing .info-chamada-valor {
	cursor: pointer;
	border: 0;
	text-align: center;
	transition: background 0.2s ease;
}

#page #content .view-hospedagem .view-content ul li .views-field-nothing .info-chamada-valor:hover,
#page #content .view-hospedagem .view-content ul li .views-field-nothing .info-chamada-valor:focus-visible {
	background: #0096b0;
	outline: 2px solid rgba(255, 255, 255, 0.45);
	outline-offset: -2px;
}

.uo-listing-card__title,
.uo-listing-card__location,
.uo-listing-card__category {
	text-align: center;
}

.uo-listing-card__location:before {
	margin-right: 0.25rem;
}

/* --------------------------------------------------------------------------
   Serviços (O que fazer) — 4 cards por linha como Situação atual (home)
   -------------------------------------------------------------------------- */

@media only screen and (min-width: 700px) and (max-width: 899px) {
	.page-servicos .pane-servi-os-panel-pane-1 .view-servi-os .view-content ul,
	.view-servi-os.view-display-id-panel_pane_1 .view-content ul {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 1rem;
	}

	.page-servicos .pane-servi-os-panel-pane-1 .view-servi-os .view-content ul li,
	.view-servi-os.view-display-id-panel_pane_1 .view-content ul li {
		width: 100% !important;
		margin: 0 !important;
	}
}

@media only screen and (min-width: 900px) {
	.page-servicos .pane-servi-os-panel-pane-1 .view-servi-os .view-content ul,
	.view-servi-os.view-display-id-panel_pane_1 .view-content ul {
		display: grid !important;
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 1rem;
		padding: 0;
		margin: 0;
	}

	.page-servicos .pane-servi-os-panel-pane-1 .view-servi-os .view-content ul li,
	.view-servi-os.view-display-id-panel_pane_1 .view-content ul li {
		width: 100% !important;
		max-width: none !important;
		margin: 0 !important;
		display: block !important;
	}

	.page-servicos .pane-servi-os-panel-pane-1 .view-servi-os .view-content ul li.uo-marketplace-row,
	.view-servi-os.view-display-id-panel_pane_1 .view-content ul li.uo-marketplace-row {
		min-height: 100%;
	}
}

.view-servi-os.view-display-id-panel_pane_1.uo-results-heading-processed,
.pane-servi-os-panel-pane-1 .view-servi-os,
.page-servicos #page #content .view-servi-os.view-display-id-panel_pane_1 {
	margin-top: 0;
	/* Keep vertical spacing only — horizontal padding was narrower than #filtro-servicos-wrapper. */
	padding: 0.5rem 0 1.25rem;
	box-sizing: border-box;
}

@media only screen and (max-width: 1099px) {
	.view-servi-os.view-display-id-panel_pane_1.uo-results-heading-processed,
	.pane-servi-os-panel-pane-1 .view-servi-os,
	.page-servicos #page #content .view-servi-os.view-display-id-panel_pane_1 {
		padding: 0.35rem 0 1rem;
	}
}

@media only screen and (max-width: 699px) {
	.view-servi-os.view-display-id-panel_pane_1.uo-results-heading-processed,
	.pane-servi-os-panel-pane-1 .view-servi-os,
	.page-servicos #page #content .view-servi-os.view-display-id-panel_pane_1 {
		padding: 0.25rem 0 0.85rem;
	}
}

/* Mais Hospedagens (node hospedagem) — faixa compacta no estilo sponsor-strip */
body.node-type-hospedagem #page #content .view-hospedagem.view-display-id-block_4,
body.node-type-hospedagem #page #content .view-hospedagem.view-display-id-block_5,
body.node-type-hospedagem #page #content .pane-views-hospedagem-block-4,
body.node-type-hospedagem #page #content .pane-views-hospedagem-block-5,
body.node-type-hospedagem #page #content #block-views-hospedagem-block-4,
body.node-type-hospedagem #page #content #block-views-hospedagem-block-5 {
	width: 100%;
	max-width: 1100px;
	margin: 0 auto 1.5rem;
	padding: 1rem 1.25rem 0.5rem;
	box-sizing: border-box;
	background: transparent;
	border-bottom: 1px solid rgba(8, 65, 77, 0.1);
}

body.node-type-hospedagem #page #content .view-hospedagem.view-display-id-block_4 .view-header,
body.node-type-hospedagem #page #content .view-hospedagem.view-display-id-block_5 .view-header {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 0.75rem;
	margin: 0 0 0.85rem;
	padding: 0;
}

body.node-type-hospedagem #page #content .view-hospedagem.view-display-id-block_4 .view-header h2,
body.node-type-hospedagem #page #content .view-hospedagem.view-display-id-block_5 .view-header h2,
body.node-type-hospedagem #page #content .pane-views-hospedagem-block-4 .pane-title,
body.node-type-hospedagem #page #content .pane-views-hospedagem-block-5 .pane-title,
body.node-type-hospedagem #page #content #block-views-hospedagem-block-4 h2.block-title,
body.node-type-hospedagem #page #content #block-views-hospedagem-block-5 h2.block-title {
	margin: 0 !important;
	padding: 0 !important;
	color: #08414d !important;
	font-size: 1.05rem !important;
	font-weight: 700 !important;
	text-align: left !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	line-height: 1.3 !important;
}

body.node-type-hospedagem #page #content .view-hospedagem.view-display-id-block_4 .view-header h2:after,
body.node-type-hospedagem #page #content .view-hospedagem.view-display-id-block_5 .view-header h2:after {
	display: none !important;
}

body.node-type-hospedagem #page #content .view-hospedagem.view-display-id-block_4 .view-content ul,
body.node-type-hospedagem #page #content .view-hospedagem.view-display-id-block_5 .view-content ul,
body.node-type-praia #page #content .view-hospedagem.view-display-id-block_3 .view-content ul,
body.node-type-praia #page #content .view-servi-os.view-display-id-block_2 .view-content ul,
body.node-type-praia #page #content .view-servi-os.view-display-id-block_3 .view-content ul {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1rem;
	list-style: none;
	padding: 0;
	margin: 0;
	width: 100%;
	align-items: stretch;
}

body.node-type-hospedagem #page #content .view-hospedagem.view-display-id-block_4 .view-content ul li,
body.node-type-hospedagem #page #content .view-hospedagem.view-display-id-block_5 .view-content ul li,
body.node-type-praia #page #content .view-hospedagem.view-display-id-block_3 .view-content ul li,
body.node-type-praia #page #content .view-servi-os.view-display-id-block_2 .view-content ul li,
body.node-type-praia #page #content .view-servi-os.view-display-id-block_3 .view-content ul li {
	display: flex !important;
	flex-direction: column !important;
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: visible !important;
	background: transparent !important;
	box-shadow: none !important;
	border-radius: 0 !important;
}

/* Bloco Praia (block_2): mesma largura útil do mapa / .node-praia (só no container externo). */
body.node-type-praia #page #content #block-views-servi-os-block-2 {
	display: block !important;
	width: min(1180px, 92%) !important;
	max-width: min(1180px, 92%) !important;
	margin: 1.25rem auto 1.75rem !important;
	padding: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	box-sizing: border-box !important;
}

body.node-type-praia #page #content #block-views-servi-os-block-2 .view-servi-os.view-display-id-block_2 {
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	box-sizing: border-box !important;
}

body.node-type-praia #page #content .view-servi-os.view-display-id-block_2 .view-header h2 {
	margin: 0 0 0.85rem !important;
	color: #08414d !important;
	font-size: 1.25rem !important;
	font-weight: 800 !important;
	text-align: left !important;
	text-transform: none !important;
}

body.node-type-praia #page #content .view-servi-os.view-display-id-block_2 .view-header h2:after {
	display: none !important;
}

body.node-type-praia #page #content .view-servi-os.view-display-id-block_2 .view-content ul {
	grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
	gap: 0.75rem !important;
}

body.node-type-praia #page #content .view-servi-os.view-display-id-block_2 .view-content ul li,
body.node-type-praia #page #content .view-servi-os.view-display-id-block_2 .view-content ul li.uo-marketplace-row {
	float: none !important;
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}

body.node-type-praia #page #content .view-servi-os.view-display-id-block_2 .uo-listing-card {
	padding: 0 0 10px !important;
	border-radius: 12px !important;
	box-shadow: 0 3px 12px rgba(8, 25, 35, 0.06) !important;
}

body.node-type-praia #page #content .view-servi-os.view-display-id-block_2 .uo-listing-card__media {
	aspect-ratio: 16 / 10 !important;
	max-height: 118px !important;
}

body.node-type-praia #page #content .view-servi-os.view-display-id-block_2 .uo-listing-card__body {
	gap: 3px !important;
	padding: 8px 10px 0 !important;
}

body.node-type-praia #page #content .view-servi-os.view-display-id-block_2 .uo-listing-card__title {
	font-size: 0.92rem !important;
	min-height: 2.4em !important;
	max-height: 2.4em !important;
}

body.node-type-praia #page #content .view-servi-os.view-display-id-block_2 .uo-listing-card__location,
body.node-type-praia #page #content .view-servi-os.view-display-id-block_2 .uo-listing-card__category {
	font-size: 0.75rem !important;
}

body.node-type-praia #page #content .view-servi-os.view-display-id-block_2 .uo-listing-card__price {
	display: none !important;
	min-height: 0 !important;
}

body.node-type-praia #page #content .view-servi-os.view-display-id-block_2 .uo-listing-card__action {
	width: calc(100% - 20px) !important;
	min-height: 34px !important;
	margin: 8px 10px 0 !important;
	padding: 0.4rem 0.65rem !important;
	font-size: 0.78rem !important;
}

body.node-type-praia #page #content .view-servi-os.view-display-id-block_2 .uo-listing-card__topline {
	padding: 6px 10px 0;
}

body.node-type-praia #page #content .view-servi-os.view-display-id-block_2 .uo-itinerary-add {
	width: auto !important;
	min-height: 26px !important;
	margin: 0 0 0 auto !important;
	padding: 0.15rem 0.5rem !important;
	font-size: 11px !important;
}

@media only screen and (max-width: 1099px) {
	body.node-type-praia #page #content .view-servi-os.view-display-id-block_2 .view-content ul {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	}
}

@media only screen and (max-width: 699px) {
	body.node-type-praia #page #content .view-servi-os.view-display-id-block_2 .view-content ul {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 0.55rem !important;
	}

	body.node-type-praia #page #content .view-servi-os.view-display-id-block_2 .uo-listing-card__media {
		max-height: 96px !important;
	}
}

body.node-type-hospedagem #page #content .view-hospedagem.view-display-id-block_4 .uo-listing-card,
body.node-type-hospedagem #page #content .view-hospedagem.view-display-id-block_5 .uo-listing-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	min-height: 0;
	padding: 0 0 12px;
	border: 1px solid rgba(8, 65, 77, 0.1);
	border-radius: 12px;
	background: #fff;
	box-shadow: 0 4px 14px rgba(8, 25, 35, 0.06);
	overflow: hidden;
	box-sizing: border-box;
}

body.node-type-hospedagem #page #content .view-hospedagem.view-display-id-block_4 .uo-listing-card__link,
body.node-type-hospedagem #page #content .view-hospedagem.view-display-id-block_5 .uo-listing-card__link {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	text-decoration: none;
	color: inherit;
}

body.node-type-hospedagem #page #content .view-hospedagem.view-display-id-block_4 .uo-listing-card__media,
body.node-type-hospedagem #page #content .view-hospedagem.view-display-id-block_5 .uo-listing-card__media {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	max-height: 160px;
	overflow: hidden;
	background: #e8f1f3;
	flex: 0 0 auto;
}

body.node-type-hospedagem #page #content .view-hospedagem.view-display-id-block_4 .uo-listing-card__media img,
body.node-type-hospedagem #page #content .view-hospedagem.view-display-id-block_5 .uo-listing-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

body.node-type-hospedagem #page #content .view-hospedagem.view-display-id-block_4 .uo-listing-card__body,
body.node-type-hospedagem #page #content .view-hospedagem.view-display-id-block_5 .uo-listing-card__body {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	gap: 4px;
	padding: 10px 10px 0;
	min-height: 0;
}

body.node-type-hospedagem #page #content .view-hospedagem.view-display-id-block_4 .uo-listing-card__category,
body.node-type-hospedagem #page #content .view-hospedagem.view-display-id-block_5 .uo-listing-card__category {
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	color: #5a6d73;
}

body.node-type-hospedagem #page #content .view-hospedagem.view-display-id-block_4 .uo-listing-card__title,
body.node-type-hospedagem #page #content .view-hospedagem.view-display-id-block_5 .uo-listing-card__title {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	overflow: hidden;
	margin: 0;
	min-height: 2.4em;
	max-height: 2.4em;
	line-height: 1.2;
	font-size: 0.95rem;
	font-weight: 700;
	color: #08414d;
}

body.node-type-hospedagem #page #content .view-hospedagem.view-display-id-block_4 .uo-listing-card__location,
body.node-type-hospedagem #page #content .view-hospedagem.view-display-id-block_5 .uo-listing-card__location {
	font-size: 0.8rem;
	color: #5a6d73;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

body.node-type-hospedagem #page #content .view-hospedagem.view-display-id-block_4 .uo-listing-card__price,
body.node-type-hospedagem #page #content .view-hospedagem.view-display-id-block_5 .uo-listing-card__price {
	font-size: 0.82rem;
	line-height: 1.25;
	margin-top: 2px;
}

body.node-type-hospedagem #page #content .view-hospedagem.view-display-id-block_4 .uo-listing-card__price small,
body.node-type-hospedagem #page #content .view-hospedagem.view-display-id-block_5 .uo-listing-card__price small {
	display: block;
	font-size: 0.7rem;
	font-weight: 500;
	color: #5a6d73;
}

body.node-type-hospedagem #page #content .view-hospedagem.view-display-id-block_4 .uo-listing-card__action,
body.node-type-hospedagem #page #content .view-hospedagem.view-display-id-block_5 .uo-listing-card__action {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 36px;
	margin-top: auto;
	padding: 7px 10px;
	border-radius: 9px;
	background: #00aac8;
	color: #fff;
	font-size: 12px;
	font-weight: 800;
	box-sizing: border-box;
}

body.node-type-hospedagem #page #content .view-hospedagem.view-display-id-block_4 .uo-listing-card__action:after,
body.node-type-hospedagem #page #content .view-hospedagem.view-display-id-block_5 .uo-listing-card__action:after {
	content: "→";
	margin-left: 6px;
}

body.node-type-hospedagem #page #content .view-hospedagem.view-display-id-block_4 .uo-listing-card__topline,
body.node-type-hospedagem #page #content .view-hospedagem.view-display-id-block_5 .uo-listing-card__topline {
	padding: 8px 10px 0;
}

body.node-type-hospedagem #page #content .view-hospedagem.view-display-id-block_4 .uo-listing-card .uo-itinerary-add,
body.node-type-hospedagem #page #content .view-hospedagem.view-display-id-block_5 .uo-listing-card .uo-itinerary-add {
	position: relative;
	z-index: 2;
	width: auto;
	margin: 0 0 0 auto;
	font-size: 11px;
	min-height: 26px;
}

@media only screen and (max-width: 899px) {
	body.node-type-hospedagem #page #content .view-hospedagem.view-display-id-block_4 .view-content ul,
	body.node-type-hospedagem #page #content .view-hospedagem.view-display-id-block_5 .view-content ul,
	body.node-type-praia #page #content .view-hospedagem.view-display-id-block_3 .view-content ul,
	body.node-type-praia #page #content .view-servi-os.view-display-id-block_3 .view-content ul {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	body.node-type-hospedagem #page #content .view-hospedagem.view-display-id-block_4,
	body.node-type-hospedagem #page #content .view-hospedagem.view-display-id-block_5,
	body.node-type-hospedagem #page #content .pane-views-hospedagem-block-4,
	body.node-type-hospedagem #page #content .pane-views-hospedagem-block-5,
	body.node-type-hospedagem #page #content #block-views-hospedagem-block-4,
	body.node-type-hospedagem #page #content #block-views-hospedagem-block-5 {
		padding-left: 1rem;
		padding-right: 1rem;
	}
}

@media only screen and (max-width: 559px) {
	body.node-type-hospedagem #page #content .view-hospedagem.view-display-id-block_4 .view-content ul,
	body.node-type-hospedagem #page #content .view-hospedagem.view-display-id-block_5 .view-content ul,
	body.node-type-praia #page #content .view-hospedagem.view-display-id-block_3 .view-content ul,
	body.node-type-praia #page #content .view-servi-os.view-display-id-block_3 .view-content ul {
		grid-template-columns: 1fr;
	}

	body.node-type-hospedagem #page #content .view-hospedagem.view-display-id-block_4 .uo-listing-card__media,
	body.node-type-hospedagem #page #content .view-hospedagem.view-display-id-block_5 .uo-listing-card__media {
		max-height: 180px;
	}
}

/* --------------------------------------------------------------------------
   Eventos — título da página + filtro + select2 centralizado
   -------------------------------------------------------------------------- */

.page-eventos #page #content .banner-topo-eventos h2 {
	display: block !important;
	margin: 0 0 1.25rem;
	padding: 0;
	text-align: center;
	color: #08414d;
	font-size: clamp(1.75rem, 3.2vw, 2.75rem);
	font-weight: 800;
	line-height: 1.15;
	text-transform: none;
	letter-spacing: -0.02em;
	z-index: 2;
	position: relative;
}

.page-eventos #page #content .banner-topo-eventos form {
	text-align: center;
}

.page-eventos #page #content .banner-topo-eventos form .views-exposed-widgets,
.page-eventos #page #content .banner-topo-eventos form .views-exposed-widgets.clearfix {
	display: flex !important;
	flex-wrap: wrap !important;
	align-items: flex-start;
	justify-content: center;
	gap: 0.75rem 1rem;
	float: none !important;
	width: 100%;
	max-width: 42rem;
	margin: 0 auto;
	box-sizing: border-box;
}

/* clearfix :after vira flex item e desalinha select + botão */
.page-eventos #page #content .banner-topo-eventos form .views-exposed-widgets.clearfix:after {
	content: none !important;
	display: none !important;
}

.page-eventos #page #content .banner-topo-eventos form .views-exposed-widgets:before {
	content: "Filtrar por praia";
	display: block !important;
	float: none !important;
	flex: 0 0 100%;
	width: 100%;
	margin: 0 0 0.15rem;
	padding: 0;
	line-height: 1.3;
	text-align: center;
	color: #08414d;
	font-size: clamp(1rem, 1.35vw, 1.25rem);
	font-weight: 700;
	font-family: inherit;
	text-transform: none;
	position: static;
	left: auto;
	top: auto;
}

.page-eventos #page #content .banner-topo-eventos form .views-exposed-widget {
	display: flex;
	align-items: stretch;
	justify-content: center;
	margin: 0 !important;
	padding: 0 !important;
	width: auto !important;
	max-width: 100%;
	float: none !important;
	flex: 1 1 16rem;
	min-width: 0;
}

.page-eventos #page #content .banner-topo-eventos form .views-exposed-widget .form-item,
.page-eventos #page #content .banner-topo-eventos form .views-exposed-widget .views-widget,
.page-eventos #page #content .banner-topo-eventos form .views-exposed-widget .selection {
	width: 100%;
	margin: 0;
	text-align: left;
}

.page-eventos #page #content .banner-topo-eventos form .views-exposed-widget .select2-container,
.page-eventos #page #content .banner-topo-eventos form .select2-container.select2-container--default {
	display: block !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	width: 100% !important;
	max-width: 100%;
	text-align: left;
	height: auto !important;
}

.page-eventos #page #content .banner-topo-eventos form .select2-container--default .select2-selection--multiple,
.page-eventos #page #content .banner-topo-eventos form .views-exposed-widget .form-type-select .select2-selection,
.page-eventos #page #content .banner-topo-eventos form .views-exposed-widget .selection span.select2-selection {
	border-radius: 14px !important;
	min-height: 42px;
	height: auto !important;
	display: flex !important;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-start;
	align-content: center;
	gap: 0.35rem;
	border: 1px solid #00aac8 !important;
	background: #fff !important;
	padding: 0.35rem 0.65rem !important;
	box-sizing: border-box;
}

.page-eventos #page #content .banner-topo-eventos form .select2-container--default .select2-selection--multiple .select2-selection__rendered {
	display: flex !important;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.35rem;
	width: 100%;
	margin: 0;
	padding: 0;
	list-style: none;
}

.page-eventos #page #content .banner-topo-eventos form .select2-container--default .select2-selection--multiple .select2-selection__choice {
	float: none !important;
	margin: 0 !important;
	padding: 0.2rem 0.55rem !important;
	border: 0 !important;
	border-radius: 999px !important;
	background: #e8f6f8 !important;
	color: #08414d !important;
	font-size: 0.8rem;
	line-height: 1.35;
	max-width: 100%;
}

.page-eventos #page #content .banner-topo-eventos form .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
	margin-right: 0.25rem;
	color: #08758a;
}

.page-eventos #page #content .banner-topo-eventos form .select2-container--default .select2-search--inline {
	float: none !important;
	display: inline-flex;
	align-items: center;
	margin: 0;
	padding: 0;
	flex: 1 1 6rem;
	min-width: 5rem;
}

.page-eventos #page #content .banner-topo-eventos form .select2-container--default .select2-search--inline .select2-search__field {
	width: 100% !important;
	min-width: 0 !important;
	margin: 0 !important;
	padding: 0.2rem 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	font-size: 0.9rem !important;
	line-height: 1.3 !important;
	height: auto !important;
	color: #12333d;
}

.page-eventos #page #content .banner-topo-eventos form .views-exposed-widget.views-submit-button {
	display: flex;
	align-items: stretch;
	align-self: stretch;
	margin: 0 !important;
	padding: 0 !important;
	width: auto !important;
	flex: 0 0 auto;
}

.page-eventos #page #content .banner-topo-eventos form .views-exposed-widget.views-submit-button input,
.page-eventos #page #content .banner-topo-eventos form .views-submit-button input.form-submit {
	border-radius: 14px !important;
	min-height: 42px;
	height: 100%;
	padding: 0.5rem 1.35rem !important;
	line-height: 1.2;
	width: auto !important;
	min-width: 5.5rem;
	margin: 0 !important;
}

.page-eventos .select2-results__message,
.page-eventos .select2-results .select2-no-results,
.page-eventos .select2-results .select2-searching {
	display: none !important;
}

/* Views empty duplicate under the custom empty card */
body.page-eventos .view-eventos .view-empty,
body.page-eventos .view-eventos h3.nenhum-resultado,
body.page-eventos h3.nenhum-resultado {
	display: none !important;
}

body.page-eventos .uo-eventos-empty {
	margin-top: 0.5rem;
}

@media only screen and (max-width: 699px) {
	.page-eventos #page #content .banner-topo-eventos h2 {
		font-size: clamp(1.6rem, 7vw, 2rem) !important;
		margin-bottom: 1rem !important;
		color: #08414d !important;
	}

	.page-eventos #page #content .banner-topo-eventos form .views-exposed-widgets:before {
		font-size: 1.05rem;
		color: #08414d;
		position: static !important;
		top: auto !important;
		left: auto !important;
	}

	.page-eventos #page #content .banner-topo-eventos form .views-exposed-widgets,
	.page-eventos #page #content .banner-topo-eventos form .views-exposed-widgets.clearfix {
		max-width: none;
		padding: 0 0.5rem;
	}

	.page-eventos #page #content .banner-topo-eventos form .views-exposed-widget {
		flex: 1 1 100%;
	}

	.page-eventos #page #content .banner-topo-eventos form .views-exposed-widget .select2-container,
	.page-eventos #page #content .banner-topo-eventos form .select2-container.select2-container--default {
		width: 100% !important;
	}

	.page-eventos #page #content .banner-topo-eventos form .views-exposed-widget.views-submit-button {
		flex: 1 1 100%;
		margin-top: 0 !important;
		margin-left: 0 !important;
	}

	.page-eventos #page #content .banner-topo-eventos form .views-exposed-widget.views-submit-button input,
	.page-eventos #page #content .banner-topo-eventos form .views-submit-button input.form-submit {
		width: 100% !important;
	}
}

/* --------------------------------------------------------------------------
   Newsletter — texto sempre centralizado (todas as páginas)
   -------------------------------------------------------------------------- */

#page #content #block-block-9,
#page #content #newslatter-block,
#page #content .melhor-email,
.panel-pane.pane-block-9 .pane-content,
.panel-pane.pane-block-9 .melhor-email {
	text-align: center !important;
}

/* Coluna do texto: full-width (não 41% à esquerda) */
#page #content .melhor-email .mauticform-email,
#page #content #block-block-9 .melhor-email .mauticform-email,
#page #content #newslatter-block .melhor-email .mauticform-email,
.panel-pane.pane-block-9 .melhor-email .mauticform-email,
.mauticform_seu_melhor_email,
#mauticform_seu_melhor_email {
	display: block !important;
	float: none !important;
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 auto 1rem !important;
	text-align: center !important;
}

#page #content .melhor-email .mauticform-email h1,
#page #content .melhor-email .mauticform-email h2,
#page #content #block-block-9 .melhor-email .mauticform-email h1,
#page #content #block-block-9 .melhor-email .mauticform-email h2,
#page #content #newslatter-block .melhor-email .mauticform-email h1,
#page #content #newslatter-block .melhor-email .mauticform-email h2,
.panel-pane.pane-block-9 .melhor-email .mauticform-email h1,
.panel-pane.pane-block-9 .melhor-email .mauticform-email h2,
.mauticform_seu_melhor_email h1,
.mauticform_seu_melhor_email h2,
#mauticform_seu_melhor_email h1,
#mauticform_seu_melhor_email h2,
.mauticform_seu_melhor_email p,
#mauticform_seu_melhor_email p {
	display: block !important;
	width: 100% !important;
	max-width: 40rem;
	margin-left: auto !important;
	margin-right: auto !important;
	text-align: center !important;
}

/* Formulário abaixo, centralizado */
#page #content .melhor-email .mauticform-formulario,
#page #content #block-block-9 .melhor-email .mauticform-formulario,
#page #content #newslatter-block .melhor-email .mauticform-formulario,
.panel-pane.pane-block-9 .melhor-email .mauticform-formulario {
	display: block !important;
	float: none !important;
	width: 100% !important;
	max-width: 52rem;
	margin: 0 auto !important;
	text-align: center !important;
}

#page #content .melhor-email .mauticform-formulario .mauticform-field-email,
#page #content .melhor-email .mauticform-formulario .mauticform-button-wrapper {
	float: none !important;
	vertical-align: middle;
}

@media only screen and (min-width: 900px) {
	#page #content .melhor-email .mauticform-formulario .mauticform-field-email,
	#page #content .melhor-email .mauticform-formulario .mauticform-button-wrapper {
		display: inline-block !important;
	}
}

/* --------------------------------------------------------------------------
   Guia Local — mais respiro no título
   -------------------------------------------------------------------------- */

#page #content .pane-informa-es-de-ubatuba h2.block-title {
	padding-top: clamp(1.5rem, 3vw, 3rem);
}

/* --------------------------------------------------------------------------
   Informações de Ubatuba (/informacoes-de-ubatuba) — grid de cards
   Escopo: fora da home (carrossel da home permanece intacto)
   -------------------------------------------------------------------------- */

body:not(.page-home) #page #content .pane-informa-es-de-ubatuba {
	box-sizing: border-box;
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
	padding: clamp(1.5rem, 4vw, 3rem) clamp(1rem, 4vw, 2rem) clamp(2.5rem, 5vw, 4rem);
}

body:not(.page-home) #page #content .pane-informa-es-de-ubatuba h2.pane-title.block-title,
body:not(.page-home) #page #content .pane-informa-es-de-ubatuba h2.block-title {
	display: block;
	margin: 0 0 clamp(1.5rem, 3vw, 4.5rem);
	padding-top: 0;
	text-align: center;
	color: #08414d;
	font-size: clamp(1.75rem, 3.2vw, 2.75rem);
	font-weight: 800;
	line-height: 1.15;
	text-transform: none;
	letter-spacing: -0.02em;
}

body:not(.page-home) #page #content .pane-informa-es-de-ubatuba h2.block-title:after {
	margin-top: 0.65rem;
	margin-bottom: 1.5rem;
	width: 2.5rem;
	height: 0.45rem;
	background-size: contain;
}

body:not(.page-home) #page #content .view-informa-es-de-ubatuba {
	padding: 0;
}

body:not(.page-home) #page #content .view-informa-es-de-ubatuba .view-content,
body:not(.page-home) #page #content .view-informa-es-de-ubatuba .item-list {
	width: 100%;
}

body:not(.page-home) #page #content .view-informa-es-de-ubatuba ul {
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 1.15rem;
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
	list-style: none;
	height: auto;
	flex-direction: unset;
	flex-wrap: unset;
}

body:not(.page-home) #page #content .view-informa-es-de-ubatuba ul li {
	display: flex !important;
	flex-direction: column;
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
	padding-bottom: 0 !important;
	background: #fff;
	border: 1px solid rgba(8, 65, 77, 0.08);
	border-radius: 14px;
	overflow: hidden;
	box-shadow: 0 6px 18px rgba(8, 25, 35, 0.07);
	transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
	height: auto;
	min-height: 0;
}

body:not(.page-home) #page #content .view-informa-es-de-ubatuba ul li:hover {
	transform: translateY(-3px);
	box-shadow: 0 12px 28px rgba(8, 25, 35, 0.12);
	border-color: rgba(0, 170, 200, 0.35);
}

body:not(.page-home) #page #content .view-informa-es-de-ubatuba ul li .views-field-field-imagem {
	position: relative;
	display: block;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: #d9e5e8;
}

body:not(.page-home) #page #content .view-informa-es-de-ubatuba ul li .views-field-field-imagem img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.35s ease;
}

body:not(.page-home) #page #content .view-informa-es-de-ubatuba ul li:hover .views-field-field-imagem img {
	transform: scale(1.04);
}

body:not(.page-home) #page #content .view-informa-es-de-ubatuba ul li .views-field-title {
	display: flex !important;
	align-items: center;
	justify-content: center;
	flex: 1 1 auto;
	width: 100% !important;
	height: auto !important;
	min-height: 3.75rem;
	margin: 0;
	padding: 0.9rem 0.85rem 1rem !important;
	position: relative !important;
	transform: none !important;
	background: #fff !important;
	text-align: center;
	box-sizing: border-box;
	border-radius: 0;
}

body:not(.page-home) #page #content .view-informa-es-de-ubatuba ul li .views-field-title a {
	display: block;
	width: 100%;
	color: #08414d !important;
	font-size: clamp(0.95rem, 1.1vw, 1.05rem) !important;
	font-weight: 700 !important;
	line-height: 1.3;
	text-decoration: none;
	overflow-wrap: break-word;
}

body:not(.page-home) #page #content .view-informa-es-de-ubatuba ul li .views-field-title a:hover {
	color: #00aac8 !important;
}

body:not(.page-home) #page #content .view-informa-es-de-ubatuba ul li .views-field-type {
	margin: 0;
	padding: 0 0.75rem 0.95rem;
	color: #00aac8;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	text-align: center;
}

@media only screen and (max-width: 699px) {
	body:not(.page-home) #page #content .pane-informa-es-de-ubatuba {
		padding: 1.25rem 4vw 2.5rem;
	}

	body:not(.page-home) #page #content .pane-informa-es-de-ubatuba h2.pane-title.block-title,
	body:not(.page-home) #page #content .pane-informa-es-de-ubatuba h2.block-title {
		font-size: clamp(1.55rem, 7vw, 2rem);
		margin-bottom: 1.5rem;
	}

	body:not(.page-home) #page #content .view-informa-es-de-ubatuba ul {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0.75rem;
	}

	body:not(.page-home) #page #content .view-informa-es-de-ubatuba ul li {
		width: 100% !important;
		padding-bottom: 0 !important;
	}

	body:not(.page-home) #page #content .view-informa-es-de-ubatuba ul li .views-field-title {
		min-height: 3.25rem;
		padding: 0.7rem 0.55rem 0.85rem !important;
	}

	body:not(.page-home) #page #content .view-informa-es-de-ubatuba ul li .views-field-title a {
		font-size: 0.9rem !important;
	}
}

@media only screen and (min-width: 900px) {
	body:not(.page-home) #page #content .view-informa-es-de-ubatuba ul {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 1.25rem;
	}
}

/* --------------------------------------------------------------------------
   Pontos turísticos (/informacoes-de-ubatuba) — grid + hover
   Escopo: fora da home (carrossel/home permanece intacto)
   -------------------------------------------------------------------------- */

body:not(.page-home) #page #content .pane-pontos-tur-sticos {
	box-sizing: border-box;
	width: 100%;
	max-width: none;
	margin: 0;
	padding: clamp(1.75rem, 4vw, 3.25rem) clamp(1rem, 4vw, 2rem) clamp(2.5rem, 5vw, 4rem);
	background: #00aac8;
}

body:not(.page-home) #page #content .pane-pontos-tur-sticos h2.pane-title.block-title,
body:not(.page-home) #page #content .pane-pontos-tur-sticos h2.block-title {
	display: block;
	margin: 0 0 clamp(1.5rem, 3vw, 4.5rem);
	padding-top: 0;
	text-align: center;
	color: #fff;
	font-size: clamp(1.75rem, 3.2vw, 2.75rem);
	font-weight: 800;
	line-height: 1.15;
	text-transform: none;
	letter-spacing: -0.02em;
}

body:not(.page-home) #page #content .pane-pontos-tur-sticos h2.block-title:after {
	margin-top: 0.65rem;
	margin-bottom: 1.5rem;
	width: 2.5rem;
	height: 0.45rem;
	background-size: contain;
}

body:not(.page-home) #page #content .view-pontos-tur-sticos {
	padding: 0;
	max-width: 1200px;
	margin: 0 auto;
}

body:not(.page-home) #page #content .view-pontos-tur-sticos .view-content,
body:not(.page-home) #page #content .view-pontos-tur-sticos .item-list {
	width: 100%;
}

body:not(.page-home) #page #content .view-pontos-tur-sticos ul {
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: 1.25rem;
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
	list-style: none;
	height: auto;
	flex-direction: unset;
	flex-wrap: unset;
	justify-content: stretch;
}

body:not(.page-home) #page #content .view-pontos-tur-sticos ul li {
	display: flex !important;
	flex-direction: column;
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
	padding-bottom: 0 !important;
	background: #fff;
	border: 1px solid rgba(255, 255, 255, 0.35);
	border-radius: 14px;
	overflow: hidden;
	box-shadow: 0 8px 22px rgba(8, 25, 35, 0.14);
	transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease;
	height: auto;
	min-height: 0;
	position: relative;
	vertical-align: top;
}

body:not(.page-home) #page #content .view-pontos-tur-sticos ul li:hover {
	transform: translateY(-4px);
	box-shadow: 0 16px 36px rgba(8, 25, 35, 0.2);
	border-color: rgba(255, 255, 255, 0.85);
}

body:not(.page-home) #page #content .view-pontos-tur-sticos ul li .views-field-field-imagem {
	position: relative;
	display: block;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: #d9e5e8;
}

body:not(.page-home) #page #content .view-pontos-tur-sticos ul li .views-field-field-imagem img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 0;
	transition: transform 0.35s ease;
}

body:not(.page-home) #page #content .view-pontos-tur-sticos ul li:hover .views-field-field-imagem img {
	transform: scale(1.05);
}

#page #content .view-pontos-tur-sticos ul li .pontos-turisticos-locais,
#page #content .view-informa-es-de-ubatuba ul li .views-field-title {
	height: auto !important;
	min-height: 0;
	position: relative !important;
	transform: none !important;
	padding: 0.85rem 0.65rem 1rem;
	box-sizing: border-box;
}

body:not(.page-home) #page #content .view-pontos-tur-sticos ul li .pontos-turisticos-locais {
	display: flex !important;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.4rem;
	flex: 1 1 auto;
	width: 100%;
	margin: 0;
	padding: 0.95rem 0.85rem 0.35rem !important;
	background: #fff !important;
	text-align: center;
	border-radius: 0;
}

body:not(.page-home) #page #content .view-pontos-tur-sticos ul li .pontos-turisticos-locais .titulo {
	padding-bottom: 0;
	min-height: 0;
	line-height: 1.25;
	width: 100%;
}

body:not(.page-home) #page #content .view-pontos-tur-sticos ul li .pontos-turisticos-locais .titulo a {
	display: block;
	width: 100%;
	color: #08414d !important;
	font-size: clamp(0.95rem, 1.15vw, 1.08rem) !important;
	font-weight: 700 !important;
	line-height: 1.3;
	text-decoration: none;
	overflow-wrap: break-word;
}

body:not(.page-home) #page #content .view-pontos-tur-sticos ul li:hover .pontos-turisticos-locais .titulo a,
body:not(.page-home) #page #content .view-pontos-tur-sticos ul li .pontos-turisticos-locais .titulo a:hover {
	color: #00aac8 !important;
}

body:not(.page-home) #page #content .view-pontos-tur-sticos ul li .pontos-turisticos-locais .praia {
	padding-bottom: 0;
	margin-top: 0;
	line-height: 1.35;
	color: #00aac8;
	font-size: 0.8rem;
	font-weight: 600;
}

body:not(.page-home) #page #content .view-pontos-tur-sticos ul li .pontos-turisticos-locais .praia:before {
	width: 0.7rem;
	height: 0.95rem;
	background-size: 0.65rem;
	margin-right: 0.3rem;
	vertical-align: text-bottom;
}

body:not(.page-home) #page #content .view-pontos-tur-sticos ul li .views-field-type {
	margin: 0;
	padding: 0.35rem 0.75rem 1rem;
	color: #5a7a82;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	text-align: center;
}

@media only screen and (max-width: 699px) {
	body:not(.page-home) #page #content .pane-pontos-tur-sticos {
		padding: 1.5rem 4vw 2.5rem;
	}

	body:not(.page-home) #page #content .pane-pontos-tur-sticos h2.pane-title.block-title,
	body:not(.page-home) #page #content .pane-pontos-tur-sticos h2.block-title {
		font-size: clamp(1.55rem, 7vw, 2rem);
		margin-bottom: 1.5rem;
	}

	body:not(.page-home) #page #content .view-pontos-tur-sticos ul {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0.85rem;
	}

	body:not(.page-home) #page #content .view-pontos-tur-sticos ul li {
		width: 100% !important;
		margin: 0 !important;
		padding-bottom: 0 !important;
	}

	body:not(.page-home) #page #content .view-pontos-tur-sticos ul li .pontos-turisticos-locais {
		padding: 0.7rem 0.55rem 0.25rem !important;
	}

	body:not(.page-home) #page #content .view-pontos-tur-sticos ul li .pontos-turisticos-locais .titulo a {
		font-size: 0.88rem !important;
	}

	body:not(.page-home) #page #content .view-pontos-tur-sticos ul li .pontos-turisticos-locais .praia {
		font-size: 0.72rem;
	}

	body:not(.page-home) #page #content .view-pontos-tur-sticos ul li .views-field-type {
		padding-bottom: 0.85rem;
		font-size: 0.65rem;
	}
}

@media only screen and (min-width: 900px) {
	body:not(.page-home) #page #content .view-pontos-tur-sticos ul {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 1.35rem;
	}
}

@media only screen and (min-width: 1100px) {
	body:not(.page-home) #page #content .view-pontos-tur-sticos ul {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

/* --------------------------------------------------------------------------
   Ponto turístico (detalhe) — coluna única (corrige float legado quebrado)
   -------------------------------------------------------------------------- */

.node-type-ponto-turistico #page #content .content-width {
	box-sizing: border-box;
	max-width: 1200px;
	margin: 0 auto;
	padding-left: clamp(1rem, 4vw, 2rem);
	padding-right: clamp(1rem, 4vw, 2rem);
}

.node-type-ponto-turistico #page #content .node-content {
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	align-items: stretch;
	width: 100%;
	max-width: 52rem;
	margin: 0 auto;
	padding: clamp(1.25rem, 3vw, 2.5rem) 0 clamp(2.5rem, 5vw, 4rem) !important;
	padding-right: 0 !important;
	overflow: visible;
}

.node-type-ponto-turistico #page #content .content-img {
	float: none !important;
	display: block;
	width: 100%;
	max-width: 100% !important;
	margin: 0 0 1.25rem !important;
	overflow: hidden;
	border-radius: 14px;
	background: #d9e5e8;
	aspect-ratio: 16 / 10;
}

.node-type-ponto-turistico #page #content .content-img img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.node-type-ponto-turistico #page #content .praia-content {
	display: block !important;
	order: 2;
	margin: 0 0 0.5rem;
	color: #00aac8;
	font-size: 0.85rem;
	font-weight: 700;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	line-height: 1.3;
}

.node-type-ponto-turistico #page #content .praia-content:before {
	content: "";
	display: inline-block;
	width: 0.7rem;
	height: 0.95rem;
	margin-right: 0.35rem;
	vertical-align: text-bottom;
	background: url(../images/icon-location.png) no-repeat center center;
	background-size: contain;
}

.node-type-ponto-turistico #page #content h1.nome {
	order: 3;
	margin: 0 0 1.35rem !important;
	padding: 0 !important;
	padding-top: 0 !important;
	padding-left: 0 !important;
	color: #08414d;
	font-size: clamp(1.75rem, 3.5vw, 2.5rem) !important;
	font-weight: 800;
	line-height: 1.15;
	letter-spacing: -0.02em;
}

.node-type-ponto-turistico #page #content .descricao {
	order: 4;
	clear: both;
	width: 100%;
	max-width: 100%;
	margin: 0;
	padding: 0;
}

.node-type-ponto-turistico #page #content .descricao h2,
.node-type-ponto-turistico #page #content .descricao h3,
.node-type-ponto-turistico #page #content .descricao h4 {
	margin: 1.5rem 0 0.65rem !important;
	padding: 0 !important;
	padding-left: 0 !important;
	color: #00aac8;
	font-family: inherit;
	font-size: clamp(1.15rem, 2vw, 1.35rem) !important;
	font-weight: 700;
	line-height: 1.25;
	text-transform: none;
}

.node-type-ponto-turistico #page #content .descricao h2:first-child,
.node-type-ponto-turistico #page #content .descricao h3:first-child {
	margin-top: 0 !important;
}

.node-type-ponto-turistico #page #content .descricao p,
.node-type-ponto-turistico #page #content .descricao li {
	margin: 0 0 1rem !important;
	padding: 0 !important;
	padding-left: 0 !important;
	color: #333;
	font-size: clamp(0.98rem, 1.35vw, 1.08rem) !important;
	line-height: 1.65;
}

.node-type-ponto-turistico #page #content .descricao iframe,
.node-type-ponto-turistico #page #content .descricao .embed-responsive-4by3,
.node-type-ponto-turistico #content .node-content .descricao .embed-responsive-4by3 {
	display: block;
	box-sizing: border-box;
	width: 100% !important;
	max-width: 100% !important;
	height: auto;
	min-height: 280px;
	aspect-ratio: 16 / 9;
	margin: 1.25rem 0 0 !important;
	padding: 0 !important;
	padding-left: 0 !important;
	border: 0;
	border-radius: 12px;
}

.node-type-ponto-turistico #page #content .descricao p:has(iframe) {
	margin-bottom: 0 !important;
}

.node-type-ponto-turistico #page #content .comments-wrapper {
	order: 5;
	clear: both;
	width: 100%;
	margin-top: 2rem;
	padding: 0 !important;
}

@media only screen and (max-width: 699px) {
	.node-type-ponto-turistico #page #content .content-width {
		padding-left: 4vw;
		padding-right: 4vw;
	}

	.node-type-ponto-turistico #page #content .node-content {
		padding-top: 1rem !important;
		padding-bottom: 2.5rem !important;
	}

	.node-type-ponto-turistico #page #content .content-img {
		border-radius: 12px;
		aspect-ratio: 4 / 3;
	}

	.node-type-ponto-turistico #page #content h1.nome {
		font-size: clamp(1.55rem, 7vw, 2rem) !important;
	}

	.node-type-ponto-turistico #page #content .descricao iframe {
		min-height: 220px;
	}
}

/* --------------------------------------------------------------------------
   Informações de Ubatuba (detalhe: Aeroporto, Sobre, CEU, …) — coluna única
   Vence float/padding vw de global.styles + responsive. Sem comentários.
   Câmeras ao vivo: .uo-page-cameras-live intacto.
   -------------------------------------------------------------------------- */

body.node-type-informacoes-de-ubatuba:not(.uo-page-cameras-live) #page #content .content-width {
	box-sizing: border-box !important;
	max-width: 1200px !important;
	margin: 0 auto !important;
	padding: clamp(1.25rem, 3vw, 2.5rem) clamp(1rem, 4vw, 2rem) clamp(2.5rem, 5vw, 4rem) !important;
}

body.node-type-informacoes-de-ubatuba:not(.uo-page-cameras-live) #page #content .node-content {
	box-sizing: border-box !important;
	display: flex !important;
	flex-direction: column !important;
	align-items: stretch !important;
	float: none !important;
	clear: both !important;
	width: 100% !important;
	max-width: 60rem !important;
	margin: 0 auto !important;
	padding: 0 !important;
	overflow: visible !important;
}

body.node-type-informacoes-de-ubatuba:not(.uo-page-cameras-live) #page #content .content-img {
	float: none !important;
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 0 1.35rem !important;
	overflow: hidden;
	border-radius: 14px;
	background: #d9e5e8;
	aspect-ratio: 16 / 10;
}

body.node-type-informacoes-de-ubatuba:not(.uo-page-cameras-live) #page #content .content-img img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

body.node-type-informacoes-de-ubatuba:not(.uo-page-cameras-live) #page #content .praia-content {
	display: none !important;
}

body.node-type-informacoes-de-ubatuba:not(.uo-page-cameras-live) #page #content h1.nome {
	margin: 0 0 1.15rem !important;
	padding: 0 !important;
	color: #08414d !important;
	font-family: inherit !important;
	font-size: clamp(1.75rem, 3.5vw, 2.5rem) !important;
	font-weight: 800 !important;
	line-height: 1.15 !important;
	letter-spacing: -0.02em;
	text-transform: none !important;
}

/* Card de resumo (Sobre Ubatuba) — mesmo espírito do Fale Conosco. */
body.node-type-informacoes-de-ubatuba:not(.uo-page-cameras-live) #page #content .uo-content-summary {
	box-sizing: border-box;
	margin: 0 0 1.5rem;
	padding: 1.15rem 1.25rem 1.2rem;
	background: #fff;
	border: 1px solid #e2e8f0;
	border-radius: 14px;
	box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

body.node-type-informacoes-de-ubatuba:not(.uo-page-cameras-live) #page #content .uo-content-summary h2 {
	margin: 0 0 0.65rem !important;
	padding: 0 !important;
	color: #00aac8 !important;
	font-size: clamp(1.1rem, 2vw, 1.3rem) !important;
	font-weight: 700 !important;
	line-height: 1.25;
	text-transform: none !important;
	font-family: inherit !important;
}

body.node-type-informacoes-de-ubatuba:not(.uo-page-cameras-live) #page #content .uo-content-summary p,
body.node-type-informacoes-de-ubatuba:not(.uo-page-cameras-live) #page #content .uo-content-summary li {
	margin: 0 0 0.75rem !important;
	padding: 0 !important;
	color: #334155 !important;
	font-size: 1.02rem !important;
	line-height: 1.6 !important;
}

body.node-type-informacoes-de-ubatuba:not(.uo-page-cameras-live) #page #content .uo-content-summary ul {
	margin: 0.35rem 0 0;
	padding-left: 1.2rem;
}

body.node-type-informacoes-de-ubatuba:not(.uo-page-cameras-live) #page #content .uo-content-summary a {
	color: #00aac8;
	font-weight: 600;
	text-decoration: none;
}

body.node-type-informacoes-de-ubatuba:not(.uo-page-cameras-live) #page #content .uo-content-summary a:hover {
	text-decoration: underline;
}

body.node-type-informacoes-de-ubatuba:not(.uo-page-cameras-live) #page #content .descricao {
	clear: both !important;
	float: none !important;
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
}

body.node-type-informacoes-de-ubatuba:not(.uo-page-cameras-live) #page #content .descricao h2,
body.node-type-informacoes-de-ubatuba:not(.uo-page-cameras-live) #page #content .descricao h3,
body.node-type-informacoes-de-ubatuba:not(.uo-page-cameras-live) #page #content .descricao h4 {
	margin: 1.5rem 0 0.65rem !important;
	padding: 0 !important;
	color: #00aac8 !important;
	font-family: inherit !important;
	font-size: clamp(1.15rem, 2vw, 1.35rem) !important;
	font-weight: 700 !important;
	line-height: 1.25;
	text-transform: none !important;
}

body.node-type-informacoes-de-ubatuba:not(.uo-page-cameras-live) #page #content .descricao h2:first-child,
body.node-type-informacoes-de-ubatuba:not(.uo-page-cameras-live) #page #content .descricao h3:first-child {
	margin-top: 0 !important;
}

body.node-type-informacoes-de-ubatuba:not(.uo-page-cameras-live) #page #content .descricao p,
body.node-type-informacoes-de-ubatuba:not(.uo-page-cameras-live) #page #content .descricao li {
	margin: 0 0 0.95rem !important;
	padding: 0 !important;
	color: #334155 !important;
	font-size: 1.05rem !important;
	line-height: 1.65 !important;
}

body.node-type-informacoes-de-ubatuba:not(.uo-page-cameras-live) #page #content .descricao ul,
body.node-type-informacoes-de-ubatuba:not(.uo-page-cameras-live) #page #content .descricao ol {
	margin: 0 0 1rem;
	padding-left: 1.25rem;
}

/* Imagens/iframes genéricos. Fora: MelhoresRotas (#rp-embed-*) e Meteored
   (iframe[name=flipe]) — height:auto / width:100% cortam o widget. */
body.node-type-informacoes-de-ubatuba:not(.uo-page-cameras-live) #page #content .descricao iframe:not([id^="rp-embed-"]):not([name="flipe"]),
body.node-type-informacoes-de-ubatuba:not(.uo-page-cameras-live) #page #content .descricao img {
	display: block;
	box-sizing: border-box;
	width: 100% !important;
	max-width: 100% !important;
	height: auto !important;
	margin: 1.15rem 0 0 !important;
	padding: 0 !important;
	border: 0;
	border-radius: 12px;
}

body.node-type-informacoes-de-ubatuba #page #content #calcular-viagem-ubatuba,
body.node-type-informacoes-de-ubatuba #page #content #calcular-viagem-ubatuba > div {
	box-sizing: border-box;
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 auto !important;
	overflow: visible !important;
}

body.node-type-informacoes-de-ubatuba #page #content #calcular-viagem-ubatuba iframe[id^="rp-embed-"],
body.node-type-informacoes-de-ubatuba #page #content iframe[id^="rp-embed-"] {
	display: block;
	box-sizing: border-box;
	width: 100% !important;
	max-width: 100% !important;
	min-height: 28rem;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 12px;
	overflow: hidden;
}

/* Passagem de ônibus — iframes antigos (Guichê/Litorânea) quebrados; CTAs externos. */
body.node-type-informacoes-de-ubatuba #page #content #passagem-onibus.uo-passagem-tickets {
	float: none !important;
	clear: both !important;
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: visible !important;
}

body.node-type-informacoes-de-ubatuba #page #content .uo-passagem-tickets__lead {
	margin: 0 0 1.25rem !important;
	padding: 0 !important;
	color: #334155 !important;
	font-size: 1.05rem !important;
	line-height: 1.65 !important;
}

body.node-type-informacoes-de-ubatuba #page #content .uo-passagem-tickets__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
}

body.node-type-informacoes-de-ubatuba #page #content .uo-passagem-tickets__card {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.35rem;
	box-sizing: border-box;
	min-height: 100%;
	padding: 1.25rem 1.35rem;
	border: 1px solid #e2e8f0;
	border-radius: 14px;
	background: #fff;
	color: inherit;
	text-decoration: none !important;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

body.node-type-informacoes-de-ubatuba #page #content .uo-passagem-tickets__card:hover,
body.node-type-informacoes-de-ubatuba #page #content .uo-passagem-tickets__card:focus {
	border-color: #00aac8;
	box-shadow: 0 8px 24px rgba(0, 170, 200, 0.12);
}

body.node-type-informacoes-de-ubatuba #page #content .uo-passagem-tickets__eyebrow {
	color: #00aac8;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

body.node-type-informacoes-de-ubatuba #page #content .uo-passagem-tickets__title {
	color: #08414d;
	font-size: 1.25rem;
	font-weight: 800;
	line-height: 1.2;
}

body.node-type-informacoes-de-ubatuba #page #content .uo-passagem-tickets__text {
	flex: 1;
	margin: 0.25rem 0 0.75rem;
	color: #475569;
	font-size: 0.98rem;
	line-height: 1.5;
}

body.node-type-informacoes-de-ubatuba #page #content .uo-passagem-tickets__cta {
	display: inline-block;
	margin-top: auto;
	padding: 0.55rem 0.9rem;
	border-radius: 10px;
	background: #00aac8;
	color: #fff !important;
	font-size: 0.92rem;
	font-weight: 700;
}

@media only screen and (max-width: 699px) {
	body.node-type-informacoes-de-ubatuba #page #content .uo-passagem-tickets__grid {
		grid-template-columns: 1fr;
	}
}

/* Previsão do tempo (tempo.com / Meteored): widget nativo 777×327. */
body.node-type-informacoes-de-ubatuba #page #content .descricao .previsao {
	float: none !important;
	clear: both !important;
	box-sizing: border-box;
	width: 100% !important;
	max-width: 777px !important;
	margin: 0 auto !important;
	overflow-x: auto !important;
	overflow-y: visible !important;
	-webkit-overflow-scrolling: touch;
}

body.node-type-informacoes-de-ubatuba #page #content .descricao .previsao [id^="cont_"] {
	box-sizing: border-box;
	width: 777px !important;
	max-width: 777px !important;
	margin: 0 auto !important;
	overflow: visible !important;
}

body.node-type-informacoes-de-ubatuba #page #content .descricao .previsao iframe,
body.node-type-informacoes-de-ubatuba #page #content .descricao .previsao iframe[name="flipe"] {
	display: block !important;
	box-sizing: border-box;
	width: 777px !important;
	max-width: 777px !important;
	height: 327px !important;
	min-height: 327px !important;
	margin: 0 auto !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 12px;
}

body.node-type-informacoes-de-ubatuba:not(.uo-page-cameras-live) #page #content .comments-wrapper {
	display: none !important;
}

@media only screen and (max-width: 699px) {
	body.node-type-informacoes-de-ubatuba:not(.uo-page-cameras-live) #page #content .content-width {
		padding-left: 4vw !important;
		padding-right: 4vw !important;
	}

	body.node-type-informacoes-de-ubatuba:not(.uo-page-cameras-live) #page #content .content-img {
		border-radius: 12px;
		aspect-ratio: 4 / 3;
	}

	body.node-type-informacoes-de-ubatuba:not(.uo-page-cameras-live) #page #content h1.nome {
		font-size: clamp(1.55rem, 7vw, 2rem) !important;
	}

	body.node-type-informacoes-de-ubatuba:not(.uo-page-cameras-live) #page #content .uo-content-summary {
		padding: 1rem;
	}
}

/* --------------------------------------------------------------------------
   Widget do tempo — FAB acima do uo-itinerary-badge (coluna direita)
   -------------------------------------------------------------------------- */

/* Header: altura um pouco menor no normal; .small só comprime um pouco (sem torto). */
#header {
	padding-top: 0 !important;
	box-sizing: border-box;
}

@media only screen and (min-width: 1024px) {
	body #page {
		margin-top: 4.5vw;
	}

	#header,
	#header .content-width {
		height: 4.5vw;
		padding-top: 0;
		padding-bottom: 0;
	}

	#header .header-wrapper,
	#header .header-wrapper > .region,
	#header .header-wrapper .region-inner {
		height: 100%;
	}

	#header .content-width .block-content .logo-header .logo-header-left img {
		width: 8.5vw;
	}

	/*
	 * .small: mesma estrutura do normal, só um pouco mais baixo.
	 * Evita height:auto + region-inner 3.75vw (menu no topo + branco embaixo).
	 */
	#header.small,
	#header.small .content-width {
		height: 4vw !important;
		min-height: 4vw !important;
		max-height: 4vw !important;
		padding-top: 0 !important;
		padding-bottom: 0 !important;
		overflow: visible !important;
	}

	#header.small .header-wrapper,
	#header.small .header-wrapper > .region,
	#header.small .header-wrapper .region-inner {
		height: 100% !important;
		min-height: 0 !important;
		max-height: none !important;
		align-items: center !important;
	}

	#header.small .content-width .block-content .logo-header .logo-header-left img {
		width: 7.5vw;
	}

	#header.small .content-width #block-system-main-menu {
		bottom: auto;
		height: auto;
		align-self: center;
	}

	#page #content.small #busca-praia-home {
		top: 4vw;
	}
}

#header #block-block-15,
#header.small #block-block-15 {
	position: fixed !important;
	right: 16px !important;
	left: auto !important;
	top: auto !important;
	bottom: 160px !important;
	transform: none !important;
	z-index: 902;
	width: auto;
	max-width: none;
	height: auto;
	margin: 0;
	align-self: auto;
	flex-shrink: 0;
	overflow: visible;
}

/* Conta saiu do FAB — mesmo bottom logado/deslogado (clima + roteiro). */
body.logged-in #header #block-block-15,
body.logged-in #header.small #block-block-15 {
	bottom: 160px !important;
}

#header #block-block-15 .previsao-do-tempo,
#header .previsao-do-tempo,
body.logged-in #header #block-block-15 .previsao-do-tempo,
body.logged-in #header .previsao-do-tempo,
#header.small .previsao-do-tempo {
	position: relative !important;
	left: auto !important;
	right: auto !important;
	top: auto !important;
	bottom: auto !important;
	contain: none;
	z-index: 120;
	overflow: hidden;
	height: 56px;
	margin: 0;
	padding: 0;
	box-sizing: border-box;
	transform: none;
	border-radius: 14px;
	background: #fff;
	border: 1px solid rgba(0, 170, 200, 0.28);
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.18);
	flex-shrink: 0;
}

#header .before-weather-header {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	width: 100%;
	height: 100%;
	z-index: 3;
	border-radius: 18px;
}

body.page-admin #header #block-block-15,
body.page-admin .previsao-do-tempo {
	display: none !important;
}

@media only screen and (max-width: 699px) {
	/* Weather stays fixed bottom-right until JS moves it into #uo-fab-rail.
	 * Do NOT set position:relative on #header #block-block-15 — that parks
	 * the widget in the header flow (top-left) for anonymous users. */
	#header #block-block-15,
	#header.small #block-block-15,
	body.logged-in #header #block-block-15,
	body.logged-in #header.small #block-block-15 {
		position: fixed !important;
		right: 12px !important;
		left: auto !important;
		top: auto !important;
		bottom: var(--uo-fab-rail-bottom, calc(56px + env(safe-area-inset-bottom, 0px) + 12px)) !important;
		max-width: none;
	}

	#header #block-block-15 .previsao-do-tempo,
	#header .previsao-do-tempo,
	body.logged-in #header #block-block-15 .previsao-do-tempo,
	body.logged-in #header .previsao-do-tempo {
		height: 54px;
		border-radius: 12px;
	}

	/* Badges fora do rail mantêm fixed (gw2d-itinerary / account CSS).
	 * Só viram relative quando o JS os move para #uo-fab-rail. */
}

/* Account badge lives in the header — keep legacy welcome hidden. */
body.logged-in #header #block-gw2d-gw2d-welcome,
body.logged-in.open-menu #header #block-gw2d-gw2d-welcome,
.open-menu #header #block-gw2d-gw2d-welcome,
#header #block-gw2d-gw2d-welcome,
#header .welcome-block,
#header .btn-sair {
	display: none !important;
	visibility: hidden !important;
	height: 0 !important;
	width: 0 !important;
	overflow: hidden !important;
	pointer-events: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* --------------------------------------------------------------------------
   Header alinhado ao footer + contraste do rodapé
   -------------------------------------------------------------------------- */

/* Mesma “faixa útil” do footer (padding lateral 12vw). */
#header .content-width {
	max-width: none;
	width: 100%;
	padding: 0 12vw;
	box-sizing: border-box;
}

/* Situação atual: mesma largura do header — cards ganham espaço. */
#home-city-status.uo-city-status,
.uo-city-status {
	padding-left: 0;
	padding-right: 0;
}

#home-city-status .uo-city-status__inner,
.uo-city-status__inner {
	max-width: none;
	width: 100%;
	margin: 0 auto;
	padding: 0 17vw;
	box-sizing: border-box;
}

/* Desktop only — no mobile estes estilos anulam o drawer (width/left). */
@media only screen and (min-width: 1024px) {
	#header .content-width #block-system-main-menu {
		width: auto;
		flex: 1 1 auto;
		max-width: none;
	}
}

@media only screen and (max-width: 1023px) {
	#header .content-width {
		padding: 0 5vw;
	}

	#home-city-status .uo-city-status__inner,
	.uo-city-status__inner {
		padding: 0 5vw;
	}
}

/* Tablet (ex.: 768×1024 / 820×1180): header fixed + logo centralizada. */
@media only screen and (min-width: 700px) and (max-width: 1023px) {
	#header {
		position: fixed !important;
		top: 0 !important;
		left: 0 !important;
		right: 0 !important;
		width: 100% !important;
		height: 76px !important;
		min-height: 76px !important;
		max-height: 76px !important;
		overflow: visible !important;
		z-index: 1000 !important;
	}

	/* relative só no miolo — âncora dos absolute internos, sem tirar o fixed do #header. */
	#header .content-width {
		position: relative !important;
		height: 76px !important;
		min-height: 76px !important;
		max-height: 76px !important;
		overflow: visible !important;
		box-sizing: border-box !important;
	}

	body #page {
		margin-top: 76px !important;
	}

	#header #button-menu.open-menu,
	#header .open-menu#button-menu {
		position: absolute !important;
		left: 12px !important;
		top: 50% !important;
		margin: 0 !important;
		-webkit-transform: translateY(-50%) !important;
		transform: translateY(-50%) !important;
		z-index: 30 !important;
	}

	#header #block-gw2d-gw2d-header,
	#header.small #block-gw2d-gw2d-header {
		position: absolute !important;
		left: 50% !important;
		top: 50% !important;
		right: auto !important;
		float: none !important;
		width: auto !important;
		max-width: min(220px, calc(100% - 120px)) !important;
		padding: 0 !important;
		margin: 0 !important;
		-webkit-transform: translate(-50%, -50%) !important;
		transform: translate(-50%, -50%) !important;
		text-align: center !important;
		z-index: 10 !important;
	}

	#header #block-gw2d-gw2d-header .logo-header,
	#header #block-gw2d-gw2d-header .logo-header-left,
	#header.small #block-gw2d-gw2d-header .logo-header,
	#header.small #block-gw2d-gw2d-header .logo-header-left,
	#header .logo-header,
	#header.small .logo-header-left {
		position: static !important;
		display: block !important;
		float: none !important;
		left: auto !important;
		top: auto !important;
		width: auto !important;
		max-width: none !important;
		height: auto !important;
		padding: 0 !important;
		margin: 0 !important;
		-webkit-transform: none !important;
		transform: none !important;
	}

	#header .content-width .block-content .logo-header .logo-header-left img,
	#header.small .content-width .block-content .logo-header .logo-header-left img {
		width: 100% !important;
		max-width: 200px !important;
		height: auto !important;
		display: block !important;
		margin: 0 auto !important;
	}

	.uo-account-badge,
	.uo-account-badge--header,
	#header.small .uo-account-badge--header,
	#header.small .uo-account-badge {
		position: absolute !important;
		top: 50% !important;
		right: 12px !important;
		bottom: auto !important;
		left: auto !important;
		-webkit-transform: translateY(-50%) !important;
		transform: translateY(-50%) !important;
		z-index: 40 !important;
	}
}

@media only screen and (max-width: 699px) {
	#header .content-width {
		padding: 0 4vw;
	}

	#home-city-status .uo-city-status__inner,
	.uo-city-status__inner {
		padding: 0 4vw;
	}
}

/* --------------------------------------------------------------------------
   Footer profissional — Contatos | Explorar (2 listas) | Informações | Logo
   -------------------------------------------------------------------------- */

#footer {
	background: #ffffff;
	color: #3d4a52;
	padding: 3.5rem 12vw 2.75rem;
	overflow: hidden;
	border-top: 1px solid #e2e8f0;
	box-shadow: 0 -1px 0 rgba(8, 65, 77, 0.04);
}

#footer a,
#footer .content-footer p a,
#footer nav ul li a,
#footer .footer-block #info-footer a,
#footer #block-gw2d-gw2d-footer .footer-block #info-footer a,
#footer .content-width ul.menu li a,
#footer #block-gw2d-gw2d-footer .uo-footer a {
	color: #3d4a52 !important;
}

#footer .footer-block #info-footer a:hover,
#footer .content-width ul.menu li a:hover,
#footer #block-gw2d-gw2d-footer .uo-footer a:hover,
#footer nav ul li a:hover {
	color: #00aac8 !important;
	opacity: 1;
}

#footer .footer-block #info-footer .telefone-footer,
#footer .footer-block #info-footer .email,
#footer p,
#footer .content-footer p {
	color: #3d4a52 !important;
}

/* Menus já renderizados no bloco gw2d — evita duplicata na região. */
#footer #block-menu-menu-menu-footer-2,
#footer #block-menu-menu-especialidades-footer,
#footer #block-menu-menu-footer-menu {
	display: none !important;
}

#footer #block-gw2d-gw2d-footer {
	display: block !important;
	width: 100% !important;
	float: none !important;
	vertical-align: top;
}

#footer .footer-block.uo-footer,
#footer #block-gw2d-gw2d-footer .footer-block.uo-footer {
	display: grid !important;
	grid-template-columns: 1.15fr 1fr 1fr 1.15fr auto;
	gap: 2.75rem 2.5rem;
	align-items: start;
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
	float: none !important;
	padding: 0 !important;
}

/* Anula legado: inline-block 45% + ul.menu flex horizontal. */
#footer .uo-footer .box-footer,
#footer #block-gw2d-gw2d-footer .footer-block.uo-footer .box-footer,
#footer #block-gw2d-gw2d-footer .footer-block.uo-footer .box-footer#info-footer {
	float: none !important;
	width: auto !important;
	max-width: none !important;
	display: block !important;
	margin: 0 !important;
	padding: 0 !important;
	vertical-align: top;
	line-height: 1.5;
	text-align: left !important;
}

#footer .uo-footer ul.menu,
#footer #block-gw2d-gw2d-footer .footer-block.uo-footer ul.menu,
#footer #block-gw2d-gw2d-footer .footer-block ul.menu {
	display: block !important;
	flex-direction: column !important;
	flex-wrap: nowrap !important;
	width: auto !important;
	min-width: 0 !important;
	height: auto !important;
	float: none !important;
}

#footer .uo-footer__title,
#footer #block-gw2d-gw2d-footer .footer-block h2.uo-footer__title {
	margin: 0 0 1.35rem;
	padding: 0;
	color: #00aac8;
	font-size: 0.95rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	line-height: 1.2;
	text-transform: uppercase;
	text-align: left !important;
}

#footer .uo-footer__contact-list,
#footer .uo-footer__social,
#footer .uo-footer__links,
#footer #block-gw2d-gw2d-footer .uo-footer ul.uo-footer__links,
#footer #block-gw2d-gw2d-footer .uo-footer ul.uo-footer__contact-list {
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
	float: none !important;
	clear: none !important;
	display: block !important;
	width: auto !important;
	min-width: 0 !important;
	height: auto !important;
	flex-direction: column !important;
	flex-wrap: nowrap !important;
}

#footer .uo-footer__contact-list > li,
#footer .uo-footer__contact,
#footer #block-gw2d-gw2d-footer .footer-block #info-footer ul.uo-footer__contact-list li {
	display: block !important;
	margin: 0 0 0.85rem !important;
	padding: 0 !important;
	color: #3d4a52;
	font-size: 0.95rem;
	line-height: 1.5;
	font-weight: 400;
	width: auto !important;
	min-width: 0 !important;
	float: none !important;
	height: auto !important;
}

#footer #block-gw2d-gw2d-footer .footer-block #info-footer ul.uo-footer__contact-list li a {
	font-size: inherit !important;
	width: auto !important;
	height: auto !important;
	background: none !important;
	display: inline !important;
	text-indent: 0 !important;
}

#footer .uo-footer__contact .telefone-footer {
	margin: 0;
	padding: 0;
	font-size: inherit;
	line-height: inherit;
	color: #3d4a52 !important;
}

#footer .uo-footer__contact .telefone-footer:after {
	display: none;
}

#footer .uo-footer__social {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: wrap !important;
	gap: 0.75rem;
	margin-top: 1.35rem !important;
}

#footer .uo-footer__social li,
#footer #block-gw2d-gw2d-footer .footer-block #info-footer ul.uo-footer__social li {
	display: inline-block !important;
	margin: 0 !important;
	padding: 0 !important;
	float: none !important;
	width: auto !important;
	min-width: 0 !important;
	height: auto !important;
	list-style: none !important;
}

#footer .uo-footer__social li a,
#footer #block-gw2d-gw2d-footer .footer-block #info-footer ul.uo-footer__social li a {
	display: block !important;
	width: 1.75rem !important;
	height: 1.75rem !important;
	font-size: 0 !important;
	line-height: 0 !important;
	text-indent: -9999px;
	overflow: hidden;
	background-repeat: no-repeat;
	background-position: center;
	background-size: 1.4rem;
	opacity: 0.95;
}

#footer .uo-footer__links > li,
#footer #block-gw2d-gw2d-footer .uo-footer ul.uo-footer__links > li {
	display: block !important;
	float: none !important;
	width: auto !important;
	min-width: 0 !important;
	margin: 0 0 0.75rem !important;
	padding: 0 !important;
	height: auto !important;
	list-style: none !important;
	font-weight: 400;
}

#footer .uo-footer__links > li a,
#footer #block-gw2d-gw2d-footer .uo-footer ul.uo-footer__links > li a {
	display: inline-block !important;
	font-size: 0.95rem !important;
	font-weight: 400 !important;
	line-height: 1.45;
	border: 0 !important;
	width: auto !important;
	height: auto !important;
	background: none !important;
	text-indent: 0 !important;
}

#footer .uo-footer__brand {
	justify-self: end;
	align-self: start;
	padding-top: 0.15rem;
}

#footer #block-gw2d-gw2d-footer .footer-block a.logo-footer,
#footer .uo-footer__brand a.logo-footer {
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: auto !important;
	max-width: 180px;
	margin: 0 !important;
	padding: 0 !important;
	background: transparent !important;
	border-radius: 0;
	box-shadow: none;
	text-align: center;
}

#footer .uo-footer__brand a.logo-footer img,
#footer #block-gw2d-gw2d-footer .footer-block a.logo-footer img {
	display: block;
	max-width: 160px;
	max-height: 90px;
	width: auto !important;
	height: auto;
	margin: 0 auto;
	float: none !important;
}

#copyright-region {
	background: #00214c;
	padding-left: 12vw;
	padding-right: 12vw;
}

#copyright-region a,
#copyright-region p,
#copyright-region li,
#copyright-region #block-gw2d-gw2d-copyright .copyright-block p {
	color: #ffffff !important;
}

#copyright-region a:hover {
	color: #1ad9ff !important;
}

/* CTA negócio acima do footer — bordas brancas como no layout. */
#home-chamada-cadastre-se .uo-business-cta__extra a {
	border-color: #ffffff !important;
	color: #ffffff !important;
}

#page #home-chamada-cadastre-se .texto p span:before {
	background: #00d5ff;
}

#page #home-chamada-cadastre-se .link-pagina a {
	background: #00c853;
	border-color: #00c853;
}

@media only screen and (max-width: 1023px) {
	#footer {
		padding: 2.75rem 5vw 2rem;
	}

	#footer .footer-block.uo-footer,
	#footer #block-gw2d-gw2d-footer .footer-block.uo-footer {
		grid-template-columns: 1fr 1fr;
		gap: 2.5rem 2rem;
	}

	#footer .uo-footer__brand {
		grid-column: 1 / -1;
		justify-self: start;
	}

	#copyright-region {
		padding-left: 5vw;
		padding-right: 5vw;
	}
}

@media only screen and (max-width: 699px) {
	#footer {
		padding: 2.25rem 5vw 1.75rem;
		text-align: center;
	}

	#footer .footer-block.uo-footer,
	#footer #block-gw2d-gw2d-footer .footer-block.uo-footer {
		grid-template-columns: 1fr;
		gap: 2rem;
		justify-items: center;
	}

	#footer .uo-footer .box-footer,
	#footer #block-gw2d-gw2d-footer .footer-block.uo-footer .box-footer,
	#footer #block-gw2d-gw2d-footer .footer-block.uo-footer .box-footer#info-footer {
		width: 100% !important;
		text-align: center !important;
	}

	#footer .uo-footer__title,
	#footer #block-gw2d-gw2d-footer .footer-block h2.uo-footer__title {
		text-align: center !important;
	}

	#footer .uo-footer__contact-list,
	#footer .uo-footer__links,
	#footer #block-gw2d-gw2d-footer .uo-footer ul.uo-footer__links,
	#footer #block-gw2d-gw2d-footer .uo-footer ul.uo-footer__contact-list {
		text-align: center !important;
	}

	#footer .uo-footer__contact-list > li,
	#footer .uo-footer__contact,
	#footer .uo-footer__links > li,
	#footer #block-gw2d-gw2d-footer .uo-footer ul.uo-footer__links > li,
	#footer #block-gw2d-gw2d-footer .footer-block #info-footer ul.uo-footer__contact-list li {
		text-align: center !important;
	}

	#footer .uo-footer__social {
		justify-content: center !important;
	}

	#footer .uo-footer__brand {
		grid-column: auto;
		justify-self: center;
		width: 100%;
		text-align: center !important;
	}

	#footer #block-gw2d-gw2d-footer .footer-block a.logo-footer,
	#footer .uo-footer__brand a.logo-footer {
		max-width: 160px;
		margin-left: auto !important;
		margin-right: auto !important;
	}

	#copyright-region {
		padding-left: 5vw;
		padding-right: 5vw;
	}
}

/* --------------------------------------------------------------------------
   Interna da praia — topo, mapa e views relacionadas
   -------------------------------------------------------------------------- */

/* Mapa antigo do rodapé + panes duplicados das listas (agora no tpl). */
body.node-type-praia #block-block-11,
body.node-type-praia .pane-views-hospedagem-block-5,
body.node-type-praia .pane-views-servi-os-block-4,
body.node-type-praia .region .block-views-hospedagem-block-5,
body.node-type-praia .region .block-views-servi-os-block-4 {
	display: none !important;
}

/* Evita IDs duplicados se o layout ainda renderizar o bloco. */
body.node-type-praia #content > #block-views-hospedagem-block-5 ~ #block-views-hospedagem-block-5,
body.node-type-praia #content > #block-views-servi-os-block-4 ~ #block-views-servi-os-block-4 {
	display: none !important;
}

@media only screen and (min-width: 700px) {
	/* Paridade com serviço: grid 2 colunas; sem galeria absoluta 25vw. */
	body.node-type-praia #page #content .node-praia {
		display: grid !important;
		grid-template-columns: minmax(0, 2fr) minmax(280px, 0.82fr) !important;
		gap: 28px 34px !important;
		position: static !important;
		max-width: none !important;
		width: min(1180px, 92%) !important;
		margin: 0 auto !important;
		padding: 30px 0 54px !important;
		min-height: 0 !important;
		box-sizing: border-box;
	}

	body.node-type-praia #page #content .node-praia .uo-detail-summary {
		grid-column: 1 / -1 !important;
		margin: 0 !important;
		padding: 0 !important;
		overflow: hidden;
		border-radius: 14px;
		background: #fff;
		box-shadow: 0 5px 20px rgba(8, 25, 35, 0.06);
	}

	body.node-type-praia #page #content .node-praia .uo-detail-summary .uo-praia-capa,
	body.node-type-praia #page #content .node-praia .uo-detail-summary .hospedagem-capa {
		position: relative !important;
		width: 100% !important;
		margin: 0 !important;
		float: none !important;
		overflow: hidden !important;
		aspect-ratio: 16 / 9;
		max-height: 450px;
		background: #e8f1f3;
	}

	body.node-type-praia #page #content .node-praia .uo-detail-summary .uo-praia-capa > a,
	body.node-type-praia #page #content .node-praia .uo-detail-summary .hospedagem-capa > a {
		display: block !important;
		position: absolute !important;
		inset: 0 !important;
		width: 100% !important;
		height: 100% !important;
	}

	body.node-type-praia #page #content .node-praia .uo-detail-summary .uo-praia-capa img,
	body.node-type-praia #page #content .node-praia .uo-detail-summary .hospedagem-capa img {
		display: block !important;
		position: absolute !important;
		inset: 0 !important;
		width: 100% !important;
		height: 100% !important;
		max-height: none !important;
		object-fit: cover !important;
		object-position: center center !important;
	}

	body.node-type-praia #page #content .node-praia .uo-detail-summary .uo-praia-capa .uo-rating-box,
	body.node-type-praia #page #content .node-praia .uo-detail-summary .uo-praia-capa .codigo-box {
		position: absolute !important;
		z-index: 2;
		top: 12px !important;
		right: 12px !important;
		bottom: auto !important;
		left: auto !important;
		width: auto !important;
	}

	body.node-type-praia #page #content .node-praia .uo-detail-summary__body {
		padding: 26px 30px !important;
	}

	body.node-type-praia #page #content .node-praia .content-node-left {
		grid-column: 1 !important;
		float: none !important;
		width: 100% !important;
		margin: 0 !important;
		padding: 0 !important;
	}

	body.node-type-praia #page #content .node-praia #informacoes-praia-acao {
		grid-column: 2 !important;
		grid-row: 2 !important;
		align-self: start !important;
		position: sticky !important;
		top: 94px !important;
		margin: 0 !important;
		padding: 22px !important;
		border: 1px solid rgba(8, 65, 77, 0.1);
		border-radius: 14px;
		background: #fff;
		box-shadow: 0 5px 20px rgba(8, 25, 35, 0.06);
	}

	body.node-type-praia #page #content .node-praia .praia-img,
	body.node-type-praia #page #content .node-praia .uo-praia-galeria,
	body.node-type-praia #page #content .node-praia .uo-praia-thumbs {
		position: static !important;
		left: auto !important;
		top: auto !important;
		display: grid !important;
		grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)) !important;
		gap: 10px !important;
		width: 100% !important;
		max-width: none !important;
		margin: 0 0 18px !important;
		overflow: visible !important;
		float: none !important;
	}

	body.node-type-praia #page #content .node-praia .uo-praia-thumbs a.modal-link,
	body.node-type-praia #page #content .node-praia .praia-img a.modal-link {
		display: block !important;
		float: none !important;
		width: 100% !important;
		aspect-ratio: 4 / 3;
		overflow: hidden;
		border-radius: 10px;
		background: #e8f1f3;
	}

	body.node-type-praia #page #content .node-praia .praia-img img,
	body.node-type-praia #page #content .node-praia .praia-img img.capa,
	body.node-type-praia #page #content .node-praia .praia-img img.thumb {
		display: block !important;
		float: none !important;
		width: 100% !important;
		max-width: 100% !important;
		height: 100% !important;
		max-height: none !important;
		object-fit: cover !important;
		vertical-align: top;
	}

	body.node-type-praia #page #content .node-praia h1.nome {
		margin: 0 0 10px !important;
		color: #082f38 !important;
		font-family: inherit !important;
		font-size: clamp(1.75rem, 2.6vw, 2.35rem) !important;
		font-weight: 800 !important;
		line-height: 1.15 !important;
	}

	body.node-type-praia .uo-detail-summary__facts {
		display: flex;
		flex-wrap: wrap;
		gap: 8px;
		margin: 0 0 10px;
	}

	body.node-type-praia #informacoes-praia-acao .uo-cta-bar.uo-praia-cta {
		position: static !important;
		display: flex !important;
		flex-direction: column !important;
		flex-wrap: nowrap !important;
		gap: 8px !important;
		margin: 0 !important;
		padding: 0 !important;
		border: 0 !important;
		background: transparent !important;
		box-shadow: none !important;
	}

	body.node-type-praia #informacoes-praia-acao .uo-cta-bar.uo-praia-cta > a,
	body.node-type-praia #informacoes-praia-acao .uo-cta-bar.uo-praia-cta .uo-itinerary-add {
		flex: none !important;
		width: 100% !important;
		display: inline-flex !important;
		align-items: center;
		justify-content: center;
		min-height: 46px;
		margin: 0 !important;
		padding: 12px 16px !important;
		border-radius: 10px !important;
		border: 0;
		box-sizing: border-box;
		font-size: 0.95rem !important;
		font-weight: 700 !important;
		line-height: 1.2 !important;
		text-align: center;
		text-decoration: none !important;
		color: #fff !important;
		background: #00aac8 !important;
	}

	body.node-type-praia #informacoes-praia-acao .uo-cta-bar.uo-praia-cta .uo-itinerary-add {
		border: 1px solid rgba(0, 170, 200, 0.55) !important;
		background: #fff !important;
		color: #00aac8 !important;
		transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.15s ease;
	}

	body.node-type-praia #informacoes-praia-acao .uo-cta-bar.uo-praia-cta .uo-itinerary-add:hover,
	body.node-type-praia #informacoes-praia-acao .uo-cta-bar.uo-praia-cta .uo-itinerary-add:focus-visible {
		background: #00aac8 !important;
		border-color: #00aac8 !important;
		color: #fff !important;
		transform: translateY(-1px);
		outline: none;
		cursor: pointer;
	}

	body.node-type-praia #informacoes-praia-acao .uo-cta-bar.uo-praia-cta > a:hover,
	body.node-type-praia #informacoes-praia-acao .uo-cta-bar.uo-praia-cta > a:focus-visible {
		background: #0096b0 !important;
		transform: translateY(-1px);
		outline: none;
	}

	body.node-type-praia #informacoes-praia-acao .uo-cta-bar.uo-praia-cta .uo-praia-map-cta:hover,
	body.node-type-praia #informacoes-praia-acao .uo-cta-bar.uo-praia-cta .uo-praia-map-cta:focus-visible {
		background: #06333d !important;
	}

	body.node-type-praia .uo-praia-proximos-hint,
	body.node-type-praia #block-views-hospedagem-block-3,
	body.node-type-praia #block-views-servi-os-block-3,
	body.node-type-praia .comments-wrapper {
		grid-column: 1 / -1 !important;
	}

	body.node-type-praia .uo-praia-main {
		display: flex;
		flex-direction: column;
		gap: 14px;
	}

	body.node-type-praia #page #content .node-praia .descricao,
	body.node-type-praia #page #content .node-praia .como-chegar {
		margin: 0 0 4px !important;
		font-size: 1rem !important;
		line-height: 1.65;
		color: #334155;
	}

	body.node-type-praia #page #content .node-praia .descricao.uo-detail-description,
	body.node-type-praia #page #content .node-praia .uo-praia-descricao {
		max-width: none !important;
		width: 100% !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
		padding-left: 0 !important;
		padding-right: 0 !important;
		box-sizing: border-box;
		text-align: justify !important;
	}

	body.node-type-praia #page #content .node-praia .uo-praia-descricao h2,
	body.node-type-praia #page #content .node-praia .descricao.uo-detail-description h2 {
		text-align: left !important;
	}

	body.node-type-praia #page #content .node-praia .uo-praia-descricao p,
	body.node-type-praia #page #content .node-praia .descricao.uo-detail-description p {
		width: 100% !important;
		max-width: none !important;
		text-align: justify !important;
	}

	/* Accordion Perfil / Como chegar: mesma largura da coluna. */
	body.node-type-praia .uo-praia-perfil.uo-detail-accordion,
	body.node-type-praia .uo-praia-acesso.uo-detail-accordion,
	body.node-type-praia .como-chegar.uo-detail-accordion,
	body.node-type-praia .informacoes-praia-box.uo-detail-accordion {
		width: 100% !important;
		max-width: none !important;
		box-sizing: border-box;
	}

	body.node-type-praia .uo-praia-perfil .uo-detail-accordion__toggle,
	body.node-type-praia .uo-praia-acesso .uo-detail-accordion__toggle,
	body.node-type-praia .como-chegar .uo-detail-accordion__toggle,
	body.node-type-praia .informacoes-praia-box .uo-detail-accordion__toggle {
		width: 100% !important;
		max-width: none !important;
		box-sizing: border-box;
	}

	body.node-type-praia #page #content .node-praia .descricao h2,
	body.node-type-praia .uo-praia-mapa h2 {
		margin: 0 0 10px;
		color: #08414d;
		font-size: 1.35rem;
		font-weight: 800;
		text-transform: none;
		letter-spacing: normal;
	}

	/* Acordeões sem cortar título + grade do perfil legível. */
	body.node-type-praia .uo-detail-accordion,
	body.node-type-praia .informacoes-praia-box,
	body.node-type-praia .como-chegar.uo-detail-accordion {
		overflow: visible !important;
		margin: 0 0 12px !important;
		border: 1px solid rgba(8, 65, 77, 0.12);
		border-radius: 14px;
		background: #fff;
		box-shadow: 0 2px 10px rgba(8, 25, 35, 0.04);
	}

	body.node-type-praia .uo-detail-accordion__toggle {
		position: relative;
		width: 100%;
		min-height: 54px;
		padding: 16px 52px 16px 18px !important;
		border: 0;
		background: transparent;
		color: #08414d !important;
		font-size: 1.05rem !important;
		font-weight: 800 !important;
		line-height: 1.35 !important;
		text-align: left;
		cursor: pointer;
	}

	body.node-type-praia .uo-detail-accordion__content {
		padding: 0 16px 16px;
	}

	body.node-type-praia #page #content .node-praia .uo-detail-accordion .listagem-info,
	body.node-type-praia #page #content .node-praia .uo-praia-perfil .listagem-info,
	body.node-type-praia #page #content .node-praia .informacoes-praia-box .listagem-info {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 10px !important;
		margin: 0 !important;
		padding: 2px 0 0 !important;
		list-style: none;
	}

	body.node-type-praia #page #content .node-praia .uo-detail-accordion .listagem-info li,
	body.node-type-praia #page #content .node-praia .uo-praia-perfil .listagem-info li,
	body.node-type-praia #page #content .node-praia .informacoes-praia-box .listagem-info li {
		float: none !important;
		display: flex !important;
		align-items: center;
		gap: 12px;
		width: auto !important;
		height: auto !important;
		min-height: 0 !important;
		margin: 0 !important;
		padding: 12px 14px !important;
		border: 1px solid rgba(8, 65, 77, 0.1) !important;
		border-radius: 12px !important;
		background: #f4f8f9 !important;
		box-shadow: none !important;
		box-sizing: border-box;
		transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
	}

	body.node-type-praia #page #content .node-praia .uo-detail-accordion .listagem-info li:hover,
	body.node-type-praia #page #content .node-praia .uo-praia-perfil .listagem-info li:hover,
	body.node-type-praia #page #content .node-praia .informacoes-praia-box .listagem-info li:hover {
		background: #eef6f8 !important;
		border-color: rgba(0, 170, 200, 0.35) !important;
		box-shadow: 0 2px 8px rgba(8, 25, 35, 0.05);
	}

	body.node-type-praia #page #content .node-praia .uo-detail-accordion .listagem-info li img,
	body.node-type-praia #page #content .node-praia .uo-praia-perfil .listagem-info li img,
	body.node-type-praia #page #content .node-praia .informacoes-praia-box .listagem-info li img {
		float: none !important;
		flex-shrink: 0;
		width: 36px !important;
		height: 36px !important;
		max-height: 36px !important;
		margin: 0 !important;
		padding: 6px;
		object-fit: contain;
		border-radius: 10px;
		background: #fff;
		box-shadow: 0 1px 3px rgba(8, 25, 35, 0.06);
		box-sizing: border-box;
	}

	body.node-type-praia #page #content .node-praia .uo-detail-accordion .listagem-info li label,
	body.node-type-praia #page #content .node-praia .uo-praia-perfil .listagem-info li label,
	body.node-type-praia #page #content .node-praia .informacoes-praia-box .listagem-info li label {
		display: block !important;
		margin: 0;
		color: #1e3a42 !important;
		font-size: 0.92rem !important;
		font-weight: 600 !important;
		line-height: 1.35 !important;
	}

	/* Mapa com altura controlada (evita 45vw / tela cheia). */
	body.node-type-praia #mapa-pagina-wrapper,
	body.node-type-praia .uo-praia-mapa {
		margin: 8px 0 8px !important;
		padding: 18px !important;
		border: 1px solid rgba(8, 65, 77, 0.1);
		border-radius: 14px;
		background: #fff;
		box-shadow: 0 2px 10px rgba(8, 25, 35, 0.04);
		box-sizing: border-box;
	}

	body.node-type-praia #mapa-pagina,
	body.node-type-praia #mapa-pagina-wrapper #mapa-pagina {
		width: 100% !important;
		height: 380px !important;
		min-height: 320px !important;
		max-height: 420px !important;
		border-radius: 12px;
		overflow: hidden;
	}

	body.node-type-praia .uo-praia-proximos-hint {
		margin: 28px 0 16px;
		padding: 18px 22px;
		border-radius: 14px;
		background: #eef7f9;
	}

	body.node-type-praia .uo-praia-proximos-hint h2 {
		margin: 0 0 6px;
		color: #08414d;
		font-size: 1.35rem;
		font-weight: 800;
		text-transform: none;
		letter-spacing: normal;
	}

	body.node-type-praia .uo-praia-proximos-hint p {
		margin: 0;
		color: #4d646b;
		font-size: 0.95rem;
		line-height: 1.45;
	}

	body.node-type-praia .uo-praia-section-title,
	body.node-type-praia #block-views-hospedagem-block-3 .view-header h2,
	body.node-type-praia #block-views-servi-os-block-3 .view-header h2,
	body.node-type-praia .view-display-id-block_3 .view-header h2 {
		margin: 0 0 0.35rem;
		color: #08414d;
		font-size: 1.25rem;
		font-weight: 700;
		text-transform: none;
		letter-spacing: normal;
	}

	body.node-type-praia .uo-praia-section-lead {
		margin: 0 0 1rem;
		color: #5a6d73;
		font-size: 0.9rem;
		line-height: 1.4;
	}

	body.node-type-praia .uo-sponsor-strip__title {
		text-transform: none;
		letter-spacing: normal;
		font-size: 1rem;
		color: #00aac8;
	}

	/* Views vinculadas: um único card no bloco externo (não no .view interno). */
	body.node-type-praia #block-views-hospedagem-block-3,
	body.node-type-praia #block-views-servi-os-block-3,
	body.node-type-praia #block-views-hospedagem-block-5,
	body.node-type-praia #block-views-servi-os-block-4,
	body.node-type-praia .pane-views-hospedagem-block-5,
	body.node-type-praia .pane-views-servi-os-block-4 {
		margin: 0 0 24px;
		padding: 22px 24px;
		border-radius: 14px;
		background: #fff;
		box-shadow: 0 5px 20px rgba(8, 25, 35, 0.06);
		box-sizing: border-box;
	}

	body.node-type-praia #block-views-hospedagem-block-3 .view-hospedagem,
	body.node-type-praia #block-views-servi-os-block-3 .view-servi-os,
	body.node-type-praia #block-views-hospedagem-block-5 .view-hospedagem,
	body.node-type-praia #block-views-servi-os-block-4 .view-servi-os,
	body.node-type-praia .view-hospedagem.view-display-id-block_3,
	body.node-type-praia .view-servi-os.view-display-id-block_3,
	body.node-type-praia .view-hospedagem.view-display-id-block_5,
	body.node-type-praia .view-servi-os.view-display-id-block_4 {
		margin: 0 !important;
		padding: 0 !important;
		border: 0 !important;
		border-radius: 0 !important;
		background: transparent !important;
		box-shadow: none !important;
	}

	body.node-type-praia #page #content .view-hospedagem .view-header h2,
	body.node-type-praia #page #content .view-servi-os .view-header h2,
	body.node-type-praia #page #content .pane-views-hospedagem-block-5 .pane-title,
	body.node-type-praia #page #content .pane-views-servi-os-block-4 .pane-title,
	body.node-type-praia #page #content #block-views-hospedagem-block-5 h2.block-title,
	body.node-type-praia #page #content #block-views-servi-os-block-4 h2.block-title {
		margin: 0 0 16px !important;
		color: #08414d !important;
		font-size: 1.35rem !important;
		font-weight: 800 !important;
		text-align: left !important;
		text-transform: none !important;
		letter-spacing: normal !important;
	}

	body.node-type-praia #page #content .view-hospedagem .view-header h2:after,
	body.node-type-praia #page #content .view-servi-os .view-header h2:after {
		display: none !important;
	}

	body.node-type-praia #page #content .view-hospedagem .view-content ul,
	body.node-type-praia #page #content .view-servi-os .view-content ul,
	body.node-type-praia #page #content .uo-praia-lista-rodape ul.uo-praia-destaque-grid,
	body.node-type-praia #page #content .uo-praia-lista-rodape .view-content > ul {
		display: grid !important;
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
		gap: 1rem !important;
		margin: 0 !important;
		padding: 0 !important;
		list-style: none !important;
		align-items: stretch !important;
		width: 100% !important;
		transform: none !important;
	}

	/* Mata restos do FlexSlider nos destaques da praia. */
	body.node-type-praia #page #content .uo-praia-lista-rodape .flexslider,
	body.node-type-praia #page #content .uo-praia-lista-rodape .flex-viewport {
		display: block !important;
		width: 100% !important;
		height: auto !important;
		overflow: visible !important;
		margin: 0 !important;
		transform: none !important;
	}

	body.node-type-praia #page #content .uo-praia-lista-rodape .flex-direction-nav,
	body.node-type-praia #page #content .uo-praia-lista-rodape .flex-control-nav {
		display: none !important;
	}

	body.node-type-praia #page #content .view-hospedagem .view-content ul li,
	body.node-type-praia #page #content .view-servi-os .view-content ul li,
	body.node-type-praia #page #content .uo-praia-lista-rodape ul.uo-praia-destaque-grid > li,
	body.node-type-praia #page #content .uo-praia-lista-rodape .view-content > ul > li {
		display: flex !important;
		flex-direction: column !important;
		float: none !important;
		width: 100% !important;
		max-width: none !important;
		height: auto !important;
		min-height: 0 !important;
		margin: 0 !important;
		padding: 0 !important;
		overflow: visible !important;
		background: transparent !important;
		box-shadow: none !important;
		position: relative !important;
		left: auto !important;
		top: auto !important;
	}

	body.node-type-praia .uo-listing-card {
		display: flex !important;
		flex-direction: column !important;
		flex: 1 1 auto !important;
		height: 100% !important;
		min-height: 0 !important;
		padding: 0 0 14px !important;
		box-sizing: border-box !important;
		border: 1px solid rgba(8, 65, 77, 0.1);
		border-radius: 14px;
		background: #fff;
		overflow: hidden;
	}

	body.node-type-praia .uo-listing-card__link {
		display: flex !important;
		flex-direction: column !important;
		flex: 1 1 auto !important;
		min-height: 0 !important;
		text-decoration: none !important;
		color: inherit !important;
	}

	body.node-type-praia .uo-listing-card__link--media {
		flex: 0 0 auto !important;
	}

	body.node-type-praia .uo-listing-card__topline {
		padding: 10px 12px 0;
	}

	body.node-type-praia .uo-listing-card__media {
		display: block !important;
		width: 100% !important;
		aspect-ratio: 4 / 3;
		overflow: hidden !important;
		border-radius: 0;
		background: #e8f1f3;
		flex: 0 0 auto;
	}

	body.node-type-praia .uo-listing-card__media img {
		width: 100% !important;
		height: 100% !important;
		object-fit: cover !important;
	}

	body.node-type-praia .uo-listing-card__body {
		display: flex !important;
		flex-direction: column !important;
		flex: 1 1 auto !important;
		gap: 6px;
		padding: 12px 12px 0 !important;
		min-height: 0 !important;
	}

	body.node-type-praia .uo-listing-card__title {
		display: -webkit-box !important;
		-webkit-box-orient: vertical !important;
		-webkit-line-clamp: 2 !important;
		line-clamp: 2 !important;
		overflow: hidden !important;
		min-height: 2.5em !important;
		max-height: 2.5em !important;
		line-height: 1.25 !important;
		margin: 0 !important;
	}

	body.node-type-praia .uo-listing-card__location {
		min-height: 1.35em;
		overflow: hidden;
		white-space: nowrap;
		text-overflow: ellipsis;
	}

	body.node-type-praia .uo-listing-card__price {
		min-height: 2.8em !important;
	}

	body.node-type-praia .uo-listing-card__action {
		display: inline-flex !important;
		align-items: center;
		justify-content: center;
		width: calc(100% - 24px) !important;
		margin: auto 12px 0 !important;
		box-sizing: border-box !important;
	}

	body.node-type-praia .uo-listing-card .uo-itinerary-add {
		margin: 0 0 0 auto !important;
		width: auto !important;
		min-height: 26px !important;
		box-sizing: border-box !important;
	}

	/* Mapa com pins + gm-style: mesma largura útil de .node-praia. */
	body.node-type-praia #uo-praia-mapa-pins,
	body.node-type-praia #block-block-11 {
		display: block !important;
		width: min(1180px, 92%) !important;
		max-width: min(1180px, 92%) !important;
		margin: 0 auto 28px !important;
		padding: 0 !important;
		border: 0 !important;
		border-radius: 14px !important;
		background: transparent !important;
		box-shadow: none !important;
		clear: both;
		overflow: hidden !important;
		box-sizing: border-box !important;
	}

	body.node-type-praia #mapa-praia {
		display: block !important;
		width: 100% !important;
		max-width: 100% !important;
		height: 35vw !important;
		min-height: 360px !important;
		max-height: 520px !important;
		margin: 0 !important;
		border-radius: 14px !important;
		overflow: hidden !important;
		position: relative !important;
		z-index: 1;
		box-sizing: border-box !important;
	}

	body.node-type-praia #mapa-praia .gm-style,
	body.node-type-praia #mapa-praia > div {
		width: 100% !important;
		max-width: 100% !important;
	}

	/* Listas após o mapa: largura útil do site (sem offset da galeria) + sem caixa de fundo. */
	body.node-type-praia #page #content .uo-praia-lista-rodape,
	body.node-type-praia #page #content .uo-praia-lista-rodape.block,
	body.node-type-praia #page #content #block-views-hospedagem-block-5.uo-praia-lista-rodape,
	body.node-type-praia #page #content #block-views-servi-os-block-4.uo-praia-lista-rodape {
		margin: 0 10vw 36px !important;
		padding: 0 !important;
		border: 0 !important;
		border-radius: 0 !important;
		background: transparent !important;
		box-shadow: none !important;
		max-width: none !important;
		width: auto !important;
		box-sizing: border-box !important;
	}

	body.node-type-praia #page #content .uo-praia-lista-rodape .view-header h2,
	body.node-type-praia #page #content .uo-praia-lista-rodape h2.block-title {
		margin: 0 0 18px !important;
		padding: 0 !important;
	}

	/* Cards um pouco mais largos: 3 colunas no desktop. */
	body.node-type-praia #page #content .uo-praia-lista-rodape .view-content ul,
	body.node-type-praia #page #content .uo-praia-lista-rodape ul.uo-praia-destaque-grid,
	body.node-type-praia #page #content .uo-praia-lista-rodape .view-content > ul {
		grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
		gap: 1.25rem !important;
	}

	/* Força o mesmo card das listas de cima (evita float/altura do layout antigo). */
	body.node-type-praia #page #content .uo-praia-lista-rodape .view-content ul,
	body.node-type-praia #page #content .uo-praia-lista-rodape .view-content ul li,
	body.node-type-praia #page #content .uo-praia-lista-rodape .uo-listing-card {
		float: none !important;
	}

	body.node-type-praia #page #content .uo-praia-lista-rodape .view-content ul li {
		width: 100% !important;
		height: auto !important;
		min-height: 0 !important;
		background: transparent !important;
		box-shadow: none !important;
		padding: 0 !important;
	}
}

/* iPad / tablet (700–1023): interna da praia no layout moderno (sem galeria
   lateral em vw / padding calc(28vw) do bloco antigo). */
@media only screen and (min-width: 700px) and (max-width: 1023px) {
	body.node-type-praia #page #content,
	body.node-type-praia #page #content .content-width,
	body.node-type-praia #page .region-content {
		width: 100% !important;
		max-width: none !important;
		padding-left: 0 !important;
		padding-right: 0 !important;
		box-sizing: border-box !important;
	}

	body.node-type-praia #page #content .node-praia {
		display: grid !important;
		grid-template-columns: minmax(0, 1fr) !important;
		gap: 1.25rem !important;
		width: 100% !important;
		max-width: none !important;
		margin: 0 auto !important;
		padding: 1.25rem 3% 2.5rem !important;
		position: static !important;
		min-height: 0 !important;
		box-sizing: border-box !important;
	}

	body.node-type-praia #page #content .node-praia .uo-detail-summary,
	body.node-type-praia #page #content .node-praia .content-node-left,
	body.node-type-praia #page #content .node-praia #informacoes-praia-acao,
	body.node-type-praia .uo-praia-proximos-hint,
	body.node-type-praia #block-views-hospedagem-block-3,
	body.node-type-praia #block-views-servi-os-block-3,
	body.node-type-praia .comments-wrapper {
		grid-column: 1 / -1 !important;
		float: none !important;
		width: 100% !important;
		max-width: none !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
		box-sizing: border-box !important;
	}

	body.node-type-praia #page #content .node-praia .uo-detail-summary {
		margin: 0 !important;
		padding: 0 !important;
		overflow: hidden;
		border-radius: 14px;
		background: #fff;
		box-shadow: 0 5px 20px rgba(8, 25, 35, 0.06);
	}

	body.node-type-praia #page #content .node-praia .uo-detail-summary .uo-praia-capa,
	body.node-type-praia #page #content .node-praia .uo-detail-summary .hospedagem-capa {
		position: relative !important;
		width: 100% !important;
		margin: 0 !important;
		float: none !important;
		aspect-ratio: 16 / 9;
		max-height: 360px;
		overflow: hidden !important;
		background: #e8f1f3;
	}

	body.node-type-praia #page #content .node-praia .uo-detail-summary .uo-praia-capa img,
	body.node-type-praia #page #content .node-praia .uo-detail-summary .hospedagem-capa img {
		position: absolute !important;
		inset: 0 !important;
		width: 100% !important;
		height: 100% !important;
		max-height: none !important;
		object-fit: cover !important;
	}

	body.node-type-praia #page #content .node-praia .uo-detail-summary__body {
		padding: 20px 22px !important;
	}

	body.node-type-praia #page #content .node-praia h1.nome {
		margin: 0 0 8px !important;
		padding: 0 !important;
		font-size: 1.85rem !important;
		line-height: 1.2 !important;
		font-weight: 800 !important;
		color: #082f38 !important;
	}

	body.node-type-praia .uo-detail-summary .sub-title {
		font-size: 1rem !important;
		line-height: 1.4 !important;
		margin: 0 0 10px !important;
		padding: 0 !important;
	}

	/* Galeria: grade full-width (anula float 40% / 28vw do tablet.portrait). */
	body.node-type-praia #page #content .node-praia .praia-img,
	body.node-type-praia #page #content .node-praia .uo-praia-galeria,
	body.node-type-praia #page #content .node-praia .uo-praia-thumbs {
		position: static !important;
		left: auto !important;
		top: auto !important;
		float: none !important;
		display: grid !important;
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
		gap: 10px !important;
		width: 100% !important;
		max-width: none !important;
		margin: 0 0 16px !important;
		overflow: visible !important;
	}

	body.node-type-praia #page #content .node-praia .uo-praia-thumbs a.modal-link,
	body.node-type-praia #page #content .node-praia .praia-img a.modal-link {
		display: block !important;
		float: none !important;
		width: 100% !important;
		aspect-ratio: 4 / 3;
		overflow: hidden;
		border-radius: 10px;
		background: #e8f1f3;
	}

	body.node-type-praia #page #content .node-praia .praia-img img,
	body.node-type-praia #page #content .node-praia .praia-img img.thumb,
	body.node-type-praia #page #content .node-praia .uo-praia-thumbs img {
		display: block !important;
		float: none !important;
		width: 100% !important;
		height: 100% !important;
		max-height: none !important;
		object-fit: cover !important;
	}

	body.node-type-praia #page #content .node-praia .descricao,
	body.node-type-praia #page #content .node-praia .uo-praia-descricao,
	body.node-type-praia #page #content .node-praia .como-chegar {
		width: 100% !important;
		max-width: none !important;
		margin: 0 0 12px !important;
		padding: 0 !important;
		font-size: 1rem !important;
		line-height: 1.65 !important;
		text-align: justify !important;
		float: none !important;
	}

	body.node-type-praia #page #content .node-praia .descricao h2,
	body.node-type-praia #page #content .node-praia .uo-praia-descricao h2,
	body.node-type-praia #page #content .node-praia h3,
	body.node-type-praia .uo-praia-mapa h2 {
		font-size: 1.25rem !important;
		margin: 0 0 10px !important;
		padding: 0 !important;
		text-align: left !important;
	}

	body.node-type-praia #page #content .node-praia .informacoes-praia-box {
		padding: 0 !important;
		margin: 0 0 12px !important;
		clear: none !important;
	}

	body.node-type-praia #page #content .node-praia .informacoes-praia-box .listagem-info,
	body.node-type-praia #page #content .node-praia .uo-praia-perfil .listagem-info {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 10px !important;
		margin: 0 !important;
		padding: 0 !important;
		list-style: none !important;
	}

	body.node-type-praia #page #content .node-praia .informacoes-praia-box .listagem-info li,
	body.node-type-praia #page #content .node-praia .uo-praia-perfil .listagem-info li {
		float: none !important;
		display: flex !important;
		align-items: center;
		gap: 12px;
		width: auto !important;
		height: auto !important;
		min-height: 0 !important;
		margin: 0 !important;
		padding: 12px 14px !important;
		border: 1px solid rgba(8, 65, 77, 0.1) !important;
		border-radius: 12px !important;
		background: #f4f8f9 !important;
		box-sizing: border-box !important;
	}

	body.node-type-praia #page #content .node-praia .informacoes-praia-box .listagem-info li img,
	body.node-type-praia #page #content .node-praia .uo-praia-perfil .listagem-info li img {
		float: none !important;
		width: 34px !important;
		height: 34px !important;
		max-height: 34px !important;
		margin: 0 !important;
	}

	body.node-type-praia #page #content .node-praia .informacoes-praia-box .listagem-info li label,
	body.node-type-praia #page #content .node-praia .uo-praia-perfil .listagem-info li label {
		font-size: 0.92rem !important;
		line-height: 1.35 !important;
		margin: 0 !important;
	}

	/* CTAs em faixa horizontal abaixo do conteúdo (sem sticky estreito). */
	body.node-type-praia #page #content .node-praia #informacoes-praia-acao {
		position: static !important;
		top: auto !important;
		margin: 0 !important;
		padding: 18px 20px !important;
		border: 1px solid rgba(8, 65, 77, 0.1);
		border-radius: 14px;
		background: #fff;
		box-shadow: 0 5px 20px rgba(8, 25, 35, 0.06);
	}

	body.node-type-praia #informacoes-praia-acao > h2,
	body.node-type-praia #informacoes-praia-acao .uo-praia-acao__facts,
	body.node-type-praia #informacoes-praia-acao .uo-praia-acao__hint {
		display: block !important;
	}

	body.node-type-praia #informacoes-praia-acao > h2 {
		margin: 0 0 10px !important;
		font-size: 1.15rem !important;
		font-weight: 800 !important;
		color: #08414d !important;
	}

	body.node-type-praia #informacoes-praia-acao .uo-praia-acao__hint {
		margin: 0 0 14px !important;
		font-size: 0.92rem !important;
		color: #4d646b !important;
	}

	body.node-type-praia #informacoes-praia-acao .uo-cta-bar.uo-praia-cta {
		position: static !important;
		display: flex !important;
		flex-direction: row !important;
		flex-wrap: wrap !important;
		gap: 10px !important;
		margin: 0 !important;
		padding: 0 !important;
		background: transparent !important;
		box-shadow: none !important;
		border: 0 !important;
	}

	body.node-type-praia #informacoes-praia-acao .uo-cta-bar.uo-praia-cta > a,
	body.node-type-praia #informacoes-praia-acao .uo-cta-bar.uo-praia-cta .uo-itinerary-add {
		flex: 1 1 calc(50% - 10px) !important;
		width: auto !important;
		min-width: 140px !important;
		min-height: 46px !important;
		margin: 0 !important;
		padding: 12px 14px !important;
		font-size: 0.95rem !important;
		box-sizing: border-box !important;
	}

	body.node-type-praia #mapa-pagina,
	body.node-type-praia #mapa-pagina-wrapper #mapa-pagina {
		height: 320px !important;
		min-height: 280px !important;
		max-height: 360px !important;
	}

	body.node-type-praia #mapa-praia {
		height: 320px !important;
		min-height: 280px !important;
		max-height: 380px !important;
	}

	body.node-type-praia #uo-praia-mapa-pins,
	body.node-type-praia #block-block-11 {
		width: 100% !important;
		max-width: none !important;
		margin: 0 auto 1.5rem !important;
		padding: 0 3% !important;
		box-sizing: border-box !important;
	}

	body.node-type-praia #page #content .view-hospedagem,
	body.node-type-praia #page #content .view-servi-os,
	body.node-type-praia #page #content .view-eventos,
	body.node-type-praia #block-views-hospedagem-block-3,
	body.node-type-praia #block-views-servi-os-block-3 {
		padding: 18px 0 !important;
		margin: 0 0 20px !important;
	}

	body.node-type-praia #page #content .view-hospedagem .view-header h2,
	body.node-type-praia #page #content .view-servi-os .view-header h2,
	body.node-type-praia #page #content .view-eventos .view-header h2 {
		font-size: 1.25rem !important;
		margin: 0 0 14px !important;
		padding: 0 !important;
	}

	body.node-type-praia #page #content .view-hospedagem .view-content ul,
	body.node-type-praia #page #content .view-servi-os .view-content ul,
	body.node-type-praia #page #content .uo-praia-lista-rodape .view-content ul,
	body.node-type-praia #page #content .uo-praia-lista-rodape ul.uo-praia-destaque-grid {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 1rem !important;
	}

	body.node-type-praia #page #content .uo-praia-lista-rodape,
	body.node-type-praia #page #content .uo-praia-lista-rodape.block {
		margin: 0 0 24px !important;
		padding: 0 !important;
		width: 100% !important;
		background: transparent !important;
		box-shadow: none !important;
	}

	body.node-type-praia #page #content .comments-wrapper {
		padding: 20px 0 !important;
		margin: 0 !important;
	}

	body.node-type-praia #page #content .comments-wrapper h2,
	body.node-type-praia #page #content .comments-wrapper .comments-form h2 {
		font-size: 1.25rem !important;
		margin: 0 0 14px !important;
	}

	body.node-type-praia #page #content .comments-wrapper .comment-info .nome {
		font-size: 1rem !important;
		padding-right: 0 !important;
	}

	body.node-type-praia #page #content .comments-wrapper .comment-info p {
		font-size: 0.95rem !important;
	}

	.avaliacao-box label {
		font-size: 0.85rem !important;
	}

	.avaliacao-box .stars span {
		width: 14px !important;
		height: 14px !important;
		margin-right: 4px !important;
	}
}

@media only screen and (max-width: 699px) {
	body.node-type-praia #mapa-pagina,
	body.node-type-praia #mapa-pagina-wrapper #mapa-pagina,
	body.node-type-praia #mapa-praia {
		height: 280px !important;
		min-height: 240px !important;
		max-height: 320px !important;
	}

	body.node-type-praia #page #content .node-praia .uo-praia-perfil .listagem-info,
	body.node-type-praia #page #content .node-praia .informacoes-praia-box .listagem-info,
	body.node-type-praia #page #content .node-praia .uo-detail-accordion .listagem-info {
		display: grid !important;
		grid-template-columns: 1fr !important;
		gap: 8px !important;
		margin: 0 !important;
		padding: 0 !important;
		list-style: none !important;
	}

	body.node-type-praia #page #content .node-praia .uo-praia-perfil .listagem-info li,
	body.node-type-praia #page #content .node-praia .informacoes-praia-box .listagem-info li,
	body.node-type-praia #page #content .node-praia .uo-detail-accordion .listagem-info li {
		float: none !important;
		display: flex !important;
		align-items: center;
		gap: 12px;
		width: 100% !important;
		height: auto !important;
		min-height: 0 !important;
		margin: 0 !important;
		padding: 12px 14px !important;
		border: 1px solid rgba(8, 65, 77, 0.1) !important;
		border-radius: 12px !important;
		background: #f4f8f9 !important;
		box-sizing: border-box;
	}

	body.node-type-praia #page #content .node-praia .uo-praia-perfil .listagem-info li img,
	body.node-type-praia #page #content .node-praia .informacoes-praia-box .listagem-info li img,
	body.node-type-praia #page #content .node-praia .uo-detail-accordion .listagem-info li img {
		float: none !important;
		width: 34px !important;
		height: 34px !important;
		max-height: 34px !important;
		margin: 0 !important;
		padding: 5px;
		object-fit: contain;
		border-radius: 9px;
		background: #fff;
		box-sizing: border-box;
	}

	body.node-type-praia #page #content .node-praia .uo-praia-perfil .listagem-info li label,
	body.node-type-praia #page #content .node-praia .informacoes-praia-box .listagem-info li label,
	body.node-type-praia #page #content .node-praia .uo-detail-accordion .listagem-info li label {
		display: block !important;
		margin: 0;
		color: #1e3a42 !important;
		font-size: 0.9rem !important;
		font-weight: 600 !important;
		line-height: 1.35 !important;
	}

	body.node-type-praia #page #content .uo-praia-lista-rodape {
		margin: 0 4vw 22px !important;
		padding: 0 !important;
		background: transparent !important;
		box-shadow: none !important;
	}

	/* Onde ficar / O que fazer: mesma margem do comments-wrapper accordion. */
	body.node-type-praia #page #content .node-praia #block-views-hospedagem-block-3,
	body.node-type-praia #page #content .node-praia #block-views-servi-os-block-3,
	body.node-type-praia #block-views-hospedagem-block-3,
	body.node-type-praia #block-views-servi-os-block-3,
	body.node-type-praia #page #content .node-praia .uo-praia-proximos-hint,
	body.node-type-praia #page #content .node-praia .comments-wrapper,
	body.node-type-praia #page #content .node-praia .comments-wrapper.uo-detail-accordion {
		width: auto !important;
		max-width: none !important;
		margin-left: 4vw !important;
		margin-right: 4vw !important;
		padding-left: 0 !important;
		padding-right: 0 !important;
		box-sizing: border-box !important;
	}

	body.node-type-praia #page #content .node-praia #block-views-hospedagem-block-3,
	body.node-type-praia #page #content .node-praia #block-views-servi-os-block-3,
	body.node-type-praia #block-views-hospedagem-block-3,
	body.node-type-praia #block-views-servi-os-block-3 {
		margin-top: 0 !important;
		margin-bottom: 22px !important;
		padding-top: 0 !important;
		padding-bottom: 0 !important;
		border: 0 !important;
		border-radius: 0 !important;
		background: transparent !important;
		box-shadow: none !important;
	}

	body.node-type-praia #page #content .node-praia .uo-praia-section-title,
	body.node-type-praia #page #content .node-praia .uo-praia-section-lead,
	body.node-type-praia .uo-praia-section-title,
	body.node-type-praia .uo-praia-section-lead {
		margin-left: 0 !important;
		margin-right: 0 !important;
		padding-left: 0 !important;
		padding-right: 0 !important;
	}

	/* Galeria mobile: mata absolute/float do desktop + scroll horizontal legado. */
	body.node-type-praia #page #content .node-praia {
		padding: 12px 0 32px !important;
		min-height: 0 !important;
	}

	body.node-type-praia #page #content .node-praia .praia-img,
	body.node-type-praia #page #content .node-praia .uo-praia-galeria,
	body.node-type-praia .node-praia .praia-img {
		position: static !important;
		left: auto !important;
		top: auto !important;
		right: auto !important;
		bottom: auto !important;
		display: grid !important;
		grid-template-columns: 1fr 1fr !important;
		gap: 6px !important;
		width: 100% !important;
		max-width: none !important;
		height: auto !important;
		margin: 0 0 14px !important;
		padding: 0 !important;
		overflow: visible !important;
		white-space: normal !important;
		float: none !important;
		background: transparent !important;
	}

	body.node-type-praia #page #content .node-praia .praia-img a.modal-link,
	body.node-type-praia .node-praia .praia-img a,
	body.node-type-praia .node-praia .praia-img a.modal-link {
		display: block !important;
		float: none !important;
		width: 100% !important;
		max-width: none !important;
		margin: 0 !important;
		padding: 0 !important;
		position: relative !important;
		vertical-align: top;
		overflow: hidden;
		border-radius: 12px;
		background: #e8f1f3;
		aspect-ratio: 4 / 3;
	}

	body.node-type-praia #page #content .node-praia .praia-img a.modal-link:first-child,
	body.node-type-praia .node-praia .praia-img a.modal-link:first-child,
	body.node-type-praia .node-praia .praia-img a:first-child {
		grid-column: auto !important;
		aspect-ratio: 4 / 3;
	}

	body.node-type-praia #page #content .node-praia .praia-img img,
	body.node-type-praia #page #content .node-praia .praia-img img.capa,
	body.node-type-praia #page #content .node-praia .praia-img img.thumb,
	body.node-type-praia .node-praia .praia-img img,
	body.node-type-praia .node-praia .praia-img img.thumb {
		display: block !important;
		float: none !important;
		width: 100% !important;
		max-width: 100% !important;
		height: 100% !important;
		max-height: none !important;
		object-fit: cover !important;
		border-radius: 0 !important;
	}

	/*
	 * CTAs da praia no mobile: sticky acima da bottom nav (igual hospedagem).
	 * NÃO usar position:static aqui — isso anulava o sticky de uo-tourist-mobile
	 * e deixava dock/FABs com offset de CTA sem a barra existir.
	 */
	body.node-type-praia .uo-cta-bar.uo-praia-cta {
		position: fixed !important;
		left: 0 !important;
		right: 0 !important;
		top: auto !important;
		bottom: calc(56px + env(safe-area-inset-bottom, 0px)) !important;
		z-index: 100040 !important;
		display: flex !important;
		flex-wrap: nowrap !important;
		align-items: stretch !important;
		gap: 6px !important;
		margin: 0 !important;
		padding: 10px !important;
		border: 0 !important;
		border-top: 1px solid rgba(8, 65, 77, 0.12) !important;
		background: rgba(255, 255, 255, 0.96) !important;
		box-shadow: 0 -6px 20px rgba(8, 25, 35, 0.1) !important;
	}

	body.node-type-praia .uo-cta-bar.uo-praia-cta > a,
	body.node-type-praia .uo-cta-bar.uo-praia-cta .uo-itinerary-add {
		position: static !important;
		flex: 1 1 0 !important;
		width: auto !important;
		min-width: 0 !important;
		min-height: 48px !important;
		margin: 0 !important;
		padding: 8px 5px !important;
		font-size: 11px !important;
		font-weight: 700 !important;
		line-height: 1.15 !important;
		white-space: normal !important;
		overflow-wrap: anywhere !important;
		text-indent: 0 !important;
		text-align: center !important;
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
		color: #fff !important;
		background: #00aac8 !important;
		border: 0 !important;
		border-radius: 10px !important;
		box-sizing: border-box !important;
		text-decoration: none !important;
	}

	body.node-type-praia .uo-cta-bar.uo-praia-cta .uo-itinerary-add {
		background: #00aac8 !important;
		color: #fff !important;
		border: 0 !important;
		box-shadow: none !important;
	}

	body.node-type-praia .uo-cta-bar.uo-praia-cta .uo-itinerary-add:hover,
	body.node-type-praia .uo-cta-bar.uo-praia-cta .uo-itinerary-add:focus-visible {
		background: #0096b0 !important;
		color: #fff !important;
		outline: none;
	}

	body.node-type-praia .uo-cta-bar.uo-praia-cta .uo-praia-map-cta {
		background: #08414d !important;
		color: #fff !important;
	}

	/* Hospedagens / serviços: sempre 2 por linha no celular. */
	body.node-type-praia #page #content .view-hospedagem .view-content ul,
	body.node-type-praia #page #content .view-servi-os .view-content ul,
	body.node-type-praia #page #content .uo-praia-lista-rodape ul.uo-praia-destaque-grid,
	body.node-type-praia #page #content .uo-praia-lista-rodape .view-content > ul,
	body.node-type-praia #page #content .uo-praia-lista-rodape .view-content ul {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 10px !important;
		margin: 0 !important;
		padding: 0 !important;
		list-style: none !important;
		width: 100% !important;
	}

	body.node-type-praia #page #content .view-hospedagem .view-content ul li,
	body.node-type-praia #page #content .view-servi-os .view-content ul li,
	body.node-type-praia #page #content .uo-praia-lista-rodape .view-content ul li {
		width: 100% !important;
		max-width: none !important;
		margin: 0 !important;
		float: none !important;
	}

	body.node-type-praia .uo-listing-card__title {
		font-size: 14px !important;
	}

	body.node-type-praia .uo-listing-card__action {
		min-height: 36px !important;
		padding: 8px 10px !important;
		font-size: 12px !important;
	}

	body.node-type-praia .uo-listing-card .uo-itinerary-add {
		min-height: 26px !important;
		padding: 0.15rem 0.5rem !important;
		font-size: 11px !important;
		width: auto !important;
	}

	body.node-type-praia #uo-praia-mapa-pins,
	body.node-type-praia #block-block-11,
	body.node-type-praia #page #content #block-views-servi-os-block-2 {
		display: block !important;
		width: 92vw !important;
		max-width: 92vw !important;
		margin-left: auto !important;
		margin-right: auto !important;
		margin-bottom: 22px !important;
		padding: 0 !important;
		border: 0 !important;
		border-radius: 14px !important;
		background: transparent !important;
		box-shadow: none !important;
		overflow: hidden !important;
		box-sizing: border-box !important;
		clear: both !important;
	}

	body.node-type-praia #page #content #block-views-servi-os-block-2 .view-servi-os {
		width: 100% !important;
		max-width: none !important;
		margin: 0 !important;
	}

	body.node-type-praia #mapa-praia {
		display: block !important;
		width: 100% !important;
		max-width: 100% !important;
		height: 280px !important;
		min-height: 240px !important;
		max-height: 320px !important;
		margin: 0 !important;
		border-radius: 14px !important;
		overflow: hidden !important;
		position: relative !important;
		z-index: 1;
		box-sizing: border-box !important;
	}

	body.node-type-praia #mapa-praia .gm-style,
	body.node-type-praia #mapa-praia > div {
		width: 100% !important;
		max-width: 100% !important;
	}
}

/* --------------------------------------------------------------------------
   FABs mobile — trilho único; mata offsets legados que cobrem CTAs
   -------------------------------------------------------------------------- */
@media only screen and (max-width: 699px) {
	html body #uo-fab-rail.uo-fab-rail {
		right: 10px !important;
		/* Acima da bottom nav; com chat, limpa a .uo-dock__pill (ver --uo-fab-rail-bottom). */
		bottom: var(--uo-fab-rail-bottom, calc(56px + env(safe-area-inset-bottom, 0px) + 12px)) !important;
		gap: 10px !important;
		z-index: 920 !important;
	}

	/* Força itens no trilho (não fixed solto sobre o conteúdo). */
	html body #uo-fab-rail > #block-block-15,
	html body #uo-fab-rail > #block-block-15.block,
	html body #uo-fab-rail > .uo-itinerary-badge,
	html body #uo-fab-rail > a.uo-itinerary-badge {
		position: relative !important;
		left: auto !important;
		right: auto !important;
		top: auto !important;
		bottom: auto !important;
		float: none !important;
		transform: none !important;
		-webkit-transform: none !important;
		margin: 0 !important;
	}

	html body #uo-fab-rail > #block-block-15,
	html body #uo-fab-rail > #block-block-15.block {
		display: block !important;
		width: auto !important;
		max-width: 68px !important;
	}

	html body #uo-fab-rail .previsao-do-tempo,
	html body #uo-fab-rail #block-block-15 .previsao-do-tempo {
		height: 50px !important;
		width: 68px !important;
		border-radius: 12px !important;
	}

	html body #uo-fab-rail .uo-itinerary-badge,
	html body #uo-fab-rail a.uo-itinerary-badge {
		display: inline-flex !important;
		align-items: center !important;
		justify-content: center !important;
		width: 48px !important;
		height: 48px !important;
		min-width: 48px !important;
		padding: 0 !important;
		border-radius: 50% !important;
		background: #00aac8 !important;
		color: #fff !important;
		box-shadow: 0 4px 14px rgba(0, 0, 0, 0.2) !important;
		visibility: visible !important;
		opacity: 1 !important;
	}

	html body #uo-fab-rail .uo-itinerary-badge__label {
		display: none !important;
	}

	html body #uo-fab-rail .uo-itinerary-badge__icon {
		font-size: 20px !important;
		line-height: 1 !important;
	}

	/* Com menu aberto, some a coluna de FABs. */
	html body.open-menu #uo-fab-rail {
		display: none !important;
	}
}

/* --------------------------------------------------------------------------
   Menu mobile — drawer mais limpo
   -------------------------------------------------------------------------- */
@media only screen and (max-width: 1023px) {
	body.open-menu #header #button-menu.open-menu,
	body.open-menu #header #button-menu {
		z-index: 1003 !important;
		background: #fff !important;
		border-radius: 10px !important;
		box-shadow: 0 2px 10px rgba(0, 0, 0, 0.12);
	}

	body.open-menu #header #block-block-5 {
		top: 64px !important;
		padding: 14px 16px 10px !important;
		width: min(80vw, 320px) !important;
	}

	body.open-menu #header #block-block-5 .block-credenciado {
		flex-direction: row !important;
		flex-wrap: wrap !important;
		gap: 6px !important;
	}

	body.open-menu #header #block-block-5 .block-credenciado a {
		flex: 1 1 auto !important;
		min-width: 0 !important;
	}

	body.open-menu #header .content-width #block-system-main-menu,
	body.open-menu .header-wrapper nav.block-menu,
	body.open-menu #block-system-main-menu.block-menu {
		padding: 120px 0 calc(72px + env(safe-area-inset-bottom, 0px)) !important;
		width: min(80vw, 320px) !important;
		max-width: 320px !important;
	}

	body.open-menu #header .content-width #block-system-main-menu ul li a {
		display: flex !important;
		align-items: center !important;
		gap: 12px !important;
		min-height: 48px !important;
		padding: 10px 18px !important;
		font-size: 16px !important;
		line-height: 1.3 !important;
		border-bottom: 1px solid rgba(255, 255, 255, 0.08);
		box-sizing: border-box !important;
	}

	body.open-menu #header .content-width #block-system-main-menu ul li a:before {
		flex: 0 0 28px !important;
		width: 28px !important;
		height: 28px !important;
		margin: 0 !important;
		background-size: contain !important;
	}

	body.open-menu #header .content-width #block-system-main-menu ul li a:after {
		display: none !important;
	}

	body.open-menu .uo-bottom-nav {
		z-index: 980 !important;
	}
}

/* --------------------------------------------------------------------------
   Menu mobile (drawer) — phone landscape (321–699) não tinha position:fixed
   no nav; o painel sumia e só restava o box Cadastrar/Entrar solto.
   -------------------------------------------------------------------------- */
@media only screen and (max-width: 1023px) {
	/* Abaixo do header (X clicável), acima do backdrop. */
	#header .content-width #block-system-main-menu,
	.header-wrapper nav.block-menu,
	#block-system-main-menu.block-menu {
		position: fixed !important;
		left: -80vw !important;
		top: 0 !important;
		width: 80vw !important;
		max-width: 320px !important;
		height: 100vh !important;
		height: 100dvh !important;
		margin: 0 !important;
		flex: none !important;
		background: #191919 !important;
		z-index: 991 !important;
		overflow-x: hidden;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		box-sizing: border-box;
		/* header ~76px + faixa Cadastrar/Entrar */
		padding: 132px 0 96px !important;
		display: none;
		-webkit-transform: translateX(0);
		transform: translateX(0);
		-webkit-transition: -webkit-transform 0.3s ease, transform 0.3s ease;
		transition: transform 0.3s ease;
	}

	body.open-menu #header .content-width #block-system-main-menu,
	body.open-menu .header-wrapper nav.block-menu,
	body.open-menu #block-system-main-menu.block-menu,
	body.open-menu nav.block-menu.open {
		display: block !important;
		-webkit-transform: translateX(80vw) !important;
		transform: translateX(80vw) !important;
	}

	body.open-menu #header #button-menu {
		z-index: 1003 !important;
	}

	body.open-menu #header #block-block-5 {
		position: fixed !important;
		left: 0 !important;
		top: 76px !important;
		right: auto !important;
		width: 80vw !important;
		max-width: 320px !important;
		height: auto !important;
		min-height: 56px;
		z-index: 992 !important;
		display: block !important;
		background: #191919 !important;
		padding: 12px 14px !important;
		box-sizing: border-box;
		-webkit-transform: none !important;
		transform: none !important;
	}

	body.open-menu #header #block-block-5 .block-credenciado {
		display: flex !important;
		flex-direction: row !important;
		flex-wrap: nowrap !important;
		align-items: center !important;
		justify-content: flex-start !important;
		gap: 6px !important;
		width: 100% !important;
		height: auto !important;
		float: none !important;
	}

	body.open-menu #header #block-block-5 .block-credenciado a,
	body.open-menu #header #block-block-5 .block-credenciado a:first-child,
	body.open-menu #header #block-block-5 .block-credenciado a:last-child {
		display: inline-flex !important;
		align-items: center !important;
		justify-content: center !important;
		position: static !important;
		width: auto !important;
		height: auto !important;
		min-height: 40px !important;
		margin: 0 !important;
		padding: 0.5rem 0.9rem !important;
		font-size: 0.875rem !important;
		font-weight: 600 !important;
		line-height: 1.2 !important;
		border-radius: 999px !important;
		background: #f4f8f9 !important;
		color: #08414d !important;
		border: 1px solid rgba(255, 255, 255, 0.2) !important;
		text-indent: 0 !important;
	}

	body.open-menu #header .content-width #block-system-main-menu ul {
		padding: 0 0 24px !important;
		height: auto !important;
		overflow: visible !important;
	}

	body.open-menu #header .content-width #block-system-main-menu ul li {
		display: block !important;
		width: 100% !important;
		float: none !important;
	}

	body.open-menu #header .content-width #block-system-main-menu ul li a {
		color: #fff !important;
		text-align: left !important;
	}
}

/* --------------------------------------------------------------------------
   Taxonomia tipo/categoria
   Term pages redirect to /hospedagem|/servicos?…_tid= (see gw2d_listing_chip_*).
   -------------------------------------------------------------------------- */

/* --------------------------------------------------------------------------
   Evento interno: card .valor + mapa dentro de .content-node-right
   -------------------------------------------------------------------------- */

body.node-type-eventos #page #content .node-evento .content-node-left .valor {
	display: flex;
	flex-direction: column;
	min-height: 130px;
	padding: 24px;
	margin: 1vw 0 0;
	border: 1px solid rgba(8, 65, 77, 0.1);
	border-radius: 16px;
	background: linear-gradient(180deg, rgba(0, 170, 200, 0.12), #fff 55%);
	box-shadow: 0 8px 24px rgba(8, 25, 35, 0.07);
	font-size: inherit;
	font-family: inherit;
	font-weight: inherit;
	color: inherit;
}

body.node-type-eventos #page #content .node-evento .content-node-left .valor h4 {
	margin: 0 0 0.75rem;
	color: #08414d;
	font-size: clamp(1.25rem, 2.2vw, 1.55rem);
	line-height: 1.2;
	text-align: left;
	text-transform: uppercase;
}

body.node-type-eventos #page #content .node-evento .content-node-left .valor .valor-value {
	color: #00aac8;
	font-family: 'gobold', sans-serif;
	font-size: clamp(1.35rem, 2vw, 1.85rem);
	font-weight: normal;
	line-height: 1.25;
}

body.node-type-eventos #page #content .node-evento .content-node-right #mapa-pagina-wrapper {
	width: 100%;
	max-width: 100%;
	margin: 1.5rem 0 0;
	padding: 0;
	background: transparent;
	box-sizing: border-box;
	clear: none;
	overflow: hidden;
	border-radius: 12px;
}

body.node-type-eventos #page #content .node-evento .content-node-right #mapa-pagina-wrapper .uo-map-heading {
	margin: 0 0 12px;
	padding: 0;
	width: 100%;
	background: transparent;
}

body.node-type-eventos #page #content .node-evento .content-node-right #mapa-pagina-wrapper .uo-map-heading h3,
body.node-type-eventos #page #content .node-evento .content-node-right #mapa-pagina-wrapper h3 {
	margin: 0 0 4px;
	padding: 0;
	width: 100%;
	max-width: 100%;
	background: transparent;
	color: #08414d;
	font-size: clamp(1.15rem, 1.6vw, 1.35rem);
	font-family: inherit;
	font-weight: 700;
	text-transform: none;
}

body.node-type-eventos #page #content .node-evento .content-node-right #mapa-pagina-wrapper .uo-map-heading p {
	margin: 0;
	color: #526970;
	font-size: 0.95rem;
}

body.node-type-eventos #page #content .node-evento .content-node-right #mapa-pagina-wrapper #mapa-pagina {
	width: 100%;
	height: min(35vw, 420px);
	min-height: 240px;
	border-radius: 12px;
	overflow: hidden;
}

@media only screen and (max-width: 980px) {
	body.node-type-eventos #page #content .node-evento .content-node-left .info-evento {
		display: grid;
		grid-template-columns: 1fr;
		gap: 0.85rem;
		padding: 0;
		width: 100%;
		box-sizing: border-box;
	}

	body.node-type-eventos #page #content .node-evento .content-node-left .valor,
	body.node-type-eventos #page #content .node-evento .content-node-left .data_hora,
	body.node-type-eventos #page #content .node-evento .content-node-left .local {
		width: 100%;
		margin: 0;
		min-height: 0;
		box-sizing: border-box;
	}

	body.node-type-eventos #page #content .node-evento .content-node-left .valor h4 {
		font-size: clamp(1.1rem, 4.5vw, 1.35rem);
	}

	body.node-type-eventos #page #content .node-evento .content-node-left .valor .valor-value {
		font-size: clamp(1.25rem, 5vw, 1.75rem);
	}

	body.node-type-eventos #page #content .node-evento .content-node-left .redes-sociais {
		width: 100%;
		margin: 0.25rem 0 0;
	}

	body.node-type-eventos #page #content .node-evento .content-node-right #mapa-pagina-wrapper #mapa-pagina {
		height: 55vw;
		min-height: 220px;
	}
}

/* Phone + tablet: drawer "Mais filtros" (form só após .is-open). */
@media only screen and (max-width: 1023px) {
	.page-servicos #page #content #filtro-servicos-wrapper,
	.page-hospedagem #page #content #filtro-servicos-wrapper,
	.page-servicos #filtro-servicos-wrapper,
	.page-hospedagem #filtro-servicos-wrapper {
		display: block !important;
		flex-direction: column !important;
		flex-wrap: wrap !important;
		overflow: visible !important;
		gap: 0 !important;
		position: relative !important;
	}

	/* Form only visible after "Mais filtros" (.is-open on the button). */
	.page-servicos #page #content #filtro-servicos-wrapper > form,
	.page-hospedagem #page #content #filtro-servicos-wrapper > form,
	.page-servicos #filtro-servicos-wrapper > form,
	.page-hospedagem #filtro-servicos-wrapper > form {
		display: none !important;
		width: calc(100% - 8vw) !important;
		max-width: calc(100% - 8vw) !important;
		flex: none !important;
		float: none !important;
		box-sizing: border-box !important;
		margin: 0 4vw 3vw !important;
		padding: 2vw 0 0 !important;
	}

	.page-servicos #page #content #filtro-servicos-wrapper > .btn-filtro-servicos.is-open ~ form,
	.page-hospedagem #page #content #filtro-servicos-wrapper > .btn-filtro-hospedagem.is-open ~ form,
	.page-servicos #filtro-servicos-wrapper > .btn-filtro-servicos.is-open ~ form,
	.page-hospedagem #filtro-servicos-wrapper > .btn-filtro-hospedagem.is-open ~ form {
		display: block !important;
	}

	.page-servicos #page #content #filtro-servicos-wrapper > .btn-filtro-servicos,
	.page-hospedagem #page #content #filtro-servicos-wrapper > .btn-filtro-hospedagem {
		width: calc(100% - 8vw) !important;
		max-width: calc(100% - 8vw) !important;
		flex: none !important;
		float: none !important;
		box-sizing: border-box !important;
		margin: 3vw 4vw 5vw !important;
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
		text-align: center !important;
	}

	.page-servicos #page #content #filtro-servicos-wrapper .views-exposed-form .views-exposed-widgets,
	.page-hospedagem #page #content #filtro-servicos-wrapper .views-exposed-form .views-exposed-widgets,
	.page-servicos #page #content #filtro-servicos-wrapper .views-exposed-form .views-exposed-widgets.clearfix,
	.page-hospedagem #page #content #filtro-servicos-wrapper .views-exposed-form .views-exposed-widgets.clearfix {
		display: flex !important;
		flex-direction: column !important;
		flex-wrap: wrap !important;
		align-items: stretch !important;
		width: 100% !important;
		overflow: visible !important;
		gap: 8px !important;
		float: none !important;
	}

	.page-hospedagem #page #content #filtro-servicos-wrapper #edit-combine-wrapper,
	.page-hospedagem #filtro-servicos-wrapper #edit-combine-wrapper {
		margin: 0 !important;
		padding: 0 !important;
		float: none !important;
		width: 100% !important;
		max-width: 100% !important;
		box-sizing: border-box !important;
	}

	.page-servicos #page #content #filtro-servicos-wrapper .views-exposed-form .views-exposed-widget,
	.page-hospedagem #page #content #filtro-servicos-wrapper .views-exposed-form .views-exposed-widget,
	.page-servicos #page #content #filtro-servicos-wrapper .views-submit-button,
	.page-hospedagem #page #content #filtro-servicos-wrapper .views-submit-button {
		width: 100% !important;
		max-width: 100% !important;
		flex: 0 0 auto !important;
		float: none !important;
		position: static !important;
		top: auto !important;
		right: auto !important;
		left: auto !important;
		box-sizing: border-box !important;
		margin: 0 !important;
		padding: 0 !important;
	}

	/* Ok button: kill absolute/vw sizing from smartphone landscape CSS. */
	.page-servicos #page #content #filtro-servicos-wrapper .views-submit-button input,
	.page-servicos #page #content #filtro-servicos-wrapper .views-submit-button #edit-submit-servi-os,
	.page-hospedagem #page #content #filtro-servicos-wrapper .views-submit-button input,
	.page-hospedagem #page #content #filtro-servicos-wrapper .views-submit-button #edit-submit-hospedagem {
		display: block !important;
		position: static !important;
		top: auto !important;
		right: auto !important;
		left: auto !important;
		width: 100% !important;
		max-width: 100% !important;
		height: auto !important;
		min-height: 44px !important;
		margin: 8px 0 0 !important;
		padding: 12px 16px !important;
		box-sizing: border-box !important;
	}

	/* Buscar input = Praia select2 (mesmo footprint). */
	.page-servicos #page #content #filtro-servicos-wrapper #edit-combine-wrapper .views-widget input,
	.page-hospedagem #page #content #filtro-servicos-wrapper #edit-combine-wrapper .views-widget input,
	.page-servicos #page #content #filtro-servicos-wrapper #edit-field-praia-nid-wrapper .select2-container--default .select2-selection,
	.page-hospedagem #page #content #filtro-servicos-wrapper #edit-field-praia-nid-wrapper .select2-container--default .select2-selection {
		display: flex !important;
		align-items: center !important;
		box-sizing: border-box !important;
		width: 100% !important;
		height: 48px !important;
		min-height: 48px !important;
		max-height: 48px !important;
		padding: 0 14px !important;
		border: 1px solid #dbe6ea !important;
		border-radius: 10px !important;
		font-size: 15px !important;
		line-height: 1.2 !important;
	}
}

/* Banner "O que fazer": breathing room on the sides (smartphone CSS used padding: 5vw 0). */
@media only screen and (max-width: 699px) {
	.page-servicos #page #content .banner-topo-servicos,
	.page-servicos #page #content .banner-topo-servicos.uo-servicos-eyebrow-processed {
		padding: 5vw 4vw !important;
		box-sizing: border-box !important;
	}
}

/* Comments: alinhar com a coluna do detalhe (sem inset 11.5vw do legado). */
#page #content .comments-wrapper,
.node-type-praia #page #content .comments-wrapper,
.node-type-hospedagem #page #content .node-hospedagem .comments-wrapper,
.node-type-servicos #page #content .node-hospedagem .comments-wrapper,
.node-type-informacoes-de-ubatuba #page #content .comments-wrapper {
	box-sizing: border-box;
	width: 100%;
	max-width: none;
	margin-left: 0;
	margin-right: 0;
	padding-left: 0 !important;
	padding-right: 0 !important;
	text-align: left;
}

@media only screen and (max-width: 699px) {
	#page #content .comments-wrapper,
	.node-type-hospedagem #page #content .node-hospedagem .comments-wrapper,
	.node-type-servicos #page #content .node-hospedagem .comments-wrapper {
		padding-left: 4vw !important;
		padding-right: 4vw !important;
	}

	/* Praia: gutter só na margem (igual block-3 / section-lead), sem padding extra. */
	body.node-type-praia #page #content .node-praia .comments-wrapper,
	body.node-type-praia #page #content .comments-wrapper {
		padding-left: 0 !important;
		padding-right: 0 !important;
	}
}

/* ------------------------------------------------------------------
   Fivestar (field_avaliacao): replace legacy GIF sprites with crisp SVG
------------------------------------------------------------------- */
.field-type-fivestar.field-name-field-avaliacao.field-widget-stars,
.field-type-fivestar.field-name-field-avaliacao.field-widget-stars .form-item,
.field-type-fivestar.field-name-field-avaliacao.field-widget-stars .fivestar-form-item {
	margin-bottom: 0.75rem;
}

.field-type-fivestar.field-name-field-avaliacao.field-widget-stars .fivestar-form-item .form-type-select {
	zoom: 1;
}

.field-type-fivestar.field-name-field-avaliacao div.fivestar-widget,
.field-type-fivestar.field-name-field-avaliacao div.fivestar-widget-static {
	display: inline-flex;
	align-items: center;
	flex-wrap: nowrap;
	gap: 6px;
	line-height: 0;
}

/* Halfstar: 10 half-targets = 5 visual stars (pair odd+even). */
.field-type-fivestar.field-name-field-avaliacao .halfstar div.fivestar-widget,
.field-type-fivestar.field-name-field-avaliacao.halfstar div.fivestar-widget,
.halfstar.field-type-fivestar.field-name-field-avaliacao div.fivestar-widget,
.field-type-fivestar.field-name-field-avaliacao .halfstar div.fivestar-widget-static,
.field-type-fivestar.field-name-field-avaliacao.halfstar div.fivestar-widget-static,
.halfstar.field-type-fivestar.field-name-field-avaliacao div.fivestar-widget-static {
	gap: 0;
}

.field-type-fivestar.field-name-field-avaliacao div.fivestar-widget .star,
.field-type-fivestar.field-name-field-avaliacao div.fivestar-widget .cancel,
.field-type-fivestar.field-name-field-avaliacao div.fivestar-widget-static .star {
	float: none !important;
	display: inline-block;
	width: 28px !important;
	height: 28px !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden !important;
	text-indent: -9999px !important;
	background: none !important;
	background-image: none !important;
}

/* Clip each half so 10 targets still read as 5 stars */
.field-type-fivestar.field-name-field-avaliacao .halfstar div.fivestar-widget .star,
.field-type-fivestar.field-name-field-avaliacao.halfstar div.fivestar-widget .star,
.halfstar.field-type-fivestar.field-name-field-avaliacao div.fivestar-widget .star,
.field-type-fivestar.field-name-field-avaliacao .halfstar div.fivestar-widget-static .star,
.field-type-fivestar.field-name-field-avaliacao.halfstar div.fivestar-widget-static .star,
.halfstar.field-type-fivestar.field-name-field-avaliacao div.fivestar-widget-static .star {
	width: 14px !important;
	height: 28px !important;
}

.field-type-fivestar.field-name-field-avaliacao .halfstar div.fivestar-widget .star.even,
.field-type-fivestar.field-name-field-avaliacao.halfstar div.fivestar-widget .star.even,
.halfstar.field-type-fivestar.field-name-field-avaliacao div.fivestar-widget .star.even,
.field-type-fivestar.field-name-field-avaliacao .halfstar div.fivestar-widget-static .star.even,
.field-type-fivestar.field-name-field-avaliacao .halfstar div.fivestar-widget-static .star-even,
.field-type-fivestar.field-name-field-avaliacao.halfstar div.fivestar-widget-static .star.even,
.halfstar.field-type-fivestar.field-name-field-avaliacao div.fivestar-widget-static .star.even {
	margin-right: 6px !important;
}

.field-type-fivestar.field-name-field-avaliacao .halfstar div.fivestar-widget .star.star-last,
.field-type-fivestar.field-name-field-avaliacao.halfstar div.fivestar-widget .star.star-last,
.halfstar.field-type-fivestar.field-name-field-avaliacao div.fivestar-widget .star.star-last {
	margin-right: 0 !important;
}

.field-type-fivestar.field-name-field-avaliacao div.fivestar-widget .star a,
.field-type-fivestar.field-name-field-avaliacao div.fivestar-widget-static .star span {
	display: block !important;
	box-sizing: border-box;
	width: 100% !important;
	height: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background-color: transparent !important;
	background-image: url(../images/uo-star-outline.svg) !important;
	background-repeat: no-repeat !important;
	background-position: center !important;
	background-size: contain !important;
	transition: background-image 0.12s ease, filter 0.12s ease, transform 0.12s ease;
}

.field-type-fivestar.field-name-field-avaliacao .halfstar div.fivestar-widget .star a,
.field-type-fivestar.field-name-field-avaliacao.halfstar div.fivestar-widget .star a,
.halfstar.field-type-fivestar.field-name-field-avaliacao div.fivestar-widget .star a,
.field-type-fivestar.field-name-field-avaliacao .halfstar div.fivestar-widget-static .star span,
.field-type-fivestar.field-name-field-avaliacao.halfstar div.fivestar-widget-static .star span,
.halfstar.field-type-fivestar.field-name-field-avaliacao div.fivestar-widget-static .star span {
	width: 28px !important;
	height: 28px !important;
	background-size: 28px 28px !important;
	background-position: 0 0 !important;
}

/* Defeat halfstar.gif sprite offsets (.even.hover / .even.on use -8px -16/-32) */
.field-type-fivestar.field-name-field-avaliacao .halfstar div.fivestar-widget .star.odd a,
.field-type-fivestar.field-name-field-avaliacao .halfstar div.fivestar-widget .star.even a,
.field-type-fivestar.field-name-field-avaliacao .halfstar div.fivestar-widget .star.odd.on a,
.field-type-fivestar.field-name-field-avaliacao .halfstar div.fivestar-widget .star.even.on a,
.field-type-fivestar.field-name-field-avaliacao .halfstar div.fivestar-widget .star.odd.hover a,
.field-type-fivestar.field-name-field-avaliacao .halfstar div.fivestar-widget .star.even.hover a,
.field-type-fivestar.field-name-field-avaliacao .halfstar div.fivestar-widget .star.even.on.hover a,
.field-type-fivestar.field-name-field-avaliacao .halfstar div.fivestar-widget .star.odd a:hover,
.field-type-fivestar.field-name-field-avaliacao .halfstar div.fivestar-widget .star.even a:hover,
.field-type-fivestar.field-name-field-avaliacao .halfstar div.fivestar-widget .star.even.on a:hover,
.field-type-fivestar.field-name-field-avaliacao.halfstar div.fivestar-widget .star.odd a,
.field-type-fivestar.field-name-field-avaliacao.halfstar div.fivestar-widget .star.even a,
.field-type-fivestar.field-name-field-avaliacao.halfstar div.fivestar-widget .star.even.on a,
.field-type-fivestar.field-name-field-avaliacao.halfstar div.fivestar-widget .star.even.hover a,
.field-type-fivestar.field-name-field-avaliacao.halfstar div.fivestar-widget .star.even.on.hover a,
.field-type-fivestar.field-name-field-avaliacao.halfstar div.fivestar-widget .star.even a:hover,
.halfstar.field-type-fivestar.field-name-field-avaliacao div.fivestar-widget .star.odd a,
.halfstar.field-type-fivestar.field-name-field-avaliacao div.fivestar-widget .star.even a,
.halfstar.field-type-fivestar.field-name-field-avaliacao div.fivestar-widget .star.even.on a,
.halfstar.field-type-fivestar.field-name-field-avaliacao div.fivestar-widget .star.even.hover a,
.halfstar.field-type-fivestar.field-name-field-avaliacao div.fivestar-widget .star.even.on.hover a,
.halfstar.field-type-fivestar.field-name-field-avaliacao div.fivestar-widget .star.even a:hover {
	background-position: 0 0 !important;
	background-size: 28px 28px !important;
}

.field-type-fivestar.field-name-field-avaliacao .halfstar div.fivestar-widget .star.even a,
.field-type-fivestar.field-name-field-avaliacao .halfstar div.fivestar-widget .star.even.on a,
.field-type-fivestar.field-name-field-avaliacao .halfstar div.fivestar-widget .star.even.hover a,
.field-type-fivestar.field-name-field-avaliacao .halfstar div.fivestar-widget .star.even.on.hover a,
.field-type-fivestar.field-name-field-avaliacao .halfstar div.fivestar-widget .star.even a:hover,
.field-type-fivestar.field-name-field-avaliacao.halfstar div.fivestar-widget .star.even a,
.field-type-fivestar.field-name-field-avaliacao.halfstar div.fivestar-widget .star.even.on a,
.field-type-fivestar.field-name-field-avaliacao.halfstar div.fivestar-widget .star.even.hover a,
.field-type-fivestar.field-name-field-avaliacao.halfstar div.fivestar-widget .star.even.on.hover a,
.field-type-fivestar.field-name-field-avaliacao.halfstar div.fivestar-widget .star.even a:hover,
.halfstar.field-type-fivestar.field-name-field-avaliacao div.fivestar-widget .star.even a,
.halfstar.field-type-fivestar.field-name-field-avaliacao div.fivestar-widget .star.even.on a,
.halfstar.field-type-fivestar.field-name-field-avaliacao div.fivestar-widget .star.even.hover a,
.halfstar.field-type-fivestar.field-name-field-avaliacao div.fivestar-widget .star.even.on.hover a,
.halfstar.field-type-fivestar.field-name-field-avaliacao div.fivestar-widget .star.even a:hover,
.field-type-fivestar.field-name-field-avaliacao .halfstar div.fivestar-widget-static .star.even span,
.field-type-fivestar.field-name-field-avaliacao .halfstar div.fivestar-widget-static .star-even span,
.field-type-fivestar.field-name-field-avaliacao.halfstar div.fivestar-widget-static .star.even span,
.halfstar.field-type-fivestar.field-name-field-avaliacao div.fivestar-widget-static .star.even span {
	margin-left: -14px !important;
	background-position: 0 0 !important;
}

/* Empty / off */
.field-type-fivestar.field-name-field-avaliacao div.fivestar-widget .star a,
.field-type-fivestar.field-name-field-avaliacao div.fivestar-widget-static .star span.off {
	background-image: url(../images/uo-star-outline.svg) !important;
	filter: none;
	opacity: 1;
}

/* Selected / on */
.field-type-fivestar.field-name-field-avaliacao div.fivestar-widget div.on a,
.field-type-fivestar.field-name-field-avaliacao div.fivestar-widget-static .star span.on {
	background-image: url(../images/uo-star.svg) !important;
	filter: none;
	opacity: 1;
}

/* Hover preview — no scale on halfstar (would break clip pairs) */
.field-type-fivestar.field-name-field-avaliacao div.fivestar-widget div.hover a,
.field-type-fivestar.field-name-field-avaliacao div.rating div a:hover {
	background-image: url(../images/uo-star.svg) !important;
	filter: none;
	opacity: 1;
}

.field-type-fivestar.field-name-field-avaliacao:not(.halfstar) div.fivestar-widget:not(.halfstar) div.hover a {
	transform: scale(1.06);
}

/* Cancel (clear vote) */
.field-type-fivestar.field-name-field-avaliacao div.fivestar-widget .cancel,
.field-type-fivestar.field-name-field-avaliacao div.fivestar-widget .cancel a {
	width: 22px !important;
	height: 22px !important;
	opacity: 0.55;
	background-image: none !important;
}

.field-type-fivestar.field-name-field-avaliacao div.fivestar-widget .cancel a {
	position: relative;
	background: #e8eef1 !important;
	border-radius: 50%;
	text-indent: -9999px !important;
}

.field-type-fivestar.field-name-field-avaliacao div.fivestar-widget .cancel a::before,
.field-type-fivestar.field-name-field-avaliacao div.fivestar-widget .cancel a::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 10px;
	height: 2px;
	background: #5a6a73;
	border-radius: 1px;
}

.field-type-fivestar.field-name-field-avaliacao div.fivestar-widget .cancel a::before {
	transform: translate(-50%, -50%) rotate(45deg);
}

.field-type-fivestar.field-name-field-avaliacao div.fivestar-widget .cancel a::after {
	transform: translate(-50%, -50%) rotate(-45deg);
}

.field-type-fivestar.field-name-field-avaliacao div.fivestar-widget .cancel a:hover {
	opacity: 1;
	background: #dbe6ea !important;
}

/* Comment display stars (avaliacao-box) — same SVG language */
.avaliacao-box .stars {
	display: inline-flex;
	align-items: center;
	gap: 3px;
	vertical-align: middle;
}

.avaliacao-box .stars span {
	display: inline-block;
	width: 16px;
	height: 16px;
	margin: 0;
	background: none !important;
	background-image: url(../images/uo-star-outline.svg) !important;
	background-repeat: no-repeat !important;
	background-position: center !important;
	background-size: contain !important;
	opacity: 1;
	-webkit-mask-image: none;
	mask-image: none;
}

.avaliacao-box .stars-100 .star5,
.avaliacao-box .stars-100 .star4,
.avaliacao-box .stars-100 .star3,
.avaliacao-box .stars-100 .star2,
.avaliacao-box .stars-100 .star1,
.avaliacao-box .stars-90 .star4,
.avaliacao-box .stars-90 .star3,
.avaliacao-box .stars-90 .star2,
.avaliacao-box .stars-90 .star1,
.avaliacao-box .stars-80 .star4,
.avaliacao-box .stars-80 .star3,
.avaliacao-box .stars-80 .star2,
.avaliacao-box .stars-80 .star1,
.avaliacao-box .stars-70 .star3,
.avaliacao-box .stars-70 .star2,
.avaliacao-box .stars-70 .star1,
.avaliacao-box .stars-60 .star3,
.avaliacao-box .stars-60 .star2,
.avaliacao-box .stars-60 .star1,
.avaliacao-box .stars-50 .star2,
.avaliacao-box .stars-50 .star1,
.avaliacao-box .stars-40 .star2,
.avaliacao-box .stars-40 .star1,
.avaliacao-box .stars-30 .star1,
.avaliacao-box .stars-20 .star1 {
	background-image: url(../images/uo-star.svg) !important;
	opacity: 1;
}

/* Half stars via mask + split fill */
.avaliacao-box .stars-30 .star2,
.avaliacao-box .stars-50 .star3,
.avaliacao-box .stars-70 .star4,
.avaliacao-box .stars-90 .star5,
.avaliacao-box .stars-10 .star1 {
	background-image: none !important;
	background: linear-gradient(90deg, #ffb400 50%, #d5dde2 50%) !important;
	-webkit-mask-image: url(../images/uo-star.svg);
	mask-image: url(../images/uo-star.svg);
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	opacity: 1;
}

@media only screen and (max-width: 699px) {
	.field-type-fivestar.field-name-field-avaliacao div.fivestar-widget .star,
	.field-type-fivestar.field-name-field-avaliacao div.fivestar-widget-static .star {
		width: 36px !important;
		height: 36px !important;
	}

	.field-type-fivestar.field-name-field-avaliacao .halfstar div.fivestar-widget .star,
	.field-type-fivestar.field-name-field-avaliacao.halfstar div.fivestar-widget .star,
	.halfstar.field-type-fivestar.field-name-field-avaliacao div.fivestar-widget .star,
	.field-type-fivestar.field-name-field-avaliacao .halfstar div.fivestar-widget-static .star,
	.field-type-fivestar.field-name-field-avaliacao.halfstar div.fivestar-widget-static .star,
	.halfstar.field-type-fivestar.field-name-field-avaliacao div.fivestar-widget-static .star {
		width: 18px !important;
		height: 36px !important;
	}

	.field-type-fivestar.field-name-field-avaliacao .halfstar div.fivestar-widget .star a,
	.field-type-fivestar.field-name-field-avaliacao.halfstar div.fivestar-widget .star a,
	.halfstar.field-type-fivestar.field-name-field-avaliacao div.fivestar-widget .star a,
	.field-type-fivestar.field-name-field-avaliacao .halfstar div.fivestar-widget-static .star span,
	.field-type-fivestar.field-name-field-avaliacao.halfstar div.fivestar-widget-static .star span,
	.halfstar.field-type-fivestar.field-name-field-avaliacao div.fivestar-widget-static .star span {
		width: 36px !important;
		height: 36px !important;
		background-size: 36px 36px !important;
	}

	.field-type-fivestar.field-name-field-avaliacao .halfstar div.fivestar-widget .star.even a,
	.field-type-fivestar.field-name-field-avaliacao.halfstar div.fivestar-widget .star.even a,
	.halfstar.field-type-fivestar.field-name-field-avaliacao div.fivestar-widget .star.even a,
	.field-type-fivestar.field-name-field-avaliacao .halfstar div.fivestar-widget-static .star.even span,
	.field-type-fivestar.field-name-field-avaliacao.halfstar div.fivestar-widget-static .star.even span,
	.halfstar.field-type-fivestar.field-name-field-avaliacao div.fivestar-widget-static .star.even span {
		margin-left: -18px !important;
	}

	.avaliacao-box .stars span {
		width: 18px;
		height: 18px;
	}
}

/* Listing / detail image placeholder (sem foto ou falha de carga). */
.uo-listing-card__media--placeholder,
.hospedagem-capa--placeholder,
.evento-img--placeholder,
.campo-imagem--placeholder {
	background: #e8f1f3;
}

.uo-listing-card__media--placeholder img,
.hospedagem-capa--placeholder img,
.evento-img--placeholder img,
.campo-imagem--placeholder img {
	object-fit: contain;
	object-position: center;
	background: #e8f1f3;
	width: 100%;
	height: 100%;
}

.campo-imagem--placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 140px;
}

.campo-imagem--placeholder img {
	max-height: 100%;
}

/* --------------------------------------------------------------------------
   Home tablet (700–1023) — city-status já resetado em global ≤1099;
   títulos com respiro e filtros sem buraco do clearfix.
   -------------------------------------------------------------------------- */
@media only screen and (min-width: 700px) and (max-width: 1023px) {
	body.front #page #praias-home h2.pane-title.block-title,
	body.page-home #page #praias-home h2.pane-title.block-title {
		display: block !important;
		margin: 0 0 1rem;
		padding: 0;
		color: #08414d;
		font-size: clamp(1.35rem, 2.8vw, 1.75rem);
		font-weight: 700;
		line-height: 1.25;
		text-align: left;
		text-transform: none;
	}

	body.front #page #content .view-hospedagem,
	body.page-home #page #content .view-hospedagem,
	body.front #page #content .view-servi-os,
	body.page-home #page #content .view-servi-os {
		padding: 2.5rem 5vw 2rem;
	}

	body.front #page #content .view-hospedagem .view-header h2,
	body.page-home #page #content .view-hospedagem .view-header h2,
	body.front #page #content .view-servi-os .view-header h2,
	body.page-home #page #content .view-servi-os .view-header h2 {
		font-size: clamp(1.5rem, 3vw, 1.9rem);
		margin: 0 0 1rem;
		line-height: 1.2;
	}

	/* Filtros: row + wrap; kill clearfix fantasmas (como em #praias-home). */
	body.front #page #praias-home .views-exposed-widgets.clearfix,
	body.page-home #page #praias-home .views-exposed-widgets.clearfix,
	body.front #page #content .view-hospedagem .views-exposed-widgets.clearfix,
	body.page-home #page #content .view-hospedagem .views-exposed-widgets.clearfix,
	body.front #page #content .view-servi-os .views-exposed-widgets.clearfix,
	body.page-home #page #content .view-servi-os .views-exposed-widgets.clearfix,
	body.front #page #content .pane-servi-os .views-exposed-widgets.clearfix,
	body.page-home #page #content .pane-servi-os .views-exposed-widgets.clearfix {
		display: flex !important;
		flex-direction: row !important;
		flex-wrap: wrap;
		align-items: flex-start;
		gap: 0.65rem 0.75rem;
		float: none;
		width: 100%;
		margin: 0 0 1rem;
		padding: 0;
		box-sizing: border-box;
	}

	body.front #page #praias-home .views-exposed-widgets.clearfix:before,
	body.front #page #praias-home .views-exposed-widgets.clearfix:after,
	body.page-home #page #praias-home .views-exposed-widgets.clearfix:before,
	body.page-home #page #praias-home .views-exposed-widgets.clearfix:after,
	body.front #page #content .view-hospedagem .views-exposed-widgets.clearfix:before,
	body.front #page #content .view-hospedagem .views-exposed-widgets.clearfix:after,
	body.page-home #page #content .view-hospedagem .views-exposed-widgets.clearfix:before,
	body.page-home #page #content .view-hospedagem .views-exposed-widgets.clearfix:after,
	body.front #page #content .view-servi-os .views-exposed-widgets.clearfix:before,
	body.front #page #content .view-servi-os .views-exposed-widgets.clearfix:after,
	body.page-home #page #content .view-servi-os .views-exposed-widgets.clearfix:before,
	body.page-home #page #content .view-servi-os .views-exposed-widgets.clearfix:after,
	body.front #page #content .pane-servi-os .views-exposed-widgets.clearfix:before,
	body.front #page #content .pane-servi-os .views-exposed-widgets.clearfix:after,
	body.page-home #page #content .pane-servi-os .views-exposed-widgets.clearfix:before,
	body.page-home #page #content .pane-servi-os .views-exposed-widgets.clearfix:after {
		content: none !important;
		display: none !important;
	}

	body.front #page #praias-home .views-exposed-widget,
	body.page-home #page #praias-home .views-exposed-widget,
	body.front #page #content .view-hospedagem .view-filters .views-exposed-widget,
	body.page-home #page #content .view-hospedagem .view-filters .views-exposed-widget,
	body.front #page #content .view-servi-os .view-filters .views-exposed-widget,
	body.page-home #page #content .view-servi-os .view-filters .views-exposed-widget,
	body.front #page #content .pane-servi-os .view-filters .views-exposed-widget,
	body.page-home #page #content .pane-servi-os .view-filters .views-exposed-widget {
		float: none !important;
		width: auto !important;
		max-width: 100%;
		margin: 0;
		padding: 0;
	}

	body.front #page #content .view-hospedagem .view-filters .views-exposed-widget label,
	body.page-home #page #content .view-hospedagem .view-filters .views-exposed-widget label,
	body.front #page #content .view-servi-os .view-filters .views-exposed-widget label,
	body.page-home #page #content .view-servi-os .view-filters .views-exposed-widget label {
		font-size: 0.85rem;
		margin-bottom: 0.35rem;
	}

	body.front #page #content .view-hospedagem .view-filters #edit-field-tipo-de-hospedagem-tid-wrapper,
	body.page-home #page #content .view-hospedagem .view-filters #edit-field-tipo-de-hospedagem-tid-wrapper,
	body.front #page #content .view-servi-os .view-filters #edit-field-categoria-tid-wrapper,
	body.page-home #page #content .view-servi-os .view-filters #edit-field-categoria-tid-wrapper {
		margin-top: 0 !important;
	}

	body.front #page #content .view-hospedagem .view-filters .views-exposed-widget .form-item .form-type-bef-link a,
	body.page-home #page #content .view-hospedagem .view-filters .views-exposed-widget .form-item .form-type-bef-link a,
	body.front #page #content .view-servi-os .view-filters .views-exposed-widget .form-item .form-type-bef-link a,
	body.page-home #page #content .view-servi-os .view-filters .views-exposed-widget .form-item .form-type-bef-link a,
	body.front #page #content .pane-servi-os .view-filters .views-exposed-widget .form-item .form-type-bef-link a,
	body.page-home #page #content .pane-servi-os .view-filters .views-exposed-widget .form-item .form-type-bef-link a {
		padding: 0.45rem 0.75rem;
		font-size: 0.8rem;
	}
}

/* --------------------------------------------------------------------------
   page-user tablet (700–1023): Menu Administrativo / Meus dados / Meus
   anúncios no mesmo tamanho (anula vw e .first maior do tablet.portrait).
   -------------------------------------------------------------------------- */
@media only screen and (min-width: 700px) and (max-width: 1023px) {
	.page-user #page #content #meu-perfil-left,
	.page-user #page #content #meu-perfil-right {
		width: 100% !important;
		max-width: none !important;
		padding: 0 !important;
		margin: 0 0 1rem !important;
		display: block !important;
		float: none !important;
		box-sizing: border-box !important;
	}

	body.gw2d-area-interna.page-user #page #content #meu-perfil-right,
	body.gw2d-area-interna.page-user #page #content .gw2d-area-interna-main {
		width: 100% !important;
		max-width: none !important;
		padding: 0 !important;
		margin: 0 !important;
	}

	.page-user #page #content #meu-perfil-left ul.menu,
	.page-user #page #content #meu-perfil-left .planos {
		padding: 18px !important;
		margin: 0 0 12px !important;
		box-sizing: border-box;
	}

	.page-user #page #content #meu-perfil-left ul.menu:before,
	.page-user #page #content #meu-perfil-right:before {
		display: block;
		font-size: 1.15rem !important;
		margin: 0 0 1.2rem !important;
		padding: 0 !important;
		line-height: 1.25;
	}

	.page-user #page #content #meu-perfil-left .planos h3 {
		font-size: 1.15rem !important;
		margin: 0 0 0.4rem !important;
	}

	.page-user #page #content #meu-perfil-left .planos label {
		font-size: 1.95rem !important;
	}

	.page-user #page #content #meu-perfil-left ul li a,
	.page-user #page #content #meu-perfil-left ul li.first a,
	.page-user #page #content #meu-perfil-left ul li.menu-item-2324 a,
	.page-user #page #content #meu-perfil-left ul li.menu-item-2323 a,
	.page-user #page #content #meu-perfil-left ul li.menu-item-2325 a,
	.page-user #page #content #meu-perfil-left ul li.menu-item-2326 a {
		font-size: 0.98rem !important;
		padding: 1rem 0 1rem 2rem !important;
		background-position: 0.15rem 1rem !important;
		background-size: 1.15rem !important;
		box-sizing: border-box;
	}

	.page-user #page #content #meu-perfil-left .planos a.btn-edit-plano,
	.page-user #page #content #meu-perfil-left .planos a {
		position: static !important;
		top: auto !important;
		right: auto !important;
		padding: 0.4rem 0.85rem !important;
		font-size: 0.8rem !important;
	}

	.page-user #page #content #meu-perfil-left .planos .status-plano {
		position: static !important;
		top: auto !important;
		right: auto !important;
		bottom: auto !important;
		display: inline-flex;
		margin-top: 0.55rem;
		padding: 0.3rem 0.7rem !important;
		font-size: 0.8rem !important;
	}

	.page-user #page #content section.panel-pane.pane-meus-anuncios,
	.page-user #page #content section.pane-meus-anuncios {
		padding: 1.25rem !important;
		margin: 0 !important;
		box-sizing: border-box;
	}

	.page-user #page #content section.pane-meus-anuncios h2,
	.page-user #page #content .pane-meus-anuncios h2 {
		font-size: 1.15rem !important;
		margin: 0 0 1rem !important;
	}

	.page-user #page #content section.pane-meus-anuncios ul li {
		min-height: 0 !important;
		margin: 0 0 1rem !important;
	}
}

/* --------------------------------------------------------------------------
   Listagens / hubs tablet (700–1023) — Praias, Hospedagem, Serviços, Agenda,
   Mapa, Guia local, Roteiros. Sobrescreve vw agressivo do tablet.portrait.
   -------------------------------------------------------------------------- */
@media only screen and (min-width: 700px) and (max-width: 1023px) {
	/* --- Banners --- */
	.page-praias #page #content .banner-topo-praias,
	.page-cachoeiras #page #content .banner-topo-praias,
	.page-ilhas #page #content .banner-topo-praias,
	.page-hospedagem #page #content .hospedagem-banner-topo,
	.page-servicos #page #content .banner-topo-servicos,
	.page-eventos #page #content .banner-topo-eventos {
		padding: 2rem 5vw 1.5rem !important;
		margin-bottom: 1.25rem !important;
		box-sizing: border-box;
	}

	.page-praias #page #content .banner-topo-praias h2,
	.page-cachoeiras #page #content .banner-topo-praias h2,
	.page-ilhas #page #content .banner-topo-praias h2,
	.page-hospedagem #page #content .hospedagem-banner-topo h2,
	.page-servicos #page #content .banner-topo-servicos h2,
	.page-eventos #page #content .banner-topo-eventos h2,
	.page-servicos #page #content #servicos-title-wrapper h2 {
		margin: 0 0 1rem !important;
		font-size: clamp(1.5rem, 3.2vw, 2rem) !important;
		line-height: 1.2 !important;
	}

	.page-servicos #page #content #servicos-title-wrapper p,
	.page-hospedagem #page #content .hospedagem-banner-topo p:not(.uo-routes-hub__eyebrow),
	.page-servicos #page #content .banner-topo-servicos p:not(.uo-routes-hub__eyebrow) {
		font-size: 0.95rem !important;
		margin: 0 0 1rem !important;
	}

	.page-eventos #page #content .banner-topo-eventos form,
	.page-hospedagem #page #content .hospedagem-banner-topo form,
	.page-servicos #page #content .banner-topo-servicos form,
	.page-praias #page #content .banner-topo-praias form,
	.page-cachoeiras #page #content .banner-topo-praias form,
	.page-ilhas #page #content .banner-topo-praias form {
		width: 100% !important;
		max-width: 100% !important;
		margin: 0.75rem 0 0 !important;
		padding: 1rem 1.1rem !important;
		border-radius: 14px !important;
		box-sizing: border-box;
	}

	.page-servicos #page #content .banner-topo-servicos form {
		margin-top: 0.75rem !important;
	}

	/* Pseudo-label :before do tablet.portrait (top:-8vw) */
	.page-eventos #page #content .banner-topo-eventos form .views-exposed-widgets:before,
	.page-praias #page #content .banner-topo-praias form .views-exposed-widgets:before,
	.page-cachoeiras #page #content .banner-topo-praias form .views-exposed-widgets:before,
	.page-ilhas #page #content .banner-topo-praias form .views-exposed-widgets:before,
	.page-servicos #page #content .banner-topo-servicos form .views-exposed-widgets:before,
	.page-hospedagem #page #content .hospedagem-banner-topo form .views-exposed-widgets:before {
		position: static !important;
		top: auto !important;
		left: auto !important;
		width: auto !important;
		margin: 0 0 0.5rem !important;
		font-size: 0.9rem !important;
		text-align: left !important;
	}

	/* --- Filtros de banner: row + wrap; kill clearfix --- */
	/* (#filtro-servicos-wrapper usa drawer "Mais filtros" mais abaixo) */
	.page-praias #page #content .banner-topo-praias form .views-exposed-widgets,
	.page-cachoeiras #page #content .banner-topo-praias form .views-exposed-widgets,
	.page-ilhas #page #content .banner-topo-praias form .views-exposed-widgets,
	.page-hospedagem #page #content .hospedagem-banner-topo form .views-exposed-widgets,
	.page-servicos #page #content .banner-topo-servicos form .views-exposed-widgets,
	.page-eventos #page #content .banner-topo-eventos form .views-exposed-widgets {
		display: flex !important;
		flex-direction: row !important;
		flex-wrap: wrap !important;
		align-items: flex-end !important;
		justify-content: flex-start !important;
		gap: 0.65rem 0.75rem !important;
		margin: 0 !important;
		float: none !important;
		width: 100% !important;
		box-sizing: border-box;
	}

	.page-praias #page #content .banner-topo-praias form .views-exposed-widgets.clearfix:before,
	.page-praias #page #content .banner-topo-praias form .views-exposed-widgets.clearfix:after,
	.page-cachoeiras #page #content .banner-topo-praias form .views-exposed-widgets.clearfix:before,
	.page-cachoeiras #page #content .banner-topo-praias form .views-exposed-widgets.clearfix:after,
	.page-ilhas #page #content .banner-topo-praias form .views-exposed-widgets.clearfix:before,
	.page-ilhas #page #content .banner-topo-praias form .views-exposed-widgets.clearfix:after,
	.page-hospedagem #page #content .hospedagem-banner-topo form .views-exposed-widgets.clearfix:before,
	.page-hospedagem #page #content .hospedagem-banner-topo form .views-exposed-widgets.clearfix:after,
	.page-servicos #page #content .banner-topo-servicos form .views-exposed-widgets.clearfix:before,
	.page-servicos #page #content .banner-topo-servicos form .views-exposed-widgets.clearfix:after,
	.page-eventos #page #content .banner-topo-eventos form .views-exposed-widgets.clearfix:before,
	.page-eventos #page #content .banner-topo-eventos form .views-exposed-widgets.clearfix:after {
		content: none !important;
		display: none !important;
	}

	.page-praias #page #content .banner-topo-praias form .views-exposed-widget,
	.page-cachoeiras #page #content .banner-topo-praias form .views-exposed-widget,
	.page-ilhas #page #content .banner-topo-praias form .views-exposed-widget,
	.page-hospedagem #page #content .hospedagem-banner-topo form .views-exposed-widget,
	.page-servicos #page #content .banner-topo-servicos form .views-exposed-widget,
	.page-eventos #page #content .banner-topo-eventos form .views-exposed-widget {
		float: none !important;
		display: block !important;
		width: auto !important;
		max-width: 100% !important;
		margin: 0 !important;
		padding: 0 !important;
		flex: 1 1 180px;
		box-sizing: border-box;
	}

	.page-praias #page #content .banner-topo-praias form .views-exposed-widget.views-submit-button,
	.page-cachoeiras #page #content .banner-topo-praias form .views-exposed-widget.views-submit-button,
	.page-ilhas #page #content .banner-topo-praias form .views-exposed-widget.views-submit-button,
	.page-hospedagem #page #content .hospedagem-banner-topo form .views-exposed-widget.views-submit-button,
	.page-servicos #page #content .banner-topo-servicos form .views-exposed-widget.views-submit-button,
	.page-eventos #page #content .banner-topo-eventos form .views-exposed-widget.views-submit-button {
		flex: 0 0 auto !important;
		width: auto !important;
		align-self: flex-end !important;
	}

	.page-praias #page #content .banner-topo-praias form .views-exposed-widget label,
	.page-cachoeiras #page #content .banner-topo-praias form .views-exposed-widget label,
	.page-ilhas #page #content .banner-topo-praias form .views-exposed-widget label,
	.page-hospedagem #page #content .hospedagem-banner-topo form .views-exposed-widget label,
	.page-servicos #page #content .banner-topo-servicos form .views-exposed-widget label,
	.page-eventos #page #content .banner-topo-eventos form .views-exposed-widget label {
		font-size: 0.85rem !important;
		margin: 0 0 0.35rem !important;
	}

	.page-praias #page #content .banner-topo-praias form .views-exposed-widget .select2,
	.page-cachoeiras #page #content .banner-topo-praias form .views-exposed-widget .select2,
	.page-ilhas #page #content .banner-topo-praias form .views-exposed-widget .select2,
	.page-hospedagem #page #content .hospedagem-banner-topo form .views-exposed-widget .select2,
	.page-servicos #page #content .banner-topo-servicos form .views-exposed-widget .select2,
	.page-eventos #page #content .banner-topo-eventos form .views-exposed-widget .select2 {
		width: 100% !important;
		min-width: 160px;
	}

	.page-hospedagem #page #content .hospedagem-banner-topo form .views-exposed-widget select,
	.page-servicos #page #content .banner-topo-servicos form .views-exposed-widget select,
	.page-eventos #page #content .banner-topo-eventos form .views-exposed-widget select {
		width: 100% !important;
		max-width: 100% !important;
		font-size: 0.9rem !important;
		padding: 0.55rem 0.85rem !important;
		background-size: 12px !important;
	}

	.page-praias #page #content .banner-topo-praias form .views-exposed-widget.views-submit-button input,
	.page-cachoeiras #page #content .banner-topo-praias form .views-exposed-widget.views-submit-button input,
	.page-ilhas #page #content .banner-topo-praias form .views-exposed-widget.views-submit-button input,
	.page-hospedagem #page #content .hospedagem-banner-topo form .views-exposed-widget.views-submit-button input,
	.page-servicos #page #content .banner-topo-servicos form .views-exposed-widget.views-submit-button input,
	.page-eventos #page #content .banner-topo-eventos form .views-exposed-widget.views-submit-button input,
	.page-eventos #edit-submit-eventos {
		width: auto !important;
		min-width: 7.5rem;
		max-width: none !important;
		height: auto !important;
		margin: 0 !important;
		padding: 0.65rem 1.25rem !important;
		font-size: 0.9rem !important;
		border-radius: 999px !important;
	}

	.page-praias #page #content .banner-topo-praias .filter-links-style,
	.page-cachoeiras #page #content .banner-topo-praias .filter-links-style,
	.page-ilhas #page #content .banner-topo-praias .filter-links-style,
	.page-mapa #page #content .bloco-filtro .filter-links-style {
		display: flex;
		flex-wrap: wrap;
		gap: 0.45rem;
		margin: 0.75rem 0 0;
		padding: 0;
	}

	.page-praias #page #content .banner-topo-praias .filter-links-style a,
	.page-cachoeiras #page #content .banner-topo-praias .filter-links-style a,
	.page-ilhas #page #content .banner-topo-praias .filter-links-style a,
	.page-mapa #page #content .bloco-filtro .filter-links a {
		margin: 0 !important;
		padding: 0.4rem 0.75rem !important;
		font-size: 0.8rem !important;
	}

	/* --- #filtro-servicos-wrapper: drawer "Mais filtros" (como no phone) --- */
	.page-hospedagem #page #content #filtro-servicos-wrapper,
	.page-servicos #page #content #filtro-servicos-wrapper,
	.page-hospedagem #filtro-servicos-wrapper,
	.page-servicos #filtro-servicos-wrapper {
		width: 100% !important;
		max-width: 100% !important;
		margin: 0 0 1.25rem !important;
		padding: 0 !important;
		background: transparent !important;
		box-sizing: border-box;
	}

	.page-hospedagem #page #content #filtro-servicos-wrapper > .btn-filtro-hospedagem,
	.page-servicos #page #content #filtro-servicos-wrapper > .btn-filtro-servicos,
	.page-hospedagem #filtro-servicos-wrapper > .btn-filtro-hospedagem,
	.page-servicos #filtro-servicos-wrapper > .btn-filtro-servicos {
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
		width: calc(100% - 10vw) !important;
		max-width: calc(100% - 10vw) !important;
		min-height: 48px !important;
		height: auto !important;
		margin: 0.75rem 5vw 1rem !important;
		padding: 12px 16px !important;
		border: 0 !important;
		border-radius: 10px !important;
		background: #00aac8 !important;
		background-image: none !important;
		color: #fff !important;
		font-size: 1rem !important;
		font-weight: 700 !important;
		text-align: center !important;
		text-decoration: none !important;
		cursor: pointer;
		box-sizing: border-box !important;
	}

	.page-hospedagem #page #content #filtro-servicos-wrapper > .btn-filtro-hospedagem.is-open,
	.page-servicos #page #content #filtro-servicos-wrapper > .btn-filtro-servicos.is-open,
	.page-hospedagem #filtro-servicos-wrapper > .btn-filtro-hospedagem.is-open,
	.page-servicos #filtro-servicos-wrapper > .btn-filtro-servicos.is-open {
		background: #08414d !important;
	}

	.page-hospedagem #page #content #filtro-servicos-wrapper > form,
	.page-servicos #page #content #filtro-servicos-wrapper > form,
	.page-hospedagem #filtro-servicos-wrapper > form,
	.page-servicos #filtro-servicos-wrapper > form {
		width: calc(100% - 10vw) !important;
		max-width: calc(100% - 10vw) !important;
		margin: 0 5vw 1rem !important;
		padding: 0 !important;
		box-sizing: border-box !important;
	}

	.page-hospedagem #page #content #filtro-servicos-wrapper .views-exposed-form .views-exposed-widgets.clearfix,
	.page-servicos #page #content #filtro-servicos-wrapper .views-exposed-form .views-exposed-widgets.clearfix,
	.page-hospedagem #filtro-servicos-wrapper .views-exposed-form .views-exposed-widgets.clearfix,
	.page-servicos #filtro-servicos-wrapper .views-exposed-form .views-exposed-widgets.clearfix {
		display: flex !important;
		flex-direction: column !important;
		flex-wrap: nowrap !important;
		align-items: stretch !important;
		gap: 0.5rem !important;
		width: 100% !important;
		margin: 0 !important;
		padding: 0 !important;
	}

	.page-hospedagem #page #content #filtro-servicos-wrapper .views-exposed-widget,
	.page-servicos #page #content #filtro-servicos-wrapper .views-exposed-widget,
	.page-hospedagem #filtro-servicos-wrapper .views-exposed-widget,
	.page-servicos #filtro-servicos-wrapper .views-exposed-widget {
		flex: none !important;
		width: 100% !important;
		max-width: 100% !important;
		margin: 0 !important;
	}

	.page-hospedagem #page #content #filtro-servicos-wrapper .uo-filter-group,
	.page-servicos #page #content #filtro-servicos-wrapper .uo-filter-group,
	.page-hospedagem #filtro-servicos-wrapper .uo-filter-group,
	.page-servicos #filtro-servicos-wrapper .uo-filter-group {
		height: auto !important;
		margin: 0 0 0.5rem !important;
		padding: 0 !important;
		border: 1px solid rgba(8, 65, 77, 0.12);
		border-radius: 10px;
		background: #fff;
		box-sizing: border-box;
	}

	.page-hospedagem #page #content #filtro-servicos-wrapper .uo-filter-group > label,
	.page-servicos #page #content #filtro-servicos-wrapper .uo-filter-group > label,
	.page-hospedagem #filtro-servicos-wrapper .uo-filter-group > label,
	.page-servicos #filtro-servicos-wrapper .uo-filter-group > label {
		display: flex !important;
		align-items: center !important;
		justify-content: space-between !important;
		min-height: 44px !important;
		margin: 0 !important;
		padding: 10px 13px !important;
		font-size: 0.9rem !important;
		font-weight: 700 !important;
		color: #08414d !important;
		cursor: pointer;
	}

	.page-hospedagem #page #content #filtro-servicos-wrapper .uo-filter-group > label:after,
	.page-servicos #page #content #filtro-servicos-wrapper .uo-filter-group > label:after,
	.page-hospedagem #filtro-servicos-wrapper .uo-filter-group > label:after,
	.page-servicos #filtro-servicos-wrapper .uo-filter-group > label:after {
		content: "+" !important;
		font-size: 1.25rem !important;
		line-height: 1 !important;
		flex: 0 0 auto;
	}

	.page-hospedagem #page #content #filtro-servicos-wrapper .uo-filter-group.is-open > label:after,
	.page-servicos #page #content #filtro-servicos-wrapper .uo-filter-group.is-open > label:after,
	.page-hospedagem #filtro-servicos-wrapper .uo-filter-group.is-open > label:after,
	.page-servicos #filtro-servicos-wrapper .uo-filter-group.is-open > label:after {
		content: "−" !important;
	}

	.page-hospedagem #page #content #filtro-servicos-wrapper .uo-filter-group .views-widget,
	.page-servicos #page #content #filtro-servicos-wrapper .uo-filter-group .views-widget,
	.page-hospedagem #filtro-servicos-wrapper .uo-filter-group .views-widget,
	.page-servicos #filtro-servicos-wrapper .uo-filter-group .views-widget {
		padding: 0 13px 12px !important;
	}

	.page-hospedagem #page #content #filtro-servicos-wrapper .views-submit-button,
	.page-servicos #page #content #filtro-servicos-wrapper .views-submit-button {
		flex: none !important;
		width: 100% !important;
		align-self: stretch !important;
	}

	.page-hospedagem #page #content #filtro-servicos-wrapper .views-submit-button input,
	.page-servicos #page #content #filtro-servicos-wrapper .views-submit-button input {
		width: 100% !important;
		min-width: 0 !important;
		min-height: 44px !important;
		padding: 0.65rem 1.25rem !important;
		font-size: 0.95rem !important;
		border-radius: 999px !important;
	}

	.page-hospedagem #filtro-servicos-wrapper .uo-filter-count,
	.page-servicos #filtro-servicos-wrapper .uo-filter-count {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-width: 22px;
		height: 22px;
		margin-left: 8px;
		padding: 0 6px;
		border-radius: 999px;
		background: #fff;
		color: #08758a;
		font-size: 11px;
	}

	/* --- Grids 2 colunas --- */
	.page-praias #page #praias-home,
	.page-cachoeiras #page #praias-home,
	.page-ilhas #page #praias-home {
		padding: 1.25rem 5vw 2rem !important;
	}

	.page-praias #page #praias-home h2.pane-title.block-title,
	.page-cachoeiras #page #praias-home h2.pane-title.block-title,
	.page-ilhas #page #praias-home h2.pane-title.block-title {
		font-size: clamp(1.35rem, 2.8vw, 1.75rem) !important;
		margin: 0 0 1rem !important;
	}

	.page-praias #page #praias-home .group-praias ul,
	.page-cachoeiras #page #praias-home .group-praias ul,
	.page-ilhas #page #praias-home .group-praias ul {
		display: flex !important;
		flex-wrap: wrap !important;
		gap: 1rem 2%;
		margin: 0;
		padding: 0;
		list-style: none;
	}

	.page-praias #page #praias-home .group-praias ul li,
	.page-cachoeiras #page #praias-home .group-praias ul li,
	.page-ilhas #page #praias-home .group-praias ul li {
		float: none !important;
		width: 49% !important;
		max-width: 49% !important;
		margin: 0 !important;
		box-sizing: border-box;
	}

	.page-hospedagem #page #content .view-hospedagem {
		padding: 1.5rem 5vw 2rem !important;
	}

	.page-hospedagem #page #content .view-hospedagem .view-content ul {
		display: flex !important;
		flex-wrap: wrap !important;
		gap: 1rem 2%;
	}

	.page-hospedagem #page #content .view-hospedagem .view-content ul li {
		float: none !important;
		width: 49% !important;
		max-width: 49% !important;
		margin: 0 !important;
		box-sizing: border-box;
	}

	.page-servicos #page #content .view-servi-os {
		padding: 1.5rem 5vw 2rem !important;
	}

	.page-servicos #page #content .view-servi-os .view-content ul,
	.page-servicos .pane-servi-os-panel-pane-1 .view-servi-os .view-content ul,
	.view-servi-os.view-display-id-panel_pane_1 .view-content ul {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 1rem !important;
	}

	.page-servicos #page #content .view-servi-os .view-content ul li,
	.page-servicos .pane-servi-os-panel-pane-1 .view-servi-os .view-content ul li,
	.view-servi-os.view-display-id-panel_pane_1 .view-content ul li {
		width: auto !important;
		max-width: none !important;
		margin: 0 !important;
		float: none !important;
	}

	.page-eventos #page #content .view-eventos .view-content ul {
		display: flex !important;
		flex-wrap: wrap !important;
		gap: 1rem 2%;
	}

	.page-eventos #page #content .view-eventos .view-content ul li {
		float: none !important;
		width: 49% !important;
		max-width: 49% !important;
		margin: 0 0 1rem !important;
		box-sizing: border-box;
	}

	/* --- Mapa / Explorar --- */
	.page-mapa #page #content .bloco-filtro {
		position: relative !important;
		width: auto !important;
		max-width: 100%;
		left: auto !important;
		top: auto !important;
		margin: 1rem 5vw !important;
		padding: 1rem !important;
		box-sizing: border-box;
	}

	.page-mapa #page #content .bloco-filtro .views-exposed-widgets {
		display: flex !important;
		flex-direction: row !important;
		flex-wrap: wrap !important;
		align-items: flex-end;
		gap: 0.65rem 0.75rem;
	}

	.page-mapa #page #content .bloco-filtro .views-exposed-widget {
		float: none !important;
		width: auto !important;
		flex: 1 1 200px;
		margin: 0 !important;
	}

	.page-mapa #page #content .bloco-filtro .views-exposed-widget input {
		width: 100% !important;
		font-size: 0.9rem !important;
		padding: 0.6rem 0.9rem !important;
	}

	.page-mapa #page #content .bloco-filtro .views-exposed-widget.views-submit-button {
		flex: 0 0 auto !important;
		width: auto !important;
	}

	.page-mapa #page #content .bloco-filtro .views-exposed-widget.views-submit-button input {
		width: auto !important;
		font-size: 0.9rem !important;
		padding: 0.65rem 1.2rem !important;
	}

	.page-mapa #page #content #loja-credenciada-slide .view-loja-credenciada {
		padding: 1rem 0 0 !important;
	}

	.page-mapa #page #content #loja-credenciada-slide .view-loja-credenciada .view-footer {
		width: 100% !important;
		height: min(42vw, 360px) !important;
		min-height: 280px !important;
	}

	.page-mapa #page #content #loja-credenciada-slide .view-loja-credenciada .view-content {
		width: auto !important;
		max-width: 100%;
		height: auto !important;
		max-height: 420px;
		margin: 0 5vw 1.25rem !important;
		padding: 0 0 1rem !important;
		overflow-y: auto;
	}

	.page-mapa #page #content #loja-credenciada-slide .view-loja-credenciada .view-content ul li {
		width: 100% !important;
		padding: 0.85rem 0 !important;
	}

	.page-mapa #page #content #loja-credenciada-slide .view-loja-credenciada .view-content ul li .views-field-title .field-content {
		font-size: 1rem !important;
		margin-bottom: 0.25rem !important;
	}

	.page-mapa #page #content #loja-credenciada-slide .view-loja-credenciada .view-content ul li .views-field-field-descricao-mapa .field-content,
	.page-mapa #page #content #loja-credenciada-slide .view-loja-credenciada .view-content ul li .views-field-field-endereco .field-content,
	.page-mapa #page #content #loja-credenciada-slide .view-loja-credenciada .view-content ul li .views-field-field-regiao .field-content {
		font-size: 0.875rem !important;
		margin-bottom: 0.35rem !important;
	}

	.page-mapa #page #content #loja-credenciada-slide .view-loja-credenciada .view-content ul li .views-field-field-endereco .field-content {
		padding-left: 1.25rem !important;
	}

	.page-mapa #page #content #loja-credenciada-slide .view-loja-credenciada .view-content ul li .views-field-field-endereco .field-content:before {
		width: 14px !important;
		height: 14px !important;
		background-size: 14px !important;
		margin-right: 0.35rem !important;
		margin-left: -1.25rem !important;
	}

	.page-mapa #page #content #loja-credenciada-slide .view-loja-credenciada .view-content ul li .views-field-view-node a {
		font-size: 0.85rem !important;
		padding: 0.45rem 0.9rem !important;
	}

	/* --- Guia local (listagem). Detalhe editorial: bloco :not(.uo-page-cameras-live) acima. --- */
	.page-informacoes-de-ubatuba #page #content .node-content {
		overflow-x: hidden;
		padding: 1.25rem 5vw 2.5rem !important;
		box-sizing: border-box;
	}

	.page-informacoes-de-ubatuba #page #content h1.nome {
		font-size: clamp(1.5rem, 3vw, 2rem) !important;
		line-height: 1.2 !important;
		margin: 0 0 0.75rem !important;
	}

	.page-informacoes-de-ubatuba #page #content .descricao p {
		font-size: 0.95rem !important;
		line-height: 1.5 !important;
	}

	/* --- Roteiros --- */
	.page-roteiros .uo-routes-hub,
	.uo-routes-hub {
		width: min(1180px, 92%) !important;
		padding: 1.75rem 0 5.5rem !important;
	}

	.page-roteiros .uo-routes-hub__hero,
	.uo-routes-hub__hero {
		padding: 1.5rem 1.35rem !important;
		margin-bottom: 1.35rem !important;
	}

	.page-roteiros .uo-routes-hub__hero h1,
	.uo-routes-hub__hero h1 {
		font-size: clamp(1.65rem, 3.5vw, 2.25rem) !important;
	}

	.page-roteiros .uo-routes-hub__plans,
	.page-roteiros .uo-routes-hub__articles,
	.uo-routes-hub__plans,
	.uo-routes-hub__articles {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 1rem !important;
	}

	.page-roteiros .uo-routes-plan:first-child,
	.uo-routes-plan:first-child {
		grid-column: auto !important;
	}

	.page-roteiros .uo-routes-plan,
	.uo-routes-plan {
		min-height: 0 !important;
		padding: 1.15rem !important;
	}

	/* --- Planejar (padding inferior + chips) --- */
	.page-planejar .uo-planejar,
	.uo-planejar {
		padding: 1.75rem 5vw 5.5rem !important;
	}

	.page-planejar .uo-planejar__chips,
	.uo-planejar__chips {
		gap: 0.5rem !important;
	}

	.page-planejar .uo-planejar__actions,
	.uo-planejar__actions {
		position: static !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
		padding: 1.25rem 0 0 !important;
		background: none !important;
		align-items: flex-start !important;
	}
}

/* --------------------------------------------------------------------------
   Termos de Uso + Fale Conosco — mesmo rail das páginas de informações
   (content-width 1200px + coluna de leitura ~60rem). Neutraliza padding vw.
   -------------------------------------------------------------------------- */

body.page-termos-de-uso #page #content .content-width,
body.page-fale-conosco #page #content .content-width {
	box-sizing: border-box;
	max-width: 1200px;
	margin: 0 auto;
	padding: clamp(1.25rem, 3vw, 2.5rem) clamp(1rem, 4vw, 2rem) clamp(2.5rem, 5vw, 4rem) !important;
}

/* Coluna de leitura / formulário centrada (equivalente ao .node-content das infos). */
body.page-termos-de-uso #page #content .panel-display,
body.page-termos-de-uso #page #content .panel-1col,
body.page-termos-de-uso #page #content .panel-panel,
body.page-fale-conosco #page #content .panel-display,
body.page-fale-conosco #page #content .panel-1col,
body.page-fale-conosco #page #content .panel-panel {
	width: 100%;
	max-width: 60rem;
	margin: 0 auto;
	box-sizing: border-box;
}

body.page-termos-de-uso #page #content .pane-node .block-inner.clearfix,
body.page-termos-de-uso #page #content .pane-node .block-content,
body.page-fale-conosco #page #content .pane-webform-client-block-56 .block-inner.clearfix,
body.page-fale-conosco #page #content #block-title-page .block-inner.clearfix {
	width: 100%;
	max-width: 100%;
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

/* —— Termos (mesmo casco visual do Fale Conosco) —— */
/* Título só no H1 (uo_page_heading); o pane-title do painel duplicava o texto. */
body.page-termos-de-uso #page #content h2.pane-title {
	display: none !important;
}

body.page-termos-de-uso #page #content #newslatter-block,
body.page-termos-de-uso #page #content #block-block-9,
body.page-termos-de-uso #page #content .pane-block-9 {
	display: none !important;
}

body.page-termos-de-uso #page #content h1,
body.page-termos-de-uso #page #content h1.page-title,
body.page-termos-de-uso #page #content .uo_page_heading,
body.page-termos-de-uso #page #content .uo-page-heading {
	display: block;
	max-width: 60rem;
	margin: 0 auto 1.15rem !important;
	padding: 0 !important;
	color: #08414d !important;
	font-size: clamp(1.75rem, 3.5vw, 2.5rem) !important;
	font-weight: 800 !important;
	line-height: 1.15 !important;
	letter-spacing: -0.02em;
	text-align: left !important;
	text-transform: none !important;
	font-family: inherit !important;
}

body.page-termos-de-uso #page #content .pane-node {
	max-width: 60rem;
	margin: 0 auto;
}

body.page-termos-de-uso #page #content .pane-node .block-inner.clearfix,
body.page-termos-de-uso #page #content .pane-node .block-content,
body.page-termos-de-uso #page #content .descricao {
	padding: 0 !important;
	margin: 0 !important;
	width: 100% !important;
	max-width: 100% !important;
	box-sizing: border-box;
}

body.page-termos-de-uso #page #content .descricao h2,
body.page-termos-de-uso #page #content .descricao h3,
body.page-termos-de-uso #page #content .descricao h4 {
	margin: 1.5rem 0 0.65rem !important;
	padding: 0 !important;
	color: #00aac8 !important;
	font-family: inherit !important;
	font-size: clamp(1.15rem, 2vw, 1.35rem) !important;
	font-weight: 700 !important;
	line-height: 1.25 !important;
	text-transform: none !important;
	text-align: left !important;
}

body.page-termos-de-uso #page #content .descricao h2:first-child,
body.page-termos-de-uso #page #content .descricao h3:first-child {
	margin-top: 0 !important;
}

body.page-termos-de-uso #page #content .descricao p,
body.page-termos-de-uso #page #content .descricao li {
	margin: 0 0 0.9rem !important;
	padding: 0 !important;
	color: #334155 !important;
	font-size: 1.05rem !important;
	line-height: 1.65 !important;
	text-align: left !important;
}

body.page-termos-de-uso #page #content .descricao ul,
body.page-termos-de-uso #page #content .descricao ol {
	margin: 0 0 1rem !important;
	padding-left: 1.25rem !important;
}

@media only screen and (max-width: 1023px) {
	body.page-termos-de-uso #page #content h1.page-title {
		margin-top: 0 !important;
	}

	body.page-termos-de-uso #page #content .descricao {
		padding: 0 !important;
	}

	body.page-termos-de-uso #page #content .descricao h2,
	body.page-termos-de-uso #page #content .descricao h3 {
		font-size: clamp(1.15rem, 4vw, 1.35rem) !important;
		margin: 1.35rem 0 0.55rem !important;
	}

	body.page-termos-de-uso #page #content .descricao p,
	body.page-termos-de-uso #page #content .descricao li {
		font-size: 1.02rem !important;
		margin-bottom: 0.85rem !important;
	}
}

/* —— Fale Conosco —— */
body.page-fale-conosco #content .content-width #block-title-page {
	display: block;
	padding: 0 0 1.5rem !important;
	text-align: left !important;
	max-width: 60rem;
	margin: 0 auto;
	box-sizing: border-box;
}

body.page-fale-conosco #content .content-width #block-title-page .block-title h1 {
	margin: 0 0 0.65rem !important;
	padding: 0 !important;
	color: #08414d !important;
	font-size: clamp(1.75rem, 3.5vw, 2.5rem) !important;
	font-weight: 800 !important;
	line-height: 1.15 !important;
	letter-spacing: -0.02em;
	text-align: left !important;
	text-transform: none !important;
}

body.page-fale-conosco #content .content-width #block-title-page .block-title h1:after {
	display: none !important;
}

body.page-fale-conosco #content .content-width #block-title-page .block-title p {
	margin: 0 !important;
	color: #64748b !important;
	font-size: 1.05rem !important;
	line-height: 1.55 !important;
}

body.page-fale-conosco #page #content .pane-webform-client-block-56 {
	padding: 0 !important;
	width: 100% !important;
	max-width: 60rem;
	margin: 0 auto;
	display: block;
	box-sizing: border-box;
}

body.page-fale-conosco #page #content .pane-webform-client-block-56 .form-item {
	display: block !important;
	width: 100% !important;
	margin: 0 0 1.15rem !important;
	text-align: left;
	box-sizing: border-box;
}

body.page-fale-conosco #page #content .pane-webform-client-block-56 .form-item label {
	position: static !important;
	display: block;
	margin: 0 0 0.35rem;
	padding: 0 !important;
	height: auto;
	width: auto;
	font-size: 0.92rem !important;
	font-weight: 600 !important;
	color: #0f172a !important;
}

body.page-fale-conosco #page #content .pane-webform-client-block-56 .form-item textarea,
body.page-fale-conosco #page #content .pane-webform-client-block-56 .form-item select,
body.page-fale-conosco #page #content .pane-webform-client-block-56 .form-item input {
	background-color: #fff !important;
	width: 100% !important;
	height: auto !important;
	min-height: 2.75rem;
	border: 1px solid #e2e8f0 !important;
	padding: 0.7rem 0.9rem !important;
	text-align: left;
	border-radius: 10px !important;
	font-size: 1rem !important;
	line-height: 1.4;
	box-sizing: border-box;
	color: #0f172a;
}

body.page-fale-conosco #page #content .pane-webform-client-block-56 .form-item select {
	background-color: #fff !important;
	background-size: 0.75rem !important;
	padding-right: 2.25rem !important;
}

body.page-fale-conosco #page #content .pane-webform-client-block-56 .form-item.webform-component--mensagem,
body.page-fale-conosco #page #content .pane-webform-client-block-56 .form-item textarea {
	width: 100% !important;
}

body.page-fale-conosco #page #content .pane-webform-client-block-56 .form-item textarea {
	min-height: 9rem !important;
	height: auto !important;
	resize: vertical;
}

body.page-fale-conosco #page #content .pane-webform-client-block-56 .form-actions {
	display: flex !important;
	justify-content: flex-start;
	width: 100%;
	margin: 0.5rem 0 0;
	text-align: left;
}

body.page-fale-conosco #page #content .pane-webform-client-block-56 .form-actions input {
	border: 0 !important;
	padding: 0.75rem 1.5rem !important;
	background: #00aac8 !important;
	color: #fff !important;
	display: inline-block !important;
	width: auto !important;
	min-width: 10rem;
	font-size: 1rem !important;
	font-weight: 600 !important;
	height: auto !important;
	border-radius: 10px !important;
	cursor: pointer;
	line-height: 1.3;
}

body.page-fale-conosco #page #content .pane-webform-client-block-56 .form-actions input:hover {
	background: #0096b0 !important;
}

/* Mapa / panes extras: acompanham a coluna */
body.page-fale-conosco #page #content .pane-gw2d-gmaps-block,
body.page-fale-conosco #page #content .pane-gw2d-gw2d-contato-info-block {
	max-width: 60rem;
	margin: 1.5rem auto 0;
	padding: 0;
	box-sizing: border-box;
}

@media only screen and (max-width: 699px) {
	body.page-termos-de-uso #page #content .content-width,
	body.page-fale-conosco #page #content .content-width {
		padding-left: 4vw !important;
		padding-right: 4vw !important;
	}

	body.page-fale-conosco #page #content .pane-webform-client-block-56 .form-actions {
		justify-content: stretch;
	}

	body.page-fale-conosco #page #content .pane-webform-client-block-56 .form-actions input {
		width: 100% !important;
	}
}
