/* =========================================================
   Kalina Magias · Espaço Luz da Alma
   Paleta: breu, ameixa, ametista, ouro antigo, pergaminho
   ========================================================= */
:root {
  --breu: #050307;
  --ameixa: #1C0B24;
  --ameixa-2: #2A1236;
  --ametista: #5E2A7A;
  --lilas: #C7AEDC;
  --ouro: #C9A35A;
  --ouro-claro: #E6CC8F;
  --ouro-escuro: #8E6A2C;
  --pergaminho: #EEE2C6;
  --tinta: #2A1630;
  --tinta-suave: #5A4560;
  --texto: #F1E9DA;
  --texto-2: rgba(241, 233, 218, .84);

  --serif: "Cormorant Garamond", "Iowan Old Style", Georgia, serif;
  --sans: "Jost", "Avenir Next", system-ui, sans-serif;

  --larg: 1200px;
  --gutter: clamp(16px, 4vw, 40px);
  --topo-h: 72px;
  --ease: cubic-bezier(.2, .7, .2, 1);
}

*, *::before, *::after { box-sizing: border-box; }
/* Cormorant usa números estilo antigo por padrão (o 11 parece II); o atalho font: zeraria isto sem o !important */
*, *::before, *::after { font-variant-numeric: lining-nums !important; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--topo-h) + 12px); -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--breu);
  color: var(--texto);
  font: 400 1.0625rem/1.65 var(--sans);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img, video { display: block; max-width: 100%; height: auto; }
a { color: inherit; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
svg { flex: none; }
:focus-visible { outline: 2px solid var(--ouro-claro); outline-offset: 3px; }
[hidden] { display: none !important; }
::selection { background: var(--ametista); color: #fff; }

.pular {
  position: fixed; left: 12px; top: -60px; z-index: 200;
  background: var(--ouro); color: var(--ameixa); padding: 10px 16px; text-decoration: none;
}
.pular:focus { top: 12px; }

/* ---------- tipografia base ---------- */
.titulo {
  font: 600 clamp(2.2rem, 4.6vw, 3.6rem)/1.02 var(--serif);
  letter-spacing: -.01em;
  margin: 0 0 .5em;
  color: var(--texto);
  text-wrap: balance;
}
.secao-cab { max-width: 760px; margin: 0 auto clamp(32px, 5vw, 56px); text-align: center; padding: 0 var(--gutter); }
.secao-cab--esq { text-align: left; margin-left: 0; padding: 0; }
.secao-cab__sub { color: var(--texto-2); margin: 0; max-width: 62ch; }
.secao-cab:not(.secao-cab--esq) .secao-cab__sub { margin-inline: auto; }

/* ---------- botões ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .6em;
  min-height: 52px; padding: 0 1.6em;
  font: 500 .98rem/1 var(--sans); letter-spacing: .02em;
  text-decoration: none; border: 0; border-radius: 3px;
  transition: transform .25s var(--ease), box-shadow .25s var(--ease), background-color .25s, color .25s;
}
.btn svg { width: 20px; height: 20px; }
.btn--ouro {
  color: var(--ameixa);
  background: linear-gradient(115deg, #B88C42 0%, #E9D199 38%, #C9A35A 62%, #F0DCA8 100%);
  box-shadow: inset 0 0 0 3px #E9D3A0, inset 0 0 0 4px rgba(42, 22, 48, .45), 0 10px 28px -14px rgba(201, 163, 90, .8);
}
.btn--ouro:hover { transform: translateY(-2px); box-shadow: inset 0 0 0 3px #F2E0B5, inset 0 0 0 4px rgba(42, 22, 48, .55), 0 16px 34px -14px rgba(201, 163, 90, .95); }
.btn--linha {
  color: var(--ouro-claro);
  background: rgba(28, 11, 36, .35);
  box-shadow: inset 0 0 0 1px rgba(201, 163, 90, .75), inset 0 0 0 4px rgba(5, 3, 7, .9), inset 0 0 0 5px rgba(201, 163, 90, .28);
}
.btn--linha:hover { background: rgba(94, 42, 122, .35); color: #fff; }
.btn--sm { min-height: 42px; padding: 0 1.15em; font-size: .9rem; }
.btn--cheio { width: 100%; }
.btn--tinta {
  color: var(--ouro-claro);
  background: var(--tinta);
  box-shadow: inset 0 0 0 3px var(--tinta), inset 0 0 0 4px rgba(230, 204, 143, .5);
}
.btn--tinta:hover { background: var(--ametista); box-shadow: inset 0 0 0 3px var(--ametista), inset 0 0 0 4px rgba(230, 204, 143, .7); }
.btn--tinta-linha { color: var(--tinta); background: transparent; box-shadow: inset 0 0 0 1px rgba(42, 22, 48, .55); }
.btn--tinta-linha:hover { background: rgba(94, 42, 122, .1); }

.circ {
  width: 44px; height: 44px; border-radius: 50%;
  display: inline-grid; place-items: center;
  background: transparent; border: 1px solid rgba(201, 163, 90, .55); color: var(--ouro-claro);
  font: 400 1.6rem/1 var(--serif);
  transition: background-color .2s, border-color .2s;
}
.circ:hover { background: rgba(94, 42, 122, .4); border-color: var(--ouro-claro); }
.circ svg { width: 18px; height: 18px; }

/* ---------- topo ---------- */
.topo {
  position: fixed; inset: 0 0 auto; z-index: 60; height: var(--topo-h);
  transition: background-color .35s, box-shadow .35s;
}
.topo.is-solido {
  background: rgba(5, 3, 7, .84);
  backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
  box-shadow: 0 1px 0 rgba(201, 163, 90, .18);
}
.topo__in {
  max-width: var(--larg); height: 100%; margin: 0 auto; padding: 0 var(--gutter);
  display: flex; align-items: center; gap: 28px;
}
.marca {
  display: flex; align-items: center; gap: 10px;
  text-decoration: none; color: var(--ouro-claro); margin-right: auto; min-width: 0;
}
.marca__simbolo { width: 46px; height: 23px; color: var(--ouro); }
.marca__nome { font: 600 1.45rem/1 var(--serif); letter-spacing: .01em; white-space: nowrap; }
.marca__barra { color: var(--ouro); opacity: .7; font-weight: 500; margin: 0 .08em; }
.marca__casa { font: 500 1.14rem/1 var(--serif); color: var(--texto); letter-spacing: .01em; }

.menu { display: flex; align-items: center; gap: 26px; }
.menu a {
  position: relative; text-decoration: none; font-size: .95rem; color: var(--texto-2);
  padding: 6px 0; transition: color .2s;
}
.menu a::after {
  content: ""; position: absolute; left: 50%; bottom: -2px; width: 5px; height: 5px;
  background: var(--ouro); transform: translateX(-50%) rotate(45deg) scale(0); transition: transform .3s var(--ease);
}
.menu a:hover, .menu a.is-ativo { color: var(--ouro-claro); }
.menu a.is-ativo::after { transform: translateX(-50%) rotate(45deg) scale(1); }
.menu__whats { display: none !important; }

.topo__acoes { display: flex; align-items: center; gap: 12px; }
.bolsa {
  position: relative; width: 44px; height: 44px; display: grid; place-items: center;
  background: transparent; border: 1px solid rgba(201, 163, 90, .45); border-radius: 50%; color: var(--ouro-claro);
  transition: background-color .2s;
}
.bolsa:hover { background: rgba(94, 42, 122, .4); }
.bolsa svg { width: 21px; height: 21px; }
.bolsa__n {
  position: absolute; top: -4px; right: -4px; min-width: 20px; height: 20px; padding: 0 5px;
  border-radius: 10px; background: var(--ouro); color: var(--ameixa);
  font: 600 .72rem/20px var(--sans); text-align: center;
}
.bolsa.is-pulso { animation: pulso .6s var(--ease); }
@keyframes pulso { 40% { transform: scale(1.18); } }

.hamb { display: none; width: 44px; height: 44px; background: transparent; border: 0; position: relative; }
.hamb span { position: absolute; left: 11px; right: 11px; height: 1.6px; background: var(--ouro-claro); transition: transform .3s var(--ease), top .3s; }
.hamb span:first-child { top: 17px; }
.hamb span:last-child { top: 26px; }
.hamb[aria-expanded="true"] span:first-child { top: 21.5px; transform: rotate(45deg); }
.hamb[aria-expanded="true"] span:last-child { top: 21.5px; transform: rotate(-45deg); }

/* =========================================================
   HERO: Kalina diante do anel das fases da lua
   ========================================================= */
.hero {
  position: relative; min-height: 100svh;
  padding: calc(var(--topo-h) + clamp(20px, 4vh, 48px)) var(--gutter) 36px;
  display: flex; flex-direction: column; justify-content: center;
  background:
    radial-gradient(55% 60% at 74% 42%, rgba(94, 42, 122, .5), transparent 70%),
    radial-gradient(45% 50% at 6% 95%, rgba(94, 42, 122, .28), transparent 70%),
    linear-gradient(180deg, var(--breu) 0%, var(--ameixa) 72%, var(--breu) 100%);
  overflow: hidden;
}
.hero__ceu {
  position: absolute; inset: 0; pointer-events: none; opacity: .75;
  background-image:
    radial-gradient(1.2px 1.2px at 20px 30px, #F6E7C1, transparent),
    radial-gradient(1px 1px at 120px 90px, #fff, transparent),
    radial-gradient(1.4px 1.4px at 200px 160px, #E6CC8F, transparent),
    radial-gradient(1px 1px at 60px 210px, #fff, transparent),
    radial-gradient(1px 1px at 260px 40px, #C7AEDC, transparent);
  background-size: 290px 250px, 330px 290px, 410px 370px, 230px 260px, 370px 310px;
  mask-image: linear-gradient(180deg, #000 0%, #000 55%, transparent 90%);
  -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 55%, transparent 90%);
}
.hero__in {
  position: relative; width: 100%; max-width: var(--larg); margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  grid-template-areas: "titulo palco" "sub palco" "acoes palco";
  grid-template-rows: auto auto 1fr;
  column-gap: clamp(28px, 5vw, 64px); align-items: start; align-content: center;
}
.hero__titulo {
  grid-area: titulo; align-self: end;
  margin: 0 0 26px;
  font: 600 clamp(3.1rem, 7vw, 6.4rem)/.92 var(--serif);
  letter-spacing: -.02em; color: var(--texto);
}
.hero__titulo .linha { display: block; }
.hero__titulo .linha--it {
  font-style: italic; font-weight: 500;
  background: linear-gradient(100deg, #B88C42, #F0DCA8 45%, #C9A35A 70%, #E6CC8F);
  -webkit-background-clip: text; background-clip: text; color: transparent;
  padding-bottom: .08em;
}
.hero__sub { grid-area: sub; max-width: 50ch; color: var(--texto-2); font-size: 1.1rem; margin: 0 0 32px; }
.hero__acoes { grid-area: acoes; display: flex; flex-wrap: wrap; gap: 14px; align-self: start; }

.palco { grid-area: palco; position: relative; align-self: center; justify-self: center; width: min(100%, 580px); }
.palco__arte { position: relative; aspect-ratio: 1 / 1.08; }
.anel { position: absolute; left: 0; top: 0; width: 100%; height: auto; overflow: visible; }
.anel__rotulo { font: italic 500 17px var(--serif); fill: #E6CC8F; letter-spacing: .06em; }
.palco__kalina {
  position: absolute; left: 50%; bottom: 0; transform: translateX(-50%);
  width: 60%; height: auto;
  filter: drop-shadow(0 24px 40px rgba(5, 3, 7, .7));
  -webkit-mask-image: linear-gradient(180deg, #000 64%, transparent 96%);
  mask-image: linear-gradient(180deg, #000 64%, transparent 96%);
}

.lua-hoje {
  position: absolute; left: -14%; bottom: 3%; z-index: 2; width: min(310px, 66%);
  display: grid; grid-template-columns: 56px 1fr; gap: 14px; align-items: start;
  padding: 16px 18px 14px;
  background: rgba(16, 7, 21, .86);
  backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
  border: 1px solid rgba(201, 163, 90, .45);
  box-shadow: 0 24px 50px -20px rgba(0, 0, 0, .9);
}
.lua-hoje__disco { width: 56px; height: 56px; filter: drop-shadow(0 0 12px rgba(230, 204, 143, .35)); }
.lua-hoje__titulo { margin: 0 0 4px; font: 600 1.22rem/1.15 var(--serif); color: var(--ouro-claro); }
.lua-hoje__dica { margin: 0 0 8px; font-size: .88rem; line-height: 1.5; color: var(--texto); }
.lua-hoje__link {
  background: none; border: 0; padding: 0; color: var(--ouro-claro); text-align: left;
  font-size: .88rem; text-decoration: underline; text-decoration-color: rgba(201, 163, 90, .5); text-underline-offset: 4px;
}
.lua-hoje__link:hover { color: #fff; text-decoration-color: var(--ouro); }

.hero__lema {
  position: relative; display: flex; justify-content: center; align-items: center; gap: clamp(14px, 3vw, 34px);
  margin: clamp(28px, 5vh, 56px) 0 0; color: var(--ouro);
  font: italic 500 clamp(1.2rem, 2.4vw, 1.7rem)/1 var(--serif);
}
.hero__lema svg { width: 38px; height: 19px; opacity: .7; }

/* entrada orquestrada do hero */
.js .hero__titulo .linha, .js .hero__sub, .js .hero__acoes, .js .palco__kalina, .js .lua-hoje, .js .hero__lema, .js .anel {
  opacity: 0;
}
.js .hero__titulo .linha, .js .hero__sub, .js .hero__acoes, .js .lua-hoje, .js .hero__lema { transform: translateY(18px); }
.js .palco__kalina { transform: translate(-50%, 24px); }
.js .is-pronto .hero__titulo .linha, .js .is-pronto .hero__sub, .js .is-pronto .hero__acoes,
.js .is-pronto .lua-hoje, .js .is-pronto .hero__lema, .js .is-pronto .anel {
  opacity: 1; transform: none;
  transition: opacity 1s var(--ease), transform 1s var(--ease);
}
.js .is-pronto .palco__kalina { opacity: 1; transform: translate(-50%, 0); transition: opacity 1.2s var(--ease), transform 1.2s var(--ease); }
.js .is-pronto .anel { transition-duration: 1.6s; }
.js .is-pronto .palco__kalina { transition-delay: .2s; }
.js .is-pronto .hero__titulo .linha:nth-child(1) { transition-delay: .15s; }
.js .is-pronto .hero__titulo .linha:nth-child(2) { transition-delay: .27s; }
.js .is-pronto .hero__titulo .linha:nth-child(3) { transition-delay: .39s; }
.js .is-pronto .hero__sub { transition-delay: .55s; }
.js .is-pronto .hero__acoes { transition-delay: .65s; }
.js .is-pronto .lua-hoje { transition-delay: 1.5s; }
.js .is-pronto .hero__lema { transition-delay: 1.1s; }

/* =========================================================
   ATENDIMENTO ORACULAR EMERGENCIAL
   ========================================================= */
.emerg {
  position: relative; overflow: hidden;
  padding: clamp(70px, 9vw, 120px) var(--gutter);
  background:
    radial-gradient(38% 60% at 22% 50%, rgba(123, 58, 158, .38), transparent 70%),
    radial-gradient(30% 40% at 90% 10%, rgba(201, 163, 90, .1), transparent 70%),
    linear-gradient(180deg, var(--breu), #10061A 50%, var(--breu));
  border-top: 1px solid rgba(201, 163, 90, .2);
}
.emerg__in {
  max-width: var(--larg); margin: 0 auto;
  display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(36px, 6vw, 84px); align-items: center;
}
.emerg__selo { position: relative; width: min(100%, 500px); aspect-ratio: 1; justify-self: center; }
.emerg__giro { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; animation: girar 80s linear infinite; }
.emerg__aro { font: italic 500 26px var(--serif); fill: var(--ouro-claro); letter-spacing: .06em; }
@keyframes girar { to { transform: rotate(360deg); } }
.emerg__img {
  position: absolute; inset: 9%; width: 82%; height: 82%; border-radius: 50%; cursor: pointer;
  box-shadow: 0 0 0 1px rgba(230, 204, 143, .5), 0 0 70px -10px rgba(123, 58, 158, .8), 0 40px 60px -30px #000;
  animation: flutuar 7s ease-in-out infinite;
}
@keyframes flutuar { 50% { transform: translateY(-10px) rotate(-1.5deg); } }

.emerg__form { display: grid; gap: 16px; }
.emerg__form .titulo { margin: 0; font-size: clamp(2.2rem, 4.4vw, 3.4rem); }
.emerg__status {
  justify-self: start; display: inline-flex; align-items: center; gap: 10px; margin: 0;
  padding: 7px 14px; border-radius: 999px; font-size: .86rem; color: var(--texto);
  background: rgba(5, 3, 7, .55); box-shadow: inset 0 0 0 1px rgba(199, 174, 220, .35);
}
.emerg__ponto { width: 9px; height: 9px; border-radius: 50%; background: var(--lilas); }
.emerg__status.is-aberto { box-shadow: inset 0 0 0 1px rgba(143, 209, 158, .5); }
.emerg__status.is-aberto .emerg__ponto { background: #8FD19E; animation: aceso 1.8s ease-out infinite; }
@keyframes aceso { 0% { box-shadow: 0 0 0 0 rgba(143, 209, 158, .7); } 100% { box-shadow: 0 0 0 10px rgba(143, 209, 158, 0); } }
.emerg__txt { margin: 0; color: var(--texto-2); max-width: 58ch; }
.emerg__fatos {
  list-style: none; margin: 4px 0; padding: 14px 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px;
  border-block: 1px solid rgba(201, 163, 90, .25);
}
.emerg__fatos li { display: flex; gap: 10px; align-items: flex-start; font-size: .84rem; color: var(--texto-2); line-height: 1.35; }
.emerg__fatos svg { width: 22px; height: 22px; color: var(--ouro); margin-top: 1px; }
.emerg__fatos strong { display: block; font: 600 1.08rem/1.15 var(--serif); color: var(--texto); }

.emerg__qtd { border: 0; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.emerg__qtd legend { padding: 0; margin-bottom: 8px; font-size: .86rem; color: var(--texto-2); }
.emerg__qtd label { position: relative; }
.emerg__qtd input { position: absolute; opacity: 0; inset: 0; cursor: pointer; z-index: 1; }
.emerg__qtd span {
  display: grid; justify-items: center; gap: 2px; padding: 14px 8px 12px; text-align: center;
  font-size: .86rem; color: var(--texto-2);
  background: rgba(5, 3, 7, .45); border: 1px solid rgba(201, 163, 90, .35); border-radius: 3px;
  transition: background-color .25s, border-color .25s, transform .25s var(--ease), box-shadow .25s;
}
.emerg__qtd b { font: 600 2.3rem/1 var(--serif); color: var(--ouro-claro); }
.emerg__qtd em { font: italic 600 1.15rem/1.2 var(--serif); color: var(--texto); margin-top: 4px; }
.emerg__qtd label:hover span { border-color: var(--ouro-claro); }
.emerg__qtd input:checked + span {
  background: linear-gradient(180deg, rgba(123, 58, 158, .65), rgba(94, 42, 122, .45)); border-color: var(--ouro-claro); color: #fff;
  transform: translateY(-3px); box-shadow: 0 16px 30px -18px rgba(123, 58, 158, .9);
}
.emerg__qtd input:focus-visible + span { outline: 2px solid var(--ouro-claro); outline-offset: 3px; }
.emerg__perguntas { display: grid; gap: 10px; }
.emerg__perguntas .campo { animation: troca .35s var(--ease); }
.emerg__enviar { justify-self: start; }
.emerg__nota { margin: -4px 0 0; font-size: .82rem; color: rgba(241, 233, 218, .7); }

/* =========================================================
   CATÁLOGO (grimório)
   ========================================================= */
.catalogo {
  position: relative; padding: clamp(80px, 10vw, 130px) 0 clamp(70px, 8vw, 100px);
  background:
    radial-gradient(50% 40% at 50% 30%, rgba(94, 42, 122, .35), transparent 70%),
    var(--breu);
}
.livro { max-width: 1160px; margin: 0 auto; padding: 0 var(--gutter); }
.livro__fitas { display: flex; gap: 6px; padding-left: 36px; position: relative; z-index: 2; }
.fita {
  position: relative; border: 0; padding: 14px 20px 22px;
  background: var(--ameixa-2); color: var(--texto-2);
  font: 500 .93rem/1.1 var(--sans);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 50% calc(100% - 9px), 0 100%);
  transform: translateY(14px);
  transition: transform .35s var(--ease), background-color .3s, color .3s;
}
.fita__curto { display: none; }
.fita:hover { transform: translateY(8px); color: var(--texto); }
.fita[aria-selected="true"] { background: var(--ametista); color: #fff; transform: translateY(2px); }
.fita[aria-selected="true"]::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: var(--ouro); }

.livro__aberto {
  position: relative;
  display: grid; grid-template-columns: 1fr 34px 1fr;
  perspective: 2200px;
  padding: 14px;
  background: linear-gradient(180deg, #3A1B48, #24102E);
  border-radius: 6px;
  box-shadow: 0 0 0 1px rgba(201, 163, 90, .35), 0 50px 90px -40px rgba(0, 0, 0, 1), 0 0 120px -40px rgba(94, 42, 122, .7);
}
.livro__aberto::before { content: ""; position: absolute; inset: 6px; border: 1px solid rgba(201, 163, 90, .3); border-radius: 4px; pointer-events: none; }
.livro__lombada {
  background: linear-gradient(90deg, #D6C095 0%, #A98B57 45%, #8D7246 50%, #A98B57 55%, #D6C095 100%);
  box-shadow: inset 0 0 18px rgba(42, 22, 48, .45);
}
.pagina {
  position: relative; min-height: 640px; color: var(--tinta);
  padding: clamp(32px, 4vw, 52px) clamp(26px, 3.6vw, 52px);
  background:
    radial-gradient(120% 90% at 50% 50%, transparent 60%, rgba(142, 106, 44, .22) 100%),
    linear-gradient(180deg, var(--pergaminho), #E8D9B6);
}
.pagina--indice { box-shadow: inset -26px 0 30px -24px rgba(90, 60, 20, .55); border-radius: 3px 0 0 3px; }
.pagina--servico { box-shadow: inset 26px 0 30px -24px rgba(90, 60, 20, .55); border-radius: 0 3px 3px 0; transform-origin: left center; transform-style: preserve-3d; }
.pagina--servico.is-virando { animation: virar .62s var(--ease); }
@keyframes virar {
  0% { transform: rotateY(0); filter: brightness(1); }
  48%, 52% { transform: rotateY(-88deg); filter: brightness(.7); }
  100% { transform: rotateY(0); filter: brightness(1); }
}
.pagina::after {
  content: ""; position: absolute; inset: 14px; pointer-events: none;
  border: 1px solid rgba(142, 106, 44, .35);
  background:
    linear-gradient(var(--ouro-escuro), var(--ouro-escuro)) top left / 18px 1px no-repeat,
    linear-gradient(var(--ouro-escuro), var(--ouro-escuro)) top left / 1px 18px no-repeat,
    linear-gradient(var(--ouro-escuro), var(--ouro-escuro)) bottom right / 18px 1px no-repeat,
    linear-gradient(var(--ouro-escuro), var(--ouro-escuro)) bottom right / 1px 18px no-repeat;
}
.pagina__capitulo { margin: 0; font: italic 500 1.1rem/1 var(--serif); color: var(--ametista); }
.pagina__titulo-indice { margin: 6px 0 22px; font: 700 clamp(1.9rem, 3vw, 2.5rem)/1 var(--serif); color: var(--tinta); }
.pagina__rodape { position: absolute; left: 0; right: 0; bottom: 30px; margin: 0; text-align: center; font: italic 500 1rem/1 var(--serif); color: var(--tinta-suave); }

.indice { list-style: none; margin: 0; padding: 0; }
.indice li + li { border-top: 1px solid rgba(142, 106, 44, .2); }
.indice button {
  width: 100%; display: flex; align-items: baseline; gap: 10px;
  background: none; border: 0; padding: 13px 4px 13px 22px; text-align: left; position: relative;
  color: var(--tinta); transition: color .2s, padding-left .3s var(--ease);
}
.indice__nome { font: 600 1.32rem/1.2 var(--serif); }
.indice__pontos { flex: 1; min-width: 20px; border-bottom: 2px dotted rgba(90, 69, 96, .45); transform: translateY(-4px); }
.indice__preco { font: 500 .95rem/1 var(--sans); white-space: nowrap; color: var(--tinta-suave); }
.indice__preco small { font-size: .75rem; }
.indice button::before {
  content: ""; position: absolute; left: 4px; top: 50%; width: 8px; height: 8px; margin-top: -4px;
  background: var(--ametista); transform: rotate(45deg) scale(0); transition: transform .3s var(--ease);
}
.indice button:hover { color: var(--ametista); }
.indice button[aria-current="true"] { color: var(--ametista); padding-left: 28px; }
.indice button[aria-current="true"]::before { transform: rotate(45deg) scale(1); }
.indice button[aria-current="true"] .indice__preco { color: var(--ametista); }

.servico { display: flex; flex-direction: column; min-height: 100%; }
.servico__titulo:focus { outline: none; }
.servico__voltar {
  display: none; align-self: flex-start; margin: 0 0 14px; padding: 6px 0; background: none; border: 0;
  color: var(--ametista); font-size: .92rem; text-decoration: underline; text-underline-offset: 4px;
}
.servico__titulo { margin: 4px 0 6px; font: 700 clamp(2rem, 3.4vw, 2.85rem)/1 var(--serif); color: var(--tinta); text-wrap: balance; }
.servico__linha { margin: 0 0 18px; font: italic 500 1.2rem/1.3 var(--serif); color: var(--ametista); }
.servico__desc { margin: 0 0 16px; color: #3B2741; max-width: 52ch; }
.servico__lista { list-style: none; margin: 0 0 18px; padding: 0; display: grid; gap: 7px; }
.servico__lista li { position: relative; padding-left: 22px; font-size: .97rem; line-height: 1.45; color: #3B2741; }
.servico__lista li::before { content: ""; position: absolute; left: 3px; top: .55em; width: 7px; height: 7px; background: var(--ouro-escuro); transform: rotate(45deg); }
.servico__lista--passos { counter-reset: p; }
.servico__lista--passos li { padding-left: 34px; }
.servico__lista--passos li::before {
  counter-increment: p; content: counter(p); width: 24px; height: 24px; top: -1px; left: 0; transform: none;
  border: 1px solid var(--ouro-escuro); border-radius: 50%; background: none;
  font: 600 .95rem/22px var(--serif); text-align: center; color: var(--tinta);
}
.servico__lista strong { color: var(--tinta); font-weight: 600; }
.servico__entrega { display: flex; flex-wrap: wrap; gap: 8px 16px; margin: 0 0 20px; padding: 0; list-style: none; }
.servico__entrega li { display: inline-flex; align-items: center; gap: 7px; font-size: .88rem; color: var(--tinta-suave); }
.servico__entrega svg { width: 18px; height: 18px; color: var(--ametista); }

.variantes { border: 0; margin: 0 0 18px; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.variantes legend { padding: 0; margin-bottom: 8px; font-size: .88rem; color: var(--tinta-suave); }
.variantes label { position: relative; }
.variantes input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.variantes span { display: inline-block; padding: 9px 14px; border: 1px solid rgba(42, 22, 48, .35); border-radius: 3px; font-size: .9rem; color: var(--tinta); transition: background-color .2s, color .2s, border-color .2s; }
.variantes input:checked + span { background: var(--tinta); color: var(--ouro-claro); border-color: var(--tinta); }
.variantes input:focus-visible + span { outline: 2px solid var(--ametista); outline-offset: 2px; }

.servico__base { margin-top: auto; padding-top: 18px; border-top: 1px solid rgba(142, 106, 44, .35); }
.servico__preco { display: flex; align-items: baseline; gap: 10px; margin: 0 0 16px; }
.servico__preco span { font-size: .88rem; color: var(--tinta-suave); }
.servico__preco strong { font: 700 clamp(2.2rem, 3.6vw, 2.9rem)/1 var(--serif); color: var(--tinta); }
.servico__acoes { display: flex; flex-wrap: wrap; gap: 10px; }
.servico__acoes .btn { flex: 1 1 180px; }

/* =========================================================
   CARTÃO PRESENTE (montado ao vivo)
   ========================================================= */
.presente {
  position: relative; overflow: hidden;
  padding: clamp(70px, 9vw, 120px) var(--gutter);
  background:
    radial-gradient(40% 70% at 25% 50%, rgba(201, 163, 90, .14), transparent 70%),
    linear-gradient(180deg, var(--breu), #12061A 50%, var(--breu));
  border-top: 1px solid rgba(201, 163, 90, .16);
}
.presente__in {
  max-width: 1100px; margin: 0 auto;
  display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: clamp(36px, 6vw, 80px); align-items: center;
}
.presente__cena { perspective: 1200px; display: grid; place-items: center; }
.gcard {
  width: min(100%, 480px); aspect-ratio: 1.58 / 1;
  transform-style: preserve-3d; transform: rotateX(var(--rx, 6deg)) rotateY(var(--ry, -12deg));
  transition: transform .5s var(--ease);
  --mx: 30%; --my: 20%;
}
.gcard.is-mexendo { transition: transform .08s linear; }
.gcard__face {
  position: relative; width: 100%; height: 100%; border-radius: 14px; overflow: hidden;
  padding: 7% 8%;
  display: grid; grid-template-rows: auto auto auto auto 1fr; align-content: start;
  background:
    radial-gradient(circle at var(--mx) var(--my), rgba(255, 236, 190, .28), transparent 38%),
    radial-gradient(120% 120% at 100% 0%, #6E3290 0%, #3E1752 45%, #1C0B24 100%);
  box-shadow: 0 40px 70px -30px rgba(0, 0, 0, .95), 0 0 0 1px rgba(230, 204, 143, .55), inset 0 0 0 10px rgba(28, 11, 36, .35), inset 0 0 0 11px rgba(230, 204, 143, .55);
  color: var(--ouro-claro);
}
.gcard__face::before {
  content: ""; position: absolute; inset: 0; opacity: .14; pointer-events: none;
  background-image: radial-gradient(circle at 50% 50%, transparent 0 22px, rgba(230, 204, 143, .9) 23px 24px, transparent 25px);
  background-size: 64px 64px;
}
.gcard__lua { width: 64px; height: 32px; color: var(--ouro-claro); position: relative; }
.gcard__tipo { position: relative; margin: 8px 0 0; font: italic 500 clamp(1rem, 2vw, 1.25rem)/1 var(--serif); color: var(--lilas); }
.gcard__para { position: relative; margin: 6% 0 0; font: 600 clamp(1.4rem, 3vw, 2rem)/1.05 var(--serif); color: #fff; overflow-wrap: anywhere; }
.gcard__serv {
  position: relative; margin: 2% 0 0; justify-self: start;
  font: 700 clamp(1.2rem, 2.6vw, 1.7rem)/1.05 var(--serif);
  background: linear-gradient(100deg, #B88C42, #F6E3B4 45%, #C9A35A 70%, #E6CC8F);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.gcard__de { position: relative; margin: 0; align-self: end; max-width: 55%; font-size: clamp(.72rem, 1.5vw, .88rem); color: var(--texto-2); }
.gcard__casa { position: absolute; right: 8%; bottom: 7%; margin: 0; text-align: right; font: 600 clamp(.7rem, 1.4vw, .82rem)/1.3 var(--serif); letter-spacing: .04em; color: var(--ouro); }
.gcard.is-pulso { animation: gpulso .6s var(--ease); }
@keyframes gpulso { 40% { transform: rotateX(0) rotateY(0) scale(1.04); } }

.presente__form { display: grid; gap: 14px; }
.presente__form .titulo { margin-bottom: 0; font-size: clamp(2rem, 3.8vw, 3rem); }
.presente__txt { margin: 0 0 6px; color: var(--texto-2); }
.presente__form .btn { justify-self: start; margin-top: 4px; }

/* =========================================================
   FORMAÇÕES: seletor de turmas
   ========================================================= */
.formacoes {
  padding: clamp(80px, 10vw, 130px) var(--gutter);
  background:
    radial-gradient(40% 50% at 100% 0%, rgba(94, 42, 122, .35), transparent 70%),
    var(--ameixa);
  border-top: 1px solid rgba(201, 163, 90, .2);
}
.formacoes__in { max-width: var(--larg); margin: 0 auto; }
.formacoes__cal {
  display: inline-flex; align-items: center; gap: 14px; margin-top: 20px; padding: 8px 18px 8px 8px; text-align: left;
  background: rgba(5, 3, 7, .45); border: 0; box-shadow: inset 0 0 0 1px rgba(201, 163, 90, .4);
  transition: background-color .25s, box-shadow .25s;
}
.formacoes__cal img { width: 46px; height: 69px; object-fit: cover; box-shadow: 0 0 0 1px rgba(201, 163, 90, .5); transition: transform .35s var(--ease); }
.formacoes__cal span { font-size: .84rem; color: var(--texto-2); line-height: 1.35; }
.formacoes__cal strong { display: block; font: 600 1.2rem/1.15 var(--serif); color: var(--ouro-claro); }
.formacoes__cal:hover { background: rgba(94, 42, 122, .35); box-shadow: inset 0 0 0 1px var(--ouro-claro); }
.formacoes__cal:hover img { transform: rotate(-4deg) scale(1.06); }
.turmas { display: grid; grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr); gap: clamp(20px, 3vw, 40px); align-items: start; }
.turmas__lista { display: grid; gap: 4px; }
.turmas__grupo { margin: 18px 0 6px; font: italic 500 1.1rem/1 var(--serif); color: var(--lilas); }
.turmas__grupo:first-child { margin-top: 0; }
.turma {
  display: grid; grid-template-columns: 64px 1fr; gap: 14px; align-items: center;
  width: 100%; padding: 12px 14px; text-align: left;
  background: transparent; border: 0; border-left: 2px solid transparent;
  transition: background-color .25s, border-color .25s;
}
.turma:hover { background: rgba(94, 42, 122, .22); }
.turma[aria-selected="true"] { background: rgba(94, 42, 122, .45); border-left-color: var(--ouro); }
.turma__data { display: grid; justify-items: center; line-height: 1; color: var(--ouro-claro); }
.turma__dia { font: 600 1.9rem/1 var(--serif); }
.turma__mes { font-size: .74rem; color: var(--texto-2); margin-top: 3px; }
.turma__data svg { width: 44px; height: 22px; color: var(--ouro); }
.turma__nome { display: block; font: 600 1.28rem/1.15 var(--serif); color: var(--texto); }
.turma__tipo { display: block; font-size: .82rem; color: var(--texto-2); margin-top: 2px; }

.turmas__painel {
  position: sticky; top: calc(var(--topo-h) + 20px);
  display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
  grid-template-areas: "poster cab" "poster corpo";
  grid-template-rows: auto 1fr;
  column-gap: 26px;
  padding: 18px; background: rgba(5, 3, 7, .5);
  box-shadow: inset 0 0 0 1px rgba(201, 163, 90, .3);
}
.turmas__painel.is-troca { animation: troca .45s var(--ease); }
@keyframes troca { from { opacity: 0; transform: translateY(10px); } }
.painel__poster {
  grid-area: poster; position: relative; overflow: hidden; aspect-ratio: 3 / 4;
  padding: 0; border: 0; background: #0D0612; align-self: start;
  box-shadow: 0 0 0 1px rgba(201, 163, 90, .45);
}
.painel__poster .bg { position: absolute; inset: -10%; width: 120%; height: 120%; max-width: none; object-fit: cover; filter: blur(18px) brightness(.55); }
.painel__poster .fg { position: relative; width: 100%; height: 100%; object-fit: contain; }
.painel__poster span {
  position: absolute; left: 8px; bottom: 8px; padding: 5px 10px; font-size: .78rem;
  background: rgba(5, 3, 7, .8); color: var(--ouro-claro); border: 1px solid rgba(201, 163, 90, .4);
}
.painel__cab { grid-area: cab; padding-top: 4px; }
.painel__tipo { margin: 0 0 4px; font: italic 500 1.1rem/1.2 var(--serif); color: var(--lilas); }
.painel__titulo { margin: 0 0 10px; font: 600 clamp(1.7rem, 2.6vw, 2.3rem)/1.04 var(--serif); }
.painel__meta { list-style: none; margin: 0 0 14px; padding: 0; display: grid; gap: 4px; font-size: .92rem; color: var(--ouro-claro); }
.painel__corpo { grid-area: corpo; }
.painel__desc { margin: 0 0 14px; color: var(--texto-2); font-size: .98rem; }
.painel__tags { display: flex; flex-wrap: wrap; gap: 6px 8px; margin: 0 0 18px; padding: 0; list-style: none; }
.painel__tags li { font-size: .8rem; padding: 4px 10px; border: 1px solid rgba(199, 174, 220, .35); color: var(--lilas); border-radius: 2px; }
.painel__acoes { display: flex; flex-wrap: wrap; gap: 10px; }

/* =========================================================
   NA MESA: cenas em vídeo
   ========================================================= */
.mesa {
  padding: clamp(80px, 10vw, 130px) var(--gutter) clamp(90px, 11vw, 140px);
  background:
    radial-gradient(45% 40% at 50% 100%, rgba(94, 42, 122, .4), transparent 70%),
    var(--breu);
}
.mesa__in { max-width: var(--larg); margin: 0 auto; }
.mesa__cab { display: flex; justify-content: space-between; align-items: end; gap: 12px 40px; flex-wrap: wrap; margin-bottom: clamp(28px, 4vw, 44px); }
.mesa__cab .titulo { margin: 0; }
.mesa__cab p { margin: 0; color: var(--texto-2); max-width: 46ch; }
.explica {
  display: grid; grid-template-columns: minmax(0, 340px) minmax(0, 1fr); gap: clamp(24px, 5vw, 64px); align-items: center;
  margin: 0 0 clamp(48px, 6vw, 72px); padding: clamp(16px, 2.4vw, 26px);
  background: linear-gradient(120deg, rgba(42, 18, 54, .9), rgba(16, 7, 21, .9));
  box-shadow: inset 0 0 0 1px rgba(201, 163, 90, .35), 0 40px 80px -50px #000;
}
.explica__tela { position: relative; aspect-ratio: 9 / 16; background: #0D0612; box-shadow: 0 0 0 1px rgba(201, 163, 90, .5); overflow: hidden; }
.explica__tela video { width: 100%; height: 100%; object-fit: cover; cursor: pointer; }
.explica__play {
  position: absolute; left: 50%; top: 50%; width: 96px; height: 96px; margin: -48px 0 0 -48px;
  display: grid; place-items: center; padding: 0; border: 0; border-radius: 50%;
  background: rgba(5, 3, 7, .62); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); color: var(--ouro-claro);
  transition: opacity .3s, transform .3s var(--ease), top .45s var(--ease), left .45s var(--ease), width .45s var(--ease), height .45s var(--ease), margin .45s var(--ease);
}
.explica__play:hover { transform: scale(1.06); }
.explica__anel { position: absolute; inset: 0; width: 100%; height: 100%; }
.explica__prog { transition: stroke-dasharray .25s linear; }
.explica__ico { width: 34px; height: 34px; margin-left: 4px; }
.explica.is-tocando .explica__play { left: 14px; top: calc(100% - 14px); width: 58px; height: 58px; margin: -58px 0 0 0; }
.explica.is-tocando .explica__ico { width: 22px; height: 22px; margin-left: 0; }
.explica__selo { margin: 0 0 6px; font: italic 500 1.15rem/1 var(--serif); color: var(--lilas); }
.explica__selo span {
  display: inline-block; margin-left: 8px; padding: 3px 9px; vertical-align: 2px;
  font: 500 .72rem/1.2 var(--sans); letter-spacing: .08em; text-transform: uppercase; color: var(--ameixa); background: var(--ouro-claro); border-radius: 2px;
}
.explica__titulo { margin: 0 0 14px; font: 600 clamp(2rem, 3.6vw, 3rem)/1.02 var(--serif); }
.explica__txt > p:not(.explica__selo) { margin: 0 0 18px; color: var(--texto-2); max-width: 54ch; }
.explica__marcos { list-style: none; margin: 0 0 22px; padding: 0; border-top: 1px solid rgba(201, 163, 90, .22); }
.explica__marcos button {
  width: 100%; display: flex; gap: 16px; align-items: baseline; padding: 11px 4px; text-align: left;
  background: none; border: 0; border-bottom: 1px solid rgba(201, 163, 90, .22);
  font: 600 1.22rem/1.2 var(--serif); color: var(--texto); transition: color .2s, padding-left .3s var(--ease);
}
.explica__marcos span { font: 500 .82rem/1 var(--sans); color: var(--ouro); min-width: 34px; }
.explica__marcos button:hover { color: var(--ouro-claro); padding-left: 10px; }
.explica__marcos button.is-atual { color: var(--ouro-claro); padding-left: 10px; }
.explica__marcos button.is-atual span::before { content: "▸ "; }
.explica__yt { display: inline-flex; align-items: center; gap: 10px; color: var(--ouro-claro); text-decoration: none; }
.explica__yt svg { width: 24px; height: 24px; }
.explica__yt:hover { color: #fff; }

.mesa__grade { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(12px, 2vw, 22px); }
.cena {
  position: relative; display: block; padding: 0; border: 0; background: #0D0612; overflow: hidden;
  aspect-ratio: 4 / 5; text-align: left; color: #fff;
  box-shadow: 0 0 0 1px rgba(201, 163, 90, .35), 0 30px 50px -30px #000;
}
.cena:nth-child(3n + 2) { transform: translateY(56px); }
.cena video { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease), filter .4s; filter: saturate(.92); }
.cena:hover video, .cena:focus-visible video { transform: scale(1.04); filter: saturate(1.05); }
.cena__txt {
  position: absolute; left: 0; right: 0; bottom: 0; padding: 50px 18px 16px;
  background: linear-gradient(transparent, rgba(5, 3, 7, .92));
  display: grid; gap: 2px;
}
.cena__txt strong { font: 600 1.35rem/1.1 var(--serif); }
.cena__txt em { font-style: normal; font-size: .84rem; color: var(--ouro-claro); text-decoration: underline; text-decoration-color: rgba(201, 163, 90, .45); text-underline-offset: 3px; }
.mesa__redes { display: flex; flex-wrap: wrap; gap: 8px 32px; margin-top: clamp(80px, 9vw, 100px); }
.mesa__insta { display: inline-flex; align-items: center; gap: 10px; color: var(--ouro-claro); text-decoration: none; }
.mesa__insta svg { width: 22px; height: 22px; }
.mesa__insta:hover { color: #fff; }

/* =========================================================
   SOBRE
   ========================================================= */
.sobre {
  padding: clamp(80px, 10vw, 130px) var(--gutter);
  background:
    radial-gradient(45% 45% at 15% 35%, rgba(94, 42, 122, .4), transparent 70%),
    var(--ameixa);
  border-top: 1px solid rgba(201, 163, 90, .2);
}
.sobre__in {
  max-width: var(--larg); margin: 0 auto;
  display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(36px, 6vw, 90px); align-items: start;
}
.sobre__fotos { position: sticky; top: calc(var(--topo-h) + 30px); display: grid; grid-template-columns: 1fr 1fr; gap: 18px; align-items: start; padding: 8px 8px 60px; }
.sobre__foto { margin: 0; position: relative; }
.sobre__foto img { width: 100%; height: auto; aspect-ratio: 3 / 4.4; object-fit: cover; }
.sobre__foto--noite img { object-position: 50% 15%; border-radius: 999px 999px 4px 4px; }
.sobre__foto--luz { margin-top: 70px; }
.sobre__foto--luz img { object-position: 40% 10%; border-radius: 4px 4px 999px 999px; }
.sobre__foto::after { content: ""; position: absolute; inset: -7px; border: 1px solid rgba(201, 163, 90, .45); pointer-events: none; }
.sobre__foto--noite::after { border-radius: 999px 999px 8px 8px; }
.sobre__foto--luz::after { border-radius: 8px 8px 999px 999px; }
.sobre__texto p { color: var(--texto-2); max-width: 60ch; }
.sobre__lead { font: italic 500 clamp(1.4rem, 2.2vw, 1.8rem)/1.3 var(--serif); color: var(--texto) !important; margin-top: 0; }
.creio { list-style: none; margin: 32px 0; padding: 0; border-top: 1px solid rgba(201, 163, 90, .25); }
.creio li {
  padding: 12px 0 12px 34px; position: relative;
  font: 600 clamp(1.45rem, 2.4vw, 2rem)/1.15 var(--serif);
  border-bottom: 1px solid rgba(201, 163, 90, .25); color: var(--texto);
}
.creio li::before { content: ""; position: absolute; left: 6px; top: 50%; width: 10px; height: 10px; margin-top: -5px; border: 1px solid var(--ouro); transform: rotate(45deg); }
.sobre__citacao { margin: 34px 0 22px; padding: 0 0 0 24px; border-left: 2px solid var(--ouro); }
.sobre__citacao p { margin: 0; font: italic 600 clamp(1.7rem, 3vw, 2.5rem)/1.15 var(--serif); color: var(--ouro-claro) !important; }

/* =========================================================
   COVEN DAS ALMAS
   ========================================================= */
.coven {
  position: relative; overflow: hidden;
  padding: clamp(80px, 10vw, 130px) var(--gutter);
  background:
    radial-gradient(42% 55% at 28% 50%, rgba(122, 22, 58, .36), transparent 70%),
    radial-gradient(35% 45% at 85% 20%, rgba(94, 42, 122, .3), transparent 70%),
    #120109;
  border-top: 1px solid rgba(201, 163, 90, .25);
}
.coven::before {
  content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .5;
  background-image: radial-gradient(1px 1px at 30px 40px, #E6CC8F, transparent), radial-gradient(1px 1px at 140px 120px, #C7AEDC, transparent);
  background-size: 260px 220px, 340px 300px;
}
.coven__in {
  position: relative; max-width: var(--larg); margin: 0 auto;
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(36px, 6vw, 84px); align-items: center;
}
.coven__medalhao {
  --giro: 0deg;
  position: sticky; top: calc(var(--topo-h) + 40px); align-self: start;
  width: min(100%, 560px); aspect-ratio: 1; justify-self: center;
  container-type: inline-size;
}
.coven__medalhao::before, .coven__medalhao::after { content: ""; position: absolute; border-radius: 50%; pointer-events: none; }
.coven__medalhao::before { inset: 5%; border: 1px solid rgba(201, 163, 90, .5); }
.coven__medalhao::after { inset: 3.4%; border: 1px dashed rgba(201, 163, 90, .22); }
.coven__logo {
  position: absolute; inset: 15%; width: 70%; height: 70%; border-radius: 50%;
  -webkit-mask-image: radial-gradient(circle closest-side, #000 90%, transparent 100%);
  mask-image: radial-gradient(circle closest-side, #000 90%, transparent 100%);
  filter: drop-shadow(0 0 40px rgba(201, 163, 90, .25));
}
.coven__aro { position: absolute; inset: 0; z-index: 2; transform: rotate(var(--giro)); transition: transform 1.1s var(--ease); }
.coven__no {
  position: absolute; left: 50%; top: 50%;
  transform: translate(-50%, -50%) rotate(var(--a)) translateY(-45cqw) rotate(calc(-1 * var(--a) - var(--giro)));
  transition: transform 1.1s var(--ease);
  display: grid; justify-items: center; cursor: pointer;
}
.coven__no i { width: 9px; height: 9px; background: #120109; border: 1px solid var(--ouro); transform: rotate(45deg); transition: background-color .3s, transform .4s var(--ease); }
.coven__no b {
  position: absolute; top: 14px; white-space: nowrap; padding: 4px 10px; border-radius: 999px;
  font: 500 .78rem/1.1 var(--sans); letter-spacing: .03em; color: var(--texto-2);
  background: rgba(18, 1, 9, .82); box-shadow: inset 0 0 0 1px rgba(201, 163, 90, .3);
  transition: color .3s, background-color .3s, box-shadow .3s, transform .4s var(--ease);
}
.coven__no.is-on i { background: var(--ouro-claro); transform: rotate(45deg) scale(1.5); }
.coven__no.is-on b { color: var(--ameixa); background: var(--ouro-claro); box-shadow: 0 0 24px rgba(230, 204, 143, .55); transform: scale(1.08); }
.coven__ponteiro {
  position: absolute; left: 50%; top: -2px; z-index: 3; width: 14px; height: 12px; margin-left: -7px;
  background: var(--ouro-claro); clip-path: polygon(0 0, 100% 0, 50% 100%);
}

.coven__pre { margin: 0 0 8px; font: italic 500 1.15rem/1 var(--serif); color: var(--lilas); }
.coven__texto > p:not(.coven__pre):not(.coven__lema) { color: var(--texto-2); max-width: 60ch; }
.coven__lead { font: italic 500 clamp(1.3rem, 2.1vw, 1.65rem)/1.35 var(--serif); color: var(--texto) !important; margin-top: 0; }
.coven__temas { list-style: none; margin: 0 0 18px; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.coven__temas button {
  padding: 8px 14px; border-radius: 999px; font-size: .9rem; color: var(--texto);
  background: rgba(5, 3, 7, .4); border: 1px solid rgba(201, 163, 90, .4);
  transition: background-color .25s, color .25s, border-color .25s;
}
.coven__temas button:hover { border-color: var(--ouro-claro); }
.coven__temas button[aria-pressed="true"] { background: var(--ouro-claro); color: var(--ameixa); border-color: var(--ouro-claro); }
.coven__citacao { margin: 28px 0 20px; padding: 0 0 0 24px; border-left: 2px solid var(--ouro); }
.coven__citacao p { margin: 0; font: 600 clamp(1.45rem, 2.4vw, 2rem)/1.22 var(--serif); color: var(--texto); }
.coven__citacao em { font-style: italic; color: var(--ouro-claro); }
.coven__lema { margin: 0 0 26px; font-size: 1.02rem; color: var(--texto-2); }
.coven__lema span { font: italic 600 1.3rem/1 var(--serif); color: var(--ouro-claro); }

/* grupo VIP (bilhete) */
.vip {
  display: grid; grid-template-columns: auto 1fr auto; gap: 16px; align-items: center;
  margin-top: 30px; padding: 16px 18px; text-decoration: none; color: var(--texto);
  background: linear-gradient(110deg, rgba(94, 42, 122, .55), rgba(28, 11, 36, .9));
  box-shadow: inset 0 0 0 1px rgba(201, 163, 90, .5);
  transition: transform .3s var(--ease), box-shadow .3s;
}
.vip:hover { transform: translateY(-3px); box-shadow: inset 0 0 0 1px var(--ouro-claro), 0 20px 40px -24px rgba(201, 163, 90, .6); }
.vip__selo { width: 52px; height: 52px; border-radius: 50%; display: grid; place-items: center; color: var(--ameixa); background: linear-gradient(135deg, #B88C42, #F0DCA8 55%, #C9A35A); }
.vip__selo svg { width: 26px; height: 26px; }
.vip__txt { font-size: .9rem; color: var(--texto-2); line-height: 1.45; }
.vip__txt strong { display: block; font: 600 1.3rem/1.1 var(--serif); color: var(--ouro-claro); }
.vip__cta { padding: 9px 14px; border-left: 1px dashed rgba(201, 163, 90, .6); font-size: .88rem; font-weight: 500; color: var(--ouro-claro); white-space: nowrap; }

/* =========================================================
   DEPOIMENTOS (fita de prints e vídeos)
   ========================================================= */
.depo {
  padding: clamp(80px, 9vw, 120px) 0;
  background:
    radial-gradient(50% 55% at 50% 0%, rgba(94, 42, 122, .45), transparent 70%),
    var(--breu);
  border-top: 1px solid rgba(201, 163, 90, .2);
}
.depo__in { max-width: var(--larg); margin: 0 auto; }
.depo__cab { text-align: center; padding: 0 var(--gutter); margin-bottom: clamp(28px, 4vw, 44px); }
.depo__cab .titulo { margin-bottom: .32em; }
.depo__sub { margin: 0 auto; max-width: 62ch; color: var(--texto-2); }
.depo__ctrl { display: flex; align-items: center; justify-content: center; gap: 16px; margin-top: 26px; }
.depo__pos { font: italic 500 1.15rem/1 var(--serif); color: var(--ouro-claro); min-width: 70px; text-align: center; }

.depo__fita {
  list-style: none; margin: 0; padding: 4px var(--gutter) 22px;
  display: flex; gap: clamp(14px, 1.8vw, 24px);
  overflow-x: auto; overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory; scrollbar-width: none;
}
.depo__fita::-webkit-scrollbar { display: none; }
.depo-item { flex: 0 0 clamp(216px, 22vw, 268px); scroll-snap-align: center; }

.depo-card {
  width: 100%; display: grid; gap: 4px; padding: 0; border: 0; background: none;
  text-align: left; color: var(--texto);
}
.depo-card__tela {
  position: relative; display: block; margin-bottom: 14px; overflow: hidden;
  aspect-ratio: 9 / 16; background: #0D0612;
  box-shadow: 0 0 0 1px rgba(201, 163, 90, .35), 0 30px 50px -30px #000;
  transition: box-shadow .35s var(--ease), transform .35s var(--ease);
}
.depo-card__tela img { width: 100%; height: 100%; object-fit: cover; object-position: top center; }
.depo-card__tela::after {
  content: ""; position: absolute; inset: auto 0 0; height: 45%; pointer-events: none;
  background: linear-gradient(180deg, transparent, rgba(5, 3, 7, .78));
}
.depo-card__selo {
  position: absolute; left: 12px; bottom: 12px; z-index: 1;
  display: inline-flex; align-items: center; gap: 7px; padding: 7px 12px;
  font: 500 .76rem/1 var(--sans); letter-spacing: .07em; text-transform: uppercase;
  color: var(--ameixa); background: var(--ouro-claro); border-radius: 2px;
  opacity: 0; transform: translateY(6px);
  transition: opacity .3s var(--ease), transform .3s var(--ease);
}
/* o selo de vídeo é informação, não dica: fica sempre à vista */
.depo-card__selo--video { opacity: 1; transform: none; }
.depo-card:hover .depo-card__selo, .depo-card:focus-visible .depo-card__selo { opacity: 1; transform: none; }
.depo-card__selo svg { width: 13px; height: 13px; }
.depo-card__servico { font: italic 600 1.08rem/1.2 var(--serif); color: var(--ouro-claro); }
.depo-card__frase { font: 500 1.02rem/1.38 var(--serif); color: var(--texto-2); }
.depo-card__frase::before { content: "“"; }
.depo-card__frase::after { content: "”"; }
.depo-card:hover .depo-card__tela, .depo-card:focus-visible .depo-card__tela {
  transform: translateY(-4px);
  box-shadow: 0 0 0 1px var(--ouro-claro), 0 36px 56px -28px #000;
}
.depo-card:focus-visible { outline: none; }
.depo-card:focus-visible .depo-card__tela { outline: 2px solid var(--ouro-claro); outline-offset: 3px; }

/* lupa: o print em tamanho de leitura */
.lupa {
  padding: 0; border: 0; background: transparent; color: var(--texto);
  max-width: min(460px, 92vw); max-height: 94vh; overflow: visible;
}
.lupa::backdrop { background: rgba(5, 3, 7, .9); backdrop-filter: blur(5px); }
.lupa__fechar { position: absolute; top: -14px; right: -14px; background: var(--ameixa); z-index: 2; }
.lupa__palco { background: #0D0612; box-shadow: 0 0 0 1px rgba(201, 163, 90, .5), 0 40px 80px -30px #000; }
.lupa__palco img, .lupa__palco video { width: 100%; height: auto; max-height: 74vh; object-fit: contain; background: #0D0612; }
.lupa__pe { display: grid; gap: 12px; padding: 16px 2px 0; }
.lupa__legenda { margin: 0; display: grid; gap: 3px; }
.lupa__legenda strong { font: italic 600 1.15rem/1.2 var(--serif); color: var(--ouro-claro); }
.lupa__legenda span { font: 500 1.08rem/1.4 var(--serif); color: var(--texto-2); }
.lupa__nav { display: flex; align-items: center; justify-content: center; gap: 14px; }

/* =========================================================
   AGENDAR
   ========================================================= */
.agendar { padding: clamp(80px, 9vw, 120px) var(--gutter); background: var(--ameixa); border-top: 1px solid rgba(201, 163, 90, .2); }
.agendar__in {
  max-width: 1080px; margin: 0 auto;
  display: grid; grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr); gap: clamp(36px, 6vw, 80px); align-items: center;
}
.agendar__foto { margin: 0; position: relative; padding: 14px; }
.agendar__foto img { width: 100%; aspect-ratio: 560 / 800; object-fit: cover; object-position: top; }
.agendar__foto::before, .agendar__foto::after {
  content: ""; position: absolute; width: 56px; height: 56px; pointer-events: none;
  border: 1px solid var(--ouro);
}
.agendar__foto::before { left: 0; top: 0; border-right: 0; border-bottom: 0; }
.agendar__foto::after { right: 0; bottom: 0; border-left: 0; border-top: 0; }
.passos { list-style: none; counter-reset: passo; margin: 0 0 32px; padding: 0; }
.passos li {
  counter-increment: passo; position: relative; padding: 16px 0 16px 64px;
  color: var(--texto-2); border-bottom: 1px solid rgba(201, 163, 90, .18);
}
.passos li::before {
  content: counter(passo); position: absolute; left: 0; top: 12px; width: 44px; height: 44px;
  display: grid; place-items: center; border: 1px solid var(--ouro); border-radius: 50%;
  font: 600 1.4rem/1 var(--serif); color: var(--ouro-claro);
}
.passos strong { color: var(--texto); font-weight: 500; }
.agendar__acoes { display: flex; flex-wrap: wrap; gap: 14px; }

/* =========================================================
   RODAPÉ
   ========================================================= */
.rodape { background: #020103; border-top: 1px solid rgba(201, 163, 90, .25); padding: clamp(56px, 7vw, 80px) var(--gutter) 28px; }
.rodape__in { max-width: var(--larg); margin: 0 auto; display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: 40px; align-items: start; }
.rodape__marca svg { width: 64px; height: 32px; color: var(--ouro); }
.rodape__nome { margin: 10px 0 4px; font: 600 clamp(2.2rem, 4vw, 3rem)/1 var(--serif); color: var(--ouro-claro); }
.rodape__nome span { display: block; margin-top: 6px; font-size: .58em; font-weight: 500; color: var(--texto); }
.rodape__lema { margin: 0; font: italic 500 1.2rem/1.3 var(--serif); color: var(--texto-2); }
.rodape__nav { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 20px; }
.rodape__nav a { text-decoration: none; color: var(--texto-2); }
.rodape__nav a:hover { color: var(--ouro-claro); }
.rodape__links { display: grid; gap: 12px; justify-items: start; }
.rodape__links p { margin: 0 0 4px; color: var(--texto-2); font-size: .95rem; }
.rodape__links a { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; color: var(--texto); }
.rodape__links a:hover { color: var(--ouro-claro); }
.rodape__links svg { width: 22px; height: 22px; color: var(--ouro); }
.rodape__fim { max-width: var(--larg); margin: 44px auto 0; padding-top: 22px; border-top: 1px solid rgba(241, 233, 218, .08); font-size: .82rem; color: rgba(241, 233, 218, .65); }

/* =========================================================
   Gaveta, cartaz, aviso
   ========================================================= */
.veu { position: fixed; inset: 0; z-index: 90; background: rgba(5, 3, 7, .7); backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(3px); opacity: 0; transition: opacity .35s; }
.veu.is-on { opacity: 1; }
.gaveta {
  position: fixed; z-index: 100; top: 0; right: 0; bottom: 0; width: min(440px, 100%);
  display: flex; flex-direction: column;
  background: linear-gradient(180deg, #1F0D28, #120717);
  border-left: 1px solid rgba(201, 163, 90, .35);
  transform: translateX(105%); transition: transform .45s var(--ease); visibility: hidden;
}
.gaveta.is-aberta { transform: none; visibility: visible; }
.gaveta__cab { display: flex; justify-content: space-between; align-items: center; padding: 20px 22px; border-bottom: 1px solid rgba(201, 163, 90, .2); }
.gaveta__cab h2 { margin: 0; font: 600 1.9rem/1 var(--serif); color: var(--ouro-claro); }
.gaveta__corpo { flex: 1; overflow-y: auto; padding: 18px 22px 28px; overscroll-behavior: contain; }
.sel-lista { list-style: none; margin: 0; padding: 0; }
.sel-item { display: grid; grid-template-columns: 1fr auto auto; gap: 12px; align-items: center; padding: 14px 0; border-bottom: 1px solid rgba(241, 233, 218, .1); }
.sel-item__nome { margin: 0; font: 600 1.2rem/1.15 var(--serif); }
.sel-item__var { display: block; font-size: .84rem; color: var(--texto-2); font-family: var(--sans); font-weight: 400; margin-top: 2px; }
.sel-item__preco { font-size: .95rem; color: var(--ouro-claro); white-space: nowrap; }
.sel-item__tirar { width: 34px; height: 34px; border-radius: 50%; background: none; border: 1px solid rgba(241, 233, 218, .2); color: var(--texto-2); display: grid; place-items: center; }
.sel-item__tirar:hover { border-color: var(--ouro); color: var(--ouro-claro); }
.sel-item__tirar svg { width: 14px; height: 14px; }
.sel-vazia { color: var(--texto-2); margin: 6px 0 20px; }
.sel-total { display: flex; justify-content: space-between; align-items: baseline; margin: 14px 0 22px; }
.sel-total span { color: var(--texto-2); }
.sel-total strong { font: 700 1.9rem/1 var(--serif); color: var(--ouro-claro); }
.sel-form { display: grid; gap: 14px; padding-top: 6px; }
.campo { display: grid; gap: 6px; border: 0; margin: 0; padding: 0; min-width: 0; }
.campo > span, .campo legend { font-size: .86rem; color: var(--texto-2); padding: 0; }
.campo input, .campo select, .campo textarea {
  width: 100%; min-height: 46px; padding: 10px 12px;
  background: rgba(5, 3, 7, .55); border: 1px solid rgba(201, 163, 90, .35); border-radius: 3px; color: var(--texto);
  color-scheme: dark;
}
.campo input::placeholder { color: rgba(241, 233, 218, .45); }
.campo textarea { resize: vertical; min-height: 64px; }
.campo input:focus, .campo select:focus, .campo textarea:focus { outline: none; border-color: var(--ouro-claro); box-shadow: 0 0 0 3px rgba(201, 163, 90, .2); }
.campo--opcoes { display: flex; flex-wrap: wrap; gap: 8px; }
.campo--opcoes legend { width: 100%; margin-bottom: 6px; }
.campo--opcoes label { position: relative; flex: 1; }
.campo--opcoes input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.campo--opcoes span { display: block; text-align: center; padding: 11px 10px; border: 1px solid rgba(201, 163, 90, .35); border-radius: 3px; font-size: .92rem; transition: background-color .2s, border-color .2s; }
.campo--opcoes input:checked + span { background: var(--ametista); border-color: var(--ouro); color: #fff; }
.campo--opcoes input:focus-visible + span { outline: 2px solid var(--ouro-claro); outline-offset: 2px; }
.campo__nota { flex: 0 0 100%; margin: 2px 0 0; font-size: .82rem; line-height: 1.4; color: rgba(241, 233, 218, .7); }
.campo-dupla { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.sel-erro { margin: 0; color: #F2B8C6; font-size: .9rem; }
.sel-nota { margin: 0; font-size: .82rem; color: rgba(241, 233, 218, .7); }

.cartaz { padding: 0; border: 0; background: transparent; max-width: min(560px, 92vw); max-height: 92vh; overflow: visible; }
.cartaz::backdrop { background: rgba(5, 3, 7, .88); backdrop-filter: blur(4px); }
.cartaz img { max-height: 88vh; width: auto; box-shadow: 0 0 0 1px rgba(201, 163, 90, .5), 0 40px 80px -30px #000; }
.cartaz__fechar { position: absolute; top: -14px; right: -14px; background: var(--ameixa); z-index: 1; }

.aviso {
  position: fixed; left: 50%; bottom: 24px; z-index: 120;
  transform: translate(-50%, calc(100% + 40px)); visibility: hidden; padding: 14px 20px; max-width: calc(100% - 32px);
  background: var(--pergaminho); color: var(--tinta); font-size: .95rem;
  box-shadow: 0 20px 40px -14px rgba(0, 0, 0, .8), inset 0 0 0 1px rgba(142, 106, 44, .5);
  transition: transform .45s var(--ease), visibility 0s .45s;
  display: flex; gap: 14px; align-items: center;
}
.aviso.is-on { transform: translate(-50%, 0); visibility: visible; transition: transform .45s var(--ease); }
.aviso button { background: none; border: 0; padding: 0; color: var(--ametista); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; }

/* =========================================================
   Responsivo
   ========================================================= */
@media (max-width: 1240px) {
  .marca__nome { display: grid; grid-template-columns: auto auto; justify-content: start; align-items: baseline; column-gap: 0; }
  .marca__casa { grid-column: 1 / -1; margin-top: 4px; font: 500 .7rem/1 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--texto-2); }
}

@media (max-width: 1080px) {
  .menu { gap: 20px; }
  .lua-hoje { left: -4%; }
}

@media (max-width: 960px) {
  :root { --topo-h: 64px; }
  .hamb { display: block; }
  .topo__cta { display: none; }
  .menu {
    position: fixed; inset: var(--topo-h) 0 auto; z-index: 59;
    flex-direction: column; align-items: stretch; gap: 0;
    padding: 10px var(--gutter) 24px;
    background: #07040A; border-bottom: 1px solid rgba(201, 163, 90, .25);
    transform: translateY(-12px); opacity: 0; visibility: hidden;
    transition: opacity .3s, transform .3s var(--ease), visibility .3s;
  }
  .menu.is-aberto { opacity: 1; transform: none; visibility: visible; }
  .menu a { padding: 15px 2px; font: 600 1.6rem/1.1 var(--serif); color: var(--texto); border-bottom: 1px solid rgba(201, 163, 90, .15); }
  .menu a::after { left: auto; right: 6px; top: 50%; bottom: auto; }
  .menu__whats { display: flex !important; align-items: center; gap: 10px; font: 500 1rem/1 var(--sans) !important; color: var(--ouro-claro) !important; border-bottom: 0 !important; }
  .menu__whats svg { width: 22px; height: 22px; }

  /* hero empilhado: título, palco, texto, botões */
  .hero { padding-top: calc(var(--topo-h) + 22px); }
  .hero__in { grid-template-columns: 1fr; grid-template-areas: "titulo" "palco" "sub" "acoes"; grid-template-rows: auto; }
  .hero__titulo { margin-bottom: 8px; text-align: center; }
  .palco { width: min(100%, 460px); margin-bottom: 26px; }
  .lua-hoje { position: relative; left: auto; bottom: auto; width: 100%; margin-top: -36px; }
  .hero__sub { text-align: center; margin-inline: auto; }
  .hero__acoes { justify-content: center; }

  .livro__fitas { padding-left: 0; }
  .livro__aberto { grid-template-columns: 1fr; padding: 10px; }
  .livro__lombada { display: none; }
  .pagina { min-height: 0; box-shadow: none !important; border-radius: 3px; }
  .pagina--servico { display: none; transform-origin: center; }
  .livro.is-detalhe .pagina--indice { display: none; }
  .livro.is-detalhe .pagina--servico { display: block; }
  .pagina--servico.is-virando { animation-name: virar-mob; }
  @keyframes virar-mob { 0% { transform: rotateY(-70deg); opacity: 0; } 100% { transform: rotateY(0); opacity: 1; } }
  .pagina__rodape { position: static; margin-top: 20px; }
  .servico__voltar { display: inline-block; }

  .presente__in { grid-template-columns: 1fr; }
  .presente__cena { order: -1; }

  .emerg__in { grid-template-columns: 1fr; gap: 40px; }
  .emerg__selo { width: min(100%, 400px); }
  .coven__in { grid-template-columns: 1fr; gap: 44px; }
  .coven__medalhao { position: relative; top: 0; width: min(100%, 460px); }
  .explica { grid-template-columns: 1fr; justify-items: center; }
  .explica__tela { width: min(100%, 320px); }
  .explica__txt { width: 100%; }

  .turmas { grid-template-columns: 1fr; }
  .turmas__lista {
    display: flex; gap: 8px; overflow-x: auto; scroll-snap-type: x mandatory;
    margin: 0 calc(-1 * var(--gutter)); padding: 0 var(--gutter) 6px; scrollbar-width: none;
  }
  .turmas__lista::-webkit-scrollbar { display: none; }
  .turmas__grupo { display: none; }
  .turma {
    flex: none; width: 236px; scroll-snap-align: start; border-left: 0; border-top: 2px solid transparent;
    background: rgba(5, 3, 7, .35); box-shadow: inset 0 0 0 1px rgba(201, 163, 90, .2);
  }
  .turma[aria-selected="true"] { border-top-color: var(--ouro); }
  .turma { grid-template-columns: 48px 1fr; gap: 10px; padding: 10px 12px; align-items: start; }
  .turma__nome { font-size: 1.1rem; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
  .turma__dia { font-size: 1.6rem; }
  .turmas__painel { position: static; }

  .mesa__grade { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cena:nth-child(3n + 2) { transform: none; }
  .cena:nth-child(2n) { transform: translateY(36px); }
  .mesa__redes { margin-top: 64px; }

  .sobre__in, .agendar__in { grid-template-columns: 1fr; }
  .sobre__fotos { position: relative; top: 0; max-width: 520px; padding-bottom: 10px; }
  .agendar__foto { max-width: 380px; width: 100%; margin: 0 auto; }
  .rodape__in { grid-template-columns: 1fr 1fr; }
  .rodape__marca { grid-column: 1 / -1; }
}

@media (max-width: 600px) {
  body { font-size: 1rem; }
  .marca { gap: 8px; }
  .marca__simbolo { width: 34px; height: 17px; }
  .marca__nome { font-size: 1.22rem; }
  .marca__casa { font-size: .6rem; letter-spacing: .12em; }
  .hero__titulo { font-size: clamp(2.6rem, 12.5vw, 3.5rem); }
  .hero__acoes .btn { flex: 1 1 100%; }
  .hero__lema { gap: 10px; font-size: 1.1rem; }
  .hero__lema svg { width: 26px; height: 13px; }
  .lua-hoje { grid-template-columns: 46px 1fr; gap: 12px; padding: 14px; }
  .lua-hoje__disco { width: 46px; height: 46px; }
  .anel__rotulo { font-size: 22px; }

  .livro__fitas { gap: 4px; }
  .fita { flex: 1 1 0; padding: 12px 6px 20px; font-size: .84rem; text-align: center; }
  .fita__longo { display: none; }
  .fita__curto { display: inline; }
  .pagina { padding: 30px 22px; }
  .pagina::after { inset: 8px; }
  .indice__pontos { display: none; }
  .indice button { justify-content: space-between; gap: 14px; padding-left: 16px; }
  .indice button[aria-current="true"] { padding-left: 16px; }
  .indice__nome { font-size: 1.18rem; }
  .indice__preco { padding-top: 3px; }
  .servico__acoes .btn { flex-basis: 100%; }

  .presente__form .btn { justify-self: stretch; }
  .gcard { --rx: 4deg; --ry: -8deg; }

  .turmas__painel {
    grid-template-columns: 112px minmax(0, 1fr);
    grid-template-areas: "poster cab" "corpo corpo";
    column-gap: 14px; padding: 14px;
  }
  .painel__poster span { display: none; }
  .painel__titulo { font-size: 1.5rem; }
  .painel__meta { font-size: .84rem; }
  .painel__corpo { margin-top: 14px; }
  .painel__acoes .btn { flex: 1 1 100%; }

  .emerg__fatos { grid-template-columns: 1fr; gap: 10px; }
  .emerg__qtd { gap: 8px; }
  .emerg__qtd b { font-size: 2rem; }
  .emerg__qtd span { padding: 12px 4px 10px; font-size: .8rem; }
  .emerg__enviar { justify-self: stretch; }
  .emerg__enviar span { white-space: normal; }
  .emerg__aro { font-size: 30px; }

  .coven__no b { font-size: .64rem; padding: 3px 7px; top: 11px; }
  .coven__no i { width: 7px; height: 7px; }
  .coven__citacao { padding-left: 16px; }
  .coven__texto .btn { width: 100%; }

  .explica { padding: 12px; }
  .explica__tela { width: min(100%, 290px); }
  .explica__marcos button { font-size: 1.08rem; gap: 12px; }

  .vip { grid-template-columns: auto 1fr; }
  .vip__cta { grid-column: 1 / -1; border-left: 0; border-top: 1px dashed rgba(201, 163, 90, .6); text-align: center; padding: 10px 0 0; }

  .mesa__redes { flex-direction: column; }
  .mesa__grade { gap: 10px; }
  .cena__txt { padding: 40px 12px 12px; }
  .cena__txt strong { font-size: 1.08rem; }
  .cena__txt em { font-size: .74rem; }

  .sobre__fotos { gap: 12px; }
  .sobre__foto--luz { margin-top: 44px; }
  .creio li { font-size: 1.4rem; }
  .depo-item { flex-basis: min(66vw, 240px); }
  .depo-card__frase { font-size: .98rem; }
  .passos li { padding-left: 58px; }
  .rodape__in { grid-template-columns: 1fr; gap: 30px; }
  .gaveta { width: 100%; }
  .campo-dupla { grid-template-columns: 1fr; }
}

/* alvos de toque confortáveis no celular */
@media (pointer: coarse) {
  .marca { padding-block: 10px; }
  .lua-hoje__link { padding: 10px 0; }
  .servico__voltar { padding: 10px 0; }
  .rodape__nav a { padding: 9px 0; }
  .rodape__nav { gap: 0 20px; }
  .rodape__links a { padding: 6px 0; }
  .mesa__insta { padding: 8px 0; }
  .explica__yt { padding: 8px 0; }
}

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