/* ==========================================================================
   VILLAGE DO SOL · ESTILO
   Conceito: o scroll é o dia. Manhã em névoa clara (hero, chalés),
   crepúsculo na reserva direta, pôr do sol no fechamento.
   O arco do sol (logo + hidro voltada pro poente) é o motivo recorrente.
   ========================================================================== */

/* FONTES:INICIO · fontes servidas pelo próprio site (mais rápido e sem enviar dados ao Google) */
@font-face {
  font-family: 'Marcellus'; font-style: normal; font-weight: 400; font-display: swap;
  src: url('../fonts/marcellus-latin.woff2') format('woff2');
}
@font-face {
  font-family: 'Hanken Grotesk'; font-style: normal; font-weight: 100 900; font-display: swap;
  src: url('../fonts/hanken-grotesk-latin.woff2') format('woff2');
}
/* FONTES:FIM */

:root {
  /* Cores */
  --nevoa: #F3F7F8;          /* fundo base: névoa da serra, levemente azulada */
  --papel: #FFFFFF;          /* superfícies */
  --crepusculo: #102A35;     /* seções escuras e títulos */
  --crepusculo-2: #183A47;
  --crepusculo-3: #21495A;
  --tinta: #1B2E36;          /* texto */
  --tinta-suave: #4C6470;
  --linha: #DCE6EA;
  --ceu: #0279A3;            /* azul da logo, versão legível para texto */
  --ceu-logo: #00A8D8;       /* azul da logo, decorativo */
  --ceu-claro: #5FD0F0;
  --sol: #F0900E;            /* laranja da logo */
  --sol-claro: #F7A93B;
  --brasa: #E85A12;
  --brasa-texto: #B3440C;   /* brasa escurecida para texto (contraste 5,2:1) */
  --brilho: #FDEBD7;         /* luz do entardecer */
  --araucaria: #0B4A1E;      /* verde da logo */
  --araucaria-tint: #E3F0E6;
  --claro: #F3F7F8;          /* texto sobre escuro */
  --claro-suave: #A9C3CC;
  --linha-escura: rgba(243, 247, 248, 0.14);
  --erro: #B42318;
  --erro-escuro: #FFB4A9;
  --wpp: #1FA855;
  --foco: #0279A3;

  /* Tipografia */
  --f-display: 'Marcellus', 'Iowan Old Style', 'Palatino Linotype', Palatino, Georgia, serif;
  --f-texto: 'Hanken Grotesk', 'Segoe UI', system-ui, -apple-system, Roboto, sans-serif;
  --t-h1: clamp(2.4rem, 1.4rem + 3.6vw, 4.25rem);
  --t-h2: clamp(1.95rem, 1.35rem + 2.1vw, 3rem);
  --t-h3: 1.375rem;
  --t-corpo: 1.0625rem;
  --t-p: 0.9375rem;
  --t-mini: 0.8125rem;

  /* Forma */
  --raio-s: 10px;
  --raio: 16px;
  --raio-l: 26px;
  --sombra: 0 1px 2px rgba(16, 42, 53, 0.06), 0 14px 34px -14px rgba(16, 42, 53, 0.22);
  --sombra-forte: 0 2px 4px rgba(16, 42, 53, 0.08), 0 28px 60px -20px rgba(16, 42, 53, 0.35);
  --gutter: clamp(16px, 4vw, 40px);
  --max: 1200px;
  --topo-h: 72px;
  --ease: cubic-bezier(0.22, 0.61, 0.36, 1);

  color-scheme: light;
}

/* --------------------------------------------------------------- Base ---- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--topo-h) + 16px); -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--nevoa);
  color: var(--tinta);
  font-family: var(--f-texto);
  font-size: var(--t-corpo);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img { max-width: 100%; display: block; }
a { color: var(--ceu); text-underline-offset: 3px; }
h1, h2, h3 { margin: 0; text-wrap: balance; }
p { margin: 0; }
ul, ol, dl, dd { margin: 0; padding: 0; }
ul, ol { list-style: none; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
address { font-style: normal; }
[hidden] { display: none !important; }

:focus-visible { outline: 3px solid var(--foco); outline-offset: 3px; border-radius: 4px; }

.envelope { width: 100%; max-width: calc(var(--max) + var(--gutter) * 2); margin-inline: auto; padding-inline: var(--gutter); }

.ico { width: 20px; height: 20px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.ico--g { width: 28px; height: 28px; stroke-width: 1.5; }
.ico--sol { fill: var(--sol); stroke: var(--sol); }

.pular {
  position: absolute; left: 16px; top: -100px; z-index: 100;
  background: var(--crepusculo); color: var(--claro); padding: 12px 16px; border-radius: var(--raio-s);
}
.pular:focus { top: 12px; }

.sobretitulo {
  font-size: var(--t-mini); font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--ceu);
}
.sobretitulo--claro { color: var(--sol-claro); }

/* ------------------------------------------------------------ Botões ---- */
.botao {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 52px; padding: 0 26px; border-radius: 999px; border: 1.5px solid transparent;
  font-weight: 600; font-size: 1rem; line-height: 1.1; text-decoration: none; white-space: nowrap;
  transition: transform 0.2s var(--ease), box-shadow 0.2s var(--ease), background-color 0.2s, border-color 0.2s, color 0.2s;
}
.botao--p { min-height: 44px; padding: 0 20px; font-size: 0.9375rem; }
.botao--largo { width: 100%; }
.botao--sol {
  background: linear-gradient(100deg, var(--sol-claro), var(--sol));
  color: var(--crepusculo);
  box-shadow: 0 10px 24px -10px rgba(240, 144, 14, 0.7);
}
.botao--sol:hover { transform: translateY(-1px); box-shadow: 0 14px 28px -10px rgba(232, 90, 18, 0.65); }
.botao--sol:active { transform: translateY(0); }
.botao--contorno { border-color: rgba(16, 42, 53, 0.28); color: var(--crepusculo); background: transparent; }
.botao--contorno:hover { border-color: var(--crepusculo); background: rgba(16, 42, 53, 0.04); }
.botao--claro { border-color: rgba(243, 247, 248, 0.45); color: var(--claro); background: rgba(16, 42, 53, 0.25); }
.botao--claro:hover { border-color: var(--claro); background: rgba(16, 42, 53, 0.45); }
.botao--texto { background: none; border: 0; padding: 0 8px; color: var(--ceu); min-height: 44px; }
.botao--texto:hover { text-decoration: underline; }

.link-seta {
  display: inline-flex; align-items: center; gap: 8px; min-height: 44px;
  font-weight: 600; color: var(--ceu); text-decoration: none;
}
.link-seta .ico { width: 18px; height: 18px; transition: transform 0.2s var(--ease); }
.link-seta:hover .ico { transform: translateX(3px); }

/* ------------------------------------------------------------ Campos ---- */
.campo { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.campo label { font-size: var(--t-mini); font-weight: 600; color: var(--tinta-suave); letter-spacing: 0.02em; }
.campo input, .campo select, .campo textarea {
  width: 100%; min-height: 48px; height: 50px; padding: 10px 14px; border-radius: var(--raio-s);
  border: 1.5px solid var(--linha); background: var(--papel); color: var(--tinta); font-size: 1rem;
}
.campo textarea { resize: vertical; height: auto; min-height: 64px; line-height: 1.5; }
.campo input:focus-visible, .campo select:focus-visible, .campo textarea:focus-visible { outline: 3px solid var(--foco); outline-offset: 1px; }
.campo__opc { font-weight: 400; }
.campo__erro { font-size: var(--t-mini); color: var(--erro-escuro); min-height: 0; }
.campo__erro:empty { display: none; }

/* ----------------------------------------------------------- Cabeçalho -- */
.topo {
  position: sticky; top: env(safe-area-inset-top, 0px); z-index: 50;
  background: rgba(243, 247, 248, 0.88);
  -webkit-backdrop-filter: saturate(1.4) blur(14px); backdrop-filter: saturate(1.4) blur(14px);
  border-bottom: 1px solid transparent; transition: border-color 0.25s;
}
.topo.rolou { border-bottom-color: var(--linha); }
.topo__inner { display: flex; align-items: center; gap: 24px; height: var(--topo-h); }
.topo__marca { display: flex; align-items: center; margin-right: auto; min-height: 44px; }
.topo__marca img { height: 50px; width: auto; }
.topo__nav { display: none; gap: 4px; }
.topo__nav a {
  position: relative; display: inline-flex; align-items: center; min-height: 44px; padding: 0 14px;
  color: var(--tinta); text-decoration: none; font-weight: 500; font-size: 0.9375rem; border-radius: 999px;
}
.topo__nav a:hover { background: rgba(16, 42, 53, 0.05); }
.topo__nav a.ativo::after {
  content: ""; position: absolute; left: 50%; bottom: 6px; width: 6px; height: 6px; margin-left: -3px;
  border-radius: 50%; background: var(--sol);
}
.topo__cta { display: none; }
.topo__menu {
  display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px;
  border-radius: 999px; border: 1.5px solid var(--linha); background: var(--papel); color: var(--crepusculo);
}
.menu-movel { border-top: 1px solid var(--linha); background: var(--nevoa); }
.menu-movel__nav { display: flex; flex-direction: column; padding-block: 8px 20px; }
.menu-movel__nav a:not(.botao) {
  display: flex; align-items: center; min-height: 52px; color: var(--tinta); text-decoration: none;
  font-weight: 500; border-bottom: 1px solid var(--linha);
}
.menu-movel__nav .botao { margin-top: 16px; }

@media (min-width: 960px) {
  .topo__nav, .topo__cta { display: inline-flex; }
  .topo__menu, .menu-movel { display: none !important; }
}

/* ---------------------------------------------------------------- Hero -- */
.hero {
  position: relative; padding-block: clamp(28px, 5vw, 64px) clamp(56px, 8vw, 96px);
  background:
    radial-gradient(60% 55% at 85% 20%, rgba(253, 235, 215, 0.95), rgba(253, 235, 215, 0) 70%),
    var(--nevoa);
}
.hero__grade { display: grid; gap: clamp(32px, 5vw, 64px); align-items: center; }
.hero__texto { display: flex; flex-direction: column; gap: 22px; min-width: 0; }
.hero__titulo {
  font-family: var(--f-display); font-weight: 400; font-size: var(--t-h1);
  line-height: 1.04; letter-spacing: -0.012em; color: var(--crepusculo);
}
.hero__lead { font-size: 1.125rem; color: var(--tinta-suave); max-width: 34em; }
.hero__acoes { display: flex; flex-wrap: wrap; gap: 12px; }
.selos { display: flex; flex-wrap: wrap; gap: 10px 22px; padding-top: 6px; color: var(--tinta); font-size: var(--t-p); }
.selos li { display: inline-flex; align-items: center; gap: 8px; }
.selos .ico { width: 18px; height: 18px; color: var(--araucaria); }
.selos .ico--sol { color: var(--sol); }

.hero__visual { min-width: 0; }
/* A janela em arco: o motivo do sol */
.janela {
  position: relative; margin: 0; width: 100%; max-width: 560px; margin-inline: auto;
  aspect-ratio: 4 / 5; border-radius: 50% 50% var(--raio-l) var(--raio-l) / 32% 32% var(--raio-l) var(--raio-l);
  overflow: visible; isolation: isolate;
}
.cena, .janela__foto {
  position: absolute; inset: 0; width: 100%; height: 100%;
  border-radius: inherit; overflow: hidden;
}
.janela__foto { object-fit: cover; z-index: 1; box-shadow: var(--sombra-forte); }
.cena {
  background: linear-gradient(180deg, #2C6E89 0%, #6FA3B3 30%, #F2C08A 62%, #F7A93B 78%, #E8742B 100%);
  box-shadow: var(--sombra-forte);
}
.cena__sol {
  position: absolute; left: 50%; top: 52%; width: 34%; aspect-ratio: 1; transform: translate(-50%, -50%);
  border-radius: 50%; background: radial-gradient(circle, #FFE3A8 0%, #F9B44C 55%, #F0900E 100%);
  box-shadow: 0 0 80px 30px rgba(255, 200, 120, 0.55);
}
.cena__serra { position: absolute; left: 0; bottom: 0; width: 100%; height: 48%; }
.cena__serra .s1 { fill: #2E5466; }
.cena__serra .s2 { fill: #1D3E4C; }
.cena__serra .s3 { fill: #102A35; }
.cena__arvores { position: absolute; left: 8%; bottom: 14%; width: 30%; height: auto; }
.araucaria { fill: #0D2530; }
.araucaria--p { fill: #10303D; }

.relogio {
  position: absolute; z-index: 2; left: 12px; right: 12px; bottom: 12px;
  display: grid; grid-template-columns: 1fr auto; grid-template-rows: auto auto auto; column-gap: 16px;
  padding: 16px 18px; border-radius: var(--raio);
  background: rgba(255, 255, 255, 0.94); color: var(--tinta); box-shadow: var(--sombra);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
}
.relogio__cab { grid-column: 1 / -1; display: flex; align-items: center; gap: 8px; font-size: var(--t-mini); font-weight: 600; color: var(--tinta-suave); }
.relogio__cab .ico { width: 18px; height: 18px; color: var(--brasa); }
.relogio__hora { font-family: var(--f-display); font-size: 2.6rem; line-height: 1.05; color: var(--crepusculo); font-variant-numeric: tabular-nums; }
.relogio__arco { grid-row: 2 / 4; grid-column: 2; width: 128px; height: auto; align-self: center; overflow: visible; }
.relogio__trilha { fill: none; stroke: var(--linha); stroke-width: 2; stroke-dasharray: 3 5; }
.relogio__horizonte { stroke: var(--crepusculo); stroke-width: 1.5; opacity: 0.25; }
.relogio__astro { fill: var(--sol); stroke: #fff; stroke-width: 2.5; transition: cx 1.2s var(--ease), cy 1.2s var(--ease); }
.relogio__astro.noite { fill: var(--crepusculo-3); }
.relogio__falta { font-size: var(--t-mini); color: var(--tinta-suave); font-variant-numeric: tabular-nums; }

@media (min-width: 900px) {
  .hero__grade { grid-template-columns: 1.08fr 0.92fr; }
  .relogio { left: -36px; right: auto; bottom: 36px; width: 300px; }
}

/* Barra rápida de reserva */
.barra-reserva {
  margin-top: clamp(32px, 5vw, 56px);
  display: grid; gap: 14px; padding: 18px; border-radius: var(--raio-l);
  background: var(--papel); box-shadow: var(--sombra-forte);
}
.barra-reserva__botao { min-height: 52px; }
.barra-reserva__nota { font-size: var(--t-mini); color: var(--tinta-suave); }
@media (min-width: 640px) {
  .barra-reserva { grid-template-columns: 1fr 1fr; }
  .barra-reserva__botao, .barra-reserva__nota { grid-column: 1 / -1; }
}
@media (min-width: 960px) {
  .barra-reserva { grid-template-columns: 1fr 1fr 0.8fr auto; align-items: end; padding: 20px 20px 16px 24px; }
  .barra-reserva__botao { grid-column: auto; }
  .barra-reserva__nota { grid-column: 1 / -1; }
}

/* ------------------------------------------------------------- Seções --- */
.secao { padding-block: clamp(72px, 9vw, 120px); }
.secao--papel { background: var(--papel); }
.secao--crepusculo { background: var(--crepusculo); color: var(--claro); --foco: var(--sol-claro); }
.secao--crepusculo .sobretitulo { color: var(--sol-claro); }
.secao--crepusculo .secao__titulo { color: var(--claro); }
.secao__cab { display: flex; flex-direction: column; gap: 14px; margin-bottom: clamp(36px, 5vw, 56px); max-width: 720px; }
.secao__cab--dupla { max-width: none; display: grid; gap: 20px 56px; align-items: end; }
@media (min-width: 900px) { .secao__cab--dupla { grid-template-columns: 1fr 1fr; } }
.secao__titulo {
  font-family: var(--f-display); font-weight: 400; font-size: var(--t-h2);
  line-height: 1.08; letter-spacing: -0.01em; color: var(--crepusculo);
}
.secao__intro { color: var(--tinta-suave); max-width: 36em; }

/* ------------------------------------------------- Uma tarde (sequência) */
.tarde { display: grid; gap: 0; counter-reset: none; }
.tarde__item {
  position: relative; display: grid; align-content: start; grid-template-columns: auto 1fr; column-gap: 18px; row-gap: 6px;
  padding: 0 0 32px 0;
}
.tarde__item > * { grid-column: 2; }
.tarde__item > .ico { grid-column: 1; grid-row: 1 / span 3; color: var(--ceu); margin-top: 2px; }
.tarde__item::before {
  content: ""; position: absolute; left: 13px; top: 40px; bottom: 4px; width: 2px; background: var(--linha);
}
.tarde__item:last-child::before { display: none; }
.tarde__hora { font-size: var(--t-mini); font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--tinta-suave); font-variant-numeric: tabular-nums; }
.tarde__item h3 { font-family: var(--f-display); font-weight: 400; font-size: var(--t-h3); color: var(--crepusculo); line-height: 1.25; }
.tarde__item p:last-child { color: var(--tinta-suave); font-size: var(--t-p); max-width: 30em; }
.tarde__item--sol .tarde__hora { color: var(--brasa-texto); }
.tarde__item--sol > .ico { color: var(--brasa); }

@media (min-width: 900px) {
  .tarde { grid-template-columns: repeat(4, 1fr); gap: 28px; padding-top: 34px; position: relative; }
  .tarde::before { content: ""; position: absolute; left: 0; right: 0; top: 13px; height: 2px; background: var(--linha); }
  .tarde__item { grid-template-columns: 1fr; padding: 0; }
  .tarde__item > *, .tarde__item > .ico { grid-column: 1; grid-row: auto; }
  .tarde__item::before {
    left: 0; top: -27px; bottom: auto; width: 14px; height: 14px; border-radius: 50%;
    background: var(--nevoa); border: 2px solid var(--ceu-logo);
  }
  .tarde__item:last-child::before { display: block; }
  .tarde__item--sol::before { background: var(--sol); border-color: var(--sol); box-shadow: 0 0 0 6px rgba(240, 144, 14, 0.18); }
}

/* --------------------------------------------------------------- Chalés - */
.abas { display: flex; gap: 8px; overflow-x: auto; padding: 4px; margin: 0 0 24px; scrollbar-width: none; }
.abas::-webkit-scrollbar { display: none; }
.aba {
  display: inline-flex; align-items: center; gap: 10px; min-height: 48px; padding: 0 20px;
  border-radius: 999px; border: 1.5px solid var(--linha); background: var(--papel);
  font-weight: 600; color: var(--tinta); white-space: nowrap; transition: background-color 0.2s, color 0.2s, border-color 0.2s;
}
.aba:hover { border-color: var(--tinta-suave); }
.aba[aria-selected="true"] { background: var(--crepusculo); border-color: var(--crepusculo); color: var(--claro); }
.aba__nota { display: inline-flex; align-items: center; gap: 4px; font-weight: 500; font-size: var(--t-p); font-variant-numeric: tabular-nums; opacity: 0.85; }
.aba__nota .ico { width: 14px; height: 14px; fill: var(--sol); stroke: var(--sol); }

.chale { display: grid; gap: clamp(24px, 4vw, 48px); align-items: start; }
@media (min-width: 900px) { .chale { grid-template-columns: 1.15fr 1fr; } }

.carrossel {
  position: relative; aspect-ratio: 4 / 3; max-width: 100%; border-radius: var(--raio-l); overflow: hidden;
  background: var(--nevoa); box-shadow: var(--sombra); touch-action: pan-y;
}
.carrossel__palco { position: absolute; inset: 0; }
.carrossel__palco img, .carrossel__palco .moldura-vazia {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
  opacity: 0; transition: opacity 0.45s var(--ease);
}
.carrossel__palco .ativo { opacity: 1; }
.carrossel__seta {
  position: absolute; top: 50%; translate: 0 -50%; z-index: 2;
  width: 46px; height: 46px; border-radius: 50%; border: 0; display: inline-flex; align-items: center; justify-content: center;
  background: rgba(255, 255, 255, 0.92); color: var(--crepusculo); box-shadow: var(--sombra);
  transition: transform 0.2s var(--ease);
}
.carrossel__seta:hover { transform: scale(1.06); }
.carrossel__seta--esq { left: 12px; }
.carrossel__seta--dir { right: 12px; }
.carrossel__contador {
  position: absolute; right: 12px; bottom: 12px; z-index: 2; padding: 4px 12px; border-radius: 999px;
  background: rgba(16, 42, 53, 0.72); color: var(--claro); font-size: var(--t-mini); font-variant-numeric: tabular-nums;
}
.carrossel.unica .carrossel__seta, .carrossel.unica .carrossel__contador { display: none; }
.carrossel__legenda {
  position: absolute; left: 12px; bottom: 12px; z-index: 2; max-width: calc(100% - 104px); padding: 4px 12px; border-radius: 999px;
  background: rgba(16, 42, 53, 0.72); color: var(--claro); font-size: var(--t-mini);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.carrossel.unica .carrossel__legenda { max-width: calc(100% - 24px); }
.chale__fotos { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.chale__galeria { align-self: flex-start; }

/* Moldura vazia (enquanto não há foto) */
.moldura-vazia {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; padding: 24px; text-align: center;
  background:
    radial-gradient(70% 60% at 50% 100%, rgba(247, 169, 59, 0.35), rgba(247, 169, 59, 0) 70%),
    linear-gradient(180deg, #E6EFF2, var(--brilho));
  color: var(--ceu);
}
.moldura-vazia .ico { width: 40px; height: 40px; stroke-width: 1.3; opacity: 0.8; }
.modo-previa .moldura-vazia::after {
  content: attr(data-previa-rotulo);
  font-size: var(--t-mini); font-weight: 600; color: var(--crepusculo);
  background: rgba(255, 255, 255, 0.85); border: 1px dashed rgba(16, 42, 53, 0.35);
  padding: 6px 12px; border-radius: 999px; max-width: 100%; overflow-wrap: anywhere;
}

.chale__info { display: flex; flex-direction: column; gap: 22px; min-width: 0; }
.chale__nota { display: flex; flex-direction: column; gap: 6px; }
.chale__nome { font-family: var(--f-display); font-weight: 400; font-size: 2rem; color: var(--crepusculo); }
.chale__nota p { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; color: var(--tinta-suave); font-size: var(--t-p); }
.chale__nota strong { color: var(--tinta); font-variant-numeric: tabular-nums; }
.chale__nota .ico { width: 16px; height: 16px; }

.ficha { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--linha); border: 1px solid var(--linha); border-radius: var(--raio); overflow: hidden; }
.ficha > div { background: var(--papel); padding: 14px 16px; display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.ficha dt { display: flex; align-items: center; gap: 8px; font-size: var(--t-mini); font-weight: 600; color: var(--tinta-suave); }
.ficha dt .ico { width: 16px; height: 16px; color: var(--ceu); }
.ficha dd { font-weight: 600; color: var(--tinta); }

.comodidades { display: grid; grid-template-columns: 1fr; gap: 12px 20px; }
@media (min-width: 520px) { .comodidades { grid-template-columns: 1fr 1fr; } }
.comodidades li { display: flex; align-items: flex-start; gap: 10px; font-size: var(--t-p); line-height: 1.45; }
.comodidades .ico { color: var(--araucaria); margin-top: 1px; }
.chale__acoes { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; padding-top: 4px; }

/* Área comum */
.lazer {
  margin-top: clamp(40px, 6vw, 72px); display: grid; overflow: hidden;
  border-radius: var(--raio-l); background: var(--nevoa); border: 1px solid var(--linha);
}
.lazer__foto { position: relative; min-height: 240px; aspect-ratio: 16 / 10; max-width: 100%; }
.lazer__foto > img, .lazer__foto > .moldura-vazia { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.lazer__texto { display: flex; flex-direction: column; gap: 16px; padding: clamp(24px, 4vw, 44px); min-width: 0; }
.lazer__titulo { font-family: var(--f-display); font-weight: 400; font-size: 1.75rem; color: var(--crepusculo); line-height: 1.15; }
.lazer__texto > p { color: var(--tinta-suave); }
@media (min-width: 900px) {
  .lazer { grid-template-columns: 1.1fr 1fr; }
  .lazer__foto { aspect-ratio: auto; }
}

.lista-check { display: flex; flex-direction: column; gap: 10px; }
.lista-check li { display: flex; align-items: flex-start; gap: 10px; font-size: var(--t-p); line-height: 1.45; }
.lista-check .ico { width: 18px; height: 18px; margin-top: 1px; color: var(--araucaria); }

/* ------------------------------------------------- Pacotes (crepúsculo) - */
.vantagens { display: flex; flex-direction: column; gap: 14px; }
.vantagens li { display: flex; gap: 12px; align-items: flex-start; color: var(--claro-suave); font-size: var(--t-p); line-height: 1.5; }
.vantagens strong { color: var(--claro); }
.vantagens .ico { color: var(--sol-claro); margin-top: 1px; }

.pacotes { display: grid; gap: 18px; }
@media (min-width: 900px) { .pacotes { grid-template-columns: repeat(3, 1fr); align-items: stretch; } }
.pacote {
  position: relative; display: flex; flex-direction: column; gap: 16px; padding: 28px 26px 26px;
  border-radius: var(--raio-l); background: var(--crepusculo-2); border: 1.5px solid var(--linha-escura);
  transition: border-color 0.2s, transform 0.25s var(--ease);
}
.pacote:hover { border-color: rgba(247, 169, 59, 0.5); }
.pacote--destaque { background: linear-gradient(180deg, #24495A, var(--crepusculo-2) 70%); border-color: var(--sol); }
.pacote.escolhido { border-color: var(--sol-claro); box-shadow: 0 0 0 3px rgba(247, 169, 59, 0.25); }
.pacote__selo {
  position: absolute; top: -13px; left: 24px; padding: 4px 12px; border-radius: 999px;
  background: var(--sol-claro); color: var(--crepusculo); font-size: var(--t-mini); font-weight: 700; letter-spacing: 0.02em;
}
.pacote__nome { font-family: var(--f-display); font-weight: 400; font-size: 1.6rem; line-height: 1.15; color: var(--claro); }
.pacote__resumo { color: var(--claro-suave); font-size: var(--t-p); }
.pacote__itens { display: flex; flex-direction: column; gap: 10px; padding-block: 4px; flex: 1; }
.pacote__itens li { display: flex; gap: 10px; align-items: flex-start; font-size: var(--t-p); color: var(--claro); line-height: 1.45; }
.pacote__itens .ico { width: 18px; height: 18px; color: var(--sol-claro); margin-top: 1px; }
.pacote__preco { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px; padding-top: 16px; border-top: 1px solid var(--linha-escura); color: var(--claro-suave); font-size: var(--t-p); }
.pacote__preco strong { font-family: var(--f-texto); font-weight: 700; font-size: 1.6rem; letter-spacing: -0.01em; color: var(--claro); font-variant-numeric: tabular-nums; }
.pacote .botao { width: 100%; }

/* Montador */
.montador { margin-top: clamp(40px, 6vw, 64px); display: grid; gap: 24px; align-items: start; }
@media (min-width: 1000px) { .montador { grid-template-columns: 1.45fr 1fr; } }
.montador__form {
  display: flex; flex-direction: column; gap: 8px; padding: clamp(20px, 3.5vw, 36px);
  border-radius: var(--raio-l); background: var(--crepusculo-2); border: 1px solid var(--linha-escura); min-width: 0;
}
.montador__titulo { font-family: var(--f-display); font-weight: 400; font-size: 1.85rem; color: var(--claro); margin-bottom: 8px; }
.etapa { border: 0; margin: 0; padding: 18px 0; border-top: 1px solid var(--linha-escura); display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.etapa legend { display: flex; align-items: center; gap: 10px; padding: 0; margin-bottom: 14px; float: left; width: 100%; font-weight: 600; color: var(--claro); }
.etapa legend + * { clear: both; }
.etapa__n {
  display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%;
  background: var(--sol-claro); color: var(--crepusculo); font-size: var(--t-mini); font-weight: 700; font-variant-numeric: tabular-nums;
}
.etapa__grade { display: grid; gap: 14px; }
@media (min-width: 560px) { .etapa__grade { grid-template-columns: 1fr 1fr; } }
.etapa__dica { display: flex; align-items: center; gap: 8px; font-size: var(--t-p); color: var(--sol-claro); }
.etapa__dica .ico { width: 18px; height: 18px; }
.etapa__dica--suave { color: var(--claro-suave); font-size: var(--t-mini); }

.campo--escuro label { color: var(--claro-suave); }
.campo--escuro input, .campo--escuro select, .campo--escuro textarea {
  background: var(--crepusculo); border-color: var(--linha-escura); color: var(--claro); color-scheme: dark;
}
.campo--escuro textarea::placeholder { color: #7F9AA5; }
.campo--escuro input[aria-invalid="true"] { border-color: var(--erro-escuro); }

.contador-campo { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 6px 6px 6px 14px; border-radius: var(--raio-s); background: var(--crepusculo); border: 1.5px solid var(--linha-escura); }
.contador-campo__rotulo { font-weight: 500; }
.contador { display: flex; align-items: center; gap: 4px; }
.contador__btn {
  width: 44px; height: 44px; border-radius: 50%; border: 1.5px solid var(--linha-escura); background: transparent; color: var(--claro);
  display: inline-flex; align-items: center; justify-content: center; transition: background-color 0.2s, border-color 0.2s;
}
.contador__btn:hover:not(:disabled) { background: var(--crepusculo-3); border-color: var(--claro-suave); }
.contador__btn:disabled { opacity: 0.35; cursor: not-allowed; }
.contador__valor { min-width: 28px; text-align: center; font-weight: 700; font-size: 1.125rem; font-variant-numeric: tabular-nums; }

.chave { display: inline-flex; align-items: center; gap: 12px; min-height: 44px; cursor: pointer; align-self: flex-start; }
.chave input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.chave__trilho { position: relative; width: 46px; height: 26px; border-radius: 999px; background: var(--crepusculo-3); border: 1.5px solid var(--linha-escura); transition: background-color 0.2s; flex: none; }
.chave__trilho::after { content: ""; position: absolute; top: 3px; left: 3px; width: 17px; height: 17px; border-radius: 50%; background: var(--claro); transition: transform 0.2s var(--ease); }
.chave input:checked + .chave__trilho { background: var(--sol); border-color: var(--sol); }
.chave input:checked + .chave__trilho::after { transform: translateX(20px); }
.chave input:focus-visible + .chave__trilho { outline: 3px solid var(--foco); outline-offset: 3px; }
.chave > span:last-child { display: inline-flex; align-items: center; gap: 8px; }
.chave .ico { width: 18px; height: 18px; color: var(--sol-claro); }

.opcoes { display: grid; gap: 10px; }
@media (min-width: 560px) { .opcoes { grid-template-columns: 1fr 1fr; } }
.opcao { position: relative; display: block; cursor: pointer; }
.opcao input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.opcao__corpo {
  display: flex; flex-direction: column; gap: 2px; min-height: 64px; padding: 12px 14px 12px 44px; border-radius: var(--raio-s);
  border: 1.5px solid var(--linha-escura); background: var(--crepusculo); transition: border-color 0.2s, background-color 0.2s;
  position: relative;
}
.opcao__corpo::before {
  content: ""; position: absolute; left: 14px; top: 16px; width: 18px; height: 18px; border-radius: 50%;
  border: 2px solid var(--claro-suave); transition: border-color 0.2s, box-shadow 0.2s;
}
.opcao__nome { font-weight: 600; color: var(--claro); }
.opcao__desc { font-size: var(--t-mini); color: var(--claro-suave); }
.opcao input:checked + .opcao__corpo { border-color: var(--sol-claro); background: #1E4352; }
.opcao input:checked + .opcao__corpo::before { border-color: var(--sol-claro); box-shadow: inset 0 0 0 4px var(--crepusculo), inset 0 0 0 10px var(--sol-claro); }
.opcao input:focus-visible + .opcao__corpo { outline: 3px solid var(--foco); outline-offset: 2px; }
.opcao--check .opcao__corpo::before { border-radius: 5px; }
.opcao--check input:checked + .opcao__corpo::before { box-shadow: inset 0 0 0 3px var(--crepusculo), inset 0 0 0 10px var(--sol-claro); }
.opcao input:disabled + .opcao__corpo { cursor: default; }
.extras { display: flex; flex-direction: column; gap: 10px; justify-content: flex-end; }
.extras .campo__label { font-size: var(--t-mini); font-weight: 600; color: var(--claro-suave); }

/* Resumo: um recibo claro sobre o crepúsculo */
.resumo {
  display: flex; flex-direction: column; gap: 18px; padding: clamp(22px, 3vw, 32px);
  border-radius: var(--raio-l); background: var(--papel); color: var(--tinta); box-shadow: var(--sombra-forte);
  --foco: var(--ceu); min-width: 0;
}
@media (min-width: 1000px) { .resumo { position: sticky; top: calc(var(--topo-h) + 24px); } }
.resumo__titulo { font-family: var(--f-display); font-weight: 400; font-size: 1.6rem; color: var(--crepusculo); }
.resumo__linhas { display: flex; flex-direction: column; }
.resumo__linhas > div { display: flex; justify-content: space-between; gap: 16px; padding: 10px 0; border-bottom: 1px dashed var(--linha); font-size: var(--t-p); }
.resumo__linhas dt { color: var(--tinta-suave); flex: none; }
.resumo__linhas dd { font-weight: 600; text-align: right; min-width: 0; overflow-wrap: anywhere; }
.resumo__valores { display: flex; flex-direction: column; gap: 8px; }
.valor-linha { display: flex; justify-content: space-between; gap: 12px; font-size: var(--t-p); font-variant-numeric: tabular-nums; }
.valor-linha span:first-child { color: var(--tinta-suave); }
.valor-linha--desconto { color: var(--araucaria); font-weight: 600; }
.valor-linha--desconto span:first-child { color: var(--araucaria); }
.valor-total { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding-top: 12px; margin-top: 4px; border-top: 1.5px solid var(--crepusculo); }
.valor-total span:first-child { font-weight: 600; }
.valor-total strong { font-family: var(--f-texto); font-weight: 700; font-size: 1.9rem; letter-spacing: -0.015em; line-height: 1; color: var(--crepusculo); font-variant-numeric: tabular-nums; }
.valor-economia { display: inline-flex; align-self: flex-start; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 999px; background: var(--araucaria-tint); color: var(--araucaria); font-size: var(--t-mini); font-weight: 700; }
.valor-nota { font-size: var(--t-mini); color: var(--tinta-suave); line-height: 1.5; }
.valor-exemplo { display: inline-block; padding: 2px 8px; border-radius: 6px; background: var(--brilho); color: #8A3B07; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; }
.valor-aviso { font-size: var(--t-p); color: var(--sol-claro); font-weight: 600; }
.resumo__garantia { font-size: var(--t-mini); color: var(--tinta-suave); text-align: center; }
.resumo__alt { align-self: center; display: inline-flex; align-items: center; min-height: 44px; font-size: var(--t-p); font-weight: 600; color: var(--ceu); }

/* ---------------------------------------------------------- Avaliações - */
.placar { display: grid; gap: 20px; }
@media (min-width: 760px) { .placar { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1100px) { .placar { grid-template-columns: 0.9fr 0.9fr 1.3fr; } }
.placar > div { padding: 28px; border-radius: var(--raio-l); background: var(--papel); border: 1px solid var(--linha); min-width: 0; }
.placar__nota { display: flex; flex-direction: column; gap: 8px; }
.placar__numero { font-family: var(--f-display); font-size: 4.5rem; line-height: 0.95; color: var(--crepusculo); font-variant-numeric: tabular-nums; }
.placar__estrelas { display: flex; gap: 4px; }
.placar__estrelas .ico { width: 20px; height: 20px; fill: var(--sol); stroke: var(--sol); }
.placar__legenda { font-size: var(--t-mini); color: var(--tinta-suave); }
.placar__fatos { display: flex; flex-direction: column; gap: 8px; padding-top: 14px; margin-top: 6px; border-top: 1px solid var(--linha); font-size: var(--t-p); }
.placar__subtitulo { font-size: var(--t-mini); font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--tinta-suave); margin-bottom: 14px; }
.nota-chales { display: flex; flex-direction: column; }
.nota-chales li { display: flex; justify-content: space-between; gap: 12px; padding: 14px 0; border-bottom: 1px solid var(--linha); font-size: var(--t-p); font-variant-numeric: tabular-nums; }
.nota-chales li:last-child { border-bottom: 0; }
.nota-chales li span:first-child { font-weight: 600; }
.nota-chales li span:last-child { color: var(--tinta-suave); }
.nota-chales strong { color: var(--tinta); }
.temas { display: flex; flex-direction: column; gap: 10px; }
.tema { display: grid; grid-template-columns: 7.5em 1fr 2.2em; align-items: center; gap: 12px; font-size: var(--t-p); }
.tema__barra { height: 10px; border-radius: 999px; background: var(--nevoa); overflow: hidden; }
.tema__barra span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--ceu-logo), var(--ceu)); }
.tema__n { text-align: right; font-weight: 600; font-variant-numeric: tabular-nums; }
.placar__fonte { margin-top: 14px; font-size: var(--t-mini); color: var(--tinta-suave); }

.depoimentos {
  margin-top: 24px; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(280px, 1fr); gap: 20px;
  overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 8px; scrollbar-width: thin;
}
.depoimentos:empty { display: none; }
@media (min-width: 900px) { .depoimentos { grid-auto-columns: calc((100% - 40px) / 3); } }
.depoimento {
  scroll-snap-align: start; display: flex; flex-direction: column; gap: 14px; padding: 26px;
  border-radius: var(--raio-l); background: var(--papel); border: 1px solid var(--linha); min-width: 0;
}
.depoimento__estrelas { display: flex; gap: 3px; }
.depoimento__estrelas .ico { width: 16px; height: 16px; fill: var(--sol); stroke: var(--sol); }
.depoimento blockquote { margin: 0; font-size: 1rem; line-height: 1.6; color: var(--tinta); flex: 1; }
.depoimento figcaption { display: flex; flex-direction: column; gap: 2px; font-size: var(--t-p); }
.depoimento figcaption strong { color: var(--crepusculo); }
.depoimento figcaption span { color: var(--tinta-suave); font-size: var(--t-mini); }
.depoimento--vazio { border: 1.5px dashed rgba(16, 42, 53, 0.25); background: transparent; align-items: center; justify-content: center; text-align: center; min-height: 220px; color: var(--tinta-suave); }
.depoimento--vazio .ico { width: 32px; height: 32px; color: var(--ceu); }

/* ----------------------------------------------------------- Anfitrião - */
.anfitriao { display: grid; gap: clamp(28px, 5vw, 64px); align-items: center; }
@media (min-width: 860px) { .anfitriao { grid-template-columns: 0.8fr 1.2fr; } }
.anfitriao__foto {
  position: relative; margin: 0; width: 100%; max-width: 380px; aspect-ratio: 4 / 5; margin-inline: auto;
  border-radius: 50% 50% var(--raio-l) var(--raio-l) / 34% 34% var(--raio-l) var(--raio-l); overflow: hidden;
  background: linear-gradient(180deg, #E6EFF2, var(--brilho));
}
.anfitriao__foto img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.anfitriao__inicial { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-family: var(--f-display); font-size: 9rem; color: var(--sol); }
.anfitriao__texto { display: flex; flex-direction: column; gap: 18px; align-items: flex-start; min-width: 0; }
.anfitriao__fala { font-size: 1.1875rem; line-height: 1.6; color: var(--tinta); max-width: 32em; }
.fatos { display: flex; flex-wrap: wrap; gap: 28px; padding-block: 6px; }
.fatos li { display: flex; flex-direction: column; gap: 2px; }
.fatos strong { font-family: var(--f-texto); font-weight: 700; font-size: 1.5rem; font-variant-numeric: tabular-nums; color: var(--crepusculo); line-height: 1.1; }
.fatos li > span { font-size: var(--t-mini); color: var(--tinta-suave); }

/* ---------------------------------------------------------- Localização  */
.local { display: grid; gap: clamp(28px, 5vw, 56px); align-items: center; }
@media (min-width: 960px) { .local { grid-template-columns: 1fr 1.15fr; } }
.local__texto { display: flex; flex-direction: column; gap: 22px; min-width: 0; }
.local__endereco { display: flex; gap: 12px; align-items: flex-start; font-size: 1.125rem; font-weight: 600; color: var(--crepusculo); line-height: 1.45; }
.local__endereco .ico { color: var(--brasa); margin-top: 3px; }
.local__acoes { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.mapa {
  position: relative; width: 100%; max-width: 100%; aspect-ratio: 4 / 3.4; min-height: 340px;
  border-radius: var(--raio-l); overflow: hidden; background: var(--linha); box-shadow: var(--sombra); border: 1px solid var(--linha);
}
.mapa iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.mapa__cartao {
  position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; padding: 24px; text-align: center;
  background:
    repeating-linear-gradient(0deg, rgba(2, 121, 163, 0.07) 0 1px, transparent 1px 36px),
    repeating-linear-gradient(90deg, rgba(2, 121, 163, 0.07) 0 1px, transparent 1px 36px),
    linear-gradient(160deg, #E8F1F4, #F7EBDD);
}
.mapa__pino { width: 56px; height: 56px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: var(--brasa); color: #fff; box-shadow: 0 0 0 10px rgba(232, 90, 18, 0.18); }
.mapa__pino .ico { width: 26px; height: 26px; }
.mapa__cartao p { color: var(--tinta-suave); font-size: var(--t-p); max-width: 26em; }

/* ---------------------------------------------------------------- FAQ --- */
.faq { display: grid; gap: 32px; }
@media (min-width: 960px) { .faq { grid-template-columns: 0.8fr 1.2fr; align-items: start; } .faq .secao__cab { position: sticky; top: calc(var(--topo-h) + 32px); margin-bottom: 0; } }
.faq__lista { display: flex; flex-direction: column; border-top: 1px solid var(--linha); }
.faq__lista details { border-bottom: 1px solid var(--linha); }
.faq__lista summary {
  display: flex; justify-content: space-between; align-items: center; gap: 16px; min-height: 64px; padding: 14px 0;
  cursor: pointer; list-style: none; font-weight: 600; font-size: 1.0625rem; color: var(--crepusculo);
}
.faq__lista summary::-webkit-details-marker { display: none; }
.faq__lista summary::after {
  content: ""; flex: none; width: 32px; height: 32px; border-radius: 50%; border: 1.5px solid var(--linha);
  background:
    linear-gradient(var(--crepusculo), var(--crepusculo)) center / 12px 1.8px no-repeat,
    linear-gradient(var(--crepusculo), var(--crepusculo)) center / 1.8px 12px no-repeat;
  transition: transform 0.25s var(--ease), background-color 0.2s;
}
.faq__lista details[open] summary::after { transform: rotate(45deg); background-color: var(--brilho); border-color: var(--sol-claro); }
.faq__lista details p { padding: 0 48px 20px 0; color: var(--tinta-suave); max-width: 40em; }

/* ------------------------------------------------- Chamada final (poente) */
.final {
  position: relative; overflow: hidden; color: var(--claro); --foco: var(--sol-claro);
  background: linear-gradient(180deg, var(--crepusculo) 0%, #1F4A5D 38%, #8E6A57 70%, #E58A3C 92%, #F7A93B 100%);
  padding-block: clamp(88px, 12vw, 150px) clamp(150px, 20vw, 230px);
}
.final__ceu {
  position: absolute; left: 50%; bottom: 0; width: min(520px, 90vw); aspect-ratio: 2 / 1; transform: translate(-50%, 0);
  border-radius: 999px 999px 0 0;
  background: radial-gradient(circle at 50% 100%, #FFE3A8 0%, #F9B44C 45%, rgba(240, 144, 14, 0) 72%);
}
.final__conteudo { position: relative; display: flex; flex-direction: column; align-items: center; gap: 22px; text-align: center; }
.final__titulo { font-family: var(--f-display); font-weight: 400; font-size: var(--t-h2); line-height: 1.1; max-width: 18em; color: var(--claro); }
.final__texto { color: var(--claro); max-width: 32em; }
.final .hero__acoes { justify-content: center; }

/* ------------------------------------------------------------- Rodapé --- */
.rodape { background: var(--crepusculo); color: var(--claro-suave); padding-block: 64px 28px; --foco: var(--sol-claro); }
.rodape__grade { display: grid; gap: 36px; }
@media (min-width: 720px) { .rodape__grade { grid-template-columns: 1.3fr 1fr 1fr 1fr; } }
.rodape__marca { display: flex; flex-direction: column; gap: 16px; font-size: var(--t-p); max-width: 22em; }
.placa-logo { display: inline-flex; align-self: flex-start; padding: 12px 18px; border-radius: var(--raio); background: var(--papel); }
.placa-logo img { height: 56px; width: auto; }
.rodape__col { display: flex; flex-direction: column; gap: 4px; font-size: var(--t-p); }
.rodape__col h3 { font-family: var(--f-texto); font-size: var(--t-mini); font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--claro); margin-bottom: 8px; }
.rodape__col a { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; color: var(--claro-suave); text-decoration: none; }
.rodape__col a:hover { color: var(--claro); text-decoration: underline; }
.rodape__end { line-height: 1.6; padding-block: 6px; }
.rodape__base { margin-top: 48px; font-size: var(--t-mini); }
.rodape__base > p { padding-top: 22px; border-top: 1px solid var(--linha-escura); }

/* ------------------------------------------------------- Fixos e aviso -- */
.barra-movel {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 60;
  display: flex; flex-direction: column; gap: 6px; padding: 8px var(--gutter) calc(10px + env(safe-area-inset-bottom, 0px));
  background: rgba(255, 255, 255, 0.96); box-shadow: 0 -10px 30px -12px rgba(16, 42, 53, 0.3);
  -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
  transform: translateY(0); transition: transform 0.3s var(--ease);
}
.barra-movel__principal { flex: 1; }
.barra-movel__wpp { flex: none; width: 52px; height: 52px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: var(--wpp); color: #fff; }
.barra-movel__wpp .ico { width: 26px; height: 26px; }
@media (min-width: 960px) { .barra-movel { display: none !important; } }

.wpp-flutuante {
  position: fixed; right: 24px; bottom: calc(24px + env(safe-area-inset-bottom, 0px)); z-index: 60;
  width: 60px; height: 60px; border-radius: 50%; display: none; align-items: center; justify-content: center;
  background: var(--wpp); color: #fff; box-shadow: 0 12px 28px -8px rgba(16, 42, 53, 0.45);
  transition: transform 0.2s var(--ease);
}
.wpp-flutuante:hover { transform: scale(1.06); }
.wpp-flutuante .ico { width: 30px; height: 30px; }
@media (min-width: 960px) { .wpp-flutuante { display: inline-flex; } }

.aviso {
  position: fixed; left: 50%; bottom: calc(96px + env(safe-area-inset-bottom, 0px)); z-index: 80; transform: translateX(-50%);
  padding: 12px 20px; border-radius: 999px; background: var(--crepusculo); color: var(--claro); font-size: var(--t-p); font-weight: 600;
  box-shadow: var(--sombra-forte); max-width: calc(100% - 32px); text-align: center;
}

@media (max-width: 959px) { body.tem-barra { padding-bottom: 104px; } }

/* ------------------------------------------------- Movimento reduzido --- */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; }
}

/* Ajustes */
.aval-link { margin-top: 18px; }
.depoimento--vazio code { font-size: 0.85em; background: var(--nevoa); padding: 1px 6px; border-radius: 4px; }
.botao[aria-disabled="true"] { opacity: 0.6; }

/* ------------------------------------------------------------- Galeria -- */
.galeria-topo {
  padding-block: clamp(40px, 6vw, 80px) 28px;
  background: radial-gradient(55% 80% at 90% 0%, rgba(253, 235, 215, 0.9), rgba(253, 235, 215, 0) 70%), var(--nevoa);
}
.galeria-topo .envelope { display: flex; flex-direction: column; gap: 16px; }
.galeria-topo__titulo { font-family: var(--f-display); font-weight: 400; font-size: var(--t-h1); line-height: 1.05; color: var(--crepusculo); }
.filtros { display: flex; gap: 8px; overflow-x: auto; padding: 8px 4px 4px; margin-inline: -4px; scrollbar-width: none; }
.filtros::-webkit-scrollbar { display: none; }
.filtro {
  display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 18px; border-radius: 999px; white-space: nowrap;
  border: 1.5px solid var(--linha); background: var(--papel); color: var(--tinta); font-weight: 600; transition: background-color 0.2s, color 0.2s, border-color 0.2s;
}
.filtro:hover { border-color: var(--tinta-suave); }
.filtro[aria-pressed="true"] { background: var(--crepusculo); border-color: var(--crepusculo); color: var(--claro); }
.filtro__n { font-weight: 500; font-size: var(--t-mini); opacity: 0.75; font-variant-numeric: tabular-nums; }
.filtro__n:empty { display: none; }

.galeria-corpo { padding-block: 16px clamp(64px, 8vw, 100px); }
.grade-fotos { display: grid; gap: 14px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); }
.foto {
  position: relative; display: block; padding: 0; border: 0; border-radius: var(--raio); overflow: hidden;
  aspect-ratio: 4 / 3; max-width: 100%; background: var(--linha); cursor: zoom-in;
}
.foto img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s var(--ease); }
.foto:hover img { transform: scale(1.04); }
.foto--vazia { cursor: default; }
.foto--vazia .moldura-vazia { position: absolute; inset: 0; }
.foto__tag {
  position: absolute; left: 10px; bottom: 10px; padding: 4px 10px; border-radius: 999px;
  background: rgba(16, 42, 53, 0.72); color: var(--claro); font-size: var(--t-mini); font-weight: 600;
}
.galeria-vazia { padding: 32px 0; color: var(--tinta-suave); }

.como-adicionar {
  display: none; gap: 18px; align-items: flex-start; margin-bottom: 24px; padding: 24px;
  border-radius: var(--raio-l); background: var(--papel); border: 1.5px dashed rgba(2, 121, 163, 0.4);
}
.como-adicionar > .ico { width: 32px; height: 32px; color: var(--ceu); flex: none; }
.como-adicionar > div { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.como-adicionar h2 { font-family: var(--f-display); font-weight: 400; font-size: 1.5rem; color: var(--crepusculo); }
.como-adicionar p, .como-adicionar li { font-size: var(--t-p); color: var(--tinta-suave); }
.como-adicionar ul { display: grid; gap: 6px; }
.como-adicionar code { font-size: 0.85em; background: var(--nevoa); padding: 2px 6px; border-radius: 4px; color: var(--crepusculo); overflow-wrap: anywhere; }
.como-adicionar__nota { font-size: var(--t-mini) !important; }

.final--curto { padding-block: clamp(72px, 9vw, 110px) clamp(130px, 16vw, 190px); }
.rodape--curto { padding-block: 0 28px; }
.rodape--curto .rodape__base { margin-top: 0; }

.lightbox {
  width: 100%; max-width: 100%; height: 100%; max-height: 100%; margin: 0; padding: 16px; border: 0;
  background: rgba(10, 26, 33, 0.94); color: var(--claro); --foco: var(--sol-claro);
}
.lightbox[open] { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; }
.lightbox::backdrop { background: rgba(10, 26, 33, 0.6); }
.lightbox__palco { position: relative; width: 100%; max-width: 1200px; flex: 1; min-height: 0; display: flex; align-items: center; justify-content: center; }
.lightbox__img { max-width: 100%; max-height: 100%; object-fit: contain; border-radius: var(--raio-s); touch-action: pan-y; user-select: none; }
.lightbox__btn {
  position: absolute; width: 48px; height: 48px; border-radius: 50%; border: 0; display: inline-flex; align-items: center; justify-content: center;
  background: rgba(243, 247, 248, 0.14); color: var(--claro);
}
.lightbox__btn:hover { background: rgba(243, 247, 248, 0.26); }
.lightbox__btn--fechar { top: 0; right: 0; }
.lightbox__btn--esq { left: 0; top: 50%; translate: 0 -50%; }
.lightbox__btn--dir { right: 0; top: 50%; translate: 0 -50%; }
.lightbox__legenda { display: flex; gap: 16px; font-size: var(--t-p); color: var(--claro-suave); font-variant-numeric: tabular-nums; }

/* Orçamento sem valores */
.resumo__valores:empty { display: none; }
.resumo__como { display: flex; flex-direction: column; gap: 12px; padding: 16px; border-radius: var(--raio); background: var(--nevoa); }
.resumo__como-titulo { font-size: var(--t-mini); font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--tinta-suave); }
.passos { display: flex; flex-direction: column; gap: 10px; }
.passos li { display: flex; gap: 10px; align-items: flex-start; font-size: var(--t-p); line-height: 1.45; }
.passos__n {
  flex: none; display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; border-radius: 50%;
  background: var(--crepusculo); color: var(--claro); font-size: 0.75rem; font-weight: 700; font-variant-numeric: tabular-nums; margin-top: -1px;
}
.pacote__preco--consulta { align-items: flex-start; flex-wrap: nowrap; gap: 10px; }
.pacote__preco--consulta .ico { width: 20px; height: 20px; color: var(--sol-claro); margin-top: 1px; }
.pacote__consulta { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.pacote__consulta strong { font-size: 1rem; font-weight: 600; color: var(--claro); letter-spacing: 0; }
.pacote__consulta span { font-size: var(--t-p); color: var(--claro-suave); }

/* ------------------------------------------------ Avaliações (carrossel) */
.aval-cab { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 24px; margin-bottom: clamp(28px, 4vw, 44px); }
.aval-cab__texto { display: flex; flex-direction: column; gap: 14px; max-width: 760px; min-width: 0; }
.aval-selos { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.aval-selos__estrelas { display: inline-flex; gap: 3px; margin-right: 4px; }
.aval-selos__estrelas .ico { width: 20px; height: 20px; fill: var(--sol); stroke: var(--sol); }
.aval-selos__chip { display: inline-flex; align-items: center; min-height: 32px; padding: 0 14px; border-radius: 999px; background: var(--papel); border: 1px solid var(--linha); font-size: var(--t-mini); font-weight: 600; color: var(--crepusculo); }
.aval-cab__setas { display: flex; gap: 10px; }
.seta-redonda {
  width: 48px; height: 48px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
  border: 1.5px solid var(--linha); background: var(--papel); color: var(--crepusculo); transition: border-color 0.2s, opacity 0.2s;
}
.seta-redonda:hover:not(:disabled) { border-color: var(--crepusculo); }
.seta-redonda:disabled { opacity: 0.35; cursor: default; }

.trilho-aval {
  display: grid; grid-auto-flow: column; grid-auto-columns: 86%; gap: 20px;
  overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; padding: 4px 2px 8px; scrollbar-width: none;
}
.trilho-aval::-webkit-scrollbar { display: none; }
.trilho-aval:focus-visible { outline-offset: 6px; }
@media (min-width: 700px) { .trilho-aval { grid-auto-columns: calc((100% - 20px) / 2); } }
@media (min-width: 1040px) { .trilho-aval { grid-auto-columns: calc((100% - 40px) / 3); } }
.depoimento { margin: 0; }
.trilho-aval .depoimento { scroll-snap-align: start; }
.depoimento__topo { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.depoimento__origem { padding: 3px 10px; border-radius: 999px; background: var(--nevoa); color: var(--tinta-suave); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.04em; }
.pontos-aval { display: flex; justify-content: center; flex-wrap: wrap; gap: 4px; margin-top: 14px; }
.pontos-aval button { width: 22px; height: 22px; padding: 0; border: 0; background: none; display: inline-flex; align-items: center; justify-content: center; }
.pontos-aval button::after { content: ""; width: 8px; height: 8px; border-radius: 999px; background: var(--linha); transition: width 0.25s var(--ease), background-color 0.25s; }
.pontos-aval button.ativo::after { width: 20px; background: var(--sol); }
.aval-links { display: flex; flex-wrap: wrap; gap: 4px 28px; margin-top: 10px; }

/* ------------------------------------------------------- Guia de Cunha -- */
.lugares { display: grid; gap: 20px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 270px), 1fr)); }
@media (min-width: 1040px) { .lugares--destaque { grid-template-columns: repeat(3, 1fr); } }
.lugar { display: flex; flex-direction: column; min-width: 0; border-radius: var(--raio-l); overflow: hidden; background: var(--papel); border: 1px solid var(--linha); }
.secao--papel .lugar { background: var(--nevoa); }
.lugar__foto {
  position: relative; aspect-ratio: 3 / 2; max-width: 100%; display: flex; align-items: center; justify-content: center;
  background: radial-gradient(70% 70% at 50% 100%, rgba(247, 169, 59, 0.3), rgba(247, 169, 59, 0) 70%), linear-gradient(180deg, #E6EFF2, var(--brilho));
}
.lugar__foto img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.lugar__icone .ico { width: 36px; height: 36px; stroke-width: 1.3; color: var(--ceu); }
.lugar__selo {
  position: absolute; top: 12px; left: 12px; z-index: 1; display: inline-flex; align-items: center; gap: 6px;
  padding: 5px 12px; border-radius: 999px; background: var(--sol-claro); color: var(--crepusculo); font-size: 0.75rem; font-weight: 700;
}
.lugar__selo .ico { width: 14px; height: 14px; }
.lugar__corpo { display: flex; flex-direction: column; gap: 8px; padding: 20px 22px 18px; flex: 1; }
.lugar__meta { font-size: 0.75rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--tinta-suave); }
.lugar__nome { font-family: var(--f-display); font-weight: 400; font-size: 1.375rem; line-height: 1.2; color: var(--crepusculo); }
.lugar__desc { font-size: var(--t-p); color: var(--tinta-suave); line-height: 1.55; }
.lugar__beneficio { display: flex; align-items: center; gap: 8px; padding: 8px 12px; border-radius: var(--raio-s); background: var(--araucaria-tint); color: var(--araucaria); font-size: var(--t-p); font-weight: 600; }
.lugar__beneficio .ico { width: 18px; height: 18px; }
.lugar__acoes { display: flex; flex-wrap: wrap; gap: 0 18px; margin-top: auto; padding-top: 4px; }
.lugar__acao { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; font-size: var(--t-p); font-weight: 600; color: var(--ceu); text-decoration: none; }
.lugar__acao:hover { text-decoration: underline; }
.lugar__acao .ico { width: 18px; height: 18px; }
.lugar--vazio { border-style: dashed; border-color: rgba(16, 42, 53, 0.25); }
.lugar--vazio .lugar__foto { position: relative; }
.cunha__rodape { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 28px; margin-top: 32px; }

.pagina-guia .rodape--curto { padding-top: 28px; }

/* Números com a fonte do texto dentro de títulos (o 1 da fonte de título parece um I) */
.num { font-family: var(--f-texto); font-weight: 500; letter-spacing: -0.03em; font-size: 0.9em; }

/* Destaques do guia: faixa deslizante no celular */
@media (max-width: 1039px) {
  .lugares--destaque {
    grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: min(80%, 320px);
    overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 8px; scrollbar-width: none;
  }
  .lugares--destaque::-webkit-scrollbar { display: none; }
  .lugares--destaque .lugar { scroll-snap-align: start; }
}

/* ------------------------------------------------------- Ajustes gerais */
.sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.topo__cta--sempre { display: inline-flex; }
.barra-movel__info { display: flex; align-items: center; justify-content: center; gap: 6px; font-size: 0.75rem; font-weight: 600; color: var(--tinta-suave); }
.barra-movel__info .ico { width: 14px; height: 14px; color: var(--wpp); }
.barra-movel__botoes { display: flex; gap: 10px; }
.resumo__garantia { display: flex; align-items: center; justify-content: center; gap: 6px; flex-wrap: wrap; }
.resumo__garantia .ico { width: 15px; height: 15px; color: var(--araucaria); }

/* Breadcrumbs */
.migalhas ol { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; padding: 0; margin: 0; list-style: none; font-size: var(--t-mini); color: var(--tinta-suave); }
.migalhas li { display: inline-flex; align-items: center; gap: 4px; }
.migalhas li + li::before { content: ""; width: 6px; height: 6px; margin: 0 6px; border-right: 1.5px solid currentColor; border-top: 1.5px solid currentColor; transform: rotate(45deg); opacity: 0.6; }
.migalhas a { display: inline-flex; align-items: center; min-height: 32px; color: var(--ceu); font-weight: 600; text-decoration: none; }
.migalhas a:hover { text-decoration: underline; }
.migalhas [aria-current] { color: var(--tinta); font-weight: 600; }

/* Como chegar */
.como-chegar { padding: 18px 20px; border-radius: var(--raio); background: var(--nevoa); border: 1px solid var(--linha); }
.como-chegar__titulo { font-size: var(--t-mini); font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--tinta-suave); margin-bottom: 10px; }
.como-chegar dl { display: flex; flex-direction: column; gap: 10px; }
.como-chegar dt { font-weight: 600; color: var(--crepusculo); font-size: var(--t-p); }
.como-chegar dd { font-size: var(--t-p); color: var(--tinta-suave); line-height: 1.5; }
.secao--papel .como-chegar { background: var(--nevoa); }

/* Momentos (cases) */
.momentos { display: grid; gap: 20px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); }
.momento { display: flex; flex-direction: column; min-width: 0; border-radius: var(--raio-l); overflow: hidden; background: var(--nevoa); border: 1px solid var(--linha); }
.momento__foto { position: relative; aspect-ratio: 1 / 1; max-width: 100%; display: flex; align-items: center; justify-content: center;
  background: radial-gradient(70% 70% at 50% 100%, rgba(232, 90, 18, 0.22), rgba(232, 90, 18, 0) 70%), linear-gradient(180deg, #E6EFF2, var(--brilho)); }
.momento__foto img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.momento__icone .ico, .momento__foto > .ico { width: 36px; height: 36px; stroke-width: 1.3; color: var(--brasa); }
.momento__corpo { display: flex; flex-direction: column; gap: 8px; padding: 20px 22px 22px; }
.momento__tipo { font-size: 0.75rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--brasa-texto); }
.momento__titulo { font-family: var(--f-display); font-weight: 400; font-size: 1.4rem; line-height: 1.2; color: var(--crepusculo); }
.momento__texto { font-size: var(--t-p); color: var(--tinta-suave); line-height: 1.6; }
.momento__meta { font-size: var(--t-mini); color: var(--tinta-suave); font-weight: 600; }
.momento--vazio { border-style: dashed; border-color: rgba(16, 42, 53, 0.25); background: transparent; }
.momentos__cta { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; margin-top: 28px; }
.momentos__nota { display: inline-flex; align-items: center; gap: 6px; font-size: var(--t-p); color: var(--tinta-suave); }
.momentos__nota .ico { width: 16px; height: 16px; color: var(--araucaria); }

/* Rodapé: links legais */
.rodape__base { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px 24px; }
.rodape__base > p:first-child { flex: 1 1 auto; }
.rodape__base > p { padding-top: 22px; border-top: 1px solid var(--linha-escura); }
.rodape__legal { display: flex; flex-wrap: wrap; gap: 4px 20px; }
.rodape__legal a, .rodape__cookies { display: inline-flex; align-items: center; min-height: 40px; color: var(--claro-suave); text-decoration: underline; text-underline-offset: 3px; background: none; border: 0; padding: 0; font-size: var(--t-mini); }
.rodape__legal a:hover, .rodape__cookies:hover { color: var(--claro); }
@media (max-width: 719px) { .rodape__base > p:last-child { border-top: 0; padding-top: 0; } }
.rodape__end a { align-items: flex-start !important; text-decoration: none; }
.rodape__end .ico { width: 18px; height: 18px; margin-top: 3px; color: var(--sol-claro); }

/* Aviso de cookies */
.cookies {
  position: fixed; z-index: 90; left: 16px; right: 16px; bottom: calc(112px + env(safe-area-inset-bottom, 0px));
  display: flex; flex-direction: column; gap: 14px; padding: 18px 20px; border-radius: var(--raio-l);
  background: var(--papel); color: var(--tinta); box-shadow: var(--sombra-forte); border: 1px solid var(--linha); --foco: var(--ceu);
}
.cookies__texto { font-size: var(--t-p); line-height: 1.5; }
.cookies__texto a { font-weight: 600; }
.cookies__acoes { display: flex; gap: 10px; }
.cookies__acoes .botao { flex: 1; }
@media (min-width: 960px) {
  .cookies { left: 24px; right: auto; bottom: 24px; max-width: 440px; }
}
.pagina-404 .cookies, .pagina-privacidade .cookies { bottom: calc(16px + env(safe-area-inset-bottom, 0px)); }

/* Página 404 */
.erro { position: relative; overflow: hidden; color: var(--claro); --foco: var(--sol-claro); min-height: 70vh;
  background: linear-gradient(180deg, var(--crepusculo) 0%, #1F4A5D 45%, #8E6A57 78%, #E58A3C 100%);
  display: flex; align-items: center; padding-block: clamp(64px, 10vw, 120px) clamp(140px, 18vw, 200px); }
.erro__ceu { position: absolute; inset: auto 0 0 0; height: 46%; pointer-events: none; }
.erro__sol { position: absolute; left: 50%; bottom: 18%; width: min(300px, 60vw); aspect-ratio: 1; transform: translate(-50%, 50%); border-radius: 50%;
  background: radial-gradient(circle, #FFE3A8 0%, #F9B44C 50%, rgba(240, 144, 14, 0) 72%); }
.erro__serra { position: absolute; left: 0; bottom: 0; width: 100%; height: 60%; }
.erro__serra path { fill: var(--crepusculo); }
.erro__conteudo { position: relative; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 18px; }
.erro__titulo { font-family: var(--f-display); font-weight: 400; font-size: var(--t-h1); line-height: 1.05; color: var(--claro); max-width: 14em; }
.erro__texto { color: var(--claro); max-width: 30em; font-size: 1.125rem; }
.erro__acoes { justify-content: center; }
.erro__links { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 22px; margin-top: 8px; }
.erro__links a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; color: var(--claro); font-weight: 600; text-decoration: none; }
.erro__links a:hover { text-decoration: underline; }
.erro__links .ico { width: 18px; height: 18px; color: var(--sol-claro); }
.pagina-404 .rodape--curto { padding-top: 0; }

/* Política de Privacidade */
.texto-legal { max-width: calc(760px + var(--gutter) * 2); padding-block: 8px clamp(64px, 8vw, 100px); }
.texto-legal h2 { font-family: var(--f-display); font-weight: 400; font-size: 1.6rem; line-height: 1.2; color: var(--crepusculo); margin: 40px 0 12px; scroll-margin-top: calc(var(--topo-h) + 16px); }
.texto-legal p, .texto-legal li { color: var(--tinta); line-height: 1.7; }
.texto-legal p + p { margin-top: 12px; }
.texto-legal ul { list-style: disc; padding-left: 1.3em; display: flex; flex-direction: column; gap: 8px; margin-top: 10px; }
.texto-legal strong { color: var(--crepusculo); }
.resumo-legal { display: flex; gap: 16px; align-items: flex-start; padding: 22px 24px; border-radius: var(--raio-l); background: var(--papel); border: 1px solid var(--linha); }
.resumo-legal > .ico { width: 30px; height: 30px; color: var(--araucaria); flex: none; }
.resumo-legal h2 { margin: 0 0 8px; font-size: 1.25rem; }
.resumo-legal ul { margin-top: 0; }
.cookies-estado { font-weight: 600; color: var(--crepusculo); }
.pagina-privacidade .rodape--curto, .pagina-404 .rodape--curto { padding-top: 0; }

/* Esqueletos de carregamento (reservam espaço e evitam que a página "pule") */
.foto--carregando, .lugar--carregando { background: linear-gradient(100deg, var(--linha) 30%, #EAF0F2 50%, var(--linha) 70%); background-size: 300% 100%; animation: brilhoCarregando 1.4s ease-in-out infinite; }
.foto--carregando { cursor: default; }
.lugar--carregando { min-height: 380px; border: 0; }
@keyframes brilhoCarregando { from { background-position: 100% 0; } to { background-position: 0 0; } }
@media (prefers-reduced-motion: reduce) { .foto--carregando, .lugar--carregando { animation: none; } }
h2.lugar__nome { font-size: 1.375rem; }
.modo-previa .como-adicionar { display: flex; }

/* Rodapé: uma única linha divisória */
.rodape__base { border-top: 1px solid var(--linha-escura); padding-top: 14px; }
.rodape__base > p, .rodape__base > p:first-child { padding-top: 0; border-top: 0; }
.rodape--curto .rodape__base { padding-top: 14px; }
.pagina-404 { background: var(--crepusculo); }
.rodape__base { position: relative; border-top: 0; }
.rodape__base::before { content: ""; position: absolute; top: 0; left: var(--gutter); right: var(--gutter); border-top: 1px solid var(--linha-escura); }

/* ---------------------------------------------------- Guia: capas e abas */
.lugar__foto { --t1: #E6EFF2; --t2: #F7D9B0; --ti: #2E5466; overflow: hidden;
  background: linear-gradient(160deg, var(--t1) 0%, var(--t2) 100%); }
.lugar__foto::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 38%;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 60' preserveAspectRatio='none'%3E%3Cpath d='M0 42 L50 22 L95 36 L150 12 L205 34 L250 20 L300 32 V60 H0Z' fill='%23ffffff' fill-opacity='.35'/%3E%3Cpath d='M0 52 L70 38 L130 50 L200 34 L260 46 L300 40 V60 H0Z' fill='%23ffffff' fill-opacity='.55'/%3E%3C/svg%3E") bottom / 100% 100% no-repeat; pointer-events: none; }
.lugar__foto img { z-index: 1; }
.lugar__icone { position: relative; z-index: 0; display: inline-flex; align-items: center; justify-content: center;
  width: 84px; height: 84px; border-radius: 50%; background: rgba(255, 255, 255, 0.55); margin-bottom: 18px; }
.lugar__icone .ico { width: 44px; height: 44px; stroke-width: 1.4; color: var(--ti); }
.lugar__selo { z-index: 2; }
.lugar__foto[data-tipo="lavanda"]     { --t1: #EFE8F7; --t2: #C9B5E6; --ti: #5E4396; }
.lugar__foto[data-tipo="cachoeira"]   { --t1: #E3F3F8; --t2: #9FD3E6; --ti: #026E8C; }
.lugar__foto[data-tipo="mirante"]     { --t1: #E3EEF2; --t2: #F5C98F; --ti: #2E5466; }
.lugar__foto[data-tipo="parque"]      { --t1: #E6F2E8; --t2: #A9D1B3; --ti: #0B4A1E; }
.lugar__foto[data-tipo="ceramica"]    { --t1: #F8EADF; --t2: #E3AE88; --ti: #8A3F14; }
.lugar__foto[data-tipo="praia"]       { --t1: #E1F3F5; --t2: #8ECBD6; --ti: #025E78; }
.lugar__foto[data-tipo="cidade"]      { --t1: #FCEEDD; --t2: #F2C08A; --ti: #9A3D0A; }
.lugar__foto[data-tipo="vinicola"]    { --t1: #F6E4EA; --t2: #D79AAE; --ti: #74203C; }
.lugar__foto[data-tipo="olival"]      { --t1: #EEF2DC; --t2: #C3CF8F; --ti: #4F5E16; }
.lugar__foto[data-tipo="cervejaria"]  { --t1: #FCF0D6; --t2: #F0BF62; --ti: #7A4F05; }
.lugar__foto[data-tipo="cafe"]        { --t1: #F5EADF; --t2: #D6B08C; --ti: #5E3A1F; }
.lugar__foto[data-tipo="restaurante"], .lugar__foto[data-tipo="delivery"] { --t1: #FDEBD7; --t2: #F5B97A; --ti: #9A3D0A; }

.lugar__dica { display: flex; gap: 8px; align-items: flex-start; font-size: var(--t-mini); color: var(--tinta); line-height: 1.5;
  padding: 8px 10px; border-radius: var(--raio-s); background: rgba(2, 121, 163, 0.07); }
.lugar__dica .ico { width: 16px; height: 16px; flex: none; margin-top: 1px; color: var(--ceu); }
.lugar__acoes { gap: 0 16px; }

.abas--guia { margin-bottom: 22px; }
.aba__contagem { display: inline-flex; align-items: center; justify-content: center; min-width: 24px; height: 22px; padding: 0 7px; border-radius: 999px;
  font-size: 0.75rem; font-weight: 700; background: var(--nevoa); color: var(--tinta-suave); font-variant-numeric: tabular-nums; }
.aba[aria-selected="true"] .aba__contagem { background: rgba(243, 247, 248, 0.18); color: var(--claro); }

.lugar-vazio { grid-column: 1 / -1; display: flex; flex-direction: column; align-items: center; gap: 14px; text-align: center;
  padding: 40px 24px; border-radius: var(--raio-l); border: 1.5px dashed rgba(16, 42, 53, 0.22); color: var(--tinta-suave); }
.lugar-vazio > .ico { width: 40px; height: 40px; stroke-width: 1.4; color: var(--brasa-texto); }
.lugar-vazio p { max-width: 34em; }
@media (max-width: 1039px) { .lugares--destaque.lugares--vazio { display: block; overflow: visible; } }
#guia-vazio .lugar-vazio { margin-top: 4px; }

/* Abas e filtros sempre visíveis no celular (quebram em linhas em vez de rolar para o lado) */
@media (max-width: 759px) {
  .abas, .filtros { flex-wrap: wrap; overflow: visible; }
  .abas .aba, .filtros .filtro { min-height: 44px; padding: 0 16px; font-size: 0.9375rem; }
}
