:root{--verde:#0b3d2e;--verde2:#0f5a41;--ouro:#f5c518;--ouro2:#ffe27a;--azul:#071a2b}

/* CARD — bandeira oficial do Brasil ao fundo. Tudo em cqw: a carteirinha escala em qualquer largura */
.card3d{perspective:1200px}
.carteira{text-align:left;container-type:inline-size;width:100%;max-width:440px;aspect-ratio:10/7;margin:auto;border-radius:3.5cqw;position:relative;color:#fff;overflow:hidden;
  background:url(img/bandeira-brasil.svg) center/100% 100% no-repeat,#009739;
  box-shadow:0 30px 60px rgba(0,0,0,.4);
  transform:rotateY(-14deg) rotateX(6deg);transition:transform .5s;display:flex;flex-direction:column;justify-content:space-between}
.carteira:hover{transform:rotateY(0) rotateX(0)}
.carteira:after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.14) 50%,transparent 65%);pointer-events:none}
.carteira .top{display:flex;justify-content:space-between;align-items:flex-start;padding:3.4cqw 3.6cqw 0;gap:2cqw}
.carteira .top b,.carteira .top span{background:#002776;border-radius:99px;padding:1cqw 2.6cqw;white-space:nowrap;box-shadow:0 .4cqw 1.2cqw rgba(0,0,0,.3)}
.carteira .top b{font-family:'Playfair Display',Georgia,serif;font-size:3.5cqw;color:#fff}
.carteira .top span{font-size:2.2cqw;letter-spacing:.16em;text-transform:uppercase;color:#ffcc00;font-weight:700}
.carteira .strip{display:flex;justify-content:space-between;align-items:flex-end;gap:3cqw;margin:0 3.6cqw 3.6cqw;padding:1.8cqw 3.4cqw 2.2cqw;background:#002776;border-radius:2.6cqw;border:.4cqw solid #ffcc00}
.carteira .info{min-width:0;flex:1}
.carteira small{display:block;font-size:1.8cqw;letter-spacing:.16em;text-transform:uppercase;color:#a9bde9}
.carteira .num{font-family:'Courier New',monospace;font-size:5.8cqw;letter-spacing:.06em;color:#ffcc00;font-weight:700;line-height:1.1;margin:0 0 1cqw}
.carteira .nome{font-weight:700;font-size:3cqw;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.carteira .dir{flex:none;width:13.5cqw;text-align:center}
.carteira .desde{margin-top:1cqw;font-size:1.7cqw;letter-spacing:.06em;text-transform:none}
.carteira .foto{flex:none;align-self:flex-end;width:16cqw;aspect-ratio:3/4;margin-top:-6.5cqw;object-fit:cover;border:.6cqw solid #fff;border-radius:1.2cqw;background:#cfd8e6;box-shadow:0 .6cqw 1.6cqw rgba(0,0,0,.35);display:block}
.carteira .foto.vazia{display:grid;place-items:center;font-size:1.6cqw;font-weight:700;color:#5b6773;letter-spacing:.1em}
.selo{background:#fff;border-radius:1.4cqw;padding:1cqw;line-height:0}
.selo img{width:100%;display:block}
.carteira.verso{background:#002776;justify-content:flex-start}
.verso .faixa{display:flex;justify-content:space-between;align-items:center;background:#009739;border-bottom:1.2cqw solid #ffcc00;padding:0 4.5cqw;height:11cqw}
.verso .faixa b{font-family:'Playfair Display',Georgia,serif;font-size:4cqw}
.verso .faixa span{font-size:2.2cqw;letter-spacing:.18em;text-transform:uppercase;color:#ffdf00;font-weight:700}
.verso .corpo{display:flex;justify-content:space-between;align-items:center;gap:3cqw;padding:3.2cqw 4.5cqw 0;flex:1}
.verso .dados{min-width:0}
.verso .cpf{font-family:'Courier New',monospace;font-size:5.8cqw;font-weight:700;letter-spacing:.06em;margin:.4cqw 0 2.4cqw}
.verso .n2{font-family:'Courier New',monospace;font-size:4.2cqw;font-weight:700;color:#ffcc00;margin:.4cqw 0 2.4cqw}
.verso .nota{font-size:2cqw;line-height:1.5;color:#c9d6f3}
.verso .qr{flex:none;width:31cqw;background:#fff;border-radius:2cqw;padding:1.6cqw;line-height:0}
.verso .qr img,.verso .qr svg{width:100%;display:block}
.verso .rodape{text-align:center;font-size:1.7cqw;letter-spacing:.08em;color:#a9bde9;padding:0 0 2.6cqw}
.rotulo{font-size:2.2cqw;letter-spacing:.2em;text-transform:uppercase;color:#a9bde9;margin:2.5cqw 0 1cqw;text-align:center}
.solo .carteira,.final .carteira{transform:none;margin:20px auto}
@media(max-width:860px){.carteira{transform:none}}
.rotulo{color:#a9bde9}
.aviso{max-width:440px;margin:16px auto 4px;background:#fff3cd;border:1px solid #ffe08a;color:#6b5200;font-size:.82rem;line-height:1.5;border-radius:10px;padding:10px 14px;text-align:left}
