/*!
 * bootstrap-homepage.min.css - REBUILT 2026-05-11
 * Custom subset of Bootstrap 5.3.3 for / (homepage) + header.php
 *
 * IMPORTANT: This file is NOT yet wired up in header.php. Manual re-enable
 * is required under owner supervision. See header.php line 333.
 *
 * Strategy: explicit include of all base reset rules + every utility/component
 * actually used by index.php and header.php navbar/dropdown/buttons.
 * Previous querySelector subsetter dropped critical pseudo-states.
 */

/* ========= CSS variables (root tokens) ========= */
:root{
  --bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;
  --bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;
  --bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-white:#fff;--bs-gray:#6c757d;
  --bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;
  --bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;
  --bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;
  --bs-gray-900:#212529;
  --bs-primary:#0d6efd;--bs-secondary:#6c757d;--bs-success:#198754;
  --bs-info:#0dcaf0;--bs-warning:#ffc107;--bs-danger:#dc3545;
  --bs-light:#f8f9fa;--bs-dark:#212529;
  --bs-primary-rgb:13,110,253;--bs-secondary-rgb:108,117,125;
  --bs-success-rgb:25,135,84;--bs-info-rgb:13,202,240;
  --bs-warning-rgb:255,193,7;--bs-danger-rgb:220,53,69;
  --bs-light-rgb:248,249,250;--bs-dark-rgb:33,37,41;
  --bs-white-rgb:255,255,255;--bs-black-rgb:0,0,0;
  --bs-body-color-rgb:33,37,41;--bs-body-bg-rgb:255,255,255;
  --bs-font-sans-serif: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-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;
  --bs-gradient:linear-gradient(180deg,rgba(255,255,255,.15),rgba(255,255,255,0));
  --bs-body-font-family:var(--bs-font-sans-serif);
  --bs-body-font-size:1rem;--bs-body-font-weight:400;--bs-body-line-height:1.5;
  --bs-body-color:#212529;--bs-body-bg:#fff;
  --bs-emphasis-color:#000;--bs-emphasis-color-rgb:0,0,0;
  --bs-secondary-color:rgba(33,37,41,.75);--bs-secondary-bg:#e9ecef;
  --bs-tertiary-color:rgba(33,37,41,.5);--bs-tertiary-bg:#f8f9fa;
  --bs-heading-color:inherit;
  --bs-link-color:#0d6efd;--bs-link-color-rgb:13,110,253;
  --bs-link-hover-color:#0a58ca;--bs-link-hover-color-rgb:10,88,202;
  --bs-border-width:1px;--bs-border-style:solid;--bs-border-color:#dee2e6;
  --bs-border-color-translucent:rgba(0,0,0,.175);
  --bs-border-radius:.375rem;--bs-border-radius-sm:.25rem;
  --bs-border-radius-lg:.5rem;--bs-border-radius-xl:1rem;
  --bs-border-radius-xxl:2rem;--bs-border-radius-pill:50rem;
  --bs-box-shadow:0 .5rem 1rem rgba(0,0,0,.15);
  --bs-box-shadow-sm:0 .125rem .25rem rgba(0,0,0,.075);
  --bs-box-shadow-lg:0 1rem 3rem rgba(0,0,0,.175);
}

/* ========= Reset / Reboot (critical base) ========= */
*,*::before,*::after{box-sizing:border-box}
@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}
body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}
hr{margin:1rem 0;color:inherit;border:0;border-top:var(--bs-border-width) solid;opacity:.25}
h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2;color:var(--bs-heading-color)}
p{margin-top:0;margin-bottom:1rem}
ul,ol{padding-left:2rem;margin-top:0;margin-bottom:1rem}
ul ul,ol ul,ul ol,ol ol{margin-bottom:0}
b,strong{font-weight:bolder}
small{font-size:.875em}
a{color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,1));text-decoration:underline}
a:hover{--bs-link-color-rgb:var(--bs-link-hover-color-rgb)}
a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}
img,svg{vertical-align:middle}
table{caption-side:bottom;border-collapse:collapse}
button{border-radius:0}
button:focus:not(:focus-visible){outline:0}
input,button,select,optgroup,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}
button,select{text-transform:none}
[role=button]{cursor:pointer}
button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}
button:not(:disabled),[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled){cursor:pointer}
::-moz-focus-inner{padding:0;border-style:none}
[hidden]{display:none!important}

/* ========= Containers ========= */
.container,.container-fluid,.container-sm,.container-md,.container-lg,.container-xl,.container-xxl{--bs-gutter-x:1.5rem;--bs-gutter-y:0;width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-right:auto;margin-left:auto}
@media (min-width:576px){.container,.container-sm{max-width:540px}}
@media (min-width:768px){.container,.container-sm,.container-md{max-width:720px}}
@media (min-width:992px){.container,.container-sm,.container-md,.container-lg{max-width:960px}}
@media (min-width:1200px){.container,.container-sm,.container-md,.container-lg,.container-xl{max-width:1140px}}
@media (min-width:1400px){.container,.container-sm,.container-md,.container-lg,.container-xl,.container-xxl{max-width:1320px}}

/* ========= Grid (row + cols used on homepage) ========= */
.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;display:flex;flex-wrap:wrap;margin-top:calc(-1 * var(--bs-gutter-y));margin-right:calc(-.5 * var(--bs-gutter-x));margin-left:calc(-.5 * var(--bs-gutter-x))}
.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}
.col{flex:1 0 0%}
.col-auto{flex:0 0 auto;width:auto}
.col-1{flex:0 0 auto;width:8.33333333%}
.col-2{flex:0 0 auto;width:16.66666667%}
.col-3{flex:0 0 auto;width:25%}
.col-4{flex:0 0 auto;width:33.33333333%}
.col-5{flex:0 0 auto;width:41.66666667%}
.col-6{flex:0 0 auto;width:50%}
.col-7{flex:0 0 auto;width:58.33333333%}
.col-8{flex:0 0 auto;width:66.66666667%}
.col-9{flex:0 0 auto;width:75%}
.col-10{flex:0 0 auto;width:83.33333333%}
.col-11{flex:0 0 auto;width:91.66666667%}
.col-12{flex:0 0 auto;width:100%}
@media (min-width:576px){.col-sm{flex:1 0 0%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-12{flex:0 0 auto;width:100%}}
@media (min-width:768px){.col-md{flex:1 0 0%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-12{flex:0 0 auto;width:100%}}
@media (min-width:992px){.col-lg{flex:1 0 0%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-12{flex:0 0 auto;width:100%}}
@media (min-width:1200px){.col-xl{flex:1 0 0%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-12{flex:0 0 auto;width:100%}}

/* ========= List utilities ========= */
.list-unstyled{padding-left:0;list-style:none}
.list-inline{padding-left:0;list-style:none}
.list-inline-item{display:inline-block}
.list-inline-item:not(:last-child){margin-right:.5rem}

/* ========= Buttons (full set used + variants) ========= */
.btn{
  --bs-btn-padding-x:.75rem;--bs-btn-padding-y:.375rem;
  --bs-btn-font-family: ;--bs-btn-font-size:1rem;--bs-btn-font-weight:400;
  --bs-btn-line-height:1.5;--bs-btn-color:var(--bs-body-color);
  --bs-btn-bg:transparent;--bs-btn-border-width:var(--bs-border-width);
  --bs-btn-border-color:transparent;--bs-btn-border-radius:var(--bs-border-radius);
  --bs-btn-hover-border-color:transparent;
  --bs-btn-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075);
  --bs-btn-disabled-opacity:.65;
  --bs-btn-focus-box-shadow:0 0 0 .25rem rgba(var(--bs-btn-focus-shadow-rgb),.5);
  display:inline-block;padding:var(--bs-btn-padding-y) var(--bs-btn-padding-x);
  font-family:var(--bs-btn-font-family);font-size:var(--bs-btn-font-size);
  font-weight:var(--bs-btn-font-weight);line-height:var(--bs-btn-line-height);
  color:var(--bs-btn-color);text-align:center;text-decoration:none;
  vertical-align:middle;cursor:pointer;user-select:none;border:var(--bs-btn-border-width) solid var(--bs-btn-border-color);
  border-radius:var(--bs-btn-border-radius);background-color:var(--bs-btn-bg);
  transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out
}
@media (prefers-reduced-motion:reduce){.btn{transition:none}}
.btn:hover{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color)}
.btn-check+.btn:hover{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color)}
.btn:focus-visible{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}
.btn-check:focus-visible+.btn{border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}
.btn-check:checked+.btn,.btn.active,.btn.show,.btn:first-child:active,:not(.btn-check)+.btn:active{color:var(--bs-btn-active-color);background-color:var(--bs-btn-active-bg);border-color:var(--bs-btn-active-border-color)}
.btn:disabled,.btn.disabled,fieldset:disabled .btn{color:var(--bs-btn-disabled-color);pointer-events:none;background-color:var(--bs-btn-disabled-bg);border-color:var(--bs-btn-disabled-border-color);opacity:var(--bs-btn-disabled-opacity)}
.btn-primary{--bs-btn-color:#fff;--bs-btn-bg:#0d6efd;--bs-btn-border-color:#0d6efd;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#0b5ed7;--bs-btn-hover-border-color:#0a58ca;--bs-btn-focus-shadow-rgb:49,132,253;--bs-btn-active-color:#fff;--bs-btn-active-bg:#0a58ca;--bs-btn-active-border-color:#0a53be;--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#0d6efd;--bs-btn-disabled-border-color:#0d6efd}
.btn-secondary{--bs-btn-color:#fff;--bs-btn-bg:#6c757d;--bs-btn-border-color:#6c757d;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#5c636a;--bs-btn-hover-border-color:#565e64;--bs-btn-active-color:#fff;--bs-btn-active-bg:#565e64;--bs-btn-active-border-color:#51585e;--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#6c757d;--bs-btn-disabled-border-color:#6c757d}
.btn-success{--bs-btn-color:#fff;--bs-btn-bg:#198754;--bs-btn-border-color:#198754;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#157347;--bs-btn-hover-border-color:#146c43;--bs-btn-active-color:#fff;--bs-btn-active-bg:#146c43;--bs-btn-active-border-color:#13653f}
.btn-danger{--bs-btn-color:#fff;--bs-btn-bg:#dc3545;--bs-btn-border-color:#dc3545;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#bb2d3b;--bs-btn-hover-border-color:#b02a37;--bs-btn-active-color:#fff;--bs-btn-active-bg:#b02a37;--bs-btn-active-border-color:#a52834}
.btn-warning{--bs-btn-color:#000;--bs-btn-bg:#ffc107;--bs-btn-border-color:#ffc107;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#ffca2c;--bs-btn-hover-border-color:#ffc720;--bs-btn-active-color:#000;--bs-btn-active-bg:#ffcd39;--bs-btn-active-border-color:#ffc720}
.btn-info{--bs-btn-color:#000;--bs-btn-bg:#0dcaf0;--bs-btn-border-color:#0dcaf0;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#31d2f2;--bs-btn-hover-border-color:#25cff2;--bs-btn-active-color:#000;--bs-btn-active-bg:#3dd5f3;--bs-btn-active-border-color:#25cff2}
.btn-light{--bs-btn-color:#000;--bs-btn-bg:#f8f9fa;--bs-btn-border-color:#f8f9fa;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#d3d4d5;--bs-btn-hover-border-color:#c6c7c8;--bs-btn-active-color:#000;--bs-btn-active-bg:#c6c7c8;--bs-btn-active-border-color:#babbbc}
.btn-dark{--bs-btn-color:#fff;--bs-btn-bg:#212529;--bs-btn-border-color:#212529;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#424649;--bs-btn-hover-border-color:#373b3e;--bs-btn-active-color:#fff;--bs-btn-active-bg:#4d5154;--bs-btn-active-border-color:#373b3e}
.btn-outline-primary{--bs-btn-color:#0d6efd;--bs-btn-border-color:#0d6efd;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#0d6efd;--bs-btn-hover-border-color:#0d6efd;--bs-btn-active-color:#fff;--bs-btn-active-bg:#0d6efd;--bs-btn-active-border-color:#0d6efd;--bs-btn-disabled-color:#0d6efd;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#0d6efd;--bs-gradient:none}
.btn-outline-secondary{--bs-btn-color:#6c757d;--bs-btn-border-color:#6c757d;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#6c757d;--bs-btn-hover-border-color:#6c757d;--bs-btn-active-color:#fff;--bs-btn-active-bg:#6c757d;--bs-btn-active-border-color:#6c757d;--bs-btn-disabled-color:#6c757d;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#6c757d;--bs-gradient:none}
.btn-outline-light{--bs-btn-color:#f8f9fa;--bs-btn-border-color:#f8f9fa;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#f8f9fa;--bs-btn-hover-border-color:#f8f9fa;--bs-btn-active-color:#000;--bs-btn-active-bg:#f8f9fa;--bs-btn-active-border-color:#f8f9fa;--bs-btn-disabled-color:#f8f9fa;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#f8f9fa;--bs-gradient:none}
.btn-link{--bs-btn-font-weight:400;--bs-btn-color:var(--bs-link-color);--bs-btn-bg:transparent;--bs-btn-border-color:transparent;--bs-btn-hover-color:var(--bs-link-hover-color);--bs-btn-hover-border-color:transparent;--bs-btn-active-color:var(--bs-link-hover-color);--bs-btn-active-border-color:transparent;--bs-btn-disabled-color:#6c757d;--bs-btn-disabled-border-color:transparent;text-decoration:underline}
.btn-link:hover,.btn-link:focus-visible{text-decoration:underline}
.btn-lg{--bs-btn-padding-y:.5rem;--bs-btn-padding-x:1rem;--bs-btn-font-size:1.25rem;--bs-btn-border-radius:var(--bs-border-radius-lg)}
.btn-sm{--bs-btn-padding-y:.25rem;--bs-btn-padding-x:.5rem;--bs-btn-font-size:.875rem;--bs-btn-border-radius:var(--bs-border-radius-sm)}

/* ========= Dropdown ========= */
.dropup,.dropend,.dropdown,.dropstart,.dropup-center,.dropdown-center{position:relative}
.dropdown-toggle{white-space:nowrap}
.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}
.dropdown-toggle:empty::after{margin-left:0}
.dropdown-menu{
  --bs-dropdown-zindex:1000;--bs-dropdown-min-width:10rem;
  --bs-dropdown-padding-x:0;--bs-dropdown-padding-y:.5rem;
  --bs-dropdown-spacer:.125rem;--bs-dropdown-font-size:1rem;
  --bs-dropdown-color:var(--bs-body-color);
  --bs-dropdown-bg:var(--bs-body-bg);
  --bs-dropdown-border-color:var(--bs-border-color-translucent);
  --bs-dropdown-border-radius:var(--bs-border-radius);
  --bs-dropdown-border-width:var(--bs-border-width);
  --bs-dropdown-inner-border-radius:calc(var(--bs-border-radius) - var(--bs-border-width));
  --bs-dropdown-divider-bg:var(--bs-border-color-translucent);
  --bs-dropdown-divider-margin-y:.5rem;
  --bs-dropdown-box-shadow:var(--bs-box-shadow);
  --bs-dropdown-link-color:var(--bs-body-color);
  --bs-dropdown-link-hover-color:var(--bs-body-color);
  --bs-dropdown-link-hover-bg:var(--bs-tertiary-bg);
  --bs-dropdown-link-active-color:#fff;
  --bs-dropdown-link-active-bg:#0d6efd;
  --bs-dropdown-link-disabled-color:var(--bs-tertiary-color);
  --bs-dropdown-item-padding-x:1rem;
  --bs-dropdown-item-padding-y:.25rem;
  --bs-dropdown-header-color:#6c757d;
  --bs-dropdown-header-padding-x:1rem;
  --bs-dropdown-header-padding-y:.5rem;
  position:absolute;z-index:var(--bs-dropdown-zindex);display:none;
  min-width:var(--bs-dropdown-min-width);
  padding:var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x);
  margin:0;font-size:var(--bs-dropdown-font-size);color:var(--bs-dropdown-color);
  text-align:left;list-style:none;background-color:var(--bs-dropdown-bg);
  background-clip:padding-box;border:var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);
  border-radius:var(--bs-dropdown-border-radius)
}
.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:var(--bs-dropdown-spacer)}
.dropdown-menu-start{--bs-position:start}
.dropdown-menu-start[data-bs-popper]{right:auto;left:0}
.dropdown-menu-end{--bs-position:end}
.dropdown-menu-end[data-bs-popper]{right:0;left:auto}
.dropdown-divider{height:0;margin:var(--bs-dropdown-divider-margin-y) 0;overflow:hidden;border-top:1px solid var(--bs-dropdown-divider-bg);opacity:1}
.dropdown-item{display:block;width:100%;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);clear:both;font-weight:400;color:var(--bs-dropdown-link-color);text-align:inherit;text-decoration:none;white-space:nowrap;background-color:transparent;border:0;border-radius:var(--bs-dropdown-item-border-radius,0)}
.dropdown-item:hover,.dropdown-item:focus{color:var(--bs-dropdown-link-hover-color);background-color:var(--bs-dropdown-link-hover-bg)}
.dropdown-item.active,.dropdown-item:active{color:var(--bs-dropdown-link-active-color);text-decoration:none;background-color:var(--bs-dropdown-link-active-bg)}
.dropdown-item.disabled,.dropdown-item:disabled{color:var(--bs-dropdown-link-disabled-color);pointer-events:none;background-color:transparent}
.dropdown-menu.show{display:block}
.dropdown-header{display:block;padding:var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);margin-bottom:0;font-size:.875rem;color:var(--bs-dropdown-header-color);white-space:nowrap}
.dropdown-item-text{display:block;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);color:var(--bs-dropdown-link-color)}

/* ========= Collapse ========= */
.collapse:not(.show){display:none}
.collapsing{height:0;overflow:hidden;transition:height .35s ease}
.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}
@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}

/* ========= Nav ========= */
.nav{--bs-nav-link-padding-x:1rem;--bs-nav-link-padding-y:.5rem;--bs-nav-link-color:var(--bs-link-color);--bs-nav-link-hover-color:var(--bs-link-hover-color);--bs-nav-link-disabled-color:var(--bs-secondary-color);display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}
.nav-link{display:block;padding:var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);font-size:var(--bs-nav-link-font-size);font-weight:var(--bs-nav-link-font-weight);color:var(--bs-nav-link-color);text-decoration:none;background:none;border:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}
@media (prefers-reduced-motion:reduce){.nav-link{transition:none}}
.nav-link:hover,.nav-link:focus{color:var(--bs-nav-link-hover-color)}
.nav-link.disabled,.nav-link:disabled{color:var(--bs-nav-link-disabled-color);pointer-events:none;cursor:default}
.nav-item{display:list-item}

/* ========= Navbar ========= */
.navbar{
  --bs-navbar-padding-x:0;--bs-navbar-padding-y:.5rem;
  --bs-navbar-color:rgba(var(--bs-emphasis-color-rgb),.65);
  --bs-navbar-hover-color:rgba(var(--bs-emphasis-color-rgb),.8);
  --bs-navbar-disabled-color:rgba(var(--bs-emphasis-color-rgb),.3);
  --bs-navbar-active-color:rgba(var(--bs-emphasis-color-rgb),1);
  --bs-navbar-brand-padding-y:.3125rem;--bs-navbar-brand-margin-end:1rem;
  --bs-navbar-brand-font-size:1.25rem;
  --bs-navbar-brand-color:rgba(var(--bs-emphasis-color-rgb),1);
  --bs-navbar-brand-hover-color:rgba(var(--bs-emphasis-color-rgb),1);
  --bs-navbar-nav-link-padding-x:.5rem;
  --bs-navbar-toggler-padding-y:.25rem;--bs-navbar-toggler-padding-x:.75rem;
  --bs-navbar-toggler-font-size:1.25rem;
  --bs-navbar-toggler-icon-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2833, 37, 41, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
  --bs-navbar-toggler-border-color:rgba(var(--bs-emphasis-color-rgb),.15);
  --bs-navbar-toggler-border-radius:var(--bs-border-radius);
  --bs-navbar-toggler-focus-width:.25rem;
  --bs-navbar-toggler-transition:box-shadow .15s ease-in-out;
  position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
  padding:var(--bs-navbar-padding-y) var(--bs-navbar-padding-x)
}
.navbar>.container,.navbar>.container-fluid,.navbar>.container-sm,.navbar>.container-md,.navbar>.container-lg,.navbar>.container-xl,.navbar>.container-xxl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}
.navbar-brand{padding-top:var(--bs-navbar-brand-padding-y);padding-bottom:var(--bs-navbar-brand-padding-y);margin-right:var(--bs-navbar-brand-margin-end);font-size:var(--bs-navbar-brand-font-size);color:var(--bs-navbar-brand-color);text-decoration:none;white-space:nowrap}
.navbar-brand:hover,.navbar-brand:focus{color:var(--bs-navbar-brand-hover-color)}
.navbar-nav{--bs-nav-link-padding-x:0;--bs-nav-link-padding-y:.5rem;--bs-nav-link-color:var(--bs-navbar-color);--bs-nav-link-hover-color:var(--bs-navbar-hover-color);--bs-nav-link-disabled-color:var(--bs-navbar-disabled-color);display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}
.navbar-nav .nav-link.active,.navbar-nav .nav-link.show{color:var(--bs-navbar-active-color)}
.navbar-nav .dropdown-menu{position:static}
.navbar-text{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-navbar-color)}
.navbar-text a,.navbar-text a:hover,.navbar-text a:focus{color:var(--bs-navbar-active-color)}
.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}
.navbar-toggler{padding:var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);font-size:var(--bs-navbar-toggler-font-size);line-height:1;color:var(--bs-navbar-color);background-color:transparent;border:var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);border-radius:var(--bs-navbar-toggler-border-radius);transition:var(--bs-navbar-toggler-transition)}
@media (prefers-reduced-motion:reduce){.navbar-toggler{transition:none}}
.navbar-toggler:hover{text-decoration:none}
.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 var(--bs-navbar-toggler-focus-width)}
.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-image:var(--bs-navbar-toggler-icon-bg);background-repeat:no-repeat;background-position:center;background-size:100%}
.navbar-nav-scroll{max-height:var(--bs-scroll-height,75vh);overflow-y:auto}
@media (min-width:1200px){
  .navbar-expand-xl{flex-wrap:nowrap;justify-content:flex-start}
  .navbar-expand-xl .navbar-nav{flex-direction:row}
  .navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}
  .navbar-expand-xl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}
  .navbar-expand-xl .navbar-nav-scroll{overflow:visible}
  .navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}
  .navbar-expand-xl .navbar-toggler{display:none}
}
.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}
.navbar-expand .navbar-nav{flex-direction:row}
.navbar-expand .navbar-nav .dropdown-menu{position:absolute}
.navbar-expand .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}
.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}
.navbar-expand .navbar-toggler{display:none}
.navbar-dark,.navbar[data-bs-theme=dark]{
  --bs-navbar-color:rgba(255,255,255,.55);
  --bs-navbar-hover-color:rgba(255,255,255,.75);
  --bs-navbar-disabled-color:rgba(255,255,255,.25);
  --bs-navbar-active-color:#fff;
  --bs-navbar-brand-color:#fff;--bs-navbar-brand-hover-color:#fff;
  --bs-navbar-toggler-border-color:rgba(255,255,255,.1);
  --bs-navbar-toggler-icon-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")
}

/* ========= Display / Flex utilities ========= */
.d-inline{display:inline!important}
.d-inline-block{display:inline-block!important}
.d-block{display:block!important}
.d-grid{display:grid!important}
.d-flex{display:flex!important}
.d-inline-flex{display:inline-flex!important}
.d-none{display:none!important}
@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-block{display:block!important}.d-sm-flex{display:flex!important}}
@media (min-width:768px){.d-md-none{display:none!important}.d-md-block{display:block!important}.d-md-flex{display:flex!important}}
@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-block{display:block!important}.d-lg-flex{display:flex!important}}
@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-block{display:block!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}}

.flex-row{flex-direction:row!important}
.flex-column{flex-direction:column!important}
.flex-wrap{flex-wrap:wrap!important}
.flex-nowrap{flex-wrap:nowrap!important}
.flex-fill{flex:1 1 auto!important}
.flex-grow-0{flex-grow:0!important}
.flex-grow-1{flex-grow:1!important}
.flex-shrink-0{flex-shrink:0!important}
.flex-shrink-1{flex-shrink:1!important}

.justify-content-start{justify-content:flex-start!important}
.justify-content-end{justify-content:flex-end!important}
.justify-content-center{justify-content:center!important}
.justify-content-between{justify-content:space-between!important}
.justify-content-around{justify-content:space-around!important}
.align-items-start{align-items:flex-start!important}
.align-items-end{align-items:flex-end!important}
.align-items-center{align-items:center!important}
.align-items-baseline{align-items:baseline!important}
.align-items-stretch{align-items:stretch!important}
.align-self-start{align-self:flex-start!important}
.align-self-center{align-self:center!important}
.align-self-end{align-self:flex-end!important}

.gap-0{gap:0!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.gap-4{gap:1.5rem!important}.gap-5{gap:3rem!important}

.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-last{order:6!important}

/* ========= Spacing utilities ========= */
.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}
.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}
.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}
.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}
.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}
.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-auto{margin-left:auto!important}
.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}

.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}
.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}
.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}
.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}
.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}
.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}
.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}

/* ========= Text utilities ========= */
.text-start{text-align:left!important}
.text-end{text-align:right!important}
.text-center{text-align:center!important}
.text-decoration-none{text-decoration:none!important}
.text-decoration-underline{text-decoration:underline!important}
.text-nowrap{white-space:nowrap!important}
.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.text-uppercase{text-transform:uppercase!important}
.text-lowercase{text-transform:lowercase!important}
.text-capitalize{text-transform:capitalize!important}
.text-muted{color:var(--bs-secondary-color)!important}
.text-white{color:#fff!important}
.text-dark{color:var(--bs-dark)!important}
.text-primary{color:var(--bs-primary)!important}
.text-danger{color:var(--bs-danger)!important}
.text-success{color:var(--bs-success)!important}
.text-warning{color:var(--bs-warning)!important}
.fw-light{font-weight:300!important}
.fw-normal{font-weight:400!important}
.fw-medium{font-weight:500!important}
.fw-semibold{font-weight:600!important}
.fw-bold{font-weight:700!important}
.fs-1{font-size:calc(1.375rem + 1.5vw)!important}
.fs-2{font-size:calc(1.325rem + .9vw)!important}
.fs-3{font-size:calc(1.3rem + .6vw)!important}
.fs-4{font-size:calc(1.275rem + .3vw)!important}
.fs-5{font-size:1.25rem!important}
.fs-6{font-size:1rem!important}
.lh-1{line-height:1!important}.lh-sm{line-height:1.25!important}.lh-base{line-height:1.5!important}.lh-lg{line-height:2!important}

/* ========= Background / Border ========= */
.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-danger{background-color:RGBA(var(--bs-danger-rgb),var(--bs-bg-opacity,1))!important}
.bg-warning{background-color:RGBA(var(--bs-warning-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}
.bg-white{background-color:RGBA(var(--bs-white-rgb),var(--bs-bg-opacity,1))!important}
.bg-transparent{background-color:transparent!important}

.border{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}
.border-0{border:0!important}
.border-top{border-top:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}
.border-bottom{border-bottom:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}
.border-start{border-left:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}
.border-end{border-right:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}

.rounded{border-radius:var(--bs-border-radius)!important}
.rounded-0{border-radius:0!important}
.rounded-1{border-radius:var(--bs-border-radius-sm)!important}
.rounded-2{border-radius:var(--bs-border-radius)!important}
.rounded-3{border-radius:var(--bs-border-radius-lg)!important}
.rounded-circle{border-radius:50%!important}
.rounded-pill{border-radius:var(--bs-border-radius-pill)!important}

.shadow{box-shadow:var(--bs-box-shadow)!important}
.shadow-sm{box-shadow:var(--bs-box-shadow-sm)!important}
.shadow-lg{box-shadow:var(--bs-box-shadow-lg)!important}
.shadow-none{box-shadow:none!important}

/* ========= Sizing ========= */
.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}
.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}
.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}
.vh-100{height:100vh!important}.min-vh-100{min-height:100vh!important}

/* ========= Position ========= */
.position-static{position:static!important}
.position-relative{position:relative!important}
.position-absolute{position:absolute!important}
.position-fixed{position:fixed!important}
.position-sticky{position:sticky!important}
.top-0{top:0!important}.top-50{top:50%!important}.top-100{top:100%!important}
.start-0{left:0!important}.end-0{right:0!important}
.translate-middle{transform:translate(-50%,-50%)!important}
.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}
.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}
.sticky-top{position:sticky;top:0;z-index:1020}

/* ========= Visibility / a11y helpers ========= */
.visible{visibility:visible!important}
.invisible{visibility:hidden!important}
.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

/* ========= Overflow ========= */
.overflow-auto{overflow:auto!important}
.overflow-hidden{overflow:hidden!important}
.overflow-visible{overflow:visible!important}
.overflow-scroll{overflow:scroll!important}

/* ========= Opacity ========= */
.opacity-0{opacity:0!important}
.opacity-25{opacity:.25!important}
.opacity-50{opacity:.5!important}
.opacity-75{opacity:.75!important}
.opacity-100{opacity:1!important}

/* ========= Images ========= */
.img-fluid{max-width:100%;height:auto}
.img-thumbnail{padding:.25rem;background-color:var(--bs-body-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);max-width:100%;height:auto}

/* ========= Animations (keyframes used by FA spinner + page) ========= */
@keyframes fa-spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}
@keyframes spinner-border{to{transform:rotate(360deg)}}
@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes fadeInUp{from{opacity:0;transform:translate3d(0,20px,0)}to{opacity:1;transform:none}}
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}

.fa-spin{animation:fa-spin 2s linear infinite}

/* ========= Spinner ========= */
.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:-.125em;border:.25em solid currentcolor;border-right-color:transparent;border-radius:50%;animation:.75s linear infinite spinner-border}
.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}

/* ========= Fade transitions (for collapse/dropdown shows) ========= */
.fade{transition:opacity .15s linear}
@media (prefers-reduced-motion:reduce){.fade{transition:none}}
.fade:not(.show){opacity:0}
.g-2,.gx-2{--bs-gutter-x:0.5rem}.g-2,.gy-2{--bs-gutter-y:0.5rem}