/* ============================================================================
   Bootstrap 5.1 overrides — neutralise the hardcoded blue.
   Bootstrap 5.1 components do NOT read --bs-primary (broad CSS-variable
   coverage only lands in 5.3), so each blue selector is overridden explicitly
   with warm tokens. Loaded immediately after bootstrap.min.css (and after
   design-tokens.css) so these rules win on equal specificity.
   Every value references var(--mt-*). No raw colours here.
   ========================================================================== */

/* --- Links ------------------------------------------------------------- */
a {
  color: var(--mt-color-ink);
  text-decoration-color: var(--mt-color-border-input);
  text-underline-offset: 0.15em;
}
a:hover {
  color: var(--mt-color-gold-text);
  text-decoration-color: currentColor;
}

/* --- Buttons: primary (gold fill, ink text) ---------------------------- */
.btn-primary {
  --bs-btn-color: var(--mt-color-ink);
  --bs-btn-bg: var(--mt-color-gold);
  --bs-btn-border-color: var(--mt-color-gold);
  --bs-btn-hover-color: var(--mt-color-ink);
  --bs-btn-hover-bg: var(--mt-color-gold-hover);
  --bs-btn-hover-border-color: var(--mt-color-gold-hover);
  --bs-btn-active-color: var(--mt-color-ink);
  --bs-btn-active-bg: var(--mt-color-gold-active);
  --bs-btn-active-border-color: var(--mt-color-gold-active);
  --bs-btn-disabled-color: var(--mt-color-disabled-text);
  --bs-btn-disabled-bg: var(--mt-color-disabled-bg);
  --bs-btn-disabled-border-color: var(--mt-color-disabled-bg);
  color: var(--mt-color-ink);
  background-color: var(--mt-color-gold);
  border-color: var(--mt-color-gold);
}
.btn-primary:hover {
  color: var(--mt-color-ink);
  background-color: var(--mt-color-gold-hover);
  border-color: var(--mt-color-gold-hover);
}
.btn-primary:focus,
.btn-primary:active:focus,
.btn-check:focus + .btn-primary,
.btn-primary.active,
.btn-primary:active {
  color: var(--mt-color-ink);
  background-color: var(--mt-color-gold-active);
  border-color: var(--mt-color-gold-active);
  outline: var(--mt-focus-outline);
  outline-offset: var(--mt-focus-offset);
  box-shadow: var(--mt-focus-ring);
}
.btn-primary:disabled,
.btn-primary.disabled {
  color: var(--mt-color-disabled-text);
  background-color: var(--mt-color-disabled-bg);
  border-color: var(--mt-color-disabled-bg);
  opacity: 1;
}

/* --- Buttons: outline / link ------------------------------------------- */
.btn-outline-primary {
  color: var(--mt-color-ink);
  border-color: var(--mt-color-ink);
}
.btn-outline-primary:hover,
.btn-outline-primary:active,
.btn-outline-primary.active {
  color: var(--mt-color-ink);
  background-color: var(--mt-color-surface-2);
  border-color: var(--mt-color-ink);
}
.btn-outline-primary:focus {
  outline: var(--mt-focus-outline);
  outline-offset: var(--mt-focus-offset);
  box-shadow: var(--mt-focus-ring);
}
.btn-link {
  color: var(--mt-color-ink);
  text-decoration-color: var(--mt-color-border-input);
}
.btn-link:hover {
  color: var(--mt-color-gold-text);
}

/* --- Form controls: focus + states ------------------------------------- */
.form-control:focus,
.form-select:focus {
  border-color: var(--mt-color-ink);
  outline: var(--mt-focus-outline);
  outline-offset: var(--mt-focus-offset);
  box-shadow: var(--mt-focus-ring);
}
.form-control.is-invalid,
.was-validated .form-control:invalid,
.form-select.is-invalid {
  border-color: var(--mt-color-danger);
}
.form-check-input:focus {
  border-color: var(--mt-color-ink);
  outline: var(--mt-focus-outline);
  outline-offset: var(--mt-focus-offset);
  box-shadow: var(--mt-focus-ring);
}
.form-check-input:checked {
  background-color: var(--mt-color-gold);
  border-color: var(--mt-color-gold-active);
}
.form-check-input[type="checkbox"]:indeterminate {
  background-color: var(--mt-color-gold);
  border-color: var(--mt-color-gold-active);
}
.form-range::-webkit-slider-thumb { background-color: var(--mt-color-gold); }
.form-range::-moz-range-thumb { background-color: var(--mt-color-gold); }
.form-range:focus::-webkit-slider-thumb { box-shadow: var(--mt-focus-ring); }
.form-range:focus::-moz-range-thumb { box-shadow: var(--mt-focus-ring); }

/* --- Navs / dropdowns / list groups ------------------------------------ */
.nav-pills .nav-link.active,
.nav-pills .show > .nav-link {
  color: var(--mt-color-ink);
  background-color: var(--mt-color-gold-tint);
}
.dropdown-item.active,
.dropdown-item:active {
  color: var(--mt-color-ink);
  background-color: var(--mt-color-gold-tint);
}
.list-group-item.active {
  color: var(--mt-color-ink);
  background-color: var(--mt-color-gold-tint);
  border-color: var(--mt-color-border);
}

/* --- Pagination -------------------------------------------------------- */
.page-link {
  color: var(--mt-color-ink);
}
.page-link:focus {
  outline: var(--mt-focus-outline);
  outline-offset: var(--mt-focus-offset);
  box-shadow: var(--mt-focus-ring);
}
.page-item.active .page-link {
  color: var(--mt-color-ink);
  background-color: var(--mt-color-gold);
  border-color: var(--mt-color-gold-active);
}

/* --- Accordion --------------------------------------------------------- */
.accordion-button:not(.collapsed) {
  color: var(--mt-color-ink);
  background-color: var(--mt-color-gold-tint);
}
.accordion-button:focus {
  border-color: var(--mt-color-ink);
  outline: var(--mt-focus-outline);
  outline-offset: var(--mt-focus-offset);
  box-shadow: var(--mt-focus-ring);
}

/* --- Colour utilities --------------------------------------------------- */
.link-primary { color: var(--mt-color-gold-text) !important; }
.link-primary:hover, .link-primary:focus { color: var(--mt-color-gold-active) !important; }
.text-primary { color: var(--mt-color-gold-text) !important; }
.text-danger { color: var(--mt-color-danger) !important; }
.text-success { color: var(--mt-color-success) !important; }
.text-warning { color: var(--mt-color-warning) !important; }
.text-muted { color: var(--mt-color-text-muted) !important; }
.bg-primary { background-color: var(--mt-color-gold) !important; }
.border-primary { border-color: var(--mt-color-gold) !important; } /* matches Bootstrap's !important */

/* --- Generic focus-visible: replace browser-default blue everywhere ----- */
a:focus-visible,
button:focus-visible,
.btn:focus-visible,
[tabindex]:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: var(--mt-focus-outline);
  outline-offset: var(--mt-focus-offset);
  box-shadow: var(--mt-focus-ring);
}
