/* Red is the default in the layout. Accent and surface tokens cover every page. */
:root {
    color-scheme: light;
    --button-bg: var(--forest);
    --button-hover: var(--forest-dark);
    --button-text: #fff;
    --strong-surface: var(--forest);
    --on-strong: #f8f5ee;
    --on-strong-muted: #c4cdbd;
    --header-bg: #f8f5eef7;
    --soft-surface: #f0eee4;
    --field-bg: #fffefb;
    --active-accent: #8a662c;
    --accent-soft: #697752;
    --illustration-filter: none;
    --art-surface: #e1e5d7;
    --art-lines: #bdc8ae77;
}
:root[data-theme="blue"] {
    --forest: #244c78; --forest-dark: #173858;
    --cream: #f4f7fb; --paper: #fcfdff; --sage: #e6edf6;
    --gold: #796326; --ink: #263c55; --muted: #5c6d80; --line: #cbd6e3;
    --header-bg: #f4f7fbf7; --soft-surface: #eaf0f7; --field-bg: #fcfdff;
    --active-accent: #245d99; --accent-soft: #5478a0;
    --on-strong-muted: #d2dfed; --art-surface: #dde7f3; --art-lines: #9bb3d077;
    --illustration-filter: hue-rotate(125deg);
}
:root[data-theme="red"] {
    --forest: #803c44; --forest-dark: #622932;
    --cream: #fcf6f3; --paper: #fffdfb; --sage: #f2e7e4;
    --gold: #85602e; --ink: #503238; --muted: #796266; --line: #dfcdca;
    --header-bg: #fcf6f3f7; --soft-surface: #f4eae5; --field-bg: #fffdfb;
    --active-accent: #9a3d48; --accent-soft: #a56369;
    --on-strong-muted: #efdadb; --art-surface: #efddda; --art-lines: #ceaaa777;
    --illustration-filter: hue-rotate(285deg);
}
:root[data-theme="dark"] {
    color-scheme: dark;
    --forest: #c6dfd0; --forest-dark: #e4f1e9;
    --cream: #14211d; --paper: #1b2c25; --sage: #21352d;
    --gold: #dac18e; --ink: #e3ece6; --muted: #b0c2b7; --line: #41574b;
    --header-bg: #14211df7; --soft-surface: #192a23; --field-bg: #17271f;
    --active-accent: #e5cd9e; --accent-soft: #aac7b0;
    --button-bg: #b9d8c4; --button-hover: #d3e8da; --button-text: #15291e;
    --strong-surface: #0e1a15; --on-strong: #e3ece6; --on-strong-muted: #b0c2b7;
    --art-surface: #263c30; --art-lines: #78917d44;
    --illustration-filter: brightness(.75) saturate(.8);
    --bs-secondary-color: var(--muted);
}
.site-header { background: var(--header-bg); border-color: var(--line); }
.site-footer { background: var(--cream); }
.navbar .nav-link:hover, .navbar .nav-link.active { color: var(--active-accent); }
.btn-forest { background: var(--button-bg); border-color: var(--button-bg); color: var(--button-text); }
.btn-forest:hover, .btn-forest:active { background: var(--button-hover)!important; border-color: var(--button-hover)!important; color: var(--button-text)!important; }
.btn-outline-forest:hover, .round-arrow:hover, .dropdown-item:active { background: var(--button-bg); color: var(--button-text); }
.btn-cream { background: var(--on-strong); color: var(--strong-surface); border-color: var(--on-strong); }
.btn-cream:hover { background: var(--on-strong-muted); color: var(--strong-surface); }
.skip-link { background: var(--button-bg); color: var(--button-text); }
.hero { background: radial-gradient(ellipse at 80% 40%, var(--sage), transparent 52%); }
.hero h1 em, .hero-bottom { color: var(--accent-soft); }
.hero-art { filter: var(--illustration-filter); }
.brand-symbol, .text-link, .round-arrow, .event-card, .news-section, .visit-art, .visit-name,
.form-control, .form-select { border-color: var(--line); }
.date-tile, .featured { background: var(--sage); color: var(--forest); }
.post-placeholder { background: radial-gradient(circle at 50% 90%, var(--accent-soft) 0 24%, transparent 24.5%), linear-gradient(135deg, var(--soft-surface), var(--sage)); color: var(--forest); }
.empty-state { background: var(--paper); border-color: var(--line); }
.empty-symbol { color: var(--accent-soft); }
.location-section { background: var(--soft-surface); }
.visit-art { background: var(--art-surface); }
.visit-lines { background: repeating-radial-gradient(ellipse at 80% 30%, transparent 0 38px, var(--art-lines) 39px 40px, transparent 41px 76px); }
.visit-art-caption .eyebrow { color: var(--accent-soft); }
.visit-pin { background: var(--button-bg); color: var(--button-text); box-shadow: 7px 10px 0 var(--art-lines); }
.join-section { background: var(--strong-surface); color: var(--on-strong); }
.join-inner h2 { color: var(--on-strong); }
.join-inner p { color: var(--on-strong-muted); }
.join-inner .eyebrow { color: #e2cfa7; }
.form-control, .form-select { background-color: var(--field-bg); color: var(--ink); }
.form-control::placeholder { color: var(--muted); opacity: 1; }
.article-body a { color: var(--forest); }
.about-emblem { color: var(--gold); border-color: var(--line); }
.dropdown-menu { --bs-dropdown-link-color: var(--ink); --bs-dropdown-link-hover-color: var(--forest); --bs-dropdown-link-hover-bg: var(--sage); }
.header-actions { gap: 14px; }
.theme-control { display: grid; gap: 2px; min-width: 88px; }
.theme-control label { font-size: .58rem; font-weight: 600; letter-spacing: .06em; color: var(--muted); margin: 0; }
.theme-control .form-select { min-height: 34px; padding: 4px 26px 4px 8px; font-size: .72rem; width: 100%; max-width: 110px; background-position: right 7px center; background-size: 12px 10px; }
@media (min-width: 1200px) { .navbar .brand { margin-right: 16px; max-width: 215px; } .navbar .nav-link { font-size: .75rem; } }
@media (max-width: 1199.98px) { .header-actions { flex-wrap: wrap; gap: 16px; } .theme-control { margin-right: auto; } }
