/* Parceiro: janela do anúncio de parceiro (logo depois da "Apoie") e banner do topo das páginas.
   A janela NÃO tem casca própria: usa as classes da janela "Apoie" (.apoie, .apoie__card, .apoie__x, .apoie__scroll, .apoie__actions,
   .apoie__go, .apoie__later em apoie.css, que também guarda a exceção da posição fixa) e aqui só entram a cor do parceiro e o conteúdo. */

.parceiro { --apoie-green: #6d3df0; --apoie-green-2: #5126cf; --pc: #6d3df0; --pc-ink: #5126cf; }
:root[data-theme="dark"] .parceiro { --pc-ink: #c4b0ff; }
@media (prefers-color-scheme: dark) { :root:where(:not([data-theme="light"])) .parceiro { --pc-ink: #c4b0ff; } }

/* a casca da "Apoie" trava a rolagem com html.apoie-open; esta janela usa a própria classe (as duas nunca estão abertas juntas) */
html.parceiro-open { overflow: hidden; }
html.parceiro-open body { padding-right: var(--apoie-sbw, 0px); }

/* ------------------------------------------------------------ janela (mais estreita que a da "Apoie": o anúncio não precisa ocupar a tela) */
.parceiro .apoie__card { width: min(100%, 420px); }
.parceiro .apoie__scroll { font-size: .92rem; line-height: 1.5; }
.parceiro .apoie__title { font-size: clamp(1.15rem, 1rem + 1vw, 1.38rem); }
.parceiro .apoie__lead { font-size: .94rem; }
.parceiro .apoie__go, .parceiro .apoie__later { min-height: 46px; }
.parceiro__hero { position: relative; display: block; margin: 0 -24px 14px; overflow: hidden; aspect-ratio: 1280 / 427; background: linear-gradient(135deg, #2b1470, #5b2fd6); line-height: 0; }
.parceiro__hero img { display: block; width: 100%; height: 100%; object-fit: cover; }
/* brilho que passa pela imagem de tempos em tempos */
.parceiro__hero::after, .ad-partner__link::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(105deg, transparent 38%, rgba(255, 255, 255, .3) 50%, transparent 62%); transform: translateX(-130%); }
.parceiro__hero::after { animation: parceiro-shine 7s ease-in-out 1.4s infinite; }
.parceiro__hero:focus-visible, .ad-partner__link:focus-visible { outline: 3px solid color-mix(in srgb, var(--pc) 75%, #fff); outline-offset: -3px; }

.parceiro__eyebrow { display: flex; align-items: center; gap: 8px; margin: 0 0 8px; font-size: .72rem; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.parceiro__dot { position: relative; flex: none; width: 7px; height: 7px; border-radius: 50%; background: var(--pc); }
.parceiro__dot::after { content: ""; position: absolute; inset: 0; border-radius: 50%; border: 2px solid var(--pc); animation: parceiro-ping 2.6s ease-out infinite; }
.parceiro__title { padding-right: 0; }

/* a quem o anúncio se destina: etiqueta em destaque logo acima do título */
.apoie__scroll .parceiro__for { display: inline-flex; align-items: baseline; gap: 7px; margin: 0 0 8px; padding: 4px 12px; border-radius: 14px; font-size: .82rem; line-height: 1.35; font-weight: 750; color: var(--pc-ink); background: color-mix(in srgb, var(--pc) 13%, var(--surface)); border: 1px solid color-mix(in srgb, var(--pc) 32%, transparent); }
.parceiro__list { list-style: none; margin: 12px 0 10px; padding: 10px 12px; display: grid; gap: 8px; border-radius: 14px; background: color-mix(in srgb, var(--pc) 7%, var(--surface)); border: 1px solid color-mix(in srgb, var(--pc) 18%, transparent); }
.parceiro__list li { display: grid; grid-template-columns: 26px 1fr; gap: 10px; align-items: center; font-size: .86rem; line-height: 1.4; color: var(--ink-2); animation: parceiro-in .45s ease both; animation-delay: calc(.14s + var(--i, 0) * .08s); }
.parceiro__list strong { color: var(--ink); }
.parceiro__ico { display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: linear-gradient(135deg, #8b5cf6, var(--pc-ink)); color: #fff; box-shadow: 0 3px 10px color-mix(in srgb, var(--pc) 35%, transparent); }
.parceiro__ico svg { width: 14px; height: 14px; }
.apoie__scroll .parceiro__note { margin: 0; font-size: .78rem; line-height: 1.4; color: var(--muted); }

.parceiro__go { position: relative; text-decoration: none; }
.parceiro__go .icon { width: 1.1em; height: 1.1em; animation: parceiro-nudge 2.4s ease-in-out infinite; }
.parceiro__go::after { content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; animation: parceiro-ring 3.8s ease-out 1.8s infinite; }
.parceiro__go:hover { color: #fff; }

@keyframes parceiro-shine { 0%, 55% { transform: translateX(-130%); } 80%, 100% { transform: translateX(130%); } }
@keyframes parceiro-ping { 0% { transform: scale(1); opacity: .7; } 70%, 100% { transform: scale(2.6); opacity: 0; } }
@keyframes parceiro-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@keyframes parceiro-nudge { 0%, 60%, 100% { transform: translateX(0); } 75% { transform: translateX(4px); } 88% { transform: translateX(0); } }
@keyframes parceiro-ring { 0% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--pc) 45%, transparent); } 70%, 100% { box-shadow: 0 0 0 14px color-mix(in srgb, var(--pc) 0%, transparent); } }

/* celular: o texto da "Apoie" tem 18 px de margem lateral */
@media (max-width: 520px) { .parceiro__hero { margin: 0 -18px 14px; } }
/* telas de 320 px: "Tenho interesse →" e "Agora não" não cabem lado a lado com a folga normal (os botões não quebram linha) */
@media (max-width: 360px) {
  .parceiro .apoie__actions { gap: 8px; }
  .parceiro .apoie__go, .parceiro .apoie__later { padding: 10px 10px; gap: 6px; font-size: .92rem; }
}
/* tela baixa (celular deitado): sem a imagem, o texto e os botões cabem; o × ganha espaço no alto */
@media (max-height: 560px) { .parceiro__hero { display: none; } .parceiro__eyebrow { padding-top: 34px; } }

/* ------------------------------------------------------------ botão "Parceiro" (encaixe direito da .dock, junto do coração do Apoie)
   Usa a base do .apoie-fab (forma, borda, sombra, brilho de ~10 s) com a cor do parceiro no lugar do vermelho do coração. O rostinho é o
   balão de fala sorridente do parceiro, redesenhado em SVG: flutua o tempo todo, pisca, sorri mais largo e balança de tempos em tempos. */
.parceiro-fab { --apoie-heart: #6d3df0; padding-left: 9px; }
.parceiro-fab svg { width: 26px; height: 26px; overflow: visible; color: inherit; transform-origin: 50% 60%; animation: apoie-bob 3.2s ease-in-out infinite, parceiro-wobble 8s ease-in-out 2s infinite; filter: drop-shadow(0 1px 2px color-mix(in srgb, #6d3df0 30%, transparent)); }
.parceiro-fab__eyes { transform-box: fill-box; transform-origin: 50% 70%; animation: parceiro-blink 5.5s ease-in-out infinite; }
.parceiro-fab__smile { transform-box: fill-box; transform-origin: 50% 0; animation: parceiro-grin 8s ease-in-out 3s infinite; }
.parceiro-fab:hover svg, .parceiro-fab:focus-visible svg { animation: apoie-bob 1.4s ease-in-out infinite, parceiro-wiggle .8s ease-in-out infinite; }
.parceiro-fab:focus-visible { outline: 3px solid color-mix(in srgb, #6d3df0 70%, var(--ink)); outline-offset: 2px; }
@keyframes parceiro-blink { 0%, 88%, 100% { transform: scaleY(1); } 91% { transform: scaleY(.1); } 94% { transform: scaleY(1); } 96% { transform: scaleY(.1); } 98% { transform: scaleY(1); } }
@keyframes parceiro-grin { 0%, 70%, 100% { transform: scale(1); } 76% { transform: scale(1.22, 1.3); } 86% { transform: scale(1); } }
@keyframes parceiro-wobble { 0%, 58%, 100% { transform: rotate(0); } 63% { transform: rotate(-12deg) scale(1.12); } 69% { transform: rotate(10deg) scale(1.12); } 75% { transform: rotate(-5deg); } 81% { transform: none; } }
@keyframes parceiro-wiggle { 0%, 100% { transform: rotate(-10deg) scale(1.12); } 50% { transform: rotate(10deg) scale(1.2); } }

/* ------------------------------------------------------------ aviso "Anúncio adiado. Desfazer" (camada de avisos da .dock: em fluxo, some sozinho) */
.parceiro-undo { display: flex; align-items: center; gap: 14px; max-width: min(100%, 380px); padding: 8px 8px 8px 16px; border-radius: 14px; background: var(--ink); color: var(--surface); box-shadow: var(--shadow-lg); font-size: .88rem; line-height: 1.3; animation: parceiro-in .3s ease both; }
.parceiro-undo[hidden] { display: none; }
.parceiro-undo button { flex: none; min-height: 38px; padding: 0 14px; border: 0; border-radius: 10px; background: color-mix(in srgb, var(--surface) 18%, transparent); color: inherit; font: inherit; font-weight: 750; cursor: pointer; }
.parceiro-undo button:hover { background: color-mix(in srgb, var(--surface) 30%, transparent); }
.parceiro-undo button:focus-visible { outline: 3px solid #8b5cf6; outline-offset: 2px; }

/* ------------------------------------------------------------ banner do topo das páginas (cargos.css reserva o par com o anúncio nativo) */
.ad-partner { margin: 8px auto; }
.ad-partner__link { position: relative; display: block; width: 100%; max-width: 560px; margin: 0 auto; overflow: hidden; border-radius: 14px; border: 1px solid var(--border); background: #2b1470; box-shadow: var(--shadow); line-height: 0; transition: transform .18s ease, box-shadow .18s ease; }
.ad-partner__link img { display: block; width: 100%; height: auto; aspect-ratio: 1280 / 427; }
.ad-partner__link:hover { transform: translateY(-1px); box-shadow: var(--shadow-lg); }
.ad-partner__link:hover::after { transform: translateX(130%); transition: transform .9s ease; }

@media (prefers-reduced-motion: reduce) {
  .parceiro__hero::after, .parceiro__dot::after, .parceiro__list li, .parceiro__go .icon, .parceiro__go::after, .parceiro-undo, .parceiro-fab svg, .parceiro-fab__eyes, .parceiro-fab__smile { animation: none !important; }
  .ad-partner__link, .ad-partner__link:hover::after { transition: none; }
}
