/* =========================================================
   CINESOUNDS — projetocinesounds.com.br
   Cinema que você ouve. Música que você vê.
   ========================================================= */

:root {
  --preto: #0a0706;
  --sala: #140d0b;
  --carvao: #1f1714;
  --veludo: #8b0000;
  --veludo-escuro: #4a0000;
  --vermelho: #d1121b;
  --dourado: #cda50f;
  --dourado-claro: #ffd700;
  --creme: #f4ead3;
  --papel: #efe2c2;
  --tinta: #1b1210;
  --cinza: #cccccc;
  --texto: #ede4d6;
  --texto-suave: #b5a796;

  --f-titulo: "Bebas Neue", Impact, sans-serif;
  --f-serifa: "Playfair Display", Georgia, serif;
  --f-texto: "Montserrat", system-ui, sans-serif;

  --largura: 1180px;
  --gutter: clamp(16px, 4vw, 40px);
  --topo: 72px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--preto);
  color: var(--texto);
  font-family: var(--f-texto);
  font-size: 16px;
  line-height: 1.65;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; display: block; }
a { color: var(--dourado-claro); }
h1, h2, h3, h4 { font-family: var(--f-titulo); font-weight: 400; letter-spacing: .03em; line-height: 1; margin: 0 0 .4em; }
p { margin: 0 0 1em; }
.container { width: 100%; max-width: var(--largura); margin: 0 auto; padding: 0 var(--gutter); }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* grão de película sobre tudo */
body::after {
  content: ""; position: fixed; inset: -50%; pointer-events: none; z-index: 999;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)' opacity='.5'/></svg>");
  opacity: .07; animation: grao 1s steps(4) infinite;
}
@keyframes grao { 0%{transform:translate(0,0)} 25%{transform:translate(-3%,2%)} 50%{transform:translate(2%,-3%)} 75%{transform:translate(-2%,-1%)} }

.rotulo {
  font-family: var(--f-texto); font-size: .72rem; font-weight: 700; letter-spacing: .32em;
  text-transform: uppercase; color: var(--dourado);
}
.titulo-secao { font-size: clamp(2.6rem, 7vw, 5rem); color: var(--creme); }
.titulo-secao em { font-family: var(--f-serifa); font-style: italic; font-size: .62em; color: var(--dourado-claro); letter-spacing: 0; display: block; margin-top: .2em; }
.lead { font-family: var(--f-serifa); font-size: clamp(1.15rem, 2.2vw, 1.45rem); line-height: 1.5; color: var(--creme); }

.btn {
  display: inline-flex; align-items: center; gap: .6em; padding: .95em 1.8em;
  font-family: var(--f-titulo); font-size: 1.25rem; letter-spacing: .12em; text-decoration: none;
  color: var(--tinta); background: linear-gradient(180deg, var(--dourado-claro), var(--dourado));
  border: 0; border-radius: 2px; cursor: pointer; transition: transform .2s, box-shadow .2s;
  box-shadow: 0 0 0 1px rgba(255,215,0,.4), 0 10px 30px -10px rgba(255,215,0,.5);
}
.btn:hover { transform: translateY(-2px); box-shadow: 0 0 0 1px var(--dourado-claro), 0 16px 40px -10px rgba(255,215,0,.7); }
.btn--contorno { background: transparent; color: var(--dourado-claro); box-shadow: inset 0 0 0 1px var(--dourado); }
.btn--contorno:hover { background: rgba(205,165,15,.12); }

/* ================= CABEÇALHO / PLACAS DE SINALIZAÇÃO ================= */
.topo {
  position: fixed; inset: 0 0 auto; z-index: 100; height: var(--topo);
  display: flex; align-items: center; justify-content: space-between; gap: 24px;
  padding: 0 var(--gutter);
  background: linear-gradient(180deg, rgba(10,7,6,.95), rgba(10,7,6,.75));
  backdrop-filter: blur(8px);
  border-bottom: 1px solid rgba(205,165,15,.25);
}
.topo__logo img { height: 30px; width: auto; }
.topo nav ul { list-style: none; display: flex; gap: 4px; margin: 0; padding: 0; }
.topo nav a {
  display: block; padding: 8px 12px; text-decoration: none; color: var(--texto);
  font-family: var(--f-titulo); font-size: 1.12rem; letter-spacing: .1em; line-height: 1.1; text-align: center;
  border: 1px solid transparent; border-radius: 2px; transition: .2s;
}
.topo nav a small { display: block; font-family: var(--f-texto); font-size: .55rem; letter-spacing: .25em; color: var(--texto-suave); text-transform: uppercase; }
.topo nav a:hover, .topo nav a[aria-current="page"] { color: var(--dourado-claro); border-color: rgba(205,165,15,.45); background: rgba(205,165,15,.06); }
.topo nav a.placa-vip { background: var(--veludo); border-color: var(--dourado); color: var(--creme); }
.topo nav a.placa-vip small { color: var(--dourado-claro); }
.topo nav a.placa-vip:hover { background: var(--vermelho); color: #fff; }
/* redes sociais entre a logo e o menu */
.topo .topo__redes { flex: 1 0 auto; flex-wrap: nowrap; gap: 8px; }
.topo .topo__redes:empty { display: none; }
.topo .topo__redes a { width: 34px; height: 34px; }
.topo .topo__redes svg { width: 15px; height: 15px; }
@media (max-width: 1240px) and (min-width: 1081px) { .topo { gap: 14px; } .topo nav a { padding: 8px 7px; font-size: .98rem; } .topo nav a small { letter-spacing: .15em; } }
.topo__logo { flex-shrink: 0; }
@media (max-width: 420px) {
  .topo { gap: 8px; }
  .topo__logo img { height: 20px; }
  .topo .topo__redes { gap: 4px; }
  .topo .topo__redes a { width: 26px; height: 26px; }
  .topo .topo__redes svg { width: 12px; height: 12px; }
  .menu-botao { font-size: 1rem; padding: 5px 10px; }
}
@media (max-width: 360px) { .topo__logo img { height: 18px; } .topo .topo__redes { gap: 3px; } .topo .topo__redes a { width: 24px; height: 24px; } }
.menu-botao { display: none; background: none; border: 1px solid var(--dourado); color: var(--dourado-claro); font-family: var(--f-titulo); font-size: 1.1rem; letter-spacing: .15em; padding: 6px 14px; cursor: pointer; }

@media (max-width: 1080px) {
  .menu-botao { display: block; }
  /* backdrop-filter prenderia o menu fixo dentro do cabeçalho */
  .topo { backdrop-filter: none; background: rgba(10,7,6,.97); }
  .topo nav {
    position: fixed; inset: var(--topo) 0 0 0; display: flex; align-items: center; justify-content: center;
    background: repeating-linear-gradient(90deg, #5a0000 0 18px, #7c0000 18px 30px, #4a0000 30px 44px);
    clip-path: inset(0 0 100% 0); transition: clip-path .6s cubic-bezier(.7,0,.2,1);
  }
  .topo nav.aberto { clip-path: inset(0 0 0 0); }
  .topo nav ul { flex-direction: column; gap: 10px; }
  .topo nav a { font-size: 1.8rem; background: rgba(10,7,6,.82); border-color: rgba(205,165,15,.4); min-width: 260px; }
}

/* ================= 1. FACHADA ================= */
.fachada {
  position: relative; min-height: 100svh; padding: calc(var(--topo) + 32px) var(--gutter) 48px;
  display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center;
  background:
    radial-gradient(ellipse 70% 45% at 50% 0%, rgba(255,215,0,.16), transparent 70%),
    linear-gradient(180deg, #1a0f0c 0%, #0a0706 70%);
  overflow: hidden;
}
/* frontão art déco */
.fachada::before {
  content: ""; position: absolute; inset: var(--topo) 0 auto; height: 100%;
  background:
    repeating-linear-gradient(90deg, transparent 0 calc(12.5% - 1px), rgba(205,165,15,.08) calc(12.5% - 1px) 12.5%),
    linear-gradient(180deg, transparent 60%, var(--preto));
  pointer-events: none;
}
.letreiro {
  position: relative; z-index: 1; width: min(920px, 100%);
  padding: clamp(22px, 4vw, 40px) clamp(18px, 4vw, 48px);
  background: linear-gradient(180deg, #2a1a12, #150c09);
  border: 3px solid var(--dourado);
  box-shadow: 0 0 0 8px #1a100b, 0 0 0 10px var(--dourado), 0 30px 80px -20px rgba(255,215,0,.35);
}
/* lâmpadas em perseguição */
.letreiro::before, .letreiro::after {
  content: ""; position: absolute; left: 10px; right: 10px; height: 10px;
  background: radial-gradient(circle, #fff6c4 0 2.5px, #ffcf3a 3px, transparent 5px) 0 0 / 22px 10px repeat-x;
  filter: drop-shadow(0 0 5px #ffcf3a);
  animation: lampadas 1.1s steps(2) infinite;
}
.letreiro::before { top: 8px; }
.letreiro::after { bottom: 8px; animation-delay: .55s; }
@keyframes lampadas { 50% { opacity: .35; } }
.letreiro__logo { width: min(620px, 92%); margin: 18px auto 18px; filter: drop-shadow(0 0 18px rgba(255,215,0,.25)); }
.letreiro__slogan { font-family: var(--f-serifa); font-style: italic; font-size: clamp(1.1rem, 2.6vw, 1.6rem); color: var(--dourado-claro); margin: 0 0 18px; }
.letreiro__quadro {
  display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 18px;
  margin: 0 auto 14px; padding: 12px 16px; max-width: 760px;
  background: #f7f1e1; color: #111; box-shadow: inset 0 0 0 2px #c8bc9c, inset 0 0 30px rgba(0,0,0,.15);
  font-family: var(--f-titulo); font-size: clamp(1.15rem, 3vw, 1.9rem); letter-spacing: .14em; line-height: 1.2;
}
.letreiro__quadro b { color: var(--veludo); font-weight: 400; }
.fachada__portas { position: relative; z-index: 1; margin-top: 36px; display: flex; flex-direction: column; align-items: center; gap: 14px; }
.fachada__portas .dica { font-size: .75rem; letter-spacing: .3em; text-transform: uppercase; color: var(--texto-suave); }
.seta { width: 24px; height: 38px; border: 2px solid var(--dourado); border-radius: 14px; position: relative; }
.seta::after { content: ""; position: absolute; left: 50%; top: 7px; width: 4px; height: 8px; margin-left: -2px; background: var(--dourado-claro); border-radius: 2px; animation: rolar 1.6s infinite; }
@keyframes rolar { 0% { opacity: 0; transform: translateY(0); } 40% { opacity: 1; } 100% { opacity: 0; transform: translateY(14px); } }

/* ================= 2. CORTINA ================= */
.cortina { position: relative; height: 220vh; background: var(--preto); }
.cortina__palco { position: sticky; top: 0; height: 100svh; overflow: hidden; display: grid; place-items: center; }
.cortina__tela {
  position: relative; width: min(1000px, 88vw); padding: clamp(28px, 5vw, 64px) clamp(20px, 5vw, 70px);
  text-align: center;
  background: radial-gradient(ellipse at 50% 40%, #2b211c, #120b09 75%);
  box-shadow: 0 0 120px rgba(255,236,190,.12), inset 0 0 80px rgba(0,0,0,.6);
  opacity: calc(.15 + var(--abertura, 0) * .85);
  transform: scale(calc(.92 + var(--abertura, 0) * .08));
}
.cortina__tela .lead { margin-bottom: .8em; }
.cortina__tela p:not(.lead) { color: var(--texto-suave); max-width: 640px; margin-left: auto; margin-right: auto; }
.cortina__bando {
  position: absolute; inset: 0 0 auto; height: 13vh; z-index: 3;
  background:
    radial-gradient(ellipse 60px 40px at 50% 100%, transparent 70%, rgba(0,0,0,.4) 72%) 0 0 / 120px 100% repeat-x,
    repeating-linear-gradient(90deg, #6d0000 0 30px, #9b0d0d 30px 45px, #5a0000 45px 70px);
  border-bottom: 6px solid var(--dourado);
  box-shadow: 0 12px 30px rgba(0,0,0,.7);
}
.cortina__bando::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -20px; height: 14px;
  background: radial-gradient(circle at 50% 0, var(--dourado) 0 5px, transparent 6px) 0 0 / 18px 14px repeat-x;
}
.cortina__pano {
  position: absolute; top: 0; bottom: 0; width: 51%; z-index: 2;
  background:
    linear-gradient(90deg, rgba(0,0,0,.55), transparent 15%, transparent 85%, rgba(0,0,0,.55)),
    repeating-linear-gradient(90deg, #4f0000 0, #8d0a0a 3.5%, #b31616 5%, #7a0000 7%, #4a0000 9%);
  box-shadow: 0 0 60px rgba(0,0,0,.9);
  transition: transform .1s linear;
}
.cortina__pano--esq { left: 0; transform-origin: top left; transform: translateX(calc(var(--abertura, 0) * -92%)) skewX(calc(var(--abertura, 0) * 4deg)); }
.cortina__pano--dir { right: 0; transform-origin: top right; transform: translateX(calc(var(--abertura, 0) * 92%)) skewX(calc(var(--abertura, 0) * -4deg)); }
.cortina__pano::after {
  content: ""; position: absolute; bottom: 0; left: 0; right: 0; height: 60px;
  background: linear-gradient(180deg, transparent, rgba(0,0,0,.5)), repeating-linear-gradient(90deg, var(--dourado) 0 3px, transparent 3px 9px);
  opacity: .35;
}

/* ================= 3. TAPETE VERMELHO ================= */
.tapete { position: relative; padding: 120px 0 140px; background: linear-gradient(180deg, var(--preto), #120807 30%, #0d0606); overflow: hidden; }
.tapete__chao {
  position: absolute; left: 50%; top: 0; bottom: 0; width: min(760px, 92vw); transform: translateX(-50%);
  clip-path: polygon(38% 0, 62% 0, 100% 100%, 0 100%);
  background:
    linear-gradient(180deg, rgba(0,0,0,.85), transparent 30%),
    repeating-linear-gradient(0deg, transparent 0 3px, rgba(0,0,0,.08) 3px 4px),
    linear-gradient(90deg, #6b0000, #b01010 30%, #c81919 50%, #b01010 70%, #6b0000);
}
.tapete__chao::before, .tapete__chao::after {
  content: ""; position: absolute; top: 0; bottom: 0; width: 6px; background: var(--dourado); opacity: .8;
}
.tapete__chao::before { left: 0; transform-origin: top; }
.tapete__cabecalho { position: relative; text-align: center; margin-bottom: 70px; }
.tapete__passos { position: relative; display: grid; gap: clamp(60px, 10vw, 110px); max-width: 980px; margin: 0 auto; }
.passo {
  position: relative; display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 40px;
  opacity: 0; transform: translateY(40px); transition: opacity .9s, transform .9s;
}
.passo.visivel { opacity: 1; transform: none; }
.passo__cartao {
  grid-column: 1; padding: 26px 28px; background: rgba(10,7,6,.88); border: 1px solid rgba(205,165,15,.35);
  box-shadow: 0 20px 50px -20px #000;
}
.passo:nth-child(even) .passo__cartao { grid-column: 2; }
.passo__cartao h3 { font-size: 2.2rem; color: var(--dourado-claro); }
.passo__cartao p { margin: 0; color: var(--texto); }
.passo__num { font-family: var(--f-serifa); font-style: italic; color: var(--dourado); font-size: .95rem; display: block; margin-bottom: 6px; }
/* pedestais com corda dourada */
.passo::before {
  content: ""; position: absolute; top: 50%; left: 50%; width: 56px; height: 56px; margin: -28px 0 0 -28px;
  border-radius: 50%; background: radial-gradient(circle at 35% 35%, #fff3a8, var(--dourado) 45%, #6b5200);
  box-shadow: 0 0 30px rgba(255,215,0,.4);
}
.passo::after {
  content: attr(data-icone); position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
  font-size: 1.4rem; line-height: 1;
}
@media (max-width: 720px) {
  .passo { grid-template-columns: 1fr; }
  .passo__cartao, .passo:nth-child(even) .passo__cartao { grid-column: 1; }
  .passo::before, .passo::after { display: none; }
}

/* ================= 4. BILHETERIA / EM CARTAZ ================= */
.bilheteria { position: relative; padding: 110px 0 120px; background: radial-gradient(ellipse 80% 50% at 50% 0%, rgba(139,0,0,.35), transparent 70%), var(--preto); }
.guiche {
  position: relative; max-width: 1180px; margin: 0 auto; padding: 0 0 60px;
  border: 2px solid var(--dourado); border-top: 0;
  background: linear-gradient(180deg, #1c120e, #0d0807);
  box-shadow: 0 40px 120px -40px rgba(0,0,0,.9);
}
.guiche__placa {
  position: relative; margin: 0 -2px 46px; padding: 22px 16px 18px; text-align: center;
  background: linear-gradient(180deg, var(--veludo), var(--veludo-escuro));
  border: 2px solid var(--dourado);
}
.guiche__placa h2 { margin: 0; font-size: clamp(3rem, 9vw, 6.2rem); color: var(--creme); letter-spacing: .18em; text-shadow: 0 0 22px rgba(255,215,0,.35); }
.guiche__placa .rotulo { color: var(--dourado-claro); }
.guiche__placa::before, .guiche__placa::after {
  content: ""; position: absolute; left: 10px; right: 10px; height: 8px;
  background: radial-gradient(circle, #fff6c4 0 2px, #ffcf3a 2.5px, transparent 4px) 0 0 / 18px 8px repeat-x;
  animation: lampadas 1.1s steps(2) infinite;
}
.guiche__placa::before { top: 4px; } .guiche__placa::after { bottom: 4px; animation-delay: .55s; }
.guiche__intro { text-align: center; max-width: 640px; margin: 0 auto 48px; padding: 0 var(--gutter); }
.guiche__intro h3 { font-size: clamp(2rem, 5vw, 3rem); color: var(--dourado-claro); }
.guiche__vidro {
  margin: 0 clamp(12px, 3vw, 40px); padding: clamp(24px, 4vw, 48px) clamp(10px, 2vw, 28px);
  border: 1px solid rgba(205,165,15,.35); border-radius: 120px 120px 6px 6px / 60px 60px 6px 6px;
  background: linear-gradient(160deg, rgba(255,255,255,.05), rgba(255,255,255,0) 40%), rgba(0,0,0,.35);
}
/* todos os ingressos do mesmo tamanho, qualquer que seja o texto: 3 por fileira (cada um ocupa 2 de 6 colunas),
   fileiras de altura igual, e os que sobram na última fileira ficam centralizados */
.ingressos { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); grid-auto-rows: 1fr; gap: clamp(30px, 3.5vw, 46px) clamp(18px, 2.5vw, 34px); perspective: 1400px; }
.ingressos > .ingresso { grid-column: span 2; }
.ingressos > .ingresso:last-child:nth-child(3n+1) { grid-column: 3 / span 2; }
.ingressos > .ingresso:nth-last-child(2):nth-child(3n+1) { grid-column: 2 / span 2; }
@media (max-width: 980px) {
  .ingressos { grid-template-columns: minmax(0, 1fr); max-width: 460px; margin: 0 auto; }
  .ingressos > .ingresso, .ingressos > .ingresso:last-child:nth-child(3n+1), .ingressos > .ingresso:nth-last-child(2):nth-child(3n+1) { grid-column: auto; }
}

/* ----- ingresso 3D com canhoto serrilhado ----- */
.ingresso {
  --rx: 0deg; --ry: 0deg; --cor: var(--veludo); --brilho: 50%;
  position: relative; display: flex; flex-direction: column; text-decoration: none; color: var(--tinta);
  transform-style: preserve-3d; transform: rotateX(var(--rx)) rotateY(var(--ry));
  transition: transform .25s ease-out, filter .3s;
  filter: drop-shadow(0 26px 30px rgba(0,0,0,.6));
  animation: flutuar 6s ease-in-out infinite;
}
.ingresso:nth-child(3n+2) { animation-delay: -2s; }
.ingresso:nth-child(3n) { animation-delay: -4s; }
@keyframes flutuar { 50% { translate: 0 -8px; } }
.ingresso:hover, .ingresso:focus-visible { animation-play-state: paused; filter: drop-shadow(0 34px 40px rgba(0,0,0,.7)) drop-shadow(0 0 22px rgba(255,215,0,.25)); }
.ingresso:focus-visible { outline: 2px solid var(--dourado-claro); outline-offset: 6px; }

.ingresso__corpo, .ingresso__canhoto {
  position: relative; background-color: var(--papel);
  background-image:
    linear-gradient(115deg, transparent 30%, rgba(255,255,255,.55) var(--brilho), transparent calc(var(--brilho) + 18%)),
    repeating-linear-gradient(0deg, transparent 0 22px, rgba(0,0,0,.025) 22px 23px);
}
/* bordas laterais serrilhadas */
.ingresso__corpo, .ingresso__canhoto {
  -webkit-mask: radial-gradient(circle 7px at 0 50%, #0000 98%, #000) 0 0 / 51% 18px repeat-y, radial-gradient(circle 7px at 100% 50%, #0000 98%, #000) 100% 0 / 51% 18px repeat-y;
          mask: radial-gradient(circle 7px at 0 50%, #0000 98%, #000) 0 0 / 51% 18px repeat-y, radial-gradient(circle 7px at 100% 50%, #0000 98%, #000) 100% 0 / 51% 18px repeat-y;
}
.ingresso__corpo { flex: 1; display: flex; flex-direction: column; padding: 26px 30px 22px; border-radius: 4px 4px 0 0; transform: translateZ(20px); }
.ingresso__faixa {
  display: flex; justify-content: space-between; align-items: center; margin: -26px -30px 18px; padding: 10px 30px;
  background: var(--cor); color: var(--creme);
  font-family: var(--f-titulo); letter-spacing: .2em; font-size: 1rem;
}
.ingresso__faixa span:last-child { color: var(--dourado-claro); }
.ingresso__marca { font-family: var(--f-titulo); font-size: 1rem; letter-spacing: .3em; color: var(--cor); }
.ingresso__titulo { font-family: var(--f-titulo); font-size: clamp(2.5rem, 4.4vw, 3.4rem); line-height: .9; margin: 2px 0 10px; color: var(--tinta); }
.ingresso__titulo small { display: block; font-size: .42em; letter-spacing: .3em; color: var(--cor); }
.ingresso__sinopse { font-family: var(--f-serifa); font-style: italic; font-size: .98rem; line-height: 1.45; color: #3b2a22; margin: 0 0 16px; min-height: 4.4em; flex: 1; }
.ingresso__dados { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; border-top: 1px dashed rgba(0,0,0,.3); padding-top: 12px; }
.ingresso__dados div { font-size: .62rem; letter-spacing: .18em; text-transform: uppercase; color: #6b5a4e; }
.ingresso__dados b { display: block; font-family: var(--f-titulo); font-size: 1.4rem; font-weight: 400; letter-spacing: .06em; color: var(--tinta); }
/* picote entre corpo e canhoto */
.ingresso__canhoto {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 16px 30px 18px; border-radius: 0 0 4px 4px;
  transform: translateZ(20px);
  border-top: 3px dotted rgba(27,18,16,.45);
  transition: transform .45s cubic-bezier(.5,-0.3,.4,1.4);
  transform-origin: 0 0;
}
.ingresso__canhoto::before, .ingresso__canhoto::after {
  content: ""; position: absolute; top: -10px; width: 18px; height: 18px; border-radius: 50%; background: var(--preto);
}
.ingresso__canhoto::before { left: -9px; } .ingresso__canhoto::after { right: -9px; }
.ingresso__admit { white-space: nowrap; font-family: var(--f-titulo); font-size: 1.3rem; letter-spacing: .14em; color: var(--cor); line-height: 1; }
.ingresso__admit small { display: block; font-family: var(--f-texto); font-size: .6rem; letter-spacing: .25em; color: #6b5a4e; }
.ingresso__admit { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.ingresso__codigo { flex: 0 1 110px; min-width: 44px; height: 34px; background: repeating-linear-gradient(90deg, var(--tinta) 0 2px, transparent 2px 4px, var(--tinta) 4px 5px, transparent 5px 8px, var(--tinta) 8px 11px, transparent 11px 12px); opacity: .85; }
.ingresso:hover .ingresso__canhoto, .ingresso:focus-visible .ingresso__canhoto { transform: translateZ(20px) translateY(6px) rotate(2.5deg); }
.ingresso.rasgando .ingresso__canhoto { transform: translateZ(20px) translate(30px, 80px) rotate(18deg); opacity: 0; transition: transform .6s cubic-bezier(.6,0,.8,.6), opacity .6s .1s; }
.ingresso__cta { position: absolute; right: 18px; top: 52px; font-family: var(--f-titulo); font-size: .95rem; letter-spacing: .18em; color: var(--cor); border: 2px solid var(--cor); padding: 4px 10px 2px; transform: rotate(-8deg); opacity: .8; }

.ingresso--history { --cor: #8b0000; }
.ingresso--queen { --cor: #7a5b00; }
.ingresso--geek { --cor: #00a884; }

/* ================= 5. ESPAÇOS DO CINEMA (atalhos) ================= */
.espacos { padding: 110px 0; background: linear-gradient(180deg, var(--preto), var(--sala)); }
.espacos__cabecalho { text-align: center; margin-bottom: 50px; }
.espacos__grade { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr)); gap: 18px; }
.espaco {
  position: relative; display: flex; flex-direction: column; justify-content: flex-end; min-height: 280px; padding: 24px;
  text-decoration: none; color: var(--texto); overflow: hidden;
  border: 1px solid rgba(205,165,15,.3); background: var(--carvao);
  transition: transform .3s, border-color .3s;
}
.espaco:hover { transform: translateY(-6px); border-color: var(--dourado-claro); }
.espaco__icone { position: absolute; top: 20px; right: 22px; font-size: 2.6rem; opacity: .9; transition: transform .4s; }
.espaco:hover .espaco__icone { transform: scale(1.15) rotate(-6deg); }
.espaco h3 { font-size: 2rem; color: var(--dourado-claro); margin-bottom: .2em; }
.espaco p { font-size: .9rem; color: var(--texto-suave); margin: 0; }
.espaco .rotulo { margin-bottom: 8px; }
.espaco--bomboniere { background: linear-gradient(180deg, rgba(10,7,6,.2), rgba(10,7,6,.95) 70%), repeating-linear-gradient(90deg, #b31616 0 26px, #f4ead3 26px 52px); }
.espaco--camarim { background: radial-gradient(circle at 20% 18%, rgba(255,230,160,.35) 0 4px, transparent 5px) 0 0 / 46px 46px, linear-gradient(180deg, #2b1e17, #120b09); }
.espaco--cabine { background: conic-gradient(from 200deg at 85% 15%, transparent 0 20deg, rgba(255,240,200,.18) 20deg 40deg, transparent 40deg), linear-gradient(180deg, #17110e, #0a0706); }
.espaco--imprensa { background: repeating-linear-gradient(0deg, rgba(244,234,211,.05) 0 2px, transparent 2px 14px), linear-gradient(180deg, #1d1814, #0d0a08); }
.espaco--vip { background: radial-gradient(ellipse at 50% 120%, rgba(139,0,0,.8), transparent 70%), #120807; }

/* ================= CRÉDITOS FINAIS (rodapé) ================= */
.creditos { padding: 80px 0 40px; background: #050303; border-top: 1px solid rgba(205,165,15,.25); text-align: center; }
.creditos__logo { width: 220px; margin: 0 auto 18px; opacity: .9; }
.creditos__slogan { font-family: var(--f-serifa); font-style: italic; color: var(--dourado-claro); font-size: 1.15rem; }
.creditos__nav { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 22px; list-style: none; padding: 0; margin: 28px 0; }
.creditos__nav a { color: var(--texto-suave); text-decoration: none; font-family: var(--f-titulo); letter-spacing: .14em; font-size: 1.05rem; }
.creditos__nav a:hover { color: var(--dourado-claro); }
.redes { display: flex; justify-content: center; gap: 10px; flex-wrap: wrap; }
.redes a { display: inline-grid; place-items: center; width: 42px; height: 42px; border: 1px solid rgba(205,165,15,.4); border-radius: 50%; color: var(--dourado-claro); text-decoration: none; transition: .2s; }
.redes a:hover { background: var(--dourado); color: var(--tinta); }
.redes svg { width: 18px; height: 18px; fill: currentColor; }
.creditos__fim { margin-top: 36px; font-size: .75rem; letter-spacing: .2em; color: #7d6f62; text-transform: uppercase; }

/* ================= PÁGINAS INTERNAS ================= */
.pagina-topo {
  position: relative; padding: calc(var(--topo) + 70px) 0 70px; text-align: center; overflow: hidden;
  background: radial-gradient(ellipse 70% 60% at 50% 0%, rgba(139,0,0,.45), transparent 70%), var(--preto);
  border-bottom: 1px solid rgba(205,165,15,.2);
}
.pagina-topo .lead { max-width: 720px; margin: 14px auto 0; }
.secao { padding: 90px 0; }
.secao--escura { background: var(--sala); }
.voltar { display: inline-flex; align-items: center; gap: 8px; font-size: .75rem; letter-spacing: .25em; text-transform: uppercase; color: var(--texto-suave); text-decoration: none; margin-bottom: 26px; }
.voltar:hover { color: var(--dourado-claro); }

/* ---- páginas de projeto (cartaz) ---- */
.projeto-hero {
  position: relative; padding: calc(var(--topo) + 50px) 0 80px; overflow: hidden;
  background: radial-gradient(ellipse 60% 70% at 70% 30%, color-mix(in srgb, var(--cor) 60%, transparent), transparent 70%), var(--preto);
}
.projeto-hero__grade { display: grid; grid-template-columns: 1.2fr .8fr; gap: 60px; align-items: center; }
@media (max-width: 900px) { .projeto-hero__grade { grid-template-columns: 1fr; } }
.projeto-hero h1 { font-size: clamp(3.6rem, 11vw, 8rem); color: var(--creme); line-height: .85; }
.projeto-hero h1 small { display: block; font-size: .3em; letter-spacing: .4em; color: var(--dourado-claro); margin-bottom: .4em; }
.projeto-hero .lead { margin: 20px 0 30px; }
.projeto-hero .acoes { display: flex; flex-wrap: wrap; gap: 12px; }
.cartaz {
  position: relative; aspect-ratio: 2 / 3; max-width: 380px; width: 100%; margin: 0 auto; padding: 28px;
  display: flex; flex-direction: column; justify-content: space-between; text-align: center;
  background: linear-gradient(180deg, color-mix(in srgb, var(--cor) 85%, #000), #0a0706 85%);
  border: 10px solid #1a120d; outline: 2px solid var(--dourado); outline-offset: -18px;
  box-shadow: 0 40px 80px -20px #000, 0 0 60px color-mix(in srgb, var(--cor) 50%, transparent);
}
.cartaz__topo { font-size: .7rem; letter-spacing: .35em; text-transform: uppercase; color: var(--dourado-claro); }
.cartaz__icone { font-size: clamp(5rem, 14vw, 8rem); line-height: 1; filter: drop-shadow(0 0 30px rgba(255,215,0,.35)); }
.cartaz__imagem { width: 100%; flex: 1; min-height: 0; object-fit: cover; margin: 14px 0; }
.cartaz__titulo { font-family: var(--f-titulo); font-size: clamp(2.4rem, 6vw, 3.4rem); line-height: .9; color: var(--creme); }
.cartaz__creditos { font-family: var(--f-titulo); font-size: .78rem; letter-spacing: .12em; color: var(--texto-suave); line-height: 1.3; border-top: 1px solid rgba(205,165,15,.3); padding-top: 10px; }
.cartaz__creditos img { width: 120px; margin: 8px auto 0; }

.duas-colunas { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: start; }
@media (max-width: 860px) { .duas-colunas { grid-template-columns: 1fr; gap: 36px; } }

.ficha { list-style: none; margin: 0; padding: 0; border: 1px solid rgba(205,165,15,.3); }
.ficha li { display: grid; grid-template-columns: 140px 1fr; gap: 16px; padding: 14px 20px; border-bottom: 1px solid rgba(205,165,15,.15); }
.ficha li:last-child { border-bottom: 0; }
.ficha span { font-size: .7rem; letter-spacing: .25em; text-transform: uppercase; color: var(--dourado); padding-top: 3px; }
@media (max-width: 520px) { .ficha li { grid-template-columns: 1fr; gap: 2px; } }

/* rolo de filme / linha do tempo */
.rolo { position: relative; display: grid; gap: 0; margin-top: 40px; }
.cena {
  position: relative; display: grid; grid-template-columns: 110px 1fr; gap: 24px; padding: 26px 0 26px 0;
  border-top: 1px solid rgba(205,165,15,.15);
}
.cena__tempo { font-family: var(--f-titulo); font-size: 2.2rem; color: var(--dourado-claro); line-height: 1; }
.cena__tempo small { display: block; font-family: var(--f-texto); font-size: .62rem; letter-spacing: .25em; color: var(--texto-suave); margin-top: 6px; }
.cena h3 { font-size: 1.7rem; color: var(--creme); margin-bottom: .25em; }
.cena p { color: var(--texto-suave); margin: 0; }
.cena .trilhas { margin-top: 8px; font-family: var(--f-serifa); font-style: italic; color: var(--texto); font-size: .95rem; }
@media (max-width: 560px) { .cena { grid-template-columns: 1fr; gap: 6px; } }

.pelicula {
  height: 34px; border-top: 1px solid #2a1f1a; border-bottom: 1px solid #2a1f1a;
  background: #0d0908 repeating-linear-gradient(90deg, transparent 0 8px, #3a2c24 8px 22px, transparent 22px 30px) 0 11px / 100% 12px no-repeat;
}

.galeria { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(220px, 100%), 1fr)); gap: 12px; }
.galeria__item {
  aspect-ratio: 4 / 3; display: grid; place-items: center; text-align: center; padding: 16px;
  background: repeating-linear-gradient(45deg, #17100d 0 12px, #1d1411 12px 24px); border: 1px dashed rgba(205,165,15,.3);
  color: var(--texto-suave); font-size: .75rem; letter-spacing: .2em; text-transform: uppercase;
}
.galeria__item img { width: 100%; height: 100%; object-fit: cover; }
.galeria__item--foto { position: relative; margin: 0; padding: 0; border: 0; overflow: hidden; }
.galeria__item--foto figcaption { position: absolute; inset: auto 0 0; padding: 22px 12px 10px; background: linear-gradient(transparent, rgba(0,0,0,.85)); color: var(--creme); text-transform: none; letter-spacing: .02em; font-size: .8rem; text-align: left; }

.faixa-cta { padding: 80px 0; text-align: center; background: linear-gradient(90deg, var(--veludo-escuro), var(--veludo), var(--veludo-escuro)); border-top: 2px solid var(--dourado); border-bottom: 2px solid var(--dourado); }
.faixa-cta h2 { font-size: clamp(2.4rem, 6vw, 4rem); color: var(--creme); }
.faixa-cta p { color: var(--creme); opacity: .85; max-width: 600px; margin: 0 auto 26px; }

.outras-sessoes { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr)); gap: 16px; }
.mini-ingresso {
  display: flex; justify-content: space-between; align-items: center; gap: 14px; padding: 18px 22px;
  background: var(--papel); color: var(--tinta); text-decoration: none; border-left: 8px solid var(--cor, var(--veludo));
  font-family: var(--f-titulo); font-size: 1.6rem; letter-spacing: .06em; transition: transform .2s;
  -webkit-mask: radial-gradient(circle 9px at 100% 50%, #0000 98%, #000); mask: radial-gradient(circle 9px at 100% 50%, #0000 98%, #000);
}
.mini-ingresso small { display: block; font-family: var(--f-texto); font-size: .6rem; letter-spacing: .25em; color: #6b5a4e; }
.mini-ingresso:hover { transform: translateX(6px); }

/* ================= BOMBONIERE (shop) ================= */
.bomboniere { position: relative; padding-top: var(--topo); background: #1a0b08; }
.bomboniere__toldo {
  height: 70px; position: relative;
  background: repeating-linear-gradient(90deg, #c4161c 0 48px, #f6ecd6 48px 96px);
  box-shadow: 0 14px 24px rgba(0,0,0,.55);
}
.bomboniere__toldo::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -22px; height: 24px;
  background:
    radial-gradient(circle at 24px 0, #c4161c 0 24px, transparent 25px) 0 0 / 96px 24px repeat-x,
    radial-gradient(circle at 72px 0, #f6ecd6 0 24px, transparent 25px) 0 0 / 96px 24px repeat-x;
}
.bomboniere__parede {
  padding: 70px 0 30px; text-align: center;
  background:
    radial-gradient(ellipse 60% 80% at 50% 0%, rgba(255,215,0,.18), transparent 70%),
    repeating-linear-gradient(90deg, rgba(0,0,0,.25) 0 2px, transparent 2px 80px),
    linear-gradient(180deg, #3a1610, #1a0b08);
}
.cardapio {
  display: inline-grid; grid-template-columns: repeat(3, auto); gap: 4px 34px; margin-top: 26px; padding: 18px 30px;
  background: #0f0a08; border: 3px solid var(--dourado); box-shadow: 0 0 30px rgba(255,215,0,.2);
  font-family: var(--f-titulo); letter-spacing: .12em; font-size: 1.25rem; text-align: left;
}
.cardapio span { color: #ffd34d; text-shadow: 0 0 10px rgba(255,200,0,.6); }
.cardapio em { font-style: normal; color: var(--creme); }
@media (max-width: 640px) { .cardapio { grid-template-columns: 1fr; } }
.balcao { position: relative; padding: 40px 0 0; background: linear-gradient(180deg, #1a0b08, #120705); }
.vitrine {
  position: relative; padding: 34px clamp(14px, 3vw, 34px) 28px;
  background: linear-gradient(180deg, rgba(255,255,255,.07), rgba(255,255,255,.02) 30%, rgba(255,255,255,.05));
  border: 2px solid rgba(205,165,15,.55); border-bottom: 0; border-radius: 10px 10px 0 0;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.25), inset 0 0 60px rgba(255,236,190,.06);
}
.vitrine::before { content: ""; position: absolute; inset: 0; background: linear-gradient(120deg, transparent 20%, rgba(255,255,255,.06) 28%, transparent 34%); pointer-events: none; }
.prateleira { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(230px, 100%), 1fr)); gap: 26px 20px; }
.produto {
  position: relative; display: flex; flex-direction: column; background: #f6ecd6; color: var(--tinta); border-radius: 4px; overflow: hidden;
  box-shadow: 0 14px 0 -6px rgba(205,165,15,.4), 0 24px 30px -12px #000; transition: transform .25s;
}
.produto:hover { transform: translateY(-6px) rotate(-.6deg); }
.produto__foto { aspect-ratio: 1; background: #fff; display: grid; place-items: center; overflow: hidden; }
.produto__foto img { width: 100%; height: 100%; object-fit: contain; }
.produto__foto--vazio { background: repeating-linear-gradient(90deg, #c4161c 0 22px, #f6ecd6 22px 44px); font-size: 4rem; }
.produto__info { padding: 16px 18px 18px; display: flex; flex-direction: column; gap: 6px; flex: 1; }
.produto__info h3 { font-size: 1.55rem; margin: 0; color: var(--tinta); }
.produto__info p { font-size: .82rem; color: #5b4a3e; margin: 0; flex: 1; }
.produto__preco { font-family: var(--f-titulo); font-size: 1.6rem; color: var(--veludo); }
.produto .btn { justify-content: center; font-size: 1.05rem; padding: .7em 1em; }
.produto .btn[aria-disabled="true"] { background: #b9ad97; box-shadow: none; pointer-events: none; color: #5b4a3e; }
.produto__selo { position: absolute; top: 12px; left: -34px; transform: rotate(-35deg); background: var(--vermelho); color: #fff; padding: 4px 40px; font-family: var(--f-titulo); letter-spacing: .15em; font-size: .9rem; }
.balcao__frente { height: 90px; background: linear-gradient(180deg, var(--dourado) 0 6px, #5a0b07 6px, #2e0503); box-shadow: inset 0 10px 20px rgba(0,0,0,.5); }
.balcao__frente::after { content: ""; display: block; height: 100%; background: repeating-linear-gradient(90deg, transparent 0 110px, rgba(205,165,15,.25) 110px 112px); }

/* ================= CAMARIM (artistas) ================= */
.camarim { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(300px, 100%), 1fr)); gap: 40px 30px; }
.artista { display: flex; flex-direction: column; }
.espelho {
  position: relative; padding: 22px; background: #2a1d16; border-radius: 6px;
  box-shadow: inset 0 0 0 2px #4a3426, 0 20px 40px -18px #000;
}
.espelho::before, .espelho::after {
  content: ""; position: absolute; top: 18px; bottom: 18px; width: 14px;
  background: radial-gradient(circle, #fff8d8 0 4px, #ffd36b 5px, rgba(255,211,107,.3) 7px, transparent 9px) 50% 0 / 14px 44px repeat-y;
  filter: drop-shadow(0 0 6px #ffcf5a);
}
.espelho::before { left: 4px; } .espelho::after { right: 4px; }
.espelho__vidro { aspect-ratio: 4 / 5; overflow: hidden; background: linear-gradient(135deg, #3b2f28, #17110e); border: 2px solid #6b5444; display: grid; place-items: center; }
.espelho__vidro img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.9) contrast(1.05); transition: transform .6s; }
.artista:hover .espelho__vidro img { transform: scale(1.04); }
.espelho__vidro span { font-family: var(--f-titulo); font-size: 4rem; color: rgba(244,234,211,.25); }
.artista__info { padding: 20px 4px 0; }
.artista__funcao { font-size: .7rem; letter-spacing: .3em; text-transform: uppercase; color: var(--dourado); }
.artista__info h3 { font-size: 2.3rem; color: var(--creme); margin: 4px 0 8px; }
.artista__info p { color: var(--texto-suave); font-size: .92rem; }
.artista__projetos { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.artista__projetos span { font-size: .62rem; letter-spacing: .2em; text-transform: uppercase; padding: 3px 9px; border: 1px solid rgba(205,165,15,.4); color: var(--dourado-claro); }
.artista .redes { justify-content: flex-start; }

/* ================= CABINE (rádio) ================= */
.cabine-hero { position: relative; overflow: hidden; }
.feixe { position: absolute; top: 40px; left: 50%; width: 140vw; height: 120%; transform: translateX(-50%); pointer-events: none;
  background: conic-gradient(from 165deg at 50% 0%, transparent 0deg, rgba(255,240,200,.10) 12deg, rgba(255,240,200,.18) 15deg, rgba(255,240,200,.10) 18deg, transparent 30deg);
  animation: feixe 4s ease-in-out infinite alternate; }
@keyframes feixe { to { opacity: .55; } }
.bobinas { display: flex; justify-content: center; gap: 30px; margin-bottom: 20px; }
.bobina { width: 84px; height: 84px; border-radius: 50%; animation: girar 4s linear infinite;
  background: radial-gradient(circle, #0a0706 0 8px, #8d7a5e 9px 12px, transparent 13px), conic-gradient(#3a2c22 0 50deg, #8d7a5e 50deg 70deg, #3a2c22 70deg 170deg, #8d7a5e 170deg 190deg, #3a2c22 190deg 290deg, #8d7a5e 290deg 310deg, #3a2c22 310deg);
  box-shadow: 0 0 0 4px #8d7a5e, 0 0 0 6px #1a120d; }
.bobina:nth-child(2) { animation-duration: 3s; }
@keyframes girar { to { transform: rotate(360deg); } }
.playlists { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(320px, 100%), 1fr)); gap: 26px; }
@media (max-width: 400px) { .playlists { grid-template-columns: 1fr; } }
.playlist { background: var(--carvao); border: 1px solid rgba(205,165,15,.25); padding: 22px; }
.playlist h3 { font-size: 1.9rem; color: var(--dourado-claro); margin-bottom: 4px; }
.playlist p { color: var(--texto-suave); font-size: .9rem; }
.playlist iframe { width: 100%; height: 352px; border: 0; border-radius: 12px; margin-top: 8px; }
.playlist__vazia { height: 200px; display: grid; place-items: center; text-align: center; border: 1px dashed rgba(205,165,15,.35); color: var(--texto-suave); font-size: .8rem; letter-spacing: .2em; text-transform: uppercase; padding: 16px; }
.no-ar { display: inline-flex; align-items: center; gap: 10px; padding: 6px 16px; border: 2px solid var(--vermelho); color: #ff4d55; font-family: var(--f-titulo); letter-spacing: .3em; font-size: 1.1rem; margin-bottom: 18px; }
.no-ar::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: #ff2a33; box-shadow: 0 0 10px #ff2a33; animation: lampadas 1.2s infinite; }

/* ================= SALA DE IMPRENSA (editorial) ================= */
.filtros { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-bottom: 40px; }
.filtros button { background: transparent; border: 1px solid rgba(205,165,15,.4); color: var(--texto); font-family: var(--f-titulo); font-size: 1.1rem; letter-spacing: .14em; padding: 8px 18px; cursor: pointer; }
.filtros button[aria-pressed="true"], .filtros button:hover { background: var(--dourado); color: var(--tinta); }
.jornal { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(300px, 100%), 1fr)); gap: 26px; }
.materia-card { display: flex; flex-direction: column; background: var(--papel); color: var(--tinta); text-decoration: none; transition: transform .25s; }
.materia-card:hover { transform: translateY(-5px); }
.materia-card__capa { aspect-ratio: 16 / 9; background: linear-gradient(135deg, var(--veludo), #1a0b08); display: grid; place-items: center; font-size: 3rem; overflow: hidden; }
.materia-card__capa img { width: 100%; height: 100%; object-fit: cover; }
.materia-card__corpo { padding: 20px 22px 24px; }
.materia-card__cat { font-size: .65rem; letter-spacing: .3em; text-transform: uppercase; color: var(--veludo); font-weight: 700; }
.materia-card h3 { font-family: var(--f-serifa); font-weight: 700; font-size: 1.45rem; line-height: 1.2; letter-spacing: 0; margin: 8px 0 10px; color: var(--tinta); }
.materia-card p { font-size: .88rem; color: #4d3d33; margin: 0 0 10px; }
.materia-card time { font-size: .72rem; color: #7d6a5c; letter-spacing: .1em; }
.materia-card--destaque { grid-column: 1 / -1; display: grid; grid-template-columns: 1.3fr 1fr; }
.materia-card--destaque .materia-card__capa { aspect-ratio: auto; min-height: 280px; }
.materia-card--destaque h3 { font-size: clamp(1.7rem, 3vw, 2.4rem); }
@media (max-width: 760px) { .materia-card--destaque { grid-template-columns: 1fr; } .materia-card--destaque .materia-card__capa { min-height: 200px; } }

.artigo { max-width: 760px; margin: 0 auto; }
.artigo__cabecalho { text-align: center; margin-bottom: 40px; }
.artigo__cabecalho h1 { font-family: var(--f-serifa); font-weight: 700; font-size: clamp(2rem, 5vw, 3.2rem); line-height: 1.15; letter-spacing: 0; color: var(--creme); margin: 12px 0 14px; }
.artigo__meta { font-size: .8rem; color: var(--texto-suave); letter-spacing: .1em; }
.artigo__capa { margin: 0 0 36px; aspect-ratio: 16 / 9; background: linear-gradient(135deg, var(--veludo), #1a0b08); display: grid; place-items: center; font-size: 5rem; }
.artigo__capa img { width: 100%; height: 100%; object-fit: cover; }
.artigo__texto { font-family: var(--f-serifa); font-size: 1.15rem; line-height: 1.8; color: var(--texto); }
.artigo__texto p:first-of-type::first-letter { float: left; font-family: var(--f-titulo); font-size: 4.4rem; line-height: .85; padding: 6px 10px 0 0; color: var(--dourado-claro); }
.artigo__texto h2 { font-family: var(--f-titulo); font-size: 2.1rem; color: var(--dourado-claro); margin-top: 1.4em; }
.artigo__texto blockquote { margin: 1.6em 0; padding: 4px 0 4px 22px; border-left: 3px solid var(--dourado); font-style: italic; color: var(--creme); }
.ficha-filme { margin: 28px 0; padding: 20px 24px; background: var(--carvao); border: 1px solid rgba(205,165,15,.3); font-family: var(--f-texto); font-size: .9rem; }
.ficha-filme dt { font-size: .65rem; letter-spacing: .25em; text-transform: uppercase; color: var(--dourado); }
.ficha-filme dd { margin: 0 0 10px; }

/* ================= SALA VIP (contato) ================= */
.vip { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: 50px; align-items: start; }
@media (max-width: 920px) { .vip { grid-template-columns: minmax(0, 1fr); } }
.formulario { padding: clamp(22px, 4vw, 40px); background: linear-gradient(180deg, #1d1210, #120b09); border: 1px solid rgba(205,165,15,.4); position: relative; }
.formulario::before { content: "RESERVA DE SESSÃO"; position: absolute; top: -12px; left: 24px; padding: 0 10px; background: var(--preto); font-family: var(--f-titulo); letter-spacing: .3em; color: var(--dourado-claro); }
.campos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.campo { display: flex; flex-direction: column; gap: 6px; }
.campo--inteiro { grid-column: 1 / -1; }
@media (max-width: 600px) { .campos { grid-template-columns: minmax(0, 1fr); } }
.campo label { font-size: .68rem; letter-spacing: .25em; text-transform: uppercase; color: var(--dourado); }
.campo input, .campo select, .campo textarea {
  width: 100%; padding: 12px 14px; background: rgba(0,0,0,.4); color: var(--texto); border: 1px solid rgba(205,165,15,.3);
  font: inherit; font-size: .95rem; border-radius: 2px;
}
.campo select option { background: var(--carvao); }
.campo input:focus, .campo select:focus, .campo textarea:focus { outline: none; border-color: var(--dourado-claro); box-shadow: 0 0 0 3px rgba(255,215,0,.15); }
.campo textarea { min-height: 130px; resize: vertical; }
.formulario__acoes { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 22px; }
.formulario__aviso { font-size: .8rem; color: var(--texto-suave); margin-top: 14px; }
/* contato antes do rodapé (todas as páginas) */
.fale { background: linear-gradient(180deg, var(--preto), #140a08); border-top: 1px solid rgba(205,165,15,.2); }
.fale__grade { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(28px, 5vw, 72px); align-items: start; }
@media (max-width: 860px) { .fale__grade { grid-template-columns: minmax(0, 1fr); } }
.fale__info { list-style: none; padding: 0; margin: 30px 0 0; display: grid; gap: 18px; }
.fale__info li > span { display: block; font-size: .68rem; letter-spacing: .25em; text-transform: uppercase; color: var(--dourado); margin-bottom: 6px; }
.fale__info a { color: var(--creme); font-weight: 500; text-decoration: none; overflow-wrap: anywhere; }
.fale__info a:hover { color: var(--dourado-claro); text-decoration: underline; }
.fale__info .redes { justify-content: flex-start; }
.fale__info .redes a:hover { color: var(--tinta); text-decoration: none; }

/* botão flutuante do WhatsApp (verde e branco oficiais) */
.whats-flutuante {
  position: fixed; right: 18px; bottom: 18px; z-index: 90; width: 56px; height: 56px; border-radius: 50%;
  display: grid; place-items: center; background: #25d366; color: #fff; box-shadow: 0 6px 18px rgba(0,0,0,.45); transition: transform .2s;
}
.whats-flutuante:hover { transform: scale(1.08); }
.whats-flutuante:focus-visible { outline: 2px solid var(--dourado-claro); outline-offset: 4px; }
.whats-flutuante svg { width: 30px; height: 30px; fill: currentColor; }

.cartao-contato { padding: 28px; background: var(--carvao); border: 1px solid rgba(205,165,15,.3); margin-bottom: 22px; }
.cartao-contato h3 { font-size: 1.9rem; color: var(--dourado-claro); }
.cartao-contato a { color: var(--creme); overflow-wrap: anywhere; }
.cartao-contato ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.cartao-contato li span { display: block; font-size: .65rem; letter-spacing: .25em; text-transform: uppercase; color: var(--dourado); }
.downloads { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.downloads a { display: flex; justify-content: space-between; align-items: center; padding: 12px 16px; background: rgba(0,0,0,.3); border: 1px solid rgba(205,165,15,.25); color: var(--texto); text-decoration: none; font-size: .9rem; }
.downloads a:hover { border-color: var(--dourado-claro); color: var(--dourado-claro); }
.downloads a::after { content: "PDF ↓"; font-family: var(--f-titulo); letter-spacing: .15em; color: var(--dourado); }
.publicos { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr)); gap: 18px; }
.publico { padding: 26px; border-top: 3px solid var(--dourado); background: var(--carvao); }
.publico h3 { font-size: 1.8rem; color: var(--creme); }
.publico p { color: var(--texto-suave); font-size: .92rem; margin: 0; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .passo { opacity: 1; transform: none; }
}
