/*
 * Mandatory Public Disclosure body — shared by EVERY website template
 * (compass1-4, highschool, preschool*). Self-contained: prefix cpd-, no
 * framework needed. Colours follow the theme when it defines --cp-primary /
 * --cp-accent, else fall back to a neutral navy + gold.
 */
.cpd { --p: var(--cp-primary, #1e3a8a); --a: var(--cp-accent, #c8952b); --soft: var(--cp-soft, #f4f6fa); --line: var(--cp-line, #e5e9f0); --ink: var(--cp-ink, #1f2937); --muted: var(--cp-muted, #5b6472); color: var(--ink); }
.cpd *, .cpd *::before, .cpd *::after { box-sizing: border-box; }
.cpd a { text-decoration: none; }
.cpd-wrap { width: 1180px; max-width: 92%; margin: 0 auto; }
.cpd-narrow { width: 860px; max-width: 92%; margin: 0 auto; }

.cpd-nav { background: var(--p); }
.cpd-nav .cpd-wrap { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 26px; padding: 14px 0; }
.cpd-nav a { color: #fff; opacity: .9; font-size: 12px; font-weight: 600; letter-spacing: 1px; text-transform: uppercase; padding: 4px 0; border-bottom: 2px solid transparent; }
.cpd-nav a:hover { opacity: 1; border-bottom-color: var(--a); }

.cpd-sec { padding: 64px 0; scroll-margin-top: 70px; }
.cpd-sec.alt { background: var(--soft); }
.cpd-head { text-align: center; margin-bottom: 34px; }
.cpd-eyebrow { display: block; font-size: 12px; letter-spacing: 2.5px; text-transform: uppercase; font-weight: 700; color: var(--muted); margin-bottom: 8px; }
.cpd-head h2 { font-size: clamp(26px, 3.6vw, 38px); font-weight: 600; margin: 0 0 10px; color: var(--p); line-height: 1.2; }
.cpd-head p { color: var(--muted); max-width: 720px; margin: 0 auto; line-height: 1.8; }

.cpd-table { max-width: 860px; margin: 0 auto; }
.cpd-row { display: grid; grid-template-columns: 240px 1fr; gap: 20px; padding: 14px 20px; align-items: baseline; }
.cpd-row:nth-child(even) { background: var(--soft); }
.cpd-sec.alt .cpd-row:nth-child(even) { background: #fff; }
.cpd-row .k { font-size: 12px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: var(--p); }
.cpd-row .v { line-height: 1.6; }

.cpd-grid { display: flex; flex-wrap: wrap; justify-content: center; gap: 20px; max-width: 1100px; margin: 0 auto; }
.cpd-card { flex: 0 0 calc((100% - 40px) / 3); display: flex; align-items: center; gap: 14px; background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 16px 18px; box-shadow: 0 6px 18px rgba(0, 0, 0, .04); transition: transform .2s, box-shadow .2s; color: inherit; }
a.cpd-card:hover { transform: translateY(-3px); box-shadow: 0 12px 26px rgba(0, 0, 0, .09); }
.cpd-card .ic { width: 40px; height: 40px; border-radius: 50%; background: var(--soft); color: var(--a); display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: 16px; }
.cpd-card b { display: block; font-size: 14px; color: var(--p); line-height: 1.4; }
.cpd-card small { display: block; margin-top: 3px; font-size: 12px; color: var(--a); }
.cpd-card.pending small { color: var(--muted); font-style: italic; }

.cpd-cert { background: #fff; border: 1px solid var(--line); border-radius: 14px; box-shadow: 0 8px 26px rgba(0, 0, 0, .05); padding: 34px 36px; text-align: center; }
.cpd-cert p { font-style: italic; line-height: 1.8; color: var(--muted); margin: 0 0 18px; }
.cpd-sign { border-top: 1px solid var(--line); padding-top: 16px; }
.cpd-sign b { display: block; color: var(--p); font-size: 17px; }
.cpd-sign small { color: var(--a); font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; font-size: 11px; }
.cpd-empty { text-align: center; padding: 64px 0; color: var(--muted); }

@media (max-width: 992px) { .cpd-card { flex: 0 0 calc((100% - 20px) / 2); } }
@media (max-width: 640px) { .cpd-card { flex: 0 0 100%; } .cpd-row { grid-template-columns: 1fr; gap: 4px; } .cpd-sec { padding: 46px 0; } }
