/* =============================================================================
   MODELO PRIVILEGE — estrutura e movimento no padrão Terravista, marca do cliente
   -----------------------------------------------------------------------------
   Tokens no :root (troque aqui para outro cliente). ?paleta=terravista na URL
   aplica a paleta azul-marinho original, só para comparar.
   ============================================================================= */

@font-face { font-family: "Instrument Serif"; font-style: normal; font-weight: 400; font-display: swap;
  src: url("../fonts/instrument-serif-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Instrument Serif"; font-style: italic; font-weight: 400; font-display: swap;
  src: url("../fonts/instrument-serif-italic.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Work Sans"; font-style: normal; font-weight: 300 600; font-display: swap;
  src: url("../fonts/work-sans-var.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

/* ------------------------------------------------------------------ TOKENS */
:root {
  /* papel (fundos) — off-white quente e areia do site da Reserva */
  --cream: #ece6de;
  --cream-deep: #d9cfc3;
  --surface: #e5ded4;
  --surface-3: #f4f1ec;
  /* tinta (textos, filetes, botões) — o carvão da logo da Reserva Linha Imperial */
  --ink: #2d2a25;
  --ink-deep: #26231f;
  --text: #2d2a25;
  --text-dim: #625c53;
  --tinta: 38 35 31;                 /* rgb dos véus sobre foto */
  /* marca: a logo tem uma tinta só (carvão medido no arquivo) */
  --brasao-emblema-cor: #2d2a25;
  --brasao-palavra-cor: #2d2a25;
  /* mapa */
  --mapa-terra: #e9e2d8;
  --mapa-grade: rgb(38 35 31 / .06);
  --mapa-anel: rgb(38 35 31 / .24);
  --mapa-destaque: #8a5a36;
  --mapa-linha: #9a8f80;
  --mapa-rota-1: #b08c69;
  --mapa-rota-2: #2d2a25;
  --mapa-rota-3: #74705a;

  --f-display: "Instrument Serif", ui-serif, Georgia, serif;
  --f-corpo: "Work Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  --f-marca: "Instrument Serif", ui-serif, Georgia, serif;   /* sem arquivo da fonte da logo: a display do modelo */
  --ease: cubic-bezier(.25, .46, .45, .94);
  --gutter: 24px;
}
@media (min-width: 768px) { :root { --gutter: 48px; } }

/* paleta original da referência, para comparação (?paleta=terravista) */
[data-paleta="terravista"] {
  --cream: oklch(91.2% .012 85); --cream-deep: oklch(81.5% .022 82); --surface: oklch(89.5% .014 84); --surface-3: oklch(94% .008 86);
  --ink: oklch(27% .075 268); --ink-deep: oklch(22% .085 268); --text: oklch(27% .075 268); --text-dim: oklch(45% .05 265);
  --tinta: 15 25 55; --brasao-emblema-cor: oklch(27% .075 268); --brasao-palavra-cor: oklch(22% .085 268);
  --mapa-terra: #e6ddd0; --mapa-destaque: #b87333; --mapa-rota-1: #c8a882; --mapa-rota-2: #1a2a4e; --mapa-rota-3: #b87333;
}

/* ------------------------------------------------------------------ BASE */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; overflow-x: clip; }
body {
  margin: 0; min-width: 320px; overflow-x: clip;
  background-color: var(--cream);
  background-image: radial-gradient(at top, #f9f6f0, transparent 60%), radial-gradient(at bottom, rgb(226 220 207 / .5), transparent 70%);
  color: var(--text); font-family: var(--f-corpo); font-weight: 400; line-height: 1.7; font-size: 16px;
  -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
}
html.pv-travado, html.pv-travado body { overflow: hidden; }
html.pv-em-moldura { scrollbar-width: none; }
html.pv-em-moldura::-webkit-scrollbar { display: none; width: 0; height: 0; }
::selection { background: var(--ink); color: var(--cream); }
img, video, svg { display: block; max-width: 100%; }
a { color: inherit; }
button { font: inherit; color: inherit; }
h1, h2, h3, p { margin: 0; }
:focus-visible { outline: 1px solid var(--ink); outline-offset: 3px; }
.pv-sr { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.pv-pular-conteudo { position: absolute; left: -9999px; top: 12px; z-index: 100001; padding: 10px 16px; background: var(--cream); color: var(--ink); font-size: .8rem; }
.pv-pular-conteudo:focus { left: 12px; }
.pv-junto { white-space: nowrap; }
.pv-so-md { display: none; }
@media (min-width: 768px) { .pv-so-md { display: inline; } }

/* grão de filme por cima de tudo */
.pv-grao {
  position: fixed; top: -50%; left: -50%; width: 200%; height: 200%; z-index: 9998; pointer-events: none;
  opacity: .035; mix-blend-mode: multiply;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.12  0 0 0 0 0.13  0 0 0 0 0.11  0 0 0 0.35 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  animation: pv-grao 1.6s steps(6, end) infinite;
}
@keyframes pv-grao {
  0%, 100% { transform: translate(0); } 10% { transform: translate(-2%, -1%); } 20% { transform: translate(1%, 2%); }
  30% { transform: translate(-1%, 1%); } 40% { transform: translate(2%, -2%); } 50% { transform: translate(-2%, 2%); }
  60% { transform: translate(1%, -1%); } 70% { transform: translate(-1%, -2%); } 80% { transform: translate(2%, 1%); } 90% { transform: translate(-2%, -1%); }
}
@media (max-width: 767px) { .pv-grao { animation: none; } }

/* onda da marca (cor = currentColor) */
.pv-onda {
  display: inline-block; width: 56px; height: 14px; background: currentColor;
  -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 56 14'><path d='M0 7 Q 7 0, 14 7 T 28 7 T 42 7 T 56 7' fill='none' stroke='black' stroke-width='1.2' stroke-linecap='round'/></svg>") no-repeat center / contain;
          mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 56 14'><path d='M0 7 Q 7 0, 14 7 T 28 7 T 42 7 T 56 7' fill='none' stroke='black' stroke-width='1.2' stroke-linecap='round'/></svg>") no-repeat center / contain;
}
.pv-onda--clara { color: #fff; }

/* brasão: cores por contexto */
.pv-intro__brasao, .pv-nav__anel { color: var(--brasao-palavra-cor); --brasao-emblema: var(--brasao-emblema-cor); --brasao-palavra: var(--brasao-palavra-cor); }
.pv-hero__brasao, .pv-story__selo svg { color: #fff; --brasao-emblema: rgb(255 255 255 / .88); --brasao-palavra: #fff; }
svg[data-brasao] { width: auto; overflow: visible; }

/* entrada ao rolar */
html.pv-js [data-reveal] {
  opacity: 0; transform: translateY(40px);
  transition: opacity 1.1s var(--ease) var(--atraso, 0s), transform 1.1s var(--ease) var(--atraso, 0s);
}
html.pv-js [data-reveal].is-visivel { opacity: 1; transform: none; }

/* tipografia compartilhada */
.pv-eyebrow { font-family: var(--f-corpo); letter-spacing: .32em; text-transform: uppercase; color: var(--ink); font-size: .78rem; font-weight: 500; margin-bottom: 20px; }
.pv-cinema { font-family: var(--f-display); letter-spacing: .06em; color: var(--ink-deep); font-weight: 400; line-height: 1; font-size: clamp(2.2rem, 5vw, 4rem); }
.pv-cinema em { font-style: italic; letter-spacing: .04em; color: var(--ink); }
.pv-texto { color: var(--text-dim); letter-spacing: .04em; line-height: 1.9; }
.pv-centro { text-align: center; }
.pv-lead { margin: 24px auto 0; max-width: 42rem; }
.pv-lead--largo { margin-top: 32px; }
.pv-filete { display: block; margin: 0 auto; height: 1px; width: 64px; background: var(--ink); }

.pv-botao {
  display: inline-block; border: 1px solid var(--ink); padding: 16px 40px; font-size: .74rem; line-height: 1.5;
  text-transform: uppercase; letter-spacing: .3em; color: var(--ink); text-decoration: none; background: transparent;
  transition: background-color .5s var(--ease), color .5s var(--ease), border-color .5s var(--ease);
}
.pv-botao:hover { background: var(--ink); color: var(--cream); }
.pv-botao--claro { border-color: color-mix(in oklab, var(--cream) 55%, transparent); color: var(--cream); padding: 16px 48px; }
.pv-botao--claro:hover, .pv-botao--claro:focus-visible { background: var(--cream); border-color: var(--cream); color: var(--ink-deep); }
.pv-botao--p { padding: 11px 22px; font-size: .64rem; letter-spacing: .24em; }

/* pontos de navegação (stories e espaços) */
.pv-pontos { display: flex; align-items: center; justify-content: center; gap: 8px; }
.pv-pontos button {
  position: relative; height: 6px; width: 8px; padding: 0; border: 0; border-radius: 999px; cursor: pointer;
  background: color-mix(in oklab, var(--ink) 25%, transparent);
  transition: width .5s var(--ease), background-color .5s var(--ease);
}
.pv-pontos button::after { content: ""; position: absolute; inset: -10px -3px; }
.pv-pontos button.is-ativo { width: 28px; background: var(--ink); }

/* ------------------------------------------------------------------ ABERTURA */
.pv-intro { display: none; }
html.pv-com-intro .pv-intro {
  position: fixed; inset: 0; z-index: 10000; display: flex; align-items: center; justify-content: center;
  background: var(--cream); transition: opacity .8s var(--ease), visibility 0s linear .8s;
}
.pv-intro.is-saindo { opacity: 0; visibility: hidden; }
.pv-intro__brasao { height: 150px; animation: pv-sobe 1.2s var(--ease) both; }
@keyframes pv-sobe { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
.pv-intro__pular {
  position: absolute; right: 32px; bottom: 32px; padding: 8px 0; border: 0; background: none; cursor: pointer;
  font-size: .65rem; text-transform: uppercase; letter-spacing: .3em; color: var(--ink); opacity: .6; transition: opacity .3s;
}
.pv-intro__pular:hover, .pv-intro__pular:focus-visible { opacity: 1; }

/* ------------------------------------------------------------------ MENU */
.pv-nav {
  position: fixed; inset: 0 0 auto; z-index: 50; color: #fff;
  border-bottom: 1px solid rgb(255 255 255 / 0); background-color: transparent;
  opacity: 0; transform: translateY(-10px);
  transition: opacity 1s var(--ease) .2s, transform 1s var(--ease) .2s, background-color .6s var(--ease), border-color .6s var(--ease), color .6s var(--ease);
}
html.pv-intro-feita .pv-nav, html:not(.pv-js) .pv-nav { opacity: 1; transform: none; }
/* sobre o vídeo: um véu leve só atrás do menu, para leitura */
.pv-nav::before { content: ""; position: absolute; inset: 0 0 -48px; z-index: -1; pointer-events: none; background: linear-gradient(to bottom, rgb(var(--tinta) / .32), transparent); transition: opacity .6s var(--ease); }
.pv-nav.is-solido {
  color: var(--ink-deep); border-bottom-color: color-mix(in oklab, var(--ink) 14%, transparent);
  background-color: color-mix(in oklab, var(--cream) 90%, transparent); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
}
.pv-nav.is-solido::before { opacity: 0; }
.pv-nav__caixa { display: flex; max-width: 80rem; margin: 0 auto; align-items: center; justify-content: space-between; gap: 24px; padding: 24px var(--gutter); transition: padding .6s var(--ease); }
.pv-nav.is-solido .pv-nav__caixa { padding-top: 14px; padding-bottom: 14px; }
.pv-nav__marca { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; color: var(--ink-deep); min-width: 0; }
.pv-nav__anel { height: 26px; flex: none; }
.pv-nav__nome { font-family: var(--f-marca); font-weight: 500; text-transform: uppercase; letter-spacing: .17em; font-size: 1.12rem; line-height: 1; color: var(--brasao-palavra-cor); white-space: nowrap; }
.pv-nav .pv-nav__marca, .pv-nav .pv-nav__nome { color: inherit; transition: color .6s var(--ease); }
.pv-nav .pv-nav__anel { color: currentColor; --brasao-emblema: currentColor; }
.pv-nav.is-solido .pv-nav__nome { color: var(--brasao-palavra-cor); }
/* nome longo (22 letras): no celular estreito ele diminui para não encostar no botão do menu */
@media (max-width: 767px) { .pv-nav__nome { font-size: min(1.12rem, 4.1vw); } }
.pv-nav.is-solido .pv-nav__anel { --brasao-emblema: var(--brasao-emblema-cor); }
.pv-nav__links { display: none; align-items: center; gap: 34px; }
.pv-nav__links a { position: relative; padding: 6px 0; font-size: .66rem; font-weight: 500; line-height: 1; text-transform: uppercase; letter-spacing: .26em; color: rgb(255 255 255 / .82); text-decoration: none; transition: color .4s var(--ease); }
.pv-nav__links a::after { content: ""; position: absolute; left: 0; right: .26em; bottom: 0; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: left; transition: transform .6s var(--ease); }
.pv-nav__links a:hover { color: #fff; }
.pv-nav__links a:hover::after { transform: scaleX(1); }
.pv-nav.is-solido .pv-nav__links a { color: var(--text-dim); }
.pv-nav.is-solido .pv-nav__links a:hover { color: var(--ink-deep); }
.pv-nav__acoes { display: flex; align-items: center; gap: 14px; }
.pv-nav__reservar {
  display: none; border: 1px solid rgb(255 255 255 / .55); padding: 11px 22px; font-size: .64rem; line-height: 1; text-transform: uppercase; letter-spacing: .28em;
  color: #fff; text-decoration: none; transition: background-color .5s var(--ease), color .5s var(--ease), border-color .5s var(--ease);
}
.pv-nav__reservar:hover { background: #fff; border-color: #fff; color: var(--ink-deep); }
.pv-nav.is-solido .pv-nav__reservar { border-color: var(--ink); color: var(--ink-deep); }
.pv-nav.is-solido .pv-nav__reservar:hover { background: var(--ink); color: var(--cream); }
.pv-nav__abrir { display: flex; height: 40px; width: 40px; flex-direction: column; align-items: flex-end; justify-content: center; gap: 6px; padding: 0 4px; border: 0; background: none; cursor: pointer; color: inherit; }
.pv-nav__abrir span { display: block; height: 1px; width: 24px; background: currentColor; }
.pv-nav__abrir span + span { width: 16px; }
@media (min-width: 768px) { .pv-nav__reservar { display: inline-block; } }
/* links a partir de 1280 (com o idioma no menu, 1200 não cabe); 28px entre eles para caber também em espanhol */
@media (min-width: 1280px) {
  .pv-nav__links { display: flex; gap: 28px; white-space: nowrap; }
  .pv-nav__marca { flex: none; }
  .pv-nav__abrir { display: none; }
}

.pv-menu { position: fixed; inset: 0; z-index: 60; display: flex; flex-direction: column; background: var(--cream); opacity: 0; transition: opacity .4s var(--ease); }
.pv-menu[hidden] { display: none; }
.pv-menu.is-aberto { opacity: 1; }
.pv-menu__topo { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px var(--gutter); }
.pv-menu__fechar { border: 0; background: none; font-size: 2rem; line-height: 1; color: var(--ink-deep); cursor: pointer; padding: 4px 8px; }
.pv-menu__links { margin: auto; display: flex; flex-direction: column; align-items: center; gap: 26px; padding: 32px 24px; overflow-y: auto; }
.pv-menu__links a { font-family: var(--f-display); font-size: 2.25rem; line-height: 1.1; letter-spacing: .04em; color: var(--ink-deep); text-decoration: none; opacity: 0; transform: translateY(20px); transition: opacity .5s var(--ease), transform .5s var(--ease); }
.pv-menu.is-aberto .pv-menu__links a { opacity: 1; transform: none; }
.pv-menu__links a:nth-child(1) { transition-delay: .08s; } .pv-menu__links a:nth-child(2) { transition-delay: .13s; }
.pv-menu__links a:nth-child(3) { transition-delay: .18s; } .pv-menu__links a:nth-child(4) { transition-delay: .23s; }
.pv-menu__links a:nth-child(5) { transition-delay: .28s; } .pv-menu__links a:nth-child(6) { transition-delay: .33s; }
.pv-menu__links a:nth-child(7) { transition-delay: .38s; } .pv-menu__links a:nth-child(8) { transition-delay: .43s; }

/* idiomas: bandeira em traço de 1px + sigla, no tom do menu; o idioma atual leva o filete de 1px */
.pv-idioma {
  position: relative; display: inline-flex; align-items: center; gap: 7px; padding: 6px 0; font-size: .62rem; font-weight: 500; line-height: 1;
  text-transform: uppercase; letter-spacing: .22em; color: rgb(255 255 255 / .82); text-decoration: none; transition: color .4s var(--ease);
}
.pv-idioma span { position: relative; margin-right: -.22em; }
.pv-idioma span::after { content: ""; position: absolute; left: 0; right: .22em; bottom: -6px; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: left; transition: transform .6s var(--ease); }
.pv-idioma:hover { color: #fff; }
.pv-idioma:hover span::after, .pv-idioma[aria-current] span::after { transform: scaleX(1); }
.pv-bandeira { width: 16px; height: 11px; flex: none; overflow: visible; fill: none; stroke: currentColor; stroke-width: 1; }
/* no menu fixo (768+): sigla do idioma atual; abre a lista com os três */
.pv-idiomas-pc { position: relative; display: none; }
@media (min-width: 768px) { .pv-idiomas-pc { display: block; } }
.pv-idiomas-pc > summary { list-style: none; cursor: pointer; }
.pv-idiomas-pc > summary::-webkit-details-marker { display: none; }
.pv-idiomas-pc__seta { width: 9px; height: 6px; margin-left: 1px; flex: none; fill: none; stroke: currentColor; stroke-width: 1; transition: transform .4s var(--ease); }
.pv-idiomas-pc[open] .pv-idiomas-pc__seta { transform: rotate(180deg); }
.pv-nav.is-solido .pv-idiomas-pc > summary { color: var(--text-dim); }
.pv-nav.is-solido .pv-idiomas-pc > summary:hover, .pv-idiomas-pc[open] > summary { color: var(--ink-deep); }
.pv-nav:not(.is-solido) .pv-idiomas-pc[open] > summary { color: #fff; }
.pv-idiomas-pc__lista {
  position: absolute; top: calc(100% + 14px); right: -20px; display: flex; min-width: 10.5rem; flex-direction: column; padding: 8px 0;
  background: var(--cream); border: 1px solid color-mix(in oklab, var(--ink) 14%, transparent); box-shadow: 0 20px 50px -20px rgb(var(--tinta) / .35);
  animation: pv-idiomas-abre .35s var(--ease);
}
@keyframes pv-idiomas-abre { from { opacity: 0; transform: translateY(-6px); } }
.pv-idiomas-pc__lista .pv-idioma { padding: 13px 20px; gap: 12px; color: var(--text-dim); }
.pv-idiomas-pc__lista .pv-idioma span::after { bottom: -5px; }
.pv-idiomas-pc__lista .pv-idioma:hover, .pv-idiomas-pc__lista .pv-idioma[aria-current] { color: var(--ink-deep); }
/* menu de tela cheia (celular e tablet): os três lado a lado, embaixo */
.pv-idiomas--menu { display: flex; justify-content: center; gap: 30px; padding: 0 var(--gutter) calc(28px + env(safe-area-inset-bottom)); opacity: 0; transition: opacity .5s var(--ease) .48s; }
.pv-menu.is-aberto .pv-idiomas--menu { opacity: 1; }
.pv-idiomas--menu .pv-idioma { min-height: 44px; font-size: .66rem; letter-spacing: .26em; color: var(--text-dim); }
.pv-idiomas--menu .pv-idioma span { margin-right: -.26em; }
.pv-idiomas--menu .pv-idioma span::after { right: .26em; }
.pv-idiomas--menu .pv-idioma:hover, .pv-idiomas--menu .pv-idioma[aria-current] { color: var(--ink-deep); }

/* ------------------------------------------------------------------ TOPO */
.pv-hero {
  position: relative; display: flex; align-items: center; width: 100%; height: 100vh; height: 100svh; min-height: 640px;
  overflow: hidden; background: var(--ink-deep); color: var(--cream);
}
@media (min-width: 768px) { .pv-hero { align-items: flex-end; } }
.pv-hero__midia { position: absolute; inset: 0; will-change: translate; }
.pv-hero__video { width: 100%; height: 100%; max-width: none; object-fit: cover; filter: saturate(.94) contrast(1.05); }
/* topo em foto (a Reserva não tem vídeo horizontal): tela cheia com zoom muito lento, sem som */
.pv-hero__midia picture { display: block; width: 100%; height: 100%; }
.pv-hero__foto {
  width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: 50% 55%; filter: saturate(.94) contrast(1.05) brightness(.78);
  transform-origin: 30% 55%; animation: pv-hero-zoom 34s ease-in-out infinite alternate;
}
@media (max-width: 767px) { .pv-hero__foto { object-position: 30% 50%; transform-origin: 20% 60%; } } /* a mulher na ponta da varanda aparece à esquerda */
@keyframes pv-hero-zoom { from { transform: scale(1); } to { transform: scale(1.08); } }
.pv-hero__veu { position: absolute; inset: 0; background: linear-gradient(to bottom, rgb(var(--tinta) / .40) 0%, rgb(var(--tinta) / .05) 28%, rgb(var(--tinta) / .09) 60%, rgb(var(--tinta) / .58) 100%); }
.pv-hero__vinheta {
  position: absolute; inset: 0; opacity: .55;
  background: radial-gradient(ellipse at 50% 42%, transparent 34%, rgb(var(--tinta) / .5) 100%), linear-gradient(to bottom, rgb(var(--tinta) / .2) 0%, transparent 32%, transparent 56%, rgb(var(--tinta) / .8) 100%);
}
.pv-hero__conteudo {
  position: relative; z-index: 10; margin: 0 auto; display: flex; flex-direction: column; align-items: center; width: 100%; max-width: 80rem;
  padding: 0 var(--gutter) 64px; text-align: center; opacity: 0; transform: translateY(40px);
  transition: opacity 1.4s var(--ease) .6s, transform 1.4s var(--ease) .6s;
}
@media (min-width: 768px) { .pv-hero__conteudo { padding-bottom: 96px; } }
html.pv-intro-feita .pv-hero__conteudo, html:not(.pv-js) .pv-hero__conteudo { opacity: 1; transform: none; }
.pv-hero__brasao { height: clamp(128px, 20svh, 168px); }
.pv-hero__frase { margin-top: 32px; font-family: var(--f-display); font-style: italic; font-size: clamp(1rem, 1.4vw, 1.2rem); letter-spacing: .04em; color: color-mix(in oklab, var(--cream) 90%, transparent); }
/* três colunas: as laterais têm a mesma largura, então o item do meio fica no mesmo eixo da logo e da frase */
.pv-hero__coord {
  --coord-ls: .3em;
  margin-top: 40px; display: grid; width: 100%; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; column-gap: 12px;
  font-size: .68rem; line-height: 1.5; text-transform: uppercase; letter-spacing: var(--coord-ls); color: color-mix(in oklab, var(--cream) 75%, transparent);
}
.pv-hero__coord > * { white-space: nowrap; }
.pv-hero__coord-ini { justify-self: start; }
/* o espaçamento entre letras sobra depois da última letra: compensa para o centro ótico bater */
.pv-hero__coord-meio { justify-self: center; padding-left: var(--coord-ls); }
.pv-hero__coord-fim { justify-self: end; margin-right: calc(-1 * var(--coord-ls)); text-decoration: none; }
@media (max-width: 767px) {
  .pv-hero__coord { --coord-ls: .2em; font-size: clamp(.48rem, 2.4vw, .58rem); column-gap: 6px; }
}
@media (max-width: 359px) { .pv-hero__role { display: none; } }

/* ------------------------------------------------------------------ EXPERIÊNCIA */
.pv-exp { position: relative; padding: 64px var(--gutter); text-align: center; }
@media (min-width: 768px) { .pv-exp { padding-top: 80px; padding-bottom: 80px; } }
.pv-exp__lead { margin: 48px auto 0; max-width: 56rem; font-family: var(--f-display); font-style: italic; color: var(--text); font-size: clamp(2rem, 5.5vw, 4.5rem); line-height: 1.2; letter-spacing: .02em; }
.pv-exp__lead strong { font-style: normal; font-weight: 400; color: var(--ink); }
.pv-exp__corpo { margin: 40px auto 0; max-width: 36rem; }
.pv-exp__corpo--2 { margin-top: 24px; }
.pv-exp__ctas { margin-top: 48px; display: flex; flex-direction: column; align-items: center; gap: 16px; }
@media (min-width: 640px) { .pv-exp__ctas { flex-direction: row; justify-content: center; } }
.pv-filete--baixo { margin-top: 48px; }

/* ------------------------------------------------------------------ STORIES */
.pv-stories { position: relative; padding: 64px 0; background: var(--cream-deep); }
@media (min-width: 768px) { .pv-stories { padding: 96px 48px; } }
.pv-stories__topo { max-width: 80rem; margin: 0 auto; padding: 0 16px; text-align: center; }
.pv-sobretitulo { font-size: .68rem; text-transform: uppercase; letter-spacing: .32em; color: var(--ink); }
.pv-stories__titulo { margin: 16px auto 0; max-width: 48rem; font-family: var(--f-display); font-weight: 400; letter-spacing: .02em; font-size: clamp(2rem, 4.5vw, 3.4rem); line-height: 1.1; color: var(--ink); }

.pv-story { display: block; color: #fff; text-decoration: none; }
.pv-story__cartao {
  position: relative; overflow: hidden; aspect-ratio: 9 / 16; border-radius: 4px; background: var(--ink-deep);
  box-shadow: 0 30px 60px -20px rgb(var(--tinta) / .45);
}
.pv-story__foto { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; transform: scale(1); transition: transform 4.5s linear; }
.pv-story.is-ativo .pv-story__foto { transform: scale(1.08); }
.pv-story__veu { position: absolute; inset: 0; background: linear-gradient(to bottom, rgb(var(--tinta) / .55) 0%, rgb(var(--tinta) / .05) 30%, rgb(var(--tinta) / .15) 60%, rgb(var(--tinta) / .80) 100%); }
.pv-story__barra { position: absolute; left: 12px; right: 12px; top: 12px; z-index: 10; height: 1px; overflow: hidden; background: rgb(255 255 255 / .35); }
.pv-story__barra span { position: absolute; inset: 0 auto 0 0; width: 0; background: rgb(255 255 255 / .95); transition: width .3s linear; }
.pv-story.is-correndo .pv-story__barra span { width: 100%; transition: width 4.5s linear; }
/* a logo do lugar (só o emblema) no alto do cartão */
.pv-story__selo { position: absolute; left: 50%; top: 30px; transform: translateX(-50%); }
.pv-story__selo svg { height: 34px; }
@media (min-width: 640px) { .pv-story__selo svg { height: 38px; } }
@media (min-width: 768px) { .pv-story__selo { top: 34px; } .pv-story__selo svg { height: 44px; } }
.pv-story__centro { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 0 12px; text-align: center; color: #fff; }
.pv-story__display { font-family: var(--f-display); font-weight: 400; font-size: clamp(2.4rem, 5vw, 4rem); line-height: 1; letter-spacing: .02em; color: #fff; opacity: .85; transform: translateY(4px); transition: opacity .8s, transform .8s; }
.pv-story.is-ativo .pv-story__display { opacity: 1; transform: none; }
.pv-story__sub { margin-top: 8px; font-size: .6rem; text-transform: uppercase; letter-spacing: .32em; }
.pv-story__rodape { position: absolute; inset: auto 0 0; padding: 0 12px 20px; text-align: center; color: rgb(255 255 255 / .95); }
.pv-story__rodape p { white-space: pre-line; font-size: .55rem; text-transform: uppercase; letter-spacing: .28em; line-height: 1.7; }
.pv-story__rodape .pv-onda { display: block; margin: 12px auto 0; opacity: .7; }
@media (min-width: 768px) {
  .pv-story__sub { font-size: .7rem; }
  .pv-story__rodape p { font-size: .62rem; }
}

.pv-stories__navega { margin-top: 24px; display: flex; flex-direction: column; align-items: center; gap: 12px; }
.pv-dica { font-size: .58rem; text-transform: uppercase; letter-spacing: .2em; color: color-mix(in oklab, var(--ink) 40%, transparent); }

/* celular: um cartão por vez, desliza para o lado */
@media (max-width: 767px) {
  .pv-stories__palco { margin-top: 40px; padding: 0 16px; display: grid; gap: 24px; overflow: hidden; touch-action: pan-y; }
  /* com JS: os quatro no mesmo lugar, só o ativo aparece (vence a entrada ao rolar) */
  html.pv-js .pv-stories__palco > .pv-story[data-story] {
    grid-area: 1 / 1; opacity: 0; visibility: hidden; transform: translateX(calc(var(--dir, 1) * 56px));
    transition: opacity .4s var(--ease), transform .4s var(--ease), visibility 0s linear .4s;
  }
  html.pv-js .pv-stories__palco > .pv-story[data-story].is-saindo { transform: translateX(calc(var(--dir, 1) * -56px)); }
  html.pv-js .pv-stories__palco > .pv-story[data-story].is-ativo { opacity: 1; visibility: visible; transform: none; transition: opacity .4s var(--ease), transform .4s var(--ease), visibility 0s; }
}
/* PC: os quatro lado a lado, o ativo sobe e acende */
@media (min-width: 768px) {
  .pv-stories__palco { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; max-width: 80rem; margin: 56px auto 0; perspective: 1800px; }
  .pv-story__cartao {
    border-radius: 3px; cursor: pointer; filter: brightness(.55); box-shadow: 0 12px 30px -18px rgb(var(--tinta) / .35);
    transition: transform .9s var(--ease), filter .9s var(--ease), box-shadow .9s var(--ease);
  }
  .pv-story.is-ativo .pv-story__cartao { transform: translateY(-8px) scale(1.035); filter: brightness(.75); box-shadow: 0 30px 60px -20px rgb(var(--tinta) / .45); }
  .pv-stories__navega { margin-top: 40px; }
  .pv-dica { display: none; }
}

/* ------------------------------------------------------------------ COMODIDADES */
.pv-amen { position: relative; padding: 64px var(--gutter); background: var(--surface); }
@media (min-width: 768px) { .pv-amen { padding-top: 80px; padding-bottom: 80px; } }
.pv-amen__linhas { max-width: 80rem; margin: 80px auto 0; display: grid; gap: 64px; }
.pv-amen__linha { display: grid; align-items: center; gap: 40px; }
.pv-amen__linha .pv-eyebrow { margin-bottom: 12px; }
.pv-amen__texto-inverso { order: 2; }
.pv-amen__midia-inversa { order: 1; }
@media (min-width: 768px) {
  .pv-amen__linhas { gap: 96px; }
  .pv-amen__linha { grid-template-columns: 1fr 1fr; gap: 64px; }
  .pv-amen__texto-inverso { order: 1; }
  .pv-amen__midia-inversa { order: 2; }
}
.pv-arco { position: relative; overflow: hidden; border-radius: 50% 50% 8px 8px / 35% 35% 8px 8px; }
.pv-arco--video { margin: 0 auto; aspect-ratio: 9 / 16; width: 100%; max-width: 22rem; background: var(--ink-deep); }
.pv-arco--foto { aspect-ratio: 9 / 8; width: 100%; }
.pv-arco video, .pv-arco img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; }
.pv-h3 { font-family: var(--f-display); font-style: italic; font-weight: 400; color: var(--text); font-size: clamp(1.6rem, 3vw, 2.4rem); letter-spacing: .02em; line-height: 1.2; }
.pv-amen__p { margin-top: 20px; }
.pv-amen__p--2 { margin-top: 16px; }
.pv-nota { margin-top: 24px; font-size: .72rem; font-weight: 600; letter-spacing: .06em; color: var(--ink); }

.pv-amen__grade {
  max-width: 80rem; margin: 80px auto 0; display: grid; grid-template-columns: 1fr; gap: 1px;
  background: color-mix(in oklab, var(--ink) 15%, transparent); border: 1px solid color-mix(in oklab, var(--ink) 15%, transparent);
}
@media (min-width: 640px) { .pv-amen__grade { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .pv-amen__grade { grid-template-columns: repeat(3, 1fr); } }
.pv-celula { position: relative; overflow: hidden; padding: 40px; background: var(--surface); }
@media (min-width: 768px) { .pv-celula { padding: 56px; } }
.pv-icone { width: 48px; height: 48px; fill: none; stroke: currentColor; stroke-width: 1; stroke-linecap: round; stroke-linejoin: round; color: var(--ink); }
.pv-celula h3 { margin-top: 28px; font-family: var(--f-display); font-weight: 400; font-size: 1.5rem; line-height: 1.33; letter-spacing: .04em; color: var(--text); }
.pv-celula p { margin-top: 12px; font-size: .875rem; line-height: 1.7; color: var(--text-dim); }
.pv-celula__linha { position: absolute; bottom: 0; left: 50%; height: 1px; width: 0; transform: translateX(-50%); background: var(--ink); transition: width .7s var(--ease); }
.pv-celula:hover .pv-celula__linha { width: 80%; }

/* ------------------------------------------------------------------ CUIDADO DO ANFITRIÃO */
.pv-destaques { padding: 56px var(--gutter); background: var(--surface-3); }
@media (min-width: 768px) { .pv-destaques { padding-top: 64px; padding-bottom: 64px; } }
.pv-destaques__caixa { max-width: 64rem; margin: 0 auto; }
.pv-destaques .pv-centro { margin-bottom: 40px; }
.pv-destaques .pv-eyebrow { margin-bottom: 16px; }
.pv-destaques__titulo { font-size: clamp(1.7rem, 3.4vw, 2.6rem); letter-spacing: .04em; }
.pv-destaques__grade { display: grid; grid-template-columns: 1fr; gap: 20px; }
@media (min-width: 640px) { .pv-destaques__grade { grid-template-columns: 1fr 1fr; } }
.pv-destaque { display: flex; align-items: flex-start; gap: 20px; padding: 28px; background: var(--surface); border: 1px solid color-mix(in oklab, var(--ink) 35%, transparent); }
.pv-icone--m { width: 40px; height: 40px; flex: none; }
.pv-destaque h3 { font-family: var(--f-display); font-weight: 400; font-size: 1.2rem; letter-spacing: .02em; line-height: 1.3; color: var(--ink-deep); }
.pv-destaque p { margin-top: 8px; font-size: .9rem; line-height: 1.7; color: var(--text-dim); }
/* nas versões em inglês e espanhol: o trecho da avaliação fica no português original, com a nota discreta */
.pv-original { font-size: .82em; letter-spacing: .02em; white-space: nowrap; opacity: .72; }
.pv-destaques__nota { margin: 24px auto 0; max-width: 36rem; text-align: center; font-size: .76rem; font-weight: 700; text-transform: uppercase; letter-spacing: .14em; line-height: 1.9; color: var(--ink-deep); }

/* ------------------------------------------------------------------ ESPAÇOS */
.pv-espacos { position: relative; padding: 64px var(--gutter); }
@media (min-width: 768px) { .pv-espacos { padding-top: 80px; padding-bottom: 80px; } }
.pv-espacos__vitrine { margin-top: 56px; }
@media (min-width: 768px) { .pv-espacos__vitrine { max-width: 1320px; margin: 80px auto 0; } }
.pv-espacos__janela { position: relative; display: grid; overflow: hidden; touch-action: pan-y; }
.pv-espacos__pagina { grid-area: 1 / 1; display: grid; grid-template-columns: minmax(0, 1fr); gap: 32px; transition: transform .45s var(--ease); }
@media (min-width: 768px) { .pv-espacos__pagina { grid-template-columns: repeat(3, minmax(0, 1fr)); transition-duration: .5s; } }
.pv-espacos__fonte { display: none; }
html:not(.pv-js) .pv-espacos__fonte { display: grid; grid-auto-flow: column; grid-auto-columns: min(85%, 400px); gap: 24px; overflow-x: auto; }
html:not(.pv-js) .pv-controles { display: none; }

.pv-casa { display: block; overflow: hidden; background: var(--surface); color: inherit; text-decoration: none; }
.pv-casa__foto { overflow: hidden; }
.pv-casa__foto img { width: 100%; height: 280px; object-fit: cover; filter: contrast(1.08) saturate(1.05) brightness(.93); transition: transform 1.2s var(--ease); }
@media (min-width: 640px) { .pv-casa__foto img { height: 360px; } }
@media (min-width: 768px) { .pv-casa__foto img { height: 440px; } }
.pv-casa:hover .pv-casa__foto img { transform: scale(1.06); }
.pv-casa__texto { padding: 28px 32px 32px; }
.pv-casa h3 { font-family: var(--f-display); font-weight: 400; font-size: 1.875rem; line-height: 1.2; letter-spacing: .03em; color: var(--text); }
.pv-casa__meta { margin-top: 8px; font-size: .75rem; line-height: 1.6; text-transform: uppercase; letter-spacing: .12em; color: var(--text-dim); }
.pv-casa__linha { margin-top: 20px; font-family: var(--f-display); font-style: italic; font-size: 1.1rem; color: var(--ink); }
.pv-casa__link { margin-top: 24px; display: inline-block; border-bottom: 1px solid var(--ink); padding-bottom: 4px; font-size: .7rem; text-transform: uppercase; letter-spacing: .3em; color: var(--ink); transition: padding .5s var(--ease); }
.pv-casa:hover .pv-casa__link { padding-right: 16px; }

.pv-controles { margin-top: 24px; display: flex; align-items: center; justify-content: space-between; padding: 0 4px; }
.pv-controles__seta {
  display: flex; height: 40px; width: 40px; align-items: center; justify-content: center; cursor: pointer; background: transparent;
  border: 1px solid color-mix(in oklab, var(--ink) 25%, transparent); color: var(--ink); font-size: 1rem; transition: border-color .3s, background-color .3s;
}
.pv-controles__seta:hover { border-color: var(--ink); }
.pv-controles__meio { display: flex; flex-direction: column; align-items: center; gap: 8px; }
.pv-controles .pv-pontos button { width: 6px; }
.pv-controles .pv-pontos button.is-ativo { width: 24px; }
.pv-controles__rotulo { font-size: .58rem; text-transform: uppercase; letter-spacing: .2em; color: color-mix(in oklab, var(--ink) 40%, transparent); }
.pv-espacos__todos { margin-top: 56px; text-align: center; }

/* ------------------------------------------------------------------ LOCALIZAÇÃO */
.pv-mapa { position: relative; background: var(--surface); padding: clamp(4rem, 8vw, 7rem) 0; }
.pv-mapa__topo { margin-bottom: clamp(2.5rem, 5vw, 4.5rem); padding: 0 1.5rem; }
.pv-mapa__grade { display: grid; grid-template-columns: minmax(0, 1fr); gap: clamp(2rem, 4vw, 4.5rem); max-width: 1180px; margin: 0 auto; padding: 0 clamp(1.5rem, 4vw, 3rem); align-items: center; }
@media (min-width: 821px) { .pv-mapa__grade { grid-template-columns: 1fr 1.35fr; } }
@media (max-width: 640px) { .pv-mapa__grade > :nth-child(2) { order: -1; } }
.pv-mapa__info { display: flex; flex-direction: column; gap: 2rem; }
.pv-mapa__intro { font-size: clamp(.85rem, 1.2vw, 1rem); color: var(--text-dim); line-height: 1.85; letter-spacing: .04em; max-width: 36ch; }
.pv-mapa__rotulo { font-size: .58rem; letter-spacing: .24em; text-transform: uppercase; color: var(--text-dim); margin-bottom: .9rem; }
.pv-legenda { display: flex; align-items: center; gap: .85rem; padding: .6rem 0; }
.pv-legenda svg { flex: none; }
.pv-legenda__nome { font-size: .7rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--ink); line-height: 1.5; }
.pv-legenda__detalhe { font-size: .67rem; color: var(--text-dim); letter-spacing: .05em; margin-top: .12rem; line-height: 1.5; }
.pv-mapa__divisor { height: 1px; background: color-mix(in oklab, var(--ink) 28%, transparent); }
.pv-mapa__numeros { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.pv-mapa__numeros > div { display: flex; flex-direction: column; gap: .3rem; }
.pv-mapa__n { font-family: var(--f-display); font-style: italic; font-size: clamp(1.1rem, 2vw, 1.45rem); color: var(--ink); letter-spacing: .02em; line-height: 1; }
.pv-mapa__l { font-size: .58rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--ink); line-height: 1.4; }
.pv-mapa__s { font-size: .62rem; color: var(--text-dim); letter-spacing: .06em; line-height: 1.4; }
.pv-mapa__endereco { display: flex; align-items: center; gap: .45rem; }
.pv-mapa__endereco svg { width: 12px; height: 12px; flex: none; fill: none; stroke: var(--ink); stroke-width: 1.3; }
.pv-mapa__endereco span { font-size: .6rem; color: var(--text-dim); letter-spacing: .1em; line-height: 1.6; }
.pv-mapa__botoes { display: flex; flex-wrap: wrap; gap: 12px; }

.pv-mapa__quadro { position: relative; display: block; border-radius: 2px; overflow: hidden; border: 1px solid color-mix(in oklab, var(--ink) 28%, transparent); box-shadow: 0 12px 60px rgb(var(--tinta) / .12); }
.pv-mapa__canto { position: absolute; z-index: 10; width: 20px; height: 20px; pointer-events: none; border: 0 solid color-mix(in oklab, var(--ink) 65%, transparent); }
.pv-mapa__canto--1 { top: 0; left: 0; border-top-width: 2px; border-left-width: 2px; }
.pv-mapa__canto--2 { top: 0; right: 0; border-top-width: 2px; border-right-width: 2px; }
.pv-mapa__canto--3 { bottom: 0; left: 0; border-bottom-width: 2px; border-left-width: 2px; }
.pv-mapa__canto--4 { bottom: 0; right: 0; border-bottom-width: 2px; border-right-width: 2px; }
.pv-mapa__abrir {
  position: absolute; inset: auto 0 0; z-index: 20; display: flex; align-items: center; justify-content: center; gap: .5rem; padding: 9px 16px;
  background: color-mix(in oklab, var(--ink-deep) 95%, transparent); color: #fff; font-size: .62rem; letter-spacing: .18em; text-transform: uppercase;
  opacity: 0; transform: translateY(5px); transition: opacity .22s ease, transform .22s ease; pointer-events: none;
}
.pv-mapa__abrir svg { width: 11px; height: 11px; fill: none; stroke: rgb(255 255 255 / .85); stroke-width: 1.4; }
.pv-mapa__abrir i { font-style: normal; color: rgb(255 255 255 / .6); }
.pv-mapa__quadro:hover .pv-mapa__abrir, .pv-mapa__quadro:focus-visible .pv-mapa__abrir { opacity: 1; transform: none; }
@media (hover: none) { .pv-mapa__abrir { opacity: 1; transform: none; } }
.pv-mapa__svg { width: 100%; height: auto; }
.pv-mapa__svg text { font-family: var(--f-corpo); }
[data-rota] { fill: none; stroke-linecap: round; }
html.pv-js [data-rota] { stroke-dasharray: 600; stroke-dashoffset: 600; }
.pv-mapa__anel-rotulo text { font-size: 6.5px; letter-spacing: .08em; fill: color-mix(in oklab, var(--ink) 45%, transparent); }
.pv-mapa__regiao { font-family: var(--f-display) !important; font-style: italic; font-size: 9px; letter-spacing: .24em; fill: color-mix(in oklab, var(--ink) 22%, transparent); }
.pv-mapa__halo { fill: rgb(var(--tinta) / .12); }
.pv-mapa__ponto { fill: var(--ink); stroke: #fff; stroke-width: .7; }
.pv-mapa__nome { font-family: var(--f-display) !important; font-size: 9px; letter-spacing: .05em; fill: var(--ink); }
.pv-mapa__nome--casa { font-style: italic; font-size: 11px; fill: var(--mapa-destaque); }
.pv-mapa__sub { font-size: 6.2px; letter-spacing: .07em; fill: color-mix(in oklab, var(--ink) 55%, transparent); }
.pv-mapa__sub--casa { fill: var(--mapa-destaque); }
.pv-mapa__bussola { opacity: .7; }
.pv-mapa__bussola text, .pv-mapa__escala text { font-size: 7px; letter-spacing: .1em; fill: var(--mapa-destaque); }
.pv-mapa__escala { opacity: .6; }
.pv-mapa__escala rect { fill: var(--mapa-linha); }
html.pv-js [data-cidade] { opacity: 0; transition: opacity .5s ease calc(1.4s + var(--i, 0) * .12s); }
html.pv-js .pv-mapa.is-desenhado [data-cidade] { opacity: 1; }

/* ------------------------------------------------------------------ RESERVA DIRETA */
.pv-descobrir { position: relative; display: flex; min-height: 82vh; align-items: center; justify-content: center; overflow: hidden; padding: 112px var(--gutter); }
@media (min-width: 768px) { .pv-descobrir { padding-top: 144px; padding-bottom: 144px; } }
.pv-descobrir__foto { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; filter: contrast(1.08) saturate(.88) brightness(.78); transform: scale(1.12); transition: transform 2.2s var(--ease); }
.pv-descobrir.is-visivel .pv-descobrir__foto, html:not(.pv-js) .pv-descobrir__foto { transform: scale(1); }
.pv-descobrir__veu { position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 45%, rgb(var(--tinta) / .32) 30%, rgb(var(--tinta) / .72) 100%), linear-gradient(to bottom, rgb(var(--tinta) / .62) 0%, rgb(var(--tinta) / .30) 30%, rgb(var(--tinta) / .55) 100%); }
.pv-descobrir__conteudo { position: relative; z-index: 10; max-width: 48rem; margin: 0 auto; text-align: center; }
.pv-descobrir__passo { display: block; font-size: .68rem; text-transform: uppercase; letter-spacing: .4em; color: color-mix(in oklab, var(--cream) 72%, transparent); }
.pv-descobrir__titulo { margin-top: 16px; font-size: clamp(2.4rem, 5.5vw, 4.4rem); color: var(--cream); }
.pv-descobrir__sub { margin: 16px auto 0; font-family: var(--f-display); font-style: italic; font-size: clamp(1.1rem, 1.8vw, 1.45rem); letter-spacing: .04em; color: color-mix(in oklab, var(--cream) 88%, transparent); }
.pv-descobrir__texto { margin: 24px auto 0; max-width: 36rem; font-size: 1rem; letter-spacing: .04em; line-height: 1.9; color: color-mix(in oklab, var(--cream) 80%, transparent); }
.pv-descobrir .pv-botao { margin-top: 44px; }

/* ------------------------------------------------------------------ RODAPÉ */
.pv-rodape { position: relative; border-top: 1px solid var(--ink); padding: 96px var(--gutter) 40px; }
/* o botão fixo "Reservar estadia" fica no canto de baixo: folga para ele não cobrir os links da base no fim da página */
.pv-rodape { padding-bottom: 104px; }
.pv-rodape__grade { max-width: 80rem; margin: 0 auto; display: grid; grid-template-columns: 1fr; gap: 48px; }
@media (min-width: 768px) { .pv-rodape__grade { grid-template-columns: 1.5fr 1fr 1fr 1fr; } }
.pv-rodape__frase { margin-top: 16px; font-family: var(--f-display); font-style: italic; color: var(--text-dim); }
.pv-rodape__desc { margin-top: 24px; max-width: 20rem; font-size: .75rem; line-height: 1.8; letter-spacing: .05em; color: var(--text-dim); }
.pv-rodape__titulo { margin-bottom: 24px; }
.pv-rodape ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.pv-rodape ul a { font-size: .875rem; color: var(--text-dim); text-decoration: none; transition: color .3s; }
.pv-rodape ul a:hover { color: var(--ink); }
.pv-rodape__base {
  max-width: 80rem; margin: 64px auto 0; display: flex; flex-direction: column; align-items: flex-start; justify-content: space-between; gap: 16px;
  padding-top: 32px; border-top: 1px solid color-mix(in oklab, var(--ink) 15%, transparent);
}
@media (min-width: 768px) { .pv-rodape__base { flex-direction: row; align-items: center; } }
.pv-rodape__copy { font-size: .7rem; letter-spacing: .22em; color: color-mix(in oklab, var(--text) 45%, transparent); }
.pv-rodape__links { display: flex; gap: 32px; }
.pv-rodape__links a { font-size: .7rem; text-transform: uppercase; letter-spacing: .28em; color: var(--text-dim); text-decoration: none; transition: color .3s; }
.pv-rodape__links a:hover { color: var(--ink); }

/* ------------------------------------------------------------------ BOTÃO DE ESTADIA (fixo) */
.pv-flutuante {
  position: fixed; right: 16px; bottom: 16px; z-index: 40; display: inline-flex; align-items: center; gap: 12px;
  padding: 15px 22px 15px 16px; border: 1px solid rgb(255 255 255 / .14); cursor: pointer;
  background: color-mix(in oklab, var(--ink-deep) 93%, transparent); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  color: var(--cream); font-size: .62rem; line-height: 1; letter-spacing: .3em; text-transform: uppercase;
  box-shadow: 0 22px 44px -22px rgb(var(--tinta) / .6);
  opacity: 0; transform: translateY(14px); pointer-events: none;
  transition: opacity .9s var(--ease) 1.2s, transform .9s var(--ease) 1.2s, background-color .5s var(--ease), color .5s var(--ease), border-color .5s var(--ease);
}
html.pv-intro-feita .pv-flutuante, html:not(.pv-js) .pv-flutuante { opacity: 1; transform: none; pointer-events: auto; }
.pv-flutuante:focus-visible { background: var(--cream); color: var(--ink-deep); border-color: color-mix(in oklab, var(--ink) 30%, transparent); }
.pv-flutuante__anel { height: 17px; color: currentColor; --brasao-emblema: currentColor; transition: transform .8s var(--ease); }
@media (hover: hover) {
  .pv-flutuante:hover { background: var(--cream); color: var(--ink-deep); border-color: color-mix(in oklab, var(--ink) 30%, transparent); }
  .pv-flutuante:hover .pv-flutuante__anel { transform: scale(1.12); }
  .pv-som:hover { background: rgb(255 255 255 / .16); border-color: rgb(255 255 255 / .7); }
  .pv-reserva__enviar:hover { background: transparent; color: var(--ink-deep); }
}
html.pv-reserva-aberta .pv-flutuante { opacity: 0; transform: translateY(14px); pointer-events: none; transition-delay: 0s; }
@media (min-width: 768px) { .pv-flutuante { right: 28px; bottom: 28px; padding: 16px 26px 16px 18px; } }

/* ------------------------------------------------------------------ SOM DOS VÍDEOS */
.pv-som {
  display: inline-flex; align-items: center; gap: 8px; height: 34px; padding: 0 15px 0 10px; cursor: pointer;
  border: 1px solid rgb(255 255 255 / .34); border-radius: 999px; background: rgb(18 20 16 / .22);
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); color: #fff;
  font-size: .56rem; line-height: 1; letter-spacing: .3em; text-transform: uppercase;
  transition: background-color .45s var(--ease), border-color .45s var(--ease), color .45s var(--ease);
}
.pv-som:focus-visible { background: rgb(255 255 255 / .16); border-color: rgb(255 255 255 / .7); }
.pv-som[hidden], html:not(.pv-js) .pv-som { display: none; }
.pv-som__icone { width: 18px; height: 18px; flex: none; overflow: visible; fill: none; stroke: currentColor; stroke-width: 1.1; stroke-linecap: round; stroke-linejoin: round; }
.pv-som__onda { opacity: 0; transition: opacity .4s var(--ease); }
.pv-som__mudo { opacity: .9; transition: opacity .4s var(--ease); }
.pv-som__texto { padding-left: .1em; }
.pv-som[aria-pressed="true"] .pv-som__mudo { opacity: 0; }
.pv-som[aria-pressed="true"] .pv-som__onda--1 { opacity: 1; }
.pv-som[aria-pressed="true"] .pv-som__onda--2 { opacity: .8; }
.pv-som[aria-pressed="true"] .pv-som__onda--3 { animation: pv-som-eco 2.4s var(--ease) infinite; }
@keyframes pv-som-eco { 0%, 100% { opacity: .12; } 50% { opacity: .65; } }
.pv-arco .pv-som { position: absolute; left: 50%; bottom: 18px; z-index: 2; transform: translateX(-50%); }

/* ------------------------------------------------------------------ POP-UP DE RESERVA */
.pv-reserva { position: fixed; inset: 0; z-index: 9000; display: flex; align-items: center; justify-content: center; padding: 24px; }
.pv-reserva[hidden] { display: none; }
.pv-reserva__fundo { position: absolute; inset: 0; background: rgb(var(--tinta) / .6); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); opacity: 0; transition: opacity .5s var(--ease); }
.pv-reserva__caixa {
  position: relative; display: flex; flex-direction: column; width: min(980px, 100%); max-height: min(780px, calc(100svh - 48px));
  overflow: hidden; background: var(--cream); box-shadow: 0 60px 120px -40px rgb(var(--tinta) / .7);
  opacity: 0; transform: translateY(24px) scale(.985); transition: opacity .6s var(--ease), transform .6s var(--ease);
}
.pv-reserva.is-aberta .pv-reserva__fundo { opacity: 1; }
.pv-reserva.is-aberta .pv-reserva__caixa { opacity: 1; transform: none; }
.pv-reserva__foto { position: relative; display: none; background: var(--ink-deep); }
.pv-reserva__foto img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; filter: saturate(.92) brightness(.86); }
.pv-reserva__foto-veu { position: absolute; inset: 0; background: linear-gradient(to bottom, rgb(var(--tinta) / .55) 0%, rgb(var(--tinta) / .04) 34%, rgb(var(--tinta) / .12) 62%, rgb(var(--tinta) / .78) 100%); }
.pv-reserva__foto-logo { position: absolute; left: 50%; top: 44px; transform: translateX(-50%); height: 78px; color: #fff; --brasao-emblema: rgb(255 255 255 / .86); --brasao-palavra: #fff; }
.pv-reserva__foto-frase { position: absolute; inset: auto 24px 34px; text-align: center; font-family: var(--f-display); font-style: italic; font-size: 1.15rem; letter-spacing: .03em; color: rgb(255 255 255 / .9); }
.pv-reserva__painel { position: relative; flex: 1 1 auto; min-height: 0; min-width: 0; overflow-y: auto; overscroll-behavior: contain; padding: 36px 44px 22px; scrollbar-width: thin; }
@media (min-width: 880px) {
  .pv-reserva__caixa { flex-direction: row; }
  .pv-reserva__foto { display: block; flex: 5 1 0; min-width: 0; }
  .pv-reserva__painel { flex: 7 1 0; }
}
@media (max-width: 879px) {
  .pv-reserva { padding: 0; align-items: stretch; }
  .pv-reserva__caixa { width: 100%; height: 100%; max-height: none; transform: translateY(32px); }
  .pv-reserva__painel { padding: 58px 22px calc(28px + env(safe-area-inset-bottom)); }
}
.pv-reserva__fechar {
  position: absolute; top: 12px; right: 12px; z-index: 2; display: flex; width: 42px; height: 42px; align-items: center; justify-content: center;
  border: 0; background: none; color: var(--ink); cursor: pointer; opacity: .7; transition: opacity .3s, transform .6s var(--ease);
}
.pv-reserva__fechar:hover, .pv-reserva__fechar:focus-visible { opacity: 1; transform: rotate(90deg); }
.pv-reserva__fechar svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.2; stroke-linecap: round; }
.pv-reserva__eyebrow { margin-top: 0; font-size: .6rem; font-weight: 500; letter-spacing: .32em; text-transform: uppercase; color: var(--ink); }
.pv-reserva__titulo { margin-top: 8px; font-family: var(--f-display); font-weight: 400; font-size: clamp(1.9rem, 3.2vw, 2.5rem); line-height: 1.05; letter-spacing: .02em; color: var(--ink-deep); }
.pv-reserva__texto { margin-top: 8px; font-size: .86rem; line-height: 1.7; letter-spacing: .02em; color: var(--text-dim); }

.pv-reserva__datas { margin-top: 20px; display: grid; grid-template-columns: 1fr auto 1fr; border-top: 1px solid color-mix(in oklab, var(--ink) 16%, transparent); border-bottom: 1px solid color-mix(in oklab, var(--ink) 16%, transparent); }
.pv-data { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 5px; padding: 11px 2px 10px; border: 0; background: none; text-align: left; cursor: pointer; }
.pv-data::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 1px; background: var(--ink-deep); transform: scaleX(0); transform-origin: left; transition: transform .6s var(--ease); }
.pv-data.is-ativo::after { transform: scaleX(1); }
.pv-data__rotulo { font-size: .55rem; letter-spacing: .28em; text-transform: uppercase; color: var(--text-dim); }
.pv-data__valor { font-family: var(--f-display); font-size: 1.35rem; line-height: 1.1; color: var(--ink-deep); white-space: nowrap; }
.pv-data__valor.is-vazio { font-style: italic; color: color-mix(in oklab, var(--text-dim) 75%, transparent); }
.pv-reserva__seta { align-self: center; padding: 0 16px; font-size: .9rem; color: var(--text-dim); }

.pv-cal { position: relative; margin-top: 14px; }
.pv-cal__meses { display: grid; grid-template-columns: minmax(0, 1fr); gap: 30px; }
@media (min-width: 560px) { .pv-cal__meses { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.pv-cal__nav {
  position: absolute; top: -1px; z-index: 1; display: flex; width: 32px; height: 32px; align-items: center; justify-content: center; border: 0; border-radius: 50%;
  background: none; color: var(--ink); cursor: pointer; transition: background-color .3s, opacity .3s;
}
.pv-cal__nav:hover:not(:disabled) { background: color-mix(in oklab, var(--ink) 8%, transparent); }
.pv-cal__nav:disabled { opacity: .22; cursor: default; }
.pv-cal__nav--ant { left: -4px; }
.pv-cal__nav--prox { right: -4px; }
.pv-cal__nav svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.2; stroke-linecap: round; stroke-linejoin: round; }
.pv-cal__titulo { height: 30px; line-height: 30px; text-align: center; font-family: var(--f-display); font-style: italic; font-size: 1.1rem; letter-spacing: .02em; color: var(--ink-deep); }
.pv-cal__titulo::first-letter { text-transform: uppercase; }
.pv-cal__semana, .pv-cal__dias { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.pv-cal__semana span { padding: 6px 0 4px; text-align: center; font-size: .54rem; letter-spacing: .14em; text-transform: uppercase; color: var(--text-dim); }
.pv-cal__dia { position: relative; display: flex; height: 31px; align-items: center; justify-content: center; padding: 0; border: 0; background: none; cursor: pointer; font-size: .8rem; font-variant-numeric: tabular-nums; color: var(--ink-deep); }
.pv-cal__dia span { position: relative; z-index: 1; display: flex; width: 29px; height: 29px; align-items: center; justify-content: center; border-radius: 50%; transition: background-color .35s var(--ease), color .35s var(--ease), box-shadow .35s var(--ease); }
.pv-cal__dia:hover:not(:disabled) span { box-shadow: inset 0 0 0 1px var(--ink-deep); }
.pv-cal__dia:disabled { cursor: default; color: color-mix(in oklab, var(--ink) 24%, transparent); }
.pv-cal__dia.is-hoje span::after { content: ""; position: absolute; bottom: 5px; left: 50%; width: 3px; height: 3px; margin-left: -1.5px; border-radius: 50%; background: currentColor; opacity: .6; }
.pv-cal__dia.is-entre::before, .pv-cal__dia.tem-periodo.is-inicio::before, .pv-cal__dia.tem-periodo.is-fim::before {
  content: ""; position: absolute; top: 2px; bottom: 2px; left: 0; right: 0; background: color-mix(in oklab, var(--ink) 9%, transparent);
}
.pv-cal__dia.tem-periodo.is-inicio::before { left: 50%; }
.pv-cal__dia.tem-periodo.is-fim::before { right: 50%; }
.pv-cal__dia.is-inicio span, .pv-cal__dia.is-fim span { background: var(--ink-deep); color: var(--cream); box-shadow: none; }
.pv-reserva__resumo { margin-top: 8px; min-height: 1.3em; text-align: center; font-size: .7rem; letter-spacing: .06em; color: var(--text-dim); }
.pv-reserva__resumo strong { font-family: var(--f-display); font-style: italic; font-weight: 400; font-size: 1rem; letter-spacing: .02em; color: var(--ink-deep); }

.pv-reserva__campos { margin-top: 16px; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 28px; align-items: end; }
.pv-campo { display: flex; flex-direction: column; gap: 5px; margin-top: 14px; }
.pv-reserva__campos .pv-campo { margin-top: 0; }
.pv-campo__rotulo { font-size: .55rem; letter-spacing: .28em; text-transform: uppercase; color: var(--text-dim); }
.pv-campo__rotulo i { font-family: var(--f-display); font-size: .9rem; letter-spacing: .02em; text-transform: none; color: color-mix(in oklab, var(--text-dim) 70%, transparent); }
.pv-campo input {
  width: 100%; padding: 6px 0 9px; border: 0; border-bottom: 1px solid color-mix(in oklab, var(--ink) 24%, transparent); border-radius: 0;
  background: transparent; outline: none; font-family: var(--f-display); font-size: 1.25rem; color: var(--ink-deep); transition: border-color .4s var(--ease);
}
.pv-campo input:focus { border-bottom-color: var(--ink-deep); }
.pv-campo input::placeholder { font-style: italic; font-size: 1rem; color: color-mix(in oklab, var(--text-dim) 60%, transparent); }
.pv-contador { display: inline-flex; align-items: center; gap: 14px; padding: 3px 0 6px; border-bottom: 1px solid color-mix(in oklab, var(--ink) 24%, transparent); }
.pv-contador button { display: flex; width: 30px; height: 30px; align-items: center; justify-content: center; border: 1px solid color-mix(in oklab, var(--ink) 28%, transparent); border-radius: 50%; background: none; color: var(--ink); cursor: pointer; transition: border-color .3s, opacity .3s; }
.pv-contador button:hover:not(:disabled) { border-color: var(--ink-deep); }
.pv-contador button:disabled { opacity: .28; cursor: default; }
.pv-contador svg { width: 12px; height: 12px; fill: none; stroke: currentColor; stroke-width: 1.3; stroke-linecap: round; }
.pv-contador output { min-width: 1.1em; text-align: center; font-family: var(--f-display); font-size: 1.35rem; line-height: 1; color: var(--ink-deep); }

.pv-reserva__erro { min-height: 1.2em; margin-top: 10px; font-size: .72rem; letter-spacing: .02em; color: #8c3f2f; }
.pv-reserva__enviar {
  margin-top: 8px; display: flex; width: 100%; align-items: center; justify-content: center; gap: 12px; padding: 18px 24px;
  border: 1px solid var(--ink-deep); background: var(--ink-deep); color: var(--cream); cursor: pointer; text-decoration: none;
  font-size: .68rem; line-height: 1; letter-spacing: .3em; text-transform: uppercase; transition: background-color .5s var(--ease), color .5s var(--ease);
}
.pv-reserva__enviar:focus-visible { background: transparent; color: var(--ink-deep); }
.pv-reserva__enviar svg { width: 15px; height: 15px; fill: currentColor; }
.pv-reserva__agora-nao { display: block; margin: 8px auto 0; padding: 8px; border: 0; background: none; cursor: pointer; font-size: .58rem; letter-spacing: .3em; text-transform: uppercase; color: var(--text-dim); transition: color .3s; }
.pv-reserva__agora-nao:hover { color: var(--ink-deep); }
[data-reserva-etapa][hidden] { display: none; }
.pv-reserva__enviado { display: flex; min-height: 100%; flex-direction: column; align-items: center; justify-content: center; padding: 48px 0 24px; text-align: center; }
.pv-reserva__enviado-anel { height: 46px; color: var(--brasao-emblema-cor); --brasao-emblema: var(--brasao-emblema-cor); }
.pv-reserva__enviado .pv-reserva__eyebrow { margin-top: 22px; }
.pv-reserva__enviado .pv-reserva__texto { max-width: 28rem; }
.pv-reserva__enviado .pv-reserva__enviar { margin-top: 28px; max-width: 22rem; }

/* ------------------------------------------------------------------ MOVIMENTO REDUZIDO */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; transition-delay: 0s !important; }
  html.pv-js [data-reveal] { opacity: 1; transform: none; }
  .pv-grao { animation: none; }
}
