:root{
  --forest:#2B4636;
  --forest-2:#3E5C43;
  --sage:#7C9473;
  --sage-pale:#E7ECE1;
  --paper:#EEF0E4;
  --honey:#B9822E;
  --ink:#1E2A20;
  --white:#FFFFFF;
  --hair: rgba(30,42,32,.16);
}

html{scroll-behavior:smooth;}

body{
  background:var(--paper);
  color:var(--ink);
  font-family:'PT Sans', sans-serif;
  font-size:1.02rem;
  line-height:1.65;
}

h1,h2,h3,.brand{
  font-family:'Bitter', serif;
  color:var(--forest);
  letter-spacing:-.01em;
}

a{color:var(--forest); text-decoration-color: var(--hair);}
a:hover{color:var(--honey);}

/* ---------- Smooth underline links ---------- */
.u-link{
  position:relative;
  text-decoration:none;
  background-image:linear-gradient(var(--honey), var(--honey));
  background-repeat:no-repeat;
  background-position:0 100%;
  background-size:0% 2px;
  transition:background-size .35s cubic-bezier(.4,0,.2,1), color .25s ease;
}
.u-link:hover{
  background-size:100% 2px;
  color:var(--forest);
}

/* ---------- Scroll reveal ---------- */
.reveal{
  opacity:0;
  transform:translateY(22px);
  transition:opacity .8s cubic-bezier(.2,.6,.2,1), transform .8s cubic-bezier(.2,.6,.2,1);
}
.reveal.is-visible{
  opacity:1;
  transform:translateY(0);
}
@media (prefers-reduced-motion: reduce){
  .reveal, .reveal.is-visible{opacity:1; transform:none; transition:none;}
}

.container-narrow{max-width:1140px; margin:0 auto; padding-left:1.25rem; padding-right:1.25rem;}

/* ---------- Top strips ---------- */
.strip-mail{
  background:var(--forest);
  color:#DCE6DD;
  text-align:center;
  font-size:.85rem;
  padding:.45rem 0;
}
.strip-mail a{color:#DCE6DD;}
.strip-mail a:hover{color:var(--honey);}

.strip-brand{
  background-color:var(--paper);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='130' height='90' viewBox='0 0 130 90'%3E%3Cdefs%3E%3Cpath id='ml' d='M0.0 -10.0 L2.1 -6.2 L6.3 -7.2 L3.1 -3.0 L8.2 -1.0 L3.0 1.1 L5.1 4.2 L1.0 5.0 L0.0 9.2 L-1.0 5.0 L-5.1 4.2 L-3.0 1.1 L-8.2 -1.0 L-3.1 -3.0 L-6.3 -7.2 L-2.1 -6.2 Z'/%3E%3C/defs%3E%3Cg fill='none' stroke='%232B4636' stroke-width='1.1' stroke-linejoin='round' opacity='0.16'%3E%3Cuse href='%23ml' transform='translate(3.1 9.4) rotate(217) scale(0.30)'/%3E%3Cuse href='%23ml' transform='translate(19.8 4.7) rotate(301) scale(0.24)'/%3E%3Cuse href='%23ml' transform='translate(34.7 6.3) rotate(169) scale(0.40)'/%3E%3Cuse href='%23ml' transform='translate(59.1 8.8) rotate(54) scale(0.34)'/%3E%3Cuse href='%23ml' transform='translate(75.6 12.7) rotate(267) scale(0.32)'/%3E%3Cuse href='%23ml' transform='translate(94.6 4.6) rotate(213) scale(0.36)'/%3E%3Cuse href='%23ml' transform='translate(109.4 4.3) rotate(170) scale(0.38)'/%3E%3Cuse href='%23ml' transform='translate(11.5 30.8) rotate(332) scale(0.35)'/%3E%3Cuse href='%23ml' transform='translate(26.8 30.0) rotate(337) scale(0.31)'/%3E%3Cuse href='%23ml' transform='translate(50.2 23.0) rotate(78) scale(0.26)'/%3E%3Cuse href='%23ml' transform='translate(69.7 26.4) rotate(108) scale(0.34)'/%3E%3Cuse href='%23ml' transform='translate(83.6 25.9) rotate(211) scale(0.30)'/%3E%3Cuse href='%23ml' transform='translate(103.0 31.0) rotate(334) scale(0.35)'/%3E%3Cuse href='%23ml' transform='translate(124.3 31.9) rotate(59) scale(0.35)'/%3E%3Cuse href='%23ml' transform='translate(4.0 49.6) rotate(205) scale(0.38)'/%3E%3Cuse href='%23ml' transform='translate(20.7 42.1) rotate(206) scale(0.37)'/%3E%3Cuse href='%23ml' transform='translate(35.0 40.6) rotate(356) scale(0.38)'/%3E%3Cuse href='%23ml' transform='translate(51.6 48.0) rotate(54) scale(0.31)'/%3E%3Cuse href='%23ml' transform='translate(72.2 47.7) rotate(16) scale(0.38)'/%3E%3Cuse href='%23ml' transform='translate(94.0 40.4) rotate(119) scale(0.35)'/%3E%3Cuse href='%23ml' transform='translate(115.2 49.8) rotate(359) scale(0.32)'/%3E%3Cuse href='%23ml' transform='translate(7.4 58.8) rotate(11) scale(0.34)'/%3E%3Cuse href='%23ml' transform='translate(24.8 62.1) rotate(56) scale(0.34)'/%3E%3Cuse href='%23ml' transform='translate(41.9 66.7) rotate(345) scale(0.29)'/%3E%3Cuse href='%23ml' transform='translate(69.0 61.8) rotate(187) scale(0.31)'/%3E%3Cuse href='%23ml' transform='translate(85.0 64.0) rotate(223) scale(0.33)'/%3E%3Cuse href='%23ml' transform='translate(106.5 63.1) rotate(259) scale(0.31)'/%3E%3Cuse href='%23ml' transform='translate(118.1 61.0) rotate(188) scale(0.40)'/%3E%3Cuse href='%23ml' transform='translate(3.2 76.1) rotate(209) scale(0.31)'/%3E%3Cuse href='%23ml' transform='translate(13.8 82.2) rotate(22) scale(0.34)'/%3E%3Cuse href='%23ml' transform='translate(38.4 80.7) rotate(127) scale(0.35)'/%3E%3Cuse href='%23ml' transform='translate(57.8 83.4) rotate(22) scale(0.24)'/%3E%3Cuse href='%23ml' transform='translate(76.0 85.6) rotate(164) scale(0.28)'/%3E%3Cuse href='%23ml' transform='translate(93.8 79.2) rotate(113) scale(0.30)'/%3E%3Cuse href='%23ml' transform='translate(110.1 82.0) rotate(136) scale(0.29)'/%3E%3C/g%3E%3C/svg%3E");
  background-repeat:repeat;
  background-size:130px 90px;
  text-align:center;
  padding:1.5rem 0;
  border-bottom:1px solid var(--hair);
  position:relative;
}
.strip-brand .brand{
  font-size:2.6rem;
  font-weight:700;
  margin:0;
  position:relative;
}
.strip-brand .brand a{color:inherit; text-decoration:none;}

/* ---------- Hero / slogan band (homepage) ---------- */
.hero{
  background:var(--forest);
  color:#EFE9DA;
  text-align:center;
  padding:3.5rem 0 4.25rem;
}
.hero h1{
  color:#FBF8F0;
  font-weight:500;
  font-size:clamp(1.1rem, 2.4vw, 1.6rem);
  line-height:1.35;
  max-width:none;
  white-space:nowrap;
  margin:0 auto;
}
.hero p.lead{
  color:#C9D6C6;
  max-width:52ch;
  font-size:1.08rem;
  margin:1.1rem auto 0;
}

/* ---------- Page header (subpages) ---------- */
.page-header{
  background:var(--forest);
  color:#EFE9DA;
  padding:2.5rem 0 2.75rem;
}
.page-header .crumb{
  display:inline-block;
  font-size:.85rem;
  color:#B9C7B4;
  margin-bottom:.75rem;
}
.page-header .crumb:hover{color:var(--honey);}
.page-header h1{
  color:#FBF8F0;
  font-size:clamp(1.7rem, 3vw, 2.3rem);
  margin:0;
}
.page-header p.lead{
  color:#C9D6C6;
  max-width:60ch;
  margin:.75rem 0 0;
}

/* ---------- Buttons ---------- */
.btn-honey{
  background:var(--honey);
  border-color:var(--honey);
  color:#231400;
  font-weight:700;
}
.btn-honey:hover{background:#A8752A; border-color:#A8752A; color:#231400;}
.btn-outline-light{border-color:#9DB39A; color:#EFE9DA;}
.btn-outline-light:hover{background:rgba(255,255,255,.08); color:#fff;}

/* ---------- Announcements digest / list ---------- */
.announce-digest{
  padding:2.25rem 0 1rem;
}
.announce-digest .section-head{margin-bottom:1.1rem;}
.announce-list{list-style:none; margin:0; padding:0;}
.announce-list li{
  border-bottom:1px solid var(--hair);
}
.announce-list a{
  display:flex;
  align-items:baseline;
  gap:.75rem;
  padding:.9rem 0;
  text-decoration:none;
  color:var(--ink);
}
.announce-list a:hover .a-title{color:var(--honey);}
.announce-list .a-dot{
  flex:none;
  width:6px; height:6px;
  border-radius:50%;
  background:var(--honey);
  margin-top:.55rem;
}
.announce-list .a-body{flex:1 1 auto;}
.announce-list .a-title{
  display:block;
  font-family:'Bitter', serif;
  font-weight:600;
  font-size:1.05rem;
  color:var(--forest);
  transition:color .15s ease;
}
.announce-list .a-desc{
  display:block;
  font-size:.88rem;
  color:var(--ink);
  opacity:.75;
  margin-top:.15rem;
}
.announce-list .a-date{
  flex:none;
  font-size:.82rem;
  color:var(--ink);
  opacity:.6;
  white-space:nowrap;
}
.chip-row{display:flex; flex-wrap:wrap; gap:.6rem; margin-bottom:1.5rem;}
.chip{
  border:1px solid var(--hair);
  background:var(--white);
  color:var(--ink);
  font-size:.85rem;
  padding:.35rem .9rem;
  border-radius:999px;
}
.chip.active{background:var(--forest); border-color:var(--forest); color:#FBF8F0;}

/* ---------- Quick links ---------- */
.quicklinks{
  margin-top:-2.75rem;
  position:relative;
  z-index:2;
}
.quick-tile{
  background:var(--white);
  border:1px solid var(--hair);
  padding:1.1rem 1.1rem;
  height:100%;
  display:flex;
  align-items:center;
  gap:.85rem;
  transition:background .15s ease, border-color .15s ease;
}
.quick-tile:hover{background:var(--sage-pale); border-color:var(--sage);}
.quick-tile svg{flex:none; width:28px; height:28px; stroke:var(--forest);}
.quick-tile .t{
  font-family:'Bitter', serif;
  font-weight:600;
  color:var(--forest);
  font-size:1.02rem;
  display:block;
}
.quick-tile .d{font-size:.82rem; color:var(--ink); opacity:.7;}

/* ---------- Section heads ---------- */
.section-head{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  border-bottom:2px solid var(--forest);
  padding-bottom:.6rem;
  margin-bottom:1.75rem;
}
.section-head h2{font-size:1.7rem; margin:0;}
.section-head a{font-size:.9rem; font-weight:700; white-space:nowrap;}

/* ---------- News list with photo gallery ---------- */
.news-photo-item{
  padding:1.75rem 0;
  border-bottom:1px solid var(--hair);
}
.news-photo-item:first-child{padding-top:0;}
.news-photo-item .head{
  display:flex;
  gap:1.25rem;
  margin-bottom:1rem;
}
.news-date{
  flex:none;
  font-family:'Bitter', serif;
  font-weight:700;
  font-size:.95rem;
  color:var(--sage);
  white-space:nowrap;
  padding-top:.15rem;
}
.news-photo-item h3{font-size:1.15rem; margin-bottom:.35rem;}
.news-photo-item h3 a{text-decoration:none;}
.news-photo-item p{margin-bottom:.4rem; color:var(--ink);}
.news-photo-item .more{font-size:.9rem; font-weight:700;}

.thumb-scroll{
  display:flex;
  gap:.65rem;
  overflow-x:auto;
  padding-bottom:.6rem;
  scroll-snap-type:x mandatory;
}
.thumb-scroll img, .thumb-scroll a{
  flex:none;
  width:150px;
  height:112px;
  object-fit:cover;
  border:1px solid var(--hair);
  scroll-snap-align:start;
  background:var(--sage-pale);
  display:block;
}
.thumb-scroll::-webkit-scrollbar{height:6px;}
.thumb-scroll::-webkit-scrollbar-thumb{background:var(--sage); }
.thumb-scroll::-webkit-scrollbar-track{background:var(--hair);}

/* ---------- Article page ---------- */
.article-meta{
  font-size:.9rem;
  color:var(--sage);
  font-weight:700;
  margin-bottom:.5rem;
}
.article-body{max-width:70ch;}
.article-body p{margin-bottom:1.1rem;}
.article-gallery{
  display:flex;
  gap:.75rem;
  overflow-x:auto;
  padding:.25rem 0 1rem;
  margin-bottom:1.5rem;
  scroll-snap-type:x mandatory;
}
.article-gallery a{flex:none; scroll-snap-align:start;}
.article-gallery img{
  width:260px;
  height:190px;
  object-fit:cover;
  border:1px solid var(--hair);
  background:var(--sage-pale);
}
.back-link{display:inline-block; margin-top:2rem; font-weight:700;}

/* ---------- Documents ---------- */
.doc-list{list-style:none; margin:0; padding:0;}
.doc-item{
  display:flex;
  align-items:flex-start;
  gap:1rem;
  padding:1.25rem 0;
  border-bottom:1px solid var(--hair);
}
.doc-item svg{flex:none; width:26px; height:26px; stroke:var(--forest); margin-top:.2rem;}
.doc-item h3{font-size:1.05rem; margin-bottom:.25rem;}
.doc-item p{margin-bottom:.5rem; font-size:.92rem; color:var(--ink); opacity:.8;}
.doc-item .more{font-size:.88rem; font-weight:700;}

/* ---------- Voting ---------- */
.poll-card{
  border:1px solid var(--hair);
  background:var(--white);
  padding:1.5rem;
  margin-bottom:1.25rem;
}
.poll-card .status{
  display:inline-block;
  font-size:.76rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.03em;
  padding:.2rem .6rem;
  border-radius:999px;
  margin-bottom:.75rem;
}
.status.open{background:var(--sage-pale); color:var(--forest);}
.status.closed{background:var(--hair); color:var(--ink);}
.poll-card h3{font-size:1.1rem; margin-bottom:.4rem;}
.poll-card .deadline{font-size:.85rem; color:var(--ink); opacity:.65; margin-bottom:1rem;}
.poll-option{margin-bottom:.75rem;}
.poll-option .label-row{
  display:flex;
  justify-content:space-between;
  font-size:.9rem;
  margin-bottom:.3rem;
}
.poll-option .bar{
  height:8px;
  background:var(--hair);
  overflow:hidden;
}
.poll-option .bar span{
  display:block;
  height:100%;
  background:var(--sage);
}
.poll-note{font-size:.85rem; color:var(--ink); opacity:.7; margin-top:2rem;}

/* ---------- About / contacts ---------- */
.about-block{
  background:var(--forest);
  color:#DCE6DD;
  padding:3rem 0;
}
.about-block h2{color:#FBF8F0;}
.about-block p{color:#C9D6C6; max-width:60ch;}
.contact-card{
  background:transparent;
  border:none;
  padding:1.75rem 0;
  text-align:right;
}
.contact-card h3{color:#FBF8F0; font-size:1.1rem;}
.contact-card a{color:#EFE9DA;}
.contact-card a:hover{color:var(--honey);}
.contact-card li{margin-bottom:.6rem;}
.contact-card ul{padding-right:0;}

/* ---------- Footer ---------- */
footer{
  background:#1F3327;
  color:#9FB39C;
  font-size:.88rem;
  padding:2.75rem 0 2.25rem;
  text-align:center;
}
footer .brand{
  color:#FBF8F0;
  font-size:2.1rem;
  font-weight:700;
  letter-spacing:.01em;
}
footer .brand a{color:inherit; text-decoration:none;}
footer .foot-nav{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:1.75rem;
  margin:1.25rem 0 1.5rem;
}
footer a{color:#C9D6C6; text-decoration:none;}
footer a:hover{color:var(--honey);}

/* ---------- Extra outline button (light backgrounds) ---------- */
.btn-outline-forest{
  border:1px solid var(--forest);
  color:var(--forest);
  background:transparent;
}
.btn-outline-forest:hover{
  background:var(--forest);
  color:#FBF8F0;
}
