/*!
 * bootstrap-compat.css
 * Upgrade shim: Bootstrap 4.5.0 -> 5.3.8
 * Load order: AFTER bootstrap.min.css -- BEFORE theme/style CSS
 * Generated: 2026-02-27 by fix_remaining_bs4.py
 */

/* -- Focus ring (5.3 changed to --bs-focus-ring-* system) -- */
:root {
  --bs-focus-ring-width:   0.25rem;
  --bs-focus-ring-opacity: 0.25;
  --bs-focus-ring-color:   rgba(13, 110, 253, 0.25);
}
.form-control:focus,
.form-select:focus,
.btn:focus-visible {
  box-shadow: 0 0 0 0.25rem var(--bs-focus-ring-color);
  outline: 0;
}

/* -- Color mode -- lock to light (5.3 added dark mode) -- */
:root,
[data-bs-theme="light"] {
  color-scheme: light;
}

/* -- Body defaults (5.3 promoted to CSS vars) -- */
:root {
  --bs-body-bg:          #fff;
  --bs-body-color:       #212529;
  --bs-body-font-size:   1rem;
  --bs-body-line-height: 1.5;
  --bs-link-color:       #0d6efd;
  --bs-link-hover-color: #0a58ca;
}

/* -- Tooltip opacity (5.3 default changed to 1, restore 0.9) -- */
.tooltip.show { opacity: 0.9; }
.tooltip .tooltip-inner { max-width: 200px; }

/* -- Card border (5.3 uses CSS var) -- */
.card { --bs-card-border-color: rgba(0,0,0,.125); }

/* -- Accordion focus -- */
.accordion-button:focus {
  box-shadow: 0 0 0 0.25rem rgba(13,110,253,.25);
}

/* -- Nav tabs active border -- */
.nav-tabs .nav-link.active,
.nav-tabs .nav-item.show .nav-link {
  border-color: #dee2e6 #dee2e6 #fff;
}

/* ===================================================================
 * BOOTSTRAP 4 -> 5 REMOVED COMPONENT STUBS
 * =================================================================== */

/* .jumbotron (removed in BS5) */
.jumbotron {
  padding: 2rem 1rem;
  margin-bottom: 2rem;
  background-color: #e9ecef;
  border-radius: 0.3rem;
}
@media (min-width: 576px) {
  .jumbotron { padding: 4rem 2rem; }
}
.jumbotron-fluid { padding-right: 0; padding-left: 0; border-radius: 0; }

/* .form-group (removed in BS5) */
.form-group { margin-bottom: 1rem; }

/* .btn-block (removed in BS5) */
.btn-block { display: block; width: 100%; }
.btn-block + .btn-block { margin-top: 0.5rem; }

/* .card-deck (removed in BS5) */
.card-deck { display: flex; flex-flow: row wrap; gap: 1rem; }
.card-deck .card { flex: 1 0 0%; }

/* .media (removed in BS5) */
.media      { display: flex; align-items: flex-start; }
.media-body { flex: 1; }

/* .close button (replaced by .btn-close in BS5) */
.close {
  float: right; font-size: 1.5rem; font-weight: 700; line-height: 1;
  color: #000; text-shadow: 0 1px 0 #fff; opacity: .5;
  background: transparent; border: 0; cursor: pointer; padding: 0;
}
.close:hover { opacity: .75; }

/* .badge-* colour helpers (BS4 pattern) */
.badge.badge-primary   { background-color: #0d6efd !important; }
.badge.badge-secondary { background-color: #6c757d !important; }
.badge.badge-success   { background-color: #198754 !important; }
.badge.badge-danger    { background-color: #dc3545 !important; }
.badge.badge-warning   { background-color: #ffc107 !important; color: #212529 !important; }
.badge.badge-info      { background-color: #0dcaf0 !important; color: #212529 !important; }
.badge.badge-light     { background-color: #f8f9fa !important; color: #212529 !important; }
.badge.badge-dark      { background-color: #212529 !important; }

/* .embed-responsive (replaced by .ratio in BS5) */
.embed-responsive { position: relative; display: block; width: 100%; padding: 0; overflow: hidden; }
.embed-responsive::before { display: block; content: ""; }
.embed-responsive .embed-responsive-item,
.embed-responsive iframe,
.embed-responsive embed,
.embed-responsive object,
.embed-responsive video {
  position: absolute; top: 0; bottom: 0; left: 0;
  width: 100%; height: 100%; border: 0;
}
.embed-responsive-21by9::before { padding-top: 42.857143%; }
.embed-responsive-16by9::before { padding-top: 56.25%; }
.embed-responsive-4by3::before  { padding-top: 75%; }
.embed-responsive-1by1::before  { padding-top: 100%; }

/* Dropdown .dropleft / .dropright stubs */
.dropleft  { position: relative; }
.dropright { position: relative; }

/* Input group prepend/append layout shim */
.input-group-prepend,
.input-group-append { display: flex; }
.input-group-prepend .btn,
.input-group-append  .btn,
.input-group-prepend .input-group-text,
.input-group-append  .input-group-text { border-radius: 0; }
.input-group > .input-group-prepend > .btn,
.input-group > .input-group-prepend > .input-group-text {
  border-top-right-radius: 0; border-bottom-right-radius: 0;
}
.input-group > .input-group-append > .btn,
.input-group > .input-group-append > .input-group-text {
  border-top-left-radius: 0; border-bottom-left-radius: 0;
}

/* -- End bootstrap-compat.css -- */

/* ═══════════════════════════════════════════════════════════════════════════
 * BS4 -> BS5 REGRESSION FIXES
 * ═══════════════════════════════════════════════════════════════════════════ */

/* ── 1. Link text-decoration ─────────────────────────────────────────────────
 * Bootstrap 4 set  a { text-decoration: none }  in its own stylesheet.
 * Bootstrap 5 changed this to  a { text-decoration: underline } (accessibility).
 * Restore the expected behaviour here.
 */
a { text-decoration: none; }

/* ── 2. Slick slider on .row containers ──────────────────────────────────────
 * Bootstrap 5 gutters:  .row > * { padding-left: 0.75rem; padding-right: 0.75rem }
 *
 * After Slick.js initialises on a .row element it inserts:
 *   .row > .slick-list > .slick-track > .slick-slide > div > .col-*
 *
 * Problem A — .slick-list is now a direct .row child → receives unwanted
 *   0.75rem padding on both sides, disrupting Slick's width calculations.
 * Problem B — .col-* items inside .slick-slide are no longer direct .row
 *   children → lose their gutter padding → spacing between cards disappears.
 *
 * Fix A: strip the erroneous padding from .slick-list.
 * Fix B: restore BS4-equivalent column padding (15px) inside Slick tracks.
 */
.row.slick-initialized > .slick-list {
  padding-left:  0 !important;
  padding-right: 0 !important;
  margin-top:    0 !important;
}
/* Restore gutter inside slides for any col-* variant */
.slick-track [class*="col-"],
.slick-track .col {
  padding-left:  15px;
  padding-right: 15px;
}

/* ── End BS4 -> BS5 regression fixes ──────────────────────────────────────── */
