/* Certificate (sample on /academy + real certificate page). Everything is prefixed cv- */
.cv-fit{ position:relative; width:100%; max-width:1122px; margin:0 auto; height:794px; }
.cv-cert{ position:absolute; left:0; top:0; width:1122px; height:794px; transform-origin:0 0; background:#fff; padding:22px; border:6px solid #b8860b; outline:3px solid #ffd700; outline-offset:-12px; overflow:hidden; box-sizing:border-box; font-family:'Montserrat',sans-serif; box-shadow:0 25px 60px -20px rgba(15,23,42,.45); }
.cv-cert *{ box-sizing:border-box; }
.cv-wm{ position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:560px; max-height:560px; object-fit:contain; pointer-events:none; z-index:1; }
.cv-wm-text{ width:auto; font-size:150px; font-weight:800; color:#0f172a; white-space:nowrap; font-family:'Playfair Display',serif; }
.cv-content{ position:relative; z-index:2; height:100%; border:2px solid #e2e8f0; padding:28px 45px 26px; display:flex; flex-direction:column; justify-content:space-between; text-align:center; }
.cv-header{ display:flex; justify-content:space-between; align-items:center; }
.cv-logo{ height:50px; max-width:260px; object-fit:contain; display:block; }
.cv-logo-text{ font-family:'Playfair Display',serif; font-weight:700; font-size:26px; color:#0f172a; letter-spacing:.5px; }
.cv-idbox{ font-size:11px; font-weight:700; color:#b8860b; text-transform:uppercase; letter-spacing:2px; background:#fffdf0; padding:6px 12px; border:1px solid #e6dbb9; border-radius:4px; }
.cv-main{ margin:0; }
.cv-title{ font-family:'Playfair Display',serif; font-size:38px; font-weight:700; color:#0f172a; text-transform:uppercase; letter-spacing:2px; margin-bottom:3px; }
.cv-sub{ font-size:12px; font-weight:700; color:#b8860b; text-transform:uppercase; letter-spacing:3px; margin-bottom:14px; }
.cv-name{ font-family:'Playfair Display',serif; font-size:42px; font-weight:700; color:#1e293b; border-bottom:2px solid #d4af37; display:inline-block; padding:0 35px 4px; margin-bottom:12px; max-width:100%; }
.cv-desc{ font-size:13.5px; color:#475569; line-height:1.65; max-width:780px; margin:0 auto; }
.cv-course{ font-weight:700; color:#0f172a; }
.cv-meta{ display:flex; justify-content:center; flex-wrap:wrap; gap:8px 40px; font-size:12px; color:#475569; font-weight:600; text-transform:uppercase; letter-spacing:1px; }
.cv-meta span{ color:#0f172a; font-weight:700; }
.cv-footer{ display:flex; justify-content:space-between; align-items:flex-end; padding:0 10px; }
.cv-sign{ width:230px; text-align:center; }
.cv-line{ border-top:1.5px solid #94a3b8; margin-bottom:6px; }
.cv-sn{ font-size:12.5px; font-weight:700; color:#0f172a; } .cv-st{ font-size:9.5px; color:#64748b; text-transform:uppercase; letter-spacing:1px; }
.cv-center{ display:flex; align-items:flex-end; gap:26px; }
.cv-seal{ width:78px; height:78px; border-radius:50%; background:linear-gradient(135deg,#d4af37,#aa771c); color:#fff; font-weight:800; font-size:10px; line-height:1.35; display:flex; align-items:center; justify-content:center; text-align:center; border:3px solid #fff; outline:2px dashed #fff; box-shadow:0 8px 20px rgba(212,175,55,.4); }
.cv-qrwrap{ text-align:center; }
.cv-qr{ width:84px; height:84px; background:#fff; padding:4px; border:1px solid #e2e8f0; border-radius:6px; margin:0 auto; }
.cv-qr svg{ width:100%; height:100%; display:block; }
.cv-qrcap{ font-size:8.5px; letter-spacing:1px; text-transform:uppercase; color:#64748b; margin-top:4px; font-weight:700; }
.cv-sample{ position:absolute; z-index:5; left:50%; top:50%; transform:translate(-50%,-50%) rotate(-17deg); font-family:'Caveat','Comic Sans MS',cursive; font-weight:700; font-size:128px; line-height:1; color:#e11d1d; white-space:nowrap; pointer-events:none; text-shadow:0 2px 0 rgba(255,255,255,.7); opacity:.92; }
/* section on /academy */
.cv-sec{ background:var(--panel,#fff); }
.cv-sec-in{ text-align:center; }
.cv-sec .sec-head{ justify-content:center; text-align:center; } .cv-sec .sec-desc{ margin:0 auto; text-align:center; }
.cv-stage{ margin-top:8px; }
/* single certificate page */
.cvp-bar{ max-width:1122px; margin:22px auto 10px; padding:0 16px; display:flex; gap:12px; flex-wrap:wrap; align-items:center; justify-content:space-between; font-family:'Inter',sans-serif; }
.cvp-bar b{ font-size:15px; }
.cvp-btn{ display:inline-flex; align-items:center; gap:8px; background:#12171D; color:#fff; border:0; border-radius:8px; padding:11px 18px; font-weight:700; font-size:14px; cursor:pointer; text-decoration:none; font-family:inherit; }
.cvp-btn.alt{ background:#fff; color:#12171D; border:1px solid #cfd6dc; }
.cvp-wrap{ padding:0 16px 40px; }
@media print{
  @page{ size:1122px 794px; margin:0; }
  html,body{ background:#fff !important; margin:0 !important; padding:0 !important; }
  body *{ visibility:hidden; }
  .cv-fit,.cv-fit *{ visibility:visible; }
  .cv-fit{ position:absolute; left:0; top:0; width:1122px !important; height:794px !important; max-width:none; }
  .cv-cert{ transform:none !important; box-shadow:none !important; }
  .cvp-bar{ display:none !important; }
  .cv-cert,.cv-seal{ -webkit-print-color-adjust:exact; print-color-adjust:exact; }
}
