/* Frontend (CMS) helpers layered on top of the existing site CSS */
.kms-flash{max-width:1100px;margin:18px auto;padding:14px 18px;border-radius:10px;font-weight:600}
.kms-flash-success{background:#e7f6ec;color:#1c6b3a;border:1px solid #b6e2c5}
.kms-errors{max-width:1100px;margin:18px auto;padding:14px 18px;border-radius:10px;background:#fdecec;color:#9b1c1c;border:1px solid #f5c2c2}
.kms-errors ul{margin:6px 0 0 18px}

.fe-wrap{max-width:1100px;margin:0 auto;padding:48px 20px}
.fe-wrap.narrow{max-width:840px}
.fe-prose{line-height:1.7;color:#2b3a42}
.fe-prose h2{margin:1.4em 0 .5em;color:#0E4459}
.fe-prose h3{margin:1.2em 0 .4em;color:#0E4459}
.fe-prose p{margin:0 0 1em}
.fe-prose img{max-width:100%;height:auto;border-radius:12px;margin:12px 0}
.fe-prose ul,.fe-prose ol{margin:0 0 1em 22px}

/* hero */
.fe-hero{position:relative;background:#0E4459;color:#fff;padding:84px 20px 70px;text-align:left}
.fe-hero-inner{max-width:1100px;margin:0 auto}
.fe-hero .tp-eyebrow{display:inline-block;color:#85C555;font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:.8rem}
.fe-hero h1{margin:.25em 0;font-size:2.6rem;line-height:1.1}
.fe-hero .tp-sub{max-width:680px;color:#d7e6ec;font-size:1.05rem}
.fe-crumb{margin-top:18px;font-size:.85rem;color:#a9c6d2}
.fe-crumb a{color:#cfe6ef;text-decoration:none}

/* card grids */
.fe-grid{display:grid;gap:26px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.fe-card{background:#fff;border:1px solid #e7eef2;border-radius:14px;overflow:hidden;box-shadow:0 6px 20px rgba(14,68,89,.06);display:flex;flex-direction:column}
.fe-card img{width:100%;height:200px;object-fit:cover}
.fe-card-body{padding:18px 20px 22px}
.fe-card-body h3{margin:.1em 0 .5em;color:#0E4459}
.fe-badge{display:inline-block;background:#eaf4fb;color:#30A7DF;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:4px 10px;border-radius:999px}
.fe-btn{display:inline-block;margin-top:12px;background:#85C555;color:#fff;padding:10px 18px;border-radius:8px;text-decoration:none;font-weight:600}
.fe-btn.alt{background:#30A7DF}

/* gallery */
.fe-gallery{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));margin:18px 0 36px}
.fe-gallery figure{margin:0}
.fe-gallery img{width:100%;height:200px;object-fit:cover;border-radius:10px}

/* testimonials */
.fe-tcard{background:#fff;border:1px solid #e7eef2;border-radius:14px;padding:22px;box-shadow:0 6px 20px rgba(14,68,89,.06)}
.fe-tcard .q{font-style:italic;color:#2b3a42;line-height:1.6}
.fe-person{display:flex;align-items:center;gap:12px;margin-top:14px}
.fe-person img{width:48px;height:48px;border-radius:50%;object-fit:cover}
.fe-person .nm{font-weight:700;color:#0E4459}
.fe-person .rl{font-size:.85rem;color:#6a7d86}

/* accordion */
.fe-acc{max-width:840px;margin:0 auto}
.fe-acc details{border:1px solid #e7eef2;border-radius:12px;margin-bottom:12px;background:#fff;padding:0 18px}
.fe-acc summary{cursor:pointer;font-weight:600;color:#0E4459;padding:16px 0;list-style:none}
.fe-acc summary::-webkit-details-marker{display:none}
.fe-acc .bd{padding:0 0 16px;color:#2b3a42;line-height:1.6}
.fe-acc .bd iframe{width:100%;aspect-ratio:16/9;border:0;border-radius:10px;margin-bottom:10px}

/* forms */
.fe-form{display:grid;gap:14px;max-width:560px}
.fe-form label{font-weight:600;color:#0E4459;font-size:.9rem}
.fe-form input,.fe-form textarea{width:100%;padding:11px 13px;border:1px solid #cdd9df;border-radius:9px;font:inherit}
.fe-form textarea{min-height:120px}

/* sticky page section tabs (program pages) */
html{scroll-behavior:smooth}
.pg-tabs{position:sticky;top:0;z-index:60;background:#fff;border-bottom:1px solid #e4edf3;
    margin:0 auto;padding:0 20px;box-shadow:0 4px 14px rgba(14,68,89,.05)}
.pg-tabs .pr-tabs-inner{max-width:1100px;margin:0 auto;display:flex;gap:28px;overflow-x:auto;padding:14px 0}
.pg-tabs .pr-tab{white-space:nowrap;cursor:pointer;color:#5a6b75;font-weight:600;text-decoration:none;
    padding:0 0 10px;border-bottom:2px solid transparent;transition:color .18s,border-color .18s}
.pg-tabs .pr-tab:hover{color:#0E4459}
.pg-tabs .pr-tab.active{color:#0E4459;border-bottom-color:#85C555}

/* two-up */
.fe-split{display:grid;grid-template-columns:1.4fr .9fr;gap:40px}
@media(max-width:820px){.fe-split{grid-template-columns:1fr}.fe-hero h1{font-size:2rem}}
