@charset "UTF-8";

.rtc-programme-page {
    --rtc-programme-navy: #0a2f6b;
    --rtc-programme-blue: #126ab6;
    --rtc-programme-gold: #c98600;
    --rtc-programme-green: #178253;
    --rtc-programme-text: #34445d;
    --rtc-programme-muted: #65748b;
    --rtc-programme-line: #dce6f1;
    width: min(100% - 32px, 1160px);
    margin: 42px auto 72px;
    color: var(--rtc-programme-text);
    font-family: "Noto Sans Khmer", "Battambang", "Khmer OS Battambang", Arial, sans-serif;
}

.rtc-programme-page *,
.rtc-programme-related * { box-sizing: border-box; }

/* The programme hero supplies the page image; suppress the template's duplicate full image. */
.item-page.rtc-programme-menu > .entry-image.full-image { display: none; }

.rtc-programme-hero {
    position: relative;
    min-height: 460px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .15);
    border-bottom: 5px solid #e8a900;
    border-radius: 28px;
    background: var(--rtc-programme-navy);
    box-shadow: 0 24px 54px rgba(10, 47, 107, .22);
}

.rtc-programme-hero::before {
    position: absolute;
    z-index: 1;
    right: -78px;
    bottom: -105px;
    width: 280px;
    height: 280px;
    border: 38px solid rgba(255, 198, 0, .16);
    border-radius: 50%;
    content: "";
}

.rtc-programme-hero::after {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(4, 27, 67, .98) 0%, rgba(7, 42, 94, .92) 46%, rgba(7, 42, 94, .22) 75%, rgba(7, 42, 94, .06) 100%);
    content: "";
}

.rtc-programme-hero__image {
    width: 100%;
    height: 460px;
    object-fit: cover;
}

.rtc-programme-hero__content {
    position: absolute;
    z-index: 1;
    top: 50%;
    left: clamp(24px, 5vw, 64px);
    width: min(630px, calc(100% - 48px));
    transform: translateY(-50%);
    color: #fff;
}

.rtc-programme-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 7px 13px;
    border: 1px solid rgba(255, 211, 82, .42);
    border-radius: 999px;
    background: rgba(255, 198, 0, .16);
    color: #ffe186;
    font-size: 13px;
    font-weight: 700;
}

.rtc-programme-hero h1 {
    margin: 18px 0 10px;
    color: #fff !important;
    font-size: clamp(30px, 4vw, 50px) !important;
    font-weight: 700 !important;
    line-height: 1.55 !important;
    text-shadow: 0 3px 16px rgba(0, 0, 0, .2);
}

.rtc-programme-hero p {
    max-width: 570px;
    margin: 0;
    color: rgba(255, 255, 255, .88);
    font-size: 16px;
    line-height: 1.95;
}

.rtc-programme-facts {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin: -52px 36px 50px;
    position: relative;
    z-index: 2;
}

.rtc-programme-fact {
    position: relative;
    padding: 20px 18px;
    border: 1px solid var(--rtc-programme-line);
    border-top: 3px solid var(--rtc-programme-blue);
    overflow: hidden;
    border-radius: 17px;
    background: #fff;
    box-shadow: 0 10px 26px rgba(10, 47, 107, .1);
    text-align: center;
    transition: transform 180ms ease, box-shadow 180ms ease;
}

.rtc-programme-fact::after { position: absolute; right: -20px; bottom: -28px; width: 74px; height: 74px; border-radius: 50%; background: rgba(18, 106, 182, .06); content: ""; }
.rtc-programme-fact:hover { transform: translateY(-4px); box-shadow: 0 16px 32px rgba(10, 47, 107, .14); }

.rtc-programme-fact:nth-child(2) { border-top-color: var(--rtc-programme-gold); }
.rtc-programme-fact:nth-child(3) { border-top-color: var(--rtc-programme-green); }
.rtc-programme-fact:nth-child(4) { border-top-color: #6652b5; }
.rtc-programme-fact strong { display: block; color: var(--rtc-programme-navy); font-size: 20px; line-height: 1.6; }
.rtc-programme-fact span { display: block; margin-top: 3px; color: var(--rtc-programme-muted); font-size: 13px; line-height: 1.6; }

.rtc-programme-section { margin-top: 34px; }
.rtc-programme-page > .rtc-programme-section { padding: clamp(26px, 4vw, 44px); border: 1px solid rgba(10, 47, 107, .08); border-radius: 24px; background: linear-gradient(145deg, #f6f9fd, #fff); }
.rtc-programme-page > .rtc-programme-section:nth-of-type(even) { background: linear-gradient(145deg, #fffaf0, #fff); }
.rtc-programme-section__head { max-width: 820px; margin: 0 auto 30px; text-align: center; }
.rtc-programme-section__head > span { display: inline-flex; padding: 5px 11px; border-radius: 999px; background: #fff4d9; color: #946000; font-size: 12px; font-weight: 700; }
.rtc-programme-section h2,
.rtc-programme-related h2 {
    margin: 6px 0 0;
    color: var(--rtc-programme-navy) !important;
    font-size: clamp(25px, 3vw, 34px) !important;
    font-weight: 700 !important;
    line-height: 1.6 !important;
}
.rtc-programme-section__head h2::after { display: block; width: 54px; height: 4px; margin: 12px auto 0; border-radius: 999px; background: linear-gradient(90deg, var(--rtc-programme-blue), var(--rtc-programme-gold)); content: ""; }
.rtc-programme-section__head p { margin: 8px 0 0; color: var(--rtc-programme-muted); font-size: 15px; line-height: 1.9; }

.rtc-programme-intro {
    display: grid;
    grid-template-columns: 1.15fr .85fr;
    gap: 24px;
    align-items: stretch;
}
.rtc-programme-panel {
    padding: 28px;
    border: 1px solid var(--rtc-programme-line);
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 12px 30px rgba(10, 47, 107, .08);
}
.rtc-programme-panel--soft { border-top: 4px solid var(--rtc-programme-blue); background: linear-gradient(145deg, #edf6ff, #fff); }
.rtc-programme-panel h3 { margin: 0 0 12px; color: var(--rtc-programme-navy); font-size: 22px; font-weight: 700; line-height: 1.65; }
.rtc-programme-panel p,
.rtc-programme-panel li { color: var(--rtc-programme-text); font-size: 15px; line-height: 1.95; }
.rtc-programme-list { margin: 0; padding-left: 0; list-style: none; }
.rtc-programme-list li { position: relative; padding: 7px 31px 7px 0; }
.rtc-programme-list li::before { position: absolute; top: 13px; right: 4px; width: 18px; height: 18px; border-radius: 50%; background: #e8f2fb; color: var(--rtc-programme-blue); content: "✓"; font-size: 12px; font-weight: 700; line-height: 18px; text-align: center; }

.rtc-programme-gallery {
    display: grid;
    grid-template-columns: 1.2fr .8fr;
    grid-template-rows: repeat(2, minmax(150px, 1fr));
    gap: 14px;
    margin-top: 30px;
}
.rtc-programme-gallery figure { position: relative; min-height: 180px; margin: 0; overflow: hidden; border: 4px solid #fff; border-radius: 19px; background: #eaf1f8; box-shadow: 0 14px 32px rgba(10, 47, 107, .13); }
.rtc-programme-gallery figure:first-child { grid-row: 1 / span 2; min-height: 390px; }
.rtc-programme-gallery img { width: 100%; height: 100%; object-fit: cover; transition: transform 240ms ease; }
.rtc-programme-gallery figure:hover img { transform: scale(1.025); }
.rtc-programme-gallery figcaption { position: absolute; right: 12px; bottom: 12px; left: 12px; padding: 8px 11px; border-radius: 9px; background: rgba(6, 36, 82, .86); color: #fff; font-size: 12px; line-height: 1.7; }

.rtc-programme-timeline { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.rtc-programme-year { position: relative; padding: 28px 24px; overflow: hidden; border: 1px solid var(--rtc-programme-line); border-radius: 19px; background: #fff; box-shadow: 0 10px 26px rgba(10, 47, 107, .08); transition: transform 180ms ease, box-shadow 180ms ease; }
.rtc-programme-year:hover { transform: translateY(-5px); box-shadow: 0 18px 34px rgba(10, 47, 107, .14); }
.rtc-programme-year::before { position: absolute; inset: 0 auto 0 0; width: 4px; background: var(--rtc-programme-blue); content: ""; }
.rtc-programme-year:nth-child(2)::before { background: var(--rtc-programme-gold); }
.rtc-programme-year:nth-child(3)::before { background: var(--rtc-programme-green); }
.rtc-programme-year__number { display: inline-grid; width: 48px; height: 48px; place-items: center; border-radius: 14px; background: #e9f3fc; color: var(--rtc-programme-blue); font-size: 20px; font-weight: 700; }
.rtc-programme-year:nth-child(2) .rtc-programme-year__number { background: #fff3dc; color: #a66b00; }
.rtc-programme-year:nth-child(3) .rtc-programme-year__number { background: #e7f6ee; color: var(--rtc-programme-green); }
.rtc-programme-year h3 { margin: 15px 0 3px; color: var(--rtc-programme-navy); font-size: 21px; font-weight: 700; line-height: 1.65; }
.rtc-programme-year__semester { display: block; margin-bottom: 11px; color: var(--rtc-programme-gold); font-size: 13px; font-weight: 700; }
.rtc-programme-year p { margin: 0; color: var(--rtc-programme-muted); font-size: 14px; line-height: 1.9; }

.rtc-programme-two-column { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.rtc-programme-admission-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.rtc-programme-admission-step { position: relative; padding: 25px 21px; border: 1px solid var(--rtc-programme-line); border-top: 4px solid var(--rtc-programme-blue); border-radius: 17px; background: #fff; box-shadow: 0 10px 26px rgba(10, 47, 107, .08); transition: transform 180ms ease; }
.rtc-programme-admission-step:nth-child(2) { border-top-color: var(--rtc-programme-gold); }
.rtc-programme-admission-step:nth-child(3) { border-top-color: var(--rtc-programme-green); }
.rtc-programme-admission-step:nth-child(4) { border-top-color: #6652b5; }
.rtc-programme-admission-step:hover { transform: translateY(-4px); }
.rtc-programme-admission-step > span { display: grid; width: 38px; height: 38px; margin-bottom: 12px; place-items: center; border-radius: 11px; background: #e9f3fc; color: var(--rtc-programme-blue); font-weight: 700; }
.rtc-programme-admission-step:nth-child(2) > span { background: #fff3dc; color: #9d6500; }
.rtc-programme-admission-step:nth-child(3) > span { background: #e7f6ee; color: var(--rtc-programme-green); }
.rtc-programme-admission-step:nth-child(4) > span { background: #f0edff; color: #6652b5; }
.rtc-programme-admission-step h3 { margin: 0 0 8px; color: var(--rtc-programme-navy); font-size: 18px; font-weight: 700; line-height: 1.65; }
.rtc-programme-admission-step p { margin: 0; color: var(--rtc-programme-muted); font-size: 13px; line-height: 1.85; }
.rtc-programme-ratio { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.rtc-programme-ratio__item { position: relative; padding: 25px 24px 30px; overflow: hidden; border: 1px solid var(--rtc-programme-line); border-radius: 17px; background: #fff; box-shadow: 0 10px 25px rgba(10, 47, 107, .07); }
.rtc-programme-ratio__item::after { position: absolute; bottom: 0; left: 0; width: 44.07%; height: 7px; border-radius: 0 999px 999px 0; background: var(--rtc-programme-blue); content: ""; }
.rtc-programme-ratio__item:nth-child(2)::after { width: 55.93%; background: var(--rtc-programme-gold); }
.rtc-programme-page--midwifery .rtc-programme-ratio__item:first-child::after { width: 40.1%; }
.rtc-programme-page--midwifery .rtc-programme-ratio__item:nth-child(2)::after { width: 59.9%; }
.rtc-programme-ratio__item strong { display: block; color: var(--rtc-programme-navy); font-size: 24px; line-height: 1.5; }
.rtc-programme-ratio__item span { color: var(--rtc-programme-muted); font-size: 14px; line-height: 1.8; }
.rtc-programme-callout { position: relative; margin-top: 38px; padding: 24px 28px 24px 78px; border: 1px solid #f1db9a; border-left: 5px solid var(--rtc-programme-gold); border-radius: 16px; background: linear-gradient(135deg, #fff8e5, #fffdf7); color: #5d4a1f; font-size: 14px; line-height: 1.9; box-shadow: 0 10px 24px rgba(134, 91, 0, .08); }
.rtc-programme-callout::before { position: absolute; top: 50%; left: 24px; display: grid; width: 36px; height: 36px; transform: translateY(-50%); place-items: center; border-radius: 50%; background: var(--rtc-programme-gold); color: #fff; content: "i"; font-family: Georgia, serif; font-size: 21px; font-weight: 700; }
.rtc-programme-callout strong { color: #7a5200; }

.rtc-programme-related {
    --rtc-programme-navy: #0a2f6b;
    --rtc-programme-gold: #c98600;
    width: min(100% - 32px, 1160px);
    margin: 0 auto 68px;
    font-family: "Noto Sans Khmer", "Battambang", Arial, sans-serif;
}
.rtc-programme-related__header { max-width: 780px; margin: 0 auto 24px; text-align: center; }
.rtc-programme-related__header > span { color: var(--rtc-programme-gold, #c98600); font-size: 13px; font-weight: 700; }
.rtc-programme-related__header p { color: #65748b; font-size: 14px; line-height: 1.8; }
.rtc-programme-related__header h2::after { display: block; width: 54px; height: 4px; margin: 12px auto 0; border-radius: 999px; background: linear-gradient(90deg, #126ab6, var(--rtc-programme-gold)); content: ""; }
.rtc-programme-related__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.rtc-related-card { overflow: hidden; border: 1px solid #dce6f1; border-radius: 18px; background: #fff; box-shadow: 0 11px 28px rgba(10, 47, 107, .09); transition: transform 180ms ease, box-shadow 180ms ease; }
.rtc-related-card:hover { transform: translateY(-5px); box-shadow: 0 18px 36px rgba(10, 47, 107, .14); }
.rtc-related-card__media { display: block; height: 195px; overflow: hidden; background: #eef3f8; }
.rtc-related-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .25s ease; }
.rtc-related-card:hover img { transform: scale(1.035); }
.rtc-related-card__body { padding: 20px; }
.rtc-related-card time { color: #7a8799; font-size: 12px; }
.rtc-related-card h3 { margin: 8px 0; font-size: 18px; line-height: 1.7; }
.rtc-related-card h3 a { color: #0a2f6b !important; text-decoration: none !important; }
.rtc-related-card__body > p { color: #65748b; font-size: 13px; line-height: 1.8; }
.rtc-related-card__link { display: inline-flex; margin-top: 6px; padding: 8px 12px; border-radius: 8px; background: #edf6ff; color: #126ab6 !important; font-size: 13px; font-weight: 700; text-decoration: none !important; }
.rtc-related-card__link:hover { background: #0a2f6b; color: #fff !important; }

@media (max-width: 991.98px) {
    .rtc-programme-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .rtc-programme-timeline { grid-template-columns: 1fr; }
    .rtc-programme-related__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .rtc-programme-admission-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .rtc-programme-gallery { grid-template-columns: 1fr 1fr; grid-template-rows: auto; }
    .rtc-programme-gallery figure:first-child { grid-row: auto; grid-column: 1 / -1; min-height: 310px; }
}

@media (max-width: 767.98px) {
    .rtc-programme-page { width: min(100% - 20px, 1160px); margin-top: 20px; }
    .rtc-programme-hero { min-height: 460px; border-radius: 20px; }
    .rtc-programme-hero__image { height: 460px; }
    .rtc-programme-hero::after { background: linear-gradient(180deg, rgba(5, 30, 73, .5) 0%, rgba(5, 30, 73, .96) 67%); }
    .rtc-programme-hero__content { top: auto; bottom: 25px; left: 22px; width: calc(100% - 44px); transform: none; }
    .rtc-programme-hero h1 { font-size: 28px !important; }
    .rtc-programme-hero p { font-size: 14px; line-height: 1.85; }
    .rtc-programme-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 16px 0 36px; }
    .rtc-programme-fact { padding: 16px 10px; }
    .rtc-programme-fact strong { font-size: 17px; }
    .rtc-programme-intro,
    .rtc-programme-two-column,
    .rtc-programme-ratio { grid-template-columns: 1fr; }
    .rtc-programme-panel { padding: 21px; }
    .rtc-programme-section { margin-top: 26px; }
    .rtc-programme-page > .rtc-programme-section { padding: 24px 18px; border-radius: 19px; }
    .rtc-programme-section h2,
    .rtc-programme-related h2 { font-size: 25px !important; }
    .rtc-programme-related { width: min(100% - 20px, 1160px); }
    .rtc-programme-related__grid { grid-template-columns: 1fr; }
    .rtc-programme-admission-steps { grid-template-columns: 1fr; }
    .rtc-programme-gallery { grid-template-columns: 1fr; }
    .rtc-programme-gallery figure,
    .rtc-programme-gallery figure:first-child { grid-row: auto; grid-column: auto; min-height: 230px; }
    .rtc-programme-callout { padding: 66px 20px 22px; }
    .rtc-programme-callout::before { top: 19px; left: 20px; transform: none; }
}

@media (max-width: 420px) {
    .rtc-programme-facts { grid-template-columns: 1fr 1fr; gap: 9px; }
    .rtc-programme-fact span { font-size: 12px; }
    .rtc-programme-year { padding: 22px 19px; }
}

@media (prefers-reduced-motion: reduce) {
    .rtc-related-card__media img,
    .rtc-programme-gallery img,
    .rtc-related-card,
    .rtc-programme-year,
    .rtc-programme-admission-step,
    .rtc-programme-fact { transition: none; }
}
