/* =====================================================================
   VOTAI — encerramento.css
   Encerramento das Eleições 2026: hero pós-eleição, resultado na home, arquivo, retrospectiva,
   em números, 1º × 2º turno e a animação de encerramento.
   Mesmo DNA: preto, #009440, #FFCB00, #302681, display enorme, mono nos detalhes, grade e pontos.
   Cores de candidatura só nos elementos de resultado.
   ===================================================================== */

/* ---------- hero pós-eleição ---------- */
.enc-hero { --mapa-op: 0.9; }
.enc-hero__mapa { position: absolute; inset: 6% -2% 8% 38%; display: grid; place-items: center; pointer-events: none; z-index: 0; }
.enc-hero__svg { width: min(720px, 100%); height: auto; }
.enc-pontos circle { fill: var(--tinta); opacity: calc(0.18 + var(--d) * 0.5); }
.enc-hero .enc-pontos circle { animation: enc-cintila 6s ease-in-out infinite; animation-delay: calc(var(--d) * -6s); }
@keyframes enc-cintila { 50% { opacity: 0.12; } }
.enc-arco { fill: none; stroke-width: 1.4; stroke-linecap: round; stroke-dasharray: 1; stroke-dashoffset: 1; }
.enc-arco--verde { stroke: var(--verde-luz); }
.enc-arco--amarelo { stroke: var(--amarelo); }
.enc-arco--indigo { stroke: var(--indigo-luz); }
.enc-hero .enc-arco { animation: enc-traco 2.4s var(--ease) forwards; animation-delay: calc(0.6s + var(--k) * 0.18s); opacity: 0.75; }
@keyframes enc-traco { to { stroke-dashoffset: 0; } }
.enc-hero__titulo { position: relative; z-index: 1; text-transform: uppercase; }
.enc-hero__l1 { font-size: clamp(3rem, 12vw, 14.5rem); font-weight: 900; line-height: 0.84; letter-spacing: -0.04em; }
.enc-hero__l2 { font-size: clamp(3rem, 12vw, 14.5rem); font-weight: 900; line-height: 0.84; letter-spacing: -0.04em; margin-left: 9vw; }
.enc-hero__base { position: relative; z-index: 1; grid-template-columns: minmax(0, 1fr) auto; align-items: end; }
.enc-hero__frase { font: 800 clamp(1.4rem, 3vw, 2.6rem)/1.02 var(--f-display); text-transform: uppercase; letter-spacing: -0.02em; }
.enc-hero__frase span { color: var(--amarelo); }
[data-theme="light"] .enc-hero__frase span { color: var(--verde); }
.enc-hero__ctas { display: flex; flex-wrap: wrap; gap: 12px 20px; align-items: center; }
@media (max-width: 700px) {
  .enc-hero__mapa { inset: 14% -20% 30% 10%; opacity: 0.55; }
  .enc-hero__l1 { font-size: 15vw; margin-left: 0; }   /* "ELEIÇÕES" inteiro na largura do celular */
  .enc-hero__l2 { font-size: 20vw; margin-left: 0; }
  .enc-hero__base { grid-template-columns: 1fr; }
  .enc-hero__ctas .btn-solid, .enc-hero__ctas .btn-line { flex: 1 1 100%; justify-content: space-between; }
}

/* ---------- resultado na home ---------- */
.enc-res { border-top: 1px solid var(--linha); }
.enc-res__cab { margin-bottom: 30px; }
.enc-res__espera { max-width: 56ch; font-size: 1.1rem; color: var(--tinta-2); padding: 20px; border: 1px dashed var(--linha-2); }
.enc-res__lista { display: grid; gap: 16px; }
@media (min-width: 900px) { .enc-res__lista { grid-template-columns: 1fr 1fr; gap: 24px; } }
.enc-res__cand {
  position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 12px 18px; align-items: start;
  padding: clamp(18px, 2.4vw, 28px); border: 1px solid var(--linha-2); background: var(--fundo-2);
}
[data-theme="light"] .enc-res__cand { background: #fbfaf5; }
.enc-res__cand::before { content: ""; position: absolute; left: -1px; top: -1px; bottom: -1px; width: 4px; background: var(--c); }
.enc-res__foto { width: 84px; }
.enc-res__num { font-size: 0.56rem; color: var(--tinta-3); }
.enc-res__nome { font: 900 clamp(1.4rem, 2.6vw, 2.1rem)/0.95 var(--f-display); text-transform: uppercase; margin-top: 4px; }
.enc-selo { display: inline-block; margin-top: 10px; padding: 6px 10px; border: 1px solid var(--tinta); font-size: 0.6rem; color: var(--tinta); letter-spacing: 0.14em; }
.enc-res__pct { grid-column: 1 / -1; font: 900 clamp(2.8rem, 7vw, 5rem)/0.9 var(--f-display); letter-spacing: -0.04em; font-variant-numeric: tabular-nums; display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; }
.enc-res__pct small { font-size: 0.56rem; color: var(--tinta-3); letter-spacing: 0.1em; }
.enc-res__votos { grid-column: 1 / -1; }
.enc-res__votos strong { font: 800 1.4rem var(--f-display); font-variant-numeric: tabular-nums; }
.enc-res__votos .mono { font-size: 0.56rem; color: var(--tinta-3); }
.enc-res__barra { grid-column: 1 / -1; height: 8px; background: var(--superficie-2); }
.enc-res__barra span { display: block; height: 100%; background: var(--c); }
.enc-res__rodape { display: flex; flex-wrap: wrap; gap: 6px 22px; margin: 22px 0 18px; font-size: 0.6rem; color: var(--tinta-2); }
.enc-res__rodape span:first-child { color: var(--tinta); }

/* ---------- blocos tocáveis (arquivo / home) ---------- */
.enc-arq { border-top: 1px solid var(--linha); }
.enc-arq__grade { display: grid; gap: 32px; }
@media (min-width: 1000px) { .enc-arq__grade { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 60px; align-items: end; } }
.enc-arq__cta { margin-top: 26px; }
.enc-arq .display { font-size: clamp(2.2rem, 5.4vw, 4.6rem); overflow-wrap: anywhere; }
.enc-arq__lista { display: grid; gap: 10px; }
.enc-bloco {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px 14px; align-content: start; height: 100%;
  min-height: 112px; padding: 18px 20px; border: 1px solid var(--linha-2); background: var(--superficie);
  transition: border-color 0.3s, background-color 0.3s, transform 0.4s var(--ease);
}
.enc-bloco:hover, .enc-bloco:focus-visible { border-color: var(--acento); background: var(--superficie-2); transform: translateY(-2px); }
.enc-bloco__n { grid-column: 1; font-size: 0.6rem; color: var(--amarelo); }
[data-theme="light"] .enc-bloco__n { color: var(--verde); }
.enc-bloco__tit { grid-column: 1; font: 800 clamp(1.1rem, 2vw, 1.45rem)/1.05 var(--f-display); text-transform: uppercase; }
.enc-bloco__desc { grid-column: 1; color: var(--tinta-2); font-size: 0.94rem; line-height: 1.45; }
.enc-bloco__seta { grid-column: 2; grid-row: 1 / span 3; align-self: center; font-size: 1.3rem; color: var(--tinta-3); transition: transform 0.4s var(--ease), color 0.3s; }
.enc-bloco:hover .enc-bloco__seta { transform: translateX(6px); color: var(--acento); }

/* ---------- arquivo ---------- */
.arq-topo { padding-top: clamp(96px, 12vw, 160px); }
.arq-topo .display { margin-top: 14px; }
.arq-topo__txt { margin-top: 26px; font: 800 clamp(1.3rem, 2.8vw, 2.3rem)/1.05 var(--f-display); text-transform: uppercase; }
.arq-topo__txt span { color: var(--amarelo); }
[data-theme="light"] .arq-topo__txt span { color: var(--verde); }
.arq-rever { margin-top: 24px; }
.arq-grupo { margin-top: clamp(50px, 6vw, 84px); }
.arq-grupo__tit { display: flex; gap: 14px; align-items: baseline; font-size: 0.66rem; color: var(--tinta-2); padding-bottom: 12px; border-bottom: 1px solid var(--linha-2); margin-bottom: 14px; }
.arq-grupo__tit span { color: var(--amarelo); }
[data-theme="light"] .arq-grupo__tit span { color: var(--verde); }
.arq-lista { display: grid; gap: 10px; }
@media (min-width: 760px) { .arq-lista { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1200px) { .arq-lista { grid-template-columns: repeat(3, 1fr); } }
.arq-lista--destaque .enc-bloco { min-height: 150px; border-color: var(--linha-2); background: linear-gradient(160deg, color-mix(in srgb, var(--indigo) 22%, transparent), transparent 60%), var(--fundo-2); }
[data-theme="light"] .arq-lista--destaque .enc-bloco { background: linear-gradient(160deg, rgba(48, 38, 129, 0.07), transparent 60%), #fbfaf5; }
.arq-lista .enc-bloco__n { grid-row: 3; }
.enc-vazio { margin-top: 40px; }
.enc-vazio p { max-width: 60ch; padding: 20px; border: 1px dashed var(--linha-2); color: var(--tinta-2); }
.enc-vazio a, .enc-link { border-bottom: 1px solid currentColor; }

/* ---------- retrospectiva ---------- */
.retro-linha { position: relative; margin-top: clamp(40px, 6vw, 80px); display: grid; }
.retro-linha::before { content: ""; position: absolute; top: 0; bottom: 0; left: calc(var(--g) + 92px); width: 1px; background: linear-gradient(var(--verde-luz), var(--amarelo), var(--indigo-luz)); opacity: 0.6; }
.retro-ev { position: relative; display: grid; grid-template-columns: 80px 24px minmax(0, 1fr); gap: 0 14px; padding-bottom: clamp(28px, 4vw, 48px); }
.retro-ev__data { font-size: 0.6rem; color: var(--tinta-2); text-align: right; padding-top: 4px; line-height: 1.3; }
.retro-ev__data strong { display: block; font: 900 1.9rem/1 var(--f-display); color: var(--tinta); letter-spacing: -0.02em; }
.retro-ev__marca { width: 13px; height: 13px; margin: 10px 0 0 6px; border-radius: 50%; background: var(--fundo); box-shadow: inset 0 0 0 2px var(--tinta-2); position: relative; z-index: 1; }
.retro-ev--resultado .retro-ev__marca, .retro-ev--segundo_turno .retro-ev__marca, .retro-ev--primeiro_turno .retro-ev__marca { background: var(--amarelo); box-shadow: 0 0 0 4px color-mix(in srgb, var(--amarelo) 25%, transparent); }
[data-theme="light"] .retro-ev--resultado .retro-ev__marca, [data-theme="light"] .retro-ev--segundo_turno .retro-ev__marca, [data-theme="light"] .retro-ev--primeiro_turno .retro-ev__marca { background: var(--verde); box-shadow: 0 0 0 4px rgba(0, 122, 52, 0.2); }
.retro-ev__corpo { padding: 2px 0 0; max-width: 62ch; }
.retro-ev__tipo { font-size: 0.56rem; color: var(--tinta-3); }
.retro-ev__tit { font: 900 clamp(1.5rem, 3.4vw, 2.6rem)/0.95 var(--f-display); text-transform: uppercase; letter-spacing: -0.02em; margin-top: 6px; }
.retro-ev__resumo { margin-top: 10px; color: var(--tinta-2); font-size: 1rem; line-height: 1.5; }
.retro-ev__links { display: flex; flex-wrap: wrap; gap: 10px 22px; align-items: center; margin-top: 14px; }
.retro-ev__fonte { font-size: 0.58rem; color: var(--tinta-2); border-bottom: 1px solid var(--linha-2); padding: 8px 0; }
.retro-ev__fonte:hover { color: var(--acento); }
@media (max-width: 700px) {
  .retro-linha::before { left: calc(var(--g) + 6px); }
  .retro-ev { grid-template-columns: 24px minmax(0, 1fr); }
  .retro-ev__data { grid-column: 2; grid-row: 1; text-align: left; display: flex; gap: 8px; align-items: baseline; }
  .retro-ev__data strong { display: inline; font-size: 1.3rem; }
  .retro-ev__marca { grid-column: 1; grid-row: 1; margin: 6px 0 0; }
  .retro-ev__corpo { grid-column: 2; }
}

/* ---------- em números ---------- */
.num-aviso { margin-top: 22px; max-width: 56ch; padding: 12px 16px; border-left: 3px solid var(--amarelo); background: color-mix(in srgb, var(--amarelo) 8%, transparent); font-size: 0.95rem; }
.num-grade { display: grid; gap: 0; margin-top: clamp(40px, 6vw, 80px); border-top: 1px solid var(--linha-2); }
@media (min-width: 760px) { .num-grade { grid-template-columns: 1fr 1fr; } .num-item--largo { grid-column: span 2; } }
@media (min-width: 1200px) { .num-grade { grid-template-columns: repeat(3, 1fr); } .num-item--largo { grid-column: span 2; } }
.num-item { border-bottom: 1px solid var(--linha-2); }
@media (min-width: 760px) { .num-item { border-right: 1px solid var(--linha); } }
.num-item a { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 12px; padding: clamp(20px, 3vw, 34px) clamp(4px, 1.5vw, 20px); min-height: 100%; transition: background-color 0.3s; }
.num-item a:hover { background: var(--superficie); }
.num-item__i { font-size: 0.6rem; color: var(--amarelo); }
[data-theme="light"] .num-item__i { color: var(--verde); }
.num-item__v { grid-column: 1 / -1; font: 900 clamp(3.4rem, 11vw, 9rem)/0.86 var(--f-display); letter-spacing: -0.05em; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.num-item--largo .num-item__v { font-size: clamp(3.8rem, 14vw, 12rem); }
.num-item__rot { font: 800 clamp(1rem, 1.8vw, 1.3rem)/1.1 var(--f-display); text-transform: uppercase; }
.num-item__seta { grid-column: 2; grid-row: 3; color: var(--tinta-3); }

/* ---------- 1º × 2º turno ---------- */
.tur-aviso { margin-top: 22px; max-width: 64ch; padding: 14px 16px; border-left: 3px solid var(--indigo-luz); background: color-mix(in srgb, var(--indigo) 18%, transparent); font-size: 0.95rem; line-height: 1.5; }
[data-theme="light"] .tur-aviso { background: rgba(48, 38, 129, 0.07); border-left-color: var(--indigo); }
.tur-sec { margin-top: clamp(50px, 7vw, 96px); }
.tur-bloco { margin-top: 14px; }
.tur-bloco__tit { font: 900 clamp(1.5rem, 3.4vw, 2.6rem)/0.95 var(--f-display); text-transform: uppercase; margin-bottom: 16px; }
.tur-bloco__cands { display: grid; gap: 14px; }
@media (min-width: 900px) { .tur-bloco__cands { grid-template-columns: 1fr 1fr; gap: 22px; } }
.tur-cand { position: relative; padding: 20px; border: 1px solid var(--linha-2); background: var(--fundo-2); display: grid; gap: 14px; }
[data-theme="light"] .tur-cand { background: #fbfaf5; }
.tur-cand::before { content: ""; position: absolute; left: -1px; top: -1px; bottom: -1px; width: 4px; background: var(--c); }
.tur-cand__nome { display: flex; align-items: center; gap: 10px; font: 800 1.25rem/1 var(--f-display); text-transform: uppercase; }
.tur-cand__linhas { display: grid; gap: 12px; }
.tur-l { display: grid; grid-template-columns: 74px minmax(0, 1fr); gap: 4px 12px; align-items: center; }
.tur-l dt { font-size: 0.56rem; color: var(--tinta-3); }
.tur-l dd { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 4px 12px; align-items: center; }
.tur-l strong { font: 900 clamp(1.5rem, 3vw, 2.2rem)/1 var(--f-display); font-variant-numeric: tabular-nums; min-width: 4.4em; }
.tur-l__barra { height: 8px; background: var(--superficie-2); }
.tur-l__barra span { display: block; height: 100%; background: color-mix(in srgb, var(--c) 45%, transparent); transition: width 0.8s var(--ease); }
.tur-l--2 .tur-l__barra span { background: var(--c); }
.tur-l__v { grid-column: 1 / -1; font-size: 0.54rem; color: var(--tinta-3); }
.tur-cand__delta { display: flex; align-items: baseline; gap: 12px; padding-top: 12px; border-top: 1px solid var(--linha); }
.tur-cand__delta .mono { font-size: 0.56rem; color: var(--tinta-3); }
.tur-cand__delta strong { font: 900 1.6rem/1 var(--f-display); font-variant-numeric: tabular-nums; }
.tur-escolhido { min-height: 60px; }
.tur-lista { display: grid; border-top: 1px solid var(--linha-2); }
@media (min-width: 1000px) { .tur-lista { grid-template-columns: 1fr 1fr; column-gap: 28px; } }
.tur-lista li { border-bottom: 1px solid var(--linha); }
.tur-lista__item { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 4px 10px; padding: 12px 4px; align-items: center; transition: background-color 0.25s, padding 0.35s var(--ease); }
.tur-lista__item:hover { background: var(--superficie); padding-left: 10px; }
.tur-lista__uf { font-size: 0.66rem; color: var(--tinta-2); grid-row: span 2; }
.tur-lista__nome { font-weight: 600; }
.tur-lista__vals { display: flex; flex-wrap: wrap; gap: 4px 18px; font-size: 0.86rem; color: var(--tinta-2); font-variant-numeric: tabular-nums; }
.tur-lista__v { display: inline-flex; align-items: center; gap: 6px; }
.tur-lista__v .mapa-leg__cor { width: 8px; height: 8px; box-shadow: none; }
.tur-lista__v b { color: var(--tinta); font-weight: 700; }
.tur-leg { display: inline-flex; align-items: center; gap: 6px; }
.tur-leg .mapa-leg__cor { width: 8px; height: 8px; box-shadow: none; }

/* ---------- resultado: complementos ---------- */
.apu-registro { display: grid; gap: 0; margin-top: 18px; border-top: 1px solid var(--linha); }
.apu-registro > div { display: grid; gap: 4px 16px; padding: 10px 0; border-bottom: 1px solid var(--linha); }
@media (min-width: 760px) { .apu-registro > div { grid-template-columns: 260px 1fr; } }
.apu-registro dt { font-size: 0.56rem; color: var(--tinta-3); }
.apu-registro a { border-bottom: 1px solid var(--linha-2); }
.apu-registro a:hover { color: var(--acento); }
.apu-mapa__mais { margin-top: 14px; }
.apu-replay[disabled] { opacity: 0.5; cursor: progress; }
.apu-g__cursor { stroke: var(--tinta-2); stroke-width: 1; stroke-dasharray: 3 3; }
.apu-g__cursor-txt { fill: var(--tinta); }
.apu--final .apu-cand__oficial { background: transparent; color: var(--tinta); border: 1px solid var(--tinta); letter-spacing: 0.14em; }
.enc-resumo { margin-top: clamp(40px, 6vw, 70px); }
.enc-resumo__tit { font-size: 0.6rem; color: var(--tinta-2); padding-bottom: 10px; border-bottom: 1px solid var(--linha-2); }
.enc-resumo__lista { display: grid; gap: 0; }
@media (min-width: 760px) { .enc-resumo__lista { grid-template-columns: 1fr 1fr; } }
.enc-resumo__lista li { display: flex; align-items: baseline; gap: 16px; padding: 16px 0; border-bottom: 1px solid var(--linha); }
.enc-resumo__lista strong { font: 900 clamp(3rem, 8vw, 5.4rem)/0.9 var(--f-display); letter-spacing: -0.04em; font-variant-numeric: tabular-nums; }
.enc-resumo__lista span { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 6px; color: var(--tinta-2); }
.enc-resumo__lista b { color: var(--tinta); text-transform: uppercase; font-family: var(--f-display); }
.js .enc-uf-nojs { display: none; }
.enc-uf-nojs { padding: 0 4px 10px 44px; font-size: 0.86rem; }
.enc-link { font: inherit; color: inherit; }
.enc-mapa .mapa__quadro { position: relative; }

/* ---------- animação de encerramento ---------- */
.enc-travado { overflow: hidden; }
.enc-anim {
  position: fixed; inset: 0; z-index: 200; display: grid; place-items: center; background: #050605; color: #eceee6;
  transition: opacity 0.45s var(--ease);
}
.enc-anim[hidden] { display: none; }
.enc-anim.is-saindo { opacity: 0; }
.enc-anim__palco { position: relative; width: min(92vw, 760px); aspect-ratio: 633 / 659; max-height: 86vh; display: grid; place-items: center; }
.enc-anim__svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.enc-anim .enc-pontos circle { fill: #eceee6; opacity: 0; }
.enc-anim.is-rodando .enc-pontos circle { animation: enc-acende 0.5s ease-out forwards; animation-delay: calc(0.15s + var(--d) * 1.3s); }
@keyframes enc-acende { 0% { opacity: 0; } 60% { opacity: 1; } 100% { opacity: calc(0.25 + var(--d) * 0.5); } }
.enc-anim.is-rodando .enc-arco { animation: enc-traco 1.2s var(--ease) forwards; animation-delay: calc(1.1s + var(--k) * 0.12s); }
.enc-anim__txt { position: relative; z-index: 1; text-align: center; text-transform: uppercase; }
.enc-anim__l1, .enc-anim__l2 { font-size: clamp(2.2rem, 8.4vw, 5.6rem); font-weight: 900; line-height: 0.92; letter-spacing: -0.04em; opacity: 0; white-space: nowrap; }
.enc-anim__l2 .outline { -webkit-text-stroke-color: #eceee6; }
.enc-anim__l3 { margin-top: 22px; display: inline-flex; align-items: center; gap: 10px; font-size: 0.72rem; letter-spacing: 0.24em; color: #a4aca1; opacity: 0; }
.enc-anim__ponto { width: 8px; height: 8px; border-radius: 50%; background: var(--verde-luz, #22d470); box-shadow: 0 0 12px #22d470; }
.enc-anim.is-rodando .enc-anim__l1 { animation: enc-sobe 0.7s var(--ease) 2s forwards; }
.enc-anim.is-rodando .enc-anim__l2 { animation: enc-sobe 0.7s var(--ease) 2.45s forwards; }
.enc-anim.is-rodando .enc-anim__l3 { animation: enc-sobe 0.6s var(--ease) 3.05s forwards; }
@keyframes enc-sobe { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
.enc-anim.is-estatico .enc-pontos circle { opacity: 0.4; }
.enc-anim.is-estatico .enc-arco { stroke-dashoffset: 0; opacity: 0.6; }
.enc-anim.is-estatico .enc-anim__l1, .enc-anim.is-estatico .enc-anim__l2, .enc-anim.is-estatico .enc-anim__l3 { opacity: 1; }
.enc-anim__pular { position: absolute; right: 20px; bottom: calc(20px + env(safe-area-inset-bottom)); padding: 12px 16px; border: 1px solid rgba(236, 238, 230, 0.3); color: #eceee6; font-size: 0.64rem; }
.enc-anim__pular:hover, .enc-anim__pular:focus-visible { border-color: #ffcb00; color: #ffcb00; }

@media (prefers-reduced-motion: reduce) {
  .enc-hero .enc-pontos circle, .enc-hero .enc-arco { animation: none; }
  .enc-hero .enc-arco { stroke-dashoffset: 0; }
  .enc-anim { transition: none; }
}

/* Últimas atualizações: registro de dados eleitorais */
.atual__desc { margin-top: 6px; color: var(--tinta-2); max-width: 72ch; }
