/* Loaded only by public layouts when NATIONAL_DAY_THEME=on. */
body.national-day-theme {
    --primary: #10733A;
    --primary-deep: #084c27;
    --accent: #10733A;
    --accent-soft: #eaf5ee;
    --bg: #f6faf7;
    --surface: #fff;
    --text: #173626;
    --muted: #5d7164;
    --line: #dce9e0;
    --brand-gradient: linear-gradient(135deg, #10733A, #168d48);
    --hero-gradient: linear-gradient(110deg, #084c27 0%, #10733A 60%, #0b5b2e 100%);
    --shadow: 0 8px 30px -12px rgb(16 115 58 / 18%);
    --shadow-brand: 0 16px 42px -20px rgb(16 115 58 / 40%);
    background: var(--bg);
    color: var(--text);
}
.national-day-theme ::selection { background: #10733A; color: #fff; }
.national-day-theme :is(input, select, textarea) { accent-color: #10733A; }
.national-day-theme :is(input, select, textarea):focus { border-color: #10733A; box-shadow: 0 0 0 3px rgb(16 115 58 / 13%); }
.national-day-theme :is(a, button):focus-visible { outline: 3px solid #56b880; outline-offset: 4px; }
.national-day-theme .nd-celebration { color: #fff; background: #10733A; border-bottom: 1px solid rgb(255 255 255 / 18%); }
.national-day-theme .nd-celebration .container { min-height: 62px; display: flex; align-items: center; justify-content: space-between; gap: 18px; padding-block: 6px; }
.national-day-theme .nd-celebration img { width: 112px; height: auto; object-fit: contain; }
.national-day-theme .nd-celebration span { font-size: clamp(13px, 1.5vw, 16px); font-weight: 700; letter-spacing: 0; }
.national-day-theme .topbar { background: rgb(255 255 255 / 97%); border-bottom: 1px solid var(--line); box-shadow: 0 4px 24px rgb(16 115 58 / 5%); }
.national-day-theme .hero { position: relative; isolation: isolate; }
.national-day-theme .hero::after { content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: radial-gradient(ellipse at 14% 0%, rgb(255 255 255 / 14%), transparent 55%); }
.national-day-theme .hero-featured { box-shadow: 0 24px 70px rgb(0 44 18 / 24%); }
.national-day-theme .program-mini { box-shadow: 0 14px 35px rgb(8 66 32 / 10%); }
.national-day-theme .program-mini:hover { box-shadow: 0 18px 45px rgb(8 66 32 / 18%); }
.national-day-theme .programs-band { background: linear-gradient(180deg, #eaf5ee, #f6faf7); }
.national-day-theme .filter-chip { background: #eaf3ed; color: #245c39; }
.national-day-theme .filter-chip.active { background: #10733A; color: #fff; }
.national-day-theme .search-field input { background: #f4f8f5; }
.national-day-theme .quote-mark { color: rgb(16 115 58 / 22%); }
.national-day-theme .testimonial-card { border-color: var(--line); }
.national-day-theme .content-page { color: #244832; }
.national-day-theme .footer { background: #084c27; border-top: 5px solid #10733A; }
.national-day-theme .footer-bottom { border-color: rgb(255 255 255 / 15%); }
.national-day-theme .registration-media::after,
.national-day-theme .home-program-visual::after { background: linear-gradient(180deg, transparent, rgb(8 66 32 / 88%)); }
.national-day-theme.ads-form-page { background: linear-gradient(180deg, #dfeee4, #f6faf7 380px, #fff); }

/* Reference layout: image, seasonal ribbon/logo, content, green price footer. */
.national-day-theme .nd-program-card {
    background: #fff;
    min-width: 0;
    border-radius: 16px;
    overflow: hidden;
    position: relative;
    box-shadow: 0 5px 20px rgb(255 255 255 / 90%), 0 15px 35px rgb(16 115 58 / 22%);
    display: flex;
    flex-direction: column;
    transition: transform .25s ease, box-shadow .25s ease;
}
.national-day-theme .nd-program-card:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgb(16 115 58 / 29%); }
.national-day-theme .nd-card-image { position: relative; width: 100%; height: 230px; overflow: hidden; background: #10733A; }
.national-day-theme .nd-main-image { display: block; width: 100%; height: 100%; object-fit: cover; position: relative; z-index: 1; }
.national-day-theme .nd-image-placeholder { width: 100%; height: 100%; background: var(--hero-gradient); display: grid; place-items: start center; padding-top: 50px; color: white; font-size: 24px; font-weight: 900; }
.national-day-theme .nd-card-image::after { content: ''; position: absolute; top: -50%; left: -50%; width: 200%; height: 200%; background: linear-gradient(120deg, transparent 30%, rgb(255 255 255 / 25%) 45%, rgb(255 255 255 / 60%) 50%, rgb(255 255 255 / 25%) 55%, transparent 70%); pointer-events: none; z-index: 2; animation: nd-light-sweep 4s ease-in-out infinite; }
.national-day-theme .nd-season-badge { position: absolute; top: 12px; left: 0; background: #d32f2f; color: #fff; padding: 7px 16px 7px 12px; border-radius: 20px 0 0 20px; border-top-left-radius: 0; border-bottom-left-radius: 0; border-top-right-radius: 20px; border-bottom-right-radius: 20px; font-size: 14px; font-weight: 700; box-shadow: 0 4px 10px rgb(0 0 0 / 20%); z-index: 4; text-align: center; line-height: 1.2; animation: nd-badge-pulse 1.2s ease-in-out infinite; }
.national-day-theme .nd-season-badge span { font-size: 13px; font-weight: 500; margin-inline-start: 4px; }
.national-day-theme .nd-brand-banner { position: absolute; top: 85%; left: 50%; transform: translate(-50%,-50%); z-index: 5; pointer-events: none; animation: nd-logo-pulse 1.2s ease-in-out infinite; }
.national-day-theme .nd-brand-banner img { height: 55px; width: auto; max-width: none; display: block; object-fit: contain; filter: drop-shadow(0 4px 10px rgb(0 0 0 / 70%)); }
.national-day-theme .nd-card-content { padding: 20px 20px 0; display: flex; flex-direction: column; flex: 1; }
.national-day-theme .nd-category { align-self: flex-start; background: #eaf5ee; color: #10733A; padding: 4px 14px; border-radius: 15px; font-size: 14px; font-weight: 700; margin-bottom: 10px; }
.national-day-theme .nd-card-content h3 { font-size: 20px; font-weight: 900; color: #193425; margin: 0 0 10px; line-height: 1.5; text-align: right; }
.national-day-theme .nd-card-content p { font-size: 14px; color: #555; margin: 0 0 12px; line-height: 1.8; min-height: 55px; text-align: right; overflow-wrap: anywhere; }
.national-day-theme .nd-duration { display: flex; flex-wrap: wrap; gap: 6px; font-size: 14px; color: #637068; margin-bottom: 20px; margin-top: auto; font-weight: 700; }
.national-day-theme .nd-card-footer { background: #10733A; color: #fff; display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 15px 20px; margin-top: auto; }
.national-day-theme .nd-details-button { background: #fff; color: #193425; padding: 8px 22px; border-radius: 24px; font-size: 14px; font-weight: 800; box-shadow: 0 3px 8px rgb(0 0 0 / 15%); transition: background .2s; flex-shrink: 0; text-decoration: none; }
.national-day-theme .nd-details-button:hover { background: #eaf5ee; }
.national-day-theme .nd-price { text-align: left; padding: 4px 0; font-size: 19px; font-weight: 900; color: #fff; min-width: 0; overflow-wrap: anywhere; }
.national-day-theme .nd-price .program-fee-display { display: flex; flex-direction: column; gap: 3px; align-items: flex-start; }
.national-day-theme .nd-price .program-fee-display__label { color: #fff; font-size: 13px; font-weight: 500; }
.national-day-theme .nd-price .price-with-symbol { color: #fff; font-size: 19px; }
.national-day-theme .nd-price .muted { color: #dbefe2; }
.national-day-theme .nd-price .chip { font-size: 12px; background: #fff; }
.national-day-theme .nd-sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.national-day-theme .nd-program-card:is(:hover,:focus-within) :is(.nd-season-badge,.nd-brand-banner),
.national-day-theme .nd-program-card:is(:hover,:focus-within) .nd-card-image::after { animation-play-state: paused; }
@keyframes nd-light-sweep { 0% { transform: translateY(-100%) rotate(25deg); opacity: 0; } 20% { opacity: 1; } 50% { transform: translateY(100%) rotate(25deg); opacity: .8; } 100% { transform: translateY(150%) rotate(25deg); opacity: 0; } }
@keyframes nd-badge-pulse { 0%,100% { transform: scale(1); } 50% { transform: scale(1.08); box-shadow: 0 0 15px rgb(211 47 47 / 35%); } }
@keyframes nd-logo-pulse { 0%,100% { transform: translate(-50%,-50%) scale(1); } 50% { transform: translate(-50%,-50%) scale(1.12); } }
@media (min-width: 640px) and (max-width: 1050px) {
    .national-day-theme .program-showcase-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .national-day-theme .grid-3:has(> .nd-program-card) { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 639px) {
    .national-day-theme .nd-celebration .container { min-height: 54px; gap: 10px; }
    .national-day-theme .nd-celebration img { width: 94px; }
    .national-day-theme .nd-celebration span { max-width: 170px; font-size: 13px; }
    .national-day-theme .nd-program-card { width: 100%; max-width: 440px; margin-inline: auto; }
    .national-day-theme .nd-card-footer { padding: 15px 16px; }
    .national-day-theme .nd-price { font-size: 17px; }
    .national-day-theme .nd-details-button { padding-inline: 18px; }
}
@media (prefers-reduced-motion: reduce) {
    .national-day-theme .nd-card-image::after { animation: none; opacity: 0; }
    .national-day-theme :is(.nd-season-badge,.nd-brand-banner,.hero-featured) { animation: none; }
    .national-day-theme .nd-program-card { transition: none; }
}
@media print {
    .national-day-theme .nd-celebration { display: none; }
    .national-day-theme .nd-program-card { box-shadow: none; break-inside: avoid; }
    .national-day-theme .nd-card-image::after { display: none; }
}
