/* Certificado de participação — A4 deitado. Usado no site (visualizar/imprimir em PDF) e na prévia do painel. */
.cert { --cert-fundo: #fbf7ee; --cert-texto: #2b241d; --cert-ouro: #b8913c;
    width: 297mm; height: 210mm; position: relative; box-sizing: border-box; padding: 10mm; overflow: hidden;
    background: radial-gradient(120% 90% at 50% 0%, rgba(255,255,255,.9), transparent 60%), var(--cert-fundo);
    color: var(--cert-texto); font-family: "Outfit", "Segoe UI", Arial, sans-serif; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.cert *, .cert *::before, .cert *::after { box-sizing: border-box; }
.cert::before { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .07;
    background: repeating-linear-gradient(45deg, var(--cert-ouro) 0 1px, transparent 1px 14px); }
.cert--escuro { --cert-fundo: #14110d; --cert-texto: #f3ead8; background: radial-gradient(120% 90% at 50% 0%, rgba(201,162,74,.18), transparent 60%), var(--cert-fundo); }
.cert__moldura { position: relative; height: 100%; border: 1.2mm solid var(--cert-ouro); padding: 9mm 18mm 8mm; display: flex; flex-direction: column; }
.cert__moldura::before { content: ""; position: absolute; inset: 2.6mm; border: .35mm solid var(--cert-ouro); opacity: .7; pointer-events: none; }
.cert__canto { position: absolute; width: 16mm; height: 16mm; border: .9mm solid var(--cert-ouro); }
.cert__canto--1 { top: 5.5mm; left: 5.5mm; border-right: 0; border-bottom: 0; }
.cert__canto--2 { top: 5.5mm; right: 5.5mm; border-left: 0; border-bottom: 0; }
.cert__canto--3 { bottom: 5.5mm; left: 5.5mm; border-right: 0; border-top: 0; }
.cert__canto--4 { bottom: 5.5mm; right: 5.5mm; border-left: 0; border-top: 0; }
.cert__topo { display: flex; justify-content: space-between; align-items: center; min-height: 18mm; }
.cert__logo { height: 17mm; width: auto; object-fit: contain; }
.cert__logo--equus { background: #14110d; padding: 1.6mm 3mm; border-radius: 2mm; }
.cert--escuro .cert__logo--equus { background: transparent; mix-blend-mode: screen; padding: 0; }
.cert__topo:has(.cert__logo:only-child) { justify-content: center; }
.cert__corpo { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.cert__titulo { margin: 0; font-family: "Fraunces", Georgia, serif; font-weight: 500; font-size: 15mm; line-height: 1; letter-spacing: .02em; color: var(--cert-texto); text-transform: uppercase; }
.cert__titulo small { display: block; margin-top: 2.5mm; font-family: "Outfit", Arial, sans-serif; font-size: 4.2mm; letter-spacing: .5em; text-transform: uppercase; color: var(--cert-ouro); font-weight: 600; }
.cert__para { margin: 7mm 0 1mm; font-size: 3.8mm; letter-spacing: .12em; text-transform: uppercase; opacity: .7; }
.cert__nome { margin: 0; padding: 0 10mm 2mm; font-family: "Fraunces", Georgia, serif; font-style: italic; font-weight: 500; font-size: 13mm; line-height: 1.15; color: var(--cert-ouro); border-bottom: .3mm solid var(--cert-ouro); }
.cert__texto { max-width: 205mm; margin: 6mm auto 0; font-size: 4.3mm; line-height: 1.6; }
.cert__nome-inline { font-weight: 600; }
.cert__frase { margin: 4mm 0 0; font-family: "Fraunces", Georgia, serif; font-style: italic; font-size: 3.9mm; opacity: .75; }
.cert__rodape { display: flex; justify-content: center; gap: 30mm; margin-top: 4mm; }
.cert__assinatura { display: flex; flex-direction: column; align-items: center; width: 70mm; text-align: center; }
.cert__linha { width: 100%; height: 12mm; border-bottom: .35mm solid currentColor; opacity: .6; margin-bottom: 2mm; }
.cert__assinatura strong { font-size: 4.1mm; }
.cert__assinatura small { font-size: 3.1mm; opacity: .75; margin-top: .6mm; }
.cert__codigo { margin: 4mm 0 0; text-align: center; font-size: 2.8mm; letter-spacing: .04em; opacity: .65; }

/* página do certificado no site */
.cert-topo { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 12px 20px; background: #14110d; }
.cert-topo img { height: 52px; width: auto; mix-blend-mode: screen; }
.cert-topo__link { color: #e7cd96; font-size: .92rem; }
.cert-caixa { width: min(560px, 100%); padding: 32px 28px; border-radius: 22px; background: #fff; box-shadow: 0 30px 60px -30px rgba(0,0,0,.35); }
.cert-caixa h1 { font-family: var(--serifa); font-weight: 500; font-size: 1.9rem; }
.cert-caixa p { color: #5b6876; }
.cert-form { display: grid; gap: 14px; margin-top: 18px; }
.cert-erro { padding: 12px 14px; border-radius: 12px; background: #fbe9e6; color: #a03a26 !important; }
.cert-lista { list-style: none; padding: 0; margin: 14px 0; display: grid; gap: 10px; }
.cert-lista a { display: grid; gap: 2px; padding: 14px 16px; border-radius: 14px; border: 1px solid #e3e7ec; text-decoration: none; color: inherit; border-left: 4px solid #b8913c; }
.cert-lista a:hover { background: #fbf7ee; }
.cert-lista span { color: #5b6876; font-size: .9rem; }
.cert-lista em { font-style: normal; color: #063952; font-weight: 600; font-size: .9rem; }
body.pg-certificado { background: #e9e4da; }
.cert-pagina { padding: 28px 16px 60px; display: grid; justify-items: center; gap: 18px; }
.cert-pagina__acoes { display: flex; gap: 10px; flex-wrap: wrap; justify-content: center; }
.cert-pagina__dica { max-width: 640px; text-align: center; color: #5b6876; font-size: .9rem; margin: 0; }
.cert-escala { width: 100%; max-width: 1123px; aspect-ratio: 297 / 210; position: relative; }
.cert-escala > .cert { position: absolute; top: 0; left: 0; transform-origin: top left; box-shadow: 0 30px 60px -30px rgba(0,0,0,.45); }

@media print {
    @page { size: A4 landscape; margin: 0; }
    html, body { margin: 0 !important; padding: 0 !important; background: none !important; }
    body > *:not(.cert-impressao) { display: none !important; }
    .cert-impressao { display: block !important; }
    .cert-impressao .cert { box-shadow: none; transform: none !important; position: static !important; }
    .cert-escala { width: auto; max-width: none; aspect-ratio: auto; }
}

/* logo do Equus maior, centralizada, preta e sem fundo; logo da Cris entre as assinaturas */
.cert__topo { justify-content: center; min-height: 0; margin-top: 1mm; }
.cert__logo--equus { height: 30mm; width: auto; background: none; padding: 0; border-radius: 0; filter: brightness(0); mix-blend-mode: normal; }
.cert--escuro .cert__logo--equus { filter: none; mix-blend-mode: normal; }
.cert__titulo { font-size: 14mm; }
.cert__para { margin-top: 5mm; }
.cert__texto { margin-top: 5mm; }
.cert__rodape { align-items: flex-end; gap: 16mm; margin-top: 3mm; }
.cert__rodape .cert__logo--cris { height: 16mm; width: auto; align-self: center; margin-bottom: 2mm; }

/* assinatura desenhada sobre a linha */
.cert__assinatura { position: relative; }
.cert__assinatura-img { display: block; height: 15mm; max-width: 66mm; width: auto; object-fit: contain; margin: 0 auto -5mm; position: relative; z-index: 1; }
.cert__assinatura--assinada .cert__linha { height: 1mm; }
.cert--escuro .cert__assinatura-img { filter: invert(1) brightness(1.6); }

/* página de assinatura */
.pg-assinar .cert-pagina { grid-template-columns: minmax(0, 1fr); }
.assinar > * { min-width: 0; }
.assinar { display: grid; gap: 14px; width: min(640px, 100%); }
.assinar h1 { margin-bottom: 0; }
.assinar [hidden] { display: none !important; }
.assinar__atual { display: grid; gap: 6px; padding: 12px; border-radius: 14px; background: #fbf7ee; border: 1px dashed #d9c38e; }
.assinar__atual small { color: #5b6876; }
.assinar__atual img { max-height: 80px; width: auto; margin: 0 auto; }
.assinar__abas { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; padding: 4px; border-radius: 14px; background: #f1ede4; }
.assinar__abas button { padding: 10px; border: 0; border-radius: 10px; background: transparent; font: 600 .92rem var(--fonte); color: #5b6876; cursor: pointer; }
.assinar__abas button.ativa { background: #fff; color: #14110d; box-shadow: 0 2px 8px -4px rgba(0,0,0,.3); }
.assinar__quadro { position: relative; width: 100%; aspect-ratio: 5 / 2; min-height: 170px; border-radius: 16px; background: #fff; border: 2px solid #d9c38e; overflow: hidden; touch-action: none; }
.assinar__quadro canvas { position: absolute; inset: 0; width: 100%; height: 100%; cursor: crosshair; touch-action: none; }
.assinar__dica { position: absolute; left: 0; right: 0; top: 38%; text-align: center; color: #b0a58f; font-size: .95rem; pointer-events: none; }
.assinar__linha { position: absolute; left: 8%; right: 8%; bottom: 26%; border-bottom: 1.5px solid #d9c38e; pointer-events: none; }
.assinar__acoes-quadro { display: flex; gap: 8px; justify-content: flex-end; }
.assinar__acoes-quadro .btn { padding: .55em 1.1em; font-size: .85rem; }
.assinar__ajuda { margin: 0; font-size: .85rem; }
.soltar-foto { position: relative; display: flex; align-items: center; justify-content: center; min-height: 90px; border-radius: 16px; border: 2px dashed #d9c38e; background: #fffdf6; cursor: pointer; color: #5b6876; font-weight: 600; }
.soltar-foto input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.assinar__previa-foto { max-height: 160px; width: auto; margin: 0 auto; border-radius: 10px; }
.assinar__ok { text-align: center; display: grid; gap: 8px; justify-items: center; }
.assinar__ok img { max-height: 110px; width: auto; }
.sucesso-icone { display: grid; place-items: center; width: 64px; height: 64px; border-radius: 50%; background: #14110d; color: #e7cd96; font-size: 1.8rem; }
