:root { --navy:#102f4f; --blue:#164f7a; --gold:#f4b942; --cream:#f7f3e9; --ink:#17212b; --muted:#5c6670; --white:#fff; --line:#d9dee3; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--white); font:17px/1.65 system-ui,-apple-system,"Segoe UI",sans-serif; }
a { color:#075985; text-underline-offset:.2em; }
a:hover { text-decoration-thickness:2px; }
img { max-width:100%; height:auto; }
.container { width:min(1120px,calc(100% - 2rem)); margin-inline:auto; }
.narrow { max-width:760px; }
.skip-link { position:absolute; left:-9999px; top:1rem; background:var(--white); padding:.75rem 1rem; z-index:99; }
.skip-link:focus { left:1rem; }
.site-header { background:var(--navy); color:var(--white); border-bottom:4px solid var(--gold); }
.header-inner { display:flex; align-items:center; justify-content:space-between; gap:2rem; min-height:84px; }
.brand { color:var(--white); font-family:Georgia,serif; font-size:1.35rem; font-weight:700; text-decoration:none; }
.nav-list { display:flex; align-items:center; gap:1.15rem; flex-wrap:wrap; list-style:none; margin:0; padding:0; }
.nav-list a { color:var(--white); }
.button { display:inline-block; border:2px solid var(--gold); border-radius:3px; padding:.72rem 1.1rem; background:var(--gold); color:#17212b; font:inherit; font-weight:750; text-decoration:none; cursor:pointer; }
.button:hover { background:#ffd06f; }
.button-secondary { background:transparent; color:var(--white); }
.button-small { padding:.4rem .75rem; }
.hero { color:var(--white); background:linear-gradient(120deg,rgba(16,47,79,.97),rgba(22,79,122,.88)),linear-gradient(45deg,#0c263e,#25658f); }
.hero-inner { padding-block:clamp(4rem,10vw,8rem); max-width:900px; }
h1,h2,h3 { font-family:Georgia,"Times New Roman",serif; line-height:1.12; }
h1 { margin:.25rem 0 1rem; font-size:clamp(2.6rem,7vw,5.5rem); }
h2 { font-size:clamp(1.8rem,4vw,2.75rem); }
h3 { font-size:1.35rem; }
.lead { max-width:720px; font-size:1.25rem; }
.eyebrow,.meta { color:#8b5c00; font-size:.85rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.hero .eyebrow,.dark .eyebrow { color:var(--gold); }
.actions { display:flex; flex-wrap:wrap; gap:.8rem; margin-top:1.75rem; }
.page-header { background:var(--cream); padding-block:3.5rem; border-bottom:1px solid #eadfca; }
.page-header h1 { font-size:clamp(2.5rem,6vw,4.5rem); }
.content-section { padding-block:4rem; }
.tint { background:#f3f6f8; }
.dark { background:var(--navy); color:var(--white); }
.dark a { color:#ffd269; }
.section-heading { display:flex; align-items:end; justify-content:space-between; gap:1rem; }
.section-heading h2,.section-heading p { margin-block:.2rem; }
.card-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr)); gap:1.25rem; }
.card { padding:1.5rem; border:1px solid var(--line); border-top:4px solid var(--gold); background:var(--white); box-shadow:0 8px 24px rgba(16,47,79,.07); }
.card h2,.card h3 { margin-top:.25rem; }
.card-image,.feature-image { width:100%; max-height:420px; object-fit:cover; }
.form-card { padding:clamp(1.25rem,4vw,2.5rem); border:1px solid var(--line); background:#f8fafb; }
.field { margin-bottom:1.1rem; }
.field label { display:block; margin-bottom:.3rem; font-weight:700; }
.field input:not([type=checkbox]),.field textarea,.field select,.filter-bar input,.filter-bar select { width:100%; padding:.7rem; border:1px solid #89939d; border-radius:3px; font:inherit; background:white; }
.field input[type=checkbox] { width:1.1rem; height:1.1rem; }
.hidden-field { display:none; }
.errorlist { color:#a11; }
.filter-bar { display:grid; grid-template-columns:auto minmax(140px,1fr) auto minmax(140px,1fr) auto; align-items:center; gap:.65rem; max-width:850px; }
.messages { padding-top:1rem; }
.message { padding:1rem; border-left:5px solid #27834a; background:#e9f8ee; }
.member-list { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:.75rem; }
.member-list > div { display:flex; justify-content:space-between; gap:1rem; padding:1rem; border-bottom:1px solid var(--line); }
.member-list span,.fine-print { color:var(--muted); }
.progress { height:.8rem; overflow:hidden; background:#dbe2e7; border-radius:1rem; }
.progress span { display:block; height:100%; background:var(--gold); }
.amount { color:var(--blue); font-size:1.4rem; font-weight:800; }
.metric-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:1rem; }
.metric { padding:1.5rem; border-left:5px solid var(--gold); background:var(--cream); }
.metric strong { display:block; color:var(--navy); font:700 clamp(2.4rem,6vw,4rem)/1 Georgia,serif; }
.metric h2 { margin:.7rem 0 .25rem; font-size:1.25rem; }
.song { padding-block:2rem; border-bottom:1px solid var(--line); }
.song audio { width:100%; }
.lyrics { margin-block:1.5rem; padding:1.5rem; background:var(--cream); font-family:Georgia,serif; }
.gallery-grid { columns:3 260px; column-gap:1rem; }
.gallery-grid figure { break-inside:avoid; margin:0 0 1rem; border:1px solid var(--line); background:white; }
.gallery-grid figcaption { padding:1rem; }
.site-search label { display:block; margin-bottom:.5rem; font-weight:700; }
.site-search div { display:flex; gap:.5rem; }
.site-search input { min-width:0; flex:1; padding:.7rem; border:1px solid #89939d; font:inherit; }
.search-result { padding-block:1.25rem; border-bottom:1px solid var(--line); }
.search-result h2 { margin:.2rem 0; font-size:1.6rem; }
.compact-filter { max-width:580px; }
.dashboard-secondary { color:var(--navy); }
.dashboard-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:1.25rem; margin-top:2rem; }
.dashboard-grid section { padding:1.25rem; border:1px solid var(--line); }
.spaced-heading { margin-top:3.5rem; }
.site-footer { padding:3rem 0 1rem; background:#091d30; color:#dce8f1; }
.footer-grid { display:grid; grid-template-columns:2fr 1fr; gap:2rem; }
.footer-grid nav { display:grid; gap:.4rem; }
.site-footer a { color:white; }
.copyright { margin-top:2rem; text-align:center; font-size:.9rem; color:#aebdca; }
:focus-visible { outline:3px solid #ffbf3f; outline-offset:3px; }
@media (max-width:850px) { .header-inner { display:block; padding-block:1rem; } .nav-list { margin-top:1rem; } .filter-bar { grid-template-columns:1fr; } }
@media (max-width:600px) { body { font-size:16px; } .footer-grid { grid-template-columns:1fr; } .nav-list { gap:.75rem; } }
