/* Shared public-site palette: forest, ivory, and gold. Loaded after page styles. */
:root {
    --public-forest-950: #042f27;
    --public-forest-900: #073f34;
    --public-forest-800: #0b5947;
    --public-forest-700: #0e6b50;
    --public-gold: #f5a521;
    --public-gold-deep: #d66f14;
    --public-gold-soft: #ffe3a2;
    --public-amber: #ef861d;
    --public-amber-soft: #fff1cc;
    --public-ink: #1b3028;
    --public-muted: #65756b;
    --public-line: #e5decd;
    --public-canvas: #f8f5ed;
    --public-surface: #fffdf8;
    --public-green-soft: #edf4ee;
    --public-shadow: 0 18px 45px rgba(4, 47, 39, 0.1);
    --bs-success: #0e6b50;
    --bs-success-rgb: 14, 107, 80;
}

body {
    color: var(--public-ink);
    background: var(--public-canvas);
}

a {
    color: var(--public-forest-700);
}

a:hover {
    color: var(--public-gold-deep);
}

.btn-success {
    border-color: var(--public-forest-700);
    background-color: var(--public-forest-700);
}

.btn-success:hover,
.btn-success:focus-visible {
    border-color: var(--public-forest-900);
    background-color: var(--public-forest-900);
}

.btn-outline-success {
    --bs-btn-color: var(--public-forest-700);
    --bs-btn-border-color: var(--public-forest-700);
    --bs-btn-hover-color: var(--public-surface);
    --bs-btn-hover-bg: var(--public-forest-700);
    --bs-btn-hover-border-color: var(--public-forest-700);
    --bs-btn-focus-shadow-rgb: 14, 107, 80;
    --bs-btn-active-color: var(--public-surface);
    --bs-btn-active-bg: var(--public-forest-900);
    --bs-btn-active-border-color: var(--public-forest-900);
}

.btn-gold {
    border-color: var(--public-gold);
    background-color: var(--public-gold);
}

.btn-gold:hover,
.btn-gold:focus-visible {
    border-color: var(--public-gold-deep);
    background-color: var(--public-gold-deep);
}

.motto-card {
    border-color: var(--public-gold);
    background-color: var(--public-surface);
}

.motto-content,
.motto-text i {
    color: var(--public-forest-700);
}

.text-success.d-flex {
    flex-wrap: nowrap;
}

.hover-card {
    transition: transform 0.3s ease;
}

.hover-card:hover {
    transform: translateY(-5px);
}

.content-wrapper {
    line-height: 1.8;
    background: var(--public-surface) !important;
}

.content-wrapper img {
    max-width: 100%;
    height: auto;
    margin: 1rem 0;
}

.content-wrapper table {
    width: 100%;
    margin-bottom: 1rem;
    border-collapse: collapse;
}

.content-wrapper table,
.content-wrapper th,
.content-wrapper td {
    border: 1px solid var(--public-line);
}

.content-wrapper th,
.content-wrapper td {
    padding: 0.75rem;
}

.social-share .btn {
    display: inline-flex;
    width: 36px;
    height: 36px;
    align-items: center;
    justify-content: center;
    padding: 0;
}

.site-header,
.site-header-drawer {
    --site-header-green-950: var(--public-forest-950);
    --site-header-green-900: var(--public-forest-900);
    --site-header-green-800: var(--public-forest-800);
    --site-header-green-700: var(--public-forest-700);
    --site-header-gold: var(--public-gold);
    --site-header-ink: var(--public-ink);
    --site-header-muted: var(--public-muted);
    --site-header-line: var(--public-line);
    --site-header-surface: var(--public-surface);
}

.site-header-contact-link i {
    color: var(--public-gold-soft);
}

.site-footer {
    --site-footer-green-950: var(--public-forest-950);
    --site-footer-green-900: var(--public-forest-900);
    --site-footer-green-800: var(--public-forest-800);
    --site-footer-green-700: var(--public-forest-700);
    --site-footer-gold: var(--public-gold);
    background:
        radial-gradient(circle at 84% 16%, rgba(245, 165, 33, 0.22), transparent 24rem),
        linear-gradient(135deg, var(--public-forest-950), var(--public-forest-900));
}

.agenda-index {
    --agenda-index-green-950: var(--public-forest-950);
    --agenda-index-green-900: var(--public-forest-900);
    --agenda-index-green-800: var(--public-forest-800);
    --agenda-index-green-700: var(--public-forest-700);
    --agenda-index-gold: var(--public-gold);
    --agenda-index-ink: var(--public-ink);
    --agenda-index-muted: var(--public-muted);
    --agenda-index-line: var(--public-line);
    --agenda-index-canvas: var(--public-canvas);
    --agenda-index-surface: var(--public-surface);
}

.agenda-detail {
    --agenda-detail-green-950: var(--public-forest-950);
    --agenda-detail-green-900: var(--public-forest-900);
    --agenda-detail-green-800: var(--public-forest-800);
    --agenda-detail-green-700: var(--public-forest-700);
    --agenda-detail-green-600: var(--public-forest-700);
    --agenda-detail-gold: var(--public-gold);
    --agenda-detail-ink: var(--public-ink);
    --agenda-detail-muted: var(--public-muted);
    --agenda-detail-line: var(--public-line);
    --agenda-detail-canvas: var(--public-canvas);
    --agenda-detail-surface: var(--public-surface);
}

.announcement-index {
    --announcement-index-green-950: var(--public-forest-950);
    --announcement-index-green-900: var(--public-forest-900);
    --announcement-index-green-800: var(--public-forest-800);
    --announcement-index-green-700: var(--public-forest-700);
    --announcement-index-gold: var(--public-gold);
    --announcement-index-ink: var(--public-ink);
    --announcement-index-muted: var(--public-muted);
    --announcement-index-line: var(--public-line);
    --announcement-index-canvas: var(--public-canvas);
    --announcement-index-surface: var(--public-surface);
}

.announcement-detail {
    --announcement-detail-green-950: var(--public-forest-950);
    --announcement-detail-green-900: var(--public-forest-900);
    --announcement-detail-green-800: var(--public-forest-800);
    --announcement-detail-green-700: var(--public-forest-700);
    --announcement-detail-gold: var(--public-gold);
    --announcement-detail-ink: var(--public-ink);
    --announcement-detail-muted: var(--public-muted);
    --announcement-detail-line: var(--public-line);
    --announcement-detail-canvas: var(--public-canvas);
    --announcement-detail-surface: var(--public-surface);
}

.campaign-shell,
.campaign-hero,
.campaign-detail-hero,
.campaign-section,
.campaign-detail-section,
.campaign-receipt-section {
    --campaign-ink: var(--public-ink);
    --campaign-muted: var(--public-muted);
    --campaign-green: var(--public-forest-700);
    --campaign-green-dark: var(--public-forest-900);
    --campaign-mint: var(--public-green-soft);
    --campaign-sand: var(--public-canvas);
    --campaign-line: var(--public-line);
    --campaign-shadow: var(--public-shadow);
}

:root {
    --campaign-ink: var(--public-ink);
    --campaign-muted: var(--public-muted);
    --campaign-green: var(--public-forest-700);
    --campaign-green-dark: var(--public-forest-900);
    --campaign-mint: var(--public-green-soft);
    --campaign-sand: var(--public-canvas);
    --campaign-line: var(--public-line);
    --campaign-shadow: var(--public-shadow);
}

.contact-page {
    --contact-green-950: var(--public-forest-950);
    --contact-green-900: var(--public-forest-900);
    --contact-green-800: var(--public-forest-800);
    --contact-green-700: var(--public-forest-700);
    --contact-gold: var(--public-gold);
    --contact-ink: var(--public-ink);
    --contact-muted: var(--public-muted);
    --contact-line: var(--public-line);
    --contact-canvas: var(--public-canvas);
    --contact-surface: var(--public-surface);
}

.gallery-index {
    --gallery-green-950: var(--public-forest-950);
    --gallery-green-900: var(--public-forest-900);
    --gallery-green-800: var(--public-forest-800);
    --gallery-green-700: var(--public-forest-700);
    --gallery-gold: var(--public-gold);
    --gallery-ink: var(--public-ink);
    --gallery-muted: var(--public-muted);
    --gallery-line: var(--public-line);
    --gallery-canvas: var(--public-canvas);
    --gallery-surface: var(--public-surface);
}

.leaders-page {
    --leaders-green-950: var(--public-forest-950);
    --leaders-green-900: var(--public-forest-900);
    --leaders-green-800: var(--public-forest-800);
    --leaders-green-700: var(--public-forest-700);
    --leaders-gold: var(--public-gold);
    --leaders-ink: var(--public-ink);
    --leaders-muted: var(--public-muted);
    --leaders-line: var(--public-line);
    --leaders-canvas: var(--public-canvas);
    --leaders-surface: var(--public-surface);
}

.news-index,
.news-detail {
    --news-green-950: var(--public-forest-950);
    --news-green-900: var(--public-forest-900);
    --news-green-800: var(--public-forest-800);
    --news-green-700: var(--public-forest-700);
    --news-green-600: var(--public-forest-700);
    --news-gold: var(--public-gold);
    --news-gold-soft: var(--public-gold-soft);
    --news-ink: var(--public-ink);
    --news-muted: var(--public-muted);
    --news-line: var(--public-line);
    --news-canvas: var(--public-canvas);
    --news-surface: var(--public-surface);
    --news-shadow: var(--public-shadow);
}

.profile-overview,
.profile-vision-mission,
.profile-history {
    --profile-green-950: var(--public-forest-950);
    --profile-green-900: var(--public-forest-900);
    --profile-green-800: var(--public-forest-800);
    --profile-green-700: var(--public-forest-700);
    --profile-green-100: var(--public-green-soft);
    --profile-green-50: #f5f7ef;
    --profile-gold: var(--public-gold);
    --profile-ink: var(--public-ink);
    --profile-muted: var(--public-muted);
    --profile-line: var(--public-line);
    --profile-surface: var(--public-surface);
    --profile-canvas: var(--public-canvas);
}

.program-index {
    --program-green-950: var(--public-forest-950);
    --program-green-900: var(--public-forest-900);
    --program-green-800: var(--public-forest-800);
    --program-green-700: var(--public-forest-700);
    --program-gold: var(--public-gold);
    --program-ink: var(--public-ink);
    --program-muted: var(--public-muted);
    --program-line: var(--public-line);
    --program-canvas: var(--public-canvas);
    --program-surface: var(--public-surface);
}

.video-index {
    --video-green-950: var(--public-forest-950);
    --video-green-900: var(--public-forest-900);
    --video-green-800: var(--public-forest-800);
    --video-green-700: var(--public-forest-700);
    --video-gold: var(--public-gold);
    --video-ink: var(--public-ink);
    --video-muted: var(--public-muted);
    --video-line: var(--public-line);
    --video-canvas: var(--public-canvas);
    --video-surface: var(--public-surface);
}

.video-detail {
    --video-detail-green-950: var(--public-forest-950);
    --video-detail-green-900: var(--public-forest-900);
    --video-detail-green-800: var(--public-forest-800);
    --video-detail-gold: var(--public-gold);
    --video-detail-ink: var(--public-ink);
    --video-detail-muted: var(--public-muted);
    --video-detail-line: var(--public-line);
    --video-detail-canvas: var(--public-canvas);
    --video-detail-surface: var(--public-surface);
}

/* The sections below the hero use the same warm forest-and-amber composition. */
.home-next-values,
.home-next-gallery,
.home-next-partners {
    background:
        radial-gradient(circle at 92% 8%, rgba(245, 165, 33, 0.11), transparent 23rem),
        var(--home-surface);
}

.home-next-programs,
.home-next-journal {
    border-block: 1px solid rgba(245, 165, 33, 0.2);
    background:
        radial-gradient(circle at 7% 0%, rgba(245, 165, 33, 0.13), transparent 22rem),
        var(--home-canvas);
}

.home-next .home-next-eyebrow:not(.home-next-eyebrow-light),
.home-next .home-next-inline-link,
.home-next .home-next-item-meta {
    color: var(--public-gold);
}

.home-next .home-next-section-heading h2::after,
.home-next .home-next-partners h2::after {
    display: block;
    width: 48px;
    height: 3px;
    margin-top: 18px;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--public-gold), var(--public-amber));
    content: "";
}

.home-next .home-next-value-icon {
    border-color: rgba(245, 165, 33, 0.5);
    color: var(--home-forest);
    background: var(--public-amber-soft);
}

.home-next .home-next-program-card,
.home-next .home-next-news-feature,
.home-next .home-campaign-compact {
    border-color: rgba(7, 63, 52, 0.14);
    background: var(--home-surface);
}

.home-next .home-next-program-card:hover,
.home-next .home-next-news-feature:hover,
.home-next .home-campaign-compact:hover {
    border-color: rgba(245, 165, 33, 0.78);
    box-shadow: 0 18px 34px rgba(4, 47, 39, 0.13);
}

.home-next .home-next-program-side-control button:not(:disabled):hover,
.home-next .home-next-partner-controls button:not(:disabled):hover {
    border-color: var(--public-gold);
    color: var(--home-forest-deep);
    background: var(--public-gold);
}

.home-connect {
    background:
        radial-gradient(circle at 82% 20%, rgba(245, 165, 33, 0.28), transparent 22rem),
        linear-gradient(125deg, var(--home-forest-deep), var(--home-forest));
}

.home-connect .home-next-button-light {
    border-color: var(--public-gold);
    color: var(--home-forest-deep);
    background: var(--public-gold);
}

.home-connect .home-next-button-light:hover {
    border-color: var(--public-amber);
    color: #ffffff;
    background: var(--public-amber);
}

/* Public page hierarchy: forest introduces the page, amber carries the action. */
:is(
    .agenda-index,
    .agenda-detail,
    .announcement-index,
    .announcement-detail,
    .contact-page,
    .gallery-index,
    .leaders-page,
    .news-index,
    .news-detail,
    .profile-overview,
    .profile-vision-mission,
    .profile-history,
    .program-index,
    .video-index,
    .video-detail
) [class*="eyebrow"] {
    color: var(--public-gold);
}

:is(
    .agenda-index-hero,
    .agenda-detail-hero,
    .announcement-index-hero,
    .announcement-detail-hero,
    .contact-page-hero,
    .gallery-index-hero,
    .leaders-hero,
    .news-index-hero,
    .news-detail-hero,
    .profile-page-hero,
    .program-index-hero,
    .video-index-hero,
    .video-detail-hero,
    .campaign-hero,
    .campaign-detail-hero
) {
    border-bottom: 3px solid rgba(245, 165, 33, 0.72);
    background:
        radial-gradient(circle at 88% 14%, rgba(245, 165, 33, 0.28), transparent 24rem),
        radial-gradient(circle at 8% 100%, rgba(255, 227, 162, 0.12), transparent 28rem),
        linear-gradient(125deg, var(--public-forest-950), var(--public-forest-800));
}

.program-index-hero-scrim {
    background:
        linear-gradient(90deg, rgba(4, 47, 39, 0.96) 0%, rgba(7, 63, 52, 0.9) 54%, rgba(11, 89, 71, 0.62) 100%);
}

.program-index-card-media--placeholder,
.program-index-card-media--placeholder::before {
    color: #ffffff;
    background: linear-gradient(135deg, var(--public-forest-900), var(--public-forest-700));
}

.program-index-cta,
.profile-page-cta,
.news-detail-cta {
    border-color: rgba(245, 165, 33, 0.62);
    background:
        radial-gradient(circle at 90% 16%, rgba(245, 165, 33, 0.28), transparent 25rem),
        linear-gradient(125deg, var(--public-forest-950), var(--public-forest-800));
}

.campaign-hero,
.campaign-detail-hero {
    background:
        radial-gradient(circle at 82% 12%, rgba(245, 165, 33, 0.34), transparent 26rem),
        linear-gradient(135deg, var(--public-forest-900), var(--public-forest-700));
}

.campaign-card-media,
.campaign-card-placeholder,
.campaign-detail-placeholder {
    background: linear-gradient(135deg, var(--public-forest-900), var(--public-forest-700));
}

.campaign-badge {
    color: var(--public-forest-950);
    background: var(--public-gold);
}

.campaign-progress,
.campaign-progress::-webkit-progress-bar {
    background: #e8dfcc;
}

.campaign-progress::-webkit-progress-value,
.campaign-progress::-moz-progress-bar {
    background: linear-gradient(90deg, var(--public-gold), var(--public-amber));
}

.campaign-action-link,
.campaign-card-status.is-closed i {
    color: var(--public-gold-deep);
}

:is(
    .program-index-cta > a,
    .program-index-empty-state > a,
    .profile-button--primary,
    .news-detail-back-button,
    .news-detail-cta > a,
    .contact-page-submit,
    .campaign-submit-button
) {
    border-color: var(--public-gold);
    color: var(--public-forest-950);
    background: linear-gradient(135deg, var(--public-gold), var(--public-amber));
    box-shadow: 0 10px 22px rgba(214, 111, 20, 0.22);
}

:is(
    .program-index-cta > a,
    .program-index-empty-state > a,
    .profile-button--primary,
    .news-detail-back-button,
    .news-detail-cta > a,
    .contact-page-submit,
    .campaign-submit-button
):hover,
:is(
    .program-index-cta > a,
    .program-index-empty-state > a,
    .profile-button--primary,
    .news-detail-back-button,
    .news-detail-cta > a,
    .contact-page-submit,
    .campaign-submit-button
):focus-visible {
    border-color: var(--public-amber);
    color: #ffffff;
    background: var(--public-amber);
    box-shadow: 0 13px 28px rgba(214, 111, 20, 0.3);
}

.contact-page-visit {
    border-color: rgba(245, 165, 33, 0.45);
    background:
        linear-gradient(135deg, rgba(255, 253, 248, 0.98), rgba(255, 241, 204, 0.88)),
        var(--public-surface);
}

.contact-page-info-icon,
.program-index-development-icon,
.program-index-empty-state > span {
    color: var(--public-forest-900);
    background: var(--public-amber-soft);
}

:is(
    .agenda-index-pagination,
    .announcement-index-pagination,
    .gallery-index-pagination,
    .news-index-pagination,
    .video-index-pagination
) .page-item.active .page-link,
:is(
    .gallery-index-filter-options,
    .news-index-filter-options
) a.is-active {
    border-color: var(--public-gold);
    color: var(--public-forest-950);
    background: var(--public-gold);
}

:is(
    .agenda-index-pagination,
    .announcement-index-pagination,
    .gallery-index-pagination,
    .news-index-pagination,
    .video-index-pagination
) .page-link:hover,
:is(
    .gallery-index-filter-options,
    .news-index-filter-options
) a:hover {
    border-color: var(--public-amber);
    color: #ffffff;
    background: var(--public-amber);
}

/*
 * Contrast contract for the public dark panels. These surfaces are themed
 * here, after their page styles load, so foregrounds must not inherit the
 * page's default dark ink.
 */
.profile-page-cta {
    color: #ffffff;
}

.profile-page-cta h2 {
    color: #ffffff;
}

.profile-page-cta > div > p:last-of-type {
    color: rgba(255, 255, 255, 0.84);
}

.profile-page-cta .profile-section-eyebrow {
    color: var(--public-gold);
}

.profile-page-cta .profile-button--secondary {
    border-color: rgba(255, 255, 255, 0.64);
    color: var(--public-forest-900);
    background: var(--public-surface);
}

.profile-page-cta .profile-button--secondary:hover,
.profile-page-cta .profile-button--secondary:focus-visible {
    border-color: var(--public-gold);
    color: var(--public-forest-950);
    background: var(--public-gold-soft);
}
