/* =====================================================================
   CP White Label - TEMA NEUTRO TROCAVEL
   Toda a identidade visual (cor, raio, sombra, fonte) vive nas variaveis
   :root abaixo. Para tematizar uma campanha, sobrescreva SO estas
   variaveis num arquivo proprio (ex. css/tema-<campanha>.css) carregado
   depois deste, sem tocar nas regras de layout adiante.
   ===================================================================== */

:root {
	/* Paleta Promotech: VERDE da marca + DOURADO premium. Troque por campanha se quiser. */
	--cor-primaria:        #4C8C21;   /* verde da marca: acao, links, destaques */
	--cor-primaria-escura: #386718;   /* verde escuro: hover/pressionado */
	--cor-primaria-rgb:    76,140,33; /* mesma cor em RGB p/ sombras/realces (rgba) */
	--cor-secundaria:      #C8A044;   /* accent DOURADO: detalhes, realces, CTAs premium */

	/* Escala do dourado/accent (para gradientes, brilhos e bordas) */
	--cor-ouro:            #C8A044;   /* accent principal */
	--cor-ouro-claro:      #EBCE7E;   /* accent claro: brilho / topo de gradiente */
	--cor-ouro-escuro:     #9A7724;   /* accent escuro: profundidade */
	--cor-ouro-rgb:        200,160,68;/* accent em RGB p/ sombras/realces (rgba) */

	--cor-texto:           #1A2233;   /* corpo de texto (ink) */
	--cor-texto-suave:     #5B6472;   /* legendas, texto secundario */
	--cor-fundo:           #ffffff;   /* fundo geral */
	--cor-fundo-alt:       #F6F8F4;   /* surface: faixas alternadas de secao */
	--cor-borda:           #e4e8e0;
	--cor-header-bg:       #ffffff;
	--cor-header-texto:    #1A2233;
	--cor-footer-bg:       #0B1220;
	--cor-footer-texto:    #C7D0DD;

	/* Gradientes reutilizaveis (marca verde e realce dourado) */
	--grad-marca:  linear-gradient(135deg, var(--cor-primaria), var(--cor-primaria-escura));
	--grad-ouro:   linear-gradient(135deg, var(--cor-ouro-claro), var(--cor-ouro) 55%, var(--cor-ouro-escuro));
	--grad-verde-ouro: linear-gradient(120deg, var(--cor-primaria), var(--cor-ouro));

	--raio:        14px;
	--raio-pill:   999px;
	--sombra:      0 8px 30px rgba(17, 24, 39, .08);
	--sombra-sm:   0 2px 10px rgba(17, 24, 39, .06);
	--sombra-ouro: 0 10px 30px rgba(154, 119, 36, .28);
	--container:   1140px;

	--fonte-titulo: 'Poppins', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
	--fonte-corpo:  'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
}

* { box-sizing: border-box; }

body {
	margin: 0;
	font-family: var(--fonte-corpo);
	color: var(--cor-texto);
	background: var(--cor-fundo);
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5 { font-family: var(--fonte-titulo); font-weight: 700; line-height: 1.2; }
a { color: var(--cor-primaria); text-decoration: none; }
a:hover { color: var(--cor-primaria-escura); }
img { max-width: 100%; height: auto; }

.cp-container { max-width: var(--container); margin: 0 auto; padding: 0 20px; }

/* ---------- Botoes ---------- */
.btn-cp {
	display: inline-flex; align-items: center; gap: .5rem;
	background: var(--cor-primaria); color: #fff;
	border: 0; border-radius: var(--raio-pill);
	padding: .75rem 1.6rem; font-weight: 600; font-family: var(--fonte-titulo);
	cursor: pointer; transition: background .15s, transform .15s;
}
.btn-cp:hover { background: var(--cor-primaria-escura); color: #fff; transform: translateY(-1px); }
.btn-cp-outline {
	background: transparent; color: var(--cor-primaria);
	border: 2px solid var(--cor-primaria);
}
.btn-cp-outline:hover { background: var(--cor-primaria); color: #fff; }

/* ---------- Header / Navbar ---------- */
.cp-header {
	position: sticky; top: 0; z-index: 1000;
	background: var(--cor-header-bg);
	border-bottom: 1px solid var(--cor-borda);
	box-shadow: var(--sombra-sm);
}
/* Header usa mais da largura da tela (evita o menu embolar com muitos módulos) */
.cp-header .cp-container { display: flex; align-items: center; justify-content: space-between; gap: .8rem; height: 68px; max-width: min(1400px, 96vw); }
.cp-logo { display: flex; align-items: center; gap: .55rem; font-family: var(--fonte-titulo); font-weight: 800; font-size: 1.1rem; color: var(--cor-header-texto); white-space: nowrap; flex-shrink: 0; }
.cp-logo span { white-space: nowrap; }
.cp-logo .cp-logo-badge { width: 36px; height: 36px; border-radius: 10px; background: var(--cor-primaria); display: grid; place-items: center; color: #fff; flex-shrink: 0; }
/* Quando ha logo da campanha: mostra a imagem, sem o fundo colorido do selo. */
.cp-logo-badge--img { background: transparent !important; overflow: hidden; }
.cp-logo-badge--img img { width: 100%; height: 100%; object-fit: contain; display: block; }
/* gap e fonte compactos; itens e botao nunca quebram em duas linhas */
.cp-nav { display: flex; align-items: center; gap: clamp(.5rem, .9vw, 1.1rem); }
.cp-nav a { color: var(--cor-header-texto); font-weight: 500; white-space: nowrap; }
.cp-nav a:not(.btn-cp) { font-size: .9rem; }
.cp-nav a:hover { color: var(--cor-primaria); }
.cp-nav .btn-cp { white-space: nowrap; flex-shrink: 0; padding: .55rem 1.05rem; font-size: .92rem; }
.cp-nav-toggle { display: none; background: none; border: 0; font-size: 1.5rem; color: var(--cor-header-texto); cursor: pointer; }

/* Muitos módulos: cai para o menu-hambúrguer mais cedo, antes de apertar */
@media (max-width: 1024px) {
	.cp-nav-toggle { display: block; }
	.cp-nav {
		position: fixed; inset: 68px 0 auto 0; flex-direction: column; align-items: stretch;
		background: var(--cor-header-bg); padding: 1rem 20px; gap: .2rem;
		border-bottom: 1px solid var(--cor-borda); box-shadow: var(--sombra);
		transform: translateY(-120%); transition: transform .2s; height: auto;
	}
	.cp-nav.aberto { transform: translateY(0); }
	.cp-nav a { padding: .7rem 0; border-bottom: 1px solid var(--cor-borda); }
	.cp-nav .btn-cp { margin-top: .5rem; justify-content: center; }
}

/* ---------- Secoes genericas ---------- */
.cp-secao { padding: 72px 0; }
.cp-secao--alt { background: var(--cor-fundo-alt); }
.cp-secao__titulo { font-size: clamp(1.6rem, 3vw, 2.3rem); margin: 0 0 .5rem; }
.cp-secao__subtitulo { color: var(--cor-texto-suave); font-size: 1.05rem; margin: 0 auto 2.5rem; max-width: 640px; text-align: center; }
.cp-secao__cabecalho { text-align: center; }

/* ---------- Banner ---------- */
.cp-banner {
	background: linear-gradient(135deg, var(--cor-primaria), var(--cor-primaria-escura));
	color: #fff; padding: 96px 0; text-align: center;
}
.cp-banner h1 { font-size: clamp(2rem, 5vw, 3.4rem); margin: 0 0 1rem; }
.cp-banner p { font-size: 1.2rem; opacity: .95; max-width: 680px; margin: 0 auto 2rem; }
.cp-banner .btn-cp { background: #fff; color: var(--cor-primaria); }
.cp-banner .btn-cp:hover { background: #f3f4f6; }

/* ---------- Como participar (passos) ---------- */
.cp-passos { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1.5rem; }
.cp-passo { background: #fff; border: 1px solid var(--cor-borda); border-radius: var(--raio); padding: 1.8rem; text-align: center; box-shadow: var(--sombra-sm); }
.cp-passo__num { width: 48px; height: 48px; margin: 0 auto 1rem; border-radius: 50%; background: var(--cor-primaria); color: #fff; display: grid; place-items: center; font-family: var(--fonte-titulo); font-weight: 700; font-size: 1.2rem; }
.cp-passo h3 { font-size: 1.15rem; margin: 0 0 .4rem; }
.cp-passo p { color: var(--cor-texto-suave); margin: 0; font-size: .95rem; }

/* ---------- Apresentacao ---------- */
.cp-apresentacao { display: grid; grid-template-columns: 1.1fr .9fr; gap: 3rem; align-items: center; }
@media (max-width: 860px) { .cp-apresentacao { grid-template-columns: 1fr; } }
.cp-apresentacao__arte { border-radius: var(--raio); background: var(--cor-fundo-alt); min-height: 280px; display: grid; place-items: center; color: var(--cor-texto-suave); border: 2px dashed var(--cor-borda); }

/* ---------- Regulamento ---------- */
.cp-regulamento { text-align: center; }
.cp-regulamento .cp-card { max-width: 560px; margin: 0 auto; background: #fff; border: 1px solid var(--cor-borda); border-radius: var(--raio); padding: 2.5rem; box-shadow: var(--sombra-sm); }

/* ---------- Ganhadores ---------- */
.cp-ganhadores__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 1.2rem; }
.cp-ganhador { background: #fff; border: 1px solid var(--cor-borda); border-radius: var(--raio); padding: 1.4rem; text-align: center; box-shadow: var(--sombra-sm); }
.cp-ganhador__avatar { width: 64px; height: 64px; border-radius: 50%; background: var(--cor-fundo-alt); margin: 0 auto .8rem; display: grid; place-items: center; color: var(--cor-primaria); font-size: 1.6rem; }
.cp-ganhador__nome { font-weight: 600; }
.cp-ganhador__premio { color: var(--cor-texto-suave); font-size: .9rem; }
.cp-vazio { text-align: center; color: var(--cor-texto-suave); padding: 2rem; }

/* ---------- FAQ ---------- */
.cp-faq { max-width: 760px; margin: 0 auto; }
.cp-faq__item { border: 1px solid var(--cor-borda); border-radius: var(--raio); margin-bottom: .8rem; overflow: hidden; background: #fff; }
.cp-faq__pergunta { width: 100%; text-align: left; background: none; border: 0; padding: 1.2rem 1.4rem; font-weight: 600; font-family: var(--fonte-titulo); cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 1rem; color: var(--cor-texto); }
.cp-faq__pergunta .cp-faq__icone { transition: transform .2s; color: var(--cor-primaria); }
.cp-faq__item.aberto .cp-faq__icone { transform: rotate(45deg); }
.cp-faq__resposta { max-height: 0; overflow: hidden; transition: max-height .25s ease; padding: 0 1.4rem; color: var(--cor-texto-suave); }
.cp-faq__item.aberto .cp-faq__resposta { max-height: 400px; padding: 0 1.4rem 1.2rem; }

/* ---------- Footer ---------- */
.cp-footer { background: var(--cor-footer-bg); color: var(--cor-footer-texto); padding: 48px 0 28px; }
.cp-footer a { color: var(--cor-footer-texto); }
.cp-footer a:hover { color: #fff; }
.cp-footer__grid { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 2rem; margin-bottom: 2rem; }
.cp-footer__brand { font-family: var(--fonte-titulo); font-weight: 800; font-size: 1.2rem; color: #fff; }
.cp-footer__links { display: flex; flex-wrap: wrap; gap: 1.2rem; }
.cp-footer__base { border-top: 1px solid rgba(255,255,255,.1); padding-top: 20px; font-size: .85rem; opacity: .8; text-align: center; }
/* Crédito "Desenvolvido por [logo Promotech]" nos rodapés */
.cp-promotech { display: inline-flex; align-items: center; vertical-align: middle; margin-left: 3px; }
.cp-promotech__logo { height: 15px; width: auto; display: inline-block; vertical-align: middle; opacity: .92; transition: opacity .15s; }
.cp-promotech:hover .cp-promotech__logo { opacity: 1; }

/* =====================================================================
   AUTENTICACAO (entrar / cadastrar) e PAINEL
   ===================================================================== */
.cp-auth-wrap { min-height: 100vh; display: grid; place-items: center; background: var(--cor-fundo-alt); padding: 40px 16px; }
.cp-auth { width: 100%; max-width: 460px; background: #fff; border-radius: var(--raio); box-shadow: var(--sombra); overflow: hidden; }
.cp-auth__topo { text-align: center; padding: 28px 28px 8px; }
.cp-auth__logo { display: inline-flex; align-items: center; gap: .5rem; font-family: var(--fonte-titulo); font-weight: 800; font-size: 1.2rem; color: var(--cor-texto); }
.cp-auth__logo .cp-logo-badge { width: 34px; height: 34px; border-radius: 9px; background: var(--cor-primaria); color: #fff; display: grid; place-items: center; }
.cp-auth__abas { display: flex; margin: 18px 28px 0; border-bottom: 2px solid var(--cor-borda); }
.cp-auth__aba { flex: 1; text-align: center; padding: .8rem 0; font-family: var(--fonte-titulo); font-weight: 600; color: var(--cor-texto-suave); cursor: pointer; background: none; border: 0; border-bottom: 3px solid transparent; margin-bottom: -2px; }
.cp-auth__aba.ativa { color: var(--cor-primaria); border-bottom-color: var(--cor-primaria); }
.cp-auth__corpo { padding: 22px 28px 28px; }
.cp-campo { margin-bottom: 14px; }
.cp-campo label { display: block; font-size: .85rem; font-weight: 600; margin-bottom: .3rem; color: var(--cor-texto); }
.cp-campo input { width: 100%; padding: .7rem .9rem; border: 1px solid var(--cor-borda); border-radius: 10px; font-size: 1rem; font-family: var(--fonte-corpo); }
.cp-campo input:focus { outline: none; border-color: var(--cor-primaria); box-shadow: 0 0 0 3px rgba(var(--cor-primaria-rgb),.15); }
.cp-aceite { display: flex; gap: .6rem; align-items: flex-start; font-size: .88rem; color: var(--cor-texto-suave); margin: 6px 0 16px; }
.cp-aceite input { margin-top: .2rem; }
.cp-auth .btn-cp { width: 100%; justify-content: center; }
.cp-auth__erro { background: #fef2f2; color: #b91c1c; border: 1px solid #fecaca; border-radius: 10px; padding: .7rem .9rem; font-size: .9rem; margin-bottom: 16px; }
.cp-social { margin-top: 18px; }
.cp-social__sep { text-align: center; color: var(--cor-texto-suave); font-size: .82rem; margin: 18px 0 14px; position: relative; }
.cp-social__sep::before, .cp-social__sep::after { content: ""; position: absolute; top: 50%; width: 38%; height: 1px; background: var(--cor-borda); }
.cp-social__sep::before { left: 0; } .cp-social__sep::after { right: 0; }
.cp-social__btns { display: grid; gap: 10px; }
.cp-social__btn { display: flex; align-items: center; justify-content: center; gap: .6rem; padding: .7rem; border-radius: 10px; border: 1px solid var(--cor-borda); background: #fff; font-weight: 600; font-family: var(--fonte-titulo); color: var(--cor-texto); cursor: pointer; text-decoration: none; }
.cp-social__btn:hover { background: var(--cor-fundo-alt); color: var(--cor-texto); }
.cp-social__btn i { font-size: 1.15rem; }
.cp-social__btn.google i { color: #ea4335; }
.cp-social__btn.facebook i { color: #1877f2; }
.cp-social__btn.apple i { color: #111; }
.cp-social__btn.instagram i { color: #e1306c; }
.cp-auth__voltar { display: block; text-align: center; margin-top: 16px; font-size: .88rem; }

/* Painel */
.cp-painel { max-width: 900px; margin: 0 auto; padding: 40px 20px; }
.cp-painel__topo { display: flex; justify-content: space-between; align-items: center; margin-bottom: 24px; flex-wrap: wrap; gap: 12px; }
.cp-painel__cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px,1fr)); gap: 16px; }
.cp-painel__card { background: #fff; border: 1px solid var(--cor-borda); border-radius: var(--raio); padding: 22px; box-shadow: var(--sombra-sm); }
.cp-painel__card .num { font-family: var(--fonte-titulo); font-weight: 800; font-size: 2rem; color: var(--cor-primaria); }

/* =====================================================================
   AREA LOGADA (participante) — fundo, bilhetes da sorte, rodape
   ===================================================================== */
.cp-area { min-height: 100vh; display: flex; flex-direction: column; background: var(--cor-fundo-alt); }
.cp-area .cp-painel { flex: 1; width: 100%; }

/* Hero da area logada */
.cp-hero { background: linear-gradient(135deg, var(--cor-primaria), var(--cor-primaria-escura)); color: #fff; border-radius: var(--raio); padding: 28px 30px; margin-bottom: 24px; display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; box-shadow: var(--sombra); }
.cp-hero h1 { margin: 0; font-size: 1.7rem; }
.cp-hero p { margin: .3rem 0 0; opacity: .92; }
.cp-hero .btn-cp { background: #fff; color: var(--cor-primaria); }
.cp-hero .btn-cp:hover { background: #eef2ff; }

/* Cards de resumo */
.cp-resumo { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px,1fr)); gap: 16px; margin-bottom: 28px; }
.cp-resumo__card { background: #fff; border: 1px solid var(--cor-borda); border-radius: var(--raio); padding: 22px; display: flex; align-items: center; gap: 16px; box-shadow: var(--sombra-sm); }
.cp-resumo__ico { width: 52px; height: 52px; border-radius: 14px; display: grid; place-items: center; font-size: 1.3rem; background: color-mix(in srgb, var(--cor-primaria) 12%, #fff); color: var(--cor-primaria); flex-shrink: 0; }
.cp-resumo__num { font-family: var(--fonte-titulo); font-weight: 800; font-size: 1.8rem; line-height: 1; }
.cp-resumo__lbl { color: var(--cor-texto-suave); font-size: .88rem; }

.cp-bloco-titulo { display: flex; align-items: center; gap: .6rem; margin: 30px 0 14px; font-size: 1.25rem; font-family: var(--fonte-titulo); font-weight: 700; }
.cp-bloco-titulo i { color: var(--cor-primaria); }

/* Bilhetes da sorte (aparencia de cupom/ticket com numeracao) */
.cp-bilhetes { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 16px; }
.cp-bilhete { position: relative; display: flex; align-items: stretch; background: linear-gradient(135deg, var(--cor-primaria), var(--cor-primaria-escura)); color: #fff; border-radius: 12px; box-shadow: var(--sombra-sm); overflow: hidden; }
.cp-bilhete::before, .cp-bilhete::after { content: ""; position: absolute; left: 58px; width: 14px; height: 14px; margin-left: -7px; border-radius: 50%; background: var(--cor-fundo-alt); }
.cp-bilhete::before { top: -7px; }
.cp-bilhete::after { bottom: -7px; }
.cp-bilhete__canhoto { width: 58px; flex-shrink: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; border-right: 2px dashed rgba(255,255,255,.5); }
.cp-bilhete__canhoto i { font-size: 1.25rem; }
.cp-bilhete__canhoto span { font-size: .55rem; letter-spacing: 1px; text-transform: uppercase; opacity: .85; }
.cp-bilhete__corpo { padding: 14px 16px; flex: 1; min-width: 0; }
.cp-bilhete__label { font-size: .64rem; text-transform: uppercase; letter-spacing: 1.5px; opacity: .8; }
.cp-bilhete__num { font-family: var(--fonte-titulo); font-weight: 800; font-size: 1.55rem; letter-spacing: 3px; }

/* Cartao branco generico (tabela de cupons, vazios) */
.cp-cartao { background: #fff; border: 1px solid var(--cor-borda); border-radius: var(--raio); box-shadow: var(--sombra-sm); overflow: hidden; }
.cp-cartao--vazio { text-align: center; color: var(--cor-texto-suave); padding: 2.4rem 1rem; }
.cp-tabela { width: 100%; border-collapse: collapse; }
.cp-tabela th, .cp-tabela td { text-align: left; padding: .8rem 1rem; border-bottom: 1px solid var(--cor-borda); font-size: .92rem; }
.cp-tabela th { color: var(--cor-texto-suave); font-weight: 600; background: var(--cor-fundo-alt); }
.cp-tabela tr:last-child td { border-bottom: 0; }

/* Rodape compacto da area logada */
.cp-footer-min { background: var(--cor-footer-bg); color: var(--cor-footer-texto); text-align: center; padding: 22px 20px; font-size: .85rem; margin-top: 40px; }
.cp-footer-min a { color: #fff; }

/* ===== Página pública de regulamento ===== */
.reg-page { background: #fff; border: 1px solid var(--cor-borda); border-radius: var(--raio); padding: 30px 34px; line-height: 1.6; color: var(--cor-texto); }
.reg-page h3 { font-family: var(--fonte-titulo); font-size: 1.05rem; margin: 22px 0 6px; color: var(--cor-primaria-escura); }
.reg-page h3:first-child { margin-top: 0; }
.reg-page p { margin: .5rem 0; }
.reg-page .reg-pend { background: #fde68a; color: #92400e; padding: 1px 6px; border-radius: 5px; font-weight: 600; font-size: .85em; }
.reg-page .reg-tabela { width: 100%; border-collapse: collapse; margin: 12px 0; font-size: .88rem; }
.reg-page .reg-tabela th, .reg-page .reg-tabela td { border: 1px solid var(--cor-borda); padding: .45rem .6rem; text-align: left; vertical-align: top; }
.reg-page .reg-tabela th { background: var(--cor-fundo-alt); font-weight: 700; }
.reg-page__aviso { background: #fff; border: 1px solid var(--cor-borda); border-radius: var(--raio); padding: 48px 30px; text-align: center; }
.reg-page__aviso i { font-size: 2.6rem; color: var(--cor-secundaria); }
.reg-page__aviso h1 { margin: 14px 0 6px; }
.reg-page__aviso p { color: var(--cor-texto-suave); margin: 0 auto 22px; max-width: 460px; }

/* =====================================================================
   MODERNIZACAO — VERDE + DOURADO, INTERACOES E MICRO-ANIMACOES (front)
   ===================================================================== */
::selection { background: var(--cor-ouro-claro); color: #3a2e0a; }

/* Reveal on scroll (JS adiciona .is-visible) */
.reveal { opacity: 0; transform: translateY(26px); transition: opacity .6s ease, transform .6s cubic-bezier(.2,.7,.2,1); will-change: opacity, transform; }
.reveal.is-visible { opacity: 1; transform: none; }

/* ---------- Botoes: brilho deslizante + variante dourada ---------- */
.btn-cp { position: relative; overflow: hidden; box-shadow: 0 4px 16px rgba(var(--cor-primaria-rgb),.25); }
.btn-cp > * { position: relative; z-index: 1; }
.btn-cp::after { content: ""; position: absolute; top: 0; left: -130%; width: 55%; height: 100%; background: linear-gradient(100deg, transparent, rgba(255,255,255,.4), transparent); transform: skewX(-20deg); transition: left .55s ease; z-index: 0; }
.btn-cp:hover::after { left: 140%; }
.btn-cp--ouro { background: var(--grad-ouro); color: #3a2e0a; box-shadow: var(--sombra-ouro); }
.btn-cp--ouro:hover { background: linear-gradient(135deg, #f0d88e, var(--cor-ouro) 55%, var(--cor-ouro-escuro)); color: #3a2e0a; }
/* Vence a regra antiga .cp-banner .btn-cp (botao branco do tema anterior) */
.cp-banner .btn-cp--ouro { background: var(--grad-ouro); color: #3a2e0a; box-shadow: var(--sombra-ouro); }
.cp-banner .btn-cp--ouro:hover { background: linear-gradient(135deg, #f0d88e, var(--cor-ouro) 55%, var(--cor-ouro-escuro)); color: #3a2e0a; }

/* Logo com gradiente da marca (quando nao ha imagem propria) */
.cp-logo .cp-logo-badge:not(.cp-logo-badge--img) { background: var(--grad-marca); box-shadow: 0 4px 12px rgba(var(--cor-primaria-rgb),.28); }

/* ---------- Header: sublinhado dourado animado ---------- */
.cp-nav > a:not(.btn-cp) { position: relative; }
.cp-nav > a:not(.btn-cp)::after { content: ""; position: absolute; left: 0; bottom: -4px; width: 100%; height: 2px; background: var(--grad-verde-ouro); border-radius: 2px; transform: scaleX(0); transform-origin: left; transition: transform .25s ease; }
.cp-nav > a:not(.btn-cp):hover::after { transform: scaleX(1); }

/* ---------- Titulos de secao: fio verde->ouro ---------- */
.cp-secao__cabecalho .cp-secao__titulo { position: relative; display: inline-block; }
.cp-secao__cabecalho .cp-secao__titulo::after { content: ""; display: block; width: 66px; height: 4px; margin: 14px auto 0; border-radius: 999px; background: var(--grad-verde-ouro); }
.cp-apresentacao .cp-secao__titulo::after { content: ""; display: block; width: 58px; height: 4px; margin: 14px 0 0; border-radius: 999px; background: var(--grad-verde-ouro); }

/* ---------- Banner: profundidade + glows + selo ---------- */
.cp-banner { position: relative; overflow: hidden; background: radial-gradient(120% 120% at 12% 10%, rgba(var(--cor-ouro-rgb),.20), transparent 42%), var(--grad-marca); }
.cp-banner__conteudo { position: relative; z-index: 2; }
.cp-banner__glow { position: absolute; border-radius: 50%; filter: blur(64px); opacity: .55; pointer-events: none; z-index: 1; }
.cp-banner__glow--1 { width: 340px; height: 340px; background: radial-gradient(circle, rgba(235,206,126,.65), transparent 70%); top: -90px; right: -50px; animation: cpFloat 9s ease-in-out infinite; }
.cp-banner__glow--2 { width: 280px; height: 280px; background: radial-gradient(circle, rgba(120,200,60,.45), transparent 70%); bottom: -110px; left: -50px; animation: cpFloat 12s ease-in-out infinite reverse; }
@keyframes cpFloat { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-26px); } }
.cp-banner__selo { display: inline-flex; align-items: center; gap: .5rem; background: rgba(255,255,255,.12); border: 1px solid rgba(235,206,126,.55); color: #fff; padding: .42rem 1.05rem; border-radius: 999px; font-family: var(--fonte-titulo); font-weight: 600; font-size: .82rem; letter-spacing: .5px; margin-bottom: 1.3rem; backdrop-filter: blur(6px); }
.cp-banner__selo i { color: var(--cor-ouro-claro); }
.cp-banner__cta { margin-top: .4rem; }

/* ---------- Passos (Como participar) ---------- */
.cp-passo { position: relative; overflow: hidden; transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease; }
.cp-passo::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: var(--grad-verde-ouro); transform: scaleX(0); transform-origin: left; transition: transform .32s ease; }
.cp-passo:hover { transform: translateY(-7px); box-shadow: var(--sombra); border-color: transparent; }
.cp-passo:hover::before { transform: scaleX(1); }
.cp-passo__num { background: var(--grad-marca); box-shadow: 0 6px 16px rgba(var(--cor-primaria-rgb),.30); transition: transform .3s ease, background .3s ease, box-shadow .3s ease; }
.cp-passo:hover .cp-passo__num { background: var(--grad-ouro); color: #3a2e0a; box-shadow: var(--sombra-ouro); transform: rotate(-6deg) scale(1.08); }

/* ---------- Apresentacao: moldura gradiente ---------- */
.cp-apresentacao__arte { background: var(--grad-verde-ouro); padding: 4px; border: 0; min-height: 300px; }
.cp-apresentacao__arte img { border-radius: calc(var(--raio) - 2px); }
.cp-apresentacao__arte > span { display: grid; place-items: center; width: 100%; height: 100%; min-height: 292px; background: var(--cor-fundo-alt); border-radius: calc(var(--raio) - 2px); }

/* ---------- Regulamento: card com realce ---------- */
.cp-regulamento .cp-card { position: relative; overflow: hidden; border-top: 4px solid transparent; transition: transform .25s ease, box-shadow .25s ease; }
.cp-regulamento .cp-card::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: var(--grad-verde-ouro); }
.cp-regulamento .cp-card:hover { transform: translateY(-5px); box-shadow: var(--sombra); }

/* ---------- Ganhadores ---------- */
.cp-ganhador { position: relative; overflow: hidden; transition: transform .25s ease, box-shadow .25s ease; }
.cp-ganhador::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: var(--grad-ouro); opacity: 0; transition: opacity .3s ease; }
.cp-ganhador:hover { transform: translateY(-6px); box-shadow: var(--sombra); }
.cp-ganhador:hover::before { opacity: 1; }
.cp-ganhador__avatar { background: var(--grad-marca); color: #fff; position: relative; box-shadow: 0 6px 16px rgba(var(--cor-primaria-rgb),.25); transition: background .3s ease; }
.cp-ganhador__avatar::after { content: ""; position: absolute; inset: -4px; border-radius: 50%; border: 2px solid var(--cor-ouro); opacity: 0; transition: opacity .3s ease; }
.cp-ganhador:hover .cp-ganhador__avatar { background: var(--grad-ouro); color: #3a2e0a; }
.cp-ganhador:hover .cp-ganhador__avatar::after { opacity: 1; }

/* ---------- FAQ ---------- */
.cp-faq__item { transition: box-shadow .2s ease, border-color .2s ease; }
.cp-faq__item:hover { border-color: var(--cor-ouro); box-shadow: var(--sombra-sm); }
.cp-faq__item.aberto { border-color: var(--cor-primaria); box-shadow: var(--sombra-sm); }
.cp-faq__item.aberto .cp-faq__pergunta { color: var(--cor-primaria-escura); }
.cp-faq__icone { width: 26px; height: 26px; border-radius: 50%; background: var(--cor-fundo-alt); display: grid; place-items: center; font-size: .78rem; flex-shrink: 0; }
.cp-faq__item.aberto .cp-faq__icone { background: var(--grad-ouro); color: #3a2e0a; }

/* ---------- Footer: fio dourado no topo ---------- */
.cp-footer { position: relative; }
.cp-footer::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: var(--grad-verde-ouro); }

/* Acessibilidade: respeita usuarios que preferem menos movimento */
@media (prefers-reduced-motion: reduce) {
	.reveal { opacity: 1 !important; transform: none !important; transition: none; }
	.cp-banner__glow { animation: none; }
	.cp-passo:hover, .cp-ganhador:hover, .cp-regulamento .cp-card:hover { transform: none; }
}

/* =====================================================================
   MODULOS: Proximo sorteio (card + countdown) e Cronograma (timeline)
   ===================================================================== */
/* ---- Proximo sorteio ---- */
.cp-prox { position: relative; overflow: hidden; max-width: 760px; margin: 0 auto; background: var(--grad-marca); color: #fff; border-radius: 22px; padding: 40px 36px; box-shadow: var(--sombra); text-align: center; }
.cp-prox__glow { position: absolute; width: 320px; height: 320px; top: -120px; right: -80px; background: radial-gradient(circle, rgba(var(--cor-ouro-rgb), .55), transparent 70%); filter: blur(50px); pointer-events: none; }
.cp-prox__conteudo { position: relative; z-index: 1; }
.cp-prox__tag { display: inline-flex; align-items: center; gap: .5rem; background: rgba(255,255,255,.14); border: 1px solid rgba(var(--cor-ouro-rgb), .5); color: #fff; padding: .4rem 1rem; border-radius: 999px; font-family: var(--fonte-titulo); font-weight: 600; font-size: .82rem; }
.cp-prox__tag i { color: var(--cor-ouro-claro); }
.cp-prox__nome { font-family: var(--fonte-titulo); font-weight: 800; font-size: clamp(1.5rem, 3vw, 2.2rem); margin: 14px 0 6px; }
.cp-prox__data { display: inline-flex; align-items: center; gap: .6rem; font-size: 1.15rem; font-weight: 600; }
.cp-prox__data i { color: var(--cor-ouro-claro); }
.cp-prox__sub { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; opacity: .92; font-size: .9rem; margin-top: 8px; }
.cp-prox__count { display: flex; gap: 12px; justify-content: center; margin: 26px 0; flex-wrap: wrap; }
.cp-count { background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.18); border-radius: 14px; padding: 14px 10px; min-width: 76px; }
.cp-count__n { display: block; font-family: var(--fonte-titulo); font-weight: 800; font-size: 2rem; line-height: 1; color: var(--cor-ouro-claro); font-variant-numeric: tabular-nums; }
.cp-count__l { font-size: .72rem; text-transform: uppercase; letter-spacing: 1px; opacity: .85; }
.cp-prox__count.encerrado { opacity: .6; }
.cp-prox__premios { text-align: left; max-width: 520px; margin: 0 auto 22px; background: rgba(255,255,255,.10); border-radius: 14px; padding: 16px 18px; }
.cp-prox__premios-tit { font-family: var(--fonte-titulo); font-weight: 700; margin-bottom: 8px; display: flex; align-items: center; gap: .5rem; }
.cp-prox__premios-tit i { color: var(--cor-ouro-claro); }
.cp-prox__premios ul { list-style: none; margin: 0; padding: 0; }
.cp-prox__premios li { display: flex; align-items: center; gap: 10px; padding: .45rem 0; border-top: 1px solid rgba(255,255,255,.12); font-size: .95rem; }
.cp-prox__premios li:first-child { border-top: 0; }
.cp-prox__ord { flex-shrink: 0; width: 26px; height: 26px; border-radius: 50%; background: var(--grad-ouro); color: #3a2e0a; display: grid; place-items: center; font-weight: 800; font-size: .78rem; }
.cp-prox__desc { flex: 1; }
.cp-prox__premios b { color: var(--cor-ouro-claro); white-space: nowrap; }

/* ---- Cronograma (timeline) ---- */
.cp-crono { max-width: 760px; margin: 0 auto; position: relative; padding-left: 42px; }
.cp-crono::before { content: ""; position: absolute; left: 15px; top: 8px; bottom: 8px; width: 2px; background: linear-gradient(var(--cor-primaria), var(--cor-ouro)); border-radius: 2px; }
.cp-crono__item { position: relative; margin-bottom: 16px; }
.cp-crono__marco { position: absolute; left: -42px; top: 4px; width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; color: #fff; background: var(--cor-primaria); box-shadow: 0 0 0 4px var(--cor-fundo-alt); font-size: .78rem; z-index: 1; }
.cp-crono__item--realizado .cp-crono__marco { background: #9aa4ae; }
.cp-crono__item--proximo .cp-crono__marco { background: var(--grad-ouro); color: #3a2e0a; box-shadow: 0 0 0 4px var(--cor-fundo-alt), 0 0 0 8px rgba(var(--cor-ouro-rgb), .25); }
.cp-crono__card { background: #fff; border: 1px solid var(--cor-borda); border-radius: 14px; padding: 15px 18px; box-shadow: var(--sombra-sm); transition: transform .2s ease, box-shadow .2s ease; }
.cp-crono__item:hover .cp-crono__card { transform: translateX(4px); box-shadow: var(--sombra); }
.cp-crono__item--proximo .cp-crono__card { border-color: var(--cor-ouro); box-shadow: 0 0 0 2px rgba(var(--cor-ouro-rgb), .2); }
.cp-crono__head { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; }
.cp-crono__data { font-family: var(--fonte-titulo); font-weight: 700; font-size: 1.05rem; }
.cp-crono__data span { color: var(--cor-texto-suave); font-weight: 500; font-size: .9rem; }
.cp-crono__badge { font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .5px; padding: .2rem .6rem; border-radius: 999px; }
.cp-crono__badge--realizado { background: #eef1f3; color: #6b747d; }
.cp-crono__badge--proximo { background: var(--grad-ouro); color: #3a2e0a; }
.cp-crono__badge--agendado { background: rgba(var(--cor-primaria-rgb), .12); color: var(--cor-primaria-escura); }
.cp-crono__nome { color: var(--cor-texto-suave); margin: .2rem 0 .5rem; }
.cp-crono__meta { display: flex; gap: 14px; flex-wrap: wrap; font-size: .85rem; color: var(--cor-texto-suave); }
.cp-crono__meta i { color: var(--cor-primaria); margin-right: 3px; }
