:root {
    --green: #123f35;
    --green2: #1d5b4b;
    --cream: #f6f0e4;
    --gold: #d5a947;
    --gold-dark: #8a671d;
    --link-on-light: #0c5a46;
    --link-on-dark: #f0ca70;
    --ink: #24332d;
}

html, body { max-width: 100%; overflow-x: clip; }
body { font-family: system-ui, -apple-system, "Segoe UI", sans-serif; color: var(--ink); background: #fff; }
img, svg { max-width: 100%; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid var(--gold); outline-offset: 2px; }
.site-nav { background: var(--green); }
.nav-search-item { margin: .35rem; }
.nav-search { display: flex; overflow: hidden; border: 1px solid #ffffff66; border-radius: .45rem; }
.nav-mobile-search { display: none; }
.nav-search input { width: 190px; border: 0; background: #ffffff14; color: #fff; outline: 0; padding: .35rem .55rem; }
.nav-search input::placeholder { color: #dce7df; }
.nav-search button { border: 0; background: #ffffff1f; color: #fff; font-size: 1.5rem; line-height: 1; padding: 0 .72rem; }
.nav-auth-actions { display: flex; align-items: center; gap: .5rem; }
.site-logo { width: 160px; height: 54px; object-fit: contain; object-position: left center; flex: 0 0 auto; }
.site-nav .navbar-nav .nav-link { padding-right: .36rem; padding-left: .36rem; font-size: .92rem; }
.site-nav .nav-auth-actions .btn { font-size: .8rem; }
.footer-logo { display: block; width: min(220px, 100%); height: auto; max-height: 76px; object-fit: contain; object-position: left center; }
.logo-text { color: #fff; font-size: 1rem; letter-spacing: .04em; }
.logo-text span { color: #e7c67b; font-size: .7em; letter-spacing: .12em; }
.btn-gold { background: var(--gold); border-color: var(--gold); color: #18362d; }
.btn-gold:hover { background: #e2bd61; }
.btn:not(.btn-close) { background: var(--gold); border-color: var(--gold); color: #18362d; font-weight: 600; }
.btn:not(.btn-close):hover, .btn:not(.btn-close):focus { background: #e2bd61; border-color: #e2bd61; color: #18362d; }
.btn:not(.btn-close):focus-visible { box-shadow: 0 0 0 .25rem rgba(213, 169, 71, .35); }
.btn:not(.btn-close):disabled, .btn:not(.btn-close).disabled { background: #dfc58d; border-color: #dfc58d; color: #5b543e; }
.btn[class*="btn-outline-"]:not(.btn-close) { background: transparent; border-color: var(--gold); color: #8a671d; }
.btn[class*="btn-outline-"]:not(.btn-close):hover, .btn[class*="btn-outline-"]:not(.btn-close):focus { background: var(--gold); border-color: var(--gold); color: #18362d; }
.btn[class*="btn-outline-"]:not(.btn-close):disabled, .btn[class*="btn-outline-"]:not(.btn-close).disabled { background: transparent; border-color: #dfc58d; color: #b49654; }
.breaking-ticker { overflow: hidden; border-bottom: 1px solid #dce4df; background: #f8faf9; }
.breaking-ticker .container { display: flex; align-items: center; min-height: 44px; gap: 1rem; }
.breaking-label { flex: 0 0 auto; background: #e32222; color: #fff; font-size: .76rem; font-weight: 800; padding: .35rem .65rem; text-transform: uppercase; }
.breaking-marquee { min-width: 0; flex: 1; overflow: hidden; }
.breaking-marquee-track { display: inline-flex; min-width: max-content; align-items: center; color: #4e5c56; font-size: .95rem; padding-left: 100%; text-decoration: none; white-space: nowrap; animation: announcement-marquee 24s linear infinite; }
.breaking-marquee-track span { color: var(--ink); font-weight: 700; }
.breaking-marquee:hover .breaking-marquee-track { animation-play-state: paused; }
.other-announcements-link { flex: 0 0 auto; color: var(--green); font-size: .78rem; font-weight: 700; text-decoration: none; white-space: nowrap; }
.other-announcements-link:hover { color: #d61d1d; text-decoration: underline; }
@keyframes announcement-marquee { from { transform: translateX(0); } to { transform: translateX(-100%); } }
.hero-carousel { color: #fff; }
.hero-slide { position: relative; min-height: 590px; background-position: center; background-size: cover; }
.hero-overlay { position: absolute; inset: 0; background: linear-gradient(100deg, rgba(9, 46, 38, .9), rgba(18, 63, 53, .58)); }
.hero-content { position: relative; z-index: 1; padding-top: 8rem; padding-bottom: 8rem; }
.hero-kicker { letter-spacing: .13em; font-size: .82rem; font-weight: 700; }
.hero-content h1, .section-title { font-family: Georgia, serif; }
.hero-content h1 { font-size: clamp(2.4rem, 5vw, 4.8rem); }
.community-jumbotron { overflow: hidden; border-radius: 1.25rem; background: linear-gradient(120deg, #103f35, #1d5b4b); color: #fff; padding: clamp(2rem, 5vw, 4.5rem); box-shadow: 0 16px 34px #17372c20; }
.community-jumbotron h2 { margin: .35rem 0 1rem; color: #fff; font: clamp(2rem, 4vw, 3.5rem)/1.12 Georgia, serif; }
.community-jumbotron .lead { max-width: 680px; color: #dcebe3; }
.jumbotron-kicker { color: #e7c67b; font-size: .8rem; font-weight: 700; letter-spacing: .14em; }
.jumbotron-participation { display: flex; align-items: flex-start; gap: 1rem; border: 1px solid #ffffff30; border-radius: 1rem; background: #ffffff12; padding: 1.5rem; }
.jumbotron-icon { display: grid; width: 42px; height: 42px; flex: 0 0 42px; place-items: center; border-radius: 50%; background: #e7c67b; color: var(--green); font-size: 1.25rem; }
.jumbotron-participation h3 { margin: 0 0 .5rem; color: #fff; font: 1.4rem Georgia, serif; }
.jumbotron-participation p { color: #dcebe3; }
.jumbotron-participation a { color: #e7c67b; font-weight: 700; text-decoration: none; }
.jumbotron-participation a:hover { color: #fff; text-decoration: underline; }
.section-title { color: var(--green); }
.soft-bg, .page-hero { background: var(--cream); }
.page-hero { padding: 4rem 0 3rem; }
.stat-card, .content-card { border: 0; box-shadow: 0 5px 20px #17372c12; }
.stat-card { border-radius: 1rem; box-shadow: 0 8px 24px #17372c14; }
.stat-card .number { font-size: 2rem; font-weight: 800; color: var(--green); }
.glance-heading { display: flex; align-items: center; justify-content: center; gap: 1.25rem; margin-bottom: 1.5rem; }
.glance-heading a { color: var(--green); font-size: .9rem; font-weight: 700; text-decoration: none; }
.glance-heading a:hover { color: var(--green2); text-decoration: underline; }
.content-card { height: 100%; }
.gallery-preview { position: relative; display: block; width: 100%; overflow: hidden; min-height: 180px; border: 0; border-radius: .75rem; background: var(--green); color: #fff; padding: 0; text-align: left; }
.gallery-preview img { width: 100%; height: 180px; object-fit: cover; transition: transform .3s ease; }
.gallery-preview span { position: absolute; inset: auto 0 0; padding: 2.25rem .75rem .7rem; background: linear-gradient(transparent, rgba(0, 0, 0, .82)); font-size: .82rem; }
.gallery-preview strong, .gallery-preview small { display: block; }
.gallery-preview small { color: #e7c67b; }
.gallery-preview:hover img { transform: scale(1.06); }
.gallery-page-hero { background: linear-gradient(110deg, #f6f0e4, #e5f0e8); }
.gallery-filter { display: flex; flex-wrap: wrap; gap: .6rem; }
.gallery-filter a { border: 1px solid #c7d9d0; border-radius: 99px; color: var(--green); padding: .45rem .9rem; text-decoration: none; transition: .2s ease; }
.gallery-filter a:hover, .gallery-filter a.active { background: var(--green); border-color: var(--green); color: #fff !important; }
.gallery-featured { border-radius: 1.2rem; box-shadow: 0 16px 38px #17372c22; overflow: hidden; }
.gallery-featured-image { position: relative; display: block; width: 100%; min-height: 470px; border: 0; background-color: var(--green); background-position: center; background-size: cover; padding: 0; text-align: left; }
.gallery-featured-overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(8, 40, 33, .8), rgba(8, 40, 33, .08) 70%); }
.gallery-featured-caption { position: absolute; left: clamp(1.5rem, 5vw, 4rem); bottom: clamp(1.5rem, 5vw, 3.5rem); display: grid; gap: .35rem; color: #fff; }
.gallery-featured-caption small, .gallery-card-overlay small { color: #e7c67b; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.gallery-featured-caption strong { font: clamp(1.7rem, 4vw, 3.4rem)/1.1 Georgia, serif; }
.gallery-featured-caption em { font-style: normal; opacity: .85; }
.gallery-nav-icon { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; background: #ffffffdf; color: var(--green); font-size: 1.5rem; }
.gallery-card { position: relative; display: block; width: 100%; min-height: 280px; overflow: hidden; border: 0; border-radius: 1rem; background: var(--green); padding: 0; text-align: left; }
.gallery-card img { width: 100%; height: 280px; object-fit: cover; transition: transform .4s ease; }
.gallery-card-overlay { position: absolute; inset: auto 0 0; display: grid; gap: .2rem; width: 100%; padding: 3.6rem 1rem 1rem; background: linear-gradient(transparent, rgba(0, 0, 0, .86)); color: #fff; }
.gallery-card-overlay em { overflow: hidden; color: #f0f0f0; font-size: .85rem; font-style: normal; text-overflow: ellipsis; white-space: nowrap; }
.gallery-card-overlay b { position: absolute; right: 1rem; bottom: 1rem; font-size: 1.4rem; }
.gallery-card:hover img, .gallery-card:focus-visible img { transform: scale(1.08); }
.gallery-card:hover .gallery-card-overlay small, .gallery-card:focus-visible .gallery-card-overlay small, .gallery-preview:hover small, .gallery-preview:focus-visible small { color: #fff; }
.gallery-card:focus-visible { outline: 3px solid var(--gold); outline-offset: 3px; }
.gallery-lightbox { background: #071b16; }
.gallery-lightbox .modal-header { position: absolute; z-index: 3; inset: 0 0 auto; padding: 1.25rem clamp(1.25rem, 5vw, 3rem); background: linear-gradient(#000a, transparent); }
.gallery-lightbox-image { display: grid; height: 100%; place-content: center; padding: 5rem clamp(1rem, 8vw, 7rem) 2rem; text-align: center; }
.gallery-lightbox-image img { max-width: 100%; max-height: calc(100vh - 11rem); object-fit: contain; }
.gallery-lightbox-image p { max-width: 800px; margin: .9rem auto 0; color: #fff; }
.biography-detail-image { display: block; width: min(100%, 760px); max-height: 560px; object-fit: cover; border-radius: 1rem; }
.share-buttons { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; margin: 1.5rem 0; font-size: .9rem; font-weight: 700; }
.share-buttons a { border-radius: .45rem; padding: .45rem .75rem; color: #fff !important; text-decoration: none; }
.share-facebook { background: #1877f2; }
.share-whatsapp { background: #168b45; }
.leadership-showcase { background: linear-gradient(125deg, #0c342b, #1c5a4a); }
.leadership-showcase h2 { font-family: Georgia, serif; }
.leadership-card { height: 100%; border: 1px solid #ffffff2e; border-radius: 1rem; background: #ffffff12; color: #fff; padding: 1.25rem .75rem; backdrop-filter: blur(5px); }
.leadership-card img, .leadership-avatar { display: block; width: 88px; height: 88px; margin: 0 auto .85rem; border: 3px solid #e7c67b; border-radius: 50%; object-fit: cover; }
.leadership-avatar { display: grid; place-items: center; background: #e7c67b; color: var(--green); font: 2rem Georgia, serif; }
.leadership-card small { color: #e7c67b; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.leadership-card h3 { margin: .4rem 0; font: 1.05rem Georgia, serif; }
.leadership-card p { margin: 0; color: #d6e6df; font-size: .8rem; line-height: 1.35; }
.leadership-profile-link { display: inline-block; margin-top: .8rem; color: #e7c67b; font-size: .85rem; font-weight: 700; text-decoration: none; }
.leadership-profile-link:hover { color: #fff; text-decoration: underline; }
.leader-profile-photo { width: min(100%, 360px); aspect-ratio: 1 / 1; margin-inline: auto; overflow: hidden; border-radius: 1rem; background: var(--cream); box-shadow: 0 12px 30px #17372c1c; }
.leader-profile-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.leader-profile-placeholder { display: grid; width: 100%; height: 100%; place-items: center; color: var(--green); font: clamp(3.5rem, 14vw, 5rem) Georgia, serif; }
.profile-image-trigger { display: block; width: 100%; height: 100%; padding: 0; border: 0; background: transparent; cursor: zoom-in; }
.profile-image-trigger:focus-visible { outline: 3px solid var(--gold); outline-offset: -3px; }
.leader-table-image-trigger { padding: 0; border: 0; border-radius: 50%; background: transparent; cursor: zoom-in; }
.leader-table-image-trigger:focus-visible { outline: 3px solid var(--gold); outline-offset: 2px; }
.profile-image-lightbox { border: 0; background: #092f26; color: #fff; }
.profile-image-lightbox .modal-body { display: grid; min-height: min(78vh, 760px); place-items: center; padding: 1rem; }
.profile-image-lightbox img { display: block; max-width: 100%; max-height: min(75vh, 720px); object-fit: contain; }
.leader-profile-content { color: #40534b; font-size: 1.05rem; line-height: 1.8; }
.leader-profile-meta { display: flex; flex-wrap: wrap; gap: 1rem 2.5rem; margin: 0 0 1.5rem; }
.leader-profile-meta dt { color: #6f7e77; font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.leader-profile-meta dd { margin: .2rem 0 0; color: var(--green); font: 1.2rem Georgia, serif; }
[data-census-profile] { overflow-wrap: anywhere; }
[data-census-profile] .row > * { min-width: 0; }
[data-census-profile] .leader-profile-photo { width: min(100%, 320px); }
[data-census-profile] .contact-card, [data-census-profile] .deceased-report-card { padding: clamp(1rem, 3vw, 1.5rem); border: 1px solid #dfe7e1; border-radius: .9rem; background: #fff; box-shadow: 0 7px 20px #17372c0d; }
[data-census-profile] .deceased-report-card { background: #faf7f0; }
[data-census-profile] .deceased-report-card textarea { resize: vertical; }
[data-census-profile] .profile-actions .btn { white-space: normal; }
.blog-page-hero { background: linear-gradient(110deg, #f6f0e4, #e7f0e6); }
.blog-card { overflow: hidden; border: 1px solid #e0e8e2; border-radius: 1rem; background: #fff; box-shadow: 0 8px 22px #17372c12; transition: transform .25s ease, box-shadow .25s ease; }
.blog-card:hover { box-shadow: 0 15px 34px #17372c24; transform: translateY(-4px); }
.blog-card-image { display: block; overflow: hidden; }
.blog-card-image img { width: 100%; height: 225px; object-fit: cover; transition: transform .35s ease; }
.blog-card:hover .blog-card-image img { transform: scale(1.06); }
.blog-card-body { display: flex; height: calc(100% - 225px); flex-direction: column; padding: 1.4rem; }
.blog-card-meta, .article-meta { display: flex; gap: .6rem; color: #64766d; font-size: .8rem; }
.blog-card-meta span, .article-meta span { color: var(--green); font-weight: 700; text-transform: uppercase; letter-spacing: .07em; }
.blog-card h2 { margin: .7rem 0; font: 1.4rem/1.25 Georgia, serif; }
.blog-card h2 a, .related-card h3 a { color: var(--ink); text-decoration: none; }
.blog-card h2 a:hover, .related-card h3 a:hover { color: var(--green2); }
.blog-card p { color: #607068; }
.blog-read-link { margin-top: auto; color: var(--green); font-weight: 700; text-decoration: none; }
.blog-read-link span { margin-left: .25rem; font-size: 1.2rem; }
.latest-news-stream { max-width: 820px; border-left: 1px solid #e2c57f; padding-left: 1.3rem; }
.latest-news-item { position: relative; margin: 0 0 1.25rem; }
.latest-news-item::before { position: absolute; top: .55rem; left: -1.65rem; width: .65rem; height: .65rem; border-radius: 50%; background: var(--gold); content: ''; }
.latest-news-item time { display: block; margin-bottom: .45rem; color: #d61d1d; font-size: .85rem; font-weight: 800; }
.latest-news-link { display: flex; align-items: center; gap: 1rem; min-height: 108px; border: 1px solid #e1e8e3; border-radius: .55rem; background: #fff; color: var(--ink); padding: .55rem; text-decoration: none; box-shadow: 0 5px 14px #17372c0b; transition: transform .2s ease, box-shadow .2s ease; }
.latest-news-link:hover { box-shadow: 0 10px 24px #17372c1e; color: var(--green); transform: translateX(4px); }
.latest-news-link img, .latest-news-placeholder { width: 82px; height: 82px; flex: 0 0 82px; border-radius: .35rem; object-fit: cover; }
.latest-news-placeholder { display: grid; place-items: center; background: var(--cream); color: var(--green); font: 2rem Georgia, serif; }
.latest-news-link span { display: grid; gap: .3rem; }
.latest-news-link small { color: var(--green); font-size: .72rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.latest-news-link strong { font: 1.15rem/1.25 Georgia, serif; }
.updates-sidecard { border-radius: 1rem; background: linear-gradient(145deg, #123f35, #1d5b4b); color: #fff; padding: clamp(1.5rem, 4vw, 2.25rem); box-shadow: 0 14px 30px #17372c22; }
.updates-sidecard > p { color: #e7c67b; letter-spacing: .1em; }
.updates-sidecard h3 { font: 1.8rem/1.15 Georgia, serif; }
.updates-sidecard > p:not(.text-uppercase) { color: #dcebe3; }
.updates-mini-stats { display: grid; grid-template-columns: 1fr 1fr; gap: .7rem; margin-top: 1.25rem; }
.updates-mini-stats div { border: 1px solid #ffffff2d; border-radius: .65rem; background: #ffffff10; padding: .75rem; }
.updates-mini-stats strong, .updates-mini-stats span { display: block; }
.updates-mini-stats strong { color: #e7c67b; font-size: 1.3rem; }
.updates-mini-stats span { color: #dcebe3; font-size: .75rem; }
.updates-secondary-link { display: block; margin-top: 1rem; color: #e7c67b; font-size: .82rem; text-align: center; text-decoration: none; }
.updates-secondary-link:hover { color: #fff; text-decoration: underline; }
.search-page-hero { background: linear-gradient(110deg, #f6f0e4, #e5f0e8); }
.site-search-form { display: flex; max-width: 680px; gap: .5rem; margin-top: 1.5rem; }
.site-search-form input { min-width: 0; flex: 1; border: 1px solid #bfd3c7; border-radius: .45rem; padding: .75rem 1rem; }
.search-result-card { display: block; height: 100%; border: 1px solid #dce8df; border-radius: .8rem; background: #fff; color: var(--ink); padding: 1.25rem; text-decoration: none; transition: .2s ease; }
.search-result-card:hover { border-color: var(--green); box-shadow: 0 10px 25px #17372c19; color: var(--green); transform: translateY(-2px); }
.search-result-card small { color: var(--green); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.search-result-card h2 { margin: .45rem 0; font: 1.25rem Georgia, serif; }
.search-result-card p { color: #65756c; }
.search-result-card span { font-weight: 700; }
.article-hero { padding: 5.5rem 0 4rem; background: linear-gradient(125deg, #0c342b, #1d5b4b); color: #fff; }
.article-hero h1 { max-width: 920px; margin: .8rem 0 1rem; font: clamp(2.2rem, 5vw, 4.5rem)/1.08 Georgia, serif; }
.article-hero .lead { color: #dcebe3; }
.preview-notice { display: inline-block; margin: 0 0 1rem; padding: .45rem .75rem; border-radius: .4rem; background: var(--gold); color: #18362d; font-size: .85rem; font-weight: 700; }
.article-back { color: #e7c67b; font-weight: 700; text-decoration: none; }
.article-meta { color: #dcebe3; }
.article-meta span { color: #e7c67b; }
.article-content { overflow: hidden; border: 1px solid #e0e8e2; border-radius: 1rem; background: #fff; box-shadow: 0 10px 28px #17372c12; }
.article-featured-image, .biography-article-content .biography-detail-image {
    display: block;
    width: 100%;
    height: clamp(250px, 55vw, 520px);
    max-height: none;
    object-fit: cover;
}
.article-copy { padding: clamp(1.4rem, 4vw, 3rem); color: #34473e; font-size: 1.08rem; line-height: 1.9; }
.article-copy p, .biography-rich-content p { margin: 0; }
/* Quill stores an intentional blank line as <p><br></p>. Keep only that
   deliberate blank paragraph as visible vertical space. */
.article-copy p:has(> br:only-child), .biography-rich-content p:has(> br:only-child) { min-height: 1.9em; }
.biography-hero { background: linear-gradient(125deg, #103e34, #2b6b59); }
.biography-role { color: var(--gold); font-size: 1.05rem; font-weight: 700; }
.biography-article-content .biography-detail-image { max-width: none; margin: 0; border-radius: 0; }
.biography-section { margin-top: 2.75rem; padding-top: 2.25rem; border-top: 1px solid #dce8df; }
.biography-section .section-title { margin-bottom: 1rem; }
.article-copy .ql-align-center, .biography-rich-content .ql-align-center { text-align: center; }
.article-copy .ql-align-right, .biography-rich-content .ql-align-right { text-align: right; }
.article-copy .ql-align-justify, .biography-rich-content .ql-align-justify { text-align: justify; }
.article-copy .ql-size-small, .biography-rich-content .ql-size-small { font-size: .8em; }
.article-copy .ql-size-large, .biography-rich-content .ql-size-large { font-size: 1.4em; }
.article-copy .ql-size-huge, .biography-rich-content .ql-size-huge { font-size: 1.85em; }
.article-copy .ql-font-serif, .biography-rich-content .ql-font-serif { font-family: Georgia, serif; }
.article-copy .ql-font-monospace, .biography-rich-content .ql-font-monospace { font-family: ui-monospace, monospace; }
.rich-editor-host { position: relative; clear: both; display: flex; flex-direction: column; height: 300px; min-height: 240px; margin-bottom: .75rem; overflow: hidden; resize: vertical; background: #fff; }
.rich-editor-host .ql-toolbar { position: relative; z-index: 1; flex: 0 0 auto; padding-right: 3.25rem; border-color: #ced4da; border-radius: .375rem .375rem 0 0; }
.rich-editor-host .ql-container { flex: 1 1 auto; min-height: 0; height: auto !important; border-color: #ced4da; border-radius: 0 0 .375rem .375rem; }
.rich-editor-host .ql-editor { height: 100%; min-height: 0; overflow-y: auto; font-size: 1rem; line-height: 1.65; }
.rich-editor-expand { position: absolute; z-index: 2; top: .35rem; right: .45rem; width: 2rem; height: 2rem; border: 0; border-radius: .25rem; background: #f1f4f6; color: var(--green); font-size: 1.15rem; line-height: 1; }
.rich-editor-expand:hover { background: var(--gold); color: #17372c; }
.rich-editor-host.is-fullscreen { position: fixed; inset: 1rem; z-index: 3000; height: auto; min-height: 0; margin: 0; padding: 1rem; resize: none; border: 1px solid #b8cbc0; border-radius: .75rem; box-shadow: 0 20px 60px #00000055; }
.rich-editor-host.is-fullscreen .ql-toolbar { border-radius: .375rem .375rem 0 0; }
.rich-editor-host.is-fullscreen .ql-container { min-height: 0; }
.rich-editor-modal-open { overflow: hidden; }
.article-sidebar { position: sticky; top: 6rem; border: 1px solid #dce8df; border-radius: 1rem; background: #f8fbf8; padding: 1.5rem; }
.sidebar-articles { margin: 1rem 0 0; padding: 0; list-style: none; counter-reset: articles; }
.sidebar-articles li { border-bottom: 1px solid #dce8df; counter-increment: articles; padding: 1rem 0 1rem 2.2rem; position: relative; }
.sidebar-articles li::before { position: absolute; top: 1rem; left: 0; color: var(--gold); content: counter(articles, decimal-leading-zero); font: 1rem Georgia, serif; }
.sidebar-articles a { color: var(--ink); text-decoration: none; }
.sidebar-articles a:hover span { color: var(--green2); }
.sidebar-articles span, .sidebar-articles small { display: block; }
.sidebar-articles span { font: 1rem/1.3 Georgia, serif; }
.sidebar-articles small { margin-top: .3rem; color: #728178; font-size: .75rem; }
.related-card { overflow: hidden; border: 1px solid #e0e8e2; border-radius: .8rem; background: #fff; }
.related-card img { width: 100%; height: 130px; object-fit: cover; }
.related-card div { padding: .9rem; }
.related-card small { color: var(--green); font-weight: 700; text-transform: uppercase; }
.related-card h3 { margin: .35rem 0 0; font: 1rem/1.3 Georgia, serif; }
.site-footer { background: #102d26; color: #dce7df; }
.site-footer a { display: block; color: #dce7df; text-decoration: none; margin: .35rem 0; }
.site-footer hr { border-color: #ffffff33; }
.dashboard-nav { background: var(--green); min-height: 100vh; }
.dashboard-nav a { color: #dce7df; text-decoration: none; display: block; padding: .65rem 1rem; border-radius: .4rem; }
.dashboard-nav a:hover, .dashboard-nav a.active { background: #ffffff1f; color: #fff; }
.admin-mobile-header { display: none; }
.avatar { width: 110px; height: 110px; object-fit: cover; border-radius: 50%; background: #e7e0d2; }
.thumb { width: 100%; height: 210px; object-fit: cover; }
.table img { width: 45px; height: 45px; object-fit: cover; border-radius: 50%; }
.admin-main { background: #f7f8f6; min-height: 100vh; }
.admin-leader-photo { width: 110px; height: 110px; border-radius: 50%; object-fit: cover; border: 3px solid var(--gold); }
.admin-blog-photo { width: 180px; height: 110px; border-radius: .5rem; object-fit: cover; border: 2px solid var(--gold); }
.announcement-page-hero { background: linear-gradient(110deg, #fff0ed, #f8f0e4); }
.announcement-card { display: flex; overflow: hidden; border: 1px solid #efd7ce; border-radius: 1rem; background: #fff; box-shadow: 0 8px 22px #17372c12; }
.announcement-card > img { width: 42%; object-fit: cover; }
.announcement-card > div { padding: 1.5rem; }
.announcement-badge { display: inline-block; margin-right: .6rem; background: #e32222; color: #fff; font-size: .7rem; font-weight: 800; padding: .25rem .45rem; text-transform: uppercase; }
.announcement-card time { color: #77827d; font-size: .8rem; }
.announcement-card h2 { margin: .8rem 0 .5rem; color: var(--ink); font: 1.4rem/1.2 Georgia, serif; }
.announcement-card p { color: #62726a; }
.announcement-card a { color: var(--green); font-weight: 700; text-decoration: none; }
main a:not(.btn):not(.gallery-preview):not(.gallery-card):not(.gallery-featured-image):not(.search-result-card):not(.latest-news-link):not(.blog-card-image):not(.carousel-control-prev):not(.carousel-control-next) { color: var(--link-on-light); text-decoration: none; }
main a:not(.btn):not(.gallery-preview):not(.gallery-card):not(.gallery-featured-image):not(.search-result-card):not(.latest-news-link):not(.blog-card-image):not(.carousel-control-prev):not(.carousel-control-next):hover { color: var(--green); text-decoration: none; }
body > main a:not(.btn):not(.gallery-preview):not(.gallery-card):not(.gallery-featured-image):not(.search-result-card):not(.latest-news-link):not(.blog-card-image):not(.carousel-control-prev):not(.carousel-control-next), body > section a:not(.btn):not(.gallery-preview):not(.gallery-card):not(.gallery-featured-image):not(.search-result-card):not(.latest-news-link):not(.blog-card-image):not(.carousel-control-prev):not(.carousel-control-next) { color: var(--link-on-light); text-decoration: none; }
body > main a:not(.btn):not(.gallery-preview):not(.gallery-card):not(.gallery-featured-image):not(.search-result-card):not(.latest-news-link):not(.blog-card-image):not(.carousel-control-prev):not(.carousel-control-next):hover, body > section a:not(.btn):not(.gallery-preview):not(.gallery-card):not(.gallery-featured-image):not(.search-result-card):not(.latest-news-link):not(.blog-card-image):not(.carousel-control-prev):not(.carousel-control-next):hover { color: var(--green); text-decoration: none; }
.leadership-showcase a:not(.btn), .article-hero a:not(.btn), .community-jumbotron a:not(.btn), .updates-sidecard a:not(.btn) { color: var(--link-on-dark) !important; text-decoration: none; }
.leadership-showcase a:not(.btn):hover, .article-hero a:not(.btn):hover, .community-jumbotron a:not(.btn):hover, .updates-sidecard a:not(.btn):hover { color: #fff !important; text-decoration: none; }
.census-pagination .btn { min-width: 2.3rem; }
.census-table { min-width: 900px; }
.census-print-heading { display: none; }
.leadership-print-title { display: none; }
.leadership-panel { border: 1px solid #dce8df; border-radius: 1rem; background: #fff; padding: clamp(1rem, 3vw, 1.5rem); box-shadow: 0 8px 20px #17372c12; }
.leadership-category-tone-0 { background: var(--gold) !important; color: #18362d !important; }
.leadership-category-tone-1 { background: #1d5b4b !important; color: #fff !important; }
.leadership-category-tone-2 { background: #2d6497 !important; color: #fff !important; }
.leadership-category-tone-3 { background: #87504b !important; color: #fff !important; }
.password-field { display: flex; align-items: stretch; gap: .45rem; }
.password-field .form-control { min-width: 0; }
.password-toggle { flex: 0 0 auto; border: 1px solid var(--gold); border-radius: .375rem; background: #fff; color: #6e4d0a; font-size: .875rem; font-weight: 700; padding: .375rem .75rem; }
.password-toggle:hover, .password-toggle:focus-visible { background: var(--gold); color: #18362d; }
.password-guidance { margin-bottom: 1rem; }
.content-attachments figure { margin: 0; overflow: hidden; border: 1px solid #dce8df; border-radius: .85rem; background: #fff; box-shadow: 0 6px 18px #17372c12; }
.content-attachments img { display: block; width: 100%; height: clamp(220px, 50vw, 440px); object-fit: cover; }
.content-attachment-preview { display: block; width: 100%; height: 260px; object-fit: cover; }
.content-attachments figcaption { padding: .8rem 1rem; color: #50635b; font-size: .92rem; }
.content-inline-image { margin: 1.75rem 0; overflow: hidden; border: 1px solid #dce8df; border-radius: .85rem; background: #fff; box-shadow: 0 6px 18px #17372c12; }
.content-inline-image img { display: block; width: 100%; height: clamp(220px, 50vw, 440px); max-height: none; object-fit: cover; }
.content-inline-image figcaption { padding: .8rem 1rem; color: #50635b; font-size: .92rem; }
.document-hero { padding: clamp(1.5rem, 4vw, 3rem); border-radius: 1rem; background: linear-gradient(135deg, #f5efe2, #fff); border: 1px solid #e8dbc0; }
.document-hero .text-uppercase { color: var(--gold-dark); letter-spacing: .08em; }
.document-card { display: flex; gap: 1rem; padding: 1.25rem; border: 1px solid #dce8df; border-radius: .9rem; background: #fff; box-shadow: 0 6px 18px #17372c0f; }
.document-icon { flex: 0 0 46px; height: 46px; display: grid; place-items: center; border-radius: .55rem; background: var(--green); color: var(--gold); font-size: .72rem; font-weight: 800; letter-spacing: .06em; }
.document-card-body { min-width: 0; }
.document-card-body p { color: #50635b; }
.biography-rich-content { white-space: normal; }
.project-card { overflow: hidden; border: 1px solid #dce8df; border-radius: 1rem; background: #fff; box-shadow: 0 8px 22px #17372c10; }
.project-card > img { display: block; width: 100%; height: 225px; object-fit: cover; }
.project-card h2 a, .project-card-link { color: var(--link-on-light); text-decoration: none; }
.project-card h2 a:hover, .project-card-link:hover { color: var(--gold-dark); }
.project-status { display: inline-block; border-radius: 999px; padding: .3rem .65rem; font-size: .76rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.project-status-completed { background: #dcefe3; color: #17633a; }
.project-status-ongoing { background: #fff0cb; color: #78560b; }
.project-status-not_started { background: #e7eaed; color: #4d5961; }
.project-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin: 0 0 2rem; }
.project-facts div { padding: .9rem; border-radius: .6rem; background: #f7f3ea; }
.project-facts dt { color: var(--green); font-size: .75rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.project-facts dd { margin: .25rem 0 0; font-size: .95rem; }
.project-gallery-trigger { position: relative; display: block; width: 100%; padding: 0; overflow: hidden; border: 0; border-radius: .7rem; background: var(--green); }
.project-gallery-trigger img { display: block; width: 100%; height: 180px; object-fit: cover; transition: transform .25s ease; }
.project-gallery-trigger span { position: absolute; inset: auto 0 0; padding: .45rem; background: #123f35db; color: #fff; font-size: .8rem; opacity: 0; transition: opacity .2s ease; }
.project-gallery-trigger:hover img, .project-gallery-trigger:focus-visible img { transform: scale(1.06); }
.project-gallery-trigger:hover span, .project-gallery-trigger:focus-visible span { opacity: 1; }
.project-lightbox-image { max-height: calc(100vh - 10rem); object-fit: contain; }
.detail-image-lightbox { border: 0; background: #092f26; color: #fff; }
.detail-image-lightbox .modal-body { display: grid; min-height: min(78vh, 760px); place-items: center; padding: 1rem; }
.detail-image-lightbox img { display: block; width: auto; max-width: 100%; max-height: min(75vh, 720px); object-fit: contain; }
.article-featured-image, .biography-detail-image, .content-inline-image img, .content-attachments img { cursor: zoom-in; }

/* Keep the full desktop menu inside laptop-width screens. */
@media (min-width: 992px) and (max-width: 1199.98px) {
    .site-nav .nav-search-item { display: none; }
    .site-nav .navbar-brand { margin-right: .2rem; }
    .site-nav .site-logo { width: 145px; }
    .site-nav .navbar-nav .nav-link { padding-right: .28rem; padding-left: .28rem; font-size: .86rem; }
    .site-nav .nav-auth-actions { gap: .35rem; }
    .site-nav .nav-auth-actions .btn { padding: .28rem .45rem; font-size: .76rem; }
}

@media print {
    body > * { display: none !important; }
    body > main[data-census-directory-v2], body > main[data-leadership-directory], body > main[data-census-profile], body > main:has(.profile-actions) { display: block !important; padding: 0 !important; }
    .site-nav, .site-footer, .profile-actions, .profile-print-note, .breadcrumb, .census-search-panel, .census-pagination, [data-census-v2-print], [data-census-v2-download], body > main[data-census-directory-v2] > .d-flex, body > main[data-census-directory-v2] > p, [data-census-v2-empty] { display: none !important; }
    body { background: #fff; }
    .page-hero { padding: 1.5rem 0; background: #fff; }
    .leader-profile-photo { box-shadow: none; }
    .census-table { min-width: 0; }
    .census-table th:last-child, .census-table td:last-child { display: none !important; }
    .census-print-title { display: none !important; }
    .census-print-heading { display: table-row; color: #123f35; font: 1.2rem Georgia, serif; text-align: left; }
    body > main[data-leadership-directory] > .card, body > main[data-leadership-directory] .table th:last-child, body > main[data-leadership-directory] .table td:last-child, [data-leadership-print] { display: none !important; }
    body > main[data-leadership-directory] [data-leadership-section]:not(.leadership-printing) { display: none !important; }
    body > main[data-leadership-directory] .leadership-panel { border: 0; border-radius: 0; box-shadow: none; padding: 0; }
    .leadership-print-title { display: block; margin: 0 0 1.25rem; color: #123f35; font: 1.5rem Georgia, serif; }
}

@media (max-width: 767px) {
    /* Bootstrap's large gutter rows can extend beyond the standard mobile
       container. Keep every public-page row within the viewport. */
    .container > .row { margin-right: 0; margin-left: 0; }
    /* Detail pages use a desktop article/sidebar grid. On phones, remove the
       extra column gutter so the article card, image and writing use the full
       readable width of the page instead of appearing unnecessarily narrow. */
    main.container > .row.g-5 > .col-lg-8,
    main.container > .row.g-5 > .col-lg-4 { padding-right: 0; padding-left: 0; }
    .site-nav { background: var(--green); box-shadow: 0 1px 5px #17372c1a; }
    .site-nav .navbar-brand { min-width: 0; margin-right: .4rem; }
    .site-nav .site-logo { width: 148px; height: 44px; }
    .site-nav .logo-text { color: #fff; font-size: .8rem; white-space: nowrap; }
    .site-nav .logo-text span { color: #e7c67b; }
    .nav-mobile-search { display: flex; min-width: 0; flex: 1; max-width: 185px; overflow: hidden; border-radius: .3rem; }
    .nav-mobile-search input { min-width: 0; width: 100%; border: 0; background: #f1f4f6; color: #44504d; font-size: .77rem; outline: 0; padding: .45rem .55rem; }
    .nav-mobile-search button { width: 40px; flex: 0 0 40px; border: 0; background: var(--gold); color: #18362d; font-size: 1.6rem; line-height: 1; }
    .site-nav .navbar-toggler { margin-left: .35rem; border: 0; padding: .35rem; }
    .site-nav .navbar-toggler-icon { filter: none; }
    .site-nav .navbar-nav .nav-link { color: #fff; }
    .site-nav .nav-search-item { display: none; }
    .site-nav .nav-auth-actions { padding: .55rem 0; }
    .dashboard-nav { min-height: auto; }
    .admin-mobile-header { display: flex; align-items: center; justify-content: space-between; min-height: 64px; margin: 0 -12px; padding: .45rem .85rem; background: var(--green); box-shadow: 0 2px 8px #17372c26; }
    .admin-mobile-brand { display: flex; align-items: center; min-width: 0; }
    .admin-mobile-header .site-logo { width: 156px; height: 46px; }
    .admin-menu-toggle { display: grid; gap: 4px; width: 42px; height: 40px; place-content: center; border: 1px solid #ffffff66; border-radius: .4rem; background: transparent; }
    .admin-menu-toggle span { display: block; width: 21px; height: 2px; border-radius: 1px; background: #fff; }
    .dashboard-nav.admin-sidebar { min-height: 0; padding: .55rem .85rem 1rem !important; }
    .dashboard-nav.admin-sidebar .admin-sidebar-brand { display: none !important; }
    .dashboard-nav.admin-sidebar a { padding: .7rem .85rem; }
    .hero-slide { min-height: 500px; }
    .hero-content { padding-top: 5rem; padding-bottom: 5rem; }
    .community-jumbotron { border-radius: .9rem; padding: 1.5rem; }
    .jumbotron-participation { padding: 1.15rem; }
    .gallery-featured-image { min-height: 390px; }
    .gallery-card, .gallery-card img { min-height: 220px; height: 220px; }
    .leadership-card { padding: 1rem .5rem; }
    .leadership-card img, .leadership-avatar { width: 70px; height: 70px; }
    [data-census-profile] { padding-top: 2rem !important; padding-bottom: 2rem !important; }
    [data-census-profile] .leader-profile-photo { width: min(100%, 260px); }
    [data-census-profile] .contact-card, [data-census-profile] .deceased-report-card { padding: 1rem; }
    [data-census-profile] .profile-actions { display: grid !important; grid-template-columns: 1fr; }
    [data-census-profile] .profile-actions .btn { width: 100%; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
    .article-hero { padding: 4rem 0 3rem; }
    .article-sidebar { position: static; }
    .home-news-card .thumb { height: 105px; }
    .home-news-card .card-body { padding: .7rem; }
    .home-news-card h4 { font-size: .9rem; line-height: 1.25; }
    .home-news-card p, .home-news-card .card-body > a { display: none; }
    .home-news-card small { font-size: .65rem; }
    .blog-card-image img { height: 145px; }
    .blog-card-body { height: auto; min-height: 0; padding: .85rem; }
    .blog-card h2 { font-size: 1rem; }
    .blog-card p { display: none; }
    .blog-card-meta { display: block; font-size: .68rem; }
    .blog-card-meta time { display: block; margin-top: .15rem; }
    .blog-read-link { margin-top: .65rem; font-size: .82rem; }
    .nav-search { margin: .5rem 0; }
    .nav-search input { width: 100%; }
    .site-search-form { flex-direction: column; }
    .latest-news-stream { padding-left: 1rem; }
    .latest-news-item::before { left: -1.32rem; }
    .latest-news-link { gap: .7rem; min-height: 92px; }
    .latest-news-link img, .latest-news-placeholder { width: 66px; height: 66px; flex-basis: 66px; }
    .latest-news-link strong { font-size: .95rem; }
    .breaking-ticker .container { gap: .65rem; }
    .breaking-label { font-size: .68rem; }
    .breaking-marquee-track { font-size: .8rem; }
    .other-announcements-link { font-size: .68rem; }
    .announcement-card { display: block; }
    .announcement-card > img { width: 100%; height: 190px; }
    .project-facts { grid-template-columns: 1fr; }
    .table-responsive { font-size: .9rem; }
    .census-table { min-width: 900px; }
    .password-field { gap: .35rem; }
.password-toggle { padding: .375rem .6rem; }
}

.push-notification-prompt {
    position: fixed;
    z-index: 1060;
    right: 1.25rem;
    bottom: 1.25rem;
    display: flex;
    align-items: center;
    gap: 1rem;
    width: min(100% - 2.5rem, 460px);
    padding: 1rem;
    border: 1px solid #e0bd60;
    border-radius: .75rem;
    background: #fffdf7;
    color: #17372c;
}
.push-notification-prompt__copy { display: grid; gap: .2rem; flex: 1; }
.push-notification-prompt__copy span { font-size: .88rem; line-height: 1.35; }
.push-notification-prompt__actions { display: flex; flex-wrap: wrap; gap: .35rem; justify-content: flex-end; }
.push-notification-prompt .btn-link { color: #315d4d; text-decoration: none; }
.ios-push-instructions {
    position: fixed;
    z-index: 1060;
    right: 1.25rem;
    bottom: 1.25rem;
    display: grid;
    gap: .35rem;
    width: min(100% - 2.5rem, 440px);
    padding: 1rem;
    border: 1px solid #e0bd60;
    border-radius: .75rem;
    background: #fffdf7;
    color: #17372c;
}
.ios-push-instructions span { font-size: .88rem; line-height: 1.4; }
.cookie-consent-banner {
    position: fixed;
    z-index: 1061;
    left: 50%;
    bottom: 1.25rem;
    display: flex;
    align-items: center;
    gap: 1rem;
    width: min(100% - 2.5rem, 760px);
    padding: 1rem 1.1rem;
    transform: translateX(-50%);
    border: 1px solid #d9b14a;
    border-radius: .75rem;
    background: #fffdf7;
    color: #17372c;
}
.cookie-consent-banner__copy { display: grid; flex: 1; gap: .2rem; }
.cookie-consent-banner__copy span { font-size: .88rem; line-height: 1.4; }
.cookie-consent-banner__actions { display: flex; flex: 0 0 auto; flex-wrap: wrap; gap: .5rem; }
.footer-legal-links { display: flex; flex-wrap: wrap; gap: .8rem; align-items: center; }
.footer-legal-links .btn-link { color: inherit; font: inherit; text-decoration: none; }
.legal-page__content { max-width: 850px; }
.legal-page__content h2 { margin-top: 2rem; font-size: 1.35rem; }
.legal-page__content p { line-height: 1.75; }
@media (max-width: 575px) {
    .push-notification-prompt { right: .75rem; bottom: .75rem; width: calc(100% - 1.5rem); align-items: flex-start; flex-direction: column; }
    .push-notification-prompt__actions { width: 100%; justify-content: flex-start; }
    .ios-push-instructions { right: .75rem; bottom: .75rem; width: calc(100% - 1.5rem); }
    .cookie-consent-banner { bottom: .75rem; width: calc(100% - 1.5rem); align-items: flex-start; flex-direction: column; }
    .cookie-consent-banner__actions { width: 100%; }
}
