/* CPD theme: loaded AFTER the generator inline styles and accessibility.css.
   Scoped to body.cpd-page and to main so the injected shared nav (#sh-header,
   #sh-breadcrumb, #sh-footer, #sh-related) is never restyled here.
   Selectors carry body.cpd-page main plus !important only where the shared
   nav or accessibility rules force colours with !important. */
body.cpd-page{
  --cpd-ink:#0b0c0c;--cpd-teal:#0b7285;--cpd-teal-dark:#075766;--cpd-pale:#e7f3f5;
  --cpd-btn:#00707c;--cpd-btn-hover:#005a63;--cpd-amber:#e8a020;--cpd-focus:#ffdd00;
  --cpd-red:#b42318;--cpd-red-pale:#fdecea;--cpd-line:#8fc8d1;
  --navy:#0b7285;--navy-deep:#075766;--red:#0b7285;--red-dark:#075766;--ink:#0b0c0c;--muted:#0b0c0c;--wash:#fff;--line:#8fc8d1;--green:#0b7285;
  background:#fff!important;color:var(--cpd-ink)!important;
}
body.cpd-page main{background:#fff;color:var(--cpd-ink)}
body.cpd-page main :is(h1,h2,h3,h4,legend,strong){color:var(--cpd-ink)!important}
body.cpd-page main :is(p,li,label,span,td,th){color:var(--cpd-ink)}
body.cpd-page .cpd-crumbs,body.cpd-page .cpd-crumbs :is(a,span){color:var(--cpd-ink)!important}
body.cpd-page .cpd-crumbs a:hover{color:var(--cpd-teal-dark)!important;text-decoration:underline}

/* Plain links */
body.cpd-page main a:not(.cpd-button):not(.toc a){color:var(--cpd-teal-dark)!important;font-weight:700;text-decoration:underline;text-underline-offset:2px}
body.cpd-page main a:not(.cpd-button):hover{color:var(--cpd-btn-hover)!important;text-decoration-thickness:2px}
body.cpd-page .cpd-footer,body.cpd-page .cpd-footer a{color:var(--cpd-ink)!important}

/* Hero: teal with white text (beats accessibility.css rules) */
body.cpd-page main .cpd-hero{background:var(--cpd-teal)!important;background-image:none!important;border:0;border-bottom:4px solid var(--cpd-teal-dark);box-shadow:none}
body.cpd-page main .cpd-hero:after{background:rgba(255,255,255,.08)}
body.cpd-page main .cpd-hero,
body.cpd-page main .cpd-hero :is(h1,h2,p,span,a,strong){color:#fff!important}
body.cpd-page main .cpd-hero .cpd-kicker{background:var(--cpd-teal-dark)!important;border:1px solid rgba(255,255,255,.55)}
body.cpd-page main .cpd-hero .cpd-meta span{background:var(--cpd-teal-dark)!important}

/* Panels */
body.cpd-page main .cpd-card{background:#fff;border:1px solid var(--cpd-line);box-shadow:none}
body.cpd-page main .cpd-card h2{border-bottom:2px solid var(--cpd-teal);padding-bottom:.4rem}
body.cpd-page main .cpd-card[style*="#f0fdf4"]{background:var(--cpd-pale)!important;border-color:var(--cpd-teal)!important}
body.cpd-page main .cpd-card[style*="#f0fdf4"] :is(h2,p){color:var(--cpd-ink)!important}
body.cpd-page main .cpd-card[style*="#f0fdf4"] a[href]{background:var(--cpd-btn)!important;color:#fff!important;border:2px solid var(--cpd-teal-dark)}
body.cpd-page main .cpd-card[style*="#f0fdf4"] a:hover{background:var(--cpd-btn-hover)!important}
body.cpd-page main .module-card :is(h2,p){color:var(--cpd-ink)!important}
body.cpd-page main .module-icon{background:var(--cpd-pale)!important;color:var(--cpd-teal-dark)!important}
body.cpd-page main .module-card:hover{border-color:var(--cpd-teal-dark);box-shadow:none}
body.cpd-page main .outcomes{border-top:5px solid var(--cpd-teal)}
body.cpd-page main .outcomes li{border-bottom-color:var(--cpd-line)}
body.cpd-page main .outcomes li:before{color:var(--cpd-teal-dark)}
body.cpd-page main .cpd-disclaimer{background:var(--cpd-pale)!important;border-left:4px solid var(--cpd-teal)!important;color:var(--cpd-ink)!important}
body.cpd-page main .cpd-disclaimer :is(strong,p,span){color:var(--cpd-ink)!important}
body.cpd-page main .cpd-disclaimer a{color:var(--cpd-teal-dark)!important}
body.cpd-page main .toc a{color:var(--cpd-teal-dark)!important;border:1px solid var(--cpd-teal);background:#fff;text-decoration:none}
body.cpd-page main .toc a:hover{background:var(--cpd-pale);border-color:var(--cpd-teal-dark)}

/* Callout, warning, protocol */
body.cpd-page main .callout{background:var(--cpd-pale)!important;border-left:4px solid var(--cpd-teal)!important;color:var(--cpd-ink)!important}
body.cpd-page main .callout :is(p,li,strong,span){color:var(--cpd-ink)!important}
body.cpd-page main .callout.warning,body.cpd-page main .warning{background:var(--cpd-red-pale)!important;border:1px solid #e0a8a2;border-left:5px solid var(--cpd-red)!important;color:#5c0f08!important}
body.cpd-page main .warning :is(p,li,strong,span,h3,h4){color:#5c0f08!important}
body.cpd-page main .protocol li{background:#fff;border:1px solid var(--cpd-line);border-left:4px solid var(--cpd-teal)}
body.cpd-page main .protocol li:before{background:var(--cpd-teal);color:#fff}
body.cpd-page main .case-study{background:var(--cpd-pale)!important;border:1px solid var(--cpd-teal);border-left:6px solid var(--cpd-teal-dark)}
body.cpd-page main .case-study .label{background:var(--cpd-teal-dark)!important;color:#fff!important}
body.cpd-page main .checklist div{background:#fff;border:1px solid var(--cpd-line)}
body.cpd-page main .checklist div:before{color:var(--cpd-teal-dark)}
body.cpd-page main .reflection{background:var(--cpd-pale);border-color:var(--cpd-teal)}
body.cpd-page main .reflection li{border-bottom-color:var(--cpd-line)}

/* Quiz: red only for incorrect feedback */
body.cpd-page main .quiz-question{background:#fff;border:1px solid var(--cpd-teal)}
body.cpd-page main .quiz-options label{border:1px solid var(--cpd-line);background:#fff}
body.cpd-page main .quiz-options label:hover{background:var(--cpd-pale);border-color:var(--cpd-teal-dark)}
body.cpd-page main .quiz-feedback.correct{background:var(--cpd-pale);color:var(--cpd-ink)!important;border:1px solid var(--cpd-teal);border-left:5px solid var(--cpd-teal)}
body.cpd-page main .quiz-feedback.incorrect{background:var(--cpd-red-pale);color:#5c0f08!important;border:1px solid #e0a8a2;border-left:5px solid var(--cpd-red)}
body.cpd-page main .quiz-score{color:var(--cpd-ink)!important}

/* Buttons */
body.cpd-page main .cpd-button{background:var(--cpd-btn)!important;color:#fff!important;border:2px solid var(--cpd-btn);text-decoration:none}
body.cpd-page main .cpd-button:hover{background:var(--cpd-btn-hover)!important;border-color:var(--cpd-teal-dark)}
body.cpd-page main .cpd-button.secondary{background:#fff!important;color:var(--cpd-teal-dark)!important;border:2px solid var(--cpd-teal-dark)}
body.cpd-page main .cpd-button.secondary:hover{background:var(--cpd-pale)!important}
body.cpd-page main #generate-certificate{background:var(--cpd-amber)!important;color:var(--cpd-ink)!important;border:2px solid var(--cpd-ink);font-weight:800}
body.cpd-page main #generate-certificate:hover{background:#cf8b12!important}

/* Focus */
body.cpd-page :is(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid var(--cpd-focus)!important;outline-offset:2px;box-shadow:0 0 0 5px var(--cpd-ink)}

/* Completion and certificate */
body.cpd-page main .completion{border-top:5px solid var(--cpd-teal)}
body.cpd-page main .certificate-form input{border:2px solid var(--cpd-ink);background:#fff;color:var(--cpd-ink)}
body.cpd-page main .certificate-error{color:var(--cpd-ink)!important}
body.cpd-page main .certificate{background:#fff;color:var(--cpd-ink);border:10px solid var(--cpd-teal);outline:3px solid var(--cpd-teal-dark);outline-offset:-16px;box-shadow:none}
body.cpd-page main .certificate :is(.brand,h2,.module){color:var(--cpd-ink)!important}
body.cpd-page main .certificate .brand{letter-spacing:.08em;text-transform:uppercase}
body.cpd-page main .certificate h2{border:0;padding:0;font-family:Georgia,"Times New Roman",serif}
body.cpd-page main .certificate .recipient{color:var(--cpd-teal-dark)!important;border-bottom:2px solid var(--cpd-ink)}
body.cpd-page main .certificate .fineprint,body.cpd-page main .certificate p{color:var(--cpd-ink)!important}

@media print{
  body.cpd-page :is(#sh-header,#sh-breadcrumb,#sh-footer,#sh-related,.site-skip-link){display:none!important}
  body.cpd-page,body.cpd-page main{background:#fff!important;color:#000!important}
  body.cpd-page main .certificate{border:10px double #075766;outline:2px solid #0b0c0c;color:#000;
    -webkit-print-color-adjust:exact;print-color-adjust:exact}
  body.cpd-page main .certificate :is(.brand,h2,.module,p,.fineprint){color:#000!important}
  body.cpd-page main .certificate .recipient{color:#075766!important;border-bottom:2px solid #000}
}
@media(max-width:640px){body.cpd-page main .cpd-button{width:100%}}
