:root {
    --navy: #071f3d;
    --navy-soft: #0c315c;
    --blue: #1769e0;
    --blue-light: #e9f2ff;
    --cyan: #26b6cf;
    --ink: #132238;
    --muted: #607087;
    --line: #dce5ef;
    --surface: #f5f8fc;
    --white: #fff;
    --shadow: 0 24px 70px rgba(7, 31, 61, .13);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    color: var(--ink);
    background: var(--white);
    font-family: "Segoe UI", Inter, Arial, sans-serif;
    line-height: 1.6;
}
a { color: inherit; text-decoration: none; }
button, a { -webkit-tap-highlight-color: transparent; }
.public-container { width: min(1160px, calc(100% - 40px)); margin-inline: auto; }
.sr-only, .skip-link:not(:focus) {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
.skip-link:focus {
    position: fixed;
    z-index: 1000;
    top: 12px;
    left: 12px;
    padding: 10px 16px;
    border-radius: 8px;
    background: var(--white);
    color: var(--navy);
    box-shadow: var(--shadow);
}

.public-header {
    position: sticky;
    z-index: 50;
    top: 0;
    border-bottom: 1px solid rgba(220, 229, 239, .8);
    background: rgba(255, 255, 255, .94);
    backdrop-filter: blur(16px);
}
.header-inner { min-height: 78px; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.brand { display: inline-flex; align-items: center; gap: 12px; }
.brand img { width: 54px; height: 46px; object-fit: contain; }
.brand span { display: grid; line-height: 1.2; }
.brand strong { color: var(--navy); font-size: 17px; letter-spacing: -.2px; }
.brand small { margin-top: 4px; color: var(--muted); font-size: 11px; letter-spacing: .9px; text-transform: uppercase; }
.public-nav { display: flex; align-items: center; gap: 28px; color: #415168; font-size: 14px; font-weight: 600; }
.public-nav > a:not(.login-link):hover { color: var(--blue); }
.login-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 11px 16px;
    border: 1px solid var(--line);
    border-radius: 10px;
    color: var(--navy);
    background: var(--white);
}
.login-link:hover { border-color: #a8c8f3; background: var(--blue-light); }
.menu-toggle { display: none; border: 0; background: none; color: var(--navy); font-size: 22px; }

.hero {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(circle at 84% 18%, rgba(38, 182, 207, .28), transparent 24%),
        radial-gradient(circle at 13% 90%, rgba(23, 105, 224, .25), transparent 26%),
        linear-gradient(125deg, #061a33 0%, #0a3568 58%, #0c4a7c 100%);
}
.hero::after {
    position: absolute;
    right: -140px;
    bottom: -220px;
    width: 520px;
    height: 520px;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 50%;
    box-shadow: 0 0 0 70px rgba(255, 255, 255, .025), 0 0 0 140px rgba(255, 255, 255, .018);
    content: "";
}
.hero-grid { position: relative; z-index: 1; min-height: 650px; display: grid; grid-template-columns: 1.08fr .92fr; align-items: center; gap: 76px; padding-block: 80px; }
.hero-copy { color: var(--white); }
.eyebrow, .section-label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #55d3e7;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 1.5px;
    text-transform: uppercase;
}
.hero h1 { max-width: 720px; margin: 20px 0; font-size: clamp(42px, 5.3vw, 68px); line-height: 1.04; letter-spacing: -2.5px; }
.hero-copy > p { max-width: 650px; margin: 0; color: #d0deee; font-size: 18px; line-height: 1.75; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 34px; }
.button {
    display: inline-flex;
    min-height: 48px;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 12px 20px;
    border-radius: 10px;
    font-size: 14px;
    font-weight: 750;
    transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.button:hover { transform: translateY(-2px); }
.button-primary { background: var(--blue); color: var(--white); box-shadow: 0 14px 34px rgba(0, 67, 173, .35); }
.button-primary:hover { background: #2479ed; }
.button-secondary { border: 1px solid rgba(255, 255, 255, .28); background: rgba(255, 255, 255, .06); color: var(--white); }
.hero-trust { display: flex; flex-wrap: wrap; gap: 18px; margin-top: 38px; color: #b9cce0; font-size: 12px; }
.hero-trust i { margin-right: 5px; color: #4dd2bd; }
.hero-panel {
    padding: 26px;
    border: 1px solid rgba(255, 255, 255, .19);
    border-radius: 22px;
    background: rgba(255, 255, 255, .96);
    box-shadow: 0 32px 85px rgba(0, 0, 0, .28);
}
.panel-top { display: flex; align-items: center; justify-content: space-between; color: var(--muted); font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .7px; }
.status-dot { padding: 5px 9px; border-radius: 999px; background: #e9f8f5; color: #16866f; font-size: 10px; }
.status-dot.enrollment-open { display: inline-flex; align-items: center; gap: 6px; }
.status-dot.enrollment-open i { font-size: 6px; }
.hero-course-card { display: grid; grid-template-columns: 160px 1fr; gap: 22px; align-items: center; }
.hero-course-card .panel-top { grid-column: 1 / -1; }
.hero-poster { align-self: stretch; overflow: hidden; border-radius: 12px; background: #dfeaf5; box-shadow: 0 12px 30px rgba(7, 31, 61, .18); }
.hero-poster img { display: block; width: 100%; height: 100%; min-height: 255px; object-fit: cover; object-position: top center; }
.hero-course-content { min-width: 0; }
.hero-course-content > small { color: var(--blue); font-size: 9px; font-weight: 900; letter-spacing: 1.1px; }
.hero-course-content h2 { margin: 7px 0 9px; color: var(--navy); font-size: 25px; line-height: 1.16; letter-spacing: -.6px; }
.hero-course-content p { margin: 0 0 18px; color: var(--muted); font-size: 12px; line-height: 1.55; }
.hero-course-content .button { width: 100%; padding-inline: 12px; font-size: 12px; }
.hero-discount { display: inline-flex; margin-bottom: 10px; padding: 5px 9px; border-radius: 999px; background: #ffd33f; color: var(--navy); font-size: 10px; font-weight: 900; text-transform: uppercase; }
.course-preview { display: grid; grid-template-columns: auto 1fr; gap: 18px; margin-top: 30px; padding-bottom: 28px; border-bottom: 1px solid var(--line); }
.course-icon { display: grid; width: 52px; height: 52px; place-items: center; border-radius: 14px; background: var(--blue-light); color: var(--blue); font-size: 22px; }
.course-preview small { color: var(--blue); font-size: 10px; font-weight: 800; letter-spacing: 1.1px; }
.course-preview h2 { margin: 7px 0 9px; color: var(--navy); font-size: 25px; line-height: 1.25; }
.course-preview p { margin: 0; color: var(--muted); font-size: 13px; }
.preview-steps { display: grid; gap: 10px; margin-top: 24px; }
.preview-steps > div { display: flex; align-items: center; gap: 13px; padding: 10px 12px; border-radius: 11px; background: var(--surface); }
.preview-steps > div > span { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 8px; background: var(--white); color: var(--blue); font-size: 12px; font-weight: 800; }
.preview-steps p { display: flex; align-items: baseline; gap: 9px; margin: 0; }
.preview-steps strong { color: var(--navy); font-size: 13px; }
.preview-steps small { color: var(--muted); font-size: 12px; }

.intro-section { padding: 82px 0; border-bottom: 1px solid var(--line); }
.intro-grid { display: grid; grid-template-columns: 1fr 1fr; align-items: end; gap: 80px; }
.section-label { color: var(--blue); }
.intro-grid h2, .section-heading h2, .contact-card h2 { margin: 10px 0 0; color: var(--navy); font-size: clamp(30px, 4vw, 44px); line-height: 1.15; letter-spacing: -1.3px; }
.intro-grid > p, .section-heading > p { margin: 0; color: var(--muted); font-size: 16px; line-height: 1.8; }
.programs-section { padding: 92px 0; background: var(--surface); }
.campaigns-section { padding: 92px 0; background: var(--white); }
.campaign-feature { display: grid; grid-template-columns: minmax(300px, .78fr) 1.22fr; gap: 48px; align-items: center; padding: 34px; border: 1px solid var(--line); border-radius: 22px; background: linear-gradient(145deg, #f5f9ff, #fff); box-shadow: var(--shadow); }
.campaign-poster { overflow: hidden; border-radius: 15px; background: #dce9f4; box-shadow: 0 18px 45px rgba(7, 31, 61, .2); }
.campaign-poster img { display: block; width: 100%; height: auto; }
.campaign-copy { position: relative; }
.campaign-badge { display: inline-flex; margin-bottom: 16px; padding: 7px 12px; border-radius: 999px; background: #ffd33f; color: var(--navy); font-size: 12px; font-weight: 900; text-transform: uppercase; }
.campaign-copy h3 { margin: 10px 0 14px; color: var(--navy); font-size: clamp(30px, 4vw, 45px); line-height: 1.12; letter-spacing: -1.3px; }
.campaign-copy > p { color: var(--muted); font-size: 16px; }
.campaign-copy ul { display: grid; gap: 10px; margin: 25px 0; padding: 0; list-style: none; color: #37465a; font-size: 14px; }
.campaign-copy li i { margin-right: 8px; color: #16866f; }
.campaign-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 18px; margin-top: 26px; }
.campaign-view-link { color: var(--blue); font-size: 13px; font-weight: 800; }
.campaign-copy > small { display: block; margin-top: 16px; color: #7a8798; line-height: 1.5; }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 50px; margin-bottom: 42px; }
.section-heading > p { max-width: 430px; }
.program-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.program-card { position: relative; overflow: hidden; padding: 30px; border: 1px solid var(--line); border-radius: 16px; background: var(--white); transition: transform .2s ease, box-shadow .2s ease; }
.program-card:hover { transform: translateY(-5px); box-shadow: var(--shadow); }
.program-icon { display: grid; width: 52px; height: 52px; margin-bottom: 28px; place-items: center; border-radius: 13px; background: var(--blue-light); color: var(--blue); font-size: 21px; }
.program-card > span { color: #8391a4; font-size: 10px; font-weight: 800; letter-spacing: 1.4px; text-transform: uppercase; }
.program-card h3 { margin: 8px 0; color: var(--navy); font-size: 22px; }
.program-card p { min-height: 78px; margin: 0 0 23px; color: var(--muted); font-size: 14px; }
.program-card a { color: var(--blue); font-size: 13px; font-weight: 750; }
.program-card a i { margin-left: 5px; transition: transform .2s; }
.program-card a:hover i { transform: translateX(4px); }
.course-empty-state { display: flex; align-items: center; gap: 16px; margin-top: 24px; padding: 24px 28px; border-radius: 15px; background: var(--navy); color: var(--white); }
.course-empty-state > div { display: grid; width: 46px; height: 46px; place-items: center; border-radius: 12px; background: rgba(255, 255, 255, .1); color: #6ee0e7; font-size: 19px; }
.course-empty-state > span { display: grid; margin-right: auto; }
.course-empty-state small { color: #b4c6d9; }
.button-dark { background: var(--blue); color: var(--white); }

.process-section { padding: 96px 0; }
.section-heading.centered { display: grid; justify-items: center; max-width: 690px; margin: 0 auto 52px; text-align: center; }
.process-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; overflow: hidden; border: 1px solid var(--line); border-radius: 17px; background: var(--line); }
.process-grid article { position: relative; padding: 38px; background: var(--white); }
.process-grid article > span { position: absolute; top: 25px; right: 27px; color: #dce4ee; font-size: 28px; font-weight: 800; }
.process-grid i { color: var(--blue); font-size: 25px; }
.process-grid h3 { margin: 28px 0 7px; color: var(--navy); }
.process-grid p { margin: 0; color: var(--muted); font-size: 14px; }

.contact-section { padding: 0 0 90px; }
.contact-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 40px;
    padding: 54px;
    border-radius: 22px;
    background: linear-gradient(125deg, #0a2b50, #0a5590);
    color: var(--white);
    box-shadow: var(--shadow);
}
.section-label.light { color: #6fe2ec; }
.contact-card h2 { color: var(--white); }
.contact-card p { max-width: 650px; margin: 14px 0 0; color: #c8daea; }
.contact-actions { display: grid; flex: 0 0 auto; justify-items: center; gap: 14px; }
.button-white { background: var(--white); color: var(--navy); }
.text-link { color: #d7e5f2; font-size: 12px; font-weight: 700; }
.public-footer { padding: 35px 0; border-top: 1px solid var(--line); }
.footer-inner { display: flex; align-items: center; justify-content: space-between; gap: 30px; color: var(--muted); font-size: 12px; }
.footer-inner > div { display: grid; }
.footer-inner strong { color: var(--navy); font-size: 14px; }
.footer-inner a { color: var(--blue); font-weight: 700; }

@media (max-width: 900px) {
    .menu-toggle { display: block; cursor: pointer; }
    .public-nav {
        position: absolute;
        top: 78px;
        right: 20px;
        left: 20px;
        display: none;
        align-items: stretch;
        padding: 18px;
        border: 1px solid var(--line);
        border-radius: 14px;
        background: var(--white);
        box-shadow: var(--shadow);
    }
    .public-nav.is-open { display: grid; gap: 5px; }
    .public-nav a { padding: 10px; }
    .hero-grid { grid-template-columns: 1fr; gap: 50px; padding-block: 70px; }
    .hero-panel { max-width: 620px; }
    .intro-grid { grid-template-columns: 1fr; gap: 24px; }
    .program-grid { grid-template-columns: 1fr; }
    .program-card p { min-height: 0; }
    .process-grid { grid-template-columns: 1fr; }
    .contact-card { align-items: flex-start; flex-direction: column; }
    .contact-actions { justify-items: start; }
}

@media (max-width: 600px) {
    .public-container { width: min(100% - 28px, 1160px); }
    .header-inner { min-height: 68px; }
    .brand img { width: 45px; height: 39px; }
    .brand strong { font-size: 15px; }
    .brand small { font-size: 9px; }
    .public-nav { top: 68px; right: 14px; left: 14px; }
    .hero-grid { min-height: auto; padding-block: 58px; }
    .hero h1 { font-size: 40px; letter-spacing: -1.8px; }
    .hero-copy > p { font-size: 16px; }
    .hero-actions .button { width: 100%; }
    .hero-trust { display: grid; gap: 8px; }
    .hero-panel { padding: 19px; border-radius: 17px; }
    .hero-course-card { grid-template-columns: 115px 1fr; gap: 16px; }
    .hero-poster img { min-height: 215px; }
    .hero-course-content h2 { font-size: 20px; }
    .course-preview { grid-template-columns: 1fr; }
    .preview-steps p { display: grid; gap: 0; }
    .intro-section, .programs-section, .process-section { padding-block: 70px; }
    .section-heading { display: grid; gap: 18px; }
    .course-empty-state { align-items: flex-start; flex-wrap: wrap; padding: 21px; }
    .course-empty-state .button { width: 100%; }
    .process-grid article { padding: 30px; }
    .contact-section { padding-bottom: 65px; }
    .contact-card { padding: 34px 25px; }
    .button-white { width: 100%; word-break: break-word; }
    .footer-inner { align-items: flex-start; flex-direction: column; gap: 14px; }
    .footer-inner p { margin: 0; }
}

@media (max-width: 420px) {
    .hero-course-card { grid-template-columns: 1fr; }
    .hero-course-card .panel-top { grid-column: 1; }
    .hero-poster { max-height: 360px; }
    .hero-poster img { height: auto; min-height: 0; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { transition-duration: .01ms !important; }
}

.listing-hero {
    padding: 76px 0 70px;
    color: var(--white);
    background:
        radial-gradient(circle at 80% 20%, rgba(38, 182, 207, .23), transparent 25%),
        linear-gradient(125deg, var(--navy), #0a4a82);
}
.listing-hero h1 { margin: 12px 0 8px; font-size: clamp(38px, 6vw, 60px); line-height: 1.1; letter-spacing: -2px; }
.listing-hero p { max-width: 670px; margin: 0; color: #c8d9e9; font-size: 17px; }
.offerings-section { min-height: 470px; padding: 70px 0 90px; background: var(--surface); }
.offering-grid { display: grid; gap: 22px; }
.offering-card { display: grid; grid-template-columns: 120px 1fr; overflow: hidden; border: 1px solid var(--line); border-radius: 18px; background: var(--white); box-shadow: 0 12px 38px rgba(7, 31, 61, .07); }
.offering-date { display: grid; align-content: center; justify-items: center; padding: 28px 18px; color: var(--white); background: linear-gradient(155deg, var(--navy), var(--blue)); text-align: center; }
.offering-date strong { font-size: 42px; line-height: 1; }
.offering-date span { margin-top: 6px; font-size: 12px; font-weight: 700; letter-spacing: .8px; text-transform: uppercase; }
.offering-content { padding: 28px 32px; }
.offering-meta { display: flex; justify-content: space-between; gap: 20px; color: var(--blue); font-size: 11px; font-weight: 800; letter-spacing: 1px; text-transform: uppercase; }
.offering-meta small { color: #8290a2; }
.offering-content h2 { margin: 9px 0 6px; color: var(--navy); font-size: 25px; line-height: 1.25; }
.offering-content > p { margin: 0 0 22px; color: var(--muted); font-size: 14px; }
.offering-content dl { display: grid; grid-template-columns: 1.5fr 1fr .55fr; gap: 16px; margin: 0; padding: 18px 0; border-block: 1px solid var(--line); }
.offering-content dl div { display: grid; gap: 2px; }
.offering-content dt { color: #8491a2; font-size: 10px; font-weight: 800; letter-spacing: .8px; text-transform: uppercase; }
.offering-content dt i { width: 15px; color: var(--blue); }
.offering-content dd { margin: 0; color: var(--ink); font-size: 13px; font-weight: 650; }
.offering-footer { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding-top: 20px; }
.offering-footer > span { color: #16866f; font-size: 12px; font-weight: 800; }
.offering-footer > span.slots-full { color: #b42318; }
.public-empty { max-width: 670px; margin: 45px auto; padding: 55px 35px; border: 1px solid var(--line); border-radius: 20px; background: var(--white); text-align: center; box-shadow: var(--shadow); }
.public-empty > i { color: var(--blue); font-size: 38px; }
.public-empty h1, .public-empty h2 { margin: 18px 0 8px; color: var(--navy); }
.public-empty p { margin: 0 auto 25px; color: var(--muted); }

.registration-main { min-height: calc(100vh - 150px); padding: 55px 0 80px; background: var(--surface); }
.registration-layout { display: grid; grid-template-columns: .78fr 1.22fr; align-items: start; gap: 26px; }
.registration-summary, .registration-form-card { border: 1px solid var(--line); border-radius: 19px; background: var(--white); box-shadow: 0 15px 45px rgba(7, 31, 61, .08); }
.registration-summary { position: sticky; top: 105px; padding: 32px; }
.registration-summary h1 { margin: 10px 0; color: var(--navy); font-size: 30px; line-height: 1.2; }
.registration-summary > p { color: var(--muted); font-size: 14px; }
.registration-summary dl { display: grid; gap: 13px; margin: 26px 0; padding: 22px 0; border-block: 1px solid var(--line); }
.registration-summary dl div { display: grid; gap: 2px; }
.registration-summary dt { color: #8491a2; font-size: 10px; font-weight: 800; letter-spacing: .8px; text-transform: uppercase; }
.registration-summary dd { margin: 0; color: var(--ink); font-size: 13px; font-weight: 650; }
.registration-summary > a { color: var(--blue); font-size: 13px; font-weight: 750; }
.registration-form-card { padding: 36px; }
.registration-form-card h2 { margin: 8px 0 4px; color: var(--navy); font-size: 30px; }
.registration-form-card > p { margin: 0 0 28px; color: var(--muted); font-size: 13px; }
.public-registration-form { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.public-registration-form label { display: grid; gap: 7px; color: #37465a; font-size: 12px; font-weight: 750; }
.public-registration-form .full { grid-column: 1 / -1; }
.public-registration-form input:not([type="checkbox"]), .public-registration-form textarea, .public-registration-form select {
    width: 100%;
    padding: 12px 13px;
    border: 1px solid #cbd6e2;
    border-radius: 9px;
    outline: none;
    background: #fbfdff;
    color: var(--ink);
    font: inherit;
    font-size: 14px;
    font-weight: 400;
}
.campaign-summary > img { width: 100%; margin-bottom: 26px; border-radius: 12px; box-shadow: 0 12px 30px rgba(7, 31, 61, .18); }
.interest-notice { display: flex; gap: 10px; margin-top: 22px; padding: 14px; border-radius: 10px; background: var(--blue-light); color: #40536a; font-size: 12px; line-height: 1.5; }
.interest-notice i { margin-top: 3px; color: var(--blue); }
.public-registration-form input:focus, .public-registration-form textarea:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(23, 105, 224, .12); }
.consent { grid-template-columns: auto 1fr; align-items: start; padding: 16px; border-radius: 10px; background: var(--blue-light); line-height: 1.5; }
.consent input { margin-top: 3px; accent-color: var(--blue); }
.form-submit { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-top: 6px; }
.form-submit small { max-width: 330px; color: var(--muted); font-weight: 400; }
.form-submit small i { color: #16866f; }
.form-errors { margin-bottom: 22px; padding: 14px 18px; border: 1px solid #f5b8b2; border-radius: 10px; background: #fff1f0; color: #8c1d18; font-size: 13px; }
.form-errors ul { margin: 6px 0 0; padding-left: 20px; }
.honeypot { position: absolute; left: -9999px; }
.success-main { min-height: 100vh; display: grid; place-items: center; padding: 45px 0; background: linear-gradient(135deg, #eef5ff, #f7fbfd); }
.success-card { max-width: 660px; margin: auto; padding: 48px; border: 1px solid var(--line); border-radius: 22px; background: var(--white); box-shadow: var(--shadow); text-align: center; }
.success-icon { display: grid; width: 66px; height: 66px; margin: 0 auto 22px; place-items: center; border-radius: 50%; background: #e4f7f0; color: #16866f; font-size: 28px; }
.success-card h1 { margin: 8px 0; color: var(--navy); font-size: 35px; }
.success-card > p { color: var(--muted); }
.reference-box { display: grid; gap: 4px; margin: 28px 0; padding: 20px; border: 1px dashed #8fb9ed; border-radius: 12px; background: var(--blue-light); }
.reference-box small { color: var(--blue); font-size: 10px; font-weight: 800; letter-spacing: 1.3px; }
.reference-box strong { color: var(--navy); font-size: 25px; letter-spacing: 1px; }
.success-card dl { display: grid; gap: 10px; text-align: left; }
.success-card dl div { display: grid; grid-template-columns: 110px 1fr; gap: 12px; padding-bottom: 10px; border-bottom: 1px solid var(--line); }
.success-card dt { color: var(--muted); font-size: 12px; }
.success-card dd { margin: 0; color: var(--ink); font-size: 13px; font-weight: 700; }
.success-actions { display: flex; justify-content: center; gap: 10px; margin-top: 30px; }
.outline-button { border: 1px solid var(--line); color: var(--navy); background: var(--white); }
.generic-enrollment-main { min-height: calc(100vh - 150px); padding: 65px 0 90px; background: var(--surface); }
.generic-enrollment-heading { max-width: 820px; margin-bottom: 35px; }
.generic-enrollment-heading h1 { margin: 10px 0 12px; color: var(--navy); font-size: clamp(38px, 5vw, 56px); line-height: 1.08; letter-spacing: -1.8px; }
.generic-enrollment-heading p { margin: 0; color: var(--muted); font-size: 16px; }
.generic-errors { max-width: none; }
.generic-enrollment-form { display: grid; gap: 24px; }
.enrollment-step { padding: 34px; border: 1px solid var(--line); border-radius: 19px; background: var(--white); box-shadow: 0 12px 38px rgba(7,31,61,.07); }
.step-heading { display: flex; gap: 16px; align-items: flex-start; margin-bottom: 28px; }
.step-heading > span { display: grid; flex: 0 0 38px; width: 38px; height: 38px; place-items: center; border-radius: 11px; background: var(--blue); color: var(--white); font-size: 13px; font-weight: 900; }
.step-heading h2 { margin: 0; color: var(--navy); font-size: 24px; }
.step-heading p { margin: 2px 0 0; color: var(--muted); font-size: 13px; }
.registrant-type-options { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 25px; }
.registrant-type-options label { cursor: pointer; }
.registrant-type-options input { position: absolute; opacity: 0; pointer-events: none; }
.registrant-type-options label > span { display: grid; grid-template-columns: auto 1fr; column-gap: 13px; padding: 19px; border: 1px solid var(--line); border-radius: 13px; transition: border-color .2s, background .2s, box-shadow .2s; }
.registrant-type-options i { grid-row: 1 / 3; display: grid; width: 42px; height: 42px; place-items: center; border-radius: 10px; background: var(--blue-light); color: var(--blue); }
.registrant-type-options strong { align-self: end; color: var(--navy); }
.registrant-type-options small { color: var(--muted); }
.registrant-type-options input:checked + span { border-color: var(--blue); background: #f5f9ff; box-shadow: 0 0 0 3px rgba(23,105,224,.1); }
.enrollment-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.enrollment-fields label { display: grid; gap: 7px; color: #37465a; font-size: 12px; font-weight: 750; }
.enrollment-fields .full { grid-column: 1 / -1; }
.enrollment-fields [hidden] { display: none !important; }
.type-fields { padding: 20px; border: 1px solid var(--line); border-radius: 14px; background: #f8fbff; }
.type-fields-title { display: flex; align-items: center; gap: 12px; margin-bottom: 18px; color: var(--navy); }
.type-fields-title i { display: grid; width: 40px; height: 40px; place-items: center; border-radius: 10px; background: var(--blue-light); color: var(--blue); }
.type-fields-title strong, .type-fields-title small { display: block; }
.type-fields-title small { margin-top: 2px; color: var(--muted); font-weight: 500; }
.type-fields-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.type-fields-grid .full { grid-column: 1 / -1; }
.enrollment-fields input:not([type=checkbox]), .enrollment-fields textarea, .enrollment-fields select {
    width: 100%; padding: 12px 13px; border: 1px solid #cbd6e2; border-radius: 9px; outline: none; background: #fbfdff; color: var(--ink); font: inherit; font-size: 14px; font-weight: 400;
}
.enrollment-fields input:focus, .enrollment-fields textarea:focus, .enrollment-fields select:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(23,105,224,.12); }
.catalog-choice-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 17px; }
.catalog-choice { position: relative; display: grid; grid-template-columns: 118px 1fr; overflow: hidden; min-height: 180px; border: 1px solid var(--line); border-radius: 15px; background: var(--white); cursor: pointer; transition: border-color .2s, box-shadow .2s, transform .2s; }
.catalog-choice:hover { transform: translateY(-2px); box-shadow: 0 15px 35px rgba(7,31,61,.1); }
.catalog-choice > input { position: absolute; opacity: 0; }
.catalog-choice > img { width: 118px; height: 100%; object-fit: cover; object-position: top center; }
.catalog-placeholder { display: grid; width: 118px; height: 100%; place-items: center; background: var(--blue-light); color: var(--blue); font-size: 30px; }
.choice-check { position: absolute; z-index: 2; top: 12px; right: 12px; display: grid; width: 27px; height: 27px; place-items: center; border: 2px solid #b9c5d3; border-radius: 50%; background: var(--white); color: transparent; font-size: 11px; }
.catalog-choice:has(input:checked) { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(23,105,224,.1); }
.catalog-choice input:checked ~ .choice-check { border-color: var(--blue); background: var(--blue); color: var(--white); }
.catalog-choice-copy { display: flex; flex-direction: column; align-items: flex-start; padding: 20px 42px 20px 20px; }
.catalog-choice-copy small { color: var(--blue); font-size: 10px; font-weight: 900; letter-spacing: 1px; }
.catalog-choice-copy strong { margin: 6px 0; color: var(--navy); font-size: 17px; line-height: 1.25; }
.catalog-choice-copy em { display: -webkit-box; overflow: hidden; color: var(--muted); font-size: 11px; font-style: normal; line-height: 1.45; -webkit-line-clamp: 3; -webkit-box-orient: vertical; }
.catalog-choice-copy b { margin-top: auto; padding-top: 10px; color: #16866f; font-size: 10px; }
.generic-submit { display: flex; align-items: center; justify-content: space-between; gap: 25px; margin-top: 25px; padding-top: 25px; border-top: 1px solid var(--line); }
.generic-submit > div { display: grid; }
.generic-submit strong { color: var(--navy); font-size: 13px; }
.generic-submit small { color: var(--muted); }
.compact-empty { margin: 0; padding: 25px; box-shadow: none; }

@media (max-width: 760px) {
    .compact-nav { position: static; display: flex; }
    .compact-nav a:not(.login-link) { display: none; }
    .offering-card { grid-template-columns: 1fr; }
    .offering-date { grid-template-columns: auto auto; gap: 7px; padding: 16px; }
    .offering-date strong { font-size: 25px; }
    .offering-date span { margin: 0; align-self: center; }
    .offering-content { padding: 24px; }
    .offering-content dl { grid-template-columns: 1fr; }
    .offering-footer { align-items: stretch; flex-direction: column; }
    .registration-layout { grid-template-columns: 1fr; }
    .campaign-feature { grid-template-columns: 1fr; padding: 22px; }
    .campaign-poster { max-width: 480px; }
    .registration-summary { position: static; }
    .public-registration-form { grid-template-columns: 1fr; }
    .public-registration-form label, .public-registration-form .full { grid-column: 1; }
    .form-submit { align-items: stretch; flex-direction: column; }
    .success-card { padding: 34px 23px; }
    .success-actions { flex-direction: column; }
    .registrant-type-options, .enrollment-fields, .type-fields-grid, .catalog-choice-grid { grid-template-columns: 1fr; }
    .enrollment-fields label, .enrollment-fields .full { grid-column: 1; }
    .generic-submit { align-items: stretch; flex-direction: column; }
    .generic-submit .button { width: 100%; }
    .enrollment-step { padding: 24px; }
}

@media (max-width: 480px) {
    .catalog-choice { grid-template-columns: 88px 1fr; min-height: 160px; }
    .catalog-choice > img, .catalog-placeholder { width: 88px; }
    .catalog-choice-copy { padding: 17px 37px 17px 15px; }
}

/* Shared public navigation and simple training-center catalog */
.public-nav > a.current:not(.login-link) { color: var(--blue); }
.employee-login-small { color: #718096; font-size: 12px; }
.employee-login-small i { margin-right: 4px; }
.footer-links { display: flex !important; grid-auto-flow: column; gap: 18px; }
.training-center-panel h2 { margin: 10px 0 24px; color: var(--navy); font-size: 30px; line-height: 1.18; }
.training-center-points { display: grid; gap: 12px; margin-bottom: 22px; }
.training-center-points > div { display: grid; grid-template-columns: auto 1fr; gap: 13px; align-items: center; padding: 12px; border-radius: 11px; background: var(--surface); }
.training-center-points > div > i { display: grid; grid-row: 1 / 3; width: 38px; height: 38px; place-items: center; border-radius: 9px; background: var(--blue-light); color: var(--blue); }
.training-center-points span { display: grid; }
.training-center-points strong { color: var(--navy); font-size: 13px; }
.training-center-points small { color: var(--muted); font-size: 11px; }
.training-center-panel > .button { width: 100%; }
.catalog-home-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.catalog-home-card { overflow: hidden; border: 1px solid var(--line); border-radius: 16px; background: var(--white); }
.catalog-home-card > img, .catalog-home-placeholder { display: block; width: 100%; height: 230px; object-fit: cover; object-position: top center; }
.catalog-home-placeholder { display: grid; place-items: center; background: var(--blue-light); color: var(--blue); font-size: 42px; }
.catalog-home-card > div:last-child { padding: 24px; }
.catalog-home-card span { color: var(--blue); font-size: 10px; font-weight: 900; letter-spacing: 1px; }
.catalog-home-card h3 { margin: 7px 0; color: var(--navy); font-size: 20px; line-height: 1.25; }
.catalog-home-card p { display: -webkit-box; overflow: hidden; min-height: 63px; color: var(--muted); font-size: 13px; -webkit-line-clamp: 3; -webkit-box-orient: vertical; }
.catalog-home-card a { color: var(--blue); font-size: 13px; font-weight: 800; }
.course-summary-meta { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; margin: 16px 0; padding: 13px 0; border-block: 1px solid var(--line); }
.course-summary-meta div { display: grid; gap: 2px; }
.course-summary-meta dt { color: #8793a3; font-size: 9px; font-weight: 800; text-transform: uppercase; }
.course-summary-meta dd { margin: 0; color: var(--ink); font-size: 11px; font-weight: 700; }
.course-card-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.course-card-actions a { padding: 8px 11px; border: 1px solid var(--line); border-radius: 8px; color: var(--blue); background: var(--white); font-size: 11px; font-weight: 800; }
.course-card-actions a:nth-child(2) { border-color: var(--blue); background: var(--blue); color: var(--white); }
.catalog-home-action { margin-top: 28px; text-align: center; }
.contact-phone { color: #d7e5f2; font-size: 13px; font-weight: 700; }
.course-catalog-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; }
.course-catalog-card { display: grid; grid-template-columns: 170px 1fr; overflow: hidden; border: 1px solid var(--line); border-radius: 17px; background: var(--white); box-shadow: 0 12px 35px rgba(7,31,61,.07); }
.course-catalog-media { display: grid; min-height: 285px; place-items: center; background: var(--blue-light); color: var(--blue); font-size: 36px; }
.course-catalog-media img { width: 100%; height: 100%; object-fit: cover; object-position: top center; }
.course-catalog-body { display: flex; flex-direction: column; padding: 26px; }
.course-catalog-body > span { color: var(--blue); font-size: 10px; font-weight: 900; letter-spacing: 1px; }
.course-catalog-body h2 { margin: 8px 0; color: var(--navy); font-size: 22px; line-height: 1.22; }
.course-catalog-body > p { color: var(--muted); font-size: 13px; }
.course-catalog-footer { display: grid; gap: 14px; margin-top: auto; padding-top: 18px; }
.course-catalog-footer small { color: #16866f; font-size: 11px; font-weight: 750; }
.course-catalog-footer .button { justify-self: start; }
.multi-course-note { display: flex; align-items: center; gap: 18px; margin-top: 24px; padding: 24px; border-radius: 15px; background: var(--navy); color: var(--white); }
.multi-course-note > i { font-size: 28px; color: #65d9e6; }
.multi-course-note > div { margin-right: auto; }
.multi-course-note p { margin: 2px 0 0; color: #bdccdb; font-size: 13px; }
.course-detail-main { min-height: 70vh; padding: 50px 0 90px; background: var(--surface); }
.detail-back { display: inline-block; margin-bottom: 22px; color: var(--blue); font-size: 13px; font-weight: 750; }
.course-detail-hero { display: grid; grid-template-columns: 290px 1fr; align-items: center; gap: 45px; padding: 35px; border: 1px solid var(--line); border-radius: 20px; background: var(--white); box-shadow: var(--shadow); }
.course-detail-poster { display: grid; overflow: hidden; min-height: 350px; place-items: center; border-radius: 13px; background: var(--blue-light); color: var(--blue); font-size: 45px; }
.course-detail-poster img { width: 100%; height: 100%; max-height: 430px; object-fit: cover; object-position: top; }
.course-detail-hero h1 { margin: 10px 0; color: var(--navy); font-size: clamp(36px,5vw,58px); line-height: 1.08; }
.course-detail-hero p { max-width: 720px; color: var(--muted); }
.detail-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 25px; }
.course-detail-grid { display: grid; grid-template-columns: 1.2fr .8fr; align-items: start; gap: 24px; margin-top: 24px; }
.detail-card { margin-bottom: 24px; padding: 30px; border: 1px solid var(--line); border-radius: 16px; background: var(--white); }
.detail-card h2 { margin: 0 0 14px; color: var(--navy); }
.detail-card p { color: var(--muted); }
.schedule-option { display: grid; gap: 6px; padding: 16px 0; border-bottom: 1px solid var(--line); color: var(--muted); font-size: 12px; }
.schedule-option > strong { color: var(--navy); font-size: 15px; }
.schedule-option a { color: var(--blue); font-weight: 800; }
.no-schedule { display: grid; justify-items: start; gap: 8px; color: var(--muted); }
.no-schedule i { color: var(--blue); font-size: 26px; }
.no-schedule strong { color: var(--navy); }
.inquiry-wrap { max-width: 900px; }
.inquiry-form { max-width: 900px; }

@media (max-width: 900px) {
    .catalog-home-grid { grid-template-columns: 1fr; }
    .course-catalog-grid { grid-template-columns: 1fr; }
    .course-detail-hero, .course-detail-grid { grid-template-columns: 1fr; }
    .course-detail-poster { max-width: 430px; }
}

@media (max-width: 760px) {
    .course-catalog-card { grid-template-columns: 130px 1fr; }
    .course-catalog-media { min-height: 250px; }
    .multi-course-note { align-items: flex-start; flex-wrap: wrap; }
    .multi-course-note .button { width: 100%; }
}

@media (max-width: 480px) {
    .course-catalog-card { grid-template-columns: 1fr; }
    .course-catalog-media { max-height: 360px; }
}
