/* ═══════════════════════════════════════════════════════════════
    OVERRIDE BOOTSTRAP PRIMARY & SECONDARY COLORS
═══════════════════════════════════════════════════════════════ */
:root {
  /* Primary: Reflex Blue tints (mix toward white) and shades (mix toward black) */
  --primary-100: #e6eaf9;
  --primary-200: #c0cbf0;
  --primary-300: #8fa1e3;
  --primary-400: #5e77d6;
  --primary-500: #00209f;   /* Pantone Reflex Blue — base */
  --primary-600: #001d8f;
  --primary-700: #00167a;
  --primary-800: #000e5a;
  --primary-900: #000840;
  
  /* Secondary: Cool Gray 6 tints and shades  */
  --secondary-100: #eef1f5;
  --secondary-200: #dde2e8;
  --secondary-300: #ccd3db;
  --secondary-400: #bbc4ce;
  --secondary-500: #b2bac5;
  --secondary-600: #8e95a0;
  --secondary-700: #6b707a;
  --secondary-800: #474b55;
  --secondary-900: #24252b;
  
  /* Override Bootstrap so btn-primary, text-primary, bg-primary etc. use brand colors */
  --bs-primary:                 var(--primary-500);
  --bs-primary-rgb:             0, 32, 159;
  --bs-secondary:               var(--secondary-500);
  --bs-secondary-rgb:           186, 188, 190;
  
  /* Bootstrap emphasis/subtle variants (alert-primary, badge bg-primary-subtle, etc.) */
  --bs-primary-text-emphasis:   var(--primary-700);
  --bs-primary-bg-subtle:       var(--primary-100);
  --bs-primary-border-subtle:   var(--primary-200);
  --bs-secondary-text-emphasis: var(--secondary-700);
  --bs-secondary-bg-subtle:     var(--secondary-100);
  --bs-secondary-border-subtle: var(--secondary-300);
  
  /* ── Bootstrap link color ── */
  --bs-link-color:       var(--primary-500);
  --bs-link-hover-color: var(--primary-800);
  --bs-link-color-rgb: 0, 32, 159;        /* --primary-500 as channels */
  --bs-link-hover-color-rgb: 0, 14, 90;   /* --primary-800 as channels */
    
  /* ── Brand-specific extras ── */
  --brand-primary-tint:    #e6eaf9;   /* ~94% tint of Reflex Blue  */
  --brand-primary-shade:   #001578;   /* darker shade for hover    */
}

/* ── Background utilities ── */
.bg-primary-100 { background-color: var(--primary-100) !important; }
.bg-primary-200 { background-color: var(--primary-200) !important; }
.bg-primary-300 { background-color: var(--primary-300) !important; }
.bg-primary-400 { background-color: var(--primary-400) !important; }
.bg-primary-500 { background-color: var(--primary-500) !important; }
.bg-primary-600 { background-color: var(--primary-600) !important; }
.bg-primary-700 { background-color: var(--primary-700) !important; }
.bg-primary-800 { background-color: var(--primary-800) !important; }
.bg-primary-900 { background-color: var(--primary-900) !important; }

.bg-secondary-100 { background-color: var(--secondary-100) !important; }
.bg-secondary-200 { background-color: var(--secondary-200) !important; }
.bg-secondary-300 { background-color: var(--secondary-300) !important; }
.bg-secondary-400 { background-color: var(--secondary-400) !important; }
.bg-secondary-500 { background-color: var(--secondary-500) !important; }
.bg-secondary-600 { background-color: var(--secondary-600) !important; }
.bg-secondary-700 { background-color: var(--secondary-700) !important; }
.bg-secondary-800 { background-color: var(--secondary-800) !important; }
.bg-secondary-900 { background-color: var(--secondary-900) !important; }

/* ── BG Gradients ── */
.bg-primary-gradient { background: linear-gradient(135deg, var(--primary-900) 0%, var(--primary-500) 100%); }
.bg-secondary-gradient { background: linear-gradient(135deg, var(--bs-dark) 0%, var(--secondary-800) 100%); }

/* ── Text utilities ── */
.text-primary-100 { color: var(--primary-100) !important; }
.text-primary-200 { color: var(--primary-200) !important; }
.text-primary-300 { color: var(--primary-300) !important; }
.text-primary-400 { color: var(--primary-400) !important; }
.text-primary-500 { color: var(--primary-500) !important; }
.text-primary-600 { color: var(--primary-600) !important; }
.text-primary-700 { color: var(--primary-700) !important; }
.text-primary-800 { color: var(--primary-800) !important; }
.text-primary-900 { color: var(--primary-900) !important; }

.text-secondary-100 { color: var(--secondary-100) !important; }
.text-secondary-200 { color: var(--secondary-200) !important; }
.text-secondary-300 { color: var(--secondary-300) !important; }
.text-secondary-400 { color: var(--secondary-400) !important; }
.text-secondary-500 { color: var(--secondary-500) !important; }
.text-secondary-600 { color: var(--secondary-600) !important; }
.text-secondary-700 { color: var(--secondary-700) !important; }
.text-secondary-800 { color: var(--secondary-800) !important; }
.text-secondary-900 { color: var(--secondary-900) !important; }

/* ── Border utilities ── */
.border-primary-100 { border-color: var(--primary-100) !important; }
.border-primary-200 { border-color: var(--primary-200) !important; }
.border-primary-300 { border-color: var(--primary-300) !important; }
.border-primary-400 { border-color: var(--primary-400) !important; }
.border-primary-500 { border-color: var(--primary-500) !important; }
.border-primary-600 { border-color: var(--primary-600) !important; }
.border-primary-700 { border-color: var(--primary-700) !important; }
.border-primary-800 { border-color: var(--primary-800) !important; }
.border-primary-900 { border-color: var(--primary-900) !important; }

.border-secondary-100 { border-color: var(--secondary-100) !important; }
.border-secondary-200 { border-color: var(--secondary-200) !important; }
.border-secondary-300 { border-color: var(--secondary-300) !important; }
.border-secondary-400 { border-color: var(--secondary-400) !important; }
.border-secondary-500 { border-color: var(--secondary-500) !important; }
.border-secondary-600 { border-color: var(--secondary-600) !important; }
.border-secondary-700 { border-color: var(--secondary-700) !important; }
.border-secondary-800 { border-color: var(--secondary-800) !important; }
.border-secondary-900 { border-color: var(--secondary-900) !important; }

/* ── Link utilities ── */
.link-primary-100 { color: var(--primary-100) !important; }
.link-primary-200 { color: var(--primary-200) !important; }
.link-primary-300 { color: var(--primary-300) !important; }
.link-primary-400 { color: var(--primary-400) !important; }
.link-primary-500 { color: var(--primary-500) !important; }
.link-primary-600 { color: var(--primary-600) !important; }
.link-primary-700 { color: var(--primary-700) !important; }
.link-primary-800 { color: var(--primary-800) !important; }
.link-primary-900 { color: var(--primary-900) !important; }

.link-secondary-100 { color: var(--secondary-100) !important; }
.link-secondary-200 { color: var(--secondary-200) !important; }
.link-secondary-300 { color: var(--secondary-300) !important; }
.link-secondary-400 { color: var(--secondary-400) !important; }
.link-secondary-500 { color: var(--secondary-500) !important; }
.link-secondary-600 { color: var(--secondary-600) !important; }
.link-secondary-700 { color: var(--secondary-700) !important; }
.link-secondary-800 { color: var(--secondary-800) !important; }
.link-secondary-900 { color: var(--secondary-900) !important; }

/* ── Override Bootstrap defaults ── */
.btn-primary {
  --bs-btn-bg:                 var(--primary-500);
  --bs-btn-border-color:       var(--primary-500);
  --bs-btn-hover-bg:           var(--primary-600);
  --bs-btn-hover-border-color: var(--primary-600);
  --bs-btn-active-bg:          var(--primary-700);
}

.btn-secondary {
  --bs-btn-bg:                 var(--secondary-500);
  --bs-btn-border-color:       var(--secondary-500);
  --bs-btn-color:              var(--secondary-900);
  --bs-btn-hover-bg:           var(--secondary-700);
  --bs-btn-hover-border-color: var(--secondary-700);
  --bs-btn-hover-color:        #fff;
  --bs-btn-active-bg:          var(--secondary-900);
}

/* New variants */
.btn-primary-dark {
  --bs-btn-bg:                 var(--primary-700);
  --bs-btn-border-color:       var(--primary-700);
  --bs-btn-color:              #fff;
  --bs-btn-hover-bg:           var(--primary-800);
  --bs-btn-hover-border-color: var(--primary-800);
  --bs-btn-active-bg:          var(--primary-900);
}

.btn-primary-light {
  --bs-btn-bg:                 var(--primary-400);
  --bs-btn-border-color:       var(--primary-400);
  --bs-btn-color:              #fff;
  --bs-btn-hover-bg:           var(--primary-500);
  --bs-btn-hover-border-color: var(--primary-500);
  --bs-btn-active-bg:          var(--primary-600);
}

.btn-secondary-dark {
  --bs-btn-bg:                 var(--secondary-700);
  --bs-btn-border-color:       var(--secondary-700);
  --bs-btn-color:              #fff;
  --bs-btn-hover-bg:           var(--secondary-800);
  --bs-btn-hover-border-color: var(--secondary-800);
  --bs-btn-active-bg:          var(--secondary-900);
}

.btn-secondary-light {
  --bs-btn-bg:                 var(--secondary-200);
  --bs-btn-border-color:       var(--secondary-200);
  --bs-btn-color:              var(--secondary-900);
  --bs-btn-hover-bg:           var(--secondary-300);
  --bs-btn-hover-border-color: var(--secondary-300);
  --bs-btn-active-bg:          var(--secondary-400);
}


/* ═══════════════════════════════════════════════════════════════
   TYPOGRAPHY
═══════════════════════════════════════════════════════════════ */
body { font-family: 'DM Sans', sans-serif; }


/* ═══════════════════════════════════════════════════════════════
   HEADER-SPECIFIC STYLES
═══════════════════════════════════════════════════════════════ */

/* Top bar font size — no exact Bootstrap utility for .8rem */
#topBar { font-size: .9rem; }

/* Navbar Brand */ 
.navbar-brand {
  max-width: 220px;  /* adjust per your widest logo */
}

/* Site Logo */
.site-logo {
  width: 100%;
  height: auto;
  max-height: 3.125rem; /* 50px (override in context custom.css if needed.) */
}

/* ─────────────────────────────────────────────────────────────
   NAV LINKS — DESKTOP
───────────────────────────────────────────────────────────── */
.navbar-nav .nav-link,
.navbar-collapse .nav-link {
  font-size: .925rem;
  font-weight: 500;
  border-radius: 0;
  position: relative;
  overflow: hidden;                          /* clips ::before to link bounds */
  z-index: 0;
  transition: color .2s ease;
}

/* ── The sliding background fill ── */
[data-bs-theme="light"] .navbar-nav .nav-link::before {
  content: '';
  position: absolute;
  inset: 0;
  background: var(--secondary-100);         
  border-radius: 0;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .25s cubic-bezier(.4, 0, .2, 1);
  z-index: -1;
}

/* Expand on hover / open dropdown */
.navbar-nav .nav-link:hover::before,
.navbar-nav .nav-link.show::before {
  transform: scaleX(1);
}

/* Active — one step darker than hover */
.navbar-nav .nav-link.active::before {
  transform: scaleX(1);
  background: /*var(--secondary-100)*/ transparent; 
}

/* ── Link text colours ── */
.navbar-nav .nav-link:hover,
.navbar-nav .nav-link.show,
.navbar-nav .nav-link.active {
  color: var(--bs-primary);
}

.navbar-nav .nav-link.active {
  font-weight: 700;
}

/* ── Dark theme — monochromatic ── */
[data-bs-theme="dark"] .navbar {
    border-bottom: none;
}
[data-bs-theme="dark"] .navbar-nav .nav-link,
[data-bs-theme="dark"] .navbar-collapse .nav-link {
  color: rgba(255, 255, 255, .8);
}

[data-bs-theme="dark"] .navbar-nav .nav-link::before {
  background: rgba(255, 255, 255, .07);
}

[data-bs-theme="dark"] .navbar-nav .nav-link.active::before {
  background: transparent /*rgba(255, 255, 255, .12)*/;
}

[data-bs-theme="dark"] .navbar-nav .nav-link:hover,
[data-bs-theme="dark"] .navbar-nav .nav-link.show,
[data-bs-theme="dark"] .navbar-nav .nav-link.active {
  color: #fff;
}


/* ─────────────────────────────────────────────────────────────
   DROPDOWN MENU
───────────────────────────────────────────────────────────── */
.dropdown-menu {
  border-radius: 0;
  padding: 0;
  border: none;
  background-color: var(--secondary-100);
  box-shadow: 0 8px 24px -8px rgba(0, 0, 0, .09);
  overflow: hidden;
  min-width: 200px;
}

.dropdown-item {
  border-radius: 0;
  padding: .6rem 1rem;
  font-weight: 500;
  font-size: .875rem;
  color: var(--bs-body-color);
  border-bottom: 1px solid rgba(0, 0, 0, .05); /* subtle divider on same-colour bg */
  transition: background-color .15s ease, color .15s ease;
}

.dropdown-item:last-child {
  border-bottom: none;
}

.dropdown-item:hover,
.dropdown-item:focus {
  background-color: var(--secondary-200);    /* one step darker than dropdown bg */
  color: var(--bs-primary);
}

.dropdown-item.active,
.dropdown-item:active {
  background-color: var(--secondary-300);
  color: var(--bs-primary);
}

/* ── Dark theme — monochromatic ── */
[data-bs-theme="dark"] .dropdown-menu {
  background: #212529; 
}

[data-bs-theme="dark"] .dropdown-item {
  color: rgba(255, 255, 255, .8);
  border-bottom-color: rgba(255, 255, 255, .06);
}

[data-bs-theme="dark"] .dropdown-item:hover,
[data-bs-theme="dark"] .dropdown-item:focus {
  background-color: rgba(255, 255, 255, .07);
  color: #fff;
}

[data-bs-theme="dark"] .dropdown-item.active,
[data-bs-theme="dark"] .dropdown-item:active {
  background-color: rgba(255, 255, 255, .15);
  color: #fff;
}

/* Desktop dropdown — smooth slide down */
@media (min-width: 992px) {
  @keyframes dropdownIn {
    from {
      opacity: 0;
      transform: translateY(-10px);
    }
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }

  .dropdown-menu.show {
    animation: dropdownIn .25s cubic-bezier(.4, 0, .2, 1) forwards;
  }
}


/* ─────────────────────────────────────────────────────────────
   MOBILE DROPDOWN [UPDATED]
   Full-width to match parent container. No border.
   margin-top: -1px closes the 1px gap.
───────────────────────────────────────────────────────────── */
@media (max-width: 991.98px) {
  .navbar-nav .nav-link {
    padding-left: 1rem;                      /* left padding on mobile links */
  }

  .navbar-nav .nav-item.dropdown {
    position: relative;
  }

  .navbar-nav .dropdown-menu {
    width: 100%;
    margin-left: 0;
    margin-top: 0px;
    border: none;
    box-shadow: none;
  }
}

/* ─────────────────────────────────────────────────────────────
   SEARCH TOGGLE
───────────────────────────────────────────────────────────── */
#searchToggleBtn { transition: color .15s, background-color .15s; }
#searchToggleBtn:hover, #searchToggleBtn.is-open {
  background-color: var(--secondary-100);
  color: var(--bs-primary);
}
[data-bs-theme="dark"] #searchToggleBtn:hover,
[data-bs-theme="dark"] #searchToggleBtn.is-open {
  background-color: rgba(255, 255, 255, .08);
  color: #fff;
}


/* ─────────────────────────────────────────────────────────────
   SEARCH BAR
───────────────────────────────────────────────────────────── */
#searchBar { overflow: hidden; max-height: 0; transition: max-height .3s ease; }
#searchBar.is-open { max-height: 90px; }

.search-group:focus-within {
  border-radius: .375rem;
  box-shadow: 0 0 0 .25rem rgba(var(--bs-primary-rgb), .2);
}
.search-group:focus-within .form-control,
.search-group:focus-within .input-group-text { border-color: var(--bs-primary); }
.search-group .form-control:focus { box-shadow: none; }


/* ─────────────────────────────────────────────────────────────
   MOBILE ACCORDION NAV
───────────────────────────────────────────────────────────── */

/* ── Plain nav-link items (no children) ── */
.d-lg-none .nav-link {
  font-size: .925rem;
  font-weight: 500;
  padding: .6rem 1rem;
  border-radius: 0;
  border-bottom: 1px solid var(--bs-border-color-translucent);
  color: var(--bs-body-color);
  transition: background-color .15s ease, color .15s ease;
}
.d-lg-none .nav-link:hover {
  background-color: var(--secondary-100);
  color: var(--bs-primary);
}
.d-lg-none .nav-link.active {
  /* background-color: var(--secondary-200); */
  color: var(--bs-primary);
  font-weight: 600;
}

[data-bs-theme="dark"] .d-lg-none .nav-link:hover {
  background-color: rgba(255, 255, 255, .07);
  color: #fff;
}
[data-bs-theme="dark"] .d-lg-none .nav-link.active {
  background-color: rgba(255, 255, 255, .12);
  color: #fff;
}

/* ── Accordion items (parent links with children) ── */
.navbar-collapse .accordion-item {
  border: none;
  background: transparent;
  border-bottom: 1px solid var(--bs-border-color-translucent);
}
.navbar-collapse .accordion-item:last-child {
  border-bottom: none;
}

.navbar-collapse .accordion-button {
  font-size: .925rem;
  font-weight: 500;
  padding: .6rem 1rem;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: var(--bs-body-color);
  transition: background-color .15s ease, color .15s ease;
}
.navbar-collapse .accordion-button:hover {
  background-color: var(--secondary-100);
  color: var(--bs-primary);
}
.navbar-collapse .accordion-button:not(.collapsed) {
  background-color: var(--secondary-200);
  color: var(--bs-primary);
  box-shadow: none;
}

[data-bs-theme="dark"] .navbar-collapse .accordion-button:hover {
  background-color: rgba(255, 255, 255, .07);
  color: #fff;
}
[data-bs-theme="dark"] .navbar-collapse .accordion-button:not(.collapsed) {
  background-color: rgba(255, 255, 255, .12);
  color: #fff;
}

/* ── Accordion Arrows in Dark Mode  ── */
[data-bs-theme="dark"] .accordion-button::after {
  background-image: none;
  font-family: "bootstrap-icons";
  content: "\f282";
  font-size: .85rem;
  color: var(--bs-nav-link-color, var(--bs-body-color));
  transition: transform .2s ease;
}

[data-bs-theme="dark"] .accordion-button:not(.collapsed)::after {
  background-image: none;
  transform: rotate(-180deg);
}

/* ── Accordion body — child links ── */
.navbar-collapse .accordion-body {
  padding: 0;
  background-color: var(--secondary-100);
  border-top: 1px solid var(--bs-border-color-translucent);
}

/* ── Sub-links (child items) ── */
.sub-link {
  font-size: .875rem;
  font-weight: 500;
  padding: .55rem 1.5rem;
  border-radius: 0;
  border-bottom: 1px solid rgba(0, 0, 0, .05);
  color: var(--bs-secondary-color);
  transition: background-color .15s ease, color .15s ease;
}
.sub-link:last-child {
  border-bottom: none;
}
.sub-link:hover {
  background-color: var(--secondary-200);
  color: var(--bs-primary);
}
.sub-link.active {
  background-color: var(--secondary-200);
  color: var(--bs-primary);
  font-weight: 600;
}

[data-bs-theme="dark"] .navbar-collapse .accordion-body {
  background-color: rgba(255, 255, 255, .03);
}
[data-bs-theme="dark"] .sub-link {
  border-bottom-color: rgba(255, 255, 255, .05);
}
[data-bs-theme="dark"] .sub-link:hover {
  background-color: rgba(255, 255, 255, .07);
  color: #fff;
}
[data-bs-theme="dark"] .sub-link.active {
  background-color: rgba(255, 255, 255, .12);
  color: #fff;
}

.sub-group-label { font-size: .7rem; letter-spacing: .06em; padding: .5rem .75rem .2rem; }

/* ═══════════════════════════════════════════════════════════════
   FOOTER — dark-only. Override in context custom.css
   ─────────────────────────────────────────────────────────────
═══════════════════════════════════════════════════════════════ */
:root {
  --ft-bg:              #0d1117;         /* main footer background              */
  --ft-bar-bg:          #080c10;         /* copyright bar (slightly deeper)     */
  --ft-border:          rgba(255,255,255,.08);
  --ft-accent:          #f8f9fa;          /* #c8a96e; top rule, headings, arrow colour    */
  --ft-text:            #b0bac6;
  --ft-heading:         #e4eaf0;
  --ft-link:            #8a97a8;
  --ft-link-hover:      #e4eaf0;
  --ft-icon-bg:         rgba(255,255,255,.06);
  --ft-icon-border:     rgba(255,255,255,.12);
  --ft-icon-hover-bg:   #c8a96e;
  --ft-icon-hover-fg:   #0d1117;
}

/* ── Shell ─────────────────────────────────────────────────── */
#siteFooter {
  background-color: var(--ft-bg);
  border-top: 3px solid #8a97a8; /* var(--ft-accent); */
}

/* ── Column body ───────────────────────────────────────────── */
.ft-body {
  background-color: var(--ft-bg);
  padding: 3rem 0 2.75rem;
}

/* ── Column headings (optional, output by snippet or hardcoded) */
.ft-heading {
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .13em;
  text-transform: uppercase;
  color:  var(--ft-accent);
  margin-bottom: 1rem;
}

/* ── Copyright bar ─────────────────────────────────────────── */
.ft-bar {
  background-color: var(--ft-bar-bg);
  border-top: 1px solid var(--ft-border);
  padding: .9rem 0;
}
.ft-bar p {
  color: #546070;
  font-size: .78rem;
  letter-spacing: .025em;
}
.ft-bar a {
  color: #6b7a8d;
  text-decoration: none;
  transition: color .15s;
}
.ft-bar a:hover { color: var(--ft-link-hover); }

/* ── Vertical dividers — lg+ only ─────────────────────────── */
.ft-divider-v {
  display: none;
}
@media (min-width: 992px) {
  .ft-divider-v {
    display: block;
    width: 1px;
    background-color: var(--ft-border);
    align-self: stretch;
    flex-shrink: 0;
  }
}

/* ═══════════════════════════════════════════════════════════════
   LINK LISTS — columns 1 & 2
═══════════════════════════════════════════════════════════════ */
.ft-links {
  margin: 0;
  padding: 0;
  list-style: none;
}
.ft-links li {
  border-bottom: 1px solid var(--ft-border);
}
.ft-links li:first-child {
  border-top: 1px solid var(--ft-border);
}
.ft-links a {
  display: flex;
  align-items: center;
  padding: .75rem 0;          /* generous tap/click target */
  color: var(--ft-link);
  font-size: .875rem;
  line-height: 1.4;
  text-decoration: none;
  transition: color .18s, padding-left .18s;
}

/* Animated chevron arrow */
.ft-links a::before {
  font-family: "bootstrap-icons";
  content: "\f285";            /* bi-chevron-right */
  font-size: .65rem;
  color: var(--ft-accent);
  opacity: 0;
  width: 0;
  margin-right: 0;
  flex-shrink: 0;
  transform: translateX(-4px);
  transition: opacity .18s, transform .18s, width .18s, margin-right .18s;
}
.ft-links a:hover {
  color: var(--ft-link-hover);
  padding-left: .1rem;
}
.ft-links a:hover::before {
  opacity: 1;
  transform: translateX(0);
  width: .8rem;
  margin-right: .35rem;
}

/* ═══════════════════════════════════════════════════════════════
   COLUMN 3 — EthicsPoint + conditional social icons
═══════════════════════════════════════════════════════════════ */

/* Mobile + md: horizontal rule + centre-align (col 3 is full-width below) */
.ft-col3-wrap {
  padding-top: 1.75rem;
}
/* lg+: remove rule; vertically centre within the row */
@media (min-width: 992px) {
  .ft-col3-wrap {
    border-top: none;
    padding-top: 0;
    height: 100%;
    display: flex;
    align-items: center;
  }
}

.ft-col3 {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  align-items: center;       /* centred on mobile + md */
  text-align: center;
  width: 100%;
}
@media (min-width: 992px) {
  .ft-col3 {
    align-items: flex-start;
    text-align: left;
  }
}

/* EthicsPoint image */
.ft-col3 > a img,
.ft-ethics img {
  max-width: 140px;
  height: auto;
  display: block;
  opacity: 1;
  transition: opacity .18s;
}
.ft-col3 > a:hover img,
.ft-ethics a:hover img {
  opacity: .8;
}

/* Social icon strip */
.ft-social {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  justify-content: center;
}
@media (min-width: 992px) {
  .ft-social { justify-content: flex-start; }
}
.ft-social a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.1rem;
  height: 2.1rem;
  font-size: .9rem;
  border-radius: .3rem;
  background-color: var(--primary-500);
  color: var(--primary-100);
  text-decoration: none;
  border: 1px solid var(--primary-400);
  transition: background-color .18s, color .18s, border-color .18s, transform .18s;
}
.ft-social a:hover {
  background-color: var(--primary-100);
  color: var(--primary-500);
  border-color: var(--primary-200);
  transform: translateY(-2px);
}


/* ===== Back to Top Button ===== */
#back-to-top {
    position: fixed;
    right: 1rem;
    bottom: 1rem;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease;
    z-index: 1050;
    font-size: 1rem;
    background-color: var(--secondary-700);
    border: none;
    cursor: pointer;
}

#back-to-top.visible {
    opacity: 1;
    pointer-events: auto;
}

#back-to-top:hover {
    background-color: var(--secondary-600);
}

/* ── Anchor Links ── */
[id] {
   scroll-margin-top: calc(var(--header-height, 0px) + 1.5rem);
}

/* ═══════════════════════════════════════════════════════════════
   COOKIE CONSENT
═══════════════════════════════════════════════════════════════ */

.cookieconsent {
    position: fixed;
    bottom: 0px;
    right: 0px;
    width: 100%;
    z-index: 9999;
    border-radius: 0;
    border: 1px solid #ccc;
}

@media (min-width: 768px) {
  .cookieconsent {
    width: 440px;
    bottom: 40px;
    right: 40px;
  }
}

/* ═══════════════════════════════════════════════════════════════
   COMPONENTS
═══════════════════════════════════════════════════════════════ */

/* ── Breadcrumbs ── */
.breadcrumb {
  --bs-breadcrumb-font-size: .8rem; 
}

/* ── Lists ── */
.list-block {
    margin: 0;
    padding: 0;
}

.list-block>li {
    list-style: none;
    display: flex;
    align-items: flex-start;
    padding-block: 0.75rem;
}

.list-block.with-underline>li {
    border-bottom: 1px solid var(--bs-light-border-subtle);
}

.list-icon-check>li::before {
    content: "\F26B";
    /* bi-check-lg */
    font-family: "bootstrap-icons";
    font-size: 1rem;
    color: var(--bs-primary);
    margin-right: 0.75rem;
    flex-shrink: 0;
    margin-top: 2px;
}

/* ── Callout ── */
.callout {
    padding: 1rem;
    margin-top: 1.25rem;
    margin-bottom: 1.25rem;
    background-color: var(--bs-light);
    color: var(--bs-dark);
    border: 1px solid rgba(var(--bs-dark-rgb), .2);
    border-left-width: .25rem;
    border-radius: .25rem;
}

.callout-primary {
    color: var(--bs-primary-text-emphasis);
    border: 1px solid var(--bs-primary);
    border-left-width: .25rem;
}

.callout-warning {
    color: var(--bs-warning-text-emphasis);
    background-color: rgba(var(--bs-warning-rgb), .15);
    border: 1px solid rgba(var(--bs-warning-rgb), .4);
    border-left-width: .25rem;
}

