/* =========================================================
   Rancho Recanto Beija-Flor — v3
   Conceito: rústico-premium editorial. Linho e mata, madeira e latão.
   Tipografia grande e serifada, muito respiro, movimento guiado pela rolagem.
   ========================================================= */

@font-face { font-family: "Cormorant"; src: url("../fonts/cormorant-garamond-latin-500-normal.woff2") format("woff2"); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: "Cormorant"; src: url("../fonts/cormorant-garamond-latin-500-italic.woff2") format("woff2"); font-weight: 500; font-style: italic; font-display: swap; }
@font-face { font-family: "Cormorant"; src: url("../fonts/cormorant-garamond-latin-600-normal.woff2") format("woff2"); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: "Jost"; src: url("../fonts/jost-latin-300-normal.woff2") format("woff2"); font-weight: 300; font-style: normal; font-display: swap; }
@font-face { font-family: "Jost"; src: url("../fonts/jost-latin-400-normal.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Jost"; src: url("../fonts/jost-latin-500-normal.woff2") format("woff2"); font-weight: 500; font-style: normal; font-display: swap; }

:root {
  --linho: #f3eee4;
  --linho-2: #e9e1d2;
  --areia: #ded3bf;
  --tinta: #18201b;
  --tinta-2: #59625b;
  --mata: #132019;
  --mata-2: #1b2b22;
  --madeira: #9a5a2b;
  --latao: #cba46b;
  --creme-sobre-escuro: #efe8da;
  --suave-sobre-escuro: #b9b4a6;
  --linha: rgba(24, 32, 27, .14);
  --linha-escura: rgba(239, 232, 218, .16);
  --verde-wa: #1f9d55;

  --f-titulo: "Cormorant", "Cormorant Garamond", "Iowan Old Style", "Palatino Linotype", Georgia, serif;
  --f-texto: "Jost", "Futura", "Avenir Next", "Segoe UI", system-ui, sans-serif;

  --caixa: 1240px;
  --lado: max(20px, env(safe-area-inset-left, 0px));
  --lado-d: max(20px, env(safe-area-inset-right, 0px));
  --raio: 4px;
  --suave: cubic-bezier(.22, .8, .2, 1);
  color-scheme: light;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 90px; }
body {
  margin: 0; background: var(--linho); color: var(--tinta);
  font: 300 1.0625rem/1.65 var(--f-texto); letter-spacing: .005em;
  -webkit-font-smoothing: antialiased; overflow-x: hidden;
}
img, video { display: block; max-width: 100%; }
figure { margin: 0; }
a { color: inherit; }
h1, h2, h3 { margin: 0; font-weight: 500; text-wrap: balance; }
p { margin: 0; }
em { font-style: italic; }
:focus-visible { outline: 2px solid var(--latao); outline-offset: 4px; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.pular { position: absolute; left: -9999px; }
.pular:focus { left: 16px; top: 16px; z-index: 200; background: var(--linho); padding: 8px 14px; }

.caixa { max-width: var(--caixa); margin: 0 auto; padding-left: var(--lado); padding-right: var(--lado-d); }
.rotulo {
  font: 500 .75rem/1 var(--f-texto); letter-spacing: .26em; text-transform: uppercase;
  color: var(--madeira); margin-bottom: 1.4rem; display: flex; align-items: center; gap: .9rem;
}
.rotulo::before { content: ""; width: 34px; height: 1px; background: currentColor; opacity: .7; }
h2 {
  font-family: var(--f-titulo); font-weight: 500; font-size: clamp(2.4rem, 1.4rem + 4vw, 5rem);
  line-height: 1.02; letter-spacing: -.01em;
}
h2 em { color: var(--madeira); }
h3 { font-family: var(--f-titulo); font-size: 1.6rem; line-height: 1.15; font-weight: 600; }
.lead { font-size: clamp(1.05rem, 1rem + .35vw, 1.25rem); color: var(--tinta-2); max-width: 58ch; margin-top: 1.6rem; }
.secao { padding-block: clamp(5rem, 11vw, 10rem); }
.cabeca { max-width: 860px; margin-bottom: clamp(2.5rem, 6vw, 4.5rem); }
.cabeca.centro { margin-inline: auto; text-align: center; }
.cabeca.centro .rotulo { justify-content: center; }
.cabeca.centro .rotulo::before { display: none; }
.cabeca.centro .lead { margin-inline: auto; }

/* Escuro */
.escura { background: var(--mata); color: var(--creme-sobre-escuro); }
.escura .lead { color: var(--suave-sobre-escuro); }
.escura h2 em, .escura .rotulo { color: var(--latao); }
.areia { background: var(--linho-2); }

/* =========== Revelação na rolagem =========== */
.js [data-reveal] { opacity: 0; transform: translateY(34px); transition: opacity 1s var(--suave), transform 1.1s var(--suave); transition-delay: var(--atraso, 0s); }
.js [data-reveal].visto { opacity: 1; transform: none; }
.js [data-reveal="foto"] { opacity: 1; transform: none; clip-path: inset(12% 6% 12% 6% round 6px); transition: clip-path 1.4s var(--suave); }
.js [data-reveal="foto"] img, .js [data-reveal="foto"] video { transform: scale(1.18); transition: transform 1.8s var(--suave); }
.js [data-reveal="foto"].visto { clip-path: inset(0 0 0 0 round 4px); }
.js [data-reveal="foto"].visto img, .js [data-reveal="foto"].visto video { transform: scale(1); }

/* =========== Cabeçalho =========== */
body::before { content: ""; position: fixed; inset: 0 0 auto; height: env(safe-area-inset-top, 0px); background: var(--mata); z-index: 101; }
.cab {
  position: fixed; left: 0; right: 0; top: env(safe-area-inset-top, 0px); z-index: 100;
  transition: background .5s var(--suave), transform .5s var(--suave), box-shadow .5s;
}
.cab-in {
  max-width: 1440px; margin: 0 auto; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 1rem;
  padding: 1.1rem var(--lado-d) 1.1rem var(--lado); transition: padding .5s var(--suave);
}
.cab-logo { justify-self: start; display: block; line-height: 0; }
.cab-logo img { height: 90px; width: auto; transition: height .5s var(--suave); }
.logo-escuro { display: none; }
.cab-nav { display: flex; gap: .3rem; justify-self: center; }
.cab-nav a {
  position: relative; color: #fff; text-decoration: none; font: 400 .8rem/1 var(--f-texto);
  letter-spacing: .18em; text-transform: uppercase; padding: .85rem 1rem; border-radius: 999px;
  transition: transform .35s var(--suave), background .35s, color .35s;
}
.cab-nav a::after {
  content: ""; position: absolute; left: 50%; right: 50%; bottom: .45rem; height: 1px; background: currentColor;
  transition: left .35s var(--suave), right .35s var(--suave);
}
.cab-nav a:hover { transform: translateY(-2px) scale(1.08); background: rgba(255,255,255,.12); }
.cab-nav a:hover::after { left: 1rem; right: 1rem; }
.cab-nav a.ativo::after { left: 1rem; right: 1rem; }
.cab-menu { display: none; }

.cab.solida { background: rgba(243, 238, 228, .92); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); box-shadow: 0 1px 0 var(--linha); }
.cab.solida .cab-in { padding-block: .55rem; }
.cab.solida .cab-logo img { height: 62px; }
.cab.solida .logo-claro { display: none; }
.cab.solida .logo-escuro { display: block; }
.cab.solida .cab-nav a { color: var(--tinta); }
.cab.solida .cab-nav a:hover { background: rgba(24,32,27,.07); }
.cab.escondida { transform: translateY(-110%); }

@media (max-width: 1280px) {
  .cab-in { grid-template-columns: 1fr auto; }
  .cab-nav { display: none; }
  .cab-logo img { height: 58px; }
  .cab.solida .cab-logo img { height: 46px; }
  .cab-menu {
    display: grid; place-items: center; gap: 6px; width: 48px; height: 48px; border-radius: 50%; cursor: pointer;
    background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.4); justify-self: end; padding: 0;
    align-content: center;
  }
  .cab-menu span:not(.sr) { display: block; width: 18px; height: 1.5px; background: #fff; transition: transform .4s var(--suave); }
  .cab.solida .cab-menu { background: transparent; border-color: var(--linha); }
  .cab.solida .cab-menu span:not(.sr) { background: var(--tinta); }
  .cab-menu[aria-expanded="true"] span:nth-child(1) { transform: translateY(3.75px) rotate(45deg); }
  .cab-menu[aria-expanded="true"] span:nth-child(2) { transform: translateY(-3.75px) rotate(-45deg); }
}

.menu-tela {
  position: fixed; inset: 0; z-index: 99; background: var(--mata); color: var(--creme-sobre-escuro);
  display: flex; align-items: center; justify-content: center;
  padding: 110px var(--lado-d) calc(40px + env(safe-area-inset-bottom, 0px)) var(--lado);
  animation: menuEntra .5s var(--suave);
}
.menu-tela[hidden] { display: none; }
.menu-tela nav { display: flex; flex-direction: column; align-items: center; gap: .3rem; }
.menu-tela a {
  font: 500 clamp(1.7rem, 6.4vw, 2.5rem)/1.22 var(--f-titulo); text-decoration: none; color: inherit;
  opacity: 0; transform: translateY(18px); animation: itemEntra .6s var(--suave) forwards;
}
.menu-tela a:nth-child(n) { animation-delay: calc(var(--i, 0) * 50ms + 80ms); }
@keyframes menuEntra { from { opacity: 0; } to { opacity: 1; } }
@keyframes itemEntra { to { opacity: 1; transform: none; } }
body.menu-aberto .cab { background: transparent; box-shadow: none; backdrop-filter: none; }
body.menu-aberto .cab .logo-claro { display: block; }
body.menu-aberto .cab .logo-escuro { display: none; }
body.menu-aberto .cab-menu span:not(.sr) { background: #fff !important; }
body.menu-aberto .cab-menu { border-color: rgba(255,255,255,.4) !important; }

/* =========== Hero =========== */
.hero { position: relative; height: 100vh; height: 100svh; min-height: 560px; background: var(--mata); overflow: hidden; }
.hero-palco { position: absolute; inset: 0; will-change: clip-path; }
.cena { position: absolute; inset: 0; opacity: 0; transition: opacity 1.4s ease; }
.cena.cena-ativa { opacity: 1; }
.cena-video, .cena video { width: 100%; height: 100%; object-fit: cover; }
.cena-ativa .cena-video { animation: kenburns 16s linear both; }
@keyframes kenburns { from { transform: scale(1.08); } to { transform: scale(1); } }
.cena-legenda { display: none;
  position: absolute; right: var(--lado-d); bottom: 2.2rem; color: rgba(255,255,255,.8);
  font: 400 .72rem/1 var(--f-texto); letter-spacing: .24em; text-transform: uppercase;
}
.cena-tripla { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; background: var(--mata); }
.cena-tripla figure { position: relative; overflow: hidden; }
.cena-tripla figure video { transform: scale(1.06); transition: transform 8s linear; }
.cena-tripla.cena-ativa figure video { transform: scale(1); }
.cena-tripla figure:nth-child(2) { transition-delay: .15s; }
.cena-tripla figcaption {
  position: absolute; left: 1.4rem; bottom: 9.5rem; color: #fff; font: 400 .72rem/1 var(--f-texto);
  letter-spacing: .24em; text-transform: uppercase; opacity: 0; transform: translateY(10px);
  transition: opacity .8s var(--suave) .6s, transform .8s var(--suave) .6s;
}
.cena-tripla.cena-ativa figcaption { opacity: .9; transform: none; }
.hero-veu {
  position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(180deg, rgba(10,16,12,.5) 0%, rgba(10,16,12,0) 26%, rgba(10,16,12,0) 55%, rgba(10,16,12,.68) 100%);
}
.hero-rodape {
  position: absolute; left: 0; right: 0; bottom: 0; z-index: 2;
  padding: 0 var(--lado-d) calc(2rem + env(safe-area-inset-bottom, 0px)) var(--lado);
  max-width: 1440px; margin: 0 auto; display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem;
}
.hero-titulo {
  color: #fff; font: 500 clamp(1.25rem, 1rem + 1vw, 1.9rem)/1.2 var(--f-titulo); font-style: italic;
  max-width: 34ch; text-shadow: 0 2px 18px rgba(0,0,0,.35);
}
.hero-cenas { display: flex; gap: 8px; padding-bottom: .5rem; }
.hero-cenas button { width: 46px; height: 18px; padding: 0; border: 0; background: transparent; cursor: pointer; position: relative; }
.hero-cenas button::before, .hero-cenas button::after { content: ""; position: absolute; left: 0; right: 0; top: 8px; height: 2px; background: rgba(255,255,255,.3); }
.hero-cenas button::after { background: #fff; right: 100%; }
.hero-cenas button.ativo::after { animation: barra var(--dur, 9s) linear forwards; }
@keyframes barra { to { right: 0; } }
.hero-rolar { position: absolute; left: 50%; bottom: 1.6rem; transform: translateX(-50%); z-index: 3; width: 26px; height: 42px; border: 1px solid rgba(255,255,255,.6); border-radius: 20px; }
.hero-rolar span { position: absolute; left: 50%; top: 8px; width: 2px; height: 8px; margin-left: -1px; background: #fff; border-radius: 2px; animation: rolar 2s ease-in-out infinite; }
@keyframes rolar { 0% { opacity: 0; transform: translateY(0); } 30% { opacity: 1; } 100% { opacity: 0; transform: translateY(14px); } }
@media (max-width: 760px) {
  .cena-tripla { display: none; }
  .hero-rodape { flex-direction: column; align-items: flex-start; gap: 1.2rem; padding-bottom: calc(5.2rem + env(safe-area-inset-bottom, 0px)); }
  .hero-titulo { font-size: 1.35rem; }
  .cena-legenda { display: none; left: var(--lado); right: auto; bottom: calc(2.2rem + env(safe-area-inset-bottom, 0px)); }
  .hero-rolar { display: none; }
  .hero-cenas button { width: 34px; }
}
.cena-mob { display: none; }
@media (max-width: 760px) { .cena-mob { display: block; } }

/* =========== Manifesto =========== */
.manifesto { padding-block: clamp(6rem, 14vw, 12rem) clamp(4rem, 9vw, 8rem); }
.manifesto .rotulo { justify-content: center; }
.manifesto .rotulo::before { display: none; }
.manifesto-texto {
  font: 500 clamp(2rem, 1.1rem + 3.6vw, 4.2rem)/1.12 var(--f-titulo); text-align: center;
  max-width: 22ch; margin: 0 auto; letter-spacing: -.01em; text-wrap: balance;
}
.manifesto-texto .p { color: rgba(24,32,27,.16); transition: color .25s linear; }
.manifesto-texto .p.acesa { color: var(--tinta); }
.numeros { list-style: none; padding: 0; margin: clamp(4rem, 9vw, 7rem) auto 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--linha); }
.numeros li { padding: 2rem 1.2rem 0; border-left: 1px solid var(--linha); display: flex; flex-direction: column; gap: .5rem; }
.numeros li:first-child { border-left: 0; }
.numeros strong { font: 500 clamp(3rem, 2rem + 3vw, 4.6rem)/1 var(--f-titulo); color: var(--madeira); font-variant-numeric: tabular-nums; }
.numeros span { font-size: .95rem; color: var(--tinta-2); }
@media (max-width: 760px) { .numeros { grid-template-columns: 1fr 1fr; } .numeros li:nth-child(3) { border-left: 0; } .numeros li { padding-bottom: 1.6rem; } }

/* =========== Área social =========== */
.mosaico { display: grid; grid-template-columns: 1.55fr 1fr; grid-template-rows: auto auto; gap: clamp(.8rem, 1.6vw, 1.4rem); }
.mosaico figure { overflow: hidden; border-radius: var(--raio); background: var(--linho-2); }
.mosaico img { width: 100%; height: 100%; object-fit: cover; }
.m-a { aspect-ratio: 16 / 10; }
.m-b { aspect-ratio: 16 / 10; align-self: end; }
.m-c { aspect-ratio: 16 / 10; }
.m-d { aspect-ratio: 16 / 10; }
.mosaico .m-c { grid-column: 2; grid-row: 2; }
.mosaico .m-d { grid-column: 1; grid-row: 2; }
@media (max-width: 760px) { .mosaico { grid-template-columns: 1fr; } .mosaico .m-c, .mosaico .m-d { grid-column: auto; grid-row: auto; } }
.trio-info { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1.5rem, 4vw, 4rem); margin-top: clamp(3rem, 6vw, 5rem); }
.trio-info > div { border-top: 1px solid var(--linha); padding-top: 1.4rem; display: flex; flex-direction: column; gap: .7rem; }
.trio-info p { color: var(--tinta-2); }
@media (max-width: 760px) { .trio-info { grid-template-columns: 1fr; } }

/* =========== Suítes =========== */
.suites { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(2.5rem, 6vw, 6rem); align-items: start; }
.suites-texto { position: sticky; top: 120px; }
.ficha { margin: 2.4rem 0 0; border-top: 1px solid var(--linha-escura); }
.ficha div { display: grid; grid-template-columns: 8.5rem minmax(0, 1fr); gap: 1rem; padding: .95rem 0; border-bottom: 1px solid var(--linha-escura); }
.ficha dt { font: 500 .72rem/1.9 var(--f-texto); letter-spacing: .2em; text-transform: uppercase; color: var(--latao); }
.ficha dd { margin: 0; }
.suites-midia { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(.8rem, 1.6vw, 1.2rem); }
.suites-midia figure { aspect-ratio: 3 / 4.4; overflow: hidden; border-radius: var(--raio); background: var(--mata-2); }
.suites-midia figure:nth-child(even) { margin-top: 3.5rem; }
.suites-midia img, .suites-midia video { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 900px) { .suites { grid-template-columns: 1fr; } .suites-texto { position: static; } }
@media (max-width: 520px) { .suites-midia figure:nth-child(even) { margin-top: 1.6rem; } .ficha div { grid-template-columns: 1fr; gap: .1rem; } }

/* =========== Piscina =========== */
.piscina { position: relative; min-height: 115vh; display: flex; align-items: flex-end; overflow: hidden; background: var(--mata); color: #fff; }
.piscina-fundo { position: absolute; inset: -12% 0; will-change: transform; }
.piscina-fundo img { width: 100%; height: 100%; object-fit: cover; }
.piscina::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,16,12,0) 35%, rgba(10,16,12,.72) 100%); }
.piscina-texto { position: relative; z-index: 1; padding-block: 0 clamp(4rem, 9vw, 7rem); width: 100%; }
.piscina-texto .rotulo, .piscina-texto h2 em { color: var(--latao); }
.piscina-texto .lead { color: rgba(255,255,255,.86); }
.faixa-fotos { background: var(--mata); padding-block: clamp(1.5rem, 3vw, 2.5rem) clamp(4rem, 8vw, 6rem); overflow: hidden; }
.faixa-trilho {
  display: flex; gap: clamp(.8rem, 1.6vw, 1.2rem); overflow-x: auto; scroll-snap-type: x mandatory;
  padding: 0 var(--lado-d) 1rem var(--lado); scrollbar-width: none; cursor: grab;
}
.faixa-trilho::-webkit-scrollbar { display: none; }
.faixa-trilho figure { flex: 0 0 clamp(240px, 28vw, 400px); scroll-snap-align: start; position: relative; aspect-ratio: 3 / 4.2; overflow: hidden; border-radius: var(--raio); }
.faixa-trilho img { width: 100%; height: 100%; object-fit: cover; transition: transform .9s var(--suave); pointer-events: none; }
.faixa-trilho figure:hover img { transform: scale(1.05); }
.faixa-trilho figcaption { position: absolute; left: 1rem; bottom: 1rem; color: #fff; font: 400 .72rem/1 var(--f-texto); letter-spacing: .2em; text-transform: uppercase; text-shadow: 0 1px 8px rgba(0,0,0,.6); }

/* =========== Rio =========== */
.rio-grande { aspect-ratio: 21 / 9; overflow: hidden; border-radius: var(--raio); }
.rio-grande img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 760px) { .rio-grande { aspect-ratio: 4 / 3; } }
.rio-blocos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1.5rem, 3vw, 2.6rem); margin-top: clamp(2.5rem, 5vw, 4rem); }
.rio-bloco { display: flex; flex-direction: column; gap: .9rem; }
.rio-bloco img { aspect-ratio: 4 / 3; width: 100%; height: auto; object-fit: cover; border-radius: var(--raio); transition: transform .8s var(--suave); }
.rio-bloco:hover img { transform: translateY(-6px); }
.rio-bloco h3 { margin-top: .6rem; }
.rio-bloco p { color: var(--tinta-2); }
@media (max-width: 860px) { .rio-blocos { grid-template-columns: 1fr; } }
.rio-pescadores { margin-top: clamp(3rem, 6vw, 5rem); border-top: 1px solid var(--linha); border-bottom: 1px solid var(--linha); padding-block: 2rem; }
.rio-pescadores p { font: 500 clamp(1.4rem, 1rem + 1.4vw, 2.2rem)/1.3 var(--f-titulo); max-width: 44ch; }
.rio-pescadores strong { color: var(--madeira); font-weight: 600; }

/* =========== Pets =========== */
.pets { background: var(--linho-2); }
.pets-grade { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2.5rem, 6vw, 6rem); align-items: center; }
.pets-foto { aspect-ratio: 4 / 5; overflow: hidden; border-radius: var(--raio); }
.pets-foto img { width: 100%; height: 100%; object-fit: cover; }
.lista-pets { list-style: none; padding: 0; margin: 2.4rem 0 0; display: grid; gap: 0; border-top: 1px solid var(--linha); }
.lista-pets li { display: grid; grid-template-columns: 3rem minmax(0, 1fr); gap: 1rem; padding: 1.1rem 0; border-bottom: 1px solid var(--linha); color: var(--tinta-2); }
.lista-pets span { font: 500 1.3rem/1.2 var(--f-titulo); color: var(--madeira); }
.lista-pets strong { display: block; color: var(--tinta); font-weight: 500; }
@media (max-width: 860px) { .pets-grade { grid-template-columns: 1fr; } .pets-foto { max-width: 520px; } }

/* =========== Fim de tarde =========== */
.videos-tarde { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(.8rem, 1.6vw, 1.3rem); }
.videos-tarde figure { position: relative; aspect-ratio: 9 / 15; overflow: hidden; border-radius: var(--raio); background: #000; }
.videos-tarde figure:nth-child(2) { transform: translateY(3rem); }
.videos-tarde video { width: 100%; height: 100%; object-fit: cover; }
.videos-tarde figcaption { position: absolute; left: 1.1rem; bottom: 1rem; color: #fff; font: 400 .72rem/1 var(--f-texto); letter-spacing: .2em; text-transform: uppercase; }
@media (max-width: 760px) {
  .videos-tarde { grid-template-columns: repeat(3, 74%); overflow-x: auto; scroll-snap-type: x mandatory; margin-right: calc(-1 * var(--lado-d)); padding-right: var(--lado-d); scrollbar-width: none; }
  .videos-tarde figure { scroll-snap-align: start; }
  .videos-tarde figure:nth-child(2) { transform: none; }
}

/* =========== Como funciona =========== */
.passos { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1.5rem, 4vw, 3.5rem); counter-reset: p; }
.passos li { display: flex; flex-direction: column; gap: .8rem; }
.passo-n { font: 500 clamp(3.4rem, 2rem + 4vw, 5.6rem)/.9 var(--f-titulo); color: var(--madeira); }
.passos p { color: var(--tinta-2); }
.incluso { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1rem, 2vw, 1.6rem); margin-top: clamp(3.5rem, 7vw, 6rem); }
.incluso-col { background: #fbf8f2; border: 1px solid var(--linha); border-radius: var(--raio); padding: clamp(1.5rem, 3vw, 2.2rem); display: flex; flex-direction: column; gap: 1rem; transition: transform .5s var(--suave), box-shadow .5s; }
.incluso-col:hover { transform: translateY(-6px); box-shadow: 0 24px 40px -28px rgba(24,32,27,.35); }
.lista-check, .lista-traco { list-style: none; padding: 0; margin: 0; display: grid; gap: .55rem; }
.lista-check li, .lista-traco li { padding-left: 1.6rem; position: relative; }
.lista-check li::before { content: ""; position: absolute; left: 0; top: .55em; width: .8rem; height: .45rem; border-left: 1.5px solid var(--verde-wa); border-bottom: 1.5px solid var(--verde-wa); transform: rotate(-45deg); }
.lista-traco li::before { content: ""; position: absolute; left: 0; top: .8em; width: .8rem; height: 1px; background: var(--madeira); }
.nota { font-size: .92rem; color: var(--tinta-2); border-top: 1px solid var(--linha); padding-top: .9rem; margin-top: auto; }
@media (max-width: 860px) { .passos, .incluso { grid-template-columns: 1fr; } }

/* =========== Agenda =========== */
.agenda { background: #fff; border-radius: 6px; box-shadow: 0 40px 80px -50px rgba(24,32,27,.45); overflow: hidden; border: 1px solid var(--linha); max-width: 1000px; margin: 0 auto; }
/* A agenda do Google é só para olhar: sem cabeçalho, sem cliques e sem a faixa "adicionar ao Google Agenda".
   O layout do Google troca para "celular" em ~625 px de largura do quadro (medido no embed real). */
.agenda-barra { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .7rem .9rem; border-bottom: 1px solid var(--linha); background: var(--linho); }
.agenda-mes { margin: 0; font-family: var(--f-titulo); font-size: clamp(1.35rem, 3.4vw, 1.75rem); font-weight: 500; color: var(--tinta); text-align: center; flex: 1; line-height: 1.1; }
.agenda-seta { flex: none; width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--linha); background: #fff; color: var(--madeira); display: inline-grid; place-items: center; cursor: pointer; transition: background .25s, color .25s, transform .25s var(--suave); }
.agenda-seta svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.agenda-seta:hover:not([disabled]) { background: var(--madeira); color: #fff; transform: scale(1.06); }
.agenda-seta:focus-visible { outline: 2px solid var(--madeira); outline-offset: 2px; }
.agenda-seta[disabled] { opacity: .3; cursor: default; }
.agenda-quadro { --ag-q: 608px; --ag-i: 640px; position: relative; height: var(--ag-q); overflow: hidden; background: #fff; }
.agenda-quadro iframe { position: absolute; left: 0; top: 0; display: block; width: 100%; height: var(--ag-i); border: 0; pointer-events: none; opacity: 0; transition: opacity .3s ease; }
.agenda-quadro iframe.pronto { opacity: 1; }
.agenda-quadro[data-carregando] iframe.pronto { opacity: .45; }
.agenda-quadro[data-vazio]::before { content: "Carregando a agenda…"; position: absolute; inset: 0; display: grid; place-items: center; color: var(--tinta-2); font-size: .95rem; }
@container agenda (max-width: 625px) { .agenda-quadro { --ag-q: 534px; --ag-i: 560px; } }
@media (prefers-reduced-motion: reduce) { .agenda-quadro iframe, .agenda-seta { transition: none; } }
.agenda-carregando { padding: 4rem 1.4rem; text-align: center; color: var(--tinta-2); }
.agenda-legenda { text-align: center; color: var(--tinta-2); font-size: .95rem; margin-top: 1.4rem; }

/* =========== Avaliações =========== */
.avaliacoes { overflow: hidden; padding-bottom: clamp(5rem, 10vw, 8rem); }
.nota-google { display: flex; align-items: center; gap: clamp(1.5rem, 4vw, 3.5rem); flex-wrap: wrap; margin-bottom: clamp(3rem, 6vw, 5rem); }
.nota-numero { font: 500 clamp(6rem, 4rem + 9vw, 12rem)/.8 var(--f-titulo); color: var(--latao); }
.nota-texto { font: 500 clamp(1.3rem, 1rem + 1vw, 1.9rem)/1.25 var(--f-titulo); margin: .9rem 0 1rem; }
.link-seta { color: var(--latao); text-decoration: none; font: 400 .8rem/1 var(--f-texto); letter-spacing: .2em; text-transform: uppercase; display: inline-flex; gap: .6rem; align-items: center; }
.link-seta::after { content: "→"; transition: transform .3s var(--suave); }
.link-seta:hover::after { transform: translateX(6px); }
.esteira { overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.esteira + .esteira { margin-top: 1.2rem; }
.esteira-trilho { display: flex; gap: 1.2rem; width: max-content; animation: esteira 60s linear infinite; }
.esteira-volta .esteira-trilho { animation-direction: reverse; animation-duration: 70s; }
.esteira:hover .esteira-trilho { animation-play-state: paused; }
@keyframes esteira { to { transform: translateX(calc(-50% - .6rem)); } }
.aval {
  margin: 0; width: clamp(280px, 30vw, 420px); flex: none; background: var(--mata-2); border: 1px solid var(--linha-escura);
  border-radius: 6px; padding: 1.8rem 1.8rem 1.5rem; display: flex; flex-direction: column; justify-content: space-between; gap: 1.4rem;
  transition: transform .4s var(--suave), border-color .4s;
}
.aval:hover { transform: translateY(-6px); border-color: rgba(203,164,107,.5); }
.aval p { font: 500 1.28rem/1.4 var(--f-titulo); color: var(--creme-sobre-escuro); }
.aval footer { display: flex; align-items: center; gap: .8rem; font-size: .88rem; color: var(--suave-sobre-escuro); }
.aval footer strong { display: block; color: var(--creme-sobre-escuro); font-weight: 500; }
.avatar { width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center; font: 600 1.15rem/1 var(--f-titulo); color: #fff; background: hsl(var(--h) 38% 38%); flex: none; }

/* =========== Dúvidas =========== */
.duvidas { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(2.5rem, 6vw, 6rem); align-items: start; }
.duvidas-cabeca { position: sticky; top: 120px; }
.faq-abas { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 2rem; }
.faq-abas button { font: 400 .78rem/1 var(--f-texto); letter-spacing: .14em; text-transform: uppercase; padding: .75rem 1.1rem; border-radius: 999px; border: 1px solid var(--linha); background: transparent; color: var(--tinta); cursor: pointer; transition: background .3s, color .3s, transform .3s var(--suave); }
.faq-abas button:hover { transform: translateY(-2px); }
.faq-abas button[aria-selected="true"] { background: var(--tinta); color: var(--linho); border-color: var(--tinta); }
.faq { border-top: 1px solid var(--linha); }
.faq details { border-bottom: 1px solid var(--linha); }
.faq details[hidden] { display: none; }
.faq summary { list-style: none; cursor: pointer; padding: 1.5rem 3rem 1.5rem 0; position: relative; font: 500 clamp(1.2rem, 1rem + .6vw, 1.5rem)/1.3 var(--f-titulo); transition: color .3s; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary:hover { color: var(--madeira); }
.faq summary::before, .faq summary::after { content: ""; position: absolute; right: .4rem; top: 50%; width: 16px; height: 1.5px; background: var(--madeira); transition: transform .4s var(--suave); }
.faq summary::after { transform: rotate(90deg); }
.faq details[open] summary::after { transform: rotate(0); }
.faq details > div { overflow: hidden; }
.faq details[open] > div { animation: abre .6s var(--suave); }
@keyframes abre { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: none; } }
.faq details p { padding: 0 3rem 1.6rem 0; color: var(--tinta-2); max-width: 64ch; }
@media (max-width: 900px) { .duvidas { grid-template-columns: 1fr; } .duvidas-cabeca { position: static; } }

/* =========== Rodapé =========== */
.rodape { background: var(--mata); color: var(--creme-sobre-escuro); padding-top: clamp(5rem, 10vw, 8rem); overflow: hidden; position: relative; }
.rodape-topo { display: flex; justify-content: space-between; align-items: flex-end; gap: 2rem; flex-wrap: wrap; padding-bottom: clamp(3rem, 6vw, 4.5rem); border-bottom: 1px solid var(--linha-escura); }
.rodape-marca { max-width: 380px; display: flex; flex-direction: column; gap: 1.2rem; color: var(--suave-sobre-escuro); }
.rodape-marca img { width: clamp(220px, 26vw, 320px); height: auto; }
.rodape-chamada { font: 500 clamp(2.6rem, 1.5rem + 4vw, 5.2rem)/1 var(--f-titulo); text-align: right; }
.rodape-chamada em { color: var(--latao); }
.qr-grade { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1rem, 2vw, 1.6rem); padding-block: clamp(3rem, 6vw, 4.5rem); }
.qr {
  display: flex; gap: 1.4rem; align-items: center; text-decoration: none; color: inherit; padding: 1.4rem;
  border: 1px solid var(--linha-escura); border-radius: 6px; background: rgba(255,255,255,.02);
  transition: transform .5s var(--suave), border-color .5s, background .5s;
}
.qr:hover { transform: translateY(-6px); border-color: rgba(203,164,107,.55); background: rgba(255,255,255,.05); }
.qr-img { flex: none; width: 112px; height: 112px; background: #fff; border-radius: 6px; padding: 8px; transition: transform .5s var(--suave); }
.qr:hover .qr-img { transform: scale(1.06) rotate(-2deg); }
.qr-img img { width: 100%; height: 100%; }
.qr-texto { display: flex; flex-direction: column; gap: .25rem; min-width: 0; overflow-wrap: anywhere; }
.qr-texto strong { font: 500 1.6rem/1.1 var(--f-titulo); color: var(--latao); }
.qr-texto small { color: var(--suave-sobre-escuro); font-size: .85rem; }
@media (max-width: 960px) { .qr-grade { grid-template-columns: 1fr; } .rodape-chamada { text-align: left; } }
.rodape-base { display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; font-size: .85rem; color: var(--suave-sobre-escuro); border-top: 1px solid var(--linha-escura); padding-top: 1.6rem; }
.rodape-gigante {
  font: 500 clamp(4rem, 15vw, 15rem)/.8 var(--f-titulo); white-space: nowrap; text-align: center; margin-top: 2rem;
  color: transparent; -webkit-text-stroke: 1px rgba(203,164,107,.35); padding-bottom: calc(1.5rem + env(safe-area-inset-bottom, 0px)); letter-spacing: -.02em;
}

/* =========== WhatsApp flutuante =========== */
.wa {
  position: fixed; z-index: 90; width: 62px; height: 62px; border-radius: 50%;
  right: calc(22px + env(safe-area-inset-right, 0px)); bottom: calc(22px + env(safe-area-inset-bottom, 0px));
  display: grid; place-items: center; color: #fff; background: var(--verde-wa);
  box-shadow: 0 14px 30px -10px rgba(0,0,0,.45); transition: transform .4s var(--suave);
}
.wa::before { content: ""; position: absolute; inset: 0; border-radius: 50%; border: 2px solid var(--verde-wa); animation: pulso 2.6s ease-out infinite; }
.wa:hover { transform: scale(1.1) rotate(-6deg); }
@keyframes pulso { from { transform: scale(1); opacity: .7; } to { transform: scale(1.7); opacity: 0; } }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .js [data-reveal], .js [data-reveal="foto"] { opacity: 1; transform: none; clip-path: none; }
  .esteira-trilho { animation: none; flex-wrap: wrap; width: auto; padding: 0 var(--lado); }
  html { scroll-behavior: auto; }
}

.hero-lado { display: flex; flex-direction: column; align-items: flex-end; gap: .7rem; padding-right: 92px; }
.hero-legenda { color: rgba(255,255,255,.85); font: 400 .72rem/1 var(--f-texto); letter-spacing: .24em; text-transform: uppercase; transition: opacity .6s; }
@media (max-width: 760px) { .hero-lado { align-items: flex-start; padding-right: 0; } }
.mosaico { grid-template-rows: clamp(220px, 30vw, 470px) clamp(200px, 24vw, 380px); }
.mosaico figure { aspect-ratio: auto !important; align-self: stretch !important; }
@media (max-width: 760px) {
  .mosaico { grid-template-columns: 1fr 1fr; grid-template-rows: 58vw 34vw 34vw; }
  .mosaico .m-a { grid-column: 1 / -1; grid-row: 1; }
  .mosaico .m-b { grid-column: 1; grid-row: 2; } .mosaico .m-c { grid-column: 2; grid-row: 2; }
  .mosaico .m-d { grid-column: 1 / -1; grid-row: 3; }
  .mosaico { grid-template-rows: 58vw 32vw 52vw; }
  .piscina { min-height: 88vh; }
  .rio-bloco img { aspect-ratio: 16 / 10; }
}
.rodape-gigante { font-size: clamp(3rem, 11.5vw, 13rem); }

.fim-tarde { padding-bottom: clamp(2rem, 4vw, 3rem); }
.faixa-fotos.noite { padding-top: clamp(3rem, 6vw, 5rem); }


/* =====================================================================
   v3
   ===================================================================== */

/* ---------- Marca animada: beija-flor separado do nome ---------- */
.marca { position: relative; display: block; height: 116px; aspect-ratio: 709 / 232; color: #fff; line-height: 0; transition: height .5s var(--suave), color .5s; }
.marca > span { position: absolute; inset: 0; }
.marca-nome {
}
.cab .marca { filter: drop-shadow(0 2px 10px rgba(0,0,0,.35)); }
.cab.solida .marca { height: 68px; color: #3b3d3c; filter: none; }
.marca-ave { transform-origin: 30% 55%; animation: ave-chega 2.2s cubic-bezier(.2,.75,.25,1) both, ave-paira 4.4s ease-in-out 2.2s infinite; }
.marca-ave img { position: absolute; inset: 0; width: 100%; height: 100%; }
.ave-asa { transform-origin: 24.2% 41%; animation: asa 0.13s ease-in-out infinite alternate; }
.ave-asa-eco { opacity: .28; filter: blur(1.5px); animation: asa-eco 0.13s ease-in-out infinite alternate; }
@keyframes asa { from { transform: rotate(4deg) scaleY(1); } to { transform: rotate(-10deg) scaleY(.55); } }
@keyframes asa-eco { from { transform: rotate(-12deg) scaleY(.5); } to { transform: rotate(6deg) scaleY(1.05); } }
/* entra voando da esquerda, cruza, volta e pousa no lugar do "B" */
@keyframes ave-chega {
  0%   { transform: translate(-120%, 30%) rotate(-14deg) scale(.7); opacity: 0; }
  15%  { opacity: 1; }
  45%  { transform: translate(38%, -22%) rotate(8deg) scale(1.02); }
  70%  { transform: translate(-6%, 6%) rotate(-5deg) scale(1); }
  85%  { transform: translate(2%, -2%) rotate(2deg); }
  100% { transform: none; opacity: 1; }
}
/* pairando: vai e volta, sobe e desce, como um beija-flor diante da flor */
@keyframes ave-paira {
  0%, 100% { transform: translate(0, 0) rotate(0); }
  25% { transform: translate(2.6%, -1.4%) rotate(1.2deg); }
  50% { transform: translate(0, 0.8%) rotate(0); }
  75% { transform: translate(-2.6%, -1.4%) rotate(-1.2deg); }
}

/* O beija-flor do logotipo (a letra B) fica sempre no lugar: não reage ao mouse. */
.marca.estatica { height: auto; width: clamp(220px, 26vw, 320px); }
.marca.estatica .marca-ave { animation: ave-paira 5.6s ease-in-out infinite; }

/* ---------- Menu condensado ---------- */
.cab-nav { gap: .1rem; align-items: center; }
.cab-nav > a, .nav-pai { font-size: .72rem; letter-spacing: .16em; padding: .75rem .85rem; }
.cab-nav a:hover { transform: translateY(-2px); }
.cab-nav > a:hover::after, .cab-nav > a.ativo::after, .nav-pai:hover::after, .nav-pai.ativo::after { left: .85rem; right: .85rem; }
.nav-grupo { position: relative; }
.nav-pai { display: inline-flex; align-items: center; gap: .45rem; }
.nav-pai i { width: 6px; height: 6px; border-right: 1.2px solid currentColor; border-bottom: 1.2px solid currentColor; transform: translateY(-2px) rotate(45deg); transition: transform .35s var(--suave); }
.nav-grupo:hover .nav-pai i, .nav-grupo:focus-within .nav-pai i { transform: translateY(1px) rotate(225deg); }
.nav-sub {
  position: absolute; left: 50%; top: calc(100% + 10px); width: 460px; translate: -50% 0;
  display: grid; grid-template-columns: 1fr 1fr; gap: 2px; padding: 10px;
  background: rgba(243,238,228,.97); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
  border-radius: 14px; box-shadow: 0 30px 60px -30px rgba(10,16,12,.55), 0 0 0 1px var(--linha);
  opacity: 0; visibility: hidden; transform: translateY(-8px); transition: opacity .3s, transform .4s var(--suave), visibility .3s;
}
.nav-sub::before { content: ""; position: absolute; left: 0; right: 0; top: -14px; height: 14px; }
.nav-grupo:hover .nav-sub, .nav-grupo:focus-within .nav-sub { opacity: 1; visibility: visible; transform: none; }
.nav-sub a { display: flex; flex-direction: column; gap: .2rem; padding: .85rem 1rem; border-radius: 10px; text-decoration: none; color: var(--tinta); transition: background .25s, transform .3s var(--suave); }
.nav-sub a:hover { background: #fff; transform: translateX(3px); }
.nav-sub b { font: 600 1.2rem/1.1 var(--f-titulo); }
.nav-sub small { font: 400 .78rem/1.2 var(--f-texto); color: var(--tinta-2); letter-spacing: 0; text-transform: none; }
.menu-sub { display: flex; flex-wrap: wrap; justify-content: center; gap: .3rem 1.1rem; margin: 0 0 .8rem; max-width: 22rem; }
.menu-tela .menu-sub a { font: 400 .95rem/1.5 var(--f-texto); letter-spacing: .1em; text-transform: uppercase; opacity: .75; animation: none; transform: none; }
@media (max-width: 1280px) {
  .marca { height: 70px; }
  .cab.solida .marca { height: 52px; }
}
@media (max-width: 420px) { .marca { height: 60px; } .cab.solida .marca { height: 46px; } }
body.menu-aberto .cab .marca { color: #fff; }

/* ---------- Faixas de fotos com setas ---------- */
.faixa-fotos { position: relative; }
.faixa-seta {
  position: absolute; z-index: 3; top: calc(50% - 1.5rem); translate: 0 -50%; width: 64px; height: 64px; border-radius: 50%;
  display: grid; place-items: center; cursor: pointer; color: var(--tinta); background: rgba(243,238,228,.94); border: 0;
  box-shadow: 0 16px 30px -12px rgba(0,0,0,.5); transition: opacity .35s, transform .4s var(--suave), background .3s;
}
.faixa-seta svg { width: 26px; height: 26px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.faixa-ant { left: max(14px, var(--lado)); }
.faixa-prox { right: max(14px, var(--lado-d)); }
.faixa-seta:hover, .faixa-seta.rodando { transform: scale(1.12); background: var(--latao); color: #fff; }
.faixa-seta.rodando::after { content: ""; position: absolute; inset: -6px; border-radius: 50%; border: 1.5px solid rgba(203,164,107,.7); animation: pulso 1.4s ease-out infinite; }
.faixa-seta[disabled] { opacity: 0; pointer-events: none; }
.faixa-fotos::before, .faixa-fotos::after { content: ""; position: absolute; z-index: 2; top: 0; bottom: 0; width: 90px; pointer-events: none; transition: opacity .3s; }
.faixa-fotos::before { left: 0; background: linear-gradient(90deg, var(--mata), transparent); opacity: var(--sombra-esq, 0); }
.faixa-fotos::after { right: 0; background: linear-gradient(-90deg, var(--mata), transparent); opacity: var(--sombra-dir, 1); }
@media (hover: none) { .faixa-seta { width: 48px; height: 48px; } }

/* ---------- Duas fotos da garagem ---------- */
.duo-portoes { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; aspect-ratio: 4 / 3; border-radius: var(--raio); overflow: hidden; }
.duo-portoes figure { position: relative; overflow: hidden; }
.duo-portoes img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: auto !important; border-radius: 0 !important; transition: transform .8s var(--suave); }
.rio-bloco:hover .duo-portoes img { transform: scale(1.05); }
.duo-portoes figcaption { position: absolute; left: .7rem; bottom: .6rem; color: #fff; font: 400 .66rem/1 var(--f-texto); letter-spacing: .18em; text-transform: uppercase; text-shadow: 0 1px 8px rgba(0,0,0,.7); }
@media (max-width: 760px) { .duo-portoes { aspect-ratio: 16 / 10; } }

/* ---------- Avaliações v3 ---------- */
.aval-grade { display: grid; grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr); gap: clamp(2.5rem, 6vw, 6rem); align-items: center; margin-bottom: clamp(3.5rem, 7vw, 6rem); }
.aval-grade .nota-google { display: block; margin: 0; }
.aval-grade .nota-numero { margin: .2rem 0 .8rem; }
.aval-palco { position: relative; padding-top: 3.2rem; }
.aspas { position: absolute; top: -2.6rem; left: -.6rem; font: 500 12rem/1 var(--f-titulo); color: var(--latao); opacity: .35; pointer-events: none; }
.destaques { display: grid; }
.destaque { grid-area: 1 / 1; margin: 0; opacity: 0; visibility: hidden; transition: opacity .8s var(--suave), visibility .8s; }
.destaque.ativo { opacity: 1; visibility: visible; }
.destaque blockquote { margin: 0; }
.destaque p { font: 500 clamp(1.6rem, 1.1rem + 1.7vw, 2.7rem)/1.22 var(--f-titulo); color: var(--creme-sobre-escuro); text-wrap: pretty; }
.destaque p .w { display: inline-block; opacity: 0; transform: translateY(.5em); filter: blur(4px); transition: opacity .6s var(--suave), transform .7s var(--suave), filter .6s; transition-delay: calc(var(--k) * 22ms); }
.destaque.ativo p .w { opacity: 1; transform: none; filter: none; }
.destaque figcaption { display: flex; align-items: center; gap: 1rem; margin-top: 2rem; color: var(--suave-sobre-escuro); font-size: .92rem; opacity: 0; transform: translateY(10px); transition: opacity .6s .5s, transform .6s var(--suave) .5s; }
.destaque.ativo figcaption { opacity: 1; transform: none; }
.destaque figcaption strong { display: block; color: var(--creme-sobre-escuro); font-weight: 500; font-size: 1.05rem; }
.avatar { position: relative; overflow: hidden; background: linear-gradient(140deg, hsl(var(--h) 45% 46%), hsl(calc(var(--h) + 40) 40% 28%)); box-shadow: 0 0 0 2px var(--mata), 0 0 0 3px rgba(203,164,107,.6); }
.avatar img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.avatar.grande { width: 58px; height: 58px; font-size: 1.5rem; }
.destaque-ctrl { display: flex; align-items: center; gap: 1rem; margin-top: 2.4rem; }
.destaque-btn { width: 46px; height: 46px; border-radius: 50%; border: 1px solid var(--linha-escura); background: transparent; color: var(--creme-sobre-escuro); cursor: pointer; display: grid; place-items: center; transition: background .3s, border-color .3s, transform .3s var(--suave); }
.destaque-btn:hover { background: var(--latao); border-color: var(--latao); color: var(--mata); transform: scale(1.08); }
.destaque-btn svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.destaque-barras { display: flex; gap: 6px; flex: 1; max-width: 240px; }
.destaque-barras i { flex: 1; height: 2px; background: rgba(239,232,218,.2); position: relative; overflow: hidden; }
.destaque-barras i::after { content: ""; position: absolute; inset: 0; background: var(--latao); transform-origin: left; transform: scaleX(0); }
.destaque-barras i.feito::after { transform: scaleX(1); }
.destaque-barras i.ativo::after { animation: barraX var(--dur, 7s) linear forwards; }
.aval-palco.pausado .destaque-barras i.ativo::after { animation-play-state: paused; }
@keyframes barraX { to { transform: scaleX(1); } }
@media (max-width: 900px) { .aval-grade { grid-template-columns: 1fr; } }

/* ---------- Botões ---------- */
.botao {
  display: inline-flex; align-items: center; justify-content: center; gap: .6rem; cursor: pointer; text-decoration: none;
  font: 500 .8rem/1 var(--f-texto); letter-spacing: .14em; text-transform: uppercase; padding: 1.05rem 1.5rem; border-radius: 999px;
  background: var(--tinta); color: var(--linho); border: 1px solid var(--tinta); transition: transform .35s var(--suave), background .3s, color .3s, box-shadow .35s;
}
.botao:hover { transform: translateY(-3px); box-shadow: 0 16px 30px -16px rgba(24,32,27,.55); }
.botao svg { width: 18px; height: 18px; fill: currentColor; }
.botao.vazado { background: transparent; color: var(--tinta); }
.botao.vazado:hover { background: var(--tinta); color: var(--linho); }

/* ---------- Localização ---------- */
.local-grade { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: clamp(2.5rem, 6vw, 5.5rem); align-items: center; }
.local-end { font-style: normal; margin-top: 2rem; padding-left: 1.2rem; border-left: 2px solid var(--madeira); color: var(--tinta-2); }
.local-end strong { display: block; color: var(--tinta); font: 600 1.35rem/1.3 var(--f-titulo); }
.rota { list-style: none; padding: 0; margin: 2rem 0 0; display: grid; gap: .9rem; }
.rota li { display: grid; grid-template-columns: 2.2rem minmax(0, 1fr); gap: .8rem; align-items: start; color: var(--tinta-2); }
.rota span { width: 2.2rem; height: 2.2rem; border-radius: 50%; display: grid; place-items: center; border: 1px solid var(--madeira); color: var(--madeira); font: 600 1.05rem/1 var(--f-titulo); }
.local-botoes { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 2.2rem; }
.mapa-moldura { position: relative; border-radius: 22px; padding: 10px; background: #fff; box-shadow: 0 50px 90px -50px rgba(24,32,27,.6), 0 0 0 1px var(--linha); }
.mapa { position: relative; aspect-ratio: 4 / 4.2; border-radius: 14px; overflow: hidden; background: #e7e2d6; }
.mapa iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; filter: saturate(.85) contrast(1.02); }
.mapa-selo { position: absolute; left: -18px; bottom: 34px; display: flex; align-items: center; gap: .6rem; background: var(--mata); color: var(--creme-sobre-escuro); padding: .7rem 1.2rem .7rem .7rem; border-radius: 999px; box-shadow: 0 20px 40px -18px rgba(0,0,0,.55); font: 500 .75rem/1 var(--f-texto); letter-spacing: .14em; text-transform: uppercase; animation: selo 3.4s ease-in-out infinite; }
.mapa-selo img { width: 92px; height: auto; margin: -8px -26px -8px -6px; clip-path: inset(0 62% 0 0); }
@keyframes selo { 50% { transform: translateY(-6px); } }
.chegadas { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1rem, 2vw, 1.6rem); margin-top: clamp(3rem, 6vw, 5rem); }
.chegadas article { border-top: 1px solid var(--linha); padding-top: 1.3rem; display: flex; flex-direction: column; gap: .6rem; }
.chegadas p { color: var(--tinta-2); }
@media (max-width: 900px) { .local-grade, .chegadas { grid-template-columns: 1fr; } .mapa { aspect-ratio: 4 / 4.4; } .mapa-selo { left: 10px; bottom: 22px; } }

/* conteúdo externo (Google) que espera consentimento */
.externo-aviso { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1rem; text-align: center; padding: 2rem; color: var(--tinta-2); background: rgba(243,238,228,.55); backdrop-filter: blur(2px); }
.agenda { position: relative; min-height: 420px; container: agenda / inline-size; }

/* ---------- Rodapé completo ---------- */
.rodape-topo { align-items: center; }
.rodape-chamada { text-align: left; }
.wa-botao { background: var(--verde-wa); border-color: var(--verde-wa); color: #fff; padding: 1.2rem 1.8rem; }
.wa-botao svg { width: 22px; height: 22px; }
.rodape-colunas { display: grid; grid-template-columns: 1.35fr .8fr 1fr 1.25fr; gap: clamp(2rem, 4vw, 3.5rem); padding-block: clamp(3rem, 6vw, 4.5rem); border-bottom: 1px solid var(--linha-escura); }
.rodape-col { display: flex; flex-direction: column; gap: .55rem; font-size: .95rem; color: var(--suave-sobre-escuro); }
.rodape-col h3, .pagamento h3 { font: 500 .72rem/1 var(--f-texto); letter-spacing: .22em; text-transform: uppercase; color: var(--latao); margin-bottom: .7rem; }
.rodape-col a { color: var(--creme-sobre-escuro); text-decoration: none; width: fit-content; background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat; transition: background-size .35s var(--suave), color .3s; }
.rodape-col a:hover { background-size: 100% 1px; color: var(--latao); }
.rodape-col address { font-style: normal; }
.rodape-marca { max-width: none; }
.redes { list-style: none; padding: 0; margin: .4rem 0 0; display: flex; gap: .6rem; }
.redes a { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; color: var(--creme-sobre-escuro); border: 1px solid var(--linha-escura); transition: background .3s, color .3s, transform .35s var(--suave), border-color .3s; }
.redes a:hover { background: var(--latao); color: var(--mata); border-color: var(--latao); transform: translateY(-3px) rotate(-6deg); }
.redes svg { width: 20px; height: 20px; }
.lista-form { display: grid; gap: .6rem; margin-top: .4rem; }
.lista-form input[type=text], .lista-form input[type=tel] { font: 300 1rem/1 var(--f-texto); color: var(--creme-sobre-escuro); background: rgba(255,255,255,.05); border: 1px solid var(--linha-escura); border-radius: 999px; padding: .95rem 1.2rem; transition: border-color .3s, background .3s; }
.lista-form input::placeholder { color: rgba(239,232,218,.5); }
.lista-form input:focus { outline: none; border-color: var(--latao); background: rgba(255,255,255,.08); }
.consentimento { display: flex; gap: .6rem; align-items: flex-start; font-size: .82rem; line-height: 1.45; }
.consentimento input { margin-top: .2rem; accent-color: var(--latao); flex: none; }
.consentimento a { color: var(--creme-sobre-escuro); text-decoration: underline; background: none; }
.lista-form .botao { background: var(--latao); border-color: var(--latao); color: var(--mata); }
.lista-ok { color: var(--latao); font-weight: 400; }
.mel { position: absolute; left: -9999px; }
.rodape-selos { display: grid; grid-template-columns: auto 1fr 1fr; gap: clamp(2rem, 5vw, 4rem); align-items: start; padding-block: 2.4rem; }
.selo { display: flex; align-items: center; gap: 1rem; padding: 1rem 1.4rem; border: 1px solid rgba(203,164,107,.45); border-radius: 999px; }
.selo strong { font: 500 2.4rem/1 var(--f-titulo); color: var(--latao); }
.selo span { color: var(--latao); letter-spacing: .1em; display: flex; flex-direction: column; }
.selo small { color: var(--suave-sobre-escuro); letter-spacing: 0; font-size: .8rem; }
.pagamento ul { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.pagamento li { border: 1px solid var(--linha-escura); border-radius: 999px; padding: .5rem .95rem; font-size: .85rem; color: var(--creme-sobre-escuro); }
.pagamento p { font-size: .82rem; color: var(--suave-sobre-escuro); margin-top: .7rem; }
.links-legais li { padding: 0; border: 0; }
.links-legais a, .link-cookies { display: inline-block; border: 1px solid var(--linha-escura); border-radius: 999px; padding: .5rem .95rem; font: 300 .85rem/1.2 var(--f-texto); color: var(--creme-sobre-escuro); text-decoration: none; background: none; cursor: pointer; transition: border-color .3s, color .3s; }
.links-legais a:hover, .link-cookies:hover { border-color: var(--latao); color: var(--latao); }
.rodape-base { align-items: center; }
.topo-btn { display: inline-flex; align-items: center; gap: .8rem; color: var(--creme-sobre-escuro); text-decoration: none; font: 400 .75rem/1 var(--f-texto); letter-spacing: .2em; text-transform: uppercase; }
.topo-btn svg { width: 44px; height: 44px; padding: 11px; border-radius: 50%; border: 1px solid var(--linha-escura); fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; transition: transform .4s var(--suave), background .3s, color .3s; }
.topo-btn:hover svg { transform: translateY(-4px); background: var(--latao); color: var(--mata); border-color: var(--latao); }
@media (max-width: 1100px) { .rodape-colunas { grid-template-columns: 1fr 1fr; } }
@media (max-width: 760px) { .rodape-colunas, .rodape-selos { grid-template-columns: 1fr; } .rodape-topo { flex-direction: column; align-items: flex-start; } .rodape-base { flex-direction: column; align-items: flex-start; } }

/* ---------- Aviso de cookies ---------- */
.cookies { position: fixed; z-index: 120; left: max(16px, var(--lado)); bottom: calc(16px + env(safe-area-inset-bottom, 0px)); max-width: 460px; background: var(--linho); color: var(--tinta); border-radius: 16px; padding: 1.2rem 1.3rem; box-shadow: 0 30px 60px -20px rgba(0,0,0,.5), 0 0 0 1px var(--linha); display: grid; gap: .9rem; font-size: .9rem; line-height: 1.5; animation: menuEntra .5s var(--suave); }
.cookies[hidden] { display: none; }
.cookies div { display: flex; flex-wrap: wrap; gap: .5rem; }
.cookies .botao { padding: .8rem 1.1rem; font-size: .72rem; }
@media (max-width: 760px) { .cookies { right: 16px; bottom: calc(96px + env(safe-area-inset-bottom, 0px)); } }

@media (prefers-reduced-motion: reduce) {
  .marca-ave, .ave-asa, .ave-asa-eco, .mapa-selo { animation: none !important; }
  .destaque p .w { opacity: 1; transform: none; filter: none; }
}

.cab .marca img { height: 100% !important; width: 100% !important; }
.rodape-marca .marca { color: var(--creme-sobre-escuro); }
.nav-sub a { text-transform: none; letter-spacing: 0; font-size: 1rem; }
.nav-sub a::after { display: none; }
.cab.solida .nav-sub a:hover, .nav-sub a:hover { background: #fff; transform: translateX(3px); }

.aval-grade .nota-numero { margin: .2rem 0 1.6rem; line-height: .85; }
.mapa-selo svg { width: 22px; height: 22px; color: var(--latao); }
.mapa-selo { padding: .8rem 1.2rem; }
.mapa .externo-aviso { background: linear-gradient(rgba(19,32,25,.35), rgba(19,32,25,.55)), url("../img/drone-vista-de-cima-sm.webp") center / cover; color: #fff; }
.mapa .externo-aviso p { font: 500 1.35rem/1.3 var(--f-titulo); text-shadow: 0 2px 12px rgba(0,0,0,.5); }
.mapa .externo-aviso .botao { background: var(--linho); color: var(--tinta); border-color: var(--linho); }
@media (max-width: 760px) {
  .cookies { left: 12px; right: 12px; bottom: calc(12px + env(safe-area-inset-bottom, 0px)); max-width: none; padding: .9rem 1rem; gap: .7rem; font-size: .8rem; line-height: 1.45; }
  .cookies div { flex-wrap: nowrap; }
  .cookies .botao { flex: 1; padding: .75rem .6rem; font-size: .66rem; letter-spacing: .1em; }
  body.cookies-aberto .wa { bottom: calc(150px + env(safe-area-inset-bottom, 0px)); }
}
.wa { transition: transform .4s var(--suave), bottom .4s var(--suave); }

/* ---------- v3.1: nome em imagem (sem mask), ícones coloridos ---------- */
.marca-nome { background: none !important; -webkit-mask: none !important; mask: none !important; }
.marca-nome img { position: absolute; inset: 0; width: 100%; height: 100%; transition: opacity .45s; }
.marca .nome-escuro { opacity: 0; }
.cab.solida .marca .nome-claro { opacity: 0; }
.cab.solida .marca .nome-escuro { opacity: 1; }
body.menu-aberto .cab .marca .nome-claro { opacity: 1; }
body.menu-aberto .cab .marca .nome-escuro { opacity: 0; }

.r-insta svg { color: #d6249f; }
.r-mapa svg { color: #e2463a; }
.redes a svg { color: var(--creme-sobre-escuro); transition: color .3s; }
.redes a:hover { background: #fff; border-color: #fff; transform: translateY(-3px) rotate(-6deg); }
.redes a.r-insta:hover svg { color: #d6249f; }
.redes a.r-mapa:hover svg { color: #e2463a; }

@media (max-width: 760px) { .hero-titulo { padding-right: 76px; } }


/* =====================================================================
   v4 — menu com redes à direita, Natureza, Pescaria, Pets em vídeo,
   Chegue voando e depoimentos em movimento
   ===================================================================== */

/* ---------- Cabeçalho (as redes ficam no menu lateral .rail) ---------- */
.cab-dir { justify-self: end; display: flex; align-items: center; gap: .55rem; }
.cab-nav > a, .nav-pai { font-size: .7rem; letter-spacing: .14em; padding: .75rem .72rem; white-space: nowrap; }
.cab-nav > a:hover::after, .cab-nav > a.ativo::after, .nav-pai:hover::after, .nav-pai.ativo::after { left: .72rem; right: .72rem; }
.nav-sub { grid-template-columns: 1fr; width: 280px; }
.nav-sub::after { display: none; }
@media (max-width: 1280px) { .cab-dir { gap: .5rem; } }
@media (max-width: 520px) { .cab-dir { gap: .4rem; } .cab-menu { width: 44px; height: 44px; } }
.menu-redes { display: flex; gap: .8rem; justify-content: center; margin-top: 1.4rem; }
.menu-tela .menu-redes a { width: 52px; height: 52px; border-radius: 50%; background: #fff; display: grid; place-items: center; opacity: 1; transform: none; animation: none; }
.menu-tela .menu-redes svg { width: 24px; height: 24px; }
.menu-tela { overflow-y: auto; }
.menu-tela nav { margin: auto 0; }

/* ---------- Natureza ---------- */
.natureza { overflow: hidden; }
.natureza .videos-tarde { margin-top: clamp(1rem, 2vw, 1.5rem); }
.videos-tarde figure.v-legenda figcaption { text-shadow: 0 1px 10px rgba(0,0,0,.7); }
.videos-tarde figure::after { content: ""; position: absolute; inset: auto 0 0 0; height: 34%; background: linear-gradient(0deg, rgba(10,16,12,.6), transparent); pointer-events: none; }
.videos-tarde figcaption { z-index: 1; }
.estrela { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1fr); gap: clamp(2.5rem, 6vw, 6rem); align-items: center; margin-top: clamp(5rem, 10vw, 9rem); }
.estrela-foto { aspect-ratio: 4 / 5; overflow: hidden; border-radius: 240px 240px var(--raio) var(--raio); max-width: 480px; background: var(--mata-2); }
.estrela-foto img { width: 100%; height: 100%; object-fit: cover; }
.estrela h3 { font: 500 clamp(2rem, 1.2rem + 3vw, 3.8rem)/1.05 var(--f-titulo); }
.estrela h3 em { color: var(--latao); }
.estrela p.texto { margin-top: 1.4rem; color: var(--suave-sobre-escuro); max-width: 52ch; }
.bichos { list-style: none; padding: 0; margin: 2rem 0 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.bichos li { border: 1px solid var(--linha-escura); border-radius: 999px; padding: .55rem 1.05rem; font-size: .9rem; color: var(--creme-sobre-escuro); transition: background .3s, color .3s, transform .35s var(--suave); }
.bichos li:hover { background: var(--latao); color: var(--mata); transform: translateY(-3px); }
.faixa-titulo { padding-bottom: 1.6rem; }
.faixa-titulo .rotulo { margin: 0; color: var(--latao); }
.faixa-titulo p.sub { color: var(--suave-sobre-escuro); margin-top: .8rem; max-width: 52ch; }
.faixa-fotos.natureza-faixa { padding-top: 0; }
.faixa-trilho figure { background: var(--mata-2); }
.faixa-trilho figure::after { content: ""; position: absolute; inset: auto 0 0 0; height: 36%; background: linear-gradient(0deg, rgba(10,16,12,.68), transparent); pointer-events: none; }
.faixa-trilho figcaption { z-index: 1; right: 1rem; line-height: 1.35; }
@media (max-width: 860px) { .estrela { grid-template-columns: 1fr; } .estrela-foto { max-width: 420px; } }

/* ---------- Pescaria ---------- */
.pescaria-grade { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2.5rem, 6vw, 6rem); align-items: start; }
.pescaria-fotos { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(.8rem, 1.6vw, 1.2rem); }
.pescaria-fotos figure { position: relative; overflow: hidden; border-radius: var(--raio); aspect-ratio: 4 / 5; background: var(--linho-2); }
.pescaria-fotos figure:nth-child(even) { margin-top: 3.5rem; }
.pescaria-fotos figure:nth-child(odd) { margin-bottom: -3.5rem; }
.pescaria-fotos img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--suave); }
.pescaria-fotos figure:hover img { transform: scale(1.05); }
.pescaria-fotos figure::after { content: ""; position: absolute; inset: auto 0 0 0; height: 42%; background: linear-gradient(0deg, rgba(10,16,12,.7), transparent); pointer-events: none; }
.pescaria-fotos figcaption { position: absolute; z-index: 1; left: 1rem; right: 1rem; bottom: 1rem; color: #fff; font: 400 .72rem/1.35 var(--f-texto); letter-spacing: .16em; text-transform: uppercase; }
.pescaria-texto .lista-pets { margin-top: 2rem; }
.piracema { margin-top: clamp(4rem, 8vw, 6.5rem); border: 1px solid rgba(154,90,43,.4); background: #fbf8f2; border-radius: 6px; padding: clamp(1.5rem, 3vw, 2.4rem); display: grid; grid-template-columns: auto minmax(0, 1fr); gap: clamp(1rem, 3vw, 2.2rem); align-items: start; }
.piracema-selo { font: 500 clamp(1.1rem, .9rem + .8vw, 1.5rem)/1.1 var(--f-titulo); color: var(--madeira); border: 1px solid var(--madeira); border-radius: 999px; padding: .7rem 1.2rem; white-space: nowrap; }
.piracema h3 { font-size: 1.5rem; }
.piracema p { color: var(--tinta-2); margin-top: .6rem; max-width: 70ch; }
.piracema-agora { display: inline-block; margin-top: 1rem; padding: .8rem 1.2rem; border-radius: 16px; line-height: 1.45; background: var(--madeira); color: #fff !important; font-weight: 400; font-size: .92rem; max-width: none !important; }
.piracema-agora[hidden] { display: none; }
@media (max-width: 900px) { .pescaria-grade { grid-template-columns: 1fr; } .piracema { grid-template-columns: 1fr; } .piracema-selo { width: fit-content; } }
@media (max-width: 520px) { .pescaria-fotos figure:nth-child(even) { margin-top: 1.6rem; } .pescaria-fotos figure:nth-child(odd) { margin-bottom: -1.6rem; } }

/* ---------- Pets em vídeo ---------- */
.pets { overflow: hidden; }
.pets-midia { position: relative; padding-bottom: 8%; }
.pets-video { aspect-ratio: 4 / 5; overflow: hidden; border-radius: var(--raio); background: #1b2b22; }
.pets-video video { width: 100%; height: 100%; object-fit: cover; }
.pets-video figcaption { display: none; }
.pets-tag { position: absolute; left: -4%; top: 14%; background: var(--mata); color: var(--creme-sobre-escuro); font: 500 .72rem/1 var(--f-texto); letter-spacing: .18em; text-transform: uppercase; padding: .8rem 1.1rem; border-radius: 999px; box-shadow: 0 20px 36px -16px rgba(0,0,0,.5); animation: selo 3.6s ease-in-out infinite; }
.pets-lead2 { margin-top: 1.2rem; font: 500 clamp(1.3rem, 1rem + 1vw, 1.8rem)/1.3 var(--f-titulo); font-style: italic; color: var(--madeira); max-width: 40ch; }
/* ---------- Chegue voando ---------- */
.voando { overflow: hidden; }
.voando-grade { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: clamp(2.5rem, 6vw, 5.5rem); align-items: center; }
.voando h2 { font-size: clamp(2.5rem, 1.2rem + 4vw, 4.8rem); line-height: 1.04; }
.nb { white-space: nowrap; }
.voando-frase { margin-top: 1.6rem; font: 500 clamp(1.6rem, 1.1rem + 1.8vw, 2.7rem)/1.2 var(--f-titulo); font-style: italic; color: var(--madeira); text-wrap: balance; }
.voando-nota { margin-top: 1.8rem; color: var(--tinta-2); max-width: 46ch; }
.emo { display: inline-block; font-style: normal; transform-origin: 50% 80%; }
.emo-heli { animation: emoHeli 3.4s ease-in-out infinite; }
.emo-praia { animation: emoPraia 5s ease-in-out infinite; }
.emo-cerveja { animation: emoCerveja 3.8s ease-in-out infinite; }
@keyframes emoHeli { 0%, 100% { transform: translate(0, 0) rotate(-4deg); } 50% { transform: translate(.18em, -.22em) rotate(6deg); } }
@keyframes emoPraia { 0%, 100% { transform: rotate(-6deg); } 50% { transform: rotate(6deg) translateY(-.05em); } }
@keyframes emoCerveja { 0%, 70%, 100% { transform: rotate(0); } 78% { transform: rotate(-14deg); } 88% { transform: rotate(10deg); } }
.voando-video { position: relative; aspect-ratio: 9 / 8; border-radius: 22px; overflow: hidden; background: #1a2a33; box-shadow: 0 60px 100px -50px rgba(24,32,27,.7), 0 0 0 10px #fff, 0 0 0 11px var(--linha); }
.voando-video video { width: 100%; height: 100%; object-fit: cover; }
.voando-video figcaption { position: absolute; left: 1.2rem; bottom: 1.1rem; z-index: 1; color: #fff; font: 400 .72rem/1 var(--f-texto); letter-spacing: .2em; text-transform: uppercase; text-shadow: 0 1px 10px rgba(0,0,0,.7); }
.voando-video::after { content: ""; position: absolute; inset: auto 0 0 0; height: 30%; background: linear-gradient(0deg, rgba(10,16,12,.5), transparent); pointer-events: none; }
@media (max-width: 900px) { .voando-grade { grid-template-columns: 1fr; } .voando-video { box-shadow: 0 40px 70px -40px rgba(24,32,27,.7), 0 0 0 6px #fff, 0 0 0 7px var(--linha); margin: 0 7px; } }

/* ---------- Depoimentos em movimento ---------- */
.aval-titulo { text-align: center; margin: 0 auto clamp(1.6rem, 3vw, 2.4rem); color: var(--suave-sobre-escuro); font: 400 .78rem/1.4 var(--f-texto); letter-spacing: .22em; text-transform: uppercase; padding: 0 var(--lado); }
.avatar.insta { background: linear-gradient(45deg, #f9a03f, #e1306c 55%, #833ab4); }
.avatar.insta svg { width: 22px; height: 22px; color: #fff; }
.esteira-trilho { animation-duration: 90s; }
.esteira-volta .esteira-trilho { animation-duration: 100s; }
.aval { min-height: 190px; }
.aval:hover { transform: translateY(-6px) rotate(-.4deg); }
.nota-google .extra { color: var(--suave-sobre-escuro); font-size: .95rem; margin: 0 0 1.2rem; max-width: 34ch; }

/* ---------- Rodapé v4 ---------- */
.rodape-base .base-texto { display: grid; gap: .25rem; }
.rodape-base .dev { color: var(--suave-sobre-escuro); }
.faixa-trilho { scroll-padding-inline: var(--lado) var(--lado-d); }

/* =====================================================================
   v4.2 — menu lateral, Pescaria interativa, faixa de pescadores, pets
   ===================================================================== */

/* ---------- Menu lateral de redes (solto da borda, ícones transparentes) ---------- */
.rail {
  position: fixed; z-index: 96; right: 16px; top: 50%; translate: 0 -50%;
  display: flex; flex-direction: column; gap: .3rem; padding: .45rem;
  border-radius: 999px; background: rgba(19,32,25,.16); border: 1px solid rgba(255,255,255,.2);
  backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
  box-shadow: 0 18px 40px -22px rgba(0,0,0,.55);
  transition: opacity .4s, background .4s;
}
.rail a {
  position: relative; width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center;
  color: rgba(255,255,255,.8); background: transparent; text-decoration: none;
  transition: background .3s, transform .4s var(--suave), color .3s;
}
.rail svg { width: 22px; height: 22px; filter: drop-shadow(0 1px 3px rgba(0,0,0,.5)); transition: color .3s, filter .3s; }
.rail a:hover, .rail a:focus-visible { background: #fff; transform: scale(1.1); outline: none; }
.rail a:hover svg, .rail a:focus-visible svg { filter: none; }
.rail .rail-insta:hover svg, .rail .rail-insta:focus-visible svg { color: #d6249f; }
.rail .rail-mapa:hover svg, .rail .rail-mapa:focus-visible svg { color: #e2463a; }
.rail-dica {
  position: absolute; right: calc(100% + 14px); top: 50%; translate: 8px -50%; white-space: nowrap; pointer-events: none;
  background: var(--mata); color: var(--creme-sobre-escuro); font: 400 .7rem/1 var(--f-texto); letter-spacing: .16em; text-transform: uppercase;
  padding: .6rem .85rem; border-radius: 999px; opacity: 0; transition: opacity .25s, translate .35s var(--suave);
  box-shadow: 0 14px 26px -14px rgba(0,0,0,.6);
}
.rail a:hover .rail-dica, .rail a:focus-visible .rail-dica { opacity: 1; translate: 0 -50%; }
body.menu-aberto .rail { opacity: 0; pointer-events: none; }
/* sobre seções claras: mesma cápsula transparente, ícones escuros */
body.rail-claro .rail { background: rgba(255,255,255,.34); border-color: rgba(19,32,25,.16); box-shadow: 0 18px 40px -26px rgba(19,32,25,.5); }
body.rail-claro .rail a { color: rgba(19,32,25,.78); }
body.rail-claro .rail svg { filter: none; }
body.rail-claro .rail a:hover, body.rail-claro .rail a:focus-visible { box-shadow: 0 10px 22px -10px rgba(19,32,25,.5); }
@media (min-width: 1101px) { .faixa-prox { right: max(84px, var(--lado-d)); } }
@media (max-width: 1100px) { .rail { display: none; } }

/* ---------- Natureza: mais bichos na faixa ---------- */
.natureza-faixa .faixa-trilho figure { background: var(--mata-2); }

/* ---------- Pescaria: texto e foto ligados (passe o mouse) ---------- */
.lista-liga li[data-liga] { outline: none; transition: background .35s, box-shadow .35s; }
.lista-liga li[data-liga] span { transition: color .35s; }
.foto-num {
  position: absolute; z-index: 2; top: .85rem; left: .85rem; width: 2.5rem; height: 2.5rem; border-radius: 50%;
  display: grid; place-items: center; background: rgba(19,32,25,.72); color: var(--latao);
  font: 500 1.05rem/1 var(--f-titulo); border: 1px solid rgba(203,164,107,.65);
  backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px);
  transition: background .35s, color .35s, transform .4s var(--suave);
}
@media (min-width: 901px) {
  .lista-liga li[data-liga] { cursor: pointer; }
  .lista-liga li[data-liga]:hover, .lista-liga li[data-liga]:focus-visible, .lista-liga li.foco {
    background: linear-gradient(90deg, rgba(203,164,107,.2), rgba(203,164,107,0)); box-shadow: -4px 0 0 var(--latao);
  }
  .lista-liga li[data-liga]:hover span, .lista-liga li[data-liga]:focus-visible span, .lista-liga li.foco span { color: var(--latao); }
  .pescaria-fotos figure[data-liga]::before { content: ""; position: absolute; inset: 0; z-index: 2; border: 3px solid var(--latao); border-radius: inherit; opacity: 0; pointer-events: none; transition: opacity .35s; }
  .js .pescaria-fotos.liga-ativa figure.visto img { transition: transform 1s var(--suave), filter .45s; }
  .js .pescaria-fotos.liga-ativa figure.visto:not(.foco) img { filter: saturate(.5) brightness(.7); }
  .pescaria-fotos figure.foco::before { opacity: 1; }
  .js .pescaria-fotos figure.foco.visto img { transform: scale(1.07); }
  .pescaria-fotos figure.foco .foto-num { background: var(--latao); color: var(--mata); transform: scale(1.14); }
}

/* ---------- Pescaria: faixa de pescadores ---------- */
.pescaria .pescou-faixa { margin-block: clamp(5rem, 9vw, 7.5rem) clamp(3.5rem, 6vw, 5rem); padding-block: clamp(3rem, 6vw, 4.5rem); }
.pescou-faixa .faixa-trilho figure { background: var(--mata-2); }


/* ---------- Beija-flor que voa pelo site (js/beija-flor.js) ---------- */
.bf {
  position: fixed; left: 0; top: 0; z-index: 105; pointer-events: none; will-change: transform; opacity: 0;
  filter: drop-shadow(0 10px 10px rgba(0,0,0,.28)); transition: opacity 1s;
}
.bf.visivel { opacity: 1; }
body.menu-aberto .bf { opacity: 0; }
@media print { .bf { display: none; } }


/* =====================================================================
   v4.3
   ===================================================================== */

/* ---------- Pets: dois vídeos diferentes, lado a lado (sem sobreposição) ---------- */
.pets-midia { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: clamp(.7rem, 1.6vw, 1.2rem); align-items: start; padding-bottom: 0; max-width: 640px; }
.pets-midia .pets-video { border-radius: var(--raio); }
.pets-midia .pets-tag { left: 0; top: auto; bottom: 0; }
@media (min-width: 861px) { .pets-grade { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); } .pets-midia { max-width: none; } }

/* ---------- Avaliações: logo do Google ou do Instagram no lugar da inicial ---------- */
.avatar.av-g { background: #fff; }
.avatar.av-g svg { width: 56%; height: 56%; display: block; }
.avatar.av-ig { background: radial-gradient(circle at 30% 107%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 60%, #285aeb 90%); color: #fff; }
.avatar.av-ig svg { width: 58%; height: 58%; display: block; color: #fff; }

/* ---------- Facebook (menu lateral, menu em tela cheia e rodapé) ---------- */
.rail .rail-face:hover svg, .rail .rail-face:focus-visible svg { color: #1877f2; }
.r-face svg { color: #1877f2; }
.redes a.r-face:hover svg { color: #1877f2; }

/* ---------- Piracema: fonte da informação ---------- */
.piracema .piracema-fonte { font-size: .82rem; line-height: 1.5; margin-top: 1rem; opacity: .9; }
.piracema .piracema-fonte a { text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgba(154,90,43,.55); }
.piracema .piracema-fonte a:hover { text-decoration-color: currentColor; }
@media (min-width: 861px) { .pets-grade { align-items: start; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); } .pets-midia { margin-top: 1.5rem; } }

/* ===== v4.4 ===== */
.numeros .nota-estrela { display: inline-flex; align-items: center; gap: .14em; }
/* estrela dourada brilhante (5 ★) — mesma peça no manifesto, nas Avaliações e no selo do rodapé */
.estrela-ouro { display: inline-block; width: .66em; height: .66em; flex: none; overflow: visible; filter: drop-shadow(0 0 .09em rgba(255,196,30,.95)) drop-shadow(0 .03em .06em rgba(176,102,0,.55)); }
.numeros .nota-estrela svg { width: .8em; height: .8em; margin-top: .02em; margin-left: .04em; }
.nota-numero { display: flex; align-items: center; gap: .06em; font-variant-numeric: lining-nums; }
.nota-numero .estrela-ouro { width: .62em; height: .62em; margin-top: -.06em; filter: drop-shadow(0 0 .07em rgba(255,206,60,.95)) drop-shadow(0 0 .22em rgba(255,190,20,.55)); }
.selo-nota { display: inline-flex; align-items: center; gap: .14em; font-variant-numeric: lining-nums; }
.selo-nota .estrela-ouro { width: .78em; height: .78em; filter: drop-shadow(0 0 .12em rgba(255,206,60,.9)); }
.selo span { letter-spacing: 0; }
@media (prefers-reduced-motion: no-preference) {
  .estrela-ouro { animation: brilho-ouro 3.6s ease-in-out infinite; }
  @keyframes brilho-ouro { 0%, 100% { filter: drop-shadow(0 0 .09em rgba(255,196,30,.95)) drop-shadow(0 .03em .06em rgba(176,102,0,.5)) brightness(1); } 50% { filter: drop-shadow(0 0 .16em rgba(255,214,70,1)) drop-shadow(0 .03em .06em rgba(176,102,0,.5)) brightness(1.12); } }
}
.rio-bloco .foto-pescador { aspect-ratio: 960 / 1150; }
.piracema-agora.liberada { background: var(--verde-wa); }
.piracema .piracema-agora small { display: block; margin-top: .25rem; font-size: .8rem; opacity: .85; }
#datas .cabeca { margin-bottom: clamp(1.3rem, 2.6vw, 2rem); }
.cab.nav-fecha .nav-sub { opacity: 0 !important; visibility: hidden !important; pointer-events: none; }
#suites .quartos-faixa { margin-top: clamp(4rem, 8vw, 6rem); padding-block: 0; }
#suites .quartos-faixa .faixa-trilho figure { flex-basis: clamp(290px, 46vw, 700px); aspect-ratio: 16 / 10; }
#suites .quartos-faixa .faixa-trilho img { object-fit: cover; }
#suites { padding-bottom: clamp(2.5rem, 5vw, 4rem); }

/* ---------- Beija-flor 3D que acompanha o visitante (v4.5, js/beija-flor.js) ---------- */
/* Fixo na janela; o JavaScript move o desenho com transform. Não recebe mouse nem toque. */
.bf3d {
  position: fixed; left: 0; top: 0; z-index: 105; pointer-events: none; will-change: transform; opacity: 0;
  transition: opacity 1.2s; filter: drop-shadow(0 8px 8px rgba(0,0,0,.26));
}
.bf3d.visivel { opacity: 1; }
body.menu-aberto .bf3d { opacity: 0; }
@media print { .bf3d { display: none; } }

/* ---------- Botão de play (aparece só quando o celular recusa o vídeo que toca sozinho) ---------- */
figure:has(> video) { position: relative; }
.vid-play {
  position: absolute; left: 50%; top: 50%; width: 64px; height: 64px; margin: -32px 0 0 -32px; z-index: 3;
  border: 1px solid rgba(255,255,255,.7); border-radius: 50%; background: rgba(20,28,24,.55); cursor: pointer; padding: 0;
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); box-shadow: 0 6px 22px rgba(0,0,0,.35);
}
.vid-play::before {
  content: ""; position: absolute; left: 50%; top: 50%; margin: -12px 0 0 -8px;
  border-style: solid; border-width: 12px 0 12px 20px; border-color: transparent transparent transparent #fff;
}
.vid-play:focus-visible { outline: 3px solid var(--ouro, #c9964a); outline-offset: 3px; }

/* Selo de avaliações do rodapé agora é um link para as avaliações no Google */
a.selo { color: inherit; text-decoration: none; transition: border-color .25s, background .25s; }
a.selo:hover, a.selo:focus-visible { border-color: var(--latao); background: rgba(203,164,107,.08); }
a.selo:hover small, a.selo:focus-visible small { text-decoration: underline; text-underline-offset: 3px; }

/* v4.8: estilos que estavam escritos dentro do HTML (atributo style e blocos <style>) agora ficam aqui.
   Assim a CSP não precisa de 'unsafe-inline' em style-src. */
.svg-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.op-35 { object-position: 35% 50%; }
.op-38 { object-position: 38% 50%; }
.op-40 { object-position: 40% 50%; }
.op-45 { object-position: 45% 50%; }
.op-64 { object-position: 64% 50%; }
.sem-sublinhado { text-decoration: none; }
.legal{max-width:820px} .legal h2{margin-bottom:.6rem} .legal h3{margin:2.6rem 0 .8rem}
.legal p,.legal li{color:var(--tinta-2)} .legal ul{padding-left:1.2rem;display:grid;gap:.5rem}
.legal .atualizado{font-size:.9rem;margin-bottom:1.5rem} .legal nav{display:flex;gap:1.2rem;flex-wrap:wrap;margin-top:3.5rem;padding-top:1.5rem;border-top:1px solid var(--linha)}
body.pg404 { min-height: 100vh; display: grid; place-items: center; text-align: center; }
.pg404-logo { margin: 0 auto 2rem; height: auto; }
.pg404-lead { margin-inline: auto; }
.pg404-voltar { margin-top: 2rem; }

/* =====================================================================
   v4.9 — página condensada em tópicos: texto curto + galeria que rola
   para o lado, foto ampliada ao clicar, agenda logo depois de
   "Como funciona", setas no topo
   ===================================================================== */

/* ---------- Ritmo mais curto entre as seções ---------- */
.secao.compacta, .secao.topico { padding-block: clamp(3.2rem, 6.5vw, 6rem); }
.secao.compacta h2, .topico h2 { font-size: clamp(2.1rem, 1.3rem + 2.6vw, 3.6rem); }
.secao.compacta .cabeca { margin-bottom: clamp(1.8rem, 3.6vw, 2.8rem); }
.manifesto { padding-block: clamp(4rem, 9vw, 7.5rem) clamp(3rem, 6vw, 5rem); }
.numeros { margin-top: clamp(2.5rem, 6vw, 4.5rem); }

/* ---------- Topo: resumo, botão para a agenda e setas das cenas ---------- */
.hero-esq { display: grid; gap: .9rem; justify-items: start; }
.hero-resumo { color: rgba(255,255,255,.9); font: 400 .78rem/1.4 var(--f-texto); letter-spacing: .16em; text-transform: uppercase; text-shadow: 0 1px 10px rgba(0,0,0,.5); }
.hero-botao { background: var(--linho); color: var(--tinta); border-color: var(--linho); margin-top: .3rem; }
.hero-botao svg { fill: none; }
.hero-botao:hover { background: var(--latao); border-color: var(--latao); color: var(--mata); }
.hero-ctrl { display: flex; align-items: center; gap: .6rem; }
.hero-seta { width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center; cursor: pointer; padding: 0; color: #fff; background: rgba(10,16,12,.28); border: 1px solid rgba(255,255,255,.55); backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); transition: background .3s, transform .3s var(--suave); }
.hero-seta svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.hero-seta:hover { background: rgba(255,255,255,.22); transform: scale(1.06); }
.hero-cenas { padding-bottom: 0; }
.hero-cenas button { height: 30px; }
.hero-cenas button::before, .hero-cenas button::after { top: 14px; height: 3px; border-radius: 2px; }
@media (max-width: 760px) {
  .hero-rodape { padding-bottom: calc(1.6rem + env(safe-area-inset-bottom, 0px)); }
  .hero-resumo { font-size: .68rem; letter-spacing: .12em; }
  .hero-lado { width: 100%; flex-direction: row; justify-content: space-between; align-items: center; }
  .hero-legenda { display: none; }
  .hero-botao { padding: .9rem 1.2rem; }
}

/* ---------- Como funciona ---------- */
.passos li { flex-direction: row; gap: 1rem; align-items: flex-start; }
.passos li > div { display: grid; gap: .5rem; }
.passo-n { font-size: clamp(2.8rem, 2rem + 2.4vw, 4.2rem); min-width: 1.4ch; }
.anfitriao { display: flex; align-items: center; gap: .8rem; margin-top: .5rem; }
.anfitriao img { width: 58px; height: 58px; border-radius: 50%; object-fit: cover; object-position: 50% 30%; box-shadow: 0 0 0 3px var(--linho), 0 0 0 4px var(--madeira); }
.anfitriao span { display: grid; font-size: .85rem; color: var(--tinta-2); line-height: 1.3; }
.anfitriao strong { color: var(--tinta); font: 600 1.15rem/1.2 var(--f-titulo); }
.incluso { margin-top: clamp(2rem, 4vw, 3rem); align-items: start; }
.incluso-col { padding: 0; gap: 0; }
.incluso-col summary { list-style: none; cursor: pointer; padding: 1.2rem 3.2rem 1.2rem 1.4rem; position: relative; }
.incluso-col summary::-webkit-details-marker { display: none; }
.incluso-col summary h3 { font-size: 1.35rem; }
.incluso-col summary::before, .incluso-col summary::after { content: ""; position: absolute; right: 1.3rem; top: 50%; width: 14px; height: 1.5px; background: var(--madeira); transition: transform .4s var(--suave); }
.incluso-col summary::after { transform: rotate(90deg); }
.incluso-col[open] summary::after { transform: rotate(0); }
.incluso-col > ul, .incluso-col > .nota { margin: 0 1.4rem; }
.incluso-col > ul { padding-bottom: 1.2rem; }
.incluso-col > .nota { margin-bottom: 1.2rem; }
.incluso-col:hover { transform: none; box-shadow: none; }
@media (max-width: 860px) { .passos { gap: 1.2rem; } }

/* ---------- Datas livres: agenda + o que fazer em seguida ---------- */
.datas-grade { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(280px, 1fr); gap: clamp(1.5rem, 3vw, 2.5rem); align-items: start; }
.datas-grade .agenda { max-width: none; margin: 0; }
.datas-lado { display: grid; gap: 1.1rem; }
.datas-acao, .datas-bom { background: #fbf8f2; border: 1px solid var(--linha); border-radius: 10px; padding: 1.3rem 1.4rem; display: grid; gap: .8rem; justify-items: start; }
.datas-acao h3, .datas-bom h3 { font-size: 1.45rem; }
.datas-acao p { color: var(--tinta-2); font-size: .95rem; }
.datas-acao .wa-botao { padding: 1rem 1.3rem; }
.datas-bom .lista-check { font-size: .93rem; color: var(--tinta-2); gap: .45rem; }
.link-seta.escuro { color: var(--madeira); }
.datas-seguro { font-size: .86rem; line-height: 1.5; color: var(--tinta-2); border-left: 2px solid var(--madeira); padding: .2rem 0 .2rem 1rem; }
.datas-seguro strong { color: var(--tinta); font-weight: 500; }
.datas-lista { border: 1px solid var(--linha); border-radius: 10px; padding: 0 1.2rem; background: transparent; }
.datas-lista summary { cursor: pointer; padding: 1rem 0; font-size: .92rem; color: var(--tinta-2); list-style: none; }
.datas-lista summary::-webkit-details-marker { display: none; }
.datas-lista summary strong { color: var(--madeira); font-weight: 500; display: block; }
.datas-lista > p { font-size: .9rem; color: var(--tinta-2); }
.datas-lista .lista-form { padding-bottom: 1.2rem; }
.datas-lista .lista-form input[type=text], .datas-lista .lista-form input[type=tel] { color: var(--tinta); background: #fff; border-color: var(--linha); }
.datas-lista .lista-form input::placeholder { color: rgba(24,32,27,.45); }
.datas-lista .lista-form input:focus { border-color: var(--madeira); background: #fff; }
.datas-lista .consentimento { color: var(--tinta-2); }
.datas-lista .consentimento a { color: var(--madeira); }
.datas-lista .lista-form .botao { background: var(--tinta); border-color: var(--tinta); color: var(--linho); justify-self: start; }
.datas-lista .lista-ok { color: var(--verde-wa); }
@media (max-width: 960px) { .datas-grade { grid-template-columns: 1fr; } }

/* ---------- Tópico: texto curto à esquerda, galeria que rola para o lado ---------- */
.topico { --fundo: var(--linho); --alt: clamp(300px, 30vw, 440px); overflow: hidden; }
.topico.escura { --fundo: var(--mata); }
.topico.areia { --fundo: var(--linho-2); }
.topico-grade { display: grid; grid-template-columns: minmax(300px, 400px) minmax(0, 1fr); gap: clamp(2rem, 4vw, 3.5rem); align-items: center; padding-left: max(var(--lado), calc((100% - var(--caixa)) / 2 + var(--lado))); }
.topico-texto .lead { margin-top: 1.1rem; font-size: 1.05rem; }
.topico-texto .rotulo { margin-bottom: 1rem; }
.fatos { list-style: none; padding: 0; margin: 1.4rem 0 0; display: flex; flex-wrap: wrap; gap: .45rem; }
.fatos li { font-size: .85rem; line-height: 1.35; padding: .5rem .85rem; border-radius: 999px; border: 1px solid var(--linha); color: var(--tinta-2); background: rgba(255,255,255,.35); }
.escura .fatos li { border-color: var(--linha-escura); color: var(--creme-sobre-escuro); background: rgba(255,255,255,.04); }
.fatos li strong { font-weight: 500; color: var(--tinta); }
.topico-nota { margin-top: 1rem; font-size: .85rem; color: var(--tinta-2); }
.link-acao { display: inline-flex; align-items: center; gap: .55rem; margin-top: 1.3rem; color: var(--verde-wa); font: 500 .8rem/1.3 var(--f-texto); letter-spacing: .12em; text-transform: uppercase; text-decoration: none; }
.link-acao::after { content: "→"; transition: transform .3s var(--suave); }
.link-acao:hover::after { transform: translateX(6px); }
.link-acao.claro { color: var(--latao); }
.escura .link-acao { color: #4fd18a; }

.galeria.faixa-fotos { background: transparent; padding: 0; min-width: 0; }
.galeria.faixa-fotos::before { background: linear-gradient(90deg, var(--fundo), transparent); width: 60px; }
.galeria.faixa-fotos::after { background: linear-gradient(-90deg, var(--fundo), transparent); width: 60px; }
.galeria .faixa-trilho { padding-right: var(--lado-d); scroll-padding-inline: 0; gap: .8rem; }
.galeria .faixa-trilho figure { flex: 0 0 auto; height: var(--alt); width: calc(var(--alt) * .75); aspect-ratio: auto; background: var(--mata-2); }
.galeria .faixa-trilho figure.h { width: calc(var(--alt) * 1.45); }
.galeria .faixa-trilho figure:not(.vid) { cursor: zoom-in; }
.galeria .faixa-trilho video { width: 100%; height: 100%; object-fit: cover; pointer-events: none; }
.galeria .faixa-seta { width: 52px; height: 52px; top: 50%; }
.galeria .faixa-ant { left: 10px; }
.galeria .faixa-prox { right: max(16px, var(--lado-d)); }
@media (min-width: 1101px) { .galeria .faixa-prox { right: 84px; } }
.galeria .faixa-trilho figure:not(.vid)::before { content: ""; position: absolute; right: .7rem; top: .7rem; z-index: 1; width: 30px; height: 30px; border-radius: 50%; background: rgba(10,16,12,.45) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round'%3E%3Ccircle cx='10.5' cy='10.5' r='6'/%3E%3Cpath d='M15 15l5 5M10.5 8v5M8 10.5h5'/%3E%3C/svg%3E") center / 18px no-repeat; opacity: 0; transition: opacity .3s; pointer-events: none; }
.galeria .faixa-trilho figure:hover::before { opacity: 1; }
@media (hover: none) { .galeria .faixa-trilho figure:not(.vid)::before { opacity: .85; } }

@media (max-width: 960px) {
  .topico { --alt: clamp(260px, 62vw, 380px); }
  .topico-grade { grid-template-columns: 1fr; gap: 1.6rem; padding-left: 0; }
  .topico-texto { padding-inline: var(--lado) var(--lado-d); }
  .galeria .faixa-trilho { padding-left: var(--lado); scroll-padding-inline: var(--lado) 0; }
  .galeria .faixa-ant { left: max(10px, var(--lado)); }
  .galeria .faixa-seta { width: 44px; height: 44px; }
  .fatos li { font-size: .8rem; }
}

/* ---------- Natureza: a história do nome, recolhida ---------- */
.historia { margin-top: 1.3rem; border-top: 1px solid var(--linha-escura); }
.historia summary { cursor: pointer; list-style: none; padding: 1rem 2rem 0 0; position: relative; font: 500 1.35rem/1.25 var(--f-titulo); }
.historia summary::-webkit-details-marker { display: none; }
.historia summary em { color: var(--latao); }
.historia summary::after { content: "+"; position: absolute; right: 0; top: .9rem; font: 300 1.5rem/1 var(--f-texto); color: var(--latao); }
.historia[open] summary::after { content: "–"; }
.historia p { margin-top: .8rem; color: var(--suave-sobre-escuro); font-size: .98rem; }

/* ---------- Pets ---------- */
.pets-v49 .pets-grade { align-items: center; }
.pets-v49 .pets-midia { margin-top: 0; max-width: 560px; }
.pets-v49 .lead { margin-top: 1.1rem; font-size: 1.05rem; }
@media (min-width: 861px) { .pets-v49 .pets-grade { grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); } }
@media (max-width: 860px) { .pets-v49 .pets-grade { gap: 1.8rem; } .pets-v49 .pets-texto { order: -1; } }

/* ---------- Avaliações ---------- */
.avaliacoes.compacta .aval-grade { margin-bottom: clamp(2rem, 4vw, 3rem); }
.aval-acao { text-align: center; margin-top: clamp(1.6rem, 3vw, 2.4rem); padding: 0 var(--lado); }
.aval-acao .link-acao { margin-top: 0; }

/* ---------- Dúvidas ---------- */
#duvidas .faq summary { padding-block: 1.15rem; }

/* ---------- Localização + Chegue voando ---------- */
.chegadas-v49 { margin-top: 1.6rem; }
.chegadas-v49 li { border-radius: 12px; }
.voando-v49 { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1fr); gap: clamp(2rem, 5vw, 4.5rem); align-items: center; margin-top: clamp(3rem, 6vw, 5rem); padding-top: clamp(2.5rem, 5vw, 4rem); border-top: 1px solid var(--linha); scroll-margin-top: 90px; }
.voando-v49 h2 { font-size: clamp(2rem, 1.2rem + 2.6vw, 3.4rem); line-height: 1.06; }
.voando-v49 .voando-frase { font-size: clamp(1.4rem, 1.1rem + 1.2vw, 2.1rem); margin-top: 1rem; }
.voando-v49 .voando-video { max-width: 520px; }
@media (max-width: 900px) { .voando-v49 { grid-template-columns: 1fr; } .voando-v49 .voando-texto { order: -1; } }
.local.compacta .local-end, .local.compacta .rota, .local.compacta .local-botoes { margin-top: 1.4rem; }

/* ---------- Rodapé com 3 colunas (a lista de datas livres foi para a agenda) ---------- */
.rodape-colunas.rodape-3 { grid-template-columns: 1.4fr .8fr 1.1fr; }
@media (max-width: 1100px) { .rodape-colunas.rodape-3 { grid-template-columns: 1fr 1fr; } }
@media (max-width: 760px) { .rodape-colunas.rodape-3 { grid-template-columns: 1fr; } }

/* ---------- Foto ampliada (clique em qualquer foto das galerias) ---------- */
.lb { position: fixed; inset: 0; z-index: 300; background: rgba(8,12,10,.97); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); display: grid; place-items: center; padding: 64px 72px 72px; animation: lbEntra .3s ease; }
.lb[hidden] { display: none; }
@keyframes lbEntra { from { opacity: 0; } to { opacity: 1; } }
.lb-quadro { display: grid; justify-items: center; gap: .9rem; max-width: 100%; max-height: 100%; }
.lb-img { max-width: min(100%, 1600px); max-height: calc(100vh - 170px); max-height: calc(100dvh - 170px); width: auto; height: auto; object-fit: contain; border-radius: 4px; box-shadow: 0 30px 80px -30px rgba(0,0,0,.8); touch-action: pan-y; user-select: none; -webkit-user-select: none; }
.lb-leg { color: var(--creme-sobre-escuro); font: 400 .8rem/1.4 var(--f-texto); letter-spacing: .16em; text-transform: uppercase; text-align: center; max-width: 60ch; }
.lb-conta { position: absolute; left: 50%; top: 22px; transform: translateX(-50%); color: var(--suave-sobre-escuro); font-size: .8rem; letter-spacing: .14em; }
.lb-btn { position: absolute; width: 52px; height: 52px; border-radius: 50%; border: 1px solid rgba(255,255,255,.35); background: rgba(255,255,255,.06); color: #fff; display: grid; place-items: center; cursor: pointer; padding: 0; transition: background .3s, transform .3s var(--suave); }
.lb-btn:hover { background: rgba(255,255,255,.18); }
.lb-btn svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.lb-fechar { top: 14px; right: 14px; }
.lb-ant { left: 14px; top: 50%; margin-top: -26px; }
.lb-prox { right: 14px; top: 50%; margin-top: -26px; }
body.lb-aberto { overflow: hidden; }
body.lb-aberto .wa, body.lb-aberto .bf3d, body.lb-aberto .rail { opacity: 0; pointer-events: none; }
@media (max-width: 760px) {
  .lb { padding: 56px 8px 96px; }
  .lb-img { max-height: calc(100vh - 190px); max-height: calc(100dvh - 190px); }
  .lb-ant, .lb-prox { top: auto; bottom: 22px; margin-top: 0; }
  .lb-ant { left: calc(50% - 64px); } .lb-prox { right: calc(50% - 64px); }
}
@media (max-width: 760px) {
  .rodape-colunas.rodape-3 nav.rodape-col { display: none; }
  .local.compacta .mapa { aspect-ratio: 4 / 3; }
  .piracema p { font-size: .95rem; }
}
.topico .piracema { margin-top: clamp(2rem, 4vw, 3rem); margin-inline: 0; }
.topico > .caixa { margin-top: 0; }
