:root {
  color-scheme: light;
  --ink: #162e24;
  --muted: #4c6155;
  --green: #075838;
  --green-hover: #06462d;
  --green-tint: #eaf4ed;
  --ochre: #985600;
  --ochre-tint: #fbefdb;
  --paper: #fafaf6;
  --surface: #fff;
  --border: #dce4da;
  --control-border: #7c9083;
  --danger: #952e28;
  --danger-tint: #fff4f1;
  --radius-control: 10px;
  --radius-card: 18px;
  --radius-feature: 24px;
  --shadow: 0 2px 4px #16332508, 0 14px 35px #1633250a;
  --gutter: clamp(16px, 4vw, 48px);
  --gap: clamp(12px, 2vw, 20px);
  --section: clamp(34px, 6vw, 76px);
  --font-display: Georgia, 'Times New Roman', serif;
  font: 16px/1.6 Inter, 'Segoe UI', system-ui, sans-serif;
  color: var(--ink);
  background: var(--paper);
}
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; display: flex; flex-direction: column; }
main { flex: 1; min-width: 0; }
a { color: var(--green); text-underline-offset: .24em; }
:where(a, button, input, select, textarea, summary, main):focus-visible {
  outline: 3px solid var(--ochre);
  outline-offset: 3px;
}
.wrap { width: min(1200px, calc(100% - 2 * var(--gutter))); margin-inline: auto; }
.skip {
  position: absolute;
  z-index: 5;
  padding: .6rem .9rem;
  margin: 8px;
  border-radius: var(--radius-control);
  background: var(--surface);
  transform: translateY(calc(-100% - 12px));
}
.skip:focus { transform: none; }

.top { background: var(--surface); border-bottom: 1px solid var(--border); }
.nav { min-height: 78px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.nav nav { display: flex; gap: clamp(5px, 1.4vw, 22px); }
.nav a, .footer a { text-decoration: none; }
.nav nav a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding-inline: .86rem;
  border-radius: var(--radius-control);
  color: var(--muted);
  font-weight: 650;
}
.nav nav a:hover, .nav nav a[aria-current],
body:has(#transparence:target) .nav nav a[href="/#transparence"] { color: var(--green); background: var(--green-tint); }
.brand { display: flex; align-items: center; gap: .1rem; color: var(--ink); font-size: 1.47rem; font-weight: 740; letter-spacing: -.045em; }
.brand-logo { display: block; width: 60px; height: 60px; object-fit: contain; }
#account-link { max-width: 48%; overflow-wrap: anywhere; }

.eyebrow { margin: 0 0 .65em; color: var(--green); font-size: .76rem; font-weight: 760; letter-spacing: .12em; text-transform: uppercase; }

h1, h2 { font-family: var(--font-display); font-weight: 500; line-height: 1.12; letter-spacing: -.04em; overflow-wrap: anywhere; }
h1 { font-size: clamp(2.4rem, 5vw, 4.35rem); margin: 0 0 .23em; }
h2 { font-size: clamp(1.7rem, 3.3vw, 2.75rem); margin: 0 0 .36em; }
h3 { font-size: 1.15rem; line-height: 1.28; margin: .2em 0 .4em; }
p { margin: .35em 0 .85em; }
.content { padding-block: var(--section); }
.section { margin-top: clamp(30px, 4vw, 52px); }
.lede, .muted { color: var(--muted); }
.lede { font-size: 1.07rem; max-width: 70ch; }
.directory-total { margin-bottom: 1.35rem; }
.directory-total strong { color: var(--green); font-variant-numeric: tabular-nums; }

.grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 245px), 1fr)); gap: var(--gap); }
.grid.directory { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.card, .panel, .auth-panel {
  min-width: 0;
  padding: clamp(17px, 2.5vw, 28px);
  border: 1px solid var(--border);
  border-radius: var(--radius-card);
  background: var(--surface);
  box-shadow: var(--shadow);
  overflow-wrap: anywhere;
}
.card { display: flex; flex-direction: column; align-items: flex-start; }
.card:focus-within { border-color: var(--control-border); }
.card p, .panel p { white-space: pre-line; }
.panel { margin-block: var(--gap); }
.card a, .panel a { font-weight: 680; }
.card .arrow { margin-top: auto; }
.arrow { display: inline-flex; align-items: center; min-height: 44px; font-weight: 680; }
.arrow:hover, .breadcrumb:hover, .footer a:hover { text-decoration-thickness: 2px; }
.badge {
  display: inline-block;
  margin-bottom: .65em;
  border-radius: 999px;
  padding: .23em .72em;
  background: var(--green-tint);
  color: var(--green);
  font-size: .8rem;
  font-weight: 650;
}

.button, button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: .68em 1rem;
  border: 1px solid transparent;
  border-radius: var(--radius-control);
  background: var(--green);
  color: var(--surface);
  font: inherit;
  font-weight: 690;
  line-height: 1.25;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
}
.button:hover, button:not(:disabled):hover { background: var(--green-hover); }
.button.outline, button.outline { border-color: var(--control-border); background: var(--surface); color: var(--green); }
.button.outline:hover, button.outline:not(:disabled):hover { background: var(--green-tint); }
.button.compact { min-height: 44px; padding-inline: .8rem; }
button:active:not(:disabled), .button:active { box-shadow: inset 0 1px 3px #142e2440; }
button:disabled { background: #e7ede7; border-color: var(--border); color: var(--muted); cursor: wait; }

.actions, .search { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-end; }
.search label { flex: 1 1 155px; }
.search label:first-child { flex-basis: 240px; }
.filters {
  margin-block: 1.6rem 1rem;
  padding: clamp(14px, 2.5vw, 23px);
  border: 1px solid var(--border);
  border-radius: var(--radius-card);
  background: var(--surface);
  box-shadow: var(--shadow);
}
.stack { display: grid; gap: 13px; width: min(100%, 640px); }
.stack button { justify-self: start; }
label { display: grid; gap: .35rem; min-width: 0; font-size: .92rem; font-weight: 650; }
label.check { display: flex; align-items: flex-start; gap: .65rem; font-weight: 500; }
input, select, textarea {
  width: 100%;
  min-width: 0;
  min-height: 46px;
  padding: .58em .72em;
  border: 1px solid var(--control-border);
  border-radius: var(--radius-control);
  background: var(--surface);
  color: var(--ink);
  font: 1rem/1.45 Inter, 'Segoe UI', system-ui, sans-serif;
}
input::placeholder { color: var(--muted); opacity: 1; }
input[type=checkbox] { flex: 0 0 auto; min-height: 0; width: 18px; height: 18px; margin: .17em 0 0; accent-color: var(--green); }
textarea { min-height: 6rem; resize: vertical; }
.notice, .loading, .form-status:not(:empty) { padding: .75rem 1rem; border-radius: var(--radius-control); }
.notice { border-inline-start: 3px solid var(--ochre); background: var(--ochre-tint); }
.loading, .form-status:not(:empty) { width: fit-content; background: var(--green-tint); color: var(--green); }
.notice.error, .form-status.error { background: var(--danger-tint); border-color: var(--danger); color: var(--danger); }
.form-status:empty { display: none; }

.tabs { display: flex; flex-wrap: wrap; gap: 8px; margin: 1.5rem 0; }
.tabs a { display: inline-flex; align-items: center; min-height: 44px; padding: .45em .9em; border: 1px solid var(--border); border-radius: 999px; background: var(--surface); text-decoration: none; font-weight: 620; }
.tabs a:hover { background: var(--green-tint); }
.tabs a[aria-current] { border-color: var(--green); background: var(--green); color: var(--surface); }
.breadcrumb { display: inline-flex; align-items: center; min-height: 44px; margin-bottom: .7rem; }
.amount { font-family: var(--font-display); font-size: 1.9rem; font-variant-numeric: tabular-nums; }
.bar { width: 100%; height: 12px; accent-color: var(--green); }
details { margin-block: 12px; }
summary { padding-block: .25rem; cursor: pointer; font-weight: 700; }
details[open] > summary { margin-bottom: 1rem; }
.narrow { max-width: 620px; margin-inline: auto; }
.auth-panel { padding: clamp(20px, 5vw, 48px); }
.auth-panel h1 { margin-bottom: .65em; }

footer { border-top: 1px solid var(--border); background: #f0f4ec; }
.footer { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 20px; padding-block: 22px; color: var(--muted); }
.footer strong { color: var(--green); font-size: 1.16rem; }
.footer a { margin-left: auto; }

@media (max-width: 820px) {
  .grid.directory { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .nav { flex-wrap: wrap; padding-block: 4px 8px; }
  .nav nav { order: 3; width: 100%; justify-content: space-between; }
  .nav nav a { flex: 1; justify-content: center; text-align: center; padding-inline: .38rem; }
  .footer a { margin-left: 0; }
}
@media (max-width: 460px) {
  .grid.directory { grid-template-columns: 1fr; }
  .search button { width: 100%; }
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}
.badge[data-status=referenced] { background: #f0f2ec; color: var(--muted); }
.empty-state {
  margin-block: 1rem;
  padding: clamp(16px, 3vw, 24px);
  border: 1px solid var(--border);
  border-radius: var(--radius-card);
  background: var(--surface);
}
.card-title {
  font: 680 1.15rem/1.28 Inter, 'Segoe UI', system-ui, sans-serif;
  letter-spacing: normal;
  margin: .2em 0 .4em;
}
.arrow { gap: .25em; }


.transparency { padding-block: 12px; }
.transparency-head { display: flex; align-items: end; justify-content: space-between; gap: 5px 12px; flex-wrap: wrap; margin-bottom: 7px; }
.transparency-head h2, .live-status { margin: 0; }
.live-status { font-size: .86rem; color: var(--muted); }
.live-status[data-live] { color: var(--green); }
.live-status[data-live]::before { content: ''; display: inline-block; width: .48rem; height: .48rem; margin-right: .4rem; border-radius: 50%; background: currentColor; }
.public-metrics { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 6px 12px; margin: 0; }
.public-metrics > div { display: flex; flex-direction: column-reverse; justify-content: flex-end; padding: 7px 10px; border: 1px solid var(--border); border-radius: var(--radius-card); background: var(--surface); }
.public-metrics dt { color: var(--muted); font-size: .89rem; }
.public-metrics dd { margin: 0 0 .28em; color: var(--green); font: 600 clamp(1.3rem,3vw,2rem)/1.05 var(--font-display); overflow-wrap: anywhere; }
.workspace-header { padding: clamp(18px,3vw,30px); border: 1px solid var(--border); border-radius: var(--radius-card); background: var(--green-tint); }
.workspace-header p:last-child { margin-bottom: 0; }
.workspace-tags { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; padding: 0; margin: .65rem 0 0; }
.workspace-tags .badge { margin: 0; background: var(--surface); }
.workspace-tabs a { border-radius: var(--radius-control); }
.panel summary { overflow-wrap: anywhere; }
.panel summary .badge { margin-left: .35rem; vertical-align: middle; }

@media (max-width: 900px) {
  .public-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
/* Full-width image and type integrated into a 380px banner. */
.hero {
  position: relative;
  isolation: isolate;
  height: 380px;
  color: #fffdf6;
  background: #102820;
}
.hero-layout { display: flex; align-items: center; height: 100%; }
.hero-copy { width: min(100%,565px); }
.hero .eyebrow {
  display: inline-block;
  margin: 0 0 .8rem;
  padding: .32rem .7rem;
  border: 1px solid #eec78860;
  border-radius: 999px;
  color: #ffe5b9;
  background: #d5953c22;
  font-size: .69rem;
}
.hero h1 {
  margin: 0;
  font: 800 clamp(2.05rem,4.8vw,3.75rem)/1.04 Inter,'Segoe UI',system-ui,sans-serif;
  letter-spacing: -.052em;
}
.hero h1 em { display: block; color: #f7cc88; font-style: normal; }
.hero-copy > p:not(.eyebrow) { max-width: 44ch; margin: .65rem 0 1rem; color: #fffdf6; font-size: 1rem; }
.hero .search { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: .6rem; max-width: 465px; }
.hero .search input, .hero .search button { border-radius: 999px; }
.hero .search button { color: #172e24; background: #efc680; padding-inline: 1.2rem; }
.hero .search button:hover { background: #ffdaa0; }
.hero-link { color: #ffe5b9; gap: .35rem; min-height: 38px; margin-top: .15rem; font-size: .9rem; }
.hero :focus-visible { outline-color: #ffd591; }
.hero-media, .hero-media::after { position: absolute; inset: 0; }
.hero-media { z-index: -1; overflow: hidden; }
.hero-media img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 46%; }
.hero-media::after {
  content: '';
  background: linear-gradient(90deg,#0e2721fc 0%,#0e2721e8 28%,#0e2721a0 52%,#0e272126 80%),
    linear-gradient(0deg,#0e27218f,transparent 65%);
}
.transparency { scroll-margin-top: 1rem; }
.transparency h2 { font: 750 .75rem/1.35 Inter,'Segoe UI',system-ui,sans-serif; letter-spacing: .12em; }
@media (max-width: 680px) {
  .hero h1 { font-size: clamp(2rem,8vw,3rem); }
  .hero-copy > p:not(.eyebrow) { max-width: 35ch; font-size: .94rem; }
  .hero-media img { object-position: 61% 49%; }
  .hero-media::after { background: linear-gradient(90deg,#0e2721f0,#0e2721be 55%,#0e272179), linear-gradient(0deg,#0e2721a1,transparent 80%); }
}
@media (max-width: 600px) {
  .nav nav { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 2px; }
  .nav nav a { font-size: clamp(.76rem,2.55vw,.92rem); padding-inline: 2px; }
}
@media (max-width: 400px) {
  .hero .search { grid-template-columns: minmax(0,1fr); gap: .45rem; }
  .hero-copy > p:not(.eyebrow) { margin-block: .48rem .75rem; }
}

/* Navigation inspired by the segmented NSF layout. */
html { scroll-padding-top: 96px; }
.top { position: sticky; top: 0; z-index: 20; background: var(--surface); box-shadow: 0 3px 18px #1933260b; }
.skip { z-index: 30; }
.nav nav {
  gap: 2px;
  padding: 4px;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: #f5f7f2;
}
.nav nav a { min-height: 40px; padding-inline: clamp(.75rem,1.4vw,1.22rem); border-radius: 999px; white-space: nowrap; }
.nav nav a[aria-current], body:has(#transparence:target) .nav nav a[href="/#transparence"] { color: #fff; background: var(--green); box-shadow: 0 2px 5px #16332524; }
body:has(#transparence:target) .nav nav .nav-home { color: var(--muted); background: transparent; box-shadow: none; }
.brand { gap: .6rem; }
.brand-emblem { display: grid; place-items: center; width: 51px; height: 51px; border: 1px solid var(--border); border-radius: 15px; }
.brand-logo { width: 48px; height: 48px; }
.brand-name { line-height: 1.03; }
.brand-name small { display: block; margin-top: .22rem; color: var(--ochre); font: 750 .58rem/1.15 Inter,'Segoe UI',system-ui,sans-serif; letter-spacing: .12em; text-transform: uppercase; }
#account-link { background: #f5d59f; color: var(--ink); border-color: #d7b37c; border-radius: 999px; padding-inline: 1.1rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: inline-block; align-content: center; }
#account-link:hover { background: #f9e1b8; }

.hero-slide { position: absolute; inset: 0; opacity: 0; transition: opacity .7s ease; }
.hero-slide.is-current { opacity: 1; }
.hero-controls { position: absolute; right: max(var(--gutter),calc((100% - 1200px)/2)); bottom: 14px; display: flex; gap: 4px; }
.hero-controls button { min-height: 36px; width: 36px; padding: 0; border: 1px solid #ffffff60; border-radius: 50%; background: #142d25f0; color: #fffdf6; font-size: 1.22rem; }
.hero-controls button:hover { background: #29493d; }
.hero-controls[hidden] { display: none; }
@media (prefers-reduced-motion: reduce) { .hero-slide { transition: none; } }

.public-metrics { column-gap: 12px; }
.public-metrics > div { position: relative; padding-left: clamp(43px,4vw,62px); box-shadow: 0 2px 8px #19332608; }
.metric-mark {
  position: absolute;
  top: 50%;
  left: clamp(9px,1.35vw,20px);
  transform: translateY(-50%);
  display: grid;
  place-items: center;
  width: clamp(25px,2.7vw,34px);
  aspect-ratio: 1;
  border-radius: 13px;
  background: var(--ochre-tint);
  color: var(--ochre);
  font: 750 1.08rem/1 Inter,'Segoe UI',system-ui,sans-serif;
}
.public-metrics dt { font-weight: 700; line-height: 1.25; }
.public-metrics dd { font: 800 clamp(1.05rem,2vw,1.55rem)/1.12 Inter,'Segoe UI',system-ui,sans-serif; }

@media (max-width: 960px) {
  html { scroll-padding-top: 126px; }
  .nav { flex-wrap: wrap; padding-block: 6px 8px; }
  .nav nav { order: 3; width: 100%; justify-content: center; }
}
@media (max-width: 600px) {
  .nav { gap: 6px; }
  .nav nav { grid-template-columns: .95fr .75fr 1.25fr 1.15fr; justify-items: stretch; }
  .nav nav a { padding-inline: 1px; }
  .nav .nav-home { display: none; }
  .brand { font-size: 1.32rem; }
  .brand-emblem { width: 44px; height: 44px; }
  .brand-logo { width: 42px; height: 42px; }
  #account-link { padding-inline: .8rem; font-size: .88rem; }
}
@media (max-width: 360px) {
  .brand-name small { letter-spacing: .035em; font-size: .52rem; }
  .brand { gap: .38rem; }
  #account-link { padding-inline: .65rem; }
  .nav nav a { font-size: .7rem; }
}
@media (max-width: 460px) {
  .hero-controls { bottom: 5px; gap: 2px; }
  .hero-controls button { width: 32px; min-height: 32px; }
}


.community-directory { padding-block: clamp(18px,3vw,35px) 12px; }
.community-directory h2 {
  font: 780 clamp(1.55rem,3vw,2.3rem)/1.1 Inter,'Segoe UI',system-ui,sans-serif;
  letter-spacing: -.04em;
}
.community-filters { margin-block: 1rem .8rem; box-shadow: none; }
.community-status { font-size: .875rem; }
.community-table {
  border: 1px solid var(--border);
  border-radius: var(--radius-card);
  background:
    linear-gradient(100deg,#fffffff5 3%,#ffffffe8 49%,#ffffffc9),
    linear-gradient(0deg,#fff,transparent 45%),
    url('/assets/localites-filigrane.webp') center 46% / cover no-repeat,
    var(--surface);
  overflow: hidden;
}
.community-table table { width: 100%; border-collapse: collapse; text-align: left; font-size: .86rem; line-height: 1.45; }
.community-table thead { background: var(--green-hover); color: #fff; }
.community-table thead th { font-size: .68rem; letter-spacing: .045em; text-transform: uppercase; white-space: nowrap; }
.community-table :is(th,td) { padding: .65rem .72rem; }
.community-table tbody :is(th,td) { overflow-wrap: anywhere; }
.community-table tbody tr + tr { border-top: 1px solid var(--border); }
.community-table tbody tr:hover { background: #f1f7f2a8; }
.community-table .badge { margin: 0; font-size: .73rem; white-space: nowrap; }
.community-name { color: var(--ink); text-decoration: none; }
.community-name:hover { color: var(--green); text-decoration: underline; }
.community-number { font-weight: 680; font-variant-numeric: tabular-nums; }
.community-amount { color: var(--green); }
.community-donation {
  min-height: 40px;
  padding: .5rem .8rem;
  border-radius: 999px;
  background: #f5d59f;
  color: var(--ink);
  font-size: .81rem;
  white-space: nowrap;
}
.community-donation:hover { background: #f9e1b8; }
.community-donation:disabled { cursor: default; background: #f1f2ed; color: var(--muted); }
.community-action small { display: block; margin-top: .2rem; color: var(--muted); }
.community-cell-label { display: none; }
.community-pager { justify-content: flex-end; margin-top: 1rem; }
.community-pager button:disabled { cursor: default; }
.community-directory [hidden] { display: none; }

@media (max-width: 950px) {
  .community-table {
    border: 0;
    border-radius: 0;
    background: linear-gradient(#fffffff2,#ffffffe3), url('/assets/localites-filigrane-640.webp') center top / 100% auto no-repeat;
    overflow: visible;
  }
  .community-table :is(table,tbody) { display: block; }
  .community-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .community-table tbody { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
  .community-table tbody tr {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: .55rem 1rem;
    padding: .85rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-card);
    background: #ffffffb5;
  }
  .community-table tbody :is(th,td) { padding: 0; }
  .community-table tbody th, .community-table .community-action { grid-column: 1 / -1; }
  .community-cell-label { display: block; margin-bottom: .13rem; color: var(--muted); font-size: .74rem; font-weight: 550; }
  .community-action .community-cell-label { display: none; }
  .community-action small { display: inline-block; margin: 0 0 0 .45rem; }
}
@media (max-width: 570px) {
  .community-table tbody { grid-template-columns: 1fr; }
}

.community-directory { padding-top: clamp(12px,1.7vw,22px); }
.community-directory h2 { font-size: clamp(1.28rem,2.25vw,1.8rem); margin-bottom: .4rem; }
.community-filters { margin-block: .7rem .6rem; padding: 10px 12px; gap: 7px; }
.community-filters label { font-size: .77rem; gap: .22rem; flex-basis: 120px; }
.community-filters label:first-child { flex-basis: 230px; }
.community-filters :is(input,select,button) { font-size: .875rem; min-height: 39px; }
.community-filters button { padding-inline: .75rem; }

.follow-actions { display: flex; align-items: center; gap: .8rem; margin-block: .5rem .8rem; }
.resume-card { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; margin-block: .65rem; gap: 8px; padding: .65rem .9rem; background: var(--ochre-tint); border: 1px solid #ead6b4; border-radius: var(--radius-control); }
.resume-card a { font-weight: 720; }
.resume-card button { min-height: 35px; }
.notification-list { list-style: none; padding: 0; }
.notification-list li { border-top: 1px solid var(--border); padding: .45rem .75rem; }
.notification-list li[data-unread] { background: var(--green-tint); }
.notification-list p { margin: 0; }
.notification-list time { color: var(--muted); font-size: .78rem; }

.brand-footer {
  --footer-paper: #fdfcf8;
  --footer-ink: #202a27;
  --footer-muted: #525b54;
  --footer-rule: #e4e1d7;
  color: var(--footer-ink);
  background: var(--footer-paper);
  border-top: 1px solid var(--footer-rule);
}
.footer-topline {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px 28px;
  padding-block: clamp(18px,2.6vw,32px);
  border-bottom: 1px solid var(--footer-rule);
}
.brand-footer a { color: var(--footer-ink); text-decoration: none; }
.brand-footer a:hover { color: var(--green); text-decoration: underline; }
.brand-footer a:focus-visible { outline-color: var(--ochre); }
.footer-lockup {
  display: inline-block;
  padding-bottom: .15rem;
  border-bottom: 3px solid #c69146;
  font-size: clamp(1.65rem,2.5vw,2.35rem);
  font-weight: 790;
  letter-spacing: -.055em;
  line-height: 1.06;
}
.footer-topline p { color: var(--footer-muted); max-width: 58ch; margin: .58rem 0 0; font-size: .91rem; }
.footer-primary { display: flex; flex-wrap: wrap; align-items: center; gap: .55rem .95rem; font-size: .86rem; }
.brand-footer .footer-primary-action {
  display: inline-flex;
  align-items: center;
  min-height: 42px;
  gap: .65rem;
  padding: .55rem .85rem;
  border-radius: 8px;
  color: #2c2315;
  background: #f1d4a1;
  font-weight: 740;
}
.brand-footer .footer-primary-action:hover { background: #f5e0ba; color: #2c2315; }
.footer-contact { font-weight: 660; white-space: nowrap; }
.brand-footer-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: clamp(18px,3vw,46px); padding-block: clamp(18px,2.7vw,32px); }
.brand-footer nav { display: grid; align-content: start; justify-items: start; gap: .48rem; }
.brand-footer nav strong { color: #865008; letter-spacing: .07em; font-size: .72rem; text-transform: uppercase; margin-bottom: .18rem; }
.brand-footer nav a { font-size: .88rem; overflow-wrap: anywhere; }
.brand-footer-bottom { display: flex; align-items: center; justify-content: space-between; gap: 7px 16px; flex-wrap: wrap; border-top: 1px solid var(--footer-rule); padding-block: .72rem; color: var(--footer-muted); font-size: .8rem; }
.resource-page header { max-width: 69ch; margin-bottom: clamp(20px,5vw,42px); }
.resource-page header > a { display: inline-block; margin-bottom: .7rem; }
.resource-sections { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,340px),1fr)); gap: var(--gap); }
.resource-sections section { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-card); padding: clamp(17px,2.5vw,28px); overflow-wrap: anywhere; }
.resource-sections h2 { font: 740 1.26rem/1.2 Inter,'Segoe UI',system-ui,sans-serif; letter-spacing: -.025em; }
.resource-sections p:last-child { margin-bottom: 0; }
#notifications [hidden] { display: none; }
@media (max-width: 760px) {
  .footer-topline { flex-wrap: wrap; }
  .brand-footer-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 460px) {
  .community-filters { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .community-filters label:first-child, .community-filters label:last-of-type { grid-column: 1 / -1; }
  .community-filters :is(input,select,button) { min-height: 44px; }
  .community-filters input[type=search] { font-size: 1rem; }

}




/* Annuaire public */
.atlas{--atlas-ink:#132e26;--atlas-green:#07573e;--atlas-muted:#445e52;--atlas-line:#d8e3d9;--atlas-gold:#f4ce90;color:var(--atlas-ink);padding-bottom:clamp(24px,4vw,58px)}
.atlas-hero{color:#fffaf0;background:linear-gradient(90deg,#10362d 28%,rgba(16,54,45,.92) 58%,rgba(16,54,45,.64)),#10362d url('/assets/localites-filigrane.webp') center 47%/cover}
.atlas-hero-inner{padding-block:clamp(30px,5vw,68px) clamp(40px,6vw,80px)}
.atlas .atlas-kicker{color:var(--atlas-gold);font-size:.77rem;letter-spacing:.13em;text-transform:uppercase;font-weight:800;margin:0 0 .65rem}
.atlas-hero h1{color:inherit;font-size:clamp(2rem,4.2vw,3.65rem);line-height:1.07;margin:0;max-width:24ch;text-wrap:balance}
.atlas-hero h1+p{color:#eff4ee;margin:.8rem 0 1rem;max-width:50ch}
.atlas-reach{display:flex;flex-wrap:wrap;gap:.35rem 1.35rem;color:#f5f6ef;font-size:.87rem}
.atlas-reach strong{color:var(--atlas-gold);font-variant-numeric:tabular-nums}
.atlas-search{position:relative;margin:-20px 0 clamp(18px,3vw,36px);display:grid;grid-template-columns:minmax(0,2fr) repeat(2,minmax(0,1fr)) auto;gap:.65rem;align-items:end;border:1px solid var(--atlas-line);padding:clamp(.85rem,1.7vw,1.35rem);border-radius:16px;background:#fff;box-shadow:0 10px 23px #17382b0e}
.atlas-search label{display:grid;gap:.3rem;min-width:0;font-size:.85rem;font-weight:750}
.atlas-search :is(input,select,button){min-width:0;min-height:44px;margin:0}
.atlas-search :is(input,select){width:100%}
.atlas-layout{display:grid;grid-template-columns:minmax(210px,1fr) minmax(0,3fr);gap:clamp(.8rem,2.4vw,2rem);align-items:start}
.atlas-regions,.atlas-results{background:#fff;border:1px solid var(--atlas-line);border-radius:16px;min-width:0}
.atlas-regions{padding:clamp(.85rem,1.5vw,1.2rem)}
.atlas-regions h2,.atlas-results h2{font:inherit;font-size:clamp(1.1rem,1.65vw,1.45rem);font-weight:800;letter-spacing:-.02em;color:inherit;margin:0}
.atlas-regions p,.atlas-results-header p{margin:.15rem 0 0;color:var(--atlas-muted);font-size:.86rem;overflow-wrap:anywhere}
.atlas-regions ul,.atlas-list{list-style:none;margin:0;padding:0}
.atlas-regions ul{margin-top:.75rem}
.atlas-regions a{display:flex;justify-content:space-between;align-items:center;gap:.55rem;padding:.4rem .5rem;min-height:44px;border-radius:8px;text-decoration:none;color:var(--atlas-green);font-size:.88rem}
.atlas-regions a span:last-child{color:var(--atlas-muted);font-variant-numeric:tabular-nums}
.atlas-regions a:hover,.atlas-regions a[aria-current]{background:#e7f1e9}
.atlas-regions a[aria-current]{font-weight:800;box-shadow:inset 3px 0 var(--atlas-green)}
.atlas-results{scroll-margin-top:9rem}
.atlas-results-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem 1rem;flex-wrap:wrap;padding:clamp(.9rem,2vw,1.35rem);background:#f3f7f1;border-radius:15px 15px 0 0}
.atlas-reset{padding-block:.45rem;font-weight:700;font-size:.86rem}
.atlas-result{position:relative;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) 2rem;align-items:center;gap:.4rem .85rem;border-top:1px solid var(--atlas-line);padding:.7rem clamp(.9rem,2vw,1.35rem);overflow-wrap:anywhere}
.atlas-result:hover,.atlas-result:focus-within{background:#f8faf7}
.atlas-result h3{font:inherit;font-weight:800;font-size:1rem;margin:0;color:var(--atlas-ink)}
.atlas-result h3 a{color:inherit;text-underline-offset:.2em}
.atlas-result h3 a::after{content:'';position:absolute;inset:2px;border-radius:8px}
.atlas-result h3 a:focus-visible::after{outline:2px solid var(--atlas-green);outline-offset:-2px}
.atlas-territory,.atlas-parent,.atlas-geography{font-size:.83rem;margin:0;color:var(--atlas-muted)}
.atlas-territory{font-weight:700;color:var(--atlas-green)}
.atlas-geography{display:grid;align-content:center}
.atlas-geography strong{color:var(--atlas-ink)}
.atlas-arrow{display:grid;place-items:center;width:2rem;height:2rem;border-radius:50%;background:#e7f1e9;color:var(--atlas-green)}
.atlas-empty,.atlas-pagination{padding:1rem clamp(.9rem,2vw,1.35rem);border-top:1px solid var(--atlas-line)}
.atlas-empty h3,.atlas-empty p{margin:.35rem 0}
.atlas-pagination{display:flex;gap:.5rem;justify-content:flex-end;flex-wrap:wrap}
@media(max-width:760px){
  .atlas-hero{background:#10362d}
  .atlas-search{grid-template-columns:repeat(2,minmax(0,1fr))}
  .atlas-search label:first-child,.atlas-search button{grid-column:1/-1}
  .atlas-layout{grid-template-columns:minmax(0,1fr)}
  .atlas-regions ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.15rem .45rem}
  .atlas-regions li:first-child{grid-column:1/-1}
  .atlas-regions a{overflow-wrap:anywhere}
  .atlas-result{grid-template-columns:minmax(0,1fr) 2rem}
  .atlas-geography{grid-column:1}
  .atlas-arrow{grid-column:2;grid-row:1/span 2}
}


@media(max-width:760px){.atlas-search select{padding-inline:.55rem 1.3rem;font-size:.92rem}}
