/* Programme profiles extend the existing Elevate Africa design system. */
.ep-page { background: #fffdf9; }
.ep-page main { display: block; }
.ep-hero { padding: 64px 0 76px; background: radial-gradient(ellipse at 95% 5%, #eed8b7 0, transparent 52%), #f5eee3; border-bottom: 1px solid #e8dccb; }
.ep-hero-grid { display: grid; grid-template-columns: 1.65fr 1fr; gap: 64px; align-items: center; }
.ep-breadcrumb { display: flex; flex-wrap: wrap; gap: 12px; font-size: 13px; margin-bottom: 44px; color: #6f6253; }
.ep-breadcrumb a:hover { text-decoration: underline; }
.ep-hero-brand { display: flex; align-items: center; width: min(330px, 78vw); height: 112px; margin: 0 0 28px; padding: 10px 18px; background: rgba(255,255,255,.76); border: 1px solid rgba(158,51,19,.12); border-radius: 10px; }
.ep-hero-brand img { display: block; width: 100%; height: 90px; object-fit: contain; object-position: left center; }
.ep-hero-brand--dark { background: #050505; border-color: rgba(243,154,9,.35); }
.ep-eyebrow { font-size: 12px; text-transform: uppercase; letter-spacing: .13em; color: #9e3313; font-weight: 700; margin: 0 0 18px; }
.ep-hero h1 { font-size: clamp(38px, 5vw, 66px); line-height: 1.08; letter-spacing: -.045em; color: #28251f; margin-bottom: 25px; }
.ep-lead { font-size: 19px; line-height: 1.65; max-width: 650px; color: #62594c; }
.ep-actions { display: flex; flex-wrap: wrap; gap: 20px; align-items: center; margin-top: 28px; }
.ep-hero-note { padding: 42px 36px; background: #17484d; color: #fff8ed; border-radius: 4px 68px 4px 4px; box-shadow: 18px 18px 0 #e6c89b; }
.ep-note-mark { display: block; color: #f4ba57; font-size: 32px; letter-spacing: -.07em; margin-bottom: 45px; }
.ep-hero-note p { font-size: 27px; line-height: 1.45; letter-spacing: -.02em; margin-bottom: 32px; }
.ep-hero-note > span:last-child { font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: #d6e2de; }
.ep-programme-logo { display: flex; align-items: center; justify-content: center; height: 92px; margin: -12px 0 30px; padding: 10px 16px; border-radius: 8px; background: #fff; overflow: hidden; }
.ep-programme-logo img { display: block; width: 100%; height: 72px; object-fit: contain; }
.ep-programme-logo--dark { background: #050505; }
.ep-programme-logo--dark img { height: 66px; }
.ep-section { padding: 72px 0; }
.ep-section h2 { font-size: clamp(28px, 3vw, 40px); max-width: 800px; letter-spacing: -.025em; color: #28251f; }
.ep-section > .ea-container > p:not(.ep-eyebrow) { max-width: 820px; color: #60584e; font-size: 17px; line-height: 1.8; }
.ep-warm { background: #f7f2e9; }
.ep-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; margin: 32px 0; }
.ep-card { padding: 28px; border: 1px solid #e4dbcf; border-radius: 12px; background: #fffdfa; display: flex; flex-direction: column; align-items: flex-start; }
.ep-card h3 { font-size: 23px; line-height: 1.3; color: #292820; letter-spacing: -.02em; }
.ep-card p:not(.ep-eyebrow) { color: #665d52; font-size: 16px; line-height: 1.75; }
.ep-card .ep-link { margin-top: auto; padding-top: 14px; }
:is(.ep-home-work,.ep-page) .ep-card-logo { width: 100%; height: 92px; margin: -6px 0 22px; display: flex; align-items: center; justify-content: center; overflow: hidden; border-bottom: 1px solid #eee5d9; }
:is(.ep-home-work,.ep-page) .ep-card-logo img { display: block; width: 100%; height: 76px; object-fit: contain; }
:is(.ep-home-work,.ep-page) .ep-card-logo--dark { padding: 9px 15px; background: #050505; border-bottom: 0; }
:is(.ep-home-work,.ep-page) .ep-card-logo--dark img { height: 66px; }
:is(.ep-home-work,.ep-page) .ep-card-media { width: calc(100% + 56px); height: 155px; margin: -28px -28px 24px; overflow: hidden; border-radius: 12px 12px 0 0; background: #102f32; }
:is(.ep-home-work,.ep-page) .ep-card-media img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 45%; }
.ep-link { color: #17484d; font-size: 15px; font-weight: 700; line-height: 1.6; display: inline-block; }
.ep-link span { padding-left: 8px; }
.ep-link:hover { color: #9e3313; text-decoration: underline; }
.ep-page a:focus-visible, .ep-home-work a:focus-visible { outline: 3px solid #9e3313; outline-offset: 5px; }
.ep-cta { padding: 42px; background: #17484d; color: white; border-radius: 16px; display: grid; grid-template-columns: 1.6fr 1fr; gap: 35px; align-items: center; }
.ep-cta h2, .ep-cta p { color: #fff8ed; }
.ep-cta .ep-eyebrow { color: #f4ba57; }
.ep-cta p { margin-bottom: 0; }
.ep-cta .ep-actions { margin-top: 0; }
.ep-cta .ea-btn--ghost { background: transparent; color: white; border-color: #a7bdb8; }
.ep-related { border-top: 1px solid #e4dbcf; padding-top: 48px; padding-bottom: 48px; }
.ep-home-work .ep-lead { max-width: 760px; }
/* Keep the expanded programme menus usable on smaller screens. */
.ea-submenu { max-height: min(75vh, 600px); overflow-y: auto; }
.ea-drawer { overflow-y: auto; overscroll-behavior: contain; }
@media (max-width: 991px) {
 .ep-hero-grid { gap: 36px; grid-template-columns: 1.4fr 1fr; }
 .ep-hero-note { padding: 30px 25px; }
 .ep-hero-note p { font-size: 23px; }
 .ep-programme-logo { height: 78px; margin-bottom: 24px; }
 .ep-programme-logo img { height: 60px; }
 .ep-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
 .ep-cta { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
 .ep-hero { padding: 32px 0 48px; }
 .ep-hero-grid { grid-template-columns: 1fr; gap: 35px; }
 .ep-breadcrumb { margin-bottom: 30px; }
 .ep-hero-brand { width: min(280px, 82vw); height: 92px; margin-bottom: 22px; }
 .ep-hero-brand img { height: 72px; }
 .ep-hero-note { margin-right: 16px; box-shadow: 12px 12px 0 #e6c89b; }
 .ep-note-mark { margin-bottom: 20px; }
 .ep-lead { font-size: 17px; }
 .ep-section { padding: 48px 0; }
 .ep-grid { grid-template-columns: 1fr; gap: 16px; margin: 24px 0; }
 .ep-card { padding: 24px; }
 :is(.ep-home-work,.ep-page) .ep-card-media { width: calc(100% + 48px); margin: -24px -24px 22px; }
 .ep-cta { padding: 28px 24px; gap: 24px; }
 .ep-actions { gap: 16px; }
}
