/* =========================================================
   Vinicirque — site público
   Paleta: Noite, Veludo, Marfim, Fumaça + luz de LED (magenta, âmbar, ciano)
   Tipos: Bodoni Moda (títulos) · Jost (texto)
   ========================================================= */

:root {
  --noite: #0E0B12;
  --veludo: #19131F;
  --veludo-2: #241B2C;
  --marfim: #EDE6DA;
  --fumaca: #A99EAD;
  --ambar: #F2B657;
  --magenta: #FF4FA3;
  --ciano: #52D6FF;
  --linha: rgba(237, 230, 218, .14);
  --luz: linear-gradient(90deg, var(--magenta), var(--ambar) 50%, var(--ciano));

  --serifa: "Bodoni Moda", "Didot", "Bodoni 72", Georgia, serif;
  --sans: "Jost", "Avenir Next", "Helvetica Neue", Arial, sans-serif;

  --margem: clamp(20px, 5vw, 64px);
  --largura: 1240px;
  --raio: 4px;
  --ease: cubic-bezier(.2, .7, .2, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--noite);
  color: var(--marfim);
  font-family: var(--sans);
  font-size: 17px;
  line-height: 1.6;
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
}
[hidden] { display: none !important; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; }
button { font: inherit; color: inherit; }
:focus-visible { outline: 2px solid var(--ambar); outline-offset: 3px; }
::selection { background: var(--magenta); color: var(--noite); }

.sr, .pular:not(:focus) {
  position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap;
}
.pular:focus { position: fixed; top: 8px; left: 8px; z-index: 100; background: var(--marfim); color: var(--noite); padding: 10px 14px; }

.suave { color: var(--fumaca); }
.pequeno { font-size: 14px; }
.rotulo {
  margin: 0 0 12px;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--fumaca);
}

.faixa-previa {
  background: var(--ambar); color: var(--noite);
  font-size: 12px; font-weight: 500; letter-spacing: .06em; text-align: center; padding: 6px 12px;
}

/* ---------- Tipografia ---------- */
.titulo-pagina, .titulo-secao, .hero-titulo, .card-numero-nome, .evento-titulo, .marca, .rodape-marca, .rodape-frase {
  font-family: var(--serifa);
  font-weight: 500;
  letter-spacing: -.01em;
}
.titulo-pagina { font-size: clamp(2.6rem, 9vw, 5.2rem); line-height: 1.02; margin: 0 0 20px; font-variation-settings: "opsz" 96; }
.titulo-secao { font-size: clamp(2rem, 6.4vw, 3.4rem); line-height: 1.06; margin: 0 0 16px; font-variation-settings: "opsz" 72; }
.titulo-secao em, .titulo-pagina em { font-style: italic; color: var(--ambar); }
.citacao { font-family: var(--serifa); font-style: italic; font-size: clamp(1.3rem, 4.4vw, 1.8rem); line-height: 1.35; margin: 0 0 24px; }

/* ---------- Botões ---------- */
.botao {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 52px; padding: 0 26px;
  border-radius: 999px; border: 1px solid transparent;
  font-size: 15px; font-weight: 500; letter-spacing: .04em;
  text-decoration: none; cursor: pointer;
  transition: box-shadow .35s var(--ease), background-color .35s var(--ease), transform .2s var(--ease);
}
.botao:active { transform: scale(.98); }
.botao-luz { background: var(--marfim); color: var(--noite); }
.botao-luz:hover { box-shadow: 0 0 0 1px var(--ambar), 0 0 28px rgba(242, 182, 87, .45), 0 0 60px rgba(255, 79, 163, .2); }
.botao-contorno { border-color: var(--linha); background: rgba(14, 11, 18, .35); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.botao-contorno:hover { border-color: var(--marfim); }
.botao-pequeno { min-height: 44px; padding: 0 18px; font-size: 14px; }
.botao-largo { width: 100%; }
.link-seta { color: var(--marfim); text-decoration: none; border-bottom: 1px solid var(--ambar); padding-bottom: 2px; font-weight: 500; }
.link-seta::after { content: " →"; }

/* ---------- Topo ---------- */
.topo {
  position: sticky; top: 0; z-index: 30;
  display: flex; align-items: center; justify-content: space-between;
  padding: 14px var(--margem);
  padding-top: max(14px, env(safe-area-inset-top));
  background: linear-gradient(to bottom, rgba(14, 11, 18, .92), rgba(14, 11, 18, .72));
  backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--linha);
}
.marca { font-size: 26px; font-style: italic; text-decoration: none; }
.menu { display: flex; gap: 28px; align-items: center; }
.menu a { text-decoration: none; font-size: 15px; letter-spacing: .04em; color: var(--fumaca); padding: 6px 0; }
.menu a:hover, .menu a[aria-current="page"] { color: var(--marfim); }
.menu .menu-orcamento { color: var(--marfim); border: 1px solid var(--linha); border-radius: 999px; padding: 8px 16px; display: inline-flex; align-items: center; gap: 8px; }
.contador {
  display: inline-grid; place-items: center; min-width: 22px; height: 22px; padding: 0 6px;
  border-radius: 999px; background: var(--ambar); color: var(--noite); font-size: 12px; font-weight: 500;
}
.menu-botao { display: none; }

@media (max-width: 760px) {
  .menu-botao {
    display: grid; place-items: center; width: 48px; height: 48px; margin-right: -12px;
    background: none; border: 0; cursor: pointer;
  }
  .menu-botao-linhas, .menu-botao-linhas::before, .menu-botao-linhas::after {
    display: block; width: 24px; height: 1.5px; background: var(--marfim); position: relative; transition: transform .3s var(--ease);
  }
  .menu-botao-linhas::before, .menu-botao-linhas::after { content: ""; position: absolute; left: 0; }
  .menu-botao-linhas::before { top: -7px; }
  .menu-botao-linhas::after { top: 7px; }
  .menu-botao[aria-expanded="true"] .menu-botao-linhas { background: transparent; }
  .menu-botao[aria-expanded="true"] .menu-botao-linhas::before { transform: translateY(7px) rotate(45deg); }
  .menu-botao[aria-expanded="true"] .menu-botao-linhas::after { transform: translateY(-7px) rotate(-45deg); }

  .menu {
    position: absolute; top: 100%; left: 0; right: 0;
    flex-direction: column; align-items: stretch; gap: 0;
    padding: 8px var(--margem) 24px;
    background: var(--noite); border-bottom: 1px solid var(--linha);
    display: none;
  }
  .menu.aberto { display: flex; }
  .menu a { font-family: var(--serifa); font-size: 30px; color: var(--marfim); padding: 12px 0; border-bottom: 1px solid var(--linha); }
  .menu .menu-orcamento { border: 0; border-radius: 0; padding: 12px 0; justify-content: space-between; }
}

/* ---------- Hero ---------- */
.hero {
  position: relative;
  min-height: calc(100svh - 64px);
  display: flex; align-items: flex-end;
  padding: 0 var(--margem) clamp(40px, 8vh, 96px);
  overflow: hidden;
  isolation: isolate;
}
.hero-fundo, .hero-fundo img { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero-fundo { z-index: -1; }
.hero-fundo img { object-fit: cover; object-position: 60% 40%; opacity: .7; }
.hero::after {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(to top, var(--noite) 8%, rgba(14, 11, 18, .55) 45%, rgba(14, 11, 18, .15));
}
.hero-conteudo { width: 100%; max-width: var(--largura); margin: 0 auto; }
.hero-rotulo { color: var(--marfim); opacity: .85; }
.hero-texto { max-width: 34ch; font-size: clamp(17px, 2.2vw, 20px); margin: 8px 0 28px; }
.hero-acoes { display: flex; flex-wrap: wrap; gap: 12px; }

/* A assinatura: um anel de LED que orbita a palavra — passa por trás no alto e pela frente embaixo */
.orbita { position: relative; display: inline-block; margin: 4px 0 26px; padding: 0 2px; }
.hero-titulo {
  position: relative; z-index: 1;
  margin: 0;
  font-size: clamp(3.6rem, 17vw, 10.5rem);
  line-height: .95;
  font-style: italic;
  font-weight: 500;
  font-variation-settings: "opsz" 96;
  letter-spacing: -.025em;
}
.orbita-anel {
  position: absolute; left: -9%; top: 54%;
  width: 118%; height: auto;
  transform: translateY(-50%);
  overflow: visible;
  pointer-events: none;
}
.orbita-atras { z-index: 0; }
.orbita-frente { z-index: 2; }
.orbita-traco {
  fill: none;
  stroke-width: 2.2;
  stroke-linecap: round;
  stroke-dasharray: 100;
  stroke-dashoffset: 100;
  filter: drop-shadow(0 0 3px rgba(255, 255, 255, .5)) drop-shadow(0 0 10px rgba(255, 79, 163, .55)) drop-shadow(0 0 22px rgba(82, 214, 255, .35));
  animation: desenhar 1.6s var(--ease) forwards;
}
.orbita-atras .orbita-traco { stroke: url(#luz-a); opacity: .55; }
.orbita-frente .orbita-traco { stroke: url(#luz-b); animation-delay: 1.2s; }
@keyframes desenhar { to { stroke-dashoffset: 0; } }

/* ---------- Seções ---------- */
.secao { max-width: var(--largura); margin: 0 auto; padding: clamp(64px, 12vw, 140px) var(--margem) 0; }
.secao-primeira { padding-top: clamp(40px, 8vw, 96px); }
.secao-cabeca { max-width: 720px; margin-bottom: clamp(28px, 5vw, 48px); }
.secao-cabeca-linha { max-width: none; display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; }
.secao-intro { color: var(--fumaca); font-size: 18px; max-width: 56ch; margin: 0; }

/* Trilho de cards (rolagem lateral no celular) */
.trilho {
  display: grid; grid-auto-flow: column; grid-auto-columns: min(78%, 320px); gap: 16px;
  overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-x: contain;
  margin: 0 calc(var(--margem) * -1); padding: 0 var(--margem) 8px;
  scroll-padding: 0 var(--margem);
  scrollbar-width: none;
}
.trilho::-webkit-scrollbar { display: none; }
.trilho > * { scroll-snap-align: start; }
@media (min-width: 1000px) {
  .trilho { grid-auto-flow: row; grid-template-columns: repeat(4, 1fr); overflow: visible; margin: 0; padding: 0; }
}
.grade-numeros { display: grid; gap: 40px 20px; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }

/* Card de número */
.card-numero { display: flex; flex-direction: column; }
.card-numero-link { text-decoration: none; display: block; flex: 1; }
.card-numero-foto { margin: 0 0 16px; aspect-ratio: 4 / 5; overflow: hidden; border-radius: var(--raio); background: var(--veludo); }
.card-numero-foto img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease), filter .6s; }
.card-numero-link:hover img { transform: scale(1.04); filter: brightness(1.15); }
.card-numero-nome { font-size: 30px; line-height: 1.05; margin: 0 0 6px; }
.card-numero-resumo { margin: 0 0 16px; color: var(--fumaca); font-size: 16px; }

.botao-escolher {
  min-height: 48px; width: 100%;
  border: 1px solid var(--linha); border-radius: 999px; background: transparent;
  font-size: 14px; letter-spacing: .04em; cursor: pointer;
  transition: border-color .3s, background-color .3s, color .3s;
}
.botao-escolher:hover { border-color: var(--marfim); }
[data-escolher] [data-rotulo-on] { display: none; }
[data-escolher][aria-pressed="true"] [data-rotulo-on] { display: inline; }
[data-escolher][aria-pressed="true"] [data-rotulo-off] { display: none; }
.botao-escolher[aria-pressed="true"] { border-color: var(--ambar); color: var(--ambar); }
.botao-escolher[aria-pressed="true"]::before { content: "✓ "; }

/* Passos */
.passos { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; counter-reset: passo; }
.passos li { counter-increment: passo; display: grid; grid-template-columns: 56px 1fr; column-gap: 8px; padding: 24px 0; border-top: 1px solid var(--linha); }
.passos li::before { content: counter(passo); grid-row: span 2; font-family: var(--serifa); font-style: italic; font-size: 40px; line-height: 1; color: var(--ambar); }
.passos h3 { margin: 0 0 4px; font-size: 20px; font-weight: 500; }
.passos p { margin: 0; color: var(--fumaca); }
@media (min-width: 900px) {
  .passos { grid-template-columns: repeat(3, 1fr); gap: 32px; }
}

/* Sobre (na página inicial) */
.secao-sobre { display: grid; gap: 32px; align-items: center; }
.sobre-foto { margin: 0; aspect-ratio: 4 / 5; overflow: hidden; border-radius: var(--raio); max-width: 520px; }
.sobre-foto img { width: 100%; height: 100%; object-fit: cover; }
@media (min-width: 900px) { .secao-sobre { grid-template-columns: 5fr 6fr; gap: 72px; } }

/* Lista de eventos */
.lista-eventos { list-style: none; margin: 0; padding: 0; }
.linha-evento { display: grid; grid-template-columns: 88px 1fr; gap: 18px; align-items: center; padding: 18px 0; border-top: 1px solid var(--linha); }
.linha-evento:last-child { border-bottom: 1px solid var(--linha); }
.linha-evento img { width: 88px; height: 110px; object-fit: cover; border-radius: var(--raio); }
.linha-evento h3 { font-family: var(--serifa); font-weight: 500; font-size: 24px; line-height: 1.1; margin: 0 0 4px; }
.linha-evento .rotulo { margin-bottom: 6px; }
.linha-evento p { margin: 0; }

/* ---------- Página de número ---------- */
.numero { max-width: var(--largura); margin: 0 auto; display: grid; gap: 28px; padding: 0 0 0; }
.numero-texto { padding: 0 var(--margem); }
.numero-resumo { font-family: var(--serifa); font-style: italic; font-size: 22px; line-height: 1.35; margin: 0 0 16px; }
.fichas { margin: 28px 0; display: grid; gap: 0; }
.fichas div { padding: 16px 0; border-top: 1px solid var(--linha); }
.fichas div:last-child { border-bottom: 1px solid var(--linha); }
.fichas dt { font-size: 12px; letter-spacing: .16em; text-transform: uppercase; color: var(--fumaca); margin-bottom: 4px; }
.fichas dd { margin: 0; }
.botao-escolher-grande[aria-pressed="true"] { background: transparent; color: var(--ambar); border-color: var(--ambar); }
@media (min-width: 900px) {
  .numero { grid-template-columns: 1.1fr 1fr; gap: 64px; padding: 48px var(--margem) 0; align-items: start; }
  .numero-texto { padding: 0; position: sticky; top: 100px; }
}

/* Carrossel */
.carrossel { position: relative; }
.carrossel-faixa {
  display: grid; grid-auto-flow: column; grid-auto-columns: 100%;
  overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain;
}
.carrossel-faixa::-webkit-scrollbar { display: none; }
.carrossel-item { margin: 0; scroll-snap-align: center; aspect-ratio: 4 / 5; background: var(--veludo); }
.carrossel-item img { width: 100%; height: 100%; object-fit: cover; }
.carrossel-controles { display: flex; align-items: center; justify-content: space-between; padding: 10px var(--margem); }
.carrossel-seta {
  width: 48px; height: 48px; border-radius: 50%; border: 1px solid var(--linha); background: transparent;
  font-size: 26px; line-height: 1; cursor: pointer;
}
.carrossel-seta:disabled { opacity: .3; cursor: default; }
.carrossel-contador { margin: 0; font-size: 14px; letter-spacing: .12em; color: var(--fumaca); }
@media (min-width: 900px) { .carrossel-item { border-radius: var(--raio); overflow: hidden; } .carrossel-controles { padding: 12px 0; } }

/* ---------- Sobre ---------- */
.sobre { max-width: 860px; margin: 0 auto; padding: clamp(40px, 8vw, 96px) var(--margem) 0; }
.sobre-destaque { margin: 32px calc(var(--margem) * -1); aspect-ratio: 4 / 5; overflow: hidden; }
.sobre-destaque img { width: 100%; height: 100%; object-fit: cover; }
@media (min-width: 700px) { .sobre-destaque { margin: 40px 0; aspect-ratio: 16 / 10; border-radius: var(--raio); } }
.sobre-corpo p { font-size: 18px; margin: 0 0 1.2em; }
.sobre-corpo p:first-child::first-letter {
  font-family: var(--serifa); font-style: italic; float: left; font-size: 4.4em; line-height: .85; padding: 6px 10px 0 0; color: var(--ambar);
}
.trajetoria { margin-top: 56px; }
.linha-tempo { list-style: none; margin: 0; padding: 0; }
.linha-tempo li { display: grid; grid-template-columns: 76px 1fr; gap: 12px; padding: 16px 0; border-top: 1px solid var(--linha); }
.linha-tempo-ano { font-family: var(--serifa); font-style: italic; font-size: 24px; color: var(--ambar); line-height: 1.2; }
.linha-tempo p { margin: 0; }
.sobre-galeria { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 48px; }
.sobre-galeria img { aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--raio); width: 100%; }

/* ---------- Eventos ---------- */
.eventos { display: grid; gap: 56px; }
.evento-fotos {
  display: grid; grid-auto-flow: column; grid-auto-columns: 72%; gap: 10px;
  overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none;
  margin: 0 calc(var(--margem) * -1) 20px; padding: 0 var(--margem);
}
.evento-fotos::-webkit-scrollbar { display: none; }
.evento-fotos img { aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--raio); scroll-snap-align: start; width: 100%; }
.evento-titulo { font-size: clamp(28px, 6vw, 40px); line-height: 1.08; margin: 0 0 6px; }
.evento-texto p { margin: 0 0 8px; }
@media (min-width: 900px) {
  .evento { display: grid; grid-template-columns: 1.4fr 1fr; gap: 48px; align-items: center; }
  .evento-fotos { grid-auto-columns: 48%; margin: 0; padding: 0; }
}

/* ---------- Formulário de orçamento ---------- */
.orcamento { max-width: 760px; }
.formulario { display: grid; gap: 40px; }
.etapa { border: 0; margin: 0; padding: 0; min-width: 0; }
.etapa legend {
  display: flex; align-items: center; gap: 12px;
  font-family: var(--serifa); font-size: 28px; font-weight: 500; margin-bottom: 20px; padding: 0;
}
.etapa-num {
  display: inline-grid; place-items: center; width: 36px; height: 36px; border-radius: 50%;
  border: 1px solid var(--ambar); color: var(--ambar); font-size: 18px; font-style: italic;
}
.escolhas { display: grid; gap: 10px; }
.escolha {
  position: relative; display: grid; grid-template-columns: 64px 1fr 28px; gap: 14px; align-items: center;
  padding: 10px 14px 10px 10px; border: 1px solid var(--linha); border-radius: 10px; cursor: pointer;
  transition: border-color .25s, background-color .25s;
}
.escolha input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.escolha img { width: 64px; height: 80px; object-fit: cover; border-radius: 6px; }
.escolha-texto { display: grid; }
.escolha-texto strong { font-family: var(--serifa); font-size: 22px; font-weight: 500; line-height: 1.1; }
.escolha-texto .suave { font-size: 14px; }
.escolha-marca { width: 28px; height: 28px; border-radius: 50%; border: 1px solid var(--fumaca); display: grid; place-items: center; }
.escolha:has(input:checked) { border-color: var(--ambar); background: rgba(242, 182, 87, .06); }
.escolha:has(input:checked) .escolha-marca { background: var(--ambar); border-color: var(--ambar); }
.escolha:has(input:checked) .escolha-marca::after { content: "✓"; color: var(--noite); font-size: 15px; font-weight: 500; }
.escolha:has(input:focus-visible) { outline: 2px solid var(--ambar); outline-offset: 2px; }

.campo { display: grid; gap: 6px; margin-bottom: 18px; }
.campo label, .campo-dupla label { font-size: 15px; font-weight: 500; }
.opcional { font-weight: 400; color: var(--fumaca); font-size: 13px; margin-left: 4px; }
.campo-dupla { display: grid; grid-template-columns: 1.6fr 1fr; gap: 12px; }
input[type="text"], input[type="email"], input[type="tel"], input[type="number"], input[type="date"], select, textarea {
  width: 100%; min-height: 52px; padding: 12px 14px;
  font: inherit; font-size: 16px; /* 16px evita o zoom automático do iPhone */
  color: var(--marfim); background: var(--veludo);
  border: 1px solid var(--linha); border-radius: 8px;
  -webkit-appearance: none; appearance: none;
}
input::placeholder { color: rgba(169, 158, 173, .7); }
input[type="date"] { display: block; }
select {
  background-image: linear-gradient(45deg, transparent 50%, var(--fumaca) 50%), linear-gradient(135deg, var(--fumaca) 50%, transparent 50%);
  background-position: calc(100% - 20px) 50%, calc(100% - 14px) 50%;
  background-size: 6px 6px; background-repeat: no-repeat; padding-right: 40px;
}
input:focus, select:focus { border-color: var(--ambar); outline: none; box-shadow: 0 0 0 3px rgba(242, 182, 87, .2); }
[aria-invalid="true"] { border-color: var(--magenta) !important; }
.campo-erro { color: #FF8CC3; font-size: 14px; margin: 0; }
.alerta { border: 1px solid var(--magenta); background: rgba(255, 79, 163, .08); border-radius: 8px; padding: 14px 16px; margin: 0 0 28px; }
.alerta-suave { border-color: var(--ambar); background: rgba(242, 182, 87, .08); }
.consentimento { display: grid; grid-template-columns: 24px 1fr; gap: 12px; align-items: start; font-size: 15px; color: var(--fumaca); cursor: pointer; }
.consentimento input { width: 22px; height: 22px; margin: 2px 0 0; accent-color: var(--ambar); }
.campo-robo { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.envio { display: grid; gap: 12px; }

/* Calendário do orçamento */
.campo-curto { max-width: 220px; }
.campo-data { position: relative; }
.cal { margin-top: 4px; padding: 14px 12px 12px; border: 1px solid var(--linha); border-radius: 12px; background: var(--veludo); }
.cal-topo { display: grid; grid-template-columns: 44px 1fr 44px; align-items: center; margin-bottom: 8px; }
.cal-topo h3 { margin: 0; text-align: center; font-family: var(--serifa); font-weight: 500; font-size: 22px; }
.cal-seta { width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--linha); background: transparent; font-size: 22px; cursor: pointer; }
.cal-seta:disabled { opacity: .25; cursor: default; }
.cal-semana, .cal-dias { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.cal-semana span { text-align: center; font-size: 12px; color: var(--fumaca); letter-spacing: .08em; padding-bottom: 4px; }
.cal-dia {
  position: relative; min-height: 46px; border: 0; border-radius: 10px; background: transparent;
  font-size: 16px; font-variant-numeric: tabular-nums; cursor: pointer; color: var(--marfim);
}
.cal-dia:hover:not(:disabled) { background: var(--veludo-2); }
.cal-dia:disabled { color: rgba(169, 158, 173, .35); cursor: default; }
.cal-dia.ocupado::after {
  content: ""; position: absolute; left: 50%; bottom: 6px; width: 6px; height: 6px; margin-left: -3px; border-radius: 50%;
  background: var(--ambar); box-shadow: 0 0 6px rgba(242, 182, 87, .8);
}
.cal-dia.ocupado { color: var(--ambar); }
.cal-dia.no-periodo { background: rgba(237, 230, 218, .1); border-radius: 0; }
.cal-dia[aria-pressed="true"] { background: var(--marfim); color: var(--noite); border-radius: 10px; }
.cal-dia[aria-pressed="true"].ocupado::after { background: var(--noite); box-shadow: none; }
.cal-legenda { display: flex; align-items: center; gap: 8px; margin: 10px 0 0; font-size: 14px; color: var(--fumaca); }
.cal-legenda i { width: 6px; height: 6px; border-radius: 50%; background: var(--ambar); box-shadow: 0 0 6px rgba(242, 182, 87, .8); }
.cal-escolhida { margin: 6px 0 0; font-weight: 500; }
.cal-escolhida:empty { display: none; }
.cal-aviso { margin: 8px 0 0; padding: 12px 14px; border-radius: 8px; border: 1px solid var(--ambar); background: rgba(242, 182, 87, .08); font-size: 15px; }
.campo-data.cal-ativo > input[type="date"] { position: absolute; opacity: 0; pointer-events: none; width: 1px; height: 1px; }

/* Confirmação */
.confirmacao { max-width: 640px; margin: 0 auto; padding: clamp(56px, 12vw, 120px) var(--margem) 0; text-align: center; }
.confirmacao .hero-acoes { justify-content: center; margin-top: 32px; }
.confirmacao .secao-intro { margin: 0 auto 24px; }
.confirmacao-anel { width: 120px; height: 120px; margin: 0 auto 24px; display: block; transform: rotate(-90deg); overflow: visible; }
.confirmacao-anel .orbita-traco { stroke: url(#luz-c); stroke-width: 3; animation-duration: 1.8s; }

/* Texto corrido (privacidade) */
.texto-corrido { max-width: 720px; }
.texto-corrido p { font-size: 18px; }

/* ---------- Rodapé ---------- */
.rodape { margin-top: clamp(80px, 14vw, 160px); border-top: 1px solid var(--linha); padding: 56px var(--margem) calc(40px + env(safe-area-inset-bottom)); }
.rodape > * { max-width: var(--largura); margin-left: auto; margin-right: auto; }
.rodape-chamada { display: grid; gap: 20px; justify-items: start; padding-bottom: 48px; border-bottom: 1px solid var(--linha); }
.rodape-frase { font-size: clamp(2.2rem, 8vw, 4rem); font-style: italic; margin: 0; line-height: 1.05; }
.rodape-grade { display: grid; gap: 28px; padding: 40px 0 24px; }
.rodape-marca { font-size: 28px; font-style: italic; margin: 0 0 8px; }
.rodape-links { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.rodape-links a { text-decoration: none; }
.rodape-links a:hover { color: var(--ambar); }
.rodape-links-menores { font-size: 14px; color: var(--fumaca); }
.rodape-fim { font-size: 13px; margin: 0; }
@media (min-width: 900px) {
  .rodape-chamada { grid-template-columns: 1fr auto; align-items: center; }
  .rodape-grade { grid-template-columns: 2fr 1.4fr 1fr; }
}

/* Barra "sua apresentação" (fica embaixo quando há números escolhidos) */
.barra-escolha {
  position: fixed; left: 12px; right: 12px; bottom: calc(12px + env(safe-area-inset-bottom)); z-index: 40;
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 10px 10px 10px 18px;
  background: rgba(36, 27, 44, .92); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
  border: 1px solid var(--linha); border-radius: 999px;
  box-shadow: 0 12px 40px rgba(0, 0, 0, .5);
  animation: subir .45s var(--ease);
}
.barra-escolha p { margin: 0; font-size: 14px; line-height: 1.3; }
.barra-escolha[hidden] { display: none; }
@keyframes subir { from { transform: translateY(120%); opacity: 0; } }
@media (min-width: 760px) { .barra-escolha { left: auto; right: 24px; width: 440px; } }

/* Aparição suave ao rolar */
.revelar { opacity: 0; transform: translateY(18px); transition: opacity .9s var(--ease), transform .9s var(--ease); }
.revelar.visivel { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-delay: 0s !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
  .orbita-traco { stroke-dashoffset: 0; }
  .revelar { opacity: 1; transform: none; }
}

/* Verificação anti-robô (Cloudflare Turnstile) */
.verificacao { min-height: 65px; }

/* Enquadramento da foto de capa escolhido no painel */
.hero-foco-topo img   { object-position: 60% 15%; }
.hero-foco-centro img { object-position: 60% 40%; }
.hero-foco-baixo img  { object-position: 60% 85%; }
