/* Programme catalogue and course learning pages */

.programmes-page {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: clamp(72px, 8vw, 118px) 0 clamp(90px, 10vw, 140px);
    background:
        radial-gradient(circle at 50% 5%, rgba(217, 168, 68, .075), transparent 31rem),
        #020202;
}

.programmes-page-container {
    width: min(1520px, calc(100% - 48px));
    margin-inline: auto;
}

.programmes-page-heading {
    max-width: 980px;
    margin: 0 auto clamp(44px, 5vw, 70px);
    text-align: center;
}

.programmes-page-heading .eyebrow {
    margin: 0 0 15px;
}

.programmes-page-heading h1 {
    margin: 0;
    font: 400 clamp(3.25rem, 6.2vw, 6.4rem) / .98 Georgia, serif;
    letter-spacing: -.035em;
    text-wrap: balance;
}

.programmes-heading-ornament {
    width: min(230px, 42vw);
    height: 20px;
    margin: 25px auto 14px;
    display: grid;
    grid-template-columns: 1fr 14px 1fr;
    align-items: center;
    gap: 8px;
}

.programmes-heading-ornament span {
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(240, 202, 114, .85));
}

.programmes-heading-ornament span:last-child {
    background: linear-gradient(90deg, rgba(240, 202, 114, .85), transparent);
}

.programmes-heading-ornament i {
    width: 9px;
    height: 9px;
    display: block;
    background: #f0ca72;
    box-shadow: 0 0 13px rgba(240, 202, 114, .7);
    transform: rotate(45deg);
}

.programmes-page-intro {
    max-width: 780px;
    margin: 0 auto;
    color: #b9b1a5;
    font-size: clamp(1rem, 1.4vw, 1.2rem);
    line-height: 1.65;
}

.programme-showcase-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(20px, 2.2vw, 30px);
}

.programme-showcase-card {
    min-width: 0;
    min-height: 650px;
    display: grid;
    grid-template-rows: 1fr auto;
    overflow: hidden;
    border: 1px solid rgba(240, 202, 114, .78);
    border-radius: 18px;
    background: linear-gradient(145deg, #0b0a09, #030303 72%);
    box-shadow:
        0 26px 80px rgba(0, 0, 0, .42),
        inset 0 0 0 1px rgba(255, 255, 255, .025);
}

.programme-card-body {
    min-height: 535px;
    display: grid;
    grid-template-columns: minmax(250px, .91fr) minmax(290px, 1.09fr);
}

.programme-card-visual {
    position: relative;
    min-height: 535px;
    overflow: hidden;
    background: #060606;
}

.programme-card-visual::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(90deg, transparent 72%, rgba(0, 0, 0, .18));
}

.programme-card-visual img,
.programme-image-placeholder {
    width: 100%;
    height: 100%;
    display: block;
}

.programme-card-visual img {
    object-fit: cover;
}

.programme-image-placeholder {
    min-height: 535px;
    display: grid;
    place-items: center;
    padding: 28px;
    background:
        radial-gradient(circle at 50% 47%, rgba(241, 190, 88, .5), transparent 9%),
        radial-gradient(circle at 56% 54%, rgba(151, 103, 35, .34), transparent 28%),
        conic-gradient(from 215deg at 55% 62%, #080808, #3b2a12, #0a0908, #17111d, #050505);
    color: rgba(240, 202, 114, .82);
    font-size: .76rem;
    font-weight: 700;
    letter-spacing: .06em;
    line-height: 1.55;
    text-align: center;
}

.programme-card-badge {
    position: absolute;
    z-index: 2;
    top: 25px;
    left: 27px;
    max-width: calc(100% - 54px);
    padding: 7px 16px;
    overflow: hidden;
    border: 1px solid rgba(240, 202, 114, .7);
    border-radius: 999px;
    background: rgba(4, 4, 4, .78);
    box-shadow: 0 0 24px rgba(217, 168, 68, .1);
    color: #e5c16e;
    font-size: .67rem;
    font-weight: 800;
    letter-spacing: .13em;
    line-height: 1.2;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}

.programme-card-content {
    min-width: 0;
    padding: clamp(38px, 3.3vw, 56px) clamp(30px, 3vw, 48px) 35px;
    display: flex;
    flex-direction: column;
}

.programme-card-content h2 {
    margin: 0 0 10px;
    color: #f6f0e6;
    font: 400 clamp(2.05rem, 2.65vw, 3.15rem) / 1.06 Georgia, serif;
    letter-spacing: -.025em;
    text-wrap: balance;
}

.programme-card-subtitle {
    margin: 0;
    color: #dcb45d;
    font: 400 clamp(1rem, 1.3vw, 1.2rem) / 1.5 Georgia, serif;
}

.programme-card-description {
    margin: 21px 0 0;
    color: #c3bbaf;
    font-size: clamp(.92rem, 1vw, 1.03rem);
    line-height: 1.75;
}

.programme-feature-list {
    margin: 27px 0 0;
    padding: 25px 0 0;
    display: grid;
    gap: 12px;
    border-top: 1px solid rgba(255, 255, 255, .16);
    color: #c9c0b3;
    font-size: .93rem;
    line-height: 1.48;
    list-style: none;
}

.programme-feature-list li {
    position: relative;
    padding-left: 31px;
}

.programme-feature-list li::before {
    content: "✓";
    position: absolute;
    top: .08em;
    left: 0;
    width: 20px;
    height: 20px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(240, 202, 114, .68);
    border-radius: 50%;
    color: #e8c66f;
    font-size: .7rem;
    line-height: 1;
}

.programme-card-footer-bar {
    min-height: 94px;
    display: grid;
    grid-template-columns: minmax(150px, .85fr) minmax(145px, .85fr) minmax(205px, 1.3fr);
    align-items: stretch;
    border-top: 1px solid rgba(255, 255, 255, .18);
    background: rgba(3, 3, 3, .84);
}

.programme-card-fact {
    min-width: 0;
    padding: 17px 20px;
    display: flex;
    align-items: center;
    gap: 13px;
    border-right: 1px solid rgba(255, 255, 255, .13);
}

.programme-card-fact > span:last-child {
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.programme-card-fact small {
    color: #999084;
    font-size: .72rem;
    line-height: 1.2;
}

.programme-card-fact strong {
    margin-top: 4px;
    overflow: hidden;
    color: #eee4d5;
    font: 400 clamp(.98rem, 1.2vw, 1.14rem) / 1.2 Georgia, serif;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.programme-fact-icon {
    position: relative;
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
    display: block;
    border: 1px solid rgba(240, 202, 114, .7);
    border-radius: 50%;
    box-shadow: 0 0 14px rgba(217, 168, 68, .08);
}

.programme-clock-icon::before {
    content: "";
    position: absolute;
    left: 18px;
    top: 8px;
    width: 1px;
    height: 11px;
    background: #e5c16e;
    transform-origin: bottom;
}

.programme-clock-icon::after {
    content: "";
    position: absolute;
    left: 18px;
    top: 18px;
    width: 9px;
    height: 1px;
    background: #e5c16e;
    transform: rotate(31deg);
    transform-origin: left;
}

.programme-investment-icon::before,
.programme-investment-icon::after {
    content: "";
    position: absolute;
    left: 9px;
    width: 18px;
    height: 7px;
    border: 1px solid #e5c16e;
    border-radius: 50%;
}

.programme-investment-icon::before {
    top: 8px;
    box-shadow: 0 7px 0 -1px #050505, 0 7px 0 0 #e5c16e;
}

.programme-investment-icon::after {
    top: 22px;
}

.programme-card-action {
    min-width: 0;
    margin: 14px;
    padding: 13px 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
    border: 1px solid #e0b85f;
    border-radius: 11px;
    background: linear-gradient(100deg, #b88732, #f0cf7b 55%, #d7a943);
    box-shadow: inset 0 1px rgba(255, 255, 255, .34), 0 8px 24px rgba(217, 168, 68, .15);
    color: #181006;
    font-size: .82rem;
    font-weight: 900;
    letter-spacing: .045em;
    line-height: 1.25;
    text-align: center;
    text-decoration: none;
    text-transform: uppercase;
    transition: transform .18s ease, filter .18s ease;
}

.programme-card-action:hover,
.programme-card-action:focus-visible {
    filter: brightness(1.08);
    transform: translateY(-1px);
}

.programme-card-action span {
    font-size: 1.1rem;
}

.course-empty {
    grid-column: 1 / -1;
    padding: 45px;
    border: 1px solid rgba(217, 168, 68, .35);
    border-radius: 18px;
    background: #0b0b0a;
    text-align: center;
}

/* Existing course detail and learning area */
.course-catalogue{display:grid;gap:34px}.course-card{display:grid;grid-template-columns:minmax(300px,.8fr) minmax(0,1.2fr);overflow:hidden;border:1px solid var(--line);border-radius:20px;background:linear-gradient(145deg,#11100e,#090909);box-shadow:0 28px 90px rgba(0,0,0,.36)}.course-cover{min-height:430px;display:grid;place-items:center;overflow:hidden;background:radial-gradient(circle,rgba(213,170,82,.28),transparent 18rem),#15120d}.course-cover img{width:100%;height:100%;object-fit:cover}.course-cover span{color:#afa697;font-size:.72rem;letter-spacing:.15em;text-transform:uppercase}.course-copy{padding:clamp(35px,6vw,72px)}.course-copy h2{font-size:clamp(2.5rem,4vw,4.2rem)}.course-subtitle{color:#e0d6c7;font-size:1.08rem}.course-facts{display:flex;flex-wrap:wrap;gap:10px;margin:28px 0}.course-facts span{padding:7px 11px;border:1px solid var(--line);color:#b9b0a3;font-size:.72rem;letter-spacing:.07em;text-transform:uppercase}.course-footer{display:flex;align-items:center;justify-content:space-between;gap:25px;margin-top:35px}.course-footer strong{color:var(--gold);font:400 2rem Georgia,serif}.course-detail{padding:100px 0;border-bottom:1px solid rgba(255,255,255,.06);background:radial-gradient(circle at 78% 40%,rgba(213,170,82,.14),transparent 25rem),#070707}.course-detail-grid{display:grid;grid-template-columns:1.25fr .75fr;align-items:center;gap:80px}.course-detail-grid h1,.learning-header h1,.lesson-content h1{margin:0 0 24px;font:400 clamp(3.2rem,6vw,6.5rem)/1.03 Georgia,serif}.course-actions{margin-top:36px}.course-actions form{margin:0}.course-summary{padding:38px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(145deg,#16130e,#090909)}.course-summary>strong{display:block;margin-bottom:25px;color:var(--gold);font:400 2.7rem Georgia,serif}.course-summary p{padding:12px 0;margin:0;border-top:1px solid rgba(255,255,255,.08)}.course-outline{max-width:980px}.course-module,.learning-module{margin-top:30px;padding:32px;border:1px solid rgba(255,255,255,.1);border-radius:18px;background:linear-gradient(145deg,rgba(255,255,255,.035),rgba(255,255,255,.01))}.course-module header,.learning-module header{display:flex;align-items:flex-start;justify-content:space-between;gap:30px}.course-module header span,.learning-module header span{color:var(--gold);font-size:.7rem;font-weight:800;letter-spacing:.15em;text-transform:uppercase}.course-module header h3,.learning-module header h2{margin:8px 0 0}.course-module header strong,.learning-module header strong{color:#968e82;font-size:.8rem}.outline-lesson{min-height:70px;display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:15px;border-top:1px solid rgba(255,255,255,.075)}.outline-lesson>span{color:var(--gold);font:400 .85rem Georgia,serif}.outline-lesson div{display:flex;flex-direction:column}.outline-lesson small,.outline-lesson em{color:#817a70;font-style:normal}.learning-header{padding:82px 0 60px;border-bottom:1px solid rgba(255,255,255,.07);background:linear-gradient(135deg,#12100c,#060606)}.course-message{margin-bottom:25px;padding:15px 18px;border:1px solid rgba(213,170,82,.42);border-radius:8px;background:rgba(213,170,82,.08);color:#e9d5aa}.learning-modules{display:grid;gap:25px}.learning-lesson{min-height:78px;padding:13px 0;display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:16px;border-top:1px solid rgba(255,255,255,.075);color:inherit;text-decoration:none}.learning-lesson>span{width:36px;height:36px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.16);border-radius:50%;color:#938b80}.learning-lesson.completed>span{border-color:var(--gold);background:var(--gold);color:#171006}.learning-lesson div{display:flex;flex-direction:column}.learning-lesson small,.learning-lesson em{color:#817a70;font-style:normal}.lesson-page{padding:55px 0 100px}.lesson-layout{display:grid;grid-template-columns:290px minmax(0,1fr);align-items:start;gap:55px}.lesson-sidebar{position:sticky;top:105px;max-height:calc(100vh - 130px);overflow-y:auto;padding:25px;border:1px solid rgba(255,255,255,.09);border-radius:15px;background:#0a0a09}.lesson-sidebar>a{color:var(--gold);font-size:.76rem;text-decoration:none}.lesson-sidebar h2{margin:22px 0;font-size:1.7rem}.lesson-module-nav{margin-top:25px}.lesson-module-nav>strong{display:block;margin-bottom:9px;color:#d7cfc2;font-size:.74rem;letter-spacing:.08em;text-transform:uppercase}.lesson-module-nav a{display:block;margin:3px -10px;padding:8px 10px;border-radius:5px;color:#8f887d;font-size:.82rem;text-decoration:none}.lesson-module-nav a:hover,.lesson-module-nav a.active{background:rgba(213,170,82,.1);color:#ead8b3}.lesson-content{min-width:0}.lesson-video{position:relative;margin:42px 0;overflow:hidden;border:1px solid var(--line);border-radius:16px;background:#000;aspect-ratio:16/9}.lesson-video iframe,.lesson-video video{width:100%;height:100%;border:0}.lesson-body{color:#c7beb1;font-size:1.05rem;line-height:1.85}.lesson-download{margin-top:40px;padding:20px;display:grid;grid-template-columns:48px 1fr;align-items:center;gap:16px;border:1px solid var(--line);border-radius:10px;color:inherit;text-decoration:none}.lesson-download>span{width:48px;height:48px;display:grid;place-items:center;background:var(--gold);color:#171006;font-size:.72rem;font-weight:900}.lesson-download div{display:flex;flex-direction:column}.lesson-download small{color:#817a70}.lesson-completion{margin-top:55px;padding-top:30px;border-top:1px solid rgba(255,255,255,.09)}.lesson-completion>span{color:var(--gold);font-weight:700}.dashboard-summary{margin-top:45px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.dashboard-summary article{padding:28px;border:1px solid rgba(255,255,255,.1);border-radius:15px;background:#0a0a09}.dashboard-summary article>span,.dashboard-programme div>span{color:var(--gold);font-size:.68rem;font-weight:800;letter-spacing:.14em}.dashboard-summary h2{margin:18px 0 8px;font-size:2.2rem}.dashboard-programmes{margin-top:80px}.dashboard-programme{padding:30px;display:flex;align-items:center;justify-content:space-between;gap:35px;border-top:1px solid rgba(255,255,255,.09)}.dashboard-programme h3{margin:9px 0}.dashboard-programme small{color:#8f887d}

@media (max-width: 1180px) {
    .programme-showcase-grid {
        grid-template-columns: 1fr;
    }

    .programme-showcase-card {
        min-height: 610px;
    }
}

@media (max-width: 900px) {
    .programmes-page-container {
        width: min(100% - 34px, 760px);
    }

    .programme-card-body {
        grid-template-columns: 1fr;
    }

    .programme-card-visual,
    .programme-image-placeholder {
        min-height: 430px;
    }

    .programme-card-footer-bar {
        grid-template-columns: 1fr 1fr;
    }

    .programme-card-action {
        grid-column: 1 / -1;
        min-height: 58px;
    }

    .course-card,.course-detail-grid,.lesson-layout{grid-template-columns:1fr}.lesson-sidebar{position:static;max-height:none}.dashboard-summary{grid-template-columns:1fr}
}

@media (max-width: 620px) {
    .programmes-page {
        padding-top: 55px;
    }

    .programmes-page-container {
        width: min(100% - 24px, 520px);
    }

    .programmes-page-heading h1 {
        font-size: clamp(2.65rem, 13vw, 4.1rem);
    }

    .programme-showcase-card {
        border-radius: 13px;
    }

    .programme-card-visual,
    .programme-image-placeholder {
        min-height: 340px;
    }

    .programme-card-content {
        padding: 30px 24px 28px;
    }

    .programme-card-content h2 {
        font-size: clamp(2rem, 10vw, 2.7rem);
    }

    .programme-card-footer-bar {
        grid-template-columns: 1fr;
    }

    .programme-card-fact {
        border-right: 0;
        border-bottom: 1px solid rgba(255, 255, 255, .12);
    }

    .programme-card-action {
        grid-column: auto;
    }

    .course-cover{min-height:310px}.course-footer,.course-module header,.learning-module header,.dashboard-programme{align-items:flex-start;flex-direction:column}.learning-lesson{grid-template-columns:40px 1fr}.learning-lesson em{grid-column:2}.outline-lesson{grid-template-columns:36px 1fr}.outline-lesson em{grid-column:2}
}
