/*
 * EcoShine Bootstrap theme palette
 * Loaded after Bootstrap 5.3.3 so Bootstrap remains the component framework.
 */
:root,
[data-bs-theme="light"] {
  --bs-primary: #5b6f3d;
  --bs-primary-rgb: 35, 43, 23;
  --bs-primary-text-emphasis: #0c261c;
  --bs-primary-bg-subtle: #d2dfda;
  --bs-primary-border-subtle: #a5bfb5;

  --bs-secondary: #78917a;
  --bs-secondary-rgb: 120, 145, 122;
  --bs-secondary-text-emphasis: #303a31;
  --bs-secondary-bg-subtle: #e4e9e4;
  --bs-secondary-border-subtle: #c9d3ca;

  --bs-success: #74a846;
  --bs-success-rgb: 116, 168, 70;
  --bs-success-text-emphasis: #2e431c;
  --bs-success-bg-subtle: #e3eed9;
  --bs-success-border-subtle: #c7dcb5;

  --bs-info: #4f9f91;
  --bs-info-rgb: 79, 159, 145;
  --bs-info-text-emphasis: #20403a;
  --bs-info-bg-subtle: #dcece9;
  --bs-info-border-subtle: #b9d9d3;

  --bs-warning: #d7a63c;
  --bs-warning-rgb: 215, 166, 60;
  --bs-warning-text-emphasis: #564218;
  --bs-warning-bg-subtle: #f7edce;
  --bs-warning-border-subtle: #efdc9e;

  --bs-danger: #b85c4b;
  --bs-danger-rgb: 184, 92, 75;
  --bs-danger-text-emphasis: #4a251e;
  --bs-danger-bg-subtle: #f1dedb;
  --bs-danger-border-subtle: #e3bdb7;

  --bs-light: #f4f2e9;
  --bs-light-rgb: 244, 242, 233;
  --bs-dark: #121710;
  --bs-dark-rgb: 7, 9, 6;

  --bs-body-color: #26332e;
  --bs-body-color-rgb: 38, 51, 46;
  --bs-body-bg: #fffef9;
  --bs-body-bg-rgb: 255, 254, 249;
  --bs-secondary-color: rgba(38, 51, 46, 0.72);
  --bs-secondary-bg: #edf0e9;
  --bs-tertiary-color: rgba(38, 51, 46, 0.52);
  --bs-tertiary-bg: #f7f6f0;
  --bs-border-color: #d9ded5;
  --bs-link-color: #1f5f45;
  --bs-link-color-rgb: 31, 95, 69;
  --bs-link-hover-color: #174834;
  --bs-link-hover-color-rgb: 23, 72, 52;
  --bs-focus-ring-color: rgba(31, 95, 69, 0.25);

  --ecoshine-accent: #b6c94f;
  --ecoshine-accent-rgb: 182, 201, 79;
  --ecoshine-cream: #f4f2e9;
  --ecoshine-forest: #17352b;
}

[data-bs-theme="dark"] {
  --bs-body-color: #edf3ee;
  --bs-body-bg: #11271f;
  --bs-secondary-bg: #17352b;
  --bs-tertiary-bg: #1f4639;
  --bs-border-color: #426356;
  --bs-link-color: #c2d66b;
  --bs-link-hover-color: #d5e38f;
}

/* Bootstrap contextual utilities using the EcoShine palette. */
.bg-primary { background-color: rgba(var(--bs-primary-rgb), var(--bs-bg-opacity, 1)) !important; }
.bg-secondary { background-color: rgba(var(--bs-secondary-rgb), var(--bs-bg-opacity, 1)) !important; }
.bg-success { background-color: rgba(var(--bs-success-rgb), var(--bs-bg-opacity, 1)) !important; }
.bg-info { background-color: rgba(var(--bs-info-rgb), var(--bs-bg-opacity, 1)) !important; }
.bg-warning { background-color: rgba(var(--bs-warning-rgb), var(--bs-bg-opacity, 1)) !important; }
.bg-danger { background-color: rgba(var(--bs-danger-rgb), var(--bs-bg-opacity, 1)) !important; }
.bg-light { background-color: rgba(var(--bs-light-rgb), var(--bs-bg-opacity, 1)) !important; }
.bg-dark { background-color: rgba(var(--bs-dark-rgb), var(--bs-bg-opacity, 1)) !important; }

.text-primary { color: rgba(var(--bs-primary-rgb), var(--bs-text-opacity, 1)) !important; }
.text-secondary { color: rgba(var(--bs-secondary-rgb), var(--bs-text-opacity, 1)) !important; }
.text-success { color: rgba(var(--bs-success-rgb), var(--bs-text-opacity, 1)) !important; }
.text-info { color: rgba(var(--bs-info-rgb), var(--bs-text-opacity, 1)) !important; }
.text-warning { color: rgba(var(--bs-warning-rgb), var(--bs-text-opacity, 1)) !important; }
.text-danger { color: rgba(var(--bs-danger-rgb), var(--bs-text-opacity, 1)) !important; }
.text-dark { color: rgba(var(--bs-dark-rgb), var(--bs-text-opacity, 1)) !important; }

.border-primary { border-color: rgba(var(--bs-primary-rgb), var(--bs-border-opacity, 1)) !important; }
.border-secondary { border-color: rgba(var(--bs-secondary-rgb), var(--bs-border-opacity, 1)) !important; }
.border-success { border-color: rgba(var(--bs-success-rgb), var(--bs-border-opacity, 1)) !important; }
.border-info { border-color: rgba(var(--bs-info-rgb), var(--bs-border-opacity, 1)) !important; }
.border-warning { border-color: rgba(var(--bs-warning-rgb), var(--bs-border-opacity, 1)) !important; }
.border-danger { border-color: rgba(var(--bs-danger-rgb), var(--bs-border-opacity, 1)) !important; }
.border-dark { border-color: rgba(var(--bs-dark-rgb), var(--bs-border-opacity, 1)) !important; }

/* Bootstrap component variants need their component-level CSS variables updated. */
.btn-primary {
  --bs-btn-color: #fff;
  --bs-btn-bg: #1f5f45;
  --bs-btn-border-color: #1f5f45;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #1a513b;
  --bs-btn-hover-border-color: #174834;
  --bs-btn-focus-shadow-rgb: 64, 119, 95;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #194c37;
  --bs-btn-active-border-color: #174834;
  --bs-btn-disabled-color: #fff;
  --bs-btn-disabled-bg: #1f5f45;
  --bs-btn-disabled-border-color: #1f5f45;
}

.btn-secondary {
  --bs-btn-color: #fff;
  --bs-btn-bg: #78917a;
  --bs-btn-border-color: #78917a;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #667b68;
  --bs-btn-hover-border-color: #607461;
  --bs-btn-focus-shadow-rgb: 140, 162, 142;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #607461;
  --bs-btn-active-border-color: #5a6d5c;
}

.btn-success {
  --bs-btn-color: #17352b;
  --bs-btn-bg: #74a846;
  --bs-btn-border-color: #74a846;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #638f3c;
  --bs-btn-hover-border-color: #5d8638;
  --bs-btn-focus-shadow-rgb: 101, 147, 68;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #5d8638;
  --bs-btn-active-border-color: #577e35;
}

.btn-outline-primary {
  --bs-btn-color: #1f5f45;
  --bs-btn-border-color: #1f5f45;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #1f5f45;
  --bs-btn-hover-border-color: #1f5f45;
  --bs-btn-focus-shadow-rgb: 31, 95, 69;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #1f5f45;
  --bs-btn-active-border-color: #1f5f45;
}

.alert-primary {
  --bs-alert-color: var(--bs-primary-text-emphasis);
  --bs-alert-bg: var(--bs-primary-bg-subtle);
  --bs-alert-border-color: var(--bs-primary-border-subtle);
  --bs-alert-link-color: var(--bs-primary-text-emphasis);
}

/* Extra semantic accent colour, not provided by Bootstrap itself. */
.bg-accent { background-color: rgba(var(--ecoshine-accent-rgb), var(--bs-bg-opacity, 1)) !important; }
.text-accent { color: rgba(var(--ecoshine-accent-rgb), var(--bs-text-opacity, 1)) !important; }
.border-accent { border-color: rgba(var(--ecoshine-accent-rgb), var(--bs-border-opacity, 1)) !important; }
.btn-accent {
  --bs-btn-color: #17352b;
  --bs-btn-bg: #b6c94f;
  --bs-btn-border-color: #b6c94f;
  --bs-btn-hover-color: #17352b;
  --bs-btn-hover-bg: #c1d269;
  --bs-btn-hover-border-color: #bdcf61;
  --bs-btn-focus-shadow-rgb: 158, 179, 75;
  --bs-btn-active-color: #17352b;
  --bs-btn-active-bg: #c5d572;
  --bs-btn-active-border-color: #bdcf61;
}

/* Small theme details that retain Bootstrap structure and spacing. */
.navbar-brand img { max-height: 72px; width: auto; }
.navbar .nav-link:hover,
.navbar .nav-link:focus { color: var(--bs-primary) !important; }
.site-footer a:not(.btn) { color: rgba(255, 255, 255, 0.72); }
.site-footer a:not(.btn):hover { color: var(--ecoshine-accent); }

/* Gutenberg palette classes generated by WordPress. */
.has-ecoshine-primary-color { color: #5b6f3d !important; }
.has-ecoshine-primary-background-color { background-color: #1f5f45 !important; }
.has-ecoshine-secondary-color { color: #78917a !important; }
.has-ecoshine-secondary-background-color { background-color: #78917a !important; }
.has-ecoshine-accent-color { color: #b6c94f !important; }
.has-ecoshine-accent-background-color { background-color: #b6c94f !important; }
.has-ecoshine-light-color { color: #f4f2e9 !important; }
.has-ecoshine-light-background-color { background-color: #f4f2e9 !important; }
.has-ecoshine-dark-color { color: #17352b !important; }
.has-ecoshine-dark-background-color { background-color: #17352b !important; }
.has-ecoshine-body-color { color: #26332e !important; }
.has-ecoshine-body-background-color { background-color: #26332e !important; }
.has-white-color { color: #fff !important; }
.has-white-background-color { background-color: #fff !important; }
