/*********************************************/
/*  theme.css  — base theme styles           */
/*  Loads BEFORE overrides.css               */
/*********************************************/

/* ================================
   Theme Variables (scopes + tokens)
   ================================ */
:root,
[data-bs-theme="default-theme"] {
  /* Brand palette */
  --brand-blue: #002855;                 /* primary brand blue */
  --brand-gold: #FFCD00;
  --brand-red:  #C8102E;
  --brand-light: #ABCAE9;

  /* Bootstrap tokens */
  --bs-primary: var(--brand-blue);
  --bs-secondary: var(--brand-light);

  /* Theme tokens used in overrides */
  --active-accent: #DAA520;              /* hover/active accent for nav links */
  --theme-link-color: #0029FA;

  /* Body */
  --bs-body-bg: #fff;
  --bs-body-color: #223064;
  --theme-page-main-bg: var(--bs-body-bg);

  /* Footer */
  --theme-footer-bg: var(--bs-primary);

  /* Typography */
  --theme-font: system-ui, -apple-system, "Segoe UI", "Roboto",
                 "Helvetica Neue", "Noto Sans", "Liberation Sans",
                 Arial, sans-serif, "Apple Color Emoji",
                 "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  --bs-body-font-family: var(--theme-font);
  --bs-body-font-size: 1rem;
  --bs-body-font-weight: 400;
  --bs-body-line-height: 1.5;

  /* Radii & shadows (optional) */
  --bs-border-radius: 0.375rem;
  --bs-border-radius-sm: 0.25rem;
  --bs-border-radius-lg: 0.5rem;
  --bs-border-radius-xl: 1rem;
  --bs-border-radius-xxl: 2rem;

  --bs-box-shadow: 0 0.5rem 1rem rgba(0,0,0,0.15);
  --bs-box-shadow-sm: 0 0.125rem 0.25rem rgba(0,0,0,0.075);
  --bs-box-shadow-lg: 0 1rem 3rem rgba(0,0,0,0.175);
  --bs-box-shadow-inset: inset 0 1px 2px rgba(0,0,0,0.075);
}

/* ================================
   Core component touch-ups (neutral)
   ================================ */

/* Breadcrumb size */
.breadcrumb { --bs-breadcrumb-font-size: 14px; }

/* Buttons */
.btn-primary {
  --bs-btn-color: #fff;
  --bs-btn-bg: var(--bs-primary);
  --bs-btn-border-color: var(--bs-primary);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: color-mix(in srgb, var(--bs-primary) 15%, #000);
  --bs-btn-hover-border-color: color-mix(in srgb, var(--bs-primary) 15%, #000);
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: color-mix(in srgb, var(--bs-primary) 15%, #000);
  --bs-btn-active-border-color: color-mix(in srgb, var(--bs-primary) 15%, #000);
  --bs-btn-disabled-color: #fff;
  --bs-btn-disabled-bg: var(--bs-primary);
  --bs-btn-disabled-border-color: var(--bs-primary);
}
.btn-outline-primary {
  --bs-btn-color: var(--bs-primary);
  --bs-btn-bg: #fff;
  --bs-btn-border-color: var(--bs-primary);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--bs-primary);
  --bs-btn-hover-border-color: var(--bs-primary);
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: var(--bs-primary);
  --bs-btn-active-border-color: var(--bs-primary);
  --bs-btn-disabled-color: var(--bs-primary);
  --bs-btn-disabled-bg: transparent;
  --bs-btn-disabled-border-color: var(--bs-primary);
}
.btn-secondary {
  --bs-btn-color: #fff;
  --bs-btn-bg: var(--bs-secondary);
  --bs-btn-border-color: var(--bs-secondary);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: color-mix(in srgb, var(--bs-secondary) 15%, #000);
  --bs-btn-hover-border-color: color-mix(in srgb, var(--bs-secondary) 15%, #000);
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: color-mix(in srgb, var(--bs-secondary) 15%, #000);
  --bs-btn-active-border-color: color-mix(in srgb, var(--bs-secondary) 15%, #000);
  --bs-btn-disabled-color: #fff;
  --bs-btn-disabled-bg: var(--bs-secondary);
  --bs-btn-disabled-border-color: var(--bs-secondary);
}
.btn-outline-secondary {
  --bs-btn-color: var(--bs-secondary);
  --bs-btn-border-color: var(--bs-secondary);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--bs-secondary);
  --bs-btn-hover-border-color: var(--bs-secondary);
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: var(--bs-secondary);
  --bs-btn-active-border-color: var(--bs-secondary);
}

/* Table bg normalization */
.table { --bs-table-bg: #fff; }

/* ================================
   Universal Navigation (baseline only)
   ================================ */

.navbar-nav .nav-link {
  position: relative;
  transition: color .15s ease, font-weight .15s ease;
}

/* Larger dropdown caret (triangle) */
#theme-page-navigation .navbar-nav .nav-link.dropdown-toggle:after {
  border-bottom: 0;
  border-left: .3em solid transparent;
  border-right: .3em solid transparent;
  border-top: .3em solid currentColor;
  content: "";
  display: inline-block;
  margin-left: .255em;
  vertical-align: .255em;
}

/* Optional active underline bar (color follows link color) */
.navbar-nav .nav-link.active::after,
.navbar-nav .nav-link[aria-current="page"]::after {
  content: "";
  position: absolute;
  left: .25rem;
  right: .25rem;
  bottom: -.25rem;
  height: 2px;
  background: currentColor;
  border-radius: 2px;
}

/* ================================
   Footer base
   ================================ */
footer#theme-page-footer { background: var(--theme-footer-bg); }
footer#theme-page-footer a,
footer#theme-page-footer a:focus {
  text-underline-offset: 3px;
}

