/* ─── RESET DE APOIO ─────────────────────────── */
.wp-block-button__link { border-radius: 0 !important; }

:root {
	--nhpn-ease: cubic-bezier(0.2, 0.8, 0.2, 1);
}

/* Transição padrão pra QUALQUER link ou botão do site. Antes disso, boa
   parte dos estados de hover (cor, fundo, borda) trocavam de uma vez, sem
   suavização — ficava brusco. Cobre cor/fundo/borda/opacidade, que é o que
   a maioria dos estilos de hover do tema muda; onde já existe uma transição
   mais específica declarada na própria classe (ex: zoom de imagem), aquela
   continua valendo por cima dessa (regra mais específica ganha). */
a,
button,
.wp-block-button__link {
	transition: color 0.3s var(--nhpn-ease), background-color 0.3s var(--nhpn-ease), border-color 0.3s var(--nhpn-ease), opacity 0.3s var(--nhpn-ease);
}

/* Transição suave na troca de página — recurso nativo do navegador (View
   Transitions API), sem precisar de JavaScript. Em navegadores que ainda
   não suportam, a navegação continua normal, sem erro e sem crossfade —
   é um reforço visual, não uma dependência. */
@view-transition {
	navigation: auto;
}

::view-transition-old(root),
::view-transition-new(root) {
	animation-duration: 0.35s;
	animation-timing-function: var(--nhpn-ease);
}

/* ─── REVEAL DE ENTRADA (scroll) ─────────────────
   Padrão do design system do cliente: cards, botões e títulos de seção da
   home entram com fade + leve subida (30px) ao aparecer na viewport,
   revelado uma vez só. A marcação "data-reveal" é adicionada via JS
   (assets/js/reveal.js), não escrita à mão em cada pattern. */
[data-reveal] {
	opacity: 0;
	transform: translateY(30px);
	transition: opacity 1.2s var(--nhpn-ease), transform 1.2s var(--nhpn-ease);
	will-change: opacity, transform;
}

[data-reveal].is-visible {
	opacity: 1;
	transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
	[data-reveal] {
		opacity: 1;
		transform: none;
		transition: none;
	}
}

/* O WordPress aplica um padding lateral padrão (1.25em 2.375em, ~38px) em
   qualquer bloco com cor de fundo (".has-background"), pra texto não colar
   na borda. Nossas seções controlam o próprio respiro interno por dentro
   (nos grupos filhos), então esse padding lateral do bloco raiz atrapalha
   o full-bleed. Zera pra todo bloco de fundo do tema. */
.wp-block-group.has-background,
.wp-block-template-part.has-background {
	padding-left: 0 !important;
	padding-right: 0 !important;
}

/* .pagina-conteudo-wrap (page.html) nao declara mais padding proprio —
   cada pattern cuida do respiro na propria secao. Sem isso, o padding-top/
   bottom padrao do WP pra ".has-background" (1.25em) reaparece e cria uma
   tarja da cor de fundo do wrap entre a ultima secao e o rodape. */
.pagina-conteudo-wrap.has-background {
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}

/* ─── PÁGINAS LEGAIS (Política de Privacidade / Termos e Condições) ───
   IMPORTANTE: esse padding NÃO pode ficar numa regra genérica em cima de
   ".wp-block-post-content" — isso afeta QUALQUER página que usa page.html
   (Sobre o Hotel, Experiências, Atendimento...), que já tem o próprio
   respiro definido dentro de cada pattern, causando padding duplicado
   (vãos extras entre seções e antes do rodapé). Cada página cuida do
   próprio respiro — aqui, via ".pagina-legal" na própria página, igual
   qualquer outro pattern do site. */
.pagina-legal {
	padding-top: 64px;
	padding-bottom: 96px;
	padding-left: 48px;
	padding-right: 48px;
}

@media (max-width: 640px) {
	.pagina-legal {
		padding-left: 24px;
		padding-right: 24px;
	}
}
.pagina-legal__label {
	display: inline-block;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: rgba(44, 42, 38, 0.5);
	margin-bottom: 24px;
}

.pagina-legal__resumo,
.pagina-legal__contato {
	border-left: 3px solid #5f6754;
	background: rgba(95, 103, 84, 0.06);
	padding: 20px 24px;
	margin: 8px 0 40px;
}

.pagina-legal__resumo p,
.pagina-legal__contato p {
	margin: 0;
}

.pagina-legal__resumo p + p,
.pagina-legal__contato p + p {
	margin-top: 12px;
}

.pagina-legal__indice {
	background: rgba(44, 42, 38, 0.03);
	border: 1px solid rgba(44, 42, 38, 0.12);
	padding: 24px 28px;
	margin: 0 0 48px;
}

.pagina-legal__indice p {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	margin: 0 0 12px;
	color: rgba(44, 42, 38, 0.6);
}

.pagina-legal__indice ul {
	margin: 0;
	padding-left: 20px;
	columns: 2;
	column-gap: 32px;
}

.pagina-legal__indice li {
	break-inside: avoid;
	margin-bottom: 8px;
}

.pagina-legal__indice a {
	text-decoration: none;
	border-bottom: 1px solid rgba(44, 42, 38, 0.25);
}

.pagina-legal__indice a:hover {
	border-bottom-color: currentColor;
}

@media (max-width: 640px) {
	.pagina-legal__indice ul {
		columns: 1;
	}
}

.wp-block-post-content h2[id] {
	scroll-margin-top: 100px;
}

/* Itens de grid/Query Loop não devem ter margem entre si — o espaçamento
   já vem do "gap" do container. Sem isso, só o 1º item de cada grid fica
   sem a margem padrão do WordPress entre blocos, e os outros ficam mais
   baixos que o primeiro, desalinhando linhas/imagens/cards que deveriam
   começar todos na mesma altura. */
.wp-block-post-template > li,
.wp-block-post-template.wp-block-post-template-is-layout-grid > li,
.acomodacoes__item,
.comodidades__item,
.cafe__feature,
.eventos__feature {
	margin-top: 0 !important;
}

/* Evita que a margem do primeiro bloco "vaze" pra cima do body via
   colapso de margem (cria um novo contexto de formatação em bloco). */
body {
	display: flow-root;
	/* "100vw" (usado nas secoes full-bleed) inclui a largura da barra de
	   rolagem vertical, entao qualquer secao com width:100vw sobra alguns
	   pixels pra direita da viewport visivel e cria scroll horizontal.
	   overflow-x:hidden corta essa sobra invisivel sem afetar o layout. */
	overflow-x: hidden;
}

.wp-site-blocks,
.wp-site-blocks > *:first-child {
	margin-top: 0 !important;
}

/* O header agora é "fixed" e sai do fluxo normal (vira uma caixa de
   altura zero ali). Isso faz o <main>, em TODOS os templates, herdar a
   margem padrão entre blocos (blockGap) como se não fosse o primeiro
   elemento visível, criando uma faixa vazia no topo da página. */
.wp-site-blocks > main {
	margin-top: 0 !important;
}

/* Seções de página (patterns como hero, acomodações etc.) não devem ter
   espaço entre si — cada seção controla seu próprio respiro por dentro
   via padding. Sem isso, o WordPress aplica a margem padrão entre blocos
   (blockGap) entre as seções, abrindo uma fresta com a cor de fundo padrão. */
main.site-main > *,
.wp-block-post-content > * {
	margin-top: 0 !important;
}

/* wp:post-content nas páginas simples (page.html) usa layout "constrained",
   que não gera a quebra de largura automática do WordPress pra blocos
   alignfull dentro do CONTEÚDO editável da página (diferente de seções
   fixas em arquivo de template, que ficam fora desse wrapper e já saem
   full-bleed sozinhas). Sem isso, toda seção alignfull vinda de um pattern
   de conteúdo (sobre-numeros, experiencias-grid etc.) fica presa aos
   720px do texto normal. Regra genérica cobre qualquer seção alignfull
   atual ou futura, sem precisar de ajuste caso a caso. */
.wp-block-post-content > .alignfull {
	width: calc(100vw - 96px);
	margin-left: calc(50% - 50vw + 48px);
	margin-right: calc(50% - 50vw + 48px);
}

@media (max-width: 900px) {
	.wp-block-post-content > .alignfull {
		width: calc(100vw - 40px);
		margin-left: calc(50% - 50vw + 20px);
		margin-right: calc(50% - 50vw + 20px);
	}
}

@media (max-width: 780px) {
	/* Padroniza o respiro vertical de todas as seções (home, Experiências,
	   Sobre o Hotel, Atendimento etc.) no mobile — sobrescreve o padding-top/
	   bottom inline de cada seção, que varia muito de pattern pra pattern
	   (75px, 100px, 120px, 160px...). */
	.wp-block-post-content > .alignfull {
		padding-top: 60px !important;
		padding-bottom: 60px !important;
	}
}

/* Modificador pra seções que devem tocar as duas bordas da tela, sem o
   respiro lateral de 48px/24px do alignfull padrão — usar em seções de
   fundo escuro/full-bleed que não podem deixar a cor de fundo do body
   aparecer nas laterais. */
.wp-block-post-content > .alignfull.secao-full-bleed {
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}

/* Esconde o link de acessibilidade "Pular para o conteúdo" até ele
   receber foco via teclado — sem isso ele aparece como texto normal,
   empurrando o topo da página e criando uma faixa em branco. */
.skip-link.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important;
}

.skip-link.screen-reader-text:focus {
	background-color: #f3f0ec;
	color: #2c2a26;
	display: block;
	clip: auto !important;
	clip-path: none;
	height: auto;
	width: auto;
	left: 8px;
	top: 8px;
	padding: 12px 20px;
	z-index: 999999;
}

/* ─── SITE HEADER ─────────────────────────────── */
.site-header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	width: 100%;
	z-index: 100;
	background: transparent;
	transition: background .4s cubic-bezier(0.2, 0.8, 0.2, 1), backdrop-filter .4s;
}

.site-header.is-scrolled {
	background: rgba(20, 24, 28, 0.65);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
	box-shadow: 0 1px 0 rgba(255, 255, 255, 0.04), 0 4px 24px rgba(0, 0, 0, 0.3);
}

.site-header__inner {
	display: grid !important;
	grid-template-columns: 1fr auto 1fr;
	grid-template-rows: 80px;
	align-items: center;
	height: 80px;
	padding: 0 48px !important;
}

.site-header__nav .wp-block-navigation__container {
	gap: 36px;
}

.site-header__nav a {
	color: rgba(255, 255, 255, .7);
}

.site-header-nav-left,
.site-header-nav-right {
	width: 100%;
	margin-left: 0 !important;
	margin-right: 0 !important;
	/* O WP aplica margin-block-start via fallback de blockGap
	   (":where(.is-layout-constrained) > *") em quem nao e o
	   primeiro filho do header — zera aqui pra nao desalinhar
	   verticalmente o menu da direita. */
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}

.site-header-nav-right {
	justify-self: end;
}

.site-header__logo {
	justify-self: center;
	display: flex;
	align-items: center;
	margin-top: 0 !important;
}

.site-header__logo a {
	display: flex;
	align-items: center;
}

.site-header__logo img {
	display: block;
	height: 45px;
	width: auto;
}

.site-header .hamburger {
	display: none;
}

/* ─── MOBILE BOTTOM BAR ────────────────────────── */
/* Escondida por padrao (traduzida pra baixo da viewport) e revelada via JS
   somente depois de rolar 100px (classe "is-visible", ver header.js) —
   igual ao header, ela nao aparece na primeira dobra. */
.mobile-bottom-bar {
	display: none;
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 100;
	background: #cbc0ad;
	align-items: center;
	justify-content: center;
	gap: 0;
	padding: 8px;
	transform: translateY(100%);
	opacity: 0;
	transition: transform .5s cubic-bezier(0.2, 0.8, 0.2, 1), opacity .4s cubic-bezier(0.2, 0.8, 0.2, 1);
	box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.15);
}

.mobile-bottom-bar.is-visible {
	transform: translateY(0);
	opacity: 1;
}

.mobile-bottom-bar__btn {
	flex: 1;
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: center;
	gap: 10px;
	height: 48px;
	/* Sem isso, o botao <a> ("Reservas") conta como content-box e o padding
	   soma por cima dos 48px (vira 72px), enquanto o <button> ("Menu") ja
	   herda border-box e fica nos 48px certos — desalinhando a barra. */
	box-sizing: border-box;
	padding: 12px 0;
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: #2c2a26;
	background: none;
	border: none;
	cursor: pointer;
	text-decoration: none;
}

.mobile-bottom-bar__btn--reserva {
	background: transparent;
	color: #2c2a26;
}

.mobile-bottom-bar__btn--menu {
	flex: 0 0 auto;
	background: #1c2126;
	border-radius: 0;
	padding: 12px 20px;
	color: rgba(255, 255, 255, 0.85);
}

.mobile-bottom-bar__icon {
	width: 16px;
	height: 16px;
	background-color: currentColor;
	display: inline-block;
}

.mobile-bottom-bar__icon--calendar {
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cline x1='16' y1='2' x2='16' y2='6'/%3E%3Cline x1='8' y1='2' x2='8' y2='6'/%3E%3Cline x1='3' y1='10' x2='21' y2='10'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cline x1='16' y1='2' x2='16' y2='6'/%3E%3Cline x1='8' y1='2' x2='8' y2='6'/%3E%3Cline x1='3' y1='10' x2='21' y2='10'/%3E%3C/svg%3E") center / contain no-repeat;
}

.mobile-bottom-bar__icon--menu {
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.2' stroke-linecap='round'%3E%3Cline x1='3' y1='8' x2='21' y2='8'/%3E%3Cline x1='3' y1='16' x2='21' y2='16'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.2' stroke-linecap='round'%3E%3Cline x1='3' y1='8' x2='21' y2='8'/%3E%3Cline x1='3' y1='16' x2='21' y2='16'/%3E%3C/svg%3E") center / contain no-repeat;
}

@media (max-width: 780px) {
	.site-header__inner {
		grid-template-columns: 1fr !important;
		/* grid-template-rows tambem precisa ser sobrescrito pra 68px: sem
		   isso a linha do grid continua com os 80px do desktop, e o
		   align-items:center centraliza a logo dentro dessa linha de 80px
		   (invisivel, maior que a caixa real), nao dentro da caixa visivel
		   de 68px — resultado: logo desalinhada verticalmente. */
		grid-template-rows: 68px !important;
		justify-items: center;
		height: 68px !important;
		padding: 0 24px !important;
	}

	.site-header-nav-left,
	.site-header-nav-right {
		/* !important necessario: o WordPress aplica ".wp-block-navigation.is-
		   layout-flex{display:flex}" com duas classes (especificidade maior
		   que uma unica classe aqui), entao um display:none simples perde e o
		   nav vira uma linha "fantasma" de altura 0 no grid, empurrando a
		   logo pra fora da caixa visivel do header. */
		display: none !important;
	}

	.site-header__logo img {
		height: 40px;
	}

	.mobile-bottom-bar { display: flex; }
}

/* ─── MOBILE MENU OVERLAY ──────────────────────── */
.mobile-menu-overlay {
	display: none;
	position: fixed;
	inset: 0;
	z-index: 200;
	background: rgba(20, 24, 28, 0.97);
	-webkit-backdrop-filter: blur(24px);
	backdrop-filter: blur(24px);
	align-items: center;
	justify-content: center;
}

.mobile-menu-overlay.is-open {
	display: flex;
}

.mobile-menu-overlay__close {
	position: absolute;
	top: 24px;
	right: 24px;
	width: 28px;
	height: 28px;
	background-color: #fff;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'/%3E%3Cline x1='6' y1='6' x2='18' y2='18'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'/%3E%3Cline x1='6' y1='6' x2='18' y2='18'/%3E%3C/svg%3E") center / contain no-repeat;
	border: none;
	cursor: pointer;
}

.mobile-menu-overlay__nav {
	gap: 20px;
	align-items: center;
	text-align: center;
}

.mobile-menu-overlay__nav a {
	/* !important necessario: o WordPress aplica cor via
	   ".wp-block-navigation .wp-block-navigation-item__content" (duas
	   classes, especificidade maior que esta regra de uma classe + tag). */
	color: rgba(255, 255, 255, 0.8) !important;
	font-family: 'Raleway', sans-serif;
	font-size: 22px;
	font-weight: 400;
	text-transform: uppercase;
	letter-spacing: .06em;
	transition: color 0.3s;
}

.mobile-menu-overlay__nav a:hover {
	color: #cbc0ad !important;
}

/* ─── HERO PÁGINA INTERNA (fundo escuro + grão) ── */
.hero-pagina,
.hero-home {
	position: relative;
	text-align: center;
	background: radial-gradient(circle at center, #3b3a30 0%, #1c2126 65%);
	background-size: 200% 200%;
	animation: nhpn-bg-drift 10s ease-in-out infinite alternate;
	overflow: hidden;
}

.hero-pagina::after,
.hero-home::after {
	content: '';
	position: absolute;
	inset: 0;
	background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.04'/%3E%3C/svg%3E");
	opacity: .35;
	pointer-events: none;
}

.hero-pagina > *,
.hero-home > * {
	position: relative;
	z-index: 1;
}

@keyframes nhpn-bg-drift {
	0%   { background-position: 0% 20%; }
	50%  { background-position: 100% 80%; }
	100% { background-position: 20% 100%; }
}

/* ─── HERO HOME ─────────────────────────────────── */
.hero-home {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-start;
	/* Zera o padding padrao que o WordPress aplica a todo wp-block-group com
	   has-background (:where(.wp-block-group.has-background)). Aqui esse
	   respiro nao tem funcao nenhuma (o espacamento real vem do flex e das
	   linhas decorativas fixas em 48px) e so cria uma sobra visivel embaixo
	   do peek do video. */
	padding: 0;
}

.hero-home__content {
	text-align: center;
	min-height: calc(100vh - 100px);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding-left: 24px;
	padding-right: 24px;
}

.hero-home::before {
	content: '';
	position: absolute;
	top: 50%;
	left: 0;
	right: 0;
	height: 240px;
	transform: translateY(-50%);
	background:
		linear-gradient(rgba(255, 255, 255, .12), rgba(255, 255, 255, .12)) left 48px top / 1px 100% no-repeat,
		linear-gradient(rgba(255, 255, 255, .12), rgba(255, 255, 255, .12)) right 48px top / 1px 100% no-repeat;
	pointer-events: none;
	z-index: 1;
}

@media (max-width: 480px) {
	.hero-home h1 {
		/* !important necessario: o tamanho base vem de estilo inline no
		   proprio bloco (font-size:clamp(40px,6vw,48px)), que so perde pra
		   uma regra externa com !important. */
		font-size: 28px !important;
	}
}

.hero-home h1 em {
	font-family: var(--wp--preset--font-family--highlight);
	font-style: italic;
	color: var(--wp--preset--color--primary);
}

.hero-home__sub {
	max-width: 720px;
	margin-left: auto;
	margin-right: auto;
}

/* ─── HERO VIDEO (tamanho controlado via JS no scroll) ── */
.hero-video {
	width: 580px;
	max-width: 100%;
	height: 100px;
	margin: 32px auto 0;
	overflow: hidden;
	display: flex;
	justify-content: center;
	background: #000;
	will-change: width, height;
}

.hero-video .wp-block-video,
.hero-video video,
.hero-video iframe {
	width: 100%;
	height: 100%;
	margin: 0;
	object-fit: cover;
	border: none;
}

@media (max-width: 780px) {
	.hero-video {
		width: 100vw;
		margin-left: calc(50% - 50vw);
	}

	.hero-home::before {
		display: none;
	}

	.hero-home__cta {
		flex-direction: column;
		width: 100%;
		max-width: 320px;
		margin-left: auto;
		margin-right: auto;
	}

	.hero-home__cta .wp-block-button {
		width: 100%;
	}

	.hero-home__cta .wp-block-button__link {
		width: 100%;
		justify-content: center;
		padding-left: 15px;
		padding-right: 15px;
	}
}

/* ─── CARDS DE ACOMODAÇÃO ──────────────────────── */
.acomodacoes__card {
	text-decoration: none;
}

.acomodacoes__card img {
	transition: transform .6s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.acomodacoes__card:hover img {
	transform: scale(1.08);
}

/* ─── CTA GLOBAL — botão primário e secundário ──────────────
   Usar className "btn-primary" ou "btn-secondary" em qualquer wp:button
   do site. Por padrão assume fundo escuro; envolver a seção com a classe
   "on-light" quando o botão estiver sobre fundo claro (ex: Travertino).
   Ícone: somar uma das classes btn-icon-calendar / btn-icon-whatsapp /
   btn-icon-arrow junto com btn-primary/btn-secondary. */
.btn-primary .wp-block-button__link,
.btn-secondary .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-size: 11px;
	letter-spacing: 0.16em;
}

.btn-primary .wp-block-button__link {
	padding: 16px 40px;
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--dark);
}

.btn-primary .wp-block-button__link:hover {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--white);
}

.btn-secondary .wp-block-button__link {
	padding: 15px 36px;
	background: transparent;
	border: 1px solid rgba(255, 255, 255, 0.25);
	color: var(--wp--preset--color--white);
}

@media (max-width: 780px) {
	.btn-secondary .wp-block-button__link {
		padding-left: 20px;
		padding-right: 20px;
	}
}

.btn-secondary .wp-block-button__link:hover {
	background: rgba(255, 255, 255, .08);
	border-color: rgba(255, 255, 255, .4);
}

/* Contexto de fundo claro — envolver a seção com a classe "on-light" */
.on-light .btn-primary .wp-block-button__link {
	background: #333333;
	color: #fff;
}

.on-light .btn-primary .wp-block-button__link:hover {
	background: #4a5040;
}

.on-light .btn-secondary .wp-block-button__link {
	border-color: rgba(44, 42, 38, 0.3);
	color: #2c2a26;
}

.on-light .btn-secondary .wp-block-button__link:hover {
	background: rgba(44, 42, 38, 0.05);
	border-color: rgba(44, 42, 38, 0.6);
}

/* Ícones dos CTAs — via CSS mask, sem depender de SVG solto no HTML
   (SVG em wp:html já se mostrou frágil a re-salvamentos do editor) */
.btn-icon-calendar .wp-block-button__link::before,
.btn-icon-whatsapp .wp-block-button__link::before,
.btn-icon-arrow .wp-block-button__link::before {
	content: '';
	width: 15px;
	height: 15px;
	background-color: currentColor;
	display: inline-block;
	flex-shrink: 0;
}

/* Padrao — todos os CTAs (wp:buttons) no conteudo da pagina: 100% da
   largura e texto/icone centralizado no mobile. Em vez de repetir isso
   em cada componente (eventos__cta, localizacao__cta etc.), fica uma
   regra unica aqui pra qualquer grupo de botoes novo ja nascer consistente. */
@media (max-width: 600px) {
	main.site-main .wp-block-buttons {
		flex-direction: column;
		align-items: stretch;
	}

	main.site-main .wp-block-buttons .wp-block-button {
		width: 100%;
	}

	main.site-main .wp-block-button__link {
		width: 100%;
		box-sizing: border-box;
		justify-content: center;
	}
}

.btn-icon-calendar .wp-block-button__link::before {
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cline x1='16' y1='2' x2='16' y2='6'/%3E%3Cline x1='8' y1='2' x2='8' y2='6'/%3E%3Cline x1='3' y1='10' x2='21' y2='10'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cline x1='16' y1='2' x2='16' y2='6'/%3E%3Cline x1='8' y1='2' x2='8' y2='6'/%3E%3Cline x1='3' y1='10' x2='21' y2='10'/%3E%3C/svg%3E") center / contain no-repeat;
}

.btn-icon-whatsapp .wp-block-button__link::before {
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347z'/%3E%3Cpath d='M12 0C5.373 0 0 5.373 0 12c0 2.123.553 4.116 1.52 5.845L.057 23.617a.5.5 0 0 0 .612.612l5.772-1.463A11.95 11.95 0 0 0 12 24c6.627 0 12-5.373 12-12S18.627 0 12 0zm0 22a9.95 9.95 0 0 1-5.073-1.384l-.364-.216-3.767.955.972-3.648-.237-.378A9.95 9.95 0 0 1 2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347z'/%3E%3Cpath d='M12 0C5.373 0 0 5.373 0 12c0 2.123.553 4.116 1.52 5.845L.057 23.617a.5.5 0 0 0 .612.612l5.772-1.463A11.95 11.95 0 0 0 12 24c6.627 0 12-5.373 12-12S18.627 0 12 0zm0 22a9.95 9.95 0 0 1-5.073-1.384l-.364-.216-3.767.955.972-3.648-.237-.378A9.95 9.95 0 0 1 2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.btn-icon-arrow .wp-block-button__link::before {
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'/%3E%3Cpolyline points='12 5 19 12 12 19'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'/%3E%3Cpolyline points='12 5 19 12 12 19'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* ─── ACOMODAÇÕES — HOME (carrossel horizontal) ─────────── */
.acomodacoes {
	position: relative;
	overflow: hidden;
}

.acomodacoes__header {
	margin-bottom: 72px;
}

.acomodacoes__header-line.wp-block-separator {
	display: block !important;
	width: calc(100% - 96px) !important;
	max-width: calc(100% - 96px) !important;
	margin: 0 48px 32px !important;
	height: 0 !important;
	border: none !important;
	border-top: 1px solid rgba(44, 42, 38, 0.25) !important;
	opacity: 1 !important;
}

.acomodacoes__header-row {
	align-items: flex-start;
	gap: 80px;
	padding-left: 48px;
	padding-right: 48px;
}

.acomodacoes__title {
	font-family: var(--wp--preset--font-family--heading);
	font-size: clamp(12px, 1vw, 13px);
	font-weight: 500;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: #2c2a26;
	line-height: 1.3;
	white-space: nowrap;
	margin: 0;
	padding-top: 5px;
}

.acomodacoes__subtitle {
	font-family: var(--wp--preset--font-family--highlight);
	font-size: 24px;
	font-style: italic;
	line-height: 1.2;
	color: #3d3a34;
	letter-spacing: -.01em;
	max-width: 520px;
	margin: 0;
}

/* track: scroll horizontal nativo com 3 cards + peek do 4º */
.acomodacoes__track-wrap {
	overflow: hidden;
}

.acomodacoes__track.wp-block-post-template {
	display: flex;
	align-items: flex-start;
	gap: 24px;
	padding-left: 20vw;
	padding-right: 20vw;
	scroll-padding-left: 20vw;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	-ms-overflow-style: none;
	cursor: grab;
	list-style: none;
	margin: 0;
}

.acomodacoes__track.wp-block-post-template::-webkit-scrollbar {
	display: none;
}

/* Setas de navegação: só no desktop — no touch o swipe já é natural e as
   setas ficam no caminho do dedo sem ajudar em nada. Sem fundo, sombra ou
   forma arredondada — nada no site usa esse tipo de chrome, então as setas
   seguem só como traço fino, igual ícones e divisórias do resto do design. */
.acomodacoes__setas {
	display: none;
	justify-content: flex-end;
	align-items: center;
	gap: 4px;
	padding: 28px 16px 0;
}

.acomodacoes__seta {
	position: relative;
	width: 48px;
	height: 48px;
	background: none;
	border: none;
	box-shadow: none;
	border-radius: 0;
	cursor: pointer;
}

.acomodacoes__seta::before {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	width: 28px;
	height: 28px;
	background-color: rgba(44, 42, 38, 0.55);
	transform: translate(-50%, -50%);
	transition: background-color 0.25s;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'/%3E%3Cpolyline points='13 6 19 12 13 18'/%3E%3C/svg%3E") center / contain no-repeat;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'/%3E%3Cpolyline points='13 6 19 12 13 18'/%3E%3C/svg%3E") center / contain no-repeat;
}

.acomodacoes__seta:hover::before {
	background-color: #2c2a26;
}

.acomodacoes__seta--prev::before {
	transform: translate(-50%, -50%) rotate(180deg);
}

@media (min-width: 1100px) {
	.acomodacoes__setas {
		display: flex;
	}
}

.acomodacoes__track.wp-block-post-template:active {
	cursor: grabbing;
}

.acomodacoes__track.wp-block-post-template > li {
	flex: 0 0 calc((100vw - 20vw - (24px * 3)) / 3.15);
	min-width: 260px;
	scroll-snap-align: start;
	margin-top: 0 !important;
}

.acomodacoes__img-wrap {
	overflow: hidden;
	background: #b8ad9b;
	margin: 0;
}

.acomodacoes__img-wrap img {
	transition: transform .6s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.acomodacoes__track.wp-block-post-template > li:hover .acomodacoes__img-wrap img {
	transform: scale(1.08);
}

.acomodacoes__room-name {
	font-family: var(--wp--preset--font-family--heading);
	font-size: clamp(13px, 1.1vw, 15px);
	font-weight: 500;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: #2c2a26;
	text-decoration: none;
	display: block;
	margin: 20px 0 6px;
}

/* O link do post-title não herda a cor do h3 pai porque o estilo global de
   link do theme.json aplica direto no elemento "a" — precisa de uma regra
   explícita, senão o texto sai na cor de destaque (contraste insuficiente
   sobre o fundo travertino). */
.acomodacoes__room-name a {
	color: inherit;
}

.acomodacoes__room-desc {
	font-family: var(--wp--preset--font-family--body);
	font-size: 13px;
	font-weight: 300;
	line-height: 1.5;
	color: #4a4841;
	margin: 0;
}

.acomodacoes__actions {
	gap: 24px;
	margin: 64px 48px 120px;
}

@media (max-width: 1024px) {
	.acomodacoes__track.wp-block-post-template > li {
		flex: 0 0 calc((100vw - 20vw - 48px) / 2.5);
	}
}

@media (max-width: 600px) {
	.acomodacoes__actions {
		flex-direction: column;
		align-items: stretch;
		margin-left: 24px;
		margin-right: 24px;
	}

	.acomodacoes__actions .wp-block-button {
		width: 100%;
	}

	.acomodacoes__actions .wp-block-button__link {
		width: 100%;
		box-sizing: border-box;
		justify-content: center;
	}
}

@media (max-width: 680px) {
	.acomodacoes {
		padding-top: 80px !important;
	}

	.acomodacoes__header {
		margin-bottom: 48px;
	}

	.acomodacoes__header-line.wp-block-separator {
		margin: 0 24px 24px;
	}

	.acomodacoes__header-row {
		flex-direction: column;
		align-items: flex-start;
		gap: 12px;
		padding-left: 24px;
		padding-right: 24px;
	}

	.acomodacoes__track.wp-block-post-template {
		padding-left: 24px;
		padding-right: 24px;
		gap: 16px;
	}

	.acomodacoes__track.wp-block-post-template > li {
		flex: 0 0 72vw;
		min-width: 240px;
	}
}

/* ─── COMODIDADES — HOME ─────────────────────── */
.comodidades {
	position: relative;
	overflow: hidden;
	z-index: 1;
}

.comodidades::before {
	content: '';
	position: absolute;
	left: -10vw;
	top: 24px;
	width: clamp(250px, 40vw, 500px);
	height: clamp(250px, 40vw, 500px);
	background-image: url('../images/logo-outline.png');
	background-repeat: no-repeat;
	background-position: left top;
	background-size: contain;
	opacity: 0.15;
	z-index: -1;
	pointer-events: none;
}

.comodidades__inner {
	max-width: 1280px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr 2fr;
	gap: 64px;
	align-items: start;
	/* Padding lateral aqui, nao na section .comodidades (has-background):
	   ".wp-block-group.has-background { padding-left/right: 0 !important }"
	   tem especificidade maior que qualquer regra de largura unica em
	   ".comodidades" e sempre vence, mesmo dentro de media query. */
	padding-left: 48px;
	padding-right: 48px;
	box-sizing: border-box;
}

.comodidades__title {
	font-family: var(--wp--preset--font-family--heading);
	font-size: clamp(32px, 5vw, 64px);
	font-weight: 400;
	line-height: 0.95;
	color: #2c2a26;
	text-transform: uppercase;
	letter-spacing: -0.02em;
	margin: 0;
}

.comodidades__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 56px 40px;
	/* .comodidades__inner e "is-layout-flow": o WP aplica margin-block-start
	   de blockGap (24px) no 2o filho pra frente, o que empurra o grid pra
	   baixo do alinhamento com o titulo. Zera pra manter align-items:start. */
	margin-top: 0 !important;
}

.comodidades__item {
	border-top: 1px solid rgba(44, 42, 38, 0.15);
	padding-top: 24px;
	margin-top: 0 !important;
}

.comodidades__item-title {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 15px;
	font-weight: 600;
	color: #2c2a26;
	margin: 0 0 12px;
	text-transform: uppercase;
	letter-spacing: 0.12em;
}

.comodidades__item-desc {
	font-family: var(--wp--preset--font-family--body);
	font-size: 16px;
	line-height: 1.6;
	font-weight: 300;
	color: #4a4841;
	margin: 0;
}

@media (max-width: 1024px) {
	.comodidades__inner {
		grid-template-columns: 1fr;
		gap: 48px;
	}
}

@media (max-width: 680px) {
	.comodidades {
		padding-top: 80px !important;
		padding-bottom: 80px !important;
	}

	.comodidades__inner {
		padding-left: 24px;
		padding-right: 24px;
	}

	.comodidades__grid {
		grid-template-columns: 1fr 1fr;
		gap: 40px 24px;
	}
}

@media (max-width: 400px) {
	.comodidades__grid {
		grid-template-columns: 1fr;
	}
}

/* ─── CAFÉ DA MANHÃ — HOME ───────────────────── */
/* .cafe__img é posicionada com right negativo, "vazando" de propósito sobre
   o vídeo (efeito de moldura sobreposta). No mobile, a seção vira coluna
   única e esse vazamento passa a ultrapassar a própria largura da viewport,
   gerando scroll horizontal — por isso a seção corta esse excesso. */
.cafe-manha {
	overflow: hidden;
}

.cafe {
	display: grid;
	grid-template-columns: 45fr 55fr;
	gap: 10vw;
	max-width: 1280px;
	margin: 0 auto;
	align-items: center;
	/* Padding lateral aqui, nao na section .cafe-manha (has-background):
	   ".wp-block-group.has-background { padding-left/right: 0 !important }"
	   sempre venceria uma regra de largura unica em ".cafe-manha". */
	padding-left: 48px;
	padding-right: 48px;
	box-sizing: border-box;
}

.cafe__media {
	position: relative;
	padding-right: 25%;
}

.cafe__video.wp-block-video {
	margin: 0;
}

.cafe__video video {
	width: 100%;
	height: auto;
	max-height: 80vh;
	object-fit: cover;
	display: block;
}

.cafe__img.wp-block-image {
	position: absolute;
	top: 15%;
	right: -10%;
	width: 65%;
	margin: 0;
	z-index: 2;
}

.cafe__img img {
	width: 100%;
	aspect-ratio: 9 / 6;
	object-fit: cover;
	border: 2rem solid #cbc0ad;
	display: block;
}

.cafe__txt {
	display: flex;
	flex-direction: column;
}

.cafe__title {
	font-family: var(--wp--preset--font-family--heading);
	font-size: clamp(12px, 1vw, 13px);
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: #2c2a26;
	margin: 0 0 24px;
}

.cafe__subtitle {
	font-family: var(--wp--preset--font-family--highlight);
	font-size: clamp(28px, 3vw, 48px);
	font-style: italic;
	line-height: 1.05;
	color: #2c2a26;
	letter-spacing: -0.01em;
	margin: 0 0 32px;
}

.cafe__desc {
	font-family: var(--wp--preset--font-family--body);
	font-size: 16px;
	line-height: 1.8;
	font-weight: 300;
	color: #4a4841;
	max-width: 90%;
	margin: 0 0 64px;
}

.cafe__highlights {
	display: flex;
	flex-direction: column;
	gap: 32px;
}

.cafe__feature {
	border-top: 1px solid rgba(44, 42, 38, 0.15);
	padding-top: 24px;
	margin-top: 0 !important;
}

.cafe__feature h3 {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 15px;
	font-weight: 600;
	color: #2c2a26;
	margin: 0 0 8px;
	text-transform: uppercase;
	letter-spacing: 0.08em;
}

.cafe__feature p {
	font-family: var(--wp--preset--font-family--body);
	font-size: 15px;
	line-height: 1.6;
	font-weight: 300;
	color: #4a4841;
	margin: 0;
}

@media (max-width: 900px) {
	.cafe {
		grid-template-columns: 1fr;
		gap: 64px;
		padding-left: 24px;
		padding-right: 24px;
	}

	.cafe__media {
		padding-right: 15%;
	}

	.cafe__img img {
		border-width: 16px;
	}

	.cafe__desc {
		max-width: 100%;
	}
}

/* ─── EVENTOS E CONVENÇÕES — HOME ────────────── */
.eventos {
	position: relative;
	overflow: hidden;
	background: radial-gradient(circle at center, #3b3a30 0%, #1c2126 65%);
	background-size: 200% 200%;
	animation: nhpn-bg-drift 10s ease-in-out infinite alternate;
}

.eventos::after {
	content: '';
	position: absolute;
	inset: 0;
	background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.04'/%3E%3C/svg%3E");
	opacity: .35;
	pointer-events: none;
}

.eventos > * {
	position: relative;
	z-index: 1;
}

.eventos__inner {
	max-width: 100%;
	margin: 0 auto;
}

.eventos__header-line.wp-block-separator {
	margin: 0 48px 32px !important;
	width: calc(100% - 96px) !important;
	max-width: calc(100% - 96px) !important;
	height: 0 !important;
	border: none !important;
	border-top: 1px solid rgba(255, 255, 255, 0.2) !important;
	opacity: 1 !important;
}

.eventos__header-row {
	align-items: flex-start;
	gap: 80px;
	padding-left: 48px;
	padding-right: 48px;
	margin-bottom: 72px;
}

.eventos__title {
	font-family: var(--wp--preset--font-family--heading);
	font-size: clamp(12px, 1vw, 13px);
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: #edeae2;
	line-height: 1.3;
	white-space: nowrap;
	margin: 0;
	padding-top: 5px;
}

.eventos__subtitle {
	font-family: var(--wp--preset--font-family--highlight);
	font-size: 24px;
	font-style: italic;
	line-height: 1.2;
	color: #cbc0ad;
	letter-spacing: -0.01em;
	max-width: 550px;
	margin: 0;
}

.eventos__split {
	display: grid;
	grid-template-columns: 4fr 6fr;
	gap: 64px;
	padding-left: 48px;
	padding-right: 48px;
	margin-bottom: 80px;
	align-items: center;
}

.eventos__split-img.wp-block-image {
	position: relative;
	aspect-ratio: 16 / 14;
	overflow: hidden;
	background: transparent;
	margin: 0;
}

.eventos__split-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.eventos__split-txt {
	display: flex;
	flex-direction: column;
	gap: 48px;
}

.eventos__split-txt > p {
	font-family: var(--wp--preset--font-family--body);
	font-size: 16px;
	line-height: 1.8;
	font-weight: 300;
	color: rgba(255, 255, 255, .55);
	margin: 0;
}

.eventos__highlights {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 32px;
}

.eventos__feature {
	border-top: 1px solid rgba(255, 255, 255, 0.15);
	padding-top: 24px;
	margin-top: 0 !important;
}

.eventos__feature h3 {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 15px;
	font-weight: 600;
	color: #edeae2;
	margin: 0 0 12px;
	text-transform: uppercase;
	letter-spacing: 0.12em;
}

.eventos__feature p {
	font-family: var(--wp--preset--font-family--body);
	font-size: 14px;
	line-height: 1.6;
	font-weight: 300;
	color: rgba(255, 255, 255, .55);
	margin: 0;
}

.eventos__cta {
	justify-content: flex-start;
}

@media (max-width: 1024px) {
	.eventos__split {
		grid-template-columns: 1fr;
	}

	.eventos__highlights {
		grid-template-columns: 1fr;
		gap: 24px;
	}
}

@media (max-width: 680px) {
	.eventos {
		padding-top: 80px !important;
	}

	.eventos__header-line.wp-block-separator {
		margin: 0 24px 24px !important;
		width: calc(100% - 48px) !important;
		max-width: calc(100% - 48px) !important;
	}

	.eventos__header-row {
		flex-direction: column;
		align-items: flex-start;
		gap: 16px;
		padding-left: 24px;
		padding-right: 24px;
	}

	.eventos__split {
		padding-left: 24px;
		padding-right: 24px;
	}
}

/* ─── EVENTOS — VERSÃO CLARA (archive de Eventos) ────── */
/* Mesma seção de cima, com fundo travertino e texto escuro em vez do
   gradiente escuro — sem watermark de ruído nem animação de drift, que
   foram pensados especificamente para contraste sobre fundo escuro. */
.eventos-claro__inner {
	max-width: 100%;
	margin: 0 auto;
}

.eventos-claro__header-line.wp-block-separator {
	margin: 0 48px 32px !important;
	width: calc(100% - 96px) !important;
	max-width: calc(100% - 96px) !important;
	height: 0 !important;
	border: none !important;
	border-top: 1px solid rgba(44, 42, 38, 0.2) !important;
	opacity: 1 !important;
}

.eventos-claro__header-row {
	align-items: flex-start;
	gap: 80px;
	padding-left: 48px;
	padding-right: 48px;
	margin-bottom: 72px;
}

.eventos-claro__title {
	font-family: var(--wp--preset--font-family--heading);
	font-size: clamp(12px, 1vw, 13px);
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: #2c2a26;
	line-height: 1.3;
	white-space: nowrap;
	margin: 0;
	padding-top: 5px;
}

.eventos-claro__subtitle {
	font-family: var(--wp--preset--font-family--highlight);
	font-size: 24px;
	font-style: italic;
	line-height: 1.2;
	color: #4a5040;
	letter-spacing: -0.01em;
	max-width: 550px;
	margin: 0;
}

.eventos-claro__split {
	display: grid;
	grid-template-columns: 4fr 6fr;
	gap: 64px;
	padding-left: 48px;
	padding-right: 48px;
	align-items: center;
}

.eventos-claro__split-img.wp-block-image {
	position: relative;
	aspect-ratio: 16 / 14;
	overflow: hidden;
	background: transparent;
	margin: 0;
}

.eventos-claro__split-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.eventos-claro__split-txt {
	display: flex;
	flex-direction: column;
	gap: 48px;
}

.eventos-claro__split-txt > p {
	font-family: var(--wp--preset--font-family--body);
	font-size: 16px;
	line-height: 1.8;
	font-weight: 300;
	color: #4a4841;
	margin: 0;
}

.eventos-claro__highlights {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 32px;
}

.eventos-claro__feature {
	border-top: 1px solid rgba(44, 42, 38, 0.15);
	padding-top: 24px;
	margin-top: 0 !important;
}

.eventos-claro__feature h3 {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 15px;
	font-weight: 600;
	color: #1c2126;
	margin: 0 0 12px;
	text-transform: uppercase;
	letter-spacing: 0.12em;
}

.eventos-claro__feature p {
	font-family: var(--wp--preset--font-family--body);
	font-size: 14px;
	line-height: 1.6;
	font-weight: 300;
	color: #4a4841;
	margin: 0;
}

.eventos-claro__cta {
	justify-content: flex-start;
}

@media (max-width: 1024px) {
	.eventos-claro__split {
		grid-template-columns: 1fr;
	}

	.eventos-claro__highlights {
		grid-template-columns: 1fr;
		gap: 24px;
	}
}

@media (max-width: 680px) {
	.eventos-claro {
		padding-top: 80px !important;
	}

	.eventos-claro__header-line.wp-block-separator {
		margin: 0 24px 24px !important;
		width: calc(100% - 48px) !important;
		max-width: calc(100% - 48px) !important;
	}

	.eventos-claro__header-row {
		flex-direction: column;
		align-items: flex-start;
		gap: 16px;
		padding-left: 24px;
		padding-right: 24px;
	}

	.eventos-claro__split {
		padding-left: 24px;
		padding-right: 24px;
	}
}

/* ─── LOCALIZAÇÃO — HOME ─────────────────────── */
.localizacao {
	position: relative;
	overflow: hidden;
}

.localizacao::before {
	content: '';
	position: absolute;
	top: 50%;
	right: -6vw;
	transform: translateY(-50%);
	width: clamp(240px, 32vw, 520px);
	height: clamp(240px, 32vw, 520px);
	background: url('../images/logo-outline.png') no-repeat center right;
	background-size: contain;
	opacity: 0.04;
	pointer-events: none;
	z-index: 0;
}

.localizacao__inner {
	position: relative;
	z-index: 1;
	max-width: 1420px;
	margin: 0 auto;
	padding: 0 48px;
	display: flex;
	flex-direction: column;
	gap: 88px;
}

.localizacao__header {
	display: flex;
	flex-direction: column;
}

.localizacao__header-line.wp-block-separator {
	width: 100% !important;
	max-width: 100% !important;
	height: 0 !important;
	border: none !important;
	border-top: 1px solid rgba(255, 255, 255, 0.14) !important;
	margin: 0 0 32px !important;
	opacity: 1 !important;
}

.localizacao__header-row {
	align-items: flex-start;
	gap: 80px;
}

.localizacao__title {
	font-family: var(--wp--preset--font-family--heading);
	font-size: clamp(11px, .9vw, 13px);
	font-weight: 500;
	letter-spacing: 0.20em;
	text-transform: uppercase;
	color: rgba(203, 192, 173, .85);
	margin: 0;
	white-space: nowrap;
	padding-top: 5px;
}

.localizacao__subtitle {
	font-family: var(--wp--preset--font-family--highlight);
	font-style: italic;
	font-size: 24px;
	line-height: 1.2;
	color: #edeae2;
	max-width: 480px;
	margin: 0;
}

.localizacao__split {
	display: grid;
	grid-template-columns: 3fr 2fr;
	gap: 72px;
	align-items: center;
}

.localizacao__split-media {
	position: relative;
}

.localizacao__img-wrap.wp-block-image {
	width: 100%;
	aspect-ratio: 16 / 9;
	background: rgba(0, 0, 0, .2);
	overflow: hidden;
	position: relative;
	margin: 0;
}

.localizacao__img-wrap::after {
	content: '';
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.45);
	pointer-events: none;
	z-index: 1;
	transition: background 0.5s;
}

.localizacao__img-wrap:hover::after {
	background: rgba(0, 0, 0, 0.2);
}

.localizacao__img-wrap img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .7s cubic-bezier(0.2, 0.8, 0.2, 1);
	display: block;
}

.localizacao__img-wrap:hover img {
	transform: scale(1.05);
}

.localizacao__map-card {
	position: absolute;
	bottom: -30%;
	right: -8%;
	width: 75%;
	border: 2rem solid #1c2126;
	background: #1c2126;
	z-index: 2;
}

.localizacao__map-wrap {
	aspect-ratio: 16 / 9;
	overflow: hidden;
}

.localizacao__map-wrap iframe {
	width: 100%;
	height: 100%;
	border: 0;
	display: block;
	filter: grayscale(.1) contrast(1.05);
}

.localizacao__split-txt {
	display: flex;
	flex-direction: column;
	gap: 40px;
	justify-content: center;
}

.localizacao__split-txt > p {
	font-size: 17px;
	line-height: 1.85;
	color: rgba(255, 255, 255, .8);
	margin: 0;
}

.localizacao__distances.wp-block-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
}

.localizacao__distances li {
	border-top: 1px solid rgba(255, 255, 255, .18);
	padding-top: 16px;
	margin-top: 0 !important;
	font-size: 14px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .55);
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.localizacao__distances span {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 26px;
	letter-spacing: .02em;
	color: #fff;
	text-transform: none;
}

.localizacao__cta {
	gap: 16px;
	align-items: center;
}

.localizacao__banner {
	margin-top: 60px;
	padding: 64px 48px;
	border: 1px solid rgba(255, 255, 255, 0.08);
	background: rgba(203, 192, 173, 0.04);
	border-radius: 4px;
	text-align: center;
}

.localizacao__banner-title.wp-block-heading {
	font-family: var(--wp--preset--font-family--heading);
	font-size: clamp(24px, 3vw, 40px);
	font-weight: 500;
	color: #edeae2;
	max-width: 628px;
	line-height: 1.1;
	margin: 0 auto 20px;
}

.localizacao__banner-title em {
	font-family: var(--wp--preset--font-family--highlight);
	font-style: italic;
	color: #cbc0ad;
}

.localizacao__banner-sub {
	font-size: 16px;
	line-height: 1.6;
	color: rgba(255, 255, 255, 0.7);
	max-width: 600px;
	margin: 0 auto 32px;
}

.localizacao__banner-cta {
	gap: 16px;
}

/* Localização — versão clara (Sobre o Hotel). Reaproveita toda a estrutura
   e o CSS de ".localizacao" (home, fundo escuro), só troca as cores. */
.sobre-localizacao {
	position: relative;
	overflow: hidden;
	width: 100%;
	max-width: none;
}

.sobre-localizacao .localizacao__header-line.wp-block-separator {
	border-top-color: rgba(44, 42, 38, 0.14) !important;
}

.sobre-localizacao .localizacao__title {
	color: rgba(74, 80, 64, 0.85);
}

.sobre-localizacao .localizacao__subtitle {
	color: #1c2126;
}

.sobre-localizacao .localizacao__split-txt > p {
	color: #4a4841;
}

.sobre-localizacao .localizacao__distances li {
	border-top-color: rgba(44, 42, 38, 0.18);
	color: rgba(44, 42, 38, 0.55);
}

.sobre-localizacao .localizacao__distances span {
	color: #1c2126;
}

.sobre-localizacao .localizacao__map-card {
	border-color: #f3f0ec;
	background: #f3f0ec;
}

.sobre-localizacao .localizacao__inner {
	gap: 48px;
}

.sobre-localizacao .localizacao__split {
	grid-template-columns: 3fr 2fr;
	gap: 110px;
}

@media (max-width: 1100px) {
	/* A regra acima (2 classes) tem mais especificidade que a media query
	   generica de ".localizacao__split" mais abaixo no arquivo — sem isso
	   aqui, o grid nunca colapsava pra 1 coluna no mobile e a secao
	   quebrava (foto + mapa + texto espremidos lado a lado). */
	.sobre-localizacao .localizacao__split {
		grid-template-columns: 1fr;
		gap: 64px;
	}
}

@media (max-width: 780px) {
	.sobre-localizacao .localizacao__inner {
		padding: 0 20px;
		gap: 48px;
	}

	/* A secao em volta de .sobre-localizacao nao tem classe propria (so
	   "secao-full-bleed" generica) — :has() mira ela pra replicar o mesmo
	   padding-top/bottom de 80px que ".localizacao" (home) ja tem no mobile. */
	.wp-block-post-content > .alignfull:has(> .sobre-localizacao) {
		padding-top: 80px !important;
		padding-bottom: 80px !important;
	}
}

@media (max-width: 1100px) {
	.localizacao__split {
		grid-template-columns: 1fr;
		gap: 64px;
	}

	.localizacao__map-card {
		position: relative;
		bottom: 0;
		right: 0;
		margin-top: 24px;
		width: 100%;
		border: none;
	}
}

@media (max-width: 780px) {
	.localizacao {
		padding: 80px 0 !important;
	}

	.localizacao__inner {
		padding: 0 32px;
		gap: 64px;
	}

	.localizacao__header-row {
		flex-direction: column;
		align-items: flex-start;
		gap: 12px;
	}

	.localizacao__distances li {
		font-size: 12px;
	}

	.localizacao__distances span {
		font-size: 24px;
	}
}

@media (max-width: 560px) {
	.localizacao__inner {
		padding: 0 24px;
	}

	.localizacao__cta {
		flex-direction: column;
		align-items: stretch;
	}

	.localizacao__banner {
		padding: 48px 24px;
		margin-top: 48px;
	}

	.localizacao__banner-cta {
		flex-direction: column;
		width: 100%;
	}

	.localizacao__banner-cta .wp-block-button {
		width: 100%;
	}

	.localizacao__banner-cta .wp-block-button__link {
		justify-content: center;
	}
}

/* ─── FOOTER — REVELAR AO ROLAR ──────────────── */
/* O rodapé fica fixo na base da tela, sempre visível (sem fade de opacidade).
   Quem "revela" é o conteúdo principal: ele recebe um respiro (margin-bottom)
   do tamanho do rodapé e, por ter sua própria pilha de empilhamento acima do
   rodapé, cobre ele por cima enquanto o usuário rola — quando o scroll chega
   nesse respiro, não há mais nada cobrindo e o rodapé aparece por baixo. */
.site-footer {
	position: fixed;
	bottom: 0;
	left: 0;
	width: 100%;
	z-index: 0;
	color: rgba(255, 255, 255, 0.7);
	/* Zera o padding padrao do WordPress pra wp-block-group com has-background
	   (:where(.wp-block-group.has-background)), que somava ao padding proprio
	   do .site-footer__inner e deixava o rodape com respiro maior do que o
	   pretendido. */
	padding: 0;
}

/* position:fixed não é "empurrado" pela margem de ninguém — o rodapé fica
   sempre grudado no fundo da viewport, e só não aparece por cima do
   conteúdo porque o main (com z-index maior) o cobre visualmente enquanto
   ainda há conteúdo real por rolar. Em página curta (conteúdo real menor
   que uma tela), não sobra o que cobrir e o rodapé vaza por cima do texto.
   Um min-height de 100vh garante que sempre haja pelo menos uma tela de
   conteúdo antes do rodapé poder aparecer, não importa o tamanho da página. */
main.site-main {
	position: relative;
	z-index: 1;
	min-height: 100vh;
}

.site-footer__inner {
	max-width: 1420px;
	margin: 0 auto;
	padding: 48px 48px 20px;
	display: flex;
	flex-direction: column;
	gap: 32px;
}

.site-footer-row-1 {
	align-items: center;
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
	padding-bottom: 24px;
}

.site-footer__social {
	gap: 32px;
}

.site-footer__social a {
	color: rgba(255, 255, 255, 0.6);
	transition: color 0.3s;
	font-size: 14px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.site-footer__social a:hover {
	color: #fff;
}

.site-footer-row-2 {
	display: grid;
	/* Largura minima por coluna evita que o botao "Reservar agora" e o
	   endereco quebrem em varias linhas estreitas antes do breakpoint que
	   empilha tudo em coluna unica (900px). */
	grid-template-columns: minmax(300px, 1.3fr) minmax(160px, 0.7fr) minmax(320px, 3.1fr);
	gap: 80px;
}

.site-footer-col-nav,
.site-footer-col-contact {
	padding-top: 12px;
}

.site-footer__title {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 14px;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: #edeae2;
	margin-bottom: 16px;
	font-weight: 500;
}

.site-footer__nav {
	margin-top: 0 !important;
}

.site-footer__nav .wp-block-navigation__container {
	gap: 16px;
}

.site-footer-col-contact .contact-list {
	gap: 16px;
}

.site-footer__nav a {
	color: rgba(255, 255, 255, 0.7);
	font-size: 15px;
	text-transform: none;
	letter-spacing: normal;
}

.site-footer__nav a:hover {
	color: #fff;
}

.contact-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.contact-item {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	font-size: 15px;
	line-height: 1.6;
	margin-top: 0 !important;
}

.contact-item a {
	color: rgba(255, 255, 255, 0.7);
	text-decoration: none;
	transition: color 0.3s;
}

.contact-item a:hover {
	color: #fff;
}

.contact-item::before {
	content: '';
	width: 16px;
	height: 16px;
	margin-top: 2px;
	flex-shrink: 0;
	background-color: rgba(255, 255, 255, 0.4);
}

.contact-item--phone::before {
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.contact-item--whatsapp::before {
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347z'/%3E%3Cpath d='M12 0C5.373 0 0 5.373 0 12c0 2.123.553 4.116 1.52 5.845L.057 23.617a.5.5 0 0 0 .612.612l5.772-1.463A11.95 11.95 0 0 0 12 24c6.627 0 12-5.373 12-12S18.627 0 12 0zm0 22a9.95 9.95 0 0 1-5.073-1.384l-.364-.216-3.767.955.972-3.648-.237-.378A9.95 9.95 0 0 1 2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347z'/%3E%3Cpath d='M12 0C5.373 0 0 5.373 0 12c0 2.123.553 4.116 1.52 5.845L.057 23.617a.5.5 0 0 0 .612.612l5.772-1.463A11.95 11.95 0 0 0 12 24c6.627 0 12-5.373 12-12S18.627 0 12 0zm0 22a9.95 9.95 0 0 1-5.073-1.384l-.364-.216-3.767.955.972-3.648-.237-.378A9.95 9.95 0 0 1 2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.contact-item--email::before {
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z'/%3E%3Cpolyline points='22,6 12,13 2,6'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z'/%3E%3Cpolyline points='22,6 12,13 2,6'/%3E%3C/svg%3E") center / contain no-repeat;
}

.contact-item--address::before {
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E") center / contain no-repeat;
}

.contact-item--contato::before {
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.site-footer-col-box {
	background: transparent;
	padding: 24px;
	border: 1px solid rgba(255, 255, 255, 0.15);
	border-radius: 4px;
}

.site-footer-col-box h3 {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 24px;
	color: #cbc0ad;
	margin-bottom: 12px;
	font-weight: 500;
	letter-spacing: -0.02em;
}

.site-footer-col-box p {
	font-size: 15px;
	line-height: 1.5;
	margin-bottom: 20px;
	color: rgba(255, 255, 255, 0.7);
}

.site-footer-row-3 {
	align-items: center;
	border-top: 1px solid rgba(255, 255, 255, 0.08);
	padding-top: 20px;
	font-size: 13px;
	letter-spacing: 0.02em;
	color: rgba(255, 255, 255, 0.7);
}

.site-footer__legal {
	gap: 8px 24px;
	flex-wrap: wrap;
}

.site-footer-row-3 a {
	color: #fff;
	text-decoration: underline;
	text-underline-offset: 3px;
	transition: color 0.3s;
}

.site-footer-row-3 a:hover {
	color: #cbc0ad;
}

@media (max-width: 960px) {
	.site-footer-row-2 {
		grid-template-columns: 1fr;
		gap: 48px;
	}

	.site-footer-row-1 {
		flex-direction: column;
		gap: 32px;
		align-items: center;
	}

	.site-footer-row-3 {
		flex-direction: column;
		gap: 16px;
		align-items: flex-start;
	}

	.site-footer__inner {
		padding: 64px 24px 85px;
		gap: 48px;
	}

	.site-footer-col-box .wp-block-button__link {
		white-space: nowrap;
	}
}

@media (max-width: 860px) {
	.site-footer {
		position: relative;
		z-index: 1;
	}

	/* O <footer class="wp-block-template-part"> que envolve o .site-footer
	   recebe margin-top:24px via fallback de blockGap do WP (e' o 3o filho
	   de ".wp-site-blocks", um "is-layout-flow"). No desktop isso e'
	   invisivel porque o .site-footer interno e' position:fixed e o wrapper
	   colapsa a 0 de altura — mas aqui, com .site-footer virando relative,
	   sobra uma faixa em branco entre o conteudo e o rodape. */
	main.site-main + footer.wp-block-template-part {
		margin-top: 0 !important;
	}
}

/* ─── ACOMODAÇÃO — PÁGINA INTERNA (SINGLE) ───── */

.acomodacao-banner {
	position: relative;
	overflow: hidden;
	min-height: 60vh;
	display: flex;
	align-items: flex-end;
	background: radial-gradient(circle at center, #3b3a30 0%, #1c2126 65%);
	background-size: 200% 200%;
	animation: nhpn-bg-drift 10s ease-in-out infinite alternate;
}

.acomodacao-banner__inner {
	width: 100%;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.acomodacao-banner__title.wp-block-post-title,
.acomodacao-banner__title.wp-block-heading {
	font-family: var(--wp--preset--font-family--heading);
	font-size: clamp(40px, 6vw, 48px);
	font-weight: 400;
	color: #edeae2;
	letter-spacing: -0.02em;
	margin: 0;
}

.acomodacao-banner__subtitle {
	font-family: var(--wp--preset--font-family--body);
	font-size: 16px;
	font-weight: 300;
	line-height: 1.6;
	color: rgba(255, 255, 255, 0.7);
	max-width: 980px;
	margin: 0;
}

/* ─── ACOMODAÇÕES — ARCHIVE (grid 4 colunas) ─────────── */
/* O padding lateral vai aqui, não na seção — a seção tem "has-background"
   (backgroundColor="primary"), e existe um reset global que zera
   padding-left/right em qualquer .wp-block-group.has-background. Os mesmos
   48px do header, pra ficar alinhado com o cabeçalho. */
.acomodacoes-grid__track-wrap {
	padding-left: 48px;
	padding-right: 48px;
}

.acomodacoes-grid__track.wp-block-post-template {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 56px 32px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.acomodacoes-grid__track.wp-block-post-template > li {
	margin-top: 0 !important;
}

@media (max-width: 1280px) {
	.acomodacoes-grid__track.wp-block-post-template {
		grid-template-columns: repeat(3, 1fr);
	}
}

@media (max-width: 900px) {
	.acomodacoes-grid__track.wp-block-post-template {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 640px) {
	.acomodacoes-grid {
		padding-top: 48px !important;
	}

	.acomodacoes-grid__track-wrap {
		padding-left: 20px;
		padding-right: 20px;
	}

	.acomodacoes-grid__track.wp-block-post-template {
		grid-template-columns: 1fr;
	}
}

.acomodacao-banner__divider.wp-block-separator {
	margin: 0 !important;
	width: 100% !important;
	max-width: none !important;
	background-color: #5f6754;
	height: 1px;
	border: none;
}

/* ─── BREADCRUMBS (Rank Math) ──────────────────────────── */
.rank-math-breadcrumb {
	font-family: var(--wp--preset--font-family--body);
	font-size: 12px;
	letter-spacing: 0.03em;
	margin: 0 0 16px;
}

.rank-math-breadcrumb p {
	margin: 0;
}

.rank-math-breadcrumb a {
	text-decoration: none;
	transition: color 0.25s;
}

/* Contexto claro (padrão): usado em single de Evento, sobre fundo "on-light". */
.rank-math-breadcrumb a {
	color: rgba(44, 42, 38, 0.6);
}

.rank-math-breadcrumb a:hover {
	color: #1c2126;
}

.rank-math-breadcrumb .separator {
	color: rgba(44, 42, 38, 0.35);
	padding: 0 6px;
}

.rank-math-breadcrumb .last {
	color: #1c2126;
}

/* Contexto escuro: banner de Acomodação e hero do post de blog. */
.acomodacao-banner .rank-math-breadcrumb,
.post-hero__breadcrumb .rank-math-breadcrumb {
	margin-bottom: 20px;
}

.acomodacao-banner .rank-math-breadcrumb a,
.post-hero__breadcrumb .rank-math-breadcrumb a {
	color: rgba(255, 255, 255, 0.6);
}

.acomodacao-banner .rank-math-breadcrumb a:hover,
.post-hero__breadcrumb .rank-math-breadcrumb a:hover {
	color: #fff;
}

.acomodacao-banner .rank-math-breadcrumb .separator,
.post-hero__breadcrumb .rank-math-breadcrumb .separator {
	color: rgba(255, 255, 255, 0.35);
}

.acomodacao-banner .rank-math-breadcrumb .last,
.post-hero__breadcrumb .rank-math-breadcrumb .last {
	color: #edeae2;
}

.acomodacao-features {
	list-style: none;
	padding: 0;
	margin: 0 !important;
	display: flex;
	flex-wrap: wrap;
	gap: 16px 24px;
}

.acomodacao-features__item {
	display: flex;
	align-items: center;
	gap: 10px;
	font-family: var(--wp--preset--font-family--body);
	font-size: 14.5px;
	color: rgba(255, 255, 255, 0.85);
}

.acomodacao-features__item::before {
	content: '';
	width: 18px;
	height: 18px;
	flex-shrink: 0;
	background-color: #cbc0ad;
}

.acomodacao-features__item[data-icon="tamanho"]::before {
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3'/%3E%3C/svg%3E") center / contain no-repeat;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3'/%3E%3C/svg%3E") center / contain no-repeat;
}

.acomodacao-features__item[data-icon="vista"]::before {
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='18' height='18' rx='2' ry='2'/%3E%3Ccircle cx='8.5' cy='8.5' r='1.5'/%3E%3Cpolyline points='21 15 16 10 5 21'/%3E%3C/svg%3E") center / contain no-repeat;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='18' height='18' rx='2' ry='2'/%3E%3Ccircle cx='8.5' cy='8.5' r='1.5'/%3E%3Cpolyline points='21 15 16 10 5 21'/%3E%3C/svg%3E") center / contain no-repeat;
}

.acomodacao-features__item[data-icon="banheira"]::before {
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 6 6.5 3.5a1.5 1.5 0 0 0-1-.5C4.683 3 4 3.683 4 4.5V17a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-5H5'/%3E%3C/svg%3E") center / contain no-repeat;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 6 6.5 3.5a1.5 1.5 0 0 0-1-.5C4.683 3 4 3.683 4 4.5V17a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-5H5'/%3E%3C/svg%3E") center / contain no-repeat;
}

.acomodacao-features__item[data-icon="ar-condicionado"]::before {
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9.59 4.59A2 2 0 1 1 11 8H2m10.59 11.41A2 2 0 1 0 14 16H2m15.73-8.27A2.5 2.5 0 1 1 19.5 12H2'/%3E%3C/svg%3E") center / contain no-repeat;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9.59 4.59A2 2 0 1 1 11 8H2m10.59 11.41A2 2 0 1 0 14 16H2m15.73-8.27A2.5 2.5 0 1 1 19.5 12H2'/%3E%3C/svg%3E") center / contain no-repeat;
}

.acomodacao-features__item[data-icon="hidromassagem"]::before {
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 16.3c2.2 0 4-1.83 4-4.05 0-1.16-.57-2.26-1.71-3.19S7 6.3 7 4.25c0 2.05-1.14 3.1-2.29 4.04S3 11.08 3 12.25c0 2.22 1.8 4.05 4 4.05z'/%3E%3Cpath d='M12.56 6.6A10.97 10.97 0 0 1 14 6c2.05 0 3.14 1.14 4.08 2.29C19 9.43 19 10.57 19 11.73c0 2.21-1.81 4-4 4s-4-1.79-4-4c0-1.16.56-2.26 1.71-3.19z'/%3E%3C/svg%3E") center / contain no-repeat;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 16.3c2.2 0 4-1.83 4-4.05 0-1.16-.57-2.26-1.71-3.19S7 6.3 7 4.25c0 2.05-1.14 3.1-2.29 4.04S3 11.08 3 12.25c0 2.22 1.8 4.05 4 4.05z'/%3E%3Cpath d='M12.56 6.6A10.97 10.97 0 0 1 14 6c2.05 0 3.14 1.14 4.08 2.29C19 9.43 19 10.57 19 11.73c0 2.21-1.81 4-4 4s-4-1.79-4-4c0-1.16.56-2.26 1.71-3.19z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.acomodacao-features__item[data-icon="banheiro-privativo"]::before {
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='11' width='18' height='11' rx='2' ry='2'/%3E%3Cpath d='M7 11V7a5 5 0 0 1 10 0v4'/%3E%3C/svg%3E") center / contain no-repeat;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='11' width='18' height='11' rx='2' ry='2'/%3E%3Cpath d='M7 11V7a5 5 0 0 1 10 0v4'/%3E%3C/svg%3E") center / contain no-repeat;
}

.acomodacao-features__item[data-icon="tv"]::before {
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='3' width='20' height='14' rx='2' ry='2'/%3E%3Cline x1='8' y1='21' x2='16' y2='21'/%3E%3Cline x1='12' y1='17' x2='12' y2='21'/%3E%3C/svg%3E") center / contain no-repeat;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='3' width='20' height='14' rx='2' ry='2'/%3E%3Cline x1='8' y1='21' x2='16' y2='21'/%3E%3Cline x1='12' y1='17' x2='12' y2='21'/%3E%3C/svg%3E") center / contain no-repeat;
}

.acomodacao-features__item[data-icon="frigobar"]::before {
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='2' width='16' height='20' rx='2' ry='2'/%3E%3Cline x1='4' y1='9' x2='20' y2='9'/%3E%3Cline x1='9' y1='14' x2='9' y2='14.01'/%3E%3C/svg%3E") center / contain no-repeat;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='2' width='16' height='20' rx='2' ry='2'/%3E%3Cline x1='4' y1='9' x2='20' y2='9'/%3E%3Cline x1='9' y1='14' x2='9' y2='14.01'/%3E%3C/svg%3E") center / contain no-repeat;
}

.acomodacao-features__item[data-icon="wifi"]::before {
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.55a11 11 0 0 1 14.08 0'/%3E%3Cpath d='M1.42 9a16 16 0 0 1 21.16 0'/%3E%3Cpath d='M8.53 16.11a6 6 0 0 1 6.95 0'/%3E%3Cline x1='12' y1='20' x2='12.01' y2='20'/%3E%3C/svg%3E") center / contain no-repeat;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.55a11 11 0 0 1 14.08 0'/%3E%3Cpath d='M1.42 9a16 16 0 0 1 21.16 0'/%3E%3Cpath d='M8.53 16.11a6 6 0 0 1 6.95 0'/%3E%3Cline x1='12' y1='20' x2='12.01' y2='20'/%3E%3C/svg%3E") center / contain no-repeat;
}

.acomodacao-features__item[data-icon="generico"]::before {
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpolyline points='8 12 11 15 16 9'/%3E%3C/svg%3E") center / contain no-repeat;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpolyline points='8 12 11 15 16 9'/%3E%3C/svg%3E") center / contain no-repeat;
}

@media (max-width: 900px) {
	.acomodacao-banner {
		/* A secao ja tem padding-left/right:48px inline (nao e has-background,
		   entao o reset global nao zera isso) — some com o padding do
		   __inner e sobra so 246px pra um titulo de uma palavra so, causando
		   quebra no meio da palavra. Zera aqui e deixa o __inner ser a
		   unica fonte de padding lateral no mobile. */
		padding-top: 48px !important;
		padding-bottom: 40px !important;
		padding-left: 0 !important;
		padding-right: 0 !important;
		min-height: 60vh;
	}

	.acomodacao-banner__inner {
		padding: 0 20px;
	}

	.acomodacao-banner__title.wp-block-post-title,
	.acomodacao-banner__title.wp-block-heading {
		font-size: 22px;
	}

	.acomodacao-banner__subtitle,
	.acomodacao-banner__subtitle--wide {
		/* !important necessario: ".acomodacao-banner__subtitle--wide" (usada
		   em Sobre o Hotel) e uma regra sem media query definida DEPOIS
		   desta no arquivo — mesma especificidade, vence por ordem de
		   origem se nao forcarmos aqui. */
		font-size: 13px !important;
	}

	/* Conteudo das paginas com esse header (Atendimento, Sobre o Hotel etc.)
	   usando wp:post-content puro. */
	.wp-block-post-content {
		font-size: 14px;
	}

	/* Interna de Acomodacoes — ajustes proprios dessa pagina, escopados por
	   body.single-acomodacao pra nao afetar as demais paginas que usam o
	   mesmo .acomodacao-banner compartilhado. */
	body.single-acomodacao .acomodacao-banner {
		min-height: 75vh;
	}

	body.single-acomodacao .acomodacao-detalhes {
		padding-top: 48px !important;
		padding-left: 20px !important;
		padding-right: 20px !important;
	}
}

@media (max-width: 480px) {
	.acomodacao-banner {
		min-height: 50vh;
	}
}

/* Coluna 2: detalhes (galeria + informações) */
.acomodacao-detalhes {
	position: relative;
	overflow: hidden;
	background-color: #cbc0ad;
}

.acomodacao-detalhes::before {
	content: '';
	position: absolute;
	left: -8vw;
	bottom: -6vw;
	width: clamp(250px, 32vw, 460px);
	height: clamp(250px, 32vw, 460px);
	background-image: url('../images/logo-outline.png');
	background-repeat: no-repeat;
	background-position: left bottom;
	background-size: contain;
	opacity: 0.12;
	z-index: 0;
	pointer-events: none;
}

.acomodacao-detalhes__inner {
	position: relative;
	z-index: 1;
}

.acomodacao-detalhes__inner.wp-block-columns {
	gap: 80px;
}

.acomodacao-galeria {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.acomodacao-galeria__principal {
	position: relative;
	width: 100%;
	aspect-ratio: 16/10;
	margin: 0;
	overflow: hidden;
	cursor: zoom-in;
	background-color: rgba(28, 33, 38, 0.05);
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
}

.acomodacao-galeria__principal[data-tipo="video"] {
	cursor: pointer;
}

.acomodacao-galeria__principal img,
.acomodacao-galeria__principal iframe {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	border: none;
	transition: transform 0.8s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.acomodacao-galeria__principal:hover img {
	transform: scale(1.04);
}

.acomodacao-galeria__play {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 64px;
	height: 64px;
	border-radius: 50%;
	background: rgba(0, 0, 0, 0.55);
	pointer-events: none;
}

.acomodacao-galeria__play::before {
	content: '';
	position: absolute;
	top: 50%;
	left: 55%;
	transform: translate(-50%, -50%);
	border-style: solid;
	border-width: 10px 0 10px 16px;
	border-color: transparent transparent transparent #fff;
}

.acomodacao-galeria__miniaturas {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 12px;
}

.acomodacao-galeria__miniatura-wrap {
	position: relative;
}

.acomodacao-galeria__miniatura {
	width: 100%;
	aspect-ratio: 4/3;
	object-fit: cover;
	cursor: pointer;
	opacity: 0.5;
	transition: opacity 0.3s, border-color 0.3s, transform 0.3s;
	border: 2px solid transparent;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
	display: block;
}

.acomodacao-galeria__miniatura:hover {
	opacity: 0.8;
	transform: translateY(-2px);
}

.acomodacao-galeria__miniatura-wrap.is-video::after {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 6px 0 6px 10px;
	border-color: transparent transparent transparent #fff;
	pointer-events: none;
}

.acomodacao-galeria__miniatura.is-active {
	opacity: 1;
	border-color: #5f6754;
}

.acomodacao-descricao.wp-block-post-content {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 18px;
	line-height: 1.5;
	font-weight: 400;
	color: #2c2a26;
	margin-bottom: 48px !important;
}

.acomodacao-lista__titulo {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 17px;
	font-weight: 500;
	margin: 0 0 20px;
	color: #1c2126;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	border-bottom: 1px solid rgba(28, 33, 38, 0.15);
	padding-bottom: 12px;
}

.acomodacao-lista {
	list-style: none;
	padding: 0;
	margin: 0 0 40px 0 !important;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 8px 24px;
}

.acomodacao-lista li {
	font-size: 15px;
	color: #4a5040;
	display: flex;
	align-items: center;
	gap: 12px;
	line-height: 1.4;
}

.acomodacao-lista li::before {
	content: '';
	display: block;
	width: 6px;
	height: 6px;
	background-color: #5f6754;
	border-radius: 50%;
	flex-shrink: 0;
}

.acomodacao-regras {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
}

.acomodacao-regras__item {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 14px 16px;
	border: 1px solid rgba(44, 42, 38, 0.12);
	border-radius: 2px;
	background: rgba(255, 255, 255, 0.28);
}

.acomodacao-regras__badge {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	flex-shrink: 0;
}

.acomodacao-regras__icone {
	width: 16px;
	height: 16px;
	flex-shrink: 0;
}

.acomodacao-regras__texto {
	display: flex;
	flex-direction: column;
	gap: 2px;
	font-family: var(--wp--preset--font-family--body);
	font-size: 13px;
	line-height: 1.35;
	color: rgba(44, 42, 38, 0.75);
}

.acomodacao-regras__texto strong {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 12px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: #1c2126;
}

.acomodacao-regras__item[data-status="proibido"] .acomodacao-regras__badge {
	background: rgba(217, 83, 79, 0.12);
}

.acomodacao-regras__item[data-status="proibido"] .acomodacao-regras__icone {
	background-color: #c0463f;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cline x1='4.93' y1='4.93' x2='19.07' y2='19.07'/%3E%3C/svg%3E") center / contain no-repeat;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cline x1='4.93' y1='4.93' x2='19.07' y2='19.07'/%3E%3C/svg%3E") center / contain no-repeat;
}

.acomodacao-regras__item[data-status="permitido"] .acomodacao-regras__badge {
	background: rgba(95, 103, 84, 0.14);
}

.acomodacao-regras__item[data-status="permitido"] .acomodacao-regras__icone {
	background-color: #4a5040;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpolyline points='8 12 11 15 16 9'/%3E%3C/svg%3E") center / contain no-repeat;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpolyline points='8 12 11 15 16 9'/%3E%3C/svg%3E") center / contain no-repeat;
}

@media (max-width: 480px) {
	.acomodacao-regras {
		grid-template-columns: 1fr;
	}
}

/* ── Botão de reserva: só existe fixo (desktop). No mobile já existe a
   barra inferior fixa de reservas/menu, então esse fica escondido lá. ── */
.acomodacao-cta-flutuante {
	position: fixed;
	left: 50%;
	bottom: 16px;
	z-index: 90;
	opacity: 0;
	visibility: hidden;
	transform: translateX(-50%) translateY(16px);
	transition: opacity 0.4s var(--nhpn-ease, cubic-bezier(0.2, 0.8, 0.2, 1)), transform 0.4s var(--nhpn-ease, cubic-bezier(0.2, 0.8, 0.2, 1)), visibility 0.4s;
}

.acomodacao-cta-flutuante.is-visible {
	opacity: 1;
	visibility: visible;
	transform: translateX(-50%) translateY(0);
}

.acomodacao-cta-flutuante .wp-block-button__link {
	padding: 18px 40px;
	font-size: 13px;
	box-shadow: 0 12px 32px rgba(28, 33, 38, 0.35);
}

@media (max-width: 900px) {
	.acomodacao-cta-flutuante {
		display: none;
	}
}

@media (max-width: 992px) {
	.acomodacao-detalhes__inner.wp-block-columns {
		flex-wrap: wrap;
		gap: 56px !important;
	}

	.acomodacao-detalhes__inner.wp-block-columns > .wp-block-column {
		flex-basis: 100% !important;
	}
}

@media (max-width: 600px) {
	.acomodacao-lista {
		grid-template-columns: 1fr;
	}
}

/* Lightbox da galeria */
.acomodacao-lightbox {
	display: none;
	position: fixed;
	inset: 0;
	z-index: 9999;
	background: rgba(10, 10, 10, 0.95);
	align-items: center;
	justify-content: center;
}

.acomodacao-lightbox.is-open {
	display: flex;
}

.acomodacao-lightbox img {
	max-width: 90%;
	max-height: 85vh;
	object-fit: contain;
	box-shadow: 0 10px 40px rgba(0, 0, 0, 0.5);
}

.acomodacao-lightbox__close,
.acomodacao-lightbox__prev,
.acomodacao-lightbox__next {
	position: absolute;
	background: rgba(255, 255, 255, 0.1);
	border: none;
	color: #fff;
	cursor: pointer;
	padding: 14px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background 0.3s;
}

.acomodacao-lightbox__close:hover,
.acomodacao-lightbox__prev:hover,
.acomodacao-lightbox__next:hover {
	background: rgba(255, 255, 255, 0.25);
}

.acomodacao-lightbox__close {
	top: 24px;
	right: 24px;
}

.acomodacao-lightbox__prev {
	left: 24px;
	top: 50%;
	transform: translateY(-50%);
}

.acomodacao-lightbox__next {
	right: 24px;
	top: 50%;
	transform: translateY(-50%);
}

/* ─── GALERIA — PÁGINA (grid com filtro) ──────────────── */
.galeria-filtro {
	padding-top: 96px;
	padding-bottom: 96px;
}

.galeria-filtro__botoes {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 32px;
	margin-bottom: 48px;
}

.galeria-filtro__botao {
	background: none;
	border: none;
	padding: 0 0 6px;
	cursor: pointer;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: rgba(44, 42, 38, 0.5);
	border-bottom: 1px solid transparent;
	transition: color 0.25s, border-color 0.25s;
}

.galeria-filtro__botao:hover {
	color: #2c2a26;
}

.galeria-filtro__botao.is-active {
	color: #2c2a26;
	border-bottom-color: #5f6754;
}

/* Quebra o teto do conteúdo (720px) pra ocupar a mesma largura do
   cabeçalho (100vw menos as mesmas margens de 48px) — só o grid, os botões
   de filtro continuam no bloco de conteúdo normal, centralizados. */
.galeria-filtro__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
	width: calc(100vw - 96px);
	margin-left: calc(50% - 50vw + 48px);
	margin-right: calc(50% - 50vw + 48px);
}

.galeria-filtro__item {
	position: relative;
	aspect-ratio: 1 / 1;
	margin: 0;
	overflow: hidden;
	background: #e4ded2;
	cursor: zoom-in;
}

.galeria-filtro__item.is-oculto {
	display: none;
}

.galeria-filtro__item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.6s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.galeria-filtro__item:hover img {
	transform: scale(1.06);
}

@media (max-width: 1100px) {
	.galeria-filtro__grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

@media (max-width: 720px) {
	.galeria-filtro__grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 16px;
		width: calc(100vw - 40px);
		margin-left: calc(50% - 50vw + 20px);
		margin-right: calc(50% - 50vw + 20px);
	}

	.galeria-filtro__botoes {
		gap: 8px 20px;
		margin-bottom: 32px;
		padding-left: 20px;
		padding-right: 20px;
	}

	.galeria-filtro {
		padding-top: 48px;
		padding-bottom: 60px;
	}
}

/* ─── CONTACT-LIST — variante clara (fundo claro, texto escuro) ───────
   .contact-list / .contact-item já existem (nasceram no rodapé, escuro).
   Em vez de duplicar, herda a mesma estrutura e só inverte a cor quando
   está dentro de ".on-light". */
.on-light .contact-item {
	color: #4a5040;
}

.on-light .contact-item a {
	color: #2c2a26;
}

.on-light .contact-item a:hover {
	color: #5f6754;
}

.on-light .contact-item::before {
	background-color: #5f6754;
}

/* ─── ATENDIMENTO — PÁGINA ─────────────────────────────── */
.atendimento {
	padding-top: 75px;
	padding-bottom: 100px;
}

.atendimento__grid {
	display: grid;
	grid-template-columns: 5fr 7fr;
	gap: 130px;
	align-items: start;
	/* Quebra o teto de 720px do conteúdo pra ocupar a mesma largura do
	   cabeçalho — mesma técnica usada no grid da Galeria. */
	width: calc(100vw - 96px);
	margin-left: calc(50% - 50vw + 48px);
	margin-right: calc(50% - 50vw + 48px);
}

.atendimento__titulo {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 14px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: #1c2126;
	margin: 0 0 24px;
}

.atendimento__contatos {
	font-size: 16px;
	gap: 18px;
	margin-bottom: 40px;
}

.atendimento__contatos-row {
	display: flex;
	flex-wrap: wrap;
	gap: 12px 40px;
}

.atendimento__contatos .contact-item::before {
	width: 20px;
	height: 20px;
}

.atendimento__socials {
	display: flex;
	gap: 24px;
	margin-bottom: 40px;
}

.atendimento__socials a {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: #2c2a26;
	text-decoration: none;
	border-bottom: 1px solid rgba(44, 42, 38, 0.25);
	padding-bottom: 3px;
	transition: color 0.25s, border-color 0.25s;
}

.atendimento__socials a:hover {
	color: #5f6754;
	border-color: #5f6754;
}

.atendimento__mapa {
	margin-top: 40px;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	border: 1px solid rgba(44, 42, 38, 0.12);
}

.atendimento__mapa iframe {
	width: 100%;
	height: 100%;
	border: 0;
	display: block;
	filter: grayscale(0.1) contrast(1.05);
}

/* ─── ATENDIMENTO — CARD DO FORMULÁRIO (Forminator #80) ──── */
.atendimento__form-card {
	position: relative;
	border: 1px solid rgba(44, 42, 38, 0.12);
	background: #f8f6f2;
	padding: 56px 48px;
}

.atendimento__form-card::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 48px;
	height: 3px;
	background: #5f6754;
}

.atendimento__form-eyebrow {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: #5f6754;
	margin: 0 0 14px;
}

.atendimento__form-titulo.wp-block-heading {
	font-family: var(--wp--preset--font-family--heading);
	font-size: clamp(26px, 2.6vw, 32px);
	font-weight: 400;
	color: #1c2126;
	letter-spacing: -0.01em;
	margin: 0 0 12px;
}

.atendimento__form-sub {
	font-size: 15px;
	line-height: 1.6;
	color: #4a4841;
	margin: 0 0 36px;
}

.atendimento__form-card .forminator-ui {
	--forminator-input-border: rgba(44, 42, 38, 0.22);
	max-width: none;
}

.atendimento__form-card .forminator-row {
	margin: 0 0 28px;
}

.atendimento__form-card .forminator-field {
	position: relative;
}

.atendimento__form-card .forminator-label {
	display: block;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #5f6754;
	margin: 0 0 10px;
}

.atendimento__form-card .forminator-required {
	color: #a3583f;
}

.atendimento__form-card .forminator-input,
.atendimento__form-card .forminator-textarea {
	width: 100%;
	box-sizing: border-box;
	background: transparent;
	border-top: none !important;
	border-left: none !important;
	border-right: none !important;
	border-bottom: 1px solid rgba(44, 42, 38, 0.22) !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	padding: 10px 2px;
	font-family: var(--wp--preset--font-family--body);
	font-size: 15px;
	color: #1c2126;
	transition: border-color 0.3s, background 0.3s;
}

.atendimento__form-card .forminator-textarea {
	--forminator-textarea-min-height: 120px !important;
	resize: vertical;
	padding-top: 14px;
}

.atendimento__form-card .forminator-input:focus,
.atendimento__form-card .forminator-textarea:focus {
	outline: none;
	border-bottom-color: #5f6754;
	background: rgba(95, 103, 84, 0.04);
	box-shadow: none;
}

.atendimento__form-card .forminator-input::placeholder,
.atendimento__form-card .forminator-textarea::placeholder {
	color: rgba(44, 42, 38, 0.35);
}

.atendimento__form-card .forminator-description {
	display: block;
	text-align: right;
	font-size: 11px;
	letter-spacing: 0.04em;
	color: rgba(44, 42, 38, 0.45);
	margin-top: 6px;
}

.atendimento__form-card .forminator-row-last {
	margin-top: 8px;
}

.atendimento__form-card .forminator-button-submit {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	border: none;
	border-radius: 0 !important;
	background: #333333;
	color: #fff;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	padding: 16px 40px;
	cursor: pointer;
	transition: background 0.25s;
}

.atendimento__form-card .forminator-button-submit:hover {
	background: #4a5040;
}

.atendimento__form-card .forminator-response-message {
	margin-top: 20px;
	padding: 14px 18px;
	font-size: 14px;
	border-left: 3px solid #5f6754;
	background: rgba(95, 103, 84, 0.06);
}

.atendimento__form-card .forminator-response-message.forminator-error {
	border-left-color: #a3583f;
	background: rgba(163, 88, 63, 0.06);
}

@media (max-width: 640px) {
	.atendimento__form-card {
		padding: 40px 28px;
	}
}

/* ─── ATENDIMENTO — FAQ (acordeão nativo, sem JS) ─────────── */
#duvidas-frequentes {
	scroll-margin-top: 90px;
}

@media (max-width: 780px) {
	#duvidas-frequentes {
		padding-left: 20px !important;
		padding-right: 20px !important;
	}
}

.atendimento-faq__inner {
	max-width: 1180px;
	margin: 0 auto;
}

.atendimento-faq__header {
	max-width: 620px;
	margin: 0 0 64px;
}

.atendimento-faq__eyebrow {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: #4a5040;
	margin: 0 0 14px;
}

.atendimento-faq__titulo.wp-block-heading {
	font-family: var(--wp--preset--font-family--heading);
	font-size: clamp(28px, 3.2vw, 38px);
	font-weight: 400;
	color: #1c2126;
	letter-spacing: -0.01em;
	line-height: 1.15;
	margin: 0 0 16px;
}

.atendimento-faq__sub {
	font-size: 16px;
	line-height: 1.6;
	color: #4a4841;
	margin: 0;
}

.atendimento-faq__categorias {
	columns: 2;
	column-gap: 72px;
}

.atendimento-faq__categoria {
	break-inside: avoid;
	margin-bottom: 44px;
}

.atendimento-faq__categoria-titulo {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 20px;
	font-weight: 700;
	letter-spacing: -0.005em;
	text-transform: none;
	color: #1c2126;
	margin: 0 0 4px;
	padding-bottom: 14px;
	border-bottom: 2px solid #5f6754;
}

.atendimento-faq__item {
	border-bottom: 1px solid rgba(44, 42, 38, 0.14);
}

.atendimento-faq__item summary {
	cursor: pointer;
	list-style: none;
	position: relative;
	padding: 18px 30px 18px 0;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 15.5px;
	font-weight: 500;
	color: #1c2126;
	line-height: 1.4;
}

.atendimento-faq__item summary::-webkit-details-marker {
	display: none;
}

.atendimento-faq__item summary::after {
	content: '+';
	position: absolute;
	right: 2px;
	top: 18px;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 20px;
	font-weight: 400;
	line-height: 1;
	color: #5f6754;
	transition: transform 0.3s ease;
}

.atendimento-faq__item[open] summary::after {
	transform: rotate(45deg);
}

.atendimento-faq__item summary:hover {
	color: #4a5040;
}

.atendimento-faq__item summary:hover::after {
	color: #4a5040;
}

.atendimento-faq__item p {
	margin: 0 0 22px;
	padding-right: 30px;
	font-size: 14.5px;
	line-height: 1.75;
	color: #4a4841;
}

@media (max-width: 780px) {
	.atendimento-faq__categorias {
		columns: 1;
	}
}

@media (max-width: 900px) {
	.atendimento {
		padding-top: 48px;
	}

	.atendimento__grid {
		grid-template-columns: 1fr;
		gap: 48px;
		width: calc(100vw - 40px);
		margin-left: calc(50% - 50vw + 20px);
		margin-right: calc(50% - 50vw + 20px);
	}
}

/* ─── SOBRE O HOTEL — PÁGINA ───────────────────────────── */

.acomodacao-banner__subtitle--wide {
	max-width: 980px;
	font-size: 17px;
}

/* Números — tira de credibilidade logo após o banner */
.sobre-numeros {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
}

.sobre-numeros > * {
	margin-block-start: 0;
}

.sobre-numeros__item {
	padding: 48px 32px;
	text-align: center;
	border-left: 1px solid rgba(44, 42, 38, 0.12);
}

.sobre-numeros__item:first-child {
	border-left: none;
}

.sobre-numeros__valor {
	font-family: var(--wp--preset--font-family--heading);
	font-size: clamp(36px, 4vw, 52px);
	font-weight: 500;
	color: #1c2126;
	line-height: 1;
	margin: 0 0 12px;
	letter-spacing: -0.01em;
}

.sobre-numeros__rotulo {
	font-family: var(--wp--preset--font-family--body);
	font-size: 13px;
	line-height: 1.5;
	color: #4a4841;
	margin: 0;
}

@media (max-width: 900px) {
	.sobre-numeros {
		grid-template-columns: repeat(2, 1fr);
	}

	.sobre-numeros__item:nth-child(2n+1) {
		border-left: none;
	}

	.sobre-numeros__item:nth-child(1),
	.sobre-numeros__item:nth-child(2) {
		border-bottom: 1px solid rgba(44, 42, 38, 0.12);
	}
}

@media (max-width: 780px) {
	/* .sobre-numeros ja nasce com padding-top/bottom:0px inline (proposital,
	   a secao encosta no banner e no conteudo seguinte) — a regra geral de
	   60px pra secoes full-bleed no mobile sobrescrevia isso. Especificidade
	   alta aqui (3 classes) pra garantir que vence a regra geral. */
	.wp-block-post-content > .alignfull.sobre-numeros {
		padding-top: 0 !important;
		padding-bottom: 0 !important;
	}

	.sobre-numeros__item {
		padding: 28px 20px;
	}
}

/* História — bloco editorial centralizado */
.sobre-historia {
	max-width: 760px;
	margin: 0 auto;
	text-align: center;
}

.sobre-historia__eyebrow {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 13px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.14em;
	color: #5f6754;
	margin: 0 0 20px;
}

.sobre-historia__lead {
	font-family: var(--wp--preset--font-family--highlight);
	font-style: italic;
	font-size: clamp(24px, 3vw, 32px);
	line-height: 1.35;
	color: #1c2126;
	margin: 0 0 32px;
}

.sobre-historia__corpo {
	font-size: 16px;
	line-height: 1.8;
	color: #4a4841;
	margin: 0 0 20px;
	text-align: left;
}

@media (max-width: 780px) {
	.sobre-historia {
		text-align: left;
		padding-left: 20px;
		padding-right: 20px;
		box-sizing: border-box;
	}
}

/* Comodidades — fileira de ícones */
.sobre-comodidades {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: flex-start;
	gap: 40px 56px;
	margin-top: 64px;
	padding-top: 48px;
	border-top: 1px solid rgba(44, 42, 38, 0.12);
}

@media (min-width: 1001px) {
	/* .sobre-historia (760px) e estreito demais pros 6 itens caberem numa
	   linha so — "quebra" essa largura em relacao ao pai, centralizado na
	   pagina (mesma logica do alignfull, mas pra um elemento nao-full). */
	.sobre-comodidades {
		width: 920px;
		max-width: calc(100vw - 96px);
		margin-left: calc(50% - 460px);
		margin-right: calc(50% - 460px);
	}
}

@media (max-width: 1000px) {
	/* O WP injeta seu proprio CSS de layout (".is-layout-flex{display:flex}")
	   depois do nosso stylesheet — brigar com "display:grid" nao funciona.
	   Mantem flex e usa flex-basis pra simular 2 colunas iguais. */
	.sobre-comodidades {
		justify-content: center;
		gap: 32px 20px;
	}

	.sobre-comodidades__item {
		max-width: none;
		flex: 0 0 calc(50% - 10px);
	}
}

.sobre-comodidades__item {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
	font-family: var(--wp--preset--font-family--body);
	font-size: 13px;
	color: #4a5040;
	text-align: center;
	max-width: 148px;
}

.sobre-comodidades__item::before {
	content: '';
	width: 26px;
	height: 26px;
	background-color: #5f6754;
}

.sobre-comodidades__item[data-icon="wifi"]::before {
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.55a11 11 0 0 1 14.08 0'/%3E%3Cpath d='M1.42 9a16 16 0 0 1 21.16 0'/%3E%3Cpath d='M8.53 16.11a6 6 0 0 1 6.95 0'/%3E%3Cline x1='12' y1='20' x2='12.01' y2='20'/%3E%3C/svg%3E") center / contain no-repeat;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.55a11 11 0 0 1 14.08 0'/%3E%3Cpath d='M1.42 9a16 16 0 0 1 21.16 0'/%3E%3Cpath d='M8.53 16.11a6 6 0 0 1 6.95 0'/%3E%3Cline x1='12' y1='20' x2='12.01' y2='20'/%3E%3C/svg%3E") center / contain no-repeat;
}

.sobre-comodidades__item[data-icon="ar-condicionado"]::before {
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9.59 4.59A2 2 0 1 1 11 8H2m10.59 11.41A2 2 0 1 0 14 16H2m15.73-8.27A2.5 2.5 0 1 1 19.5 12H2'/%3E%3C/svg%3E") center / contain no-repeat;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9.59 4.59A2 2 0 1 1 11 8H2m10.59 11.41A2 2 0 1 0 14 16H2m15.73-8.27A2.5 2.5 0 1 1 19.5 12H2'/%3E%3C/svg%3E") center / contain no-repeat;
}

.sobre-comodidades__item[data-icon="frigobar"]::before {
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='2' width='16' height='20' rx='2' ry='2'/%3E%3Cline x1='4' y1='9' x2='20' y2='9'/%3E%3Cline x1='9' y1='14' x2='9' y2='14.01'/%3E%3C/svg%3E") center / contain no-repeat;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='2' width='16' height='20' rx='2' ry='2'/%3E%3Cline x1='4' y1='9' x2='20' y2='9'/%3E%3Cline x1='9' y1='14' x2='9' y2='14.01'/%3E%3C/svg%3E") center / contain no-repeat;
}

.sobre-comodidades__item[data-icon="cafe"]::before {
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 8h1a4 4 0 0 1 0 8h-1'/%3E%3Cpath d='M2 8h16v9a4 4 0 0 1-4 4H6a4 4 0 0 1-4-4V8z'/%3E%3Cline x1='6' y1='1' x2='6' y2='4'/%3E%3Cline x1='10' y1='1' x2='10' y2='4'/%3E%3Cline x1='14' y1='1' x2='14' y2='4'/%3E%3C/svg%3E") center / contain no-repeat;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 8h1a4 4 0 0 1 0 8h-1'/%3E%3Cpath d='M2 8h16v9a4 4 0 0 1-4 4H6a4 4 0 0 1-4-4V8z'/%3E%3Cline x1='6' y1='1' x2='6' y2='4'/%3E%3Cline x1='10' y1='1' x2='10' y2='4'/%3E%3Cline x1='14' y1='1' x2='14' y2='4'/%3E%3C/svg%3E") center / contain no-repeat;
}

.sobre-comodidades__item[data-icon="recepcao"]::before {
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpolyline points='12 6 12 12 16 14'/%3E%3C/svg%3E") center / contain no-repeat;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpolyline points='12 6 12 12 16 14'/%3E%3C/svg%3E") center / contain no-repeat;
}

.sobre-comodidades__item[data-icon="auditorio"]::before {
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M23 21v-2a4 4 0 0 0-3-3.87'/%3E%3Cpath d='M16 3.13a4 4 0 0 1 0 7.75'/%3E%3C/svg%3E") center / contain no-repeat;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M23 21v-2a4 4 0 0 0-3-3.87'/%3E%3Cpath d='M16 3.13a4 4 0 0 1 0 7.75'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Avaliações — seção escura, prova social */
.sobre-avaliacoes {
	position: relative;
	overflow: hidden;
	background: radial-gradient(circle at center, #3b3a30 0%, #1c2126 65%);
	background-size: 200% 200%;
	animation: nhpn-bg-drift 10s ease-in-out infinite alternate;
}

.sobre-avaliacoes__eyebrow {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 13px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.14em;
	color: #cbc0ad;
	text-align: center;
	margin: 0 0 16px;
}

.sobre-avaliacoes__titulo {
	font-family: var(--wp--preset--font-family--heading);
	font-size: clamp(28px, 3.5vw, 40px);
	font-weight: 400;
	color: #edeae2;
	text-align: center;
	margin: 0 0 64px;
	letter-spacing: -0.01em;
}

.sobre-avaliacoes__notas {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: flex-start;
	gap: 32px;
	max-width: 960px;
	margin: 0 auto 72px;
}

.sobre-avaliacoes__nota {
	flex: 1 1 0;
	text-align: center;
	padding: 32px 24px;
	border: 1px solid rgba(255, 255, 255, 0.12);
}

.sobre-avaliacoes__nota-valor {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 40px;
	font-weight: 500;
	color: #cbc0ad;
	line-height: 1;
	margin: 0 0 8px;
}

.sobre-avaliacoes__nota-plataforma {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 13px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: #edeae2;
	margin: 0 0 6px;
}

.sobre-avaliacoes__nota-contagem {
	font-family: var(--wp--preset--font-family--body);
	font-size: 13px;
	color: rgba(255, 255, 255, 0.5);
	margin: 0;
}

.sobre-avaliacoes__depoimentos {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	align-items: flex-start;
	gap: 40px;
	max-width: 1200px;
	margin: 0 auto;
}

.sobre-avaliacoes__depoimento {
	margin-top: 0;
	border-top: 1px solid rgba(255, 255, 255, 0.15);
	padding-top: 24px;
}

.sobre-avaliacoes__depoimento-texto {
	font-family: var(--wp--preset--font-family--highlight);
	font-style: italic;
	font-size: 19px;
	line-height: 1.5;
	color: #edeae2;
	margin: 0 0 16px;
}

.sobre-avaliacoes__depoimento-fonte {
	font-family: var(--wp--preset--font-family--body);
	font-size: 13px;
	letter-spacing: 0.04em;
	color: rgba(255, 255, 255, 0.5);
	margin: 0;
}

@media (max-width: 780px) {
	.sobre-avaliacoes {
		padding-left: 20px !important;
		padding-right: 20px !important;
	}

	.sobre-avaliacoes__nota-valor {
		font-size: 32px;
	}
}

@media (max-width: 900px) {
	.sobre-avaliacoes__depoimentos {
		grid-template-columns: 1fr;
	}

	/* ".sobre-avaliacoes__notas" e flex (nao grid) — "grid-template-columns"
	   nao tem efeito nela, precisa de flex-basis pra empilhar 1 por linha. */
	.sobre-avaliacoes__nota {
		flex: 1 1 100%;
	}
}

/* ─── EXPERIÊNCIAS — Pico do Ibituruna em destaque ─── */
.experiencias-voolivre {
	position: relative;
	overflow: hidden;
	background: radial-gradient(circle at center, #3b3a30 0%, #1c2126 65%);
	background-size: 200% 200%;
	animation: nhpn-bg-drift 10s ease-in-out infinite alternate;
}

.experiencias-voolivre__inner {
	position: relative;
	z-index: 1;
	max-width: 1040px;
	margin: 0 auto;
	text-align: center;
}

.experiencias-voolivre__eyebrow {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 13px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.14em;
	color: #cbc0ad;
	margin: 0 0 10px;
}

.experiencias-voolivre__titulo {
	font-family: var(--wp--preset--font-family--highlight);
	font-style: italic;
	font-size: clamp(26px, 3.2vw, 38px);
	line-height: 1.3;
	color: #edeae2;
	margin: 0 0 28px;
}

.experiencias-voolivre__corpo {
	font-size: 16px;
	line-height: 1.85;
	color: rgba(255, 255, 255, 0.72);
	max-width: 720px;
	margin: 0 auto 20px;
}

.experiencias-voolivre__stats {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
	max-width: 1040px;
	margin: 56px auto 0;
}

.experiencias-voolivre__stats > * {
	margin-block-start: 0;
}

.experiencias-voolivre__stat {
	text-align: center;
	padding: 28px 16px;
	border: 1px solid rgba(255, 255, 255, 0.12);
}

.experiencias-voolivre__stat-valor {
	font-family: var(--wp--preset--font-family--heading);
	font-size: clamp(24px, 2.4vw, 28px);
	font-weight: 500;
	color: #cbc0ad;
	line-height: 1;
	margin: 0 0 10px;
}

.experiencias-voolivre__stat-rotulo {
	font-family: var(--wp--preset--font-family--body);
	font-size: 13px;
	line-height: 1.5;
	color: rgba(255, 255, 255, 0.55);
	margin: 0;
}

@media (max-width: 900px) {
	.experiencias-voolivre__stats {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 600px) {
	.experiencias-voolivre__stats {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 780px) {
	.experiencias-voolivre__inner {
		text-align: left;
	}

	.experiencias-voolivre {
		padding-left: 20px !important;
		padding-right: 20px !important;
	}

	.experiencias-eventos {
		text-align: left !important;
	}

	.experiencias-eventos__cta {
		justify-content: flex-start !important;
	}
}


/* Grid de experiências — aventura, futebol, negócios, cultura */
.experiencias-grid {
	/* max-width:none precisa ficar explicito: a section pai declara layout
	   "constrained", entao sem isso o WP aplica seu proprio max-width (contentSize,
	   720px) neste filho por nao ter align. */
	width: 100%;
	max-width: none;
	margin: 0 auto;
	padding-left: 0;
	padding-right: 0;
	box-sizing: border-box;
}

@media (max-width: 780px) {
	.experiencias-grid {
		/* A secao pai (full-bleed) ja da os 20px de respiro via breakout —
		   padding proprio aqui somava mais 20px em cima, dobrando pra 40px. */
		padding-left: 0;
		padding-right: 0;
	}

	.experiencias-grid__card-tag {
		flex-direction: column;
		align-items: flex-start;
		gap: 6px;
	}
}

.experiencias-grid__eyebrow {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 13px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.14em;
	color: #5f6754;
	text-align: left;
	margin: 0 0 16px;
}

.experiencias-grid__titulo {
	font-family: var(--wp--preset--font-family--heading);
	font-size: clamp(24px, 3.5vw, 38px);
	font-weight: 400;
	color: #1c2126;
	text-align: left;
	max-width: 540px;
	margin: 0 0 64px;
	letter-spacing: -0.01em;
}

.experiencias-grid__cards {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1px;
	background: rgba(44, 42, 38, 0.12);
	border: 1px solid rgba(44, 42, 38, 0.12);
}

.experiencias-grid__cards > * {
	margin-block-start: 0;
}

.experiencias-grid__card {
	background: var(--wp--preset--color--background);
	padding: 48px;
}

.experiencias-grid__card-icon {
	width: 32px;
	height: 32px;
	background-color: #5f6754;
	margin: 0 0 24px;
}

.experiencias-grid__card-icon[data-icon="montanha"] {
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m8 3-6 18h20L14 9l-3 4-3-10z'/%3E%3C/svg%3E") center / contain no-repeat;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m8 3-6 18h20L14 9l-3 4-3-10z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.experiencias-grid__card-icon[data-icon="futebol"] {
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='m12 8 3.5 2.5-1.3 4h-4.4l-1.3-4z'/%3E%3Cpath d='M12 8V4M15.5 10.5l3.5-1M8.5 10.5 5 9.5M9.8 14.5 8 18M14.2 14.5 16 18'/%3E%3C/svg%3E") center / contain no-repeat;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='m12 8 3.5 2.5-1.3 4h-4.4l-1.3-4z'/%3E%3Cpath d='M12 8V4M15.5 10.5l3.5-1M8.5 10.5 5 9.5M9.8 14.5 8 18M14.2 14.5 16 18'/%3E%3C/svg%3E") center / contain no-repeat;
}

.experiencias-grid__card-icon[data-icon="negocios"] {
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='7' width='20' height='14' rx='2'/%3E%3Cpath d='M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16'/%3E%3C/svg%3E") center / contain no-repeat;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='7' width='20' height='14' rx='2'/%3E%3Cpath d='M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16'/%3E%3C/svg%3E") center / contain no-repeat;
}

.experiencias-grid__card-icon[data-icon="cultura"] {
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 21h18M4 21V10M20 21V10M2 10l10-6 10 6M8 21v-6M12 21v-6M16 21v-6'/%3E%3C/svg%3E") center / contain no-repeat;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 21h18M4 21V10M20 21V10M2 10l10-6 10 6M8 21v-6M12 21v-6M16 21v-6'/%3E%3C/svg%3E") center / contain no-repeat;
}

.experiencias-grid__card h3 {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 20px;
	font-weight: 500;
	color: #1c2126;
	margin: 0 0 14px;
}

.experiencias-grid__card p {
	font-size: 15px;
	line-height: 1.75;
	color: #4a4841;
	margin: 0;
}

.experiencias-grid__card-tag {
	display: flex;
	gap: 10px;
	align-items: baseline;
	margin-top: 20px;
	padding-top: 20px;
	border-top: 1px solid rgba(44, 42, 38, 0.12);
}

.experiencias-grid__card-tag strong {
	flex-shrink: 0;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: #5f6754;
}

.experiencias-grid__card-tag span {
	font-size: 14px;
	line-height: 1.6;
	color: #4a4841;
}

@media (max-width: 780px) {
	.experiencias-grid__cards {
		grid-template-columns: 1fr;
	}

	.experiencias-grid__card {
		padding: 36px 28px;
	}
}

/* Recap de eventos — link para a página dedicada */
.experiencias-eventos {
	max-width: 700px;
	margin: 0 auto;
	text-align: center;
}

.experiencias-eventos__eyebrow {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 13px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.14em;
	color: #5f6754;
	margin: 0 0 16px;
}

.experiencias-eventos__titulo {
	font-family: var(--wp--preset--font-family--heading);
	font-size: clamp(24px, 3vw, 32px);
	font-weight: 400;
	color: #1c2126;
	margin: 0 0 20px;
}

.experiencias-eventos__corpo {
	font-size: 16px;
	line-height: 1.8;
	color: #4a4841;
	margin: 0 0 32px;
}

.experiencias-eventos__cta {
	justify-content: center;
}

/* CTA final — reaproveita o cartão .localizacao__banner num fundo escuro dedicado */
.experiencias-cta {
	position: relative;
	overflow: hidden;
	background: radial-gradient(circle at center, #3b3a30 0%, #1c2126 65%);
	background-size: 200% 200%;
	animation: nhpn-bg-drift 10s ease-in-out infinite alternate;
}

.experiencias-cta .localizacao__banner {
	position: relative;
	z-index: 1;
	max-width: 960px;
	margin: 0 auto;
}

@media (max-width: 780px) {
	.experiencias-cta {
		padding-left: 20px !important;
		padding-right: 20px !important;
	}
}

/* Titulo dessa CTA especifica e mais longo que o padrao do banner (628px),
   precisa de mais espaco pra caber numa linha so. */
.experiencias-cta .localizacao__banner-title.wp-block-heading {
	max-width: 880px;
}

/* ─── PÁGINA 404 ─────────────────────────────────── */
.pagina-404 {
	position: relative;
	overflow: hidden;
	min-height: 100vh;
	display: flex;
	align-items: center;
	background: radial-gradient(circle at center, #3b3a30 0%, #1c2126 65%);
	background-size: 200% 200%;
	animation: nhpn-bg-drift 10s ease-in-out infinite alternate;
}

.pagina-404__inner {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: 1100px;
	margin: 0 auto;
	padding: 140px 48px 80px;
	text-align: center;
}

.pagina-404__eyebrow {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 13px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.14em;
	color: #cbc0ad;
	margin: 0 0 24px;
}

.pagina-404__titulo {
	font-family: var(--wp--preset--font-family--heading);
	font-size: clamp(24px, 2.4vw, 32px);
	font-weight: 500;
	line-height: 1.3;
	color: #edeae2;
	margin: 0 0 20px;
	letter-spacing: -0.01em;
}

.pagina-404__subtitulo {
	font-size: 16px;
	line-height: 1.75;
	color: rgba(255, 255, 255, 0.65);
	max-width: 480px;
	margin: 0 auto 48px;
}

.pagina-404__busca.wp-block-search {
	max-width: 460px;
	margin: 0 auto 64px;
}

.pagina-404__busca .wp-block-search__inside-wrapper {
	border: 1px solid rgba(255, 255, 255, 0.25);
	border-radius: 0;
	background: rgba(255, 255, 255, 0.03);
}

.pagina-404__busca .wp-block-search__input {
	background: transparent;
	border: none;
	color: #edeae2;
	font-family: var(--wp--preset--font-family--body);
	font-size: 15px;
	padding: 16px 20px;
}

.pagina-404__busca .wp-block-search__input::placeholder {
	color: rgba(255, 255, 255, 0.45);
}

.pagina-404__busca .wp-block-search__input:focus {
	outline: none;
}

/* Botao nativo de limpar do input[type=search] (o "x" azul do Chrome) —
   substitui pelo visual do DS: um x fino em mask-icon, sem o azul padrao
   do navegador. */
.pagina-404__busca .wp-block-search__input::-webkit-search-cancel-button {
	-webkit-appearance: none;
	appearance: none;
	width: 16px;
	height: 16px;
	cursor: pointer;
	background-color: rgba(255, 255, 255, 0.45);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'/%3E%3Cline x1='6' y1='6' x2='18' y2='18'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'/%3E%3Cline x1='6' y1='6' x2='18' y2='18'/%3E%3C/svg%3E") center / contain no-repeat;
	transition: background-color 0.3s;
}

.pagina-404__busca .wp-block-search__input::-webkit-search-cancel-button:hover {
	background-color: #fff;
}

.pagina-404__busca .wp-block-search__button.wp-element-button {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-size: 11px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	padding: 16px 28px;
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--dark);
	border: none;
	border-radius: 0;
}

.pagina-404__busca .wp-block-search__button.wp-element-button:hover {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--white);
}

.pagina-404__divider.wp-block-separator {
	width: 64px !important;
	max-width: 64px !important;
	height: 0 !important;
	border: none !important;
	border-top: 1px solid rgba(255, 255, 255, 0.18) !important;
	margin: 0 auto 48px !important;
	opacity: 1 !important;
}

.pagina-404__secao-label {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 12px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.14em;
	color: rgba(255, 255, 255, 0.45);
	margin: 0 0 20px;
}

.pagina-404__links {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 16px;
	margin-bottom: 56px;
}

.pagina-404__link {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 14px 24px;
	box-sizing: border-box;
	border: 1px solid rgba(255, 255, 255, 0.2);
	color: #edeae2;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	text-decoration: none;
	transition: border-color 0.3s, background 0.3s;
}

.pagina-404__link:hover {
	background: rgba(255, 255, 255, 0.06);
	border-color: rgba(255, 255, 255, 0.4);
	color: #fff;
}

.pagina-404__link-icon {
	width: 14px;
	height: 14px;
	background-color: currentColor;
	flex-shrink: 0;
}

.pagina-404__link-icon--cama {
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 4v16'/%3E%3Cpath d='M2 8h18a2 2 0 0 1 2 2v10'/%3E%3Cpath d='M2 17h20'/%3E%3Cpath d='M6 8V6a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v2'/%3E%3C/svg%3E") center / contain no-repeat;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 4v16'/%3E%3Cpath d='M2 8h18a2 2 0 0 1 2 2v10'/%3E%3Cpath d='M2 17h20'/%3E%3Cpath d='M6 8V6a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v2'/%3E%3C/svg%3E") center / contain no-repeat;
}

.pagina-404__link-icon--calendario {
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cline x1='16' y1='2' x2='16' y2='6'/%3E%3Cline x1='8' y1='2' x2='8' y2='6'/%3E%3Cline x1='3' y1='10' x2='21' y2='10'/%3E%3C/svg%3E") center / contain no-repeat;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cline x1='16' y1='2' x2='16' y2='6'/%3E%3Cline x1='8' y1='2' x2='8' y2='6'/%3E%3Cline x1='3' y1='10' x2='21' y2='10'/%3E%3C/svg%3E") center / contain no-repeat;
}

.pagina-404__link-icon--local {
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E") center / contain no-repeat;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E") center / contain no-repeat;
}

.pagina-404__contato {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 12px 40px;
}

.pagina-404__contato .contact-item {
	font-size: 14px;
}

@media (max-width: 600px) {
	.pagina-404__inner {
		padding: 120px 24px 64px;
	}

	.pagina-404__link {
		width: 100%;
		justify-content: center;
	}

	.pagina-404__links {
		flex-direction: column;
	}
}

/* ─── PÁGINA DE BUSCA ────────────────────────────── */
.busca-toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	margin-bottom: 48px;
}

.busca-toolbar--centro {
	justify-content: center;
	margin: 32px 0;
}

.busca-toolbar__busca {
	width: 100%;
	max-width: 340px;
}

.busca-toolbar__busca .search-form {
	display: flex;
	border: 1px solid rgba(44, 42, 38, 0.25);
	background: transparent;
}

.busca-toolbar__busca .search-form label {
	flex: 1;
	display: flex;
}

.busca-toolbar__busca .search-field {
	flex: 1;
	width: 100%;
	background: transparent;
	border: none;
	color: #2c2a26;
	font-family: var(--wp--preset--font-family--body);
	font-size: 14px;
	padding: 12px 16px;
}

.busca-toolbar__busca .search-field::placeholder {
	color: rgba(44, 42, 38, 0.45);
}

.busca-toolbar__busca .search-field:focus {
	outline: none;
}

.busca-toolbar__busca .search-field::-webkit-search-cancel-button {
	-webkit-appearance: none;
	appearance: none;
	width: 14px;
	height: 14px;
	cursor: pointer;
	background-color: rgba(44, 42, 38, 0.4);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'/%3E%3Cline x1='6' y1='6' x2='18' y2='18'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'/%3E%3Cline x1='6' y1='6' x2='18' y2='18'/%3E%3C/svg%3E") center / contain no-repeat;
	transition: background-color 0.3s;
}

.busca-toolbar__busca .search-field::-webkit-search-cancel-button:hover {
	background-color: #2c2a26;
}

.busca-toolbar__busca .search-submit {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 11px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	padding: 12px 20px;
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--dark);
	border: none;
	cursor: pointer;
}

.busca-toolbar__busca .search-submit:hover {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--white);
}

.busca-resultados {
	max-width: 1100px;
	margin: 0 auto;
	/* Padding fixo, nao so max-width+auto-margin: perto dos 1100px de
	   largura o respiro automatico quase some (ex: 1149px de viewport sobra
	   so ~24px de cada lado). Mesmo padrao das outras secoes do site. */
	padding-left: 48px;
	padding-right: 48px;
	box-sizing: border-box;
}

@media (max-width: 600px) {
	.busca-resultados {
		padding-left: 24px;
		padding-right: 24px;
	}
}

.busca-filtro__botoes {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 32px;
}

.busca-filtro__botao {
	background: none;
	border: none;
	padding: 0 0 6px;
	cursor: pointer;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: rgba(44, 42, 38, 0.5);
	border-bottom: 1px solid transparent;
	transition: color 0.25s, border-color 0.25s;
}

.busca-filtro__botao:hover {
	color: #2c2a26;
}

.busca-filtro__botao.is-active {
	color: #2c2a26;
	border-bottom-color: #5f6754;
}

.busca-resultados__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1px;
	background: rgba(44, 42, 38, 0.12);
	border: 1px solid rgba(44, 42, 38, 0.12);
}

.busca-resultados__card {
	background: var(--wp--preset--color--background);
	padding: 40px;
	text-decoration: none;
	transition: background 0.3s;
}

.busca-resultados__card:hover {
	background: rgba(203, 192, 173, 0.15);
}

.busca-resultados__card.is-oculto {
	display: none;
}

.busca-resultados__card-tipo {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: #5f6754;
	margin: 0 0 16px;
}

.busca-resultados__card-titulo {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 20px;
	font-weight: 500;
	color: #1c2126;
	line-height: 1.3;
	margin: 0 0 16px;
}

.busca-resultados__card-data {
	font-size: 13px;
	color: #6b6459;
	margin: 0;
}

.busca-resultados__vazio {
	text-align: center;
	max-width: 520px;
	margin: 0 auto;
}

.busca-resultados__vazio p {
	font-size: 17px;
	line-height: 1.7;
	color: #4a4841;
	margin: 0 0 32px;
}

.busca-resultados__vazio-links {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 16px;
}

@media (max-width: 900px) {
	.busca-resultados__grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 600px) {
	.busca-resultados__grid {
		grid-template-columns: 1fr;
	}

	.busca-resultados__card {
		padding: 28px 24px;
	}
}

/* ─── BLOG — ARCHIVE ─────────────────────────────── */
/* Largura do header (100vw menos as mesmas margens de 48px), mesma tecnica
   usada no grid de Acomodacoes e no filtro da Galeria. */
.blog-grid {
	width: calc(100vw - 96px);
	margin-left: calc(50% - 50vw + 48px);
	margin-right: calc(50% - 50vw + 48px);
}

.blog-grid__track.wp-block-post-template {
	gap: 48px 32px;
}

.blog-grid__track > li {
	margin-block-start: 0;
	border: 1px solid rgba(44, 42, 38, 0.14);
	overflow: hidden;
	transition: border-color 0.35s, transform 0.35s cubic-bezier(0.2, 0.8, 0.2, 1), box-shadow 0.35s;
}

.blog-grid__track > li:hover {
	border-color: rgba(44, 42, 38, 0.4);
	transform: translateY(-6px);
	box-shadow: 0 20px 40px rgba(28, 33, 38, 0.12);
}

.blog-grid__img.wp-block-post-featured-image {
	margin: 0;
	overflow: hidden;
}

.blog-grid__img img {
	transition: transform 0.6s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.blog-grid__track > li:hover .blog-grid__img img {
	transform: scale(1.06);
}

.blog-grid__titulo.wp-block-post-title {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 20px;
	font-weight: 500;
	line-height: 1.35;
	margin: 24px 24px 12px;
}

.blog-grid__titulo a {
	color: #1c2126;
	text-decoration: none;
	transition: color 0.3s;
}

.blog-grid__track > li:hover .blog-grid__titulo a {
	color: #5f6754;
}

.blog-grid__resumo.wp-block-post-excerpt {
	margin: 0 24px 24px;
}

.blog-grid__resumo .wp-block-post-excerpt__excerpt {
	font-family: var(--wp--preset--font-family--body);
	font-size: 15px;
	line-height: 1.7;
	color: #6b6459;
	margin: 0;
}

.blog-grid__vazio {
	text-align: center;
	font-size: 16px;
	color: #6b6459;
}

.blog-grid__paginacao.wp-block-query-pagination {
	margin-top: 72px;
	gap: 24px;
}

.blog-grid__paginacao a,
.blog-grid__paginacao span {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 13px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #6b6459;
	text-decoration: none;
}

.blog-grid__paginacao .current {
	color: #1c2126;
	font-weight: 600;
}

.blog-grid__paginacao a:hover {
	color: #1c2126;
}

@media (max-width: 900px) {
	.blog-grid__track.wp-block-post-template.is-layout-grid {
		grid-template-columns: repeat(2, 1fr) !important;
	}
}

@media (max-width: 600px) {
	.blog-grid {
		width: calc(100vw - 40px);
		margin-left: calc(50% - 50vw + 20px);
		margin-right: calc(50% - 50vw + 20px);
	}

	.blog-grid__track.wp-block-post-template.is-layout-grid {
		grid-template-columns: 1fr !important;
	}
}

/* ─── BLOG — POST INTERNO ────────────────────────── */

/* Barra de progresso de leitura, fixa no topo, preenchida via JS */
.reading-progress {
	position: fixed;
	top: 0;
	left: 0;
	width: 0%;
	height: 3px;
	background: var(--wp--preset--color--primary);
	z-index: 300;
	transition: width 0.1s linear;
}

/* Hero — imagem destacada em tela cheia com scrim escuro */
.post-hero {
	position: relative;
	min-height: 75vh;
	display: flex;
	align-items: flex-end;
	background-color: #1c2126;
	background-size: cover;
	background-position: center;
	overflow: hidden;
}

.post-hero__scrim {
	position: absolute;
	inset: 0;
	/* Nunca deixa a opacidade cair demais no topo (onde fica o header): uma
	   foto clara ou com muito elemento visual (ex: uma tela de projetor)
	   comprometeria a leitura da logo/menu ali. O ponto mais claro do
	   degrade agora e 0.4, nao 0.15. */
	background: linear-gradient(180deg, rgba(28, 33, 38, 0.55) 0%, rgba(28, 33, 38, 0.4) 25%, rgba(28, 33, 38, 0.6) 55%, rgba(28, 33, 38, 0.92) 100%);
}

/* Reforco dedicado pro header: um scrim proprio, independente da foto de
   fundo, garantindo contraste do menu/logo mesmo antes do scroll ativar o
   fundo solido do header (.is-scrolled). Some sozinho quando .is-scrolled
   entra, porque o seletor para de casar. */
body:has(.post-hero) .site-header:not(.is-scrolled) {
	background: linear-gradient(180deg, rgba(20, 24, 28, 0.6) 0%, rgba(20, 24, 28, 0) 100%);
}

.post-hero__inner {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: 900px;
	margin: 0 auto;
	padding: 48px 48px 72px;
	text-align: center;
}

.post-hero__categoria {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 12px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.16em;
	color: #cbc0ad;
	margin: 0 0 20px;
}

.post-hero__titulo {
	font-family: var(--wp--preset--font-family--heading);
	font-size: clamp(30px, 4.5vw, 52px);
	font-weight: 500;
	line-height: 1.2;
	color: #edeae2;
	margin: 0 0 24px;
	letter-spacing: -0.01em;
}

.post-hero__meta {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	font-family: var(--wp--preset--font-family--body);
	font-size: 14px;
	color: rgba(255, 255, 255, 0.65);
	text-transform: uppercase;
	letter-spacing: 0.06em;
}

.post-hero__meta-sep {
	color: rgba(255, 255, 255, 0.35);
}

/* Layout — sumario fixo + coluna de leitura */
.post-layout {
	display: grid;
	grid-template-columns: 220px minmax(0, 700px);
	justify-content: center;
	gap: 80px;
	max-width: 1100px;
	margin: 0 auto;
	padding-left: 48px;
	padding-right: 48px;
	box-sizing: border-box;
}

.post-layout--sem-toc {
	grid-template-columns: minmax(0, 700px);
}

.post-aside {
	position: relative;
}

.post-aside__sticky {
	position: sticky;
	top: 112px;
}

.post-aside__titulo {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.14em;
	color: #6b6459;
	margin: 0 0 16px;
}

.post-toc {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin-bottom: 40px;
	padding-bottom: 40px;
	border-bottom: 1px solid rgba(44, 42, 38, 0.14);
}

.post-toc__link {
	font-family: var(--wp--preset--font-family--body);
	font-size: 14px;
	line-height: 1.5;
	color: #6b6459;
	text-decoration: none;
	padding-left: 14px;
	border-left: 2px solid rgba(44, 42, 38, 0.12);
	transition: color 0.25s, border-color 0.25s;
}

.post-toc__link:hover {
	color: #1c2126;
}

.post-toc__link.is-active {
	color: #1c2126;
	border-left-color: #5f6754;
	font-weight: 500;
}

.post-share__botoes {
	display: flex;
	gap: 12px;
}

.post-share__btn {
	width: 38px;
	height: 38px;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 1px solid rgba(44, 42, 38, 0.2);
	background: transparent;
	cursor: pointer;
	position: relative;
	transition: border-color 0.3s, background 0.3s;
}

.post-share__btn:hover {
	border-color: #5f6754;
	background: rgba(95, 103, 84, 0.06);
}

.post-share__btn::before {
	content: '';
	width: 16px;
	height: 16px;
	background-color: #4a4841;
}

.post-share__btn--whatsapp::before {
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347z'/%3E%3Cpath d='M12 0C5.373 0 0 5.373 0 12c0 2.123.553 4.116 1.52 5.845L.057 23.617a.5.5 0 0 0 .612.612l5.772-1.463A11.95 11.95 0 0 0 12 24c6.627 0 12-5.373 12-12S18.627 0 12 0zm0 22a9.95 9.95 0 0 1-5.073-1.384l-.364-.216-3.767.955.972-3.648-.237-.378A9.95 9.95 0 0 1 2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347z'/%3E%3Cpath d='M12 0C5.373 0 0 5.373 0 12c0 2.123.553 4.116 1.52 5.845L.057 23.617a.5.5 0 0 0 .612.612l5.772-1.463A11.95 11.95 0 0 0 12 24c6.627 0 12-5.373 12-12S18.627 0 12 0zm0 22a9.95 9.95 0 0 1-5.073-1.384l-.364-.216-3.767.955.972-3.648-.237-.378A9.95 9.95 0 0 1 2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.post-share__btn--copiar::before {
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71'/%3E%3Cpath d='M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71'/%3E%3Cpath d='M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71'/%3E%3C/svg%3E") center / contain no-repeat;
}

.post-share__btn.is-copiado::after {
	content: 'Link copiado';
	position: absolute;
	bottom: calc(100% + 8px);
	left: 50%;
	transform: translateX(-50%);
	background: #1c2126;
	color: #fff;
	font-size: 11px;
	letter-spacing: 0.04em;
	white-space: nowrap;
	padding: 6px 10px;
}

/* Tipografia de leitura */
.post-content {
	font-family: var(--wp--preset--font-family--body);
	font-size: 18px;
	line-height: 1.85;
	color: #2c2a26;
}

.post-content--sem-toc {
	margin: 0 auto;
}

.post-content > * {
	margin-block-start: 0;
	margin-block-end: 32px;
}

.post-content > p:first-of-type {
	font-family: var(--wp--preset--font-family--highlight);
	font-style: italic;
	font-size: 24px;
	line-height: 1.55;
	color: #1c2126;
}

.post-content a {
	color: #4a5040;
	text-decoration: underline;
	text-decoration-color: rgba(74, 80, 64, 0.35);
	text-underline-offset: 3px;
	transition: text-decoration-color 0.25s;
}

.post-content a:hover {
	text-decoration-color: #4a5040;
}

.post-content h2 {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 30px;
	font-weight: 500;
	line-height: 1.3;
	color: #1c2126;
	margin-top: 64px;
	scroll-margin-top: 112px;
}

.post-content h3 {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 22px;
	font-weight: 500;
	line-height: 1.35;
	color: #1c2126;
	margin-top: 48px;
}

.post-content blockquote {
	position: relative;
	margin: 48px 0;
	padding: 8px 0 8px 40px;
	border-left: 2px solid #5f6754;
}

.post-content blockquote::before {
	content: '\201C';
	position: absolute;
	left: -6px;
	top: -24px;
	font-family: var(--wp--preset--font-family--highlight);
	font-style: italic;
	font-size: 72px;
	color: rgba(95, 103, 84, 0.25);
	line-height: 1;
}

.post-content blockquote p {
	font-family: var(--wp--preset--font-family--highlight);
	font-style: italic;
	font-size: 24px;
	line-height: 1.5;
	color: #1c2126;
	margin: 0 0 12px;
}

.post-content blockquote cite {
	font-family: var(--wp--preset--font-family--body);
	font-style: normal;
	font-size: 13px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: #6b6459;
}

.post-content ul,
.post-content ol {
	padding-left: 24px;
}

.post-content li {
	margin-bottom: 12px;
}

.post-content figure {
	margin: 0;
}

.post-content .wp-block-image img,
.post-content .wp-block-gallery img {
	width: 100%;
	display: block;
}

.post-content .wp-block-image figcaption {
	font-size: 14px;
	color: #6b6459;
	text-align: center;
	margin-top: 12px;
}

.post-content .wp-block-gallery {
	gap: 8px !important;
}

.post-content .wp-block-gallery figure {
	overflow: hidden;
}

.post-content .wp-block-gallery img {
	transition: transform 0.6s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.post-content .wp-block-gallery figure:hover img {
	transform: scale(1.06);
}

.post-content table {
	width: 100%;
	border-collapse: collapse;
	font-size: 15px;
}

.post-content table th,
.post-content table td {
	padding: 14px 16px;
	border: 1px solid rgba(44, 42, 38, 0.15);
	text-align: left;
}

.post-content table th {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	background: rgba(203, 192, 173, 0.2);
}

.post-content pre.wp-block-code {
	background: #1c2126;
	color: #edeae2;
	padding: 24px;
	overflow-x: auto;
	border: none;
}

.post-content pre.wp-block-code code {
	font-family: 'Courier New', monospace;
	font-size: 14px;
	line-height: 1.6;
}

.post-content .wp-block-file {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
	padding: 24px 28px;
	border: 1px solid rgba(44, 42, 38, 0.18);
	background: rgba(203, 192, 173, 0.1);
}

.post-content .wp-block-file a:first-child {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 15px;
	font-weight: 500;
	color: #1c2126;
	text-decoration: none;
}

.post-content .wp-block-file__button.wp-element-button {
	display: inline-flex;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 11px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	padding: 10px 20px;
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--dark);
	text-decoration: none;
}

.post-content .wp-block-file__button.wp-element-button:hover {
	background: var(--wp--preset--color--accent);
	color: #fff;
}

.post-content .wp-block-columns {
	gap: 40px;
}

.post-content .wp-block-buttons {
	gap: 16px;
}

.post-content .wp-block-separator {
	border: none;
	border-top: 1px solid rgba(44, 42, 38, 0.15);
	margin: 56px 0;
}

.post-content video {
	/* max-height + width:auto evita que um video vertical (ex: conteudo
	   estilo "reels") estique a altura absurda dentro da coluna de leitura —
	   ele fica limitado e centralizado em vez de esticar em width:100%. */
	display: block;
	max-width: 100%;
	max-height: 640px;
	width: auto;
	margin: 0 auto;
}

/* Fechamento — CTA de reserva */
/* CTA de fechamento — reaproveita o mesmo cartao .localizacao__banner usado
   na home/Sobre o Hotel/Experiencias. Sem wrapper escuro duplicado: o
   proprio banner carrega o fundo e ocupa 100% da largura do bloco. */
.post-cta {
	max-width: 1100px;
	margin: 96px auto 0;
	padding: 0 48px;
	box-sizing: border-box;
}

.post-cta .localizacao__banner {
	max-width: none;
	margin: 0;
	background: radial-gradient(circle at center, #3b3a30 0%, #1c2126 65%);
	border-radius: 4px;
}

/* Navegação entre posts */
.post-navegacao {
	max-width: 1100px;
	margin: 56px auto 0;
	padding: 32px 48px 0;
	box-sizing: border-box;
	border-top: 1px solid rgba(44, 42, 38, 0.14);
}

.post-navegacao a {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 13px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #4a4841;
	text-decoration: none;
}

.post-navegacao a:hover {
	color: #1c2126;
}

/* Posts relacionados */
.post-relacionados {
	max-width: 1100px;
	margin: 88px auto 0;
	padding-left: 48px;
	padding-right: 48px;
	box-sizing: border-box;
}

.post-relacionados__titulo {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 13px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.14em;
	color: #6b6459;
	margin: 0 0 32px;
	text-align: center;
}

.post-relacionados__grid.blog-grid__track {
	display: grid;
	/* auto-fit em vez de repeat(3,1fr) fixo: com menos de 3 posts
	   relacionados as cards existentes esticam e preenchem a largura
	   total do bloco, em vez de deixar colunas vazias sobrando. */
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 32px;
}

.post-relacionados__card {
	display: block;
	text-decoration: none;
	border: 1px solid rgba(44, 42, 38, 0.14);
	overflow: hidden;
	transition: border-color 0.35s, transform 0.35s cubic-bezier(0.2, 0.8, 0.2, 1), box-shadow 0.35s;
}

.post-relacionados__card:hover {
	border-color: rgba(44, 42, 38, 0.4);
	transform: translateY(-4px);
	box-shadow: 0 16px 32px rgba(28, 33, 38, 0.1);
}

.post-relacionados__img {
	aspect-ratio: 4 / 3;
	overflow: hidden;
}

.post-relacionados__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.6s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.post-relacionados__card:hover .post-relacionados__img img {
	transform: scale(1.06);
}

.post-relacionados__card-titulo {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 17px;
	font-weight: 500;
	color: #1c2126;
	line-height: 1.35;
	margin: 20px 20px 24px;
}

@media (max-width: 1024px) {
	.post-layout {
		grid-template-columns: minmax(0, 700px);
		gap: 0;
	}

	/* Sem sidebar fixa nessa largura: sumario e compartilhar viram um bloco
	   compacto acima do artigo, em vez de sumir. */
	.post-aside {
		order: -1;
		margin-bottom: 40px;
	}

	.post-aside__sticky {
		position: static;
		display: flex;
		flex-wrap: wrap;
		align-items: flex-start;
		justify-content: space-between;
		gap: 24px;
		padding: 24px;
		border: 1px solid rgba(44, 42, 38, 0.14);
	}

	.post-toc {
		flex-direction: row;
		flex-wrap: wrap;
		margin-bottom: 0;
		padding-bottom: 0;
		border-bottom: none;
		gap: 8px 16px;
	}

	.post-toc__link {
		border-left: none;
		padding-left: 0;
		font-size: 13px;
	}

	.post-share {
		flex-shrink: 0;
	}
}

@media (max-width: 900px) {
	.post-relacionados__grid.blog-grid__track {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 780px) {
	.post-hero__inner {
		padding: 32px 24px 48px;
		text-align: left;
	}

	/* clamp da versao desktop (min 30px) nao encolhe o suficiente em telas
	   estreitas para titulos longos — 4-6 linhas comendo boa parte do hero.
	   Piso mais baixo + vw maior reduz o tamanho de fato no mobile. */
	.post-hero__titulo {
		font-size: clamp(22px, 7vw, 34px);
		line-height: 1.25;
		margin-bottom: 16px;
	}

	.post-hero__meta {
		font-size: 12px;
		gap: 4px 8px;
		flex-wrap: wrap;
		justify-content: flex-start;
	}

	/* Sem quebra de linha no meio da data / tempo de leitura: se nao
	   couberem lado a lado, o item inteiro cai pra linha de baixo. */
	.post-hero__meta > span {
		white-space: nowrap;
	}

	.post-hero__meta-sep {
		display: none;
	}

	.post-conteudo-wrap {
		padding-top: 48px !important;
	}

	.post-layout {
		padding-left: 20px;
		padding-right: 20px;
	}

	.post-content {
		font-size: 16px;
	}

	/* Escala tipografica mobile — sem isso, titulos e citacoes ficavam do
	   mesmo tamanho do desktop numa coluna 3x mais estreita. */
	.post-content > p:first-of-type {
		font-size: 18px;
	}

	.post-content h2 {
		font-size: 22px;
		margin-top: 40px;
	}

	.post-content h3 {
		font-size: 18px;
		margin-top: 32px;
	}

	.post-content blockquote {
		margin: 32px 0;
		padding: 8px 0 8px 24px;
	}

	.post-content blockquote::before {
		font-size: 56px;
		left: -4px;
		top: -18px;
	}

	.post-content blockquote p {
		font-size: 18px;
	}

	.post-content table {
		font-size: 13px;
	}

	.post-cta {
		margin-top: 64px;
		padding: 0;
	}

	.post-cta .localizacao__banner-cta .wp-block-button__link {
		white-space: nowrap;
	}

	.post-navegacao {
		padding-left: 24px;
		padding-right: 24px;
	}

	.post-relacionados {
		padding-left: 24px;
		padding-right: 24px;
	}

	.post-relacionados__grid.blog-grid__track {
		grid-template-columns: 1fr;
	}
}
