:root {
  --pine: #1f5d38;
  --evergreen: #123a28;
  --moss: #6f8f3b;
  --bark: #8a5a2b;
  --wood: #c3833d;
  --paper: #fffaf0;
  --wash: #e9f1df;
  --text: #243126;
  --muted: #61705f;
  --line: #c9d5bd;
}
* { box-sizing: border-box; }
body {
  margin: 0;
  color: var(--text);
  background-color: var(--wash);
  background-image: linear-gradient(180deg, rgba(31,93,56,.18), rgba(233,241,223,.72) 260px, #f7f3e8 680px);
  font-family: Arial, Helvetica, sans-serif;
  font-size: 15px;
  line-height: 1.55;
}
a { color: var(--moss); }
.site-shell {
  width: min(1180px, calc(100vw - 32px));
  margin: 18px auto 28px;
  border: 1px solid rgba(31,93,56,.35);
  background: #fdf8ea;
  box-shadow: 0 16px 45px rgba(18,58,40,.18);
}
.masthead {
  min-height: 188px;
  display: grid;
  grid-template-columns: 260px 1fr 220px;
  gap: 22px;
  align-items: center;
  padding: 12px 24px 18px;
  background-color: var(--bark);
  background-image: linear-gradient(90deg, rgba(18,58,40,.85), rgba(31,93,56,.58)), linear-gradient(135deg, #dce8cd, #f6efe0);
  color: white;
  border-bottom: 4px solid var(--wood);
}
.logo-link img {
  width: 237px;
  height: 204px;
  object-fit: contain;
  margin-bottom: -36px;
  filter: drop-shadow(0 8px 10px rgba(0,0,0,.25));
}
.agency .site-title {
  margin: 0 0 8px;
  color: white;
  font: 700 32px/1.12 Georgia, "Times New Roman", serif;
  letter-spacing: 0;
  text-transform: uppercase;
}
.agency p { margin: 4px 0; color: #edf5e8; }
.agency .kicker { font-weight: 700; }
.agency span {
  display: inline-block;
  margin-top: 12px;
  padding: 6px 10px;
  background: rgba(255,250,240,.16);
  border: 1px solid rgba(255,255,255,.32);
  font-size: 13px;
}
.mast-tools {
  display: flex;
  flex-direction: column;
  gap: 10px;
  font-size: 13px;
}
.mast-tools a { color: white; font-weight: 700; }
.topnav {
  min-height: 44px;
  display: flex;
  flex-wrap: wrap;
  padding: 0 18px;
  background: linear-gradient(#2d7445, #1b5032);
  border-bottom: 1px solid #0e2d1d;
}
.topnav > a,
.topnav-item > a {
  display: block;
  color: white;
  padding: 11px 14px;
  border-right: 1px solid rgba(255,255,255,.16);
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
}
.topnav > a:first-child { background: rgba(0,0,0,.18); }
.topnav-item { position: relative; }
.dropdown {
  display: none;
  position: absolute;
  z-index: 5;
  top: 100%;
  left: 0;
  min-width: 220px;
  background: var(--evergreen);
  border: 1px solid rgba(255,255,255,.18);
}
.dropdown a { display: block; color: white; padding: 8px 12px; font-size: 13px; }
.has-children:hover .dropdown { display: block; }
.site-main { padding: 24px; }
.content-grid {
  display: grid;
  grid-template-columns: 250px minmax(0, 1fr) 230px;
  gap: 22px;
}
.single-column { max-width: 900px; margin: 0 auto; }
.side-box,
.rail-box,
.content-panel {
  border: 1px solid var(--line);
  background: rgba(255,250,240,.88);
}
.side-box,
.rail-box { padding: 14px; margin-bottom: 16px; }
.side-box h2,
.rail-box h2 {
  margin: 0 0 10px;
  color: var(--evergreen);
  font: 700 19px/1.2 Georgia, "Times New Roman", serif;
}
.side-menu,
.side-menu ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.side-menu { border-top: 1px solid var(--line); }
.side-menu li { border-bottom: 1px solid var(--line); }
.side-menu ul li { border-bottom: 0; }
.side-menu a {
  display: block;
  padding: 8px 4px 8px 18px;
  color: #1d4d32;
  font-size: 13px;
  font-weight: 700;
  position: relative;
}
.side-menu ul a { padding-left: 30px; font-weight: 400; }
.side-menu a::before {
  content: "";
  width: 0;
  height: 0;
  border-top: 4px solid transparent;
  border-bottom: 4px solid transparent;
  border-left: 6px solid var(--moss);
  position: absolute;
  left: 4px;
  top: 14px;
}
.search-form { display: flex; border: 1px solid var(--line); background: white; }
.search-form input[type="search"] {
  min-width: 0;
  flex: 1;
  height: auto;
  margin: 0;
  border: 0;
  padding: 8px;
}
.search-form button {
  border: 0;
  background: var(--pine);
  color: white;
  padding: 0 10px;
  font-weight: 700;
}
.page-head {
  padding: 20px 24px 14px;
  background: linear-gradient(180deg, #fffaf0, #f0ead6);
  border-bottom: 1px solid var(--line);
}
.page-head p { margin: 0 0 6px; color: var(--muted); }
.page-head h1 {
  margin: 0;
  color: var(--pine);
  font: 700 28px/1.18 Georgia, "Times New Roman", serif;
}
.content-card { background-color: var(--paper); }
.prose,
.listing-feed,
.media-content {
  padding: 22px 24px 26px;
  background: rgba(255,255,255,.45);
}
.prose h2,
.prose h3 {
  color: var(--pine);
  font-family: Georgia, "Times New Roman", serif;
}
.prose p { margin: 0 0 14px; }
.prose figure { margin: 18px 0; }
.prose img,
.media-content img,
.gallery-grid img {
  max-width: 100%;
  height: auto;
  border: 1px solid var(--line);
  background: white;
}
.table-wrap { overflow-x: auto; margin: 16px 0; }
table.striped { width: 100%; background: white; font-size: 14px; }
table.striped td,
table.striped th {
  padding: 9px 10px;
  border: 1px solid var(--line);
  vertical-align: top;
}
.listing-item {
  display: grid;
  grid-template-columns: 110px 1fr;
  gap: 14px;
  padding: 14px 0;
  border-bottom: 1px solid var(--line);
}
.listing-item h2 {
  margin: 0 0 6px;
  font: 700 20px/1.25 Georgia, "Times New Roman", serif;
}
.listing-item time { color: var(--muted); font-size: 12px; }
.archive-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 18px 24px 24px;
}
.archive-links a {
  padding: 5px 8px;
  border: 1px solid var(--line);
  background: var(--wash);
  color: var(--evergreen);
  font-size: 13px;
}
.rail-box img {
  display: block;
  max-width: 100%;
  height: auto;
  margin: 8px 0 10px;
  border: 1px solid var(--line);
  background: white;
}
.rail-box p {
  border-left: 4px solid var(--wood);
  padding-left: 10px;
  color: var(--muted);
  font-size: 13px;
}
.breadcrumbs {
  margin: 0 0 14px;
  color: var(--muted);
  font-size: 13px;
}
.breadcrumbs a::after { content: "/"; margin: 0 6px; color: var(--muted); }
.toc {
  margin: 16px 24px;
  padding: 12px 16px;
  background: var(--wash);
  border-left: 4px solid var(--moss);
}
.summary,
.empty-note {
  padding: 14px 16px;
  background: var(--wash);
  border-left: 4px solid var(--moss);
  font-family: Georgia, "Times New Roman", serif;
}
.category-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; padding: 22px 0; }
.category-grid.columns-2 { grid-template-columns: repeat(2, 1fr); }
.category-grid.columns-4 { grid-template-columns: repeat(4, 1fr); }
.category-card {
  border: 1px solid var(--line);
  background: var(--paper);
  padding: 14px;
}
.category-card.horizontal { grid-column: span 2; display: grid; grid-template-columns: 180px 1fr; gap: 14px; }
.category-card.minimal { background: var(--wash); }
.category-card img { max-width: 100%; height: auto; }
.category-card h2 { margin: 6px 0; font: 700 20px/1.25 Georgia, "Times New Roman", serif; }
.gallery-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; }
.site-footer {
  padding: 18px 24px;
  color: #e9f1df;
  background: var(--evergreen);
  font-size: 13px;
}
.site-footer a { color: white; margin-right: 12px; }
@media (max-width: 980px) {
  .site-shell { width: 100%; margin: 0; border-left: 0; border-right: 0; }
  .masthead { grid-template-columns: 1fr; text-align: center; }
  .logo-link img { margin: 0 auto -18px; }
  .content-grid { grid-template-columns: 1fr; }
  .right-rail { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
  .category-grid { grid-template-columns: 1fr; }
  .category-card.horizontal { grid-column: auto; grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .site-main { padding: 14px; }
  .topnav { padding: 0; }
  .topnav > a,
  .topnav-item { flex: 1 1 50%; }
  .topnav > a,
  .topnav-item > a { text-align: center; }
  .right-rail { grid-template-columns: 1fr; }
  .listing-item { grid-template-columns: 1fr; }
}
