.public-page { padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
/* Keep sufficient contrast beneath even a long name; reveal the landscape beyond the text. */
:root { --hero-overlay: linear-gradient(90deg, rgb(7 28 22 / 60%) 0%, rgb(7 28 22 / 60%) min(100%, calc(55rem + clamp(1.5rem, 6vw, 5rem))), rgb(7 28 22 / 6%) 100%); }
:root[data-theme="dark"] { --hero-overlay: linear-gradient(90deg, rgb(7 28 22 / 91%) 0%, rgb(7 28 22 / 78%) 55%, rgb(7 28 22 / 68%) 100%); }
@media (prefers-color-scheme: dark) {
    :root:not([data-theme]) { --hero-overlay: linear-gradient(90deg, rgb(7 28 22 / 91%) 0%, rgb(7 28 22 / 78%) 55%, rgb(7 28 22 / 68%) 100%); }
}
.public-hero { position: relative; isolation: isolate; min-height: 14rem; padding: clamp(1.5rem, 4vw, 3rem) clamp(1.5rem, 6vw, 5rem); border-radius: 1rem; color: #fff; background-color: #17382b; background-image: var(--hero-overlay), url("village-landscape.webp"); background-size: cover; background-position: center 55%; }
.public-hero h1 { max-width: 55rem; margin: 0 0 .65rem; font-size: clamp(2rem, 4.2vw, 3rem); letter-spacing: -.025em; }
.hero-description { max-width: 39rem; margin: 0; font-size: 1.05rem; }
.public-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.25rem; margin: 1.5rem 0 .5rem; }
.public-sections { display: flex; flex-wrap: wrap; gap: .65rem; min-width: 0; }
.public-section-link { display: inline-flex; align-items: center; justify-content: center; gap: .6rem; min-height: 2.75rem; max-width: 100%; padding: .65rem .95rem; border: 1px solid var(--color-border-strong); border-radius: .75rem; background: var(--color-surface); color: var(--color-text); font-size: .95rem; font-weight: 550; line-height: 1.4; text-decoration: none; }
.public-section-link.is-current { background: var(--color-primary); color: var(--color-primary-text); border-color: var(--color-primary); font-weight: 700; }
.public-section-link:hover { background: var(--color-notice); text-decoration: underline; }
.public-section-link.is-current:hover { background: var(--color-primary-hover); }
.public-search { display: flex; align-items: stretch; flex-wrap: wrap; gap: .5rem; margin: 0; flex: 0 1 25rem; min-width: 0; }
.public-search-field { position: relative; min-width: 0; flex: 1; display: flex; align-items: center; }
.public-search-field > .ui-icon { position: absolute; left: .85rem; color: var(--color-muted); pointer-events: none; }
.public-search-field input { padding-left: 2.65rem; font-size: .9rem; height: 100%; }
.public-search button { padding: .65rem .85rem; font-size: .9rem; }
.public-search-help { flex-basis: 100%; margin: 0; color: var(--color-muted); font-size: .8rem; }
.public-search-error { flex-basis: 100%; margin: 0; font-size: .875rem; }
.public-section-separator { margin: 1rem 0; border: 0; border-top: 1px solid var(--color-border); }
.public-list-layout { display: grid; grid-template-columns: minmax(0, 2.1fr) minmax(18rem, 1fr); grid-template-areas: "controls ." "results sidebar"; column-gap: 1.5rem; row-gap: 1rem; }
.public-results-controls { grid-area: controls; min-width: 0; }
.public-results { grid-area: results; }
.public-results, .public-sidebar { min-width: 0; }
.public-results-intro h2 { margin: 0; font-size: 1.35rem; }
.public-results-intro p { margin: .5rem 0; }
.search-summary { padding: .75rem 0; overflow-wrap: anywhere; }
.public-search-clear { display: inline-flex; align-items: center; min-height: 2.75rem; }
.public-sort { display: flex; align-items: center; flex-wrap: wrap; gap: .35rem .75rem; margin: .65rem 0 0; }
.public-sort-label { margin: 0; color: var(--color-muted); font-size: .875rem; }
.public-sort-links { display: flex; flex-wrap: wrap; gap: .4rem; min-width: 0; }
.public-sort-link { display: inline-flex; align-items: center; justify-content: center; min-height: 2.75rem; max-width: 100%; padding: .35rem .6rem; border: 1px solid var(--color-border-strong); border-radius: .5rem; background: var(--color-surface); font-size: .875rem; line-height: 1.35; text-align: center; text-decoration: none; }
.public-sort-link:hover { background: var(--color-notice); text-decoration: underline; }
.public-sort-link.is-current { background: var(--color-surface-muted); border-color: var(--color-primary); font-weight: 650; }
.public-sort-link.is-current:hover { background: var(--color-notice); }
.public-announcement-list { display: grid; gap: 1rem; }
.public-announcement-card { min-width: 0; padding: 1.2rem 1.3rem; border: 1px solid var(--color-border); border-left: .3rem solid var(--color-primary); border-radius: .85rem; background: var(--color-surface); box-shadow: var(--surface-shadow); }
.public-card-communication { border-left-color: #b25a1b; }
.public-announcement-card h2, .public-announcement-card h3 { margin: .45rem 0; font-size: 1.3rem; line-height: 1.35; }
.public-announcement-link { display: inline-flex; align-items: center; min-height: 2.75rem; color: var(--color-text); font-weight: 750; text-decoration: none; }
.public-announcement-link:hover { color: var(--color-link); text-decoration: underline; }
.public-kind { display: inline-block; margin: 0; padding: .22rem .7rem; border-radius: 1rem; color: var(--color-link); background: var(--color-notice); font-size: .8rem; font-weight: 700; }
.public-card-communication .public-kind { background: #fff0df; color: #854014; }
.public-urgent-label { display: inline-block; margin: 0 0 .35rem .3rem; padding: .22rem .6rem; border: 1px solid var(--color-danger); border-radius: .5rem; background: var(--color-error-bg); color: var(--color-error-text); font-size: .8rem; font-weight: 700; }
.public-announcement-dates { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem 1rem; margin: 1rem 0 0; }
.public-announcement-dates div { position: relative; min-width: 0; padding-left: 2rem; }
.public-announcement-dates .ui-icon { position: absolute; top: .35rem; left: 0; width: 1.4rem; height: 1.4rem; color: var(--color-muted); }
.public-announcement-dates dt { color: var(--color-muted); font-size: .8rem; line-height: 1.4; }
.public-announcement-dates dd { margin: .12rem 0 0; font-size: .9rem; overflow-wrap: anywhere; }
.public-announcement-excerpt { margin: .4rem 0 0; color: var(--color-muted); font-size: .95rem; overflow-wrap: anywhere; }
.public-pagination { align-items: center; justify-content: space-between; }
.public-page-current { font-weight: 650; }
.public-page-previous, .public-page-next, .public-list-return { display: inline-flex; align-items: center; min-height: 2.75rem; padding: .5rem 0; }
.public-return { margin: 0 0 1rem; }
.public-announcement-detail + .public-return { margin: 1.5rem 0 0; }
.public-detail-page { max-width: 65rem; }
.public-announcement-detail .profile-data { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); gap: 1rem; margin: 1.25rem 0 2rem; padding: 1.25rem; background: var(--color-surface-muted); border-radius: .75rem; }
.public-announcement-detail .profile-data div { min-width: 0; }
.public-announcement-detail .profile-data dt { font-size: .85rem; color: var(--color-muted); }
.public-announcement-detail .profile-data dd { margin: .2rem 0 0; overflow-wrap: anywhere; }
.public-empty { margin: 0; padding: 1.5rem; border: 1px solid var(--color-border); border-radius: .85rem; background: var(--color-surface); }
.public-empty h3 { margin-top: 0; }
.public-empty p { margin-bottom: 0; color: var(--color-muted); }
.public-sidebar { grid-area: sidebar; display: flex; flex-direction: column; gap: 1rem; }
.sidebar-card { padding: 1.25rem; border: 1px solid var(--color-border); border-radius: .85rem; background: var(--color-surface); box-shadow: var(--surface-shadow); }
.sidebar-card h2 { display: flex; align-items: start; gap: .6rem; margin: 0 0 .7rem; font-size: 1.1rem; }
.sidebar-card h2 .ui-icon { margin-top: .1rem; }
.sidebar-card p { margin: .5rem 0; font-size: .95rem; }
.sidebar-heading > a { display: inline-flex; align-items: center; min-height: 2.75rem; font-size: .875rem; }
.upcoming-list { padding: 0; margin: .5rem 0 0; list-style: none; }
.upcoming-list li { display: grid; grid-template-columns: 3.5rem minmax(0, 1fr); align-items: start; gap: .9rem; padding: .75rem 0; }
.upcoming-list li + li { border-top: 1px solid var(--color-border); }
.upcoming-list a { display: inline-flex; align-items: center; min-height: 2.75rem; color: var(--color-text); font-weight: 650; line-height: 1.4; text-decoration: none; }
.upcoming-list a:hover { color: var(--color-link); text-decoration: underline; }
.upcoming-list p { color: var(--color-muted); font-size: .85rem; margin: .1rem 0; }
.upcoming-date { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 3.75rem; border-radius: .7rem; background: var(--color-notice); color: var(--color-link); }
.upcoming-date strong { font-size: 1.3rem; line-height: 1.2; }
.upcoming-date > span { font-size: .75rem; text-transform: uppercase; }
.sidebar-quick-link { display: flex; align-items: center; gap: .65rem; min-height: 2.75rem; padding: .75rem; border: 1px solid var(--color-border-strong); border-radius: .6rem; background: var(--color-surface-muted); color: var(--color-text); font-size: .875rem; text-decoration: none; }
.sidebar-quick-link > .ui-icon:last-child { margin-left: auto; }
.sidebar-quick-link:hover { text-decoration: underline; }
.sidebar-quick-links { display: grid; gap: .65rem; margin: 0; padding: 0; list-style: none; }
:root[data-theme="dark"] .public-card-communication .public-kind { background: #4c3323; color: #ffd3a6; }
@media (prefers-color-scheme: dark) { :root:not([data-theme]) .public-card-communication .public-kind { background: #4c3323; color: #ffd3a6; } }
@media (max-width: 68rem) {
    .public-list-layout { grid-template-columns: minmax(0, 1fr); grid-template-areas: "controls" "results" "sidebar"; }
    .public-sidebar { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr)); align-items: start; }
}
@media (max-width: 40rem) {
    .public-toolbar { gap: 1rem; }
    .public-search { flex-basis: 100%; }
    .public-announcement-dates { grid-template-columns: 1fr; gap: .65rem; }
}
@media (max-width: 35rem) {
    .public-hero { min-height: 12rem; padding: 1.5rem; background-position: 60% center; border-radius: .85rem; }
    .hero-description { font-size: .95rem; }
    .public-sections { gap: .5rem; width: 100%; }
    .public-section-link { flex: 1 1 calc(50% - .5rem); padding-inline: .6rem; font-size: .875rem; }
    .public-announcement-card { padding: 1rem; }
    .public-announcement-card h3 { font-size: 1.15rem; }
    .public-pagination { justify-content: flex-start; }
    .sidebar-card { padding: 1rem; }
}
@media (forced-colors: active) {
    .public-hero { background-image: none; background-color: Canvas; color: CanvasText; border: 1px solid CanvasText; }
    .public-section-link, .public-sort-link, .sidebar-quick-link { border-color: CanvasText; }
    .public-section-link.is-current, .public-sort-link.is-current { outline: 2px solid Highlight; outline-offset: -2px; }
}
