:root {
  --bg: #ffffff;
  --bg-2: #ffffff;
  --bg-3: #ffffff;
  --panel: #ffffff;
  --card: #f7f9f7;
  --line: rgba(29, 47, 37, 0.14);
  --line-strong: rgba(154, 106, 23, 0.42);
  --gold: #9a6a17;
  --gold-soft: rgba(154, 106, 23, 0.11);
  --lime: #4f7a40;
  --tx: #1d2520;
  --tx-2: #59645d;
  --tx-3: #7c8780;
  --muted: #667169;
  --danger: #b43d32;
  color-scheme: light;
}

body {
  background: #ffffff;
  color: var(--tx);
}

/* Frontend navigation and page surfaces */
#header {
  background: rgba(255, 255, 255, 0.96);
  border-bottom: 1px solid var(--line);
  box-shadow: 0 6px 24px rgba(24, 42, 32, 0.06);
}

#header.scrolled {
  background: rgba(255, 255, 255, 0.98);
  box-shadow: 0 8px 28px rgba(24, 42, 32, 0.1);
}

.brand,
.nav-links a,
.nav-toggle {
  color: var(--tx);
}

.nav-toggle span {
  background: var(--tx);
}

.services,
.about,
.cases,
.news,
.contact,
.case-detail {
  background: #ffffff;
}

.about-txt p,
.news-t {
  color: var(--tx);
}

.about-stat,
.ct-card,
.cd-meta > div,
.detail-directory {
  background: #f7f9f7;
  border-color: var(--line);
  box-shadow: none;
}

.about-img {
  box-shadow: 0 24px 50px rgba(24, 42, 32, 0.14);
}

.news-item:hover {
  background: #f7f9f7;
}

.btn-gold {
  background: #2f6b4f;
  color: #ffffff;
}

.btn-gold:hover {
  background: #24583f;
  box-shadow: 0 12px 28px rgba(47, 107, 79, 0.2);
}

.btn-ghost {
  background: #ffffff;
  color: var(--tx);
}

.modal {
  background: #ffffff;
  border-color: var(--line);
  box-shadow: 0 30px 80px rgba(24, 42, 32, 0.2);
}

.modal-mask {
  background: rgba(18, 29, 23, 0.48);
}

.modal input,
.modal select,
.modal textarea {
  background: #ffffff;
  color: var(--tx);
  border-color: var(--line);
}

/* Text shown directly on photographs stays light for contrast. */
.hero h1,
.hero p,
.hero-meta span,
.sv-card h3,
.sv-card p,
.case-info,
.case-info p,
.ct-quote,
.ct-quote p,
.ct-quote span,
.cd-hero h2 {
  color: #ffffff;
}

.hero .hero-flag,
.hero-meta b,
.case-tag,
.cd-hero .kicker {
  color: #f1c870;
}

.hero .btn-ghost {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.7);
  color: #ffffff;
}

.hero .btn-ghost:hover {
  background: #ffffff;
  border-color: #ffffff;
  color: #1d2520;
}

.hero::before {
  background: linear-gradient(180deg, rgba(10, 20, 15, 0.72) 0%, rgba(10, 20, 15, 0.35) 42%, rgba(10, 20, 15, 0.55) 72%, rgba(10, 20, 15, 0.88) 100%);
}

.cd-hero-mask {
  background: linear-gradient(180deg, rgba(10, 20, 15, 0.48), rgba(10, 20, 15, 0.24) 45%, rgba(10, 20, 15, 0.86));
}

.sv-card:hover {
  box-shadow: 0 18px 44px rgba(24, 42, 32, 0.18);
}

.case-card {
  background: #eef2ef;
}

.case-note,
.cd-note,
.foot-icp {
  color: var(--tx-3);
}

footer {
  background: #ffffff;
  color: var(--tx-2);
  border-top-color: var(--line);
}

.foot .brand-name {
  color: var(--tx);
}

.foot .police-record,
.cms-footer .police-record {
  color: var(--muted) !important;
}

#toast {
  background: #1d2520;
  color: #ffffff;
  border-color: transparent;
  box-shadow: 0 12px 32px rgba(24, 42, 32, 0.22);
}

/* Article pages and the administration interface */
.cms-header {
  background: #ffffff;
  border-bottom-color: var(--line);
  box-shadow: 0 6px 24px rgba(24, 42, 32, 0.06);
}

.cms-panel,
.cms-dialog {
  background: #ffffff;
  color: var(--tx);
  border-color: var(--line);
  box-shadow: 0 12px 34px rgba(24, 42, 32, 0.06);
}

.cms-input {
  background: #ffffff;
  color: var(--tx);
  border-color: #cbd3ce;
}

.cms-btn-gold {
  background: #2f6b4f;
  border-color: #2f6b4f;
  color: #ffffff;
}

.cms-btn-gold:hover {
  background: #24583f;
  border-color: #24583f;
  color: #ffffff;
}

.cms-dialog::backdrop {
  background: rgba(18, 29, 23, 0.48);
}

.cms-badge {
  background: #e7f2e9;
  color: #27623f;
}

.cms-badge.draft {
  background: #f7eedc;
  color: #815d1c;
}

.site-sidebar button.active {
  background: #e8f1eb;
  color: #24583f;
}

.site-item,
.media-choice {
  background: #f7f9f7;
  color: var(--tx);
}

.site-image-preview {
  background: #eef2ef;
}

.site-save-bar {
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 8px 28px rgba(24, 42, 32, 0.1);
}

.site-switch input {
  accent-color: #2f6b4f;
}

::selection {
  background: #dceadf;
  color: #183224;
}

@media (max-width: 900px) {
  #header .nav-links {
    background: rgba(255, 255, 255, 0.99);
    border-bottom: 1px solid var(--line);
    box-shadow: 0 18px 36px rgba(24, 42, 32, 0.12);
  }
}
