/* Certificado de Graduação: porte fiel do molde oficial (Obsidian: 01-Produto/Certificado-Graduacao/molde/gerar_certificado.py).
   A4 paisagem (297x210mm), azul-marinho + ouro. Tudo escopado em .cert para não vazar para o resto do app. */
@font-face { font-family: 'Cinzel'; font-style: normal; font-weight: 500; src: url('/fonts/certificado/Cinzel-500-normal.woff2') format('woff2'); font-display: swap; }
@font-face { font-family: 'Cinzel'; font-style: normal; font-weight: 700; src: url('/fonts/certificado/Cinzel-700-normal.woff2') format('woff2'); font-display: swap; }
@font-face { font-family: 'Cinzel'; font-style: normal; font-weight: 900; src: url('/fonts/certificado/Cinzel-900-normal.woff2') format('woff2'); font-display: swap; }
@font-face { font-family: 'Cormorant Garamond'; font-style: italic; font-weight: 600; src: url('/fonts/certificado/CormorantGaramond-600-italic.woff2') format('woff2'); font-display: swap; }
@font-face { font-family: 'Cormorant Garamond'; font-style: normal; font-weight: 500; src: url('/fonts/certificado/CormorantGaramond-500-normal.woff2') format('woff2'); font-display: swap; }

/* Caixa que se ajusta à largura da tela: o certificado mantém 297x210mm e é reduzido por transform (CertificadoGraduacao.fit) */
.cert-caixa { position: relative; width: 100%; overflow: hidden; border-radius: 8px; }

.cert, .cert * { box-sizing: border-box; margin: 0; padding: 0; }
.cert {
    --navy: #0f2547; --navy2: #0a1a33; --navy-selo: #0b1b36; --ouro: #c59b27; --ouro-1: #f6de8d; --ouro-3: #7e5e10; --ouro-c: #f1d27a; --marfim: #f5efe0;
    --cor-faixa: #f4f2ec;
    position: relative; width: 297mm; height: 210mm; overflow: hidden; transform-origin: top left;
    font-family: 'Cormorant Garamond', serif; color: var(--marfim); text-align: left;
    background: radial-gradient(ellipse 70% 75% at 50% 45%, #17396a 0%, var(--navy) 45%, var(--navy2) 100%);
}
.cert .guil { position: absolute; left: 50%; top: 50%; width: 250mm; height: 250mm; transform: translate(-50%, -50%); opacity: .22; }
.cert .marca-dagua { position: absolute; left: 50%; top: 53%; width: 128mm; height: 128mm; transform: translate(-50%, -50%); opacity: .06; filter: grayscale(1) brightness(1.6); }
.cert .m1 { position: absolute; inset: 7mm; border: .7mm solid var(--ouro); }
.cert .m2 { position: absolute; inset: 9.2mm; border: .25mm solid rgba(197, 155, 39, .75); }
.cert .canto { position: absolute; width: 18mm; height: 18mm; }
.cert .canto.tl { left: 5mm; top: 5mm; }
.cert .canto.tr { right: 5mm; top: 5mm; transform: scaleX(-1); }
.cert .canto.bl { left: 5mm; bottom: 5mm; transform: scaleY(-1); }
.cert .canto.br { right: 5mm; bottom: 5mm; transform: scale(-1, -1); }
.cert .conteudo { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; text-align: center; padding-top: 13mm; }
.cert .escudo { width: 27mm; height: 27mm; filter: drop-shadow(0 0 2.5mm rgba(197, 155, 39, .45)); }
.cert .marca { margin-top: 2.2mm; font-family: 'Cinzel', serif; font-weight: 700; font-size: 10.5pt; letter-spacing: 4.2pt; color: var(--ouro-c); }
.cert .marca b { color: var(--ouro); }
.cert .cidade { font-family: 'Cinzel', serif; font-size: 7.2pt; letter-spacing: 3pt; color: rgba(245, 239, 224, .7); margin-top: .6mm; }
.cert h1 { margin-top: 3.5mm; font-family: 'Cinzel', serif; font-weight: 900; font-size: 40pt; letter-spacing: 6pt; line-height: 1;
    background: linear-gradient(180deg, #fbe6a6 0%, #e1bb4e 40%, #c59b27 62%, #8e6b12 100%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.cert .sub { display: flex; align-items: center; gap: 4mm; margin-top: 2mm; font-family: 'Cinzel', serif; font-weight: 500; font-size: 11.5pt; letter-spacing: 7pt; color: var(--marfim); }
.cert .sub i { display: block; width: 26mm; height: .35mm; background: linear-gradient(90deg, transparent, var(--ouro)); }
.cert .sub i:last-child { background: linear-gradient(270deg, transparent, var(--ouro)); }
.cert .cert-intro { margin-top: 5mm; font-style: italic; font-weight: 600; font-size: 15pt; color: rgba(245, 239, 224, .82); }
.cert .nome { margin-top: .5mm; font-style: italic; font-weight: 600; font-size: 44pt; line-height: 1.05; color: #fff8e8; text-shadow: 0 .6mm 2mm rgba(0, 0, 0, .35); }
.cert .traco { width: 125mm; height: .3mm; margin-top: 1.5mm; background: linear-gradient(90deg, transparent, var(--ouro), transparent); }
.cert .txt { margin-top: 2.6mm; font-weight: 500; font-size: 14pt; color: rgba(245, 239, 224, .9); }
.cert .faixa { width: 108mm; height: 25mm; margin-top: 2mm; }
.cert .nomefaixa { margin-top: -1mm; font-family: 'Cinzel', serif; font-weight: 700; font-size: 15pt; letter-spacing: 4pt; color: var(--ouro-c); }
.cert .stats { display: flex; margin-top: 3.5mm; }
.cert .stats div { padding: 0 6mm; border-left: .3mm solid rgba(197, 155, 39, .5); }
.cert .stats div:first-child { border-left: 0; }
.cert .stats b { display: block; font-family: 'Cinzel', serif; font-weight: 700; font-size: 14pt; color: var(--ouro-c); line-height: 1.1; }
.cert .stats span { font-family: 'Cinzel', serif; font-size: 6.4pt; letter-spacing: 1.6pt; color: rgba(245, 239, 224, .75); }
.cert .base { position: absolute; left: 24mm; right: 24mm; bottom: 19mm; display: grid; grid-template-columns: 1fr 34mm 1fr; align-items: end; gap: 6mm; }
.cert .ass { text-align: center; }
.cert .ass .l { height: .3mm; background: rgba(245, 239, 224, .75); margin-bottom: 1.6mm; }
.cert .ass b { display: block; height: 5mm; line-height: 5mm; font-family: 'Cinzel', serif; font-weight: 700; font-size: 9pt; letter-spacing: 1.5pt; color: var(--marfim); }
.cert .ass .dt { font-family: 'Cormorant Garamond', serif; font-style: italic; font-weight: 600; font-size: 12pt; letter-spacing: 0; }
.cert .ass span { font-style: italic; font-size: 10pt; color: rgba(245, 239, 224, .75); }
.cert .selo { width: 27mm; height: 31mm; margin-bottom: -3mm; filter: drop-shadow(0 .8mm 1.5mm rgba(0, 0, 0, .45)); }
.cert .rodape { position: absolute; left: 0; right: 0; bottom: 11.6mm; font-family: 'Cinzel', serif; font-size: 5.6pt; letter-spacing: 1.2pt; color: rgba(197, 155, 39, .85); text-align: center; }

/* Cores das faixas (as mesmas do molde) */
.cert[data-faixa="branca"] { --cor-faixa: #f4f2ec; }
.cert[data-faixa="amarela"] { --cor-faixa: #f2c230; }
.cert[data-faixa="laranja"] { --cor-faixa: #ee7f1e; }
.cert[data-faixa="verde"] { --cor-faixa: #2e9e4f; }
.cert[data-faixa="azul"] { --cor-faixa: #2e5fd0; }
.cert[data-faixa="marrom"] { --cor-faixa: #7a4a22; }
.cert[data-faixa="preta"] { --cor-faixa: #121212; }
.cert[data-faixa="cinza"] { --cor-faixa: #9aa3ae; }
