/* ==========================================================================
   NHIA membership card + certificate.
   Colours are fixed (not theme variables) so the card looks the same on the dark site,
   in the light admin panel and on paper. Sizes use `em`, so the card scales as one unit:
   24em = 85.6 mm (a standard ID card), so on paper the font size is 85.6/24 mm.
   ========================================================================== */
.mc,.cert{--n:#00306C;--b:#024EA2;--t:#00848A;--ink:#0B1F3A;--mute:#5B6E8A;--line:#D5E0EE;font-family:"Public Sans",system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);-webkit-print-color-adjust:exact;print-color-adjust:exact}
.mc *,.cert *{box-sizing:border-box}
.mc small,.cert small{display:block;font-size:.62em;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--mute)}

/* ── Card ── */
.mc{position:relative;width:24em;height:15.13em;font-size:14px;background:#fff;border-radius:.9em;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 .5em 1.6em rgba(0,20,60,.35);border:1px solid var(--line);line-height:1.25;max-width:100%}
.mc-head{display:flex;align-items:center;gap:.7em;height:3.3em;padding:0 1em;background:linear-gradient(100deg,var(--n),var(--b) 70%,var(--t));color:#fff;flex:none}
.mc-head img{width:2.3em;height:2.3em;border-radius:50%;background:#fff;padding:.1em;flex:none}
.mc-head div{display:flex;flex-direction:column;min-width:0}
.mc-head strong{font-size:.72em;line-height:1.15;font-weight:700}
.mc-head span{font-size:.58em;letter-spacing:.14em;text-transform:uppercase;opacity:.85;margin-top:.15em}
.mc-body{flex:1;padding:.6em 1em .3em;display:flex;flex-direction:column;justify-content:space-between;min-height:0}
.mc-top{display:flex;gap:.9em;align-items:flex-start}
.mc-photo{width:4.2em;height:5.2em;flex:none;border-radius:.45em;object-fit:cover;border:1px solid var(--line);background:#EAF1FA}
.mc-ph{display:grid;place-items:center}
.mc-ph span{font:700 1.6em/1 "Bricolage Grotesque","Segoe UI",sans-serif;color:var(--b)}
.mc-who{min-width:0}
.mc-who h3{font:700 1.12em/1.15 "Bricolage Grotesque","Segoe UI",sans-serif;color:var(--n);margin:0 0 .25em;letter-spacing:-.01em;overflow-wrap:anywhere;color:var(--n)}
.mc-who p{font-size:.66em;color:var(--mute);margin:0 0 .5em;line-height:1.3;overflow-wrap:anywhere}
.mc-type{display:inline-block;font-size:.6em;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#fff;background:var(--t);padding:.25em .8em;border-radius:99px}
.mc-bot{display:flex;justify-content:space-between;align-items:flex-end;gap:.6em}
.mc-ids b{display:block;font:700 1.15em/1.1 ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;color:var(--n);letter-spacing:.03em;margin:.05em 0 .25em}
.mc-dates{display:flex;gap:.9em;font-size:.64em;font-weight:600;white-space:nowrap}
.mc-dates small{margin-bottom:.1em}
.mc-ids{flex:none}
.mc-sign{flex:1;min-width:0;text-align:center;padding:0 .3em .05em;display:flex;flex-direction:column;justify-content:flex-end}
.mc-sign img{display:block;margin:0 auto;max-width:100%;max-height:2em;object-fit:contain}
.mc-sign-gap{display:block;height:1.6em}
.mc-sign i{display:block;border-top:1px solid var(--ink);margin:.1em .2em .12em}
.mc-sign b{display:block;font-size:.58em;line-height:1.15;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mc-sign em{display:block;font-style:normal;font-size:.5em;line-height:1.2;color:var(--mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mc-qr{width:3.9em;height:3.9em;flex:none;border:1px solid var(--line);border-radius:.3em;background:#fff;padding:.1em}
.mc-foot{flex:none;text-align:center;font-size:.52em;letter-spacing:.06em;color:var(--mute);padding:.3em 0 .5em;border-top:1px solid var(--line);margin:0 1.6em}
.mc-stamp{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) rotate(-18deg);font:800 2.4em/1 "Bricolage Grotesque",sans-serif;letter-spacing:.12em;color:rgba(200,30,30,.55);border:.08em solid rgba(200,30,30,.55);padding:.1em .4em;border-radius:.15em;pointer-events:none}
.mc.is-expired .mc-head{filter:grayscale(.7)}

/* ── Certificate (A4 landscape) ── */
.cert{width:297mm;height:210mm;background:#fff;padding:9mm;font-size:4mm;position:relative}
.cert-frame{position:relative;height:100%;border:1.6mm double var(--n);outline:.4mm solid var(--t);outline-offset:-4mm;display:flex;flex-direction:column;align-items:center;text-align:center;padding:10mm 20mm 8mm;background:linear-gradient(180deg,#fff 70%,#F1F7FC)}
.cert-logo{width:24mm;height:24mm;border-radius:50%;margin-bottom:2mm}
.cert-org{font-size:5mm;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--n)}
.cert h1{font:800 13mm/1.1 "Bricolage Grotesque","Segoe UI",sans-serif;color:var(--n);margin:4mm 0 5mm;letter-spacing:-.01em}
.cert-lead{font-size:4.6mm;color:var(--mute)}
.cert-name{font:700 12mm/1.2 "Bricolage Grotesque","Segoe UI",sans-serif;color:var(--b);margin:3mm 0 1mm;border-bottom:.4mm solid var(--line);padding:0 12mm 2mm;max-width:100%;overflow-wrap:anywhere}
.cert-sub{font-size:4.2mm;color:var(--mute);margin-top:1mm}
.cert-text{font-size:4.8mm;max-width:190mm;margin:5mm 0 6mm;line-height:1.5}
.cert-facts{display:flex;gap:16mm;justify-content:center}
.cert-facts small{font-size:3mm}.cert-facts b{display:block;font-size:5.2mm;color:var(--n);margin-top:.8mm}
.cert-foot{margin-top:auto;width:100%;display:flex;justify-content:space-between;align-items:flex-end}
.cert-verify{display:flex;align-items:center;gap:4mm;text-align:left;font-size:3.2mm;color:var(--mute)}
.cert-verify img{width:21mm;height:21mm}.cert-verify em{font-style:normal;color:var(--n);font-weight:600}
.cert-sign{width:62mm;font-size:3.4mm;color:var(--mute);text-align:center}
.cert-sign span{display:block;border-top:.4mm solid var(--ink);margin-bottom:1.5mm}
.cert-sign img{display:block;margin:0 auto -1mm;max-width:52mm;max-height:20mm;object-fit:contain}
.cert-sign-gap{height:14mm}
.cert-sign b{display:block;color:var(--ink);font-size:3.8mm}
.cert-stamp{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) rotate(-18deg);font:800 30mm/1 "Bricolage Grotesque",sans-serif;letter-spacing:.1em;color:rgba(200,30,30,.35);border:2mm solid rgba(200,30,30,.35);padding:2mm 10mm}

/* ── Printing: only #print-root is printed. Nothing is hidden on screen. ── */
#print-root{display:none}
.pr-card{page:mcard;display:flex;justify-content:center;padding-top:12mm}
.pr-cert{page:mcert}
@page mcard{size:A4 portrait;margin:12mm}
@page mcert{size:A4 landscape;margin:0}
@media print{
  body.printing>*:not(#print-root){display:none!important}
  body.printing #print-root{display:block!important}
  body.printing{background:#fff!important;padding:0!important;margin:0!important;color:#000!important;overflow:visible!important}
  body.printing .mc{font-size:3.5667mm;box-shadow:none;border:.2mm solid var(--line)}
}
