.prep-program-page { --prep-nav-height: 4rem; color: var(--fg); background: var(--bg); }
.prep-program-container { max-width: 88rem; }
.prep-program-page ::selection { color: var(--bg); background: var(--accent); }
.prep-program-breadcrumbs { margin: 2rem 0 1.5rem; color: var(--muted); font-size: .875rem; }
.prep-program-breadcrumbs ol { display: flex; flex-wrap: wrap; gap: .5rem .75rem; list-style: none; padding: 0; margin: 0; }
.prep-program-breadcrumbs li { min-width: 0; overflow-wrap: anywhere; }
.prep-program-breadcrumbs li + li::before { content: '/'; margin-right: .75rem; }
.prep-program-switcher { display: flex; flex-wrap: wrap; gap: .5rem 2rem; }
.prep-program-switcher a { display: flex; align-items: center; min-height: 2.75rem; font-size: .9375rem; color: var(--muted); text-decoration: none; border-bottom: 2px solid transparent; }
.prep-program-switcher a[aria-current] { color: var(--accent); border-color: var(--accent); font-weight: 650; }
.prep-program-hero { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr); gap: 4rem; align-items: center; padding: 3rem 0 4rem; }
.prep-program-hero-copy { min-width: 0; }
.prep-program-hero h1 { font-size: clamp(2.125rem, 4vw, 4rem); line-height: 1.1; letter-spacing: -.025em; margin: 0 0 1.5rem; max-width: 24ch; text-wrap: balance; overflow-wrap: anywhere; }
.prep-program-intro { max-width: 65ch; }
.prep-program-intro p { margin: 0 0 .75rem; font-size: 1.0625rem; line-height: 1.65; }
.prep-program-intro :is(b,strong) { font-weight: 400; }
.prep-program-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 1rem 2rem; margin-top: 2rem; }
.prep-program-actions > a { display: inline-flex; align-items: center; min-height: 2.75rem; }
.prep-program-button { display: inline-flex; align-items: center; justify-content: center; min-height: 3rem; padding: .75rem 1.5rem; border: 1px solid var(--accent); color: var(--accent); background: var(--bg); text-decoration: none; font-weight: 600; line-height: 1.5; }
.prep-program-button:hover { color: var(--fg); border-color: var(--fg); text-decoration: underline; }
.prep-program-hero-photo { min-width: 0; margin: 0; }
.prep-program-hero-photo img { display: block; width: 100%; height: clamp(18rem, 30vw, 26rem); object-fit: contain; }
.prep-program-hero-photo figcaption { margin-top: .75rem; text-align: center; font-size: .875rem; line-height: 1.5; color: var(--muted); }
.prep-program-hero-no-photo { grid-template-columns: minmax(0, 1fr); }
.prep-program-bar { position: sticky; top: 0; z-index: 20; border-block: 1px solid var(--line); color: var(--fg); background: var(--bg); }
.prep-program-bar-inner { display: flex; align-items: center; gap: 2rem; min-height: 4rem; }
.prep-program-bar-inner > a { display: flex; align-items: center; min-height: 2.75rem; padding: .5rem 0; font-size: .9375rem; text-decoration: none; }
.prep-program-menu { margin-right: auto; position: relative; }
.prep-program-menu summary { display: flex; align-items: center; gap: 1rem; min-height: 4rem; font-size: .9375rem; font-weight: 650; cursor: pointer; list-style: none; }
.prep-program-menu summary::-webkit-details-marker { display: none; }
.prep-program-menu-short { display: none; }
.prep-program-menu[open] summary svg { transform: rotate(180deg); }
.prep-program-menu-panel { position: absolute; top: 100%; left: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .25rem; width: min(42rem, calc(100vw - 4rem)); max-height: calc(100dvh - var(--prep-nav-height) - 2rem); overflow: auto; padding: 1rem; border: 1px solid var(--line); background: var(--bg); scrollbar-width: thin; scrollbar-color: var(--muted) var(--bg); }
.prep-program-menu-panel a { display: flex; align-items: center; min-height: 3rem; padding: .75rem 1rem; font-size: .9375rem; line-height: 1.5; text-decoration: none; overflow-wrap: anywhere; }
.prep-program-bar a:is(:hover,[aria-current]) { color: var(--accent); text-decoration: underline; }
.prep-program-content { padding-bottom: 2rem; }
.prep-program-section { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2.4fr); gap: 4rem; padding-block: 3.5rem; border-bottom: 1px solid var(--line); scroll-margin-top: calc(var(--prep-nav-height) + 1.5rem); }
.prep-program-section > h2 { margin: 0; font-size: clamp(1.625rem, 2.5vw, 2.375rem); line-height: 1.2; text-wrap: balance; overflow-wrap: anywhere; }
.prep-program-section-body { min-width: 0; max-width: 75ch; line-height: 1.8; overflow-wrap: anywhere; }
.prep-program-section-body p { margin: 0 0 1rem; }
.prep-program-section-body p:last-child { margin-bottom: 0; }
.prep-program-section-body :is(ul,ol) { padding-left: 1.25rem; margin: 0 0 1.5rem; }
.prep-program-section-body li { padding-left: .25rem; margin-bottom: .75rem; }
.prep-program-section-body :is(a,li::marker) { color: var(--accent); }
.prep-program-section-body :is(b,strong) { font-weight: 600; }
.prep-program-section-body .prep-program-price { font-size: 1.25rem; line-height: 1.6; }
.prep-program-download { margin-top: 1.5rem !important; }
.prep-program-download > a { display: inline-flex; align-items: center; min-height: 2.75rem; }
.prep-program-gallery-section { display: block; }
.prep-program-gallery-section > h2 { margin-bottom: 2rem; }
.prep-program-gallery-section .prep-program-section-body { max-width: none; }
.prep-program-gallery { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.5rem; }
.prep-program-photo { min-width: 0; margin: 0; }
.prep-program-photo > a { display: block; min-height: 2.75rem; }
.prep-program-photo img { display: block; width: 100%; height: 17rem; object-fit: contain; }
.prep-program-lightbox { width: min(72rem, 96vw); max-height: 94dvh; padding: 1rem; }
.prep-program-lightbox::backdrop { background: #000b; }
.prep-program-lightbox-controls { display: flex; align-items: center; flex-wrap: wrap; gap: .75rem; margin-bottom: 1rem; }
.prep-program-lightbox-controls button { min-width: 2.75rem; min-height: 2.75rem; }
.prep-program-lightbox-controls span { margin-right: auto; color: var(--muted); font-size: .875rem; }
.prep-program-lightbox > img { display: block; width: 100%; height: min(72dvh, 50rem); object-fit: contain; }
.prep-program-image-error { margin: 1rem 0 0; }
.prep-program-image-error[hidden] { display: none; }
html[lang="zh-Hans"] .prep-program-page { font-family: 'PingFang SC', 'Microsoft YaHei', system-ui, sans-serif; }
html[lang="zh-Hans"] .prep-program-page :is(h1,h2) { font-family: 'Noto Serif SC', 'Songti SC', SimSun, serif; letter-spacing: normal; }
html[lang="zh-Hans"] .prep-program-section-body { max-width: 42em; line-height: 1.9; }
html[lang="zh-Hans"] .prep-program-gallery-section .prep-program-section-body { max-width: none; }
body[data-hide-images="true"] .prep-program-hero-photo { display: none; }
body[data-hide-images="true"] .prep-program-hero { grid-template-columns: minmax(0, 1fr); }
body[data-hide-images="true"] .prep-program-gallery { display: none; }
@media (max-width: 1100px) {
    .prep-program-hero { gap: 2rem; }
    .prep-program-section { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 2rem; }
    .prep-program-gallery { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
    .prep-program-hero { grid-template-columns: minmax(0, 1fr); padding-block: 2rem; }
    .prep-program-hero h1 { max-width: 28ch; }
    .prep-program-hero-photo { max-width: 36rem; }
    .prep-program-hero-photo img { height: 22rem; }
    .prep-program-section { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; padding-block: 2.5rem; }
    .prep-program-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
    .prep-program-breadcrumbs { font-size: .8125rem; margin-top: 1.5rem; }
    .prep-program-switcher { gap: .5rem 1.25rem; }
    .prep-program-switcher a { font-size: .875rem; }
    .prep-program-hero h1 { font-size: 2.125rem; }
    .prep-program-hero-photo img { height: 18rem; }
    .prep-program-bar-inner { gap: 1rem; }
    .prep-program-menu summary { gap: .5rem; font-size: .8125rem; }
    .prep-program-menu-full { display: none; }
    .prep-program-menu-short { display: inline; }
    .prep-program-menu summary svg { width: 12px; height: 12px; }
    .prep-program-bar-inner > a { font-size: .8125rem; }
    .prep-program-menu-panel { width: calc(100vw - 2.25rem); grid-template-columns: minmax(0, 1fr); padding: .5rem; }
    .prep-program-gallery { gap: 1rem; }
    .prep-program-photo img { height: 12rem; }
    .prep-program-lightbox-controls span { flex-basis: 100%; order: -1; }
    .prep-program-lightbox-controls button { flex: 1; padding-inline: .5rem; }
}
body[data-text-size="200"] .prep-program-hero,
body[data-text-size="200"] .prep-program-section { grid-template-columns: minmax(0, 1fr); }
body[data-text-size="200"] .prep-program-bar-inner { flex-wrap: wrap; gap: .25rem 1rem; }
body[data-text-size="200"] .prep-program-menu { flex-basis: 100%; }
body[data-text-size="200"] .prep-program-menu-panel { width: min(42rem, calc(100vw - 2.25rem)); grid-template-columns: minmax(0, 1fr); }
body[data-text-size="200"] .prep-program-gallery { grid-template-columns: minmax(0, 1fr); }
@media print {
    .prep-program-bar, .prep-program-actions, .prep-program-switcher { display: none; }
    .prep-program-section { display: block; break-inside: avoid; padding-block: 1rem; }
    .prep-program-section > h2 { margin-bottom: 1rem; }
}
