/* Public-site theme, derived from home-story.css. Admin layouts stay independent. */
.site-theme {
    --brand-blue: #2580be;
    --brand-link: #206fa6;
    --brand-navy: #18344b;
    --brand-gold: #edb344;
    --brand-paper: #f1f6fa;
    --brand-line: #d5e2ec;
    --primary-color: var(--brand-link);
    --hover-color: #195a88;
    --accent-color: var(--brand-gold);
    --dark-color: #102c43;
    --text-color: var(--brand-navy);
    --text-muted: #586f81;
    --border-color: var(--brand-line);
    --light-color: var(--brand-paper);
    --bs-primary: var(--brand-link);
    --bs-primary-rgb: 32, 111, 166;
    --bs-light-rgb: 241, 246, 250;
    --bs-dark-rgb: 16, 44, 67;
    color: var(--brand-navy);
    background: var(--brand-paper);
    font-family: 'Noto Sans TC', 'PingFang TC', 'Microsoft JhengHei', sans-serif;
    -webkit-font-smoothing: antialiased;
}

/* Shared navigation keeps the same identity when entering or leaving the home page. */
.site-theme .navbar {
    background: rgba(247, 251, 255, .97) !important;
    border-bottom: 1px solid var(--brand-line);
    box-shadow: 0 4px 24px #18344b08;
}
.site-theme .navbar .nav-link {
    color: var(--brand-navy);
    font-size: .875rem;
    font-weight: 500;
    padding-block: .85rem;
}
.site-theme .navbar .nav-link:hover,
.site-theme .navbar .nav-link:focus,
.site-theme .navbar .nav-link.show { color: var(--brand-link); }
.site-theme .dropdown-menu {
    padding: .5rem;
    border: 1px solid var(--brand-line);
    border-radius: 12px;
    box-shadow: 0 16px 40px #18344b14;
}
.site-theme .navbar .dropdown-item {
    padding: .65rem .85rem;
    border-radius: 6px;
    color: var(--brand-navy);
    font-size: .875rem;
}
.site-theme .dropdown-item:hover,
.site-theme .dropdown-item:focus { background: #e5f0f8; color: var(--brand-link); }
.site-theme .dropdown-item.active,
.site-theme .dropdown-item:active { background: var(--brand-link); color: white; }
.site-theme :is(a, button, input, select, textarea):focus-visible {
    outline: 3px solid var(--brand-blue);
    outline-offset: 4px;
}

.site-content { line-height: 1.85; background: #fff; }
.site-content :is(h1, h2, h3, h4, h5, h6) { line-height: 1.45; letter-spacing: -.025em; }
.site-content :is(h1, h2, h3, section[id], div[id]) { scroll-margin-top: 100px; }
.site-content a:where(:not(.btn):not(.text-white):not(.text-light):not(.dropdown-item):not(.nav-link)) { color: var(--brand-link); }
.site-content .text-muted { color: var(--text-muted) !important; }
.site-content .bg-light { background-color: var(--brand-paper) !important; }

/* Only title banners change to light; colored CTA and status panels retain contrast. */
.site-content > section.bg-primary:has(h1),
.site-content > section.bg-light:has(h1) {
    position: relative;
    background: linear-gradient(110deg, #f1f6fa 0%, #e7f1f8 100%) !important;
    color: var(--brand-navy) !important;
    border-bottom: 1px solid var(--brand-line);
    padding-block: clamp(2.5rem, 5vw, 5rem) !important;
}
.site-content > section:has(h1) h1 {
    font-weight: 650;
    font-size: clamp(2rem, 3.5vw, 3.4rem);
    letter-spacing: -.045em;
}
.site-content > section.bg-primary:has(h1) h1::before,
.site-content > section.bg-light:has(h1) h1::before {
    content: '';
    display: block;
    width: 44px;
    height: 4px;
    border-radius: 2px;
    background: var(--brand-gold);
    margin-bottom: 1.25rem;
}
.site-content > section.bg-primary:has(h1) .lead { color: #526d81; }
.site-content > section.bg-primary:has(h1) .text-white:not(.btn):not(.badge),
.site-content > section.bg-primary:has(h1) .breadcrumb-item::before { color: var(--brand-link) !important; }
.site-content > section.bg-primary:has(h1) .btn-outline-light {
    color: var(--brand-link);
    border-color: var(--brand-link);
}
.site-content > section.bg-primary:has(h1) .btn-outline-light:hover { background: var(--brand-link); color: #fff; }
.site-content .lead { font-size: 1.125rem; line-height: 1.9; }
.site-content .section-title::after { background: var(--brand-gold); border-radius: 2px; }

.site-content .card {
    border: 1px solid var(--brand-line) !important;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 5px 22px #18344b07 !important;
    transition: box-shadow .2s ease, border-color .2s ease;
}
.site-content .card:hover {
    transform: none;
    border-color: #abc9de !important;
    box-shadow: 0 10px 30px #18344b10 !important;
}
.site-content .card-body { padding: clamp(1.25rem, 2vw, 1.75rem); }
.site-content .card-img-top { border-radius: 15px 15px 0 0; }
.site-content .card-header { border-bottom-color: var(--brand-line); padding: 1rem 1.25rem; }
.site-content .card-header:first-child { border-radius: 15px 15px 0 0; }
.site-content .card-footer { background: #f7fafc; border-top-color: var(--brand-line); }
.site-content .card-footer:last-child { border-radius: 0 0 15px 15px; }
.site-content .badge { padding: .5em .75em; font-weight: 500; line-height: 1.4; }
.site-content .badge.bg-warning { background-color: #f2cf86 !important; color: var(--brand-navy) !important; }

.site-content .btn { font-weight: 500; padding: .7rem 1.4rem; border-radius: 999px; transition: background-color .2s, box-shadow .2s; }
.site-content .btn-sm { padding: .45rem 1rem; font-size: .875rem; }
.site-content .btn-primary { background: var(--brand-link); border-color: var(--brand-link); }
.site-content .btn-outline-primary { color: var(--brand-link); border-color: #8bb6d3; }
.site-content .btn-primary:hover,
.site-content .btn-primary:active,
.site-content .btn-primary:focus,
.site-content .btn-outline-primary:hover,
.site-content .btn-outline-primary:active,
.site-content .btn-outline-primary.active {
    background: var(--hover-color); border-color: var(--hover-color); color: #fff; transform: none;
}
.site-content .btn-primary:disabled { background: #526d81; border-color: #526d81; }
.site-content :is(.btn-primary, .btn-outline-primary):focus { box-shadow: 0 0 0 .25rem #2580be26; }
.site-content .form-control,
.site-content .form-select { border-color: #b6cbd9; border-radius: 9px; padding: .7rem .9rem; color: var(--brand-navy); }
.site-content :is(.form-control, .form-select):focus { border-color: var(--brand-blue); box-shadow: 0 0 0 .25rem #2580be1a; }
.site-content .form-label { font-weight: 500; }
.site-content .input-group > :first-child { border-top-right-radius: 0; border-bottom-right-radius: 0; }
.site-content .input-group > :last-child { border-top-left-radius: 0; border-bottom-left-radius: 0; }
.site-content .form-check-input:checked { background-color: var(--brand-link); border-color: var(--brand-link); }
.site-content .accordion-item { border-color: var(--brand-line); }
.site-content .accordion-button { padding: 1.2rem; color: var(--brand-navy); line-height: 1.6; }
.site-content .accordion-button:not(.collapsed) { color: #195a88; background: #eaf3f9; box-shadow: inset 3px 0 var(--brand-gold); }
.site-content .accordion-button:focus { border-color: var(--brand-blue); box-shadow: inset 0 0 0 2px var(--brand-blue); }
.site-content .accordion-body { padding: 1.25rem; }
.site-content .table { color: var(--brand-navy); border-color: var(--brand-line); }
.site-content .table-light { --bs-table-bg: #eaf3f9; --bs-table-color: #18344b; }
.site-content .table > :not(caption) > * > * { padding: .85rem 1rem; }
.site-content .page-link { color: var(--brand-link); border-color: var(--brand-line); }
.site-content .page-item.active .page-link { background: var(--brand-link); border-color: var(--brand-link); color: #fff; }
.site-content .breadcrumb { font-size: .875rem; line-height: 1.8; }
.site-content .article-content { font-size: 1.0625rem; line-height: 2; }
.site-content .article-content :is(h2, h3) { margin-top: 2rem; }
.site-content .feature-icon { background: var(--brand-link); box-shadow: 0 4px 15px #2580be20; }
.site-content .tmr-coming {
    --tmr-navy: #18344b;
    --tmr-blue: #2580be;
    --tmr-mint: #edb344;
    background: radial-gradient(ellipse at 85% 15%, #2580be33, transparent 60%), #102c43;
}

.site-theme > footer.bg-dark { background: #102c43 !important; color: #c3d6e4 !important; border-top: 3px solid var(--brand-gold); }
.site-theme > footer h5 { color: #f1f6fa; font-size: 1rem; line-height: 1.6; }
.site-theme > footer a.text-light { color: #c3d6e4 !important; }
.site-theme > footer a:hover { color: #f2cf86 !important; }
.site-theme > footer p { line-height: 1.9; }

@media (max-width: 991px) {
    .site-theme .navbar-collapse { max-height: calc(100svh - 78px); overflow-y: auto; }
    .site-theme .navbar .nav-link { padding: .75rem .25rem; }
    .site-theme .dropdown-menu { box-shadow: none; margin-bottom: .5rem; }
}
@media (max-width: 575px) {
    .site-theme .navbar-brand { max-width: calc(100% - 70px); }
    .site-theme .navbar-brand img { max-width: 100%; height: auto !important; max-height: 50px; object-fit: contain; }
    .site-content > section > .container { padding-inline: 1.25rem; }
    .site-content .lead { font-size: 1rem; }
    .site-content .card-body { padding: 1.25rem; }
    .site-content .breadcrumb { overflow-wrap: anywhere; }
    .site-content .btn { white-space: normal; }
}
@media (prefers-reduced-motion: reduce) {
    .site-theme *, .site-theme *::before, .site-theme *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}
