/* 40 Acres brand identity system — 2025
 *
 * Palette and typography per the brand guide. Layered AFTER Bootstrap so
 * Bootstrap utility classes (bg-*, text-*, border-*, alert-*, btn-*) are
 * repainted in place; templates do not need to change to pick up the brand.
 */

:root {
  /* Brand palette — locked. Do not introduce non-palette colors. */
  --brand-coffee:   #8E5C42;
  --brand-mahogany: #2E1A0E;
  --brand-peru:     #CD853F;
  --brand-camel:    #C19A6B;
  --brand-cream:    #F5EFE6;

  /* Bootstrap 5.3 token overrides. Drives bg-*, text-*, border-*, link
   * color, body bg, etc. via the framework's --bs-* properties. */
  --bs-primary: var(--brand-coffee);
  --bs-primary-rgb: 142, 92, 66;
  --bs-success: var(--brand-peru);
  --bs-success-rgb: 205, 133, 63;
  --bs-info: var(--brand-camel);
  --bs-info-rgb: 193, 154, 107;
  --bs-warning: var(--brand-peru);
  --bs-warning-rgb: 205, 133, 63;
  --bs-dark: var(--brand-mahogany);
  --bs-dark-rgb: 46, 26, 14;
  --bs-light: var(--brand-cream);
  --bs-light-rgb: 245, 239, 230;

  --bs-body-bg: var(--brand-cream);
  --bs-body-color: var(--brand-mahogany);
  --bs-link-color: var(--brand-coffee);
  --bs-link-color-rgb: 142, 92, 66;
  --bs-link-hover-color: var(--brand-mahogany);
  --bs-border-color: rgba(46, 26, 14, 0.18);
}

/* ---------- Typography ---------- */

body {
  font-family: "Barlow", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  font-weight: 400;
  background-color: var(--brand-cream);
  color: var(--brand-mahogany);
}

h1, h2, h3, .h1, .h2, .h3,
.display-1, .display-2, .display-3, .display-4, .display-5, .display-6 {
  font-family: "Barlow Condensed", "Barlow", system-ui, sans-serif;
  font-weight: 900;
  letter-spacing: 0.01em;
  color: var(--brand-mahogany);
  text-transform: none;
}

h4, h5, h6, .h4, .h5, .h6 {
  font-family: "Barlow", system-ui, sans-serif;
  font-weight: 600;
  color: var(--brand-mahogany);
}

.lead {
  font-family: "Barlow", system-ui, sans-serif;
  font-weight: 600;
}

.text-muted {
  color: rgba(46, 26, 14, 0.65) !important;
}

a { color: var(--brand-coffee); }
a:hover { color: var(--brand-mahogany); }

/* ---------- Wordmark ---------- */

.navbar-brand.brand-wordmark {
  font-family: "Barlow Condensed", "Barlow", system-ui, sans-serif;
  font-weight: 900;
  font-size: 1.85rem;
  letter-spacing: 0.05em;
  line-height: 1;
  color: var(--brand-coffee) !important;
  text-shadow: 2px 2px 0 var(--brand-mahogany);
  text-transform: uppercase;
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
}

/* ---------- Navbar ---------- */

.navbar.bg-dark,
.navbar-dark.bg-dark {
  background-color: var(--brand-mahogany) !important;
  border-bottom: 1px solid rgba(245, 239, 230, 0.08);
}

.navbar-dark .nav-link {
  color: var(--brand-cream) !important;
  opacity: 0.82;
}
.navbar-dark .nav-link:hover,
.navbar-dark .nav-link:focus { opacity: 1; }
.navbar-dark .navbar-text,
.navbar-dark .nav-link.text-light { color: var(--brand-cream) !important; }

/* ---------- Backgrounds ---------- */

.bg-primary { background-color: var(--brand-coffee) !important; }
.bg-success { background-color: var(--brand-peru) !important; }
.bg-info    { background-color: var(--brand-camel) !important; }
.bg-warning { background-color: var(--brand-peru) !important; }
.bg-dark    { background-color: var(--brand-mahogany) !important; }
.bg-light   { background-color: var(--brand-cream) !important; }

/* Text on dark / accent surfaces */
.bg-primary.text-white,
.bg-success.text-white,
.bg-dark.text-white { color: var(--brand-cream) !important; }

/* ---------- Text colors ---------- */

.text-primary { color: var(--brand-coffee) !important; }
.text-success { color: var(--brand-peru) !important; }
.text-info    { color: var(--brand-camel) !important; }

/* ---------- Borders ---------- */

.border-primary { border-color: var(--brand-coffee) !important; }
.border-success { border-color: var(--brand-peru) !important; }
.border-info    { border-color: var(--brand-camel) !important; }

/* ---------- Buttons ---------- */
/* Bootstrap 5.3 buttons are driven by per-class --bs-btn-* tokens, so
 * redeclaring them inside .btn-X is enough — no rule rewrites needed. */

.btn-primary {
  --bs-btn-color: var(--brand-cream);
  --bs-btn-bg: var(--brand-coffee);
  --bs-btn-border-color: var(--brand-coffee);
  --bs-btn-hover-color: var(--brand-cream);
  --bs-btn-hover-bg: var(--brand-mahogany);
  --bs-btn-hover-border-color: var(--brand-mahogany);
  --bs-btn-focus-shadow-rgb: 142, 92, 66;
  --bs-btn-active-color: var(--brand-cream);
  --bs-btn-active-bg: var(--brand-mahogany);
  --bs-btn-active-border-color: var(--brand-mahogany);
  --bs-btn-disabled-color: var(--brand-cream);
  --bs-btn-disabled-bg: var(--brand-coffee);
  --bs-btn-disabled-border-color: var(--brand-coffee);
}

.btn-success {
  --bs-btn-color: var(--brand-mahogany);
  --bs-btn-bg: var(--brand-peru);
  --bs-btn-border-color: var(--brand-peru);
  --bs-btn-hover-color: var(--brand-cream);
  --bs-btn-hover-bg: var(--brand-coffee);
  --bs-btn-hover-border-color: var(--brand-coffee);
  --bs-btn-focus-shadow-rgb: 205, 133, 63;
  --bs-btn-active-color: var(--brand-cream);
  --bs-btn-active-bg: var(--brand-coffee);
  --bs-btn-active-border-color: var(--brand-coffee);
  --bs-btn-disabled-color: var(--brand-mahogany);
  --bs-btn-disabled-bg: var(--brand-peru);
  --bs-btn-disabled-border-color: var(--brand-peru);
}

.btn-info {
  --bs-btn-color: var(--brand-mahogany);
  --bs-btn-bg: var(--brand-camel);
  --bs-btn-border-color: var(--brand-camel);
  --bs-btn-hover-color: var(--brand-cream);
  --bs-btn-hover-bg: var(--brand-coffee);
  --bs-btn-hover-border-color: var(--brand-coffee);
}

.btn-warning {
  --bs-btn-color: var(--brand-mahogany);
  --bs-btn-bg: var(--brand-peru);
  --bs-btn-border-color: var(--brand-peru);
  --bs-btn-hover-color: var(--brand-cream);
  --bs-btn-hover-bg: var(--brand-coffee);
  --bs-btn-hover-border-color: var(--brand-coffee);
}

.btn-dark {
  --bs-btn-color: var(--brand-cream);
  --bs-btn-bg: var(--brand-mahogany);
  --bs-btn-border-color: var(--brand-mahogany);
  --bs-btn-hover-color: var(--brand-cream);
  --bs-btn-hover-bg: var(--brand-coffee);
  --bs-btn-hover-border-color: var(--brand-coffee);
}

.btn-outline-primary {
  --bs-btn-color: var(--brand-coffee);
  --bs-btn-border-color: var(--brand-coffee);
  --bs-btn-hover-color: var(--brand-cream);
  --bs-btn-hover-bg: var(--brand-coffee);
  --bs-btn-hover-border-color: var(--brand-coffee);
  --bs-btn-focus-shadow-rgb: 142, 92, 66;
  --bs-btn-active-color: var(--brand-cream);
  --bs-btn-active-bg: var(--brand-coffee);
  --bs-btn-active-border-color: var(--brand-coffee);
}

.btn-outline-success {
  --bs-btn-color: var(--brand-peru);
  --bs-btn-border-color: var(--brand-peru);
  --bs-btn-hover-color: var(--brand-mahogany);
  --bs-btn-hover-bg: var(--brand-peru);
  --bs-btn-hover-border-color: var(--brand-peru);
  --bs-btn-focus-shadow-rgb: 205, 133, 63;
  --bs-btn-active-color: var(--brand-mahogany);
  --bs-btn-active-bg: var(--brand-peru);
  --bs-btn-active-border-color: var(--brand-peru);
}

/* ---------- Cards ---------- */

.card {
  background-color: #fff;
  border-color: rgba(46, 26, 14, 0.12);
}

.card-header.bg-primary {
  background-color: var(--brand-coffee) !important;
  color: var(--brand-cream) !important;
}
.card-header.bg-success {
  background-color: var(--brand-peru) !important;
  color: var(--brand-mahogany) !important;
}
.card-header.bg-warning {
  background-color: var(--brand-peru) !important;
  color: var(--brand-mahogany) !important;
}

/* ---------- Alerts ---------- */

.alert-success {
  --bs-alert-color: var(--brand-mahogany);
  --bs-alert-bg: rgba(205, 133, 63, 0.18);
  --bs-alert-border-color: var(--brand-peru);
  --bs-alert-link-color: var(--brand-coffee);
}
.alert-primary {
  --bs-alert-color: var(--brand-mahogany);
  --bs-alert-bg: rgba(142, 92, 66, 0.15);
  --bs-alert-border-color: var(--brand-coffee);
  --bs-alert-link-color: var(--brand-coffee);
}
.alert-info {
  --bs-alert-color: var(--brand-mahogany);
  --bs-alert-bg: rgba(193, 154, 107, 0.22);
  --bs-alert-border-color: var(--brand-camel);
  --bs-alert-link-color: var(--brand-coffee);
}
.alert-warning {
  --bs-alert-color: var(--brand-mahogany);
  --bs-alert-bg: rgba(205, 133, 63, 0.25);
  --bs-alert-border-color: var(--brand-peru);
  --bs-alert-link-color: var(--brand-coffee);
}

/* ---------- Badges ---------- */

.badge.bg-primary { background-color: var(--brand-coffee) !important; color: var(--brand-cream) !important; }
.badge.bg-success { background-color: var(--brand-peru) !important; color: var(--brand-mahogany) !important; }
.badge.bg-info    { background-color: var(--brand-camel) !important; color: var(--brand-mahogany) !important; }
.badge.bg-warning { background-color: var(--brand-peru) !important; color: var(--brand-mahogany) !important; }
.badge.bg-secondary { background-color: rgba(46, 26, 14, 0.55) !important; color: var(--brand-cream) !important; }

/* ---------- Forms ---------- */

.form-control,
.form-select {
  background-color: #fff;
  border-color: rgba(46, 26, 14, 0.2);
  color: var(--brand-mahogany);
}
.form-control:focus,
.form-select:focus {
  border-color: var(--brand-coffee);
  box-shadow: 0 0 0 0.2rem rgba(142, 92, 66, 0.2);
}
.form-label { font-weight: 600; color: var(--brand-mahogany); }

/* ---------- Footer ---------- */

footer.bg-light {
  background-color: var(--brand-mahogany) !important;
  color: var(--brand-cream) !important;
  border-top: 1px solid rgba(245, 239, 230, 0.08);
}
footer.bg-light .text-muted,
footer.bg-light p {
  color: rgba(245, 239, 230, 0.65) !important;
}

/* ---------- Caption / label utility (Barlow Bold All Caps) ---------- */

.brand-caption {
  font-family: "Barlow", system-ui, sans-serif;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.78rem;
  color: var(--brand-coffee);
}
