.program-microsite {
    --pm-navy:#18344d;
    --pm-ink:#172e42;
    --pm-muted:#526575;
    --pm-ivory:#f7f6f2;
    --pm-white:#fff;
    --pm-line:#d7e0e6;
    --pm-accent:#d7b56d;
    color:var(--pm-ink);
    background:var(--pm-ivory)
}
.program-microsite main {
    font-family:'Noto Sans Thai','Poppins',sans-serif
}
.pm-hero {
    background:var(--pm-navy);
    color:var(--pm-white);
    overflow:hidden
}
.pm-hero-grid {
    display:grid;
    grid-template-columns:1.1fr 1fr;
    min-height:600px;
    padding-top:0;
    padding-bottom:0;
    gap:64px
}
.pm-hero-copy {
    padding:48px 0 64px;
    align-self:center
}
.pm-breadcrumb {
    display:flex;
    gap:16px;
    list-style:none;
    padding:0;
    margin:0 0 48px;
    font-size:.85rem;
    flex-wrap:wrap
}
.pm-breadcrumb li+li:before {
    content:'/';
    margin-right:16px;
    color:#afbbc4
}
.pm-breadcrumb a {
    color:#e0e8ee;
    text-decoration:none;
    min-height:44px;
    display:inline-flex;
    align-items:center
}
.pm-kicker {
    font-family:'Poppins','Noto Sans Thai',sans-serif;
    font-size:.72rem;
    font-weight:600;
    letter-spacing:.16em;
    line-height:1.7;
    text-transform:uppercase;
    margin:0 0 16px;
    color:var(--pm-muted)
}
.pm-hero .pm-kicker {
    color:var(--pm-accent)
}
.pm-degree {
    font-size:.9rem;
    color:#e0e8ee
}
.pm-hero h1 {
    font-size:clamp(2rem,3.5vw,3.5rem);
    font-weight:600;
    line-height:1.4;
    letter-spacing:-.03em;
    max-width:16ch;
    color:#fff;
    margin:16px 0 24px;
    text-wrap:balance
}
.pm-hero-intro {
    color:#e0e8ee;
    font-size:1rem;
    line-height:1.9;
    max-width:58ch;
    margin:0 0 32px
}
.pm-hero-actions {
    display:flex;
    gap:12px;
    flex-wrap:wrap
}
.pm-button {
    display:inline-flex;
    justify-content:center;
    align-items:center;
    gap:12px;
    padding:12px 20px;
    min-height:48px;
    border:1px solid transparent;
    font-size:.9rem;
    font-weight:500;
    text-decoration:none;
    transition:background .18s,color .18s
}
.pm-button-primary {
    background:var(--pm-accent);
    color:var(--pm-ink)
}
.pm-button-primary:hover {
    background:#e4c88d;
    color:var(--pm-ink)
}
.pm-button-outline {
    border-color:#b9c8d3;
    color:#fff
}
.pm-button-outline:hover {
    background:#ffffff15;
    color:#fff
}
.pm-admin-edit-link {
    display:inline-flex;
    align-items:center;
    min-height:44px;
    color:#e0e8ee;
    font-size:.8rem;
    margin-top:16px
}
.pm-hero-media {
    position:relative;
    min-width:0;
    min-height:600px
}
.pm-hero-media img {
    width:100%;
    height:100%;
    position:absolute;
    inset:0;
    object-fit:cover
}
.pm-image-caption {
    position:absolute;
    bottom:24px;
    left:24px;
    background:#18344df0;
    color:#fff;
    font-size:.63rem;
    letter-spacing:.12em;
    padding:12px 16px;
    max-width:calc(100% - 48px)
}
.pm-cover-placeholder {
    position:absolute;
    inset:0;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    gap:32px;
    background:#234963;
    padding:32px;
    text-align:center
}
.pm-cover-placeholder i {
    font-size:5rem
}
.pm-facts {
    background:var(--pm-white);
    border-bottom:1px solid var(--pm-line)
}
.pm-facts-grid {
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(140px,1fr));
    margin-bottom:0;
    padding-top:32px;
    padding-bottom:32px;
    gap:32px
}
.pm-facts-grid dt {
    font-size:.82rem;
    font-weight:400;
    color:var(--pm-muted);
    margin-bottom:8px
}
.pm-facts-grid dd {
    font-size:1.1rem;
    font-weight:600;
    margin:0
}
.pm-section-nav {
    background:#fff;
    border-bottom:1px solid var(--pm-line);
    position:sticky;
    top:var(--pm-header-height,64px);
    z-index:1030
}
.pm-section-nav>.container {
    padding-left:var(--pm-nav-left,12px);
}
.pm-section-nav-links {
    display:flex;
    gap:24px;
    overflow-x:auto
}
.pm-section-nav a {
    flex-shrink:0;
    display:inline-flex;
    align-items:center;
    min-height:64px;
    color:var(--pm-muted);
    font-size:.86rem;
    text-decoration:none;
    border-bottom:3px solid transparent;
    padding:0 2px
}
.pm-section-nav a:hover,.pm-section-nav a[aria-current] {
    border-color:var(--pm-navy);
    color:var(--pm-navy)
}
.program-microsite .article-content-section {
    padding:0 0 64px;
    background:var(--pm-ivory)
}
.program-microsite .program-main-layout {
    padding-top:48px
}
.pm-section {
    padding:48px 0;
    border-bottom:1px solid var(--pm-line);
    scroll-margin-top:96px
}
.pm-section h2 {
    font-size:clamp(1.5rem,2.5vw,2.2rem);
    font-weight:600;
    line-height:1.5;
    letter-spacing:-.02em;
    margin-bottom:24px;
    color:var(--pm-ink)
}
.pm-highlight-grid {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:20px
}
/* Image-led cards keep the whole card as one keyboard target. */
.pm-highlight { background:var(--pm-white); border:1px solid var(--pm-line); min-width:0; }
.pm-highlight-link { display:block; height:100%; color:var(--pm-ink); text-decoration:none; transition:box-shadow .18s; }
.pm-highlight-link:hover { color:var(--pm-ink); box-shadow:0 6px 24px #18344d18; }
.pm-highlight-cover { position:relative; aspect-ratio:16/9; background:var(--pm-navy); overflow:hidden; }
.pm-highlight-cover img { width:100%; height:100%; object-fit:cover; }
.pm-number { position:absolute; bottom:16px; left:20px; background:var(--pm-white); color:var(--pm-ink); padding:6px 12px; font:500 .85rem 'Poppins',sans-serif; }
.pm-highlight-copy { padding:24px; }
.pm-highlight h3 { font-size:1.15rem; line-height:1.6; font-weight:600; color:var(--pm-ink); }
.pm-highlight p { font-size:1rem; line-height:1.85; color:var(--pm-muted); margin:12px 0 16px; }
.pm-highlight-more { display:flex; align-items:center; gap:12px; min-height:44px; font-size:.9rem; font-weight:600; }
.pm-highlight-more i { margin-left:auto; }
.pm-highlight-modal .modal-content,.pm-navigation-modal .modal-content { border:0; border-radius:12px; color:var(--pm-ink); }
.pm-highlight-modal .modal-header { align-items:flex-start; padding:24px 32px; border-color:var(--pm-line); }
.pm-highlight-modal .modal-title { font-size:clamp(1.3rem,2.5vw,1.8rem); line-height:1.6; color:var(--pm-ink); }
.pm-highlight-modal .pm-kicker { margin-bottom:8px; }
.pm-highlight-modal .modal-body { padding:32px; }
.pm-highlight-modal .modal-header,.pm-navigation-modal .modal-header { gap:16px; }
.pm-highlight-modal .modal-header > div { min-width:0; }
.pm-highlight-modal .btn-close,.pm-navigation-modal .btn-close { flex-shrink:0; min-width:44px; min-height:44px; padding:0; margin:0 0 0 auto; }
.pm-rich-content { line-height:1.9; overflow-wrap:anywhere; color:var(--pm-muted); }
.pm-rich-content h2,.pm-rich-content h3,.pm-rich-content h4,.pm-rich-content h5 { color:var(--pm-ink); margin:24px 0 12px; line-height:1.6; font-size:1.25rem; }
.pm-rich-content img { display:block; max-width:100%; height:auto; border-radius:6px; margin:16px auto; }
.pm-rich-content figure { margin:24px 0; }
.pm-rich-content figcaption { font-size:.85rem; text-align:center; }
.pm-rich-content a { color:var(--pm-navy); text-decoration:underline; }
.pm-rich-content ul,.pm-rich-content ol { padding-left:24px; }
.pm-rich-content table { display:block; max-width:100%; overflow-x:auto; border-collapse:collapse; margin:24px 0; }
.pm-rich-content th,.pm-rich-content td { padding:12px; border:1px solid var(--pm-line); min-width:100px; }
.pm-rich-content th { background:var(--pm-navy); color:var(--pm-white); }
.pm-rich-content .pm-content-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.pm-rich-content .pm-content-callout { padding:24px; border-left:3px solid var(--pm-accent); background:var(--pm-ivory); margin:24px 0; }
.pm-rich-content .pm-content-lead { font-size:1.15rem; color:var(--pm-ink); }
.pm-mobile-menu-button { display:none; }
.pm-navigation-modal .modal-title { font-size:1.25rem; color:var(--pm-ink); }
.pm-navigation-name { font-weight:600; line-height:1.7; margin:0 0 16px; }
.pm-mobile-section-links { display:grid; gap:8px; }
.pm-mobile-section-links a { display:block; padding:14px 16px; min-height:48px; border:1px solid var(--pm-line); border-radius:6px; text-decoration:none; color:var(--pm-ink); }
.pm-mobile-section-links a[aria-current] { background:var(--pm-ivory); border-color:var(--pm-navy); }
.pm-prose {
    font-size:1rem;
    line-height:1.95;
    max-width:75ch;
    color:var(--pm-muted);
    overflow-wrap:anywhere
}
.pm-table-wrap {
    overflow:auto;
    margin-top:24px;
    border:1px solid var(--pm-line);
    background:#fff
}
.pm-table {
    border-collapse:collapse;
    width:100%;
    font-size:.95rem;
    line-height:1.7
}
.pm-table th {
    background:var(--pm-navy);
    color:#fff;
    padding:20px;
    min-width:135px;
    font-weight:500
}
.pm-table td {
    padding:20px;
    vertical-align:top;
    border-bottom:1px solid var(--pm-line)
}
.pm-table tr:last-child td {
    border:0
}
.pm-section-intro {
    color:var(--pm-muted);
    line-height:1.8
}
.pm-partner-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:24px
}
.pm-partner {
    background:#fff;
    border:1px solid var(--pm-line);
    min-width:0
}
.pm-partner-body {
    padding:24px 28px 28px;
    overflow-wrap:anywhere
}
.pm-partner-logo {
    width:100%;
    aspect-ratio:2 / 1;
    padding:22px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-bottom:1px solid var(--pm-line)
}
.pm-partner-logo img {
    display:block;
    width:100%;
    max-width:100%;
    object-fit:contain;
    height:100%
}
.pm-partner-logo i {
    font-size:3rem;
    color:var(--pm-muted)
}
.pm-partner h3 {
    font-size:1.1rem;
    line-height:1.6
}
.pm-partner p:not(.pm-kicker) {
    font-size:.95rem;
    line-height:1.8;
    color:var(--pm-muted)
}
.pm-partner a {
    display:inline-flex;
    align-items:center;
    min-height:44px;
    color:var(--pm-navy);
    font-size:.9rem
}
.pm-final-cta {
    background:var(--pm-navy);
    color:#fff;
    padding:48px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:32px;
    margin-top:48px
}
.pm-final-cta h2 {
    font-size:1.6rem;
    line-height:1.6;
    color:#fff;
    margin:0
}
.pm-final-cta .pm-kicker {
    color:var(--pm-accent)
}
.pm-preview-banner {
    padding:16px;
    background:#fcf0d1;
    color:#614b19;
    text-align:center
}
.pm-preview-banner a {
    color:inherit
}
.pm-legacy {
    padding:32px 0;
    scroll-margin-top:96px
}
.program-microsite #program-documents,.program-microsite #program-stories,.program-microsite #program-news {
    scroll-margin-top:96px
}
.program-microsite .program-side-pride {
    padding-top:48px
}
.program-microsite .program-side-pride .side-wrap {
    position:static
}
.program-microsite .program-side-pride .side-card {
    box-shadow:none!important;
    border-radius:6px
}
.program-microsite .program-side-pride .side-title {
    font-size:1.2rem
}
.program-microsite .program-side-pride .side-body h3 {
    font-size:.95rem
}
.program-microsite .pm-partners + .program-related-news {
    border-top:0
}
.program-microsite .program-related-news__grid {
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:24px
}
.program-microsite .program-news-card {
    border-radius:4px;
    box-shadow:none
}
.program-microsite .program-news-card__body {
    padding:20px
}
.program-microsite .program-news-card__title {
    font-size:1rem;
    line-height:1.7;
    -webkit-line-clamp:3
}
.program-microsite .program-news-card__meta,.program-microsite .program-news-card__author {
    font-size:.82rem;
    color:var(--pm-muted)
}
.program-microsite .program-related-news__title {
    font-size:1.8rem
}
.program-microsite .program-related-news__view-all {
    color:var(--pm-navy);
    display:inline-flex;
    align-items:center;
    min-height:44px
}
.program-microsite main a:focus-visible,.program-microsite main button:focus-visible,.program-microsite main summary:focus-visible,.pm-table-wrap:focus-visible {
    outline:3px solid #ad8022;
    outline-offset:4px
}
.pm-skip-link {
    position:fixed;
    left:16px;
    top:-100px;
    z-index:500;
    background:#fff;
    padding:16px;
    color:var(--pm-navy)
}
.pm-skip-link:focus {
    top:16px
}
@media(max-width:991px) {
    .pm-hero-grid {
        gap:32px;
        min-height:480px
    }
    .pm-hero-media {
        min-height:480px
    }
    .pm-hero-copy {
        padding:32px 0
    }
    .pm-breadcrumb {
        margin-bottom:24px
    }
    .pm-hero h1 {
        font-size:2.1rem
    }
    .pm-partner-grid {
        grid-template-columns:repeat(2,minmax(0,1fr))
    }
    .program-microsite .program-side-pride .side-list {
        display:grid;
        grid-template-columns:repeat(2,minmax(0,1fr))
    }
    .pm-section-nav a {
        min-height:56px
    }
    .pm-final-cta {
        flex-direction:column;
        align-items:flex-start
    }
}
@media(max-width:575px) {
    .pm-hero-grid {
        grid-template-columns:1fr;
        gap:0
    }
    .pm-hero-copy {
        padding:24px 8px 32px
    }
    .pm-hero h1 {
        font-size:2rem;
        max-width:none
    }
    .pm-hero-media {
        min-height:320px;
        max-height:320px;
        margin:0 -12px
    }
    .pm-section-nav-links {
    padding-left:var(--pm-nav-left,12px);
        gap:20px
    }
    .pm-highlight-grid,.pm-partner-grid,.program-microsite .program-related-news__grid {
        grid-template-columns:1fr
    }
    .pm-section {
        padding:32px 0
    }
    .pm-partner-body {
        padding:24px
    }
    .pm-facts-grid {
        gap:24px;
        padding:24px
    }
    .pm-final-cta {
        padding:28px
    }
    .program-microsite .program-side-pride .side-list {
        grid-template-columns:1fr
    }
    .pm-image-caption {
        font-size:.6rem
    }
    .pm-hero-actions {
        display:grid;
        grid-template-columns:1fr
    }
    .program-microsite .program-main-layout {
        padding-top:24px
    }
}
@media(prefers-reduced-motion:reduce) {
    .program-microsite *, .program-microsite *:before,.program-microsite *:after {
        animation:none!important;
        transition:none!important;
        scroll-behavior:auto!important
    }
}
.pm-section,.pm-legacy,.program-microsite #program-documents,.program-microsite #program-stories,.program-microsite #program-news {
    scroll-margin-top:calc(var(--pm-header-height,64px) + 88px);
}
@media(max-width:991px) {
    .program-microsite main { padding-bottom:88px; }
    .pm-section-nav { display:none; }
    .pm-mobile-menu-button { display:flex; position:fixed; right:20px; bottom:calc(20px + env(safe-area-inset-bottom)); z-index:1041; align-items:center; gap:8px; min-height:48px; border:1px solid #fff; border-radius:28px; padding:12px 20px; background:var(--pm-navy); color:#fff; font-size:.95rem; box-shadow:0 4px 20px #18344d40; transition:background .18s; }
    .pm-mobile-menu-button:hover { background:#234963; }
    .pm-navigation-modal .modal-dialog { margin:0; display:flex; align-items:flex-end; min-height:100%; }
    .pm-navigation-modal .modal-content { max-height:85dvh; border-radius:20px 20px 0 0; }
    .pm-navigation-modal .modal-header { padding:20px; }
    .pm-navigation-modal .modal-body { padding:20px 20px calc(24px + env(safe-area-inset-bottom)); }
    .pm-section,.pm-legacy,.program-microsite #program-documents,.program-microsite #program-stories,.program-microsite #program-news { scroll-margin-top:calc(var(--pm-header-height,64px) + 24px); }
    .program-microsite .back-top { display:none; }
}
@media(max-width:575px) {
    .pm-highlight-modal .modal-header,.pm-highlight-modal .modal-body { padding:20px; }
    .pm-rich-content .pm-content-grid { grid-template-columns:1fr; }
}
.pm-mobile-menu-button:focus-visible,.pm-highlight-modal a:focus-visible,.pm-highlight-modal button:focus-visible,.pm-navigation-modal a:focus-visible,.pm-navigation-modal button:focus-visible {
    outline:3px solid #ad8022; outline-offset:3px;
}

/* Documents remain available as a quiet list after all program content. */
.program-microsite .pm-documents {
    margin-top:32px;
    padding-top:16px;
    border-top:1px solid var(--pm-line);
    color:var(--pm-muted)
}
.program-microsite .pm-documents-title {
    margin:0 0 4px;
    font-size:.95rem;
    font-weight:500;
    line-height:1.6;
    color:var(--pm-muted)
}
.pm-document-list {
    list-style:none;
    padding:0;
    margin:0
}
.pm-document-list li,.pm-document-links {
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:8px
}
.pm-document-download,.pm-document-related {
    display:inline-flex;
    align-items:center;
    gap:8px;
    min-height:44px;
    max-width:100%;
    font-size:.875rem;
    line-height:1.6;
    color:var(--pm-muted);
    text-underline-offset:3px
}
.pm-document-download span {
    min-width:0;
    overflow-wrap:anywhere
}
.pm-document-related {
    justify-content:center;
    min-width:44px
}
.pm-document-download:hover,.pm-document-related:hover {
    color:var(--pm-navy)
}
.pm-document-download:focus-visible,.pm-document-related:focus-visible {
    outline:2px solid var(--pm-navy);
    outline-offset:3px
}
