
@font-face { font-family: "Playfair"; src: url(../fonts/playfair-display-latin-wght-normal.woff2) format("woff2"); font-weight: 400 900; font-style: normal; font-display: swap; }
@font-face { font-family: "Playfair"; src: url(../fonts/playfair-display-latin-wght-italic.woff2) format("woff2"); font-weight: 400 900; font-style: italic; font-display: swap; }
@font-face { font-family: "Inter"; src: url(../fonts/inter-latin-wght-normal.woff2) format("woff2"); font-weight: 100 900; font-display: swap; }

:root {
  --preto: #0c0c0b; --grafite: #1a1918; --branco: #fbfaf7; --creme: #ede6da; --areia: #d9cdb9;
  --tinta: #1d1c1a; --tinta-suave: #4a463f; --cinza-escuro: #a7a196; --ouro: #9b7f4f; --ouro-claro: #cdb68a;
  --serif: "Playfair", "Times New Roman", serif; --sans: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  --gut: clamp(16px, 4vw, 56px); --largura: 1320px; --topo-h: 64px;
  --t1: clamp(2.6rem, 8.5vw, 8.4rem); --t2: clamp(2rem, 5.2vw, 4.6rem); --t3: clamp(1.4rem, 2.6vw, 2.1rem);
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: var(--topo-h); }
body { margin: 0; background: var(--branco); color: var(--tinta); font: 400 1.0625rem/1.65 var(--sans); }
img, video { display: block; max-width: 100%; height: auto; }
a { color: inherit; }
a:focus-visible, button:focus-visible, [tabindex]:focus-visible { outline: 2px solid var(--ouro); outline-offset: 3px; }
.vh { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.pular { position: absolute; left: 8px; top: -60px; z-index: 100; background: var(--preto); color: var(--branco); padding: 10px 14px; }
.pular:focus { top: 8px; }
.cx { width: 100%; max-width: var(--largura); margin: 0 auto; padding: 0 var(--gut); }
.serif { font-family: var(--serif); font-weight: 400; }
h1, h2, h3 { font-family: var(--serif); font-weight: 400; line-height: 1.05; letter-spacing: -0.01em; margin: 0 0 .4em; }
.titulo-filme { font-size: var(--t1); text-transform: uppercase; letter-spacing: .01em; line-height: .95; }
.titulo-filme em, .titulo-sec em { display: block; text-transform: none; font-style: italic; font-size: .62em; letter-spacing: 0; }
.titulo-sec { font-size: var(--t2); text-transform: uppercase; }
.sobre-linha { font: 500 .78rem/1.3 var(--sans); letter-spacing: .18em; text-transform: uppercase; color: var(--ouro); margin: 0 0 1rem; }
.lead { font-size: clamp(1.1rem, 1.6vw, 1.35rem); line-height: 1.55; max-width: 44ch; }
p { margin: 0 0 1em; max-width: 68ch; }


.btn { display: inline-flex; align-items: center; gap: .6em; min-height: 48px; padding: .85em 1.5em; border: 1px solid currentColor; border-radius: 999px;
  font: 500 .92rem/1 var(--sans); letter-spacing: .04em; text-decoration: none; background: transparent; color: inherit; cursor: pointer; transition: background .25s, color .25s; }
.btn:hover { background: var(--tinta); color: var(--branco); border-color: var(--tinta); }
.escuro .btn:hover, .btn.claro:hover { background: var(--branco); color: var(--preto); border-color: var(--branco); }
.btn.cheio { background: var(--tinta); color: var(--branco); border-color: var(--tinta); }
.btn.cheio:hover { background: var(--ouro); border-color: var(--ouro); }
.escuro .btn.cheio { background: var(--branco); color: var(--preto); border-color: var(--branco); }
.link-seta { font: 500 .95rem/1.4 var(--sans); text-decoration: none; border-bottom: 1px solid currentColor; padding-bottom: 2px; }
.link-seta::after { content: " →"; }


.topo { position: fixed; inset: 0 0 auto 0; z-index: 50; height: var(--topo-h); display: flex; align-items: center; justify-content: space-between;
  padding: 0 var(--gut); color: var(--branco); transition: background .35s, color .35s; }
.topo.solido, .pagina-clara .topo { background: rgba(251, 250, 247, .94); color: var(--tinta); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.marca { font: 400 1.25rem/1 var(--serif); letter-spacing: .32em; text-decoration: none; text-transform: uppercase; }
.topo-acoes { display: flex; gap: 10px; align-items: center; }
.topo .btn { min-height: 40px; padding: .6em 1.1em; font-size: .85rem; }
.bot-menu { background: none; border: 0; color: inherit; font: 500 .85rem/1 var(--sans); letter-spacing: .14em; text-transform: uppercase; min-height: 44px; padding: 0 4px; cursor: pointer; }
.menu-aberto { overflow: hidden; }


#menu { position: fixed; inset: 0; z-index: 60; background: var(--preto); color: var(--branco); overflow-y: auto; padding: calc(var(--topo-h) + 16px) var(--gut) 32px; }
#menu[hidden] { display: none; }
.menu-fechar { position: absolute; top: 12px; right: var(--gut); }
.capitulos { list-style: none; margin: 0 auto; padding: 0; max-width: 900px; counter-reset: cap; }
.capitulos li { counter-increment: cap; border-bottom: 1px solid #2c2b29; }
.capitulos a { display: flex; align-items: baseline; gap: 18px; padding: 12px 0; text-decoration: none; font: 400 clamp(1.7rem, 4.6vw, 3.4rem)/1.1 var(--serif); text-transform: uppercase; }
.capitulos a::before { content: counter(cap, decimal-leading-zero); font: 500 .75rem/1 var(--sans); letter-spacing: .14em; color: var(--ouro-claro); min-width: 2.2em; }
.capitulos a:hover, .capitulos a[aria-current] { color: var(--ouro-claro); }
.menu-contato { max-width: 900px; margin: 28px auto 0; display: grid; gap: 6px; color: var(--cinza-escuro); font-size: .95rem; }
.menu-contato a { color: var(--branco); }


.abertura { position: relative; height: 200vh; background: var(--preto); color: var(--branco); }
.abertura-tela { position: sticky; top: 0; height: 100vh; height: 100svh; overflow: hidden; display: grid; place-items: center; }
.abertura-midia { position: absolute; inset: 0; clip-path: inset(calc((1 - var(--p, 0) * 2.2) * 32%) calc((1 - var(--p, 0) * 2.2) * 30%)); }
.abertura-midia img, .abertura-midia video { width: 100%; height: 100%; object-fit: cover; }
.abertura-midia::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.45), rgba(0,0,0,.15) 40%, rgba(0,0,0,.55)); }
.abertura-texto { position: relative; z-index: 2; text-align: center; padding: 0 var(--gut); transform: translateY(calc(var(--p, 0) * -18vh)); }
.abertura-texto .lead { margin: 1.2rem auto 1.8rem; color: #ece8e1; }
.reduz .abertura, html:not(.js) .abertura { height: auto; }
.reduz .abertura-tela, html:not(.js) .abertura-tela { position: relative; }
.reduz .abertura-midia, html:not(.js) .abertura-midia { clip-path: none; }


.frente { position: relative; }
.frente-foto { position: relative; height: 100vh; height: 100svh; overflow: hidden; color: var(--branco); }
.frente-foto > img, .frente-foto > video { position: absolute; inset: -8% 0; width: 100%; height: 116%; object-fit: cover; transform: translateY(calc((var(--p, .5) - .5) * -8%)); }
.frente-foto::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.15), rgba(0,0,0,.05) 50%, rgba(0,0,0,.5)); }
.frente-titulo { position: absolute; left: 0; right: 0; bottom: 18%; z-index: 2; text-align: center; padding: 0 var(--gut);
  font-size: var(--t1); font-family: var(--serif); text-transform: none; transform: translateY(calc((var(--p, .5) - .5) * -22vh)); }
.frente-legenda { position: absolute; left: 0; right: 0; bottom: 7%; z-index: 2; text-align: center; font: 400 italic clamp(1rem, 1.6vw, 1.3rem)/1.3 var(--serif); padding: 0 var(--gut); }
.frente-vidro::before { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: repeating-linear-gradient(90deg, rgba(255,255,255,.13) 0 9%, rgba(255,255,255,0) 9% 18%); -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px);
  -webkit-mask: linear-gradient(90deg, transparent 8%, #000 30%, #000 70%, transparent 92%); mask: linear-gradient(90deg, transparent 8%, #000 30%, #000 70%, transparent 92%); }
.frente-texto { background: var(--creme); padding: clamp(56px, 9vw, 120px) 0; }
.duas-col { display: grid; gap: 28px 64px; grid-template-columns: 1fr; }
.duas-col h3 { font-size: var(--t3); }
@media (min-width: 900px) { .duas-col { grid-template-columns: 5fr 7fr; } }


.espetaculo { position: relative; height: 190vh; background: var(--preto); color: var(--branco); }
.espetaculo-tela { position: sticky; top: 0; height: 100vh; height: 100svh; overflow: hidden; display: grid; place-items: center; text-align: center; }
.espetaculo-fita { position: absolute; inset: 0; }
.espetaculo-fita img, .espetaculo-fita video { width: 100%; height: 100%; object-fit: cover; opacity: .9; }
.espetaculo-texto { position: relative; z-index: 2; padding: 0 var(--gut); }
.cortina { position: absolute; inset: auto 0 0 0; z-index: 3; height: 100%; background: var(--branco); transform: translateY(calc((1 - var(--p, 0) * 1.6) * 100%)); }
.reduz .espetaculo, html:not(.js) .espetaculo { height: auto; }
.reduz .espetaculo-tela, html:not(.js) .espetaculo-tela { position: relative; }
.reduz .cortina, html:not(.js) .cortina { display: none; }


.cresce { position: relative; height: 260vh; background: var(--branco); }
.cresce-tela { position: sticky; top: 0; height: 100vh; height: 100svh; overflow: hidden; display: grid; place-items: center; }
.cresce-titulo { position: absolute; top: calc(var(--topo-h) + 4vh); left: 0; right: 0; text-align: center; z-index: 1; padding: 0 var(--gut); opacity: calc(1 - var(--p, 0) * 2.4); }
.cresce-fotos { position: relative; width: 100%; height: 100%; }
.cresce-fotos figure { position: absolute; margin: 0; overflow: hidden; top: 50%; }
.cresce-fotos img { width: 100%; height: 100%; object-fit: cover; }
.cresce-lado { width: 22vw; height: 32vh; transform: translateY(calc(-30% + (1 - min(1, var(--p, 0) * 3)) * 40vh)); opacity: calc(1 - max(0, var(--p, 0) - .35) * 4); }
.cresce-lado.e { left: 6vw; } .cresce-lado.d { right: 6vw; }
.cresce-meio { left: 50%; width: calc(30vw + var(--p, 0) * 70vw); height: calc(44vh + var(--p, 0) * 56vh); transform: translate(-50%, calc(-42% + (1 - min(1, var(--p, 0) * 3)) * 40vh + var(--p, 0) * -8%)); }
.cresce-legenda { position: absolute; z-index: 2; left: 0; right: 0; bottom: 8vh; text-align: center; color: var(--branco); opacity: calc((var(--p, 0) - .7) * 4); padding: 0 var(--gut); text-shadow: 0 1px 18px rgba(0,0,0,.45); }
@media (max-width: 700px) { .cresce-lado { width: 30vw; height: 22vh; } .cresce-meio { width: calc(52vw + var(--p, 0) * 48vw); } }
.reduz .cresce, html:not(.js) .cresce { height: auto; }
.reduz .cresce-tela, html:not(.js) .cresce-tela { position: relative; height: 80vh; }
.reduz .cresce-lado, html:not(.js) .cresce-lado { display: none; }
.reduz .cresce-meio, html:not(.js) .cresce-meio { width: 100%; height: 100%; transform: translate(-50%, -50%); }
.reduz .cresce-legenda, .reduz .cresce-titulo, html:not(.js) .cresce-legenda { opacity: 1; }


.curvo { position: relative; padding: clamp(64px, 10vw, 120px) 0; background: var(--preto); color: var(--branco); overflow: hidden; text-align: center; }
.curvo-pista { position: relative; height: clamp(300px, 46vw, 560px); perspective: 1400px; margin-top: 32px; touch-action: pan-y; }
.curvo-item { position: absolute; top: 0; left: 50%; width: min(64vw, 760px); height: 100%; margin: 0; text-decoration: none; color: inherit;
  transform: translateX(calc(-50% + var(--d, 0) * 72%)) rotateY(calc(var(--d, 0) * -28deg)) scale(calc(1 - min(1, max(var(--d, 0), calc(var(--d, 0) * -1))) * .18));
  transition: transform .7s cubic-bezier(.2,.7,.2,1), opacity .7s; opacity: calc(1 - min(2, max(var(--d, 0), calc(var(--d, 0) * -1))) * .45); cursor: pointer; }
.curvo-item img { width: 100%; height: 100%; object-fit: cover; }
.curvo-item figcaption { position: absolute; left: 0; right: 0; bottom: 18px; font: 400 var(--t3)/1 var(--serif); text-transform: uppercase; text-shadow: 0 1px 16px rgba(0,0,0,.5); }
.curvo-item:not(.ativo) figcaption { opacity: 0; }
.curvo-ctl { display: flex; gap: 12px; justify-content: center; margin-top: 24px; }
.curvo-ctl button { width: 48px; height: 48px; border-radius: 50%; border: 1px solid #5a5650; background: none; color: inherit; font-size: 1.1rem; cursor: pointer; }
.reduz .curvo-item { transition: none; }


.troca { position: relative; height: 320vh; }
.troca-tela { position: sticky; top: 0; height: 100vh; height: 100svh; overflow: hidden; display: grid; place-items: center; color: var(--branco); text-align: center; }
.troca-foto { position: absolute; inset: 0; opacity: 0; transition: opacity .8s; }
.troca-foto.ativa { opacity: 1; }
.troca-foto img { width: 100%; height: 100%; object-fit: cover; }
.troca-tela::after { content: ""; position: absolute; inset: 0; background: rgba(0,0,0,.32); }
.troca-texto { position: relative; z-index: 2; padding: 0 var(--gut); }
.troca-rotulos { display: flex; gap: 8px 18px; justify-content: center; flex-wrap: wrap; margin-top: 18px; list-style: none; padding: 0; }
.troca-rotulo { background: none; border: 0; color: rgba(255,255,255,.7); font: 500 .8rem/1 var(--sans); letter-spacing: .16em; text-transform: uppercase; padding: 8px 2px; border-bottom: 1px solid transparent; min-height: 40px; }
.troca-rotulo.ativo { color: var(--branco); border-color: var(--branco); }
.reduz .troca { height: auto; } .reduz .troca-tela { position: relative; } .reduz .troca-rotulo { cursor: pointer; }


.sensacao { background: var(--preto); color: var(--branco); padding: clamp(80px, 12vw, 160px) 0; overflow: hidden; }
.sensacao-frase { font: 400 var(--t1)/.95 var(--serif); text-transform: uppercase; color: #6f6b64; margin: 0; }
.sensacao-foto { width: min(78vw, 980px); margin: -12vh auto 0; position: relative; transform: translateY(calc((1 - var(--p, 1)) * 18vh)); }
.sensacao-texto { margin: 40px auto 0; max-width: 560px; color: #d6d1c8; }


.principios { padding: clamp(64px, 10vw, 140px) 0; }
.principios-grade { display: grid; gap: 40px 32px; grid-template-columns: 1fr; margin-top: 40px; }
@media (min-width: 760px) { .principios-grade { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1100px) { .principios-grade { grid-template-columns: repeat(3, 1fr); } }
.principio figure { margin: 0 0 16px; aspect-ratio: 4 / 5; overflow: hidden; }
.principio img { width: 100%; height: 100%; object-fit: cover; }
.principio h3 { font-size: var(--t3); }
.principio-sub { font: italic 400 1.05rem/1.3 var(--serif); color: var(--tinta-suave); margin: 0 0 .2em; }
.principio h3 em { font-style: italic; display: block; font-size: .7em; color: var(--tinta-suave); }


.retrato { position: relative; height: 100vh; height: 100svh; overflow: hidden; background: var(--preto); color: var(--branco); display: grid; place-items: center; text-align: center; }
.retrato img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: grayscale(1); opacity: .78; }
.retrato-texto { position: relative; z-index: 2; padding: 0 var(--gut); }
.retrato-texto .grande { font: italic 400 clamp(3rem, 11vw, 9rem)/1 var(--serif); margin: .2em 0 0; }


.sec { padding: clamp(64px, 10vw, 140px) 0; }
.sec.creme { background: var(--creme); } .sec.escuro, .escuro { background: var(--preto); color: var(--branco); }
.escuro .sobre-linha { color: var(--ouro-claro); } .escuro p { color: #dcd7cf; }
.cartoes { display: grid; gap: 24px; grid-template-columns: 1fr; margin-top: 32px; }
@media (min-width: 760px) { .cartoes.c2 { grid-template-columns: repeat(2, 1fr); } .cartoes.c3 { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1100px) { .cartoes.c4 { grid-template-columns: repeat(4, 1fr); } }
@media (min-width: 760px) and (max-width: 1099px) { .cartoes.c4 { grid-template-columns: repeat(2, 1fr); } }
.cartao { background: var(--branco); border: 1px solid #e2dbcf; padding: 28px; display: flex; flex-direction: column; gap: 10px; }
.escuro .cartao { background: var(--grafite); border-color: #2e2d2a; }
.cartao h3 { font-size: 1.5rem; margin: 0; }
.cartao .preco { font: 500 .95rem/1.4 var(--sans); color: var(--ouro); margin-top: auto; }
.escuro .cartao .preco { color: var(--ouro-claro); }
.ficha { display: grid; grid-template-columns: max-content 1fr; gap: 6px 18px; margin: 0; font-size: .95rem; }
.ficha dt { color: var(--tinta-suave); } .ficha dd { margin: 0; }
.escuro .ficha dt { color: var(--cinza-escuro); }
.servico { display: grid; gap: 24px; grid-template-columns: 1fr; padding: 40px 0; border-top: 1px solid #d8d0c3; }
@media (min-width: 900px) { .servico { grid-template-columns: 5fr 7fr; gap: 56px; } .servico:nth-child(even) .servico-foto { order: 2; } }
.servico-foto { margin: 0; aspect-ratio: 4 / 3; overflow: hidden; } .servico-foto img { width: 100%; height: 100%; object-fit: cover; }
.servico h3 { font-size: var(--t3); }
.etapas { list-style: none; margin: 32px 0 0; padding: 0; display: grid; gap: 0; counter-reset: et; }
.etapas li { counter-increment: et; display: grid; grid-template-columns: 3.2rem 1fr; gap: 6px 16px; padding: 22px 0; border-top: 1px solid #d8d0c3; }
.etapas li::before { content: counter(et, decimal-leading-zero); font: 400 1.6rem/1 var(--serif); color: var(--ouro); grid-row: span 3; }
.etapas h3 { font-size: 1.35rem; margin: 0; }
.etapas p { margin: 0; }
.etapas .prazo { font-size: .9rem; color: var(--tinta-suave); }
.escuro .etapas li { border-color: #2e2d2a; } .escuro .etapas .prazo { color: var(--cinza-escuro); }
.faq details { border-top: 1px solid #d8d0c3; padding: 4px 0; }
.faq summary { cursor: pointer; list-style: none; padding: 16px 32px 16px 0; font: 400 1.2rem/1.35 var(--serif); position: relative; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; position: absolute; right: 4px; top: 14px; font: 300 1.5rem/1 var(--sans); }
.faq details[open] summary::after { content: "–"; }
.faq .resp { padding: 0 0 18px; }
.aviso-legal { font-size: .88rem; color: var(--tinta-suave); border-left: 2px solid var(--ouro); padding-left: 12px; }


.lista-proj { display: grid; gap: 0; }
.proj-cheio { position: relative; display: block; height: 86vh; height: 86svh; overflow: hidden; color: var(--branco); text-decoration: none; }
.proj-cheio img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s cubic-bezier(.2,.7,.2,1); }
.proj-cheio:hover img { transform: scale(1.03); }
.proj-cheio::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 50%, rgba(0,0,0,.55)); }
.proj-cheio-texto { position: absolute; z-index: 2; left: var(--gut); right: var(--gut); bottom: 6vh; display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 8px 24px; }
.proj-cheio h2, .proj-cheio h3 { font-size: var(--t2); text-transform: uppercase; margin: 0; }
.filtros { display: flex; gap: 8px; flex-wrap: wrap; margin: 24px 0 32px; }
.filtros button { min-height: 44px; padding: 0 18px; border-radius: 999px; border: 1px solid #c9bfae; background: none; font: 500 .88rem/1 var(--sans); cursor: pointer; }
.filtros button[aria-pressed="true"] { background: var(--tinta); color: var(--branco); border-color: var(--tinta); }


.visor { background: var(--creme); min-height: 100vh; padding: calc(var(--topo-h) + 24px) var(--gut) 96px; display: grid; place-items: center; position: relative; }
.visor-foto { margin: 0; max-width: min(1100px, 100%); } .visor-foto img { max-height: 74vh; width: auto; margin: 0 auto; }
.visor-grade, .visor-ficha { display: none; width: 100%; max-width: 1100px; }
.visor[data-modo="grade"] .visor-palco, .visor[data-modo="ficha"] .visor-palco { display: none; }
.visor[data-modo="grade"] .visor-grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; }
.visor[data-modo="ficha"] .visor-ficha { display: grid; gap: 24px 64px; grid-template-columns: 1fr; }
@media (min-width: 900px) { .visor[data-modo="ficha"] .visor-ficha { grid-template-columns: 5fr 7fr; } }
.visor-grade button { padding: 0; border: 0; background: none; cursor: pointer; aspect-ratio: 4 / 3; overflow: hidden; }
.visor-grade img { width: 100%; height: 100%; object-fit: cover; }
.visor-palco { display: grid; gap: 14px; justify-items: center; }
.visor-setas { display: flex; gap: 14px; align-items: center; font-size: .9rem; }
.visor-setas button { width: 44px; height: 44px; border-radius: 50%; border: 1px solid #b9ae9c; background: none; cursor: pointer; }
.visor-barra { position: fixed; z-index: 40; left: 50%; bottom: 18px; transform: translateX(-50%); display: flex; gap: 6px; background: rgba(237,230,218,.95); padding: 6px; border-radius: 999px; border: 1px solid #d4c9b6; }
.visor-barra button, .visor-barra a { min-height: 40px; padding: 0 16px; border: 0; border-radius: 999px; background: none; font: 500 .85rem/40px var(--sans); text-decoration: none; color: var(--tinta); cursor: pointer; }
.visor-barra [aria-pressed="true"] { background: var(--tinta); color: var(--branco); }


.mapa { position: relative; background: var(--preto); color: var(--branco); }
.mapa-palco { position: relative; max-width: 1400px; margin: 0 auto; }
.mapa-quadro { position: relative; }
.mapa-quadro img { display: block; width: 100%; height: auto; }
.pino { position: absolute; transform: translate(-50%, -50%); width: 44px; height: 44px; border-radius: 50%; border: 0; background: none; cursor: pointer; display: grid; place-items: center; }
.pino::before { content: ""; width: 14px; height: 14px; border-radius: 50%; background: var(--ouro-claro); box-shadow: 0 0 0 6px rgba(205,182,138,.25); }
.pino.colecao::before { width: 20px; height: 20px; background: var(--branco); box-shadow: 0 0 0 8px rgba(255,255,255,.22); }
.pino[aria-pressed="true"]::before { background: var(--branco); box-shadow: 0 0 0 10px rgba(255,255,255,.3); }
.pino span { position: absolute; top: 40px; white-space: nowrap; font: 500 .72rem/1 var(--sans); letter-spacing: .1em; text-transform: uppercase; text-shadow: 0 1px 8px #000; }
.mapa-cartao { position: absolute; right: var(--gut); bottom: 24px; width: min(340px, calc(100% - 2 * var(--gut))); background: rgba(12,12,11,.92); border: 1px solid #34322e; padding: 22px; }
.mapa-cartao h3 { font-size: 1.4rem; } .mapa-cartao [data-min] { color: var(--ouro-claro); font-size: .9rem; display: block; margin-bottom: 8px; }
@media (max-width: 700px) { .pino span { display: none; } .mapa-cartao { position: static; width: auto; margin: 16px var(--gut) 0; } }
.distancias { columns: 2 260px; padding: 0; list-style: none; } .distancias li { break-inside: avoid; padding: 8px 0; border-bottom: 1px solid #2e2d2a; }


.agenda { background: var(--branco); color: var(--tinta); border: 1px solid #e0d8cb; padding: clamp(20px, 3vw, 36px); }
.ag-grupo { border: 0; margin: 0 0 22px; padding: 0; }
.ag-grupo legend { font: 400 1.3rem/1.3 var(--serif); margin-bottom: 10px; padding: 0; }
.ag-ops { display: flex; flex-wrap: wrap; gap: 8px; }
.ag-op { display: inline-flex; flex-direction: column; align-items: flex-start; gap: 2px; min-height: 48px; padding: 10px 16px; border: 1px solid #c9bfae; border-radius: 12px; background: none; font: 500 .95rem/1.2 var(--sans); color: var(--tinta); cursor: pointer; text-align: left; }
.ag-op small { font-weight: 400; font-size: .8rem; color: var(--tinta-suave); }
.ag-op.sel { background: var(--tinta); color: var(--branco); border-color: var(--tinta); } .ag-op.sel small { color: #d8d2c8; }
.ag-resumo { background: var(--creme); padding: 14px 16px; font-size: .95rem; margin: 6px 0 16px; }
.ag-ok { font-size: .95rem; color: var(--tinta-suave); }


.rodape { background: var(--preto); color: #d2cdc4; padding: 72px 0 120px; font-size: .95rem; }
.rodape-grade { display: grid; gap: 32px; grid-template-columns: 1fr; }
@media (min-width: 900px) { .rodape-grade { grid-template-columns: 2fr 1fr 1fr 1fr; } }
.rodape h2 { font: 400 1.1rem/1.2 var(--sans); letter-spacing: .2em; text-transform: uppercase; color: var(--branco); }
.rodape ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.rodape a { color: #f1ede6; }
.rodape-legal { border-top: 1px solid #2e2d2a; margin-top: 40px; padding-top: 20px; display: flex; flex-wrap: wrap; gap: 8px 24px; justify-content: space-between; color: #a7a196; }


.zap-fixo { position: fixed; z-index: 45; left: 12px; bottom: 12px; display: none; align-items: center; gap: 8px; min-height: 52px; padding: 0 18px; border-radius: 999px;
  background: #0b6e4f; color: #fff; text-decoration: none; font: 600 .95rem/1 var(--sans); box-shadow: 0 6px 20px rgba(0,0,0,.25); }
@media (max-width: 899px) { .zap-fixo { display: inline-flex; } }


.js .revela { opacity: 0; transform: translateY(28px); transition: opacity .9s, transform .9s cubic-bezier(.2,.7,.2,1); }
.js .revela.visto { opacity: 1; transform: none; }
.sem-imagem { background: linear-gradient(135deg, #2a2926, #4a463f); width: 100%; height: 100%; min-height: 200px; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  .js .revela { opacity: 1; transform: none; }
  .frente-foto > img, .frente-foto > video, .frente-titulo, .abertura-texto, .sensacao-foto { transform: none !important; }
}
