/* ===========================================================
   Spacebars - utility layer.
   Replaces the full Bootstrap 5.3 CDN stylesheet (232 kb) with
   only the ~130 utilities the product actually uses, plus the
   parts of Reboot main.css relies on. Keep this file in sync if
   a new utility class is introduced.
   =========================================================== */

/* ---- Reboot subset (main.css already resets box-sizing, body, a, headings) ---- */
p{ margin:0 0 1rem; }
ul,ol{ margin:0 0 1rem; padding-left:2rem; }
h1,h2,h3,h4,h5,h6{ margin:0 0 .5rem; }
h1{ font-size:2.5rem; } h2{ font-size:2rem; } h3{ font-size:1.75rem; }
h4{ font-size:1.5rem; } h5{ font-size:1.25rem; } h6{ font-size:1rem; }
b,strong{ font-weight:700; }
small{ font-size:.875em; }
img,svg,video{ vertical-align:middle; }
table{ border-collapse:collapse; caption-side:bottom; }
th{ text-align:inherit; }
label{ display:inline-block; }
button,input,optgroup,select,textarea{ margin:0; font-family:inherit; font-size:inherit; line-height:inherit; }
button,[type=button],[type=submit]{ -webkit-appearance:button; }
button:not(:disabled),[type=button]:not(:disabled),[type=submit]:not(:disabled){ cursor:pointer; }
textarea{ resize:vertical; }
fieldset{ min-width:0; padding:0; margin:0; border:0; }
[hidden]{ display:none!important; }

/* ---- display ---- */
.d-none{ display:none!important; }
.d-block{ display:block!important; }
.d-inline{ display:inline!important; }
.d-inline-block{ display:inline-block!important; }
.d-inline-flex{ display:inline-flex!important; }
.d-flex{ display:flex!important; }
.d-grid{ display:grid!important; }

/* ---- flex ---- */
.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-1{ flex-grow:1!important; }
.flex-shrink-0{ flex-shrink:0!important; }

.align-items-start{ align-items:flex-start!important; }
.align-items-center{ align-items:center!important; }
.align-items-end{ align-items:flex-end!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; }

.justify-content-start{ justify-content:flex-start!important; }
.justify-content-center{ justify-content:center!important; }
.justify-content-end{ justify-content:flex-end!important; }
.justify-content-between{ justify-content:space-between!important; }
.justify-content-around{ justify-content:space-around!important; }

/* ---- gap (0.25rem scale) ---- */
.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; }

/* ---- spacing ---- */
.m-0{ margin:0!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; }
.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; }
.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-1{ margin-right:.25rem!important; } .me-2{ margin-right:.5rem!important; } .me-3{ margin-right:1rem!important; }
.me-auto{ margin-right:auto!important; }
.mx-auto{ margin-left:auto!important; margin-right:auto!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; }

.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; }
.pt-0{ padding-top:0!important; } .pt-1{ padding-top:.25rem!important; } .pt-2{ padding-top:.5rem!important; } .pt-3{ padding-top:1rem!important; }
.pb-0{ padding-bottom:0!important; } .pb-2{ padding-bottom:.5rem!important; } .pb-3{ padding-bottom:1rem!important; } .pb-4{ padding-bottom:1.5rem!important; }
.px-2{ padding-left:.5rem!important; padding-right:.5rem!important; }
.px-3{ padding-left:1rem!important; padding-right:1rem!important; }
.px-4{ padding-left:1.5rem!important; padding-right:1.5rem!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; }

/* ---- sizing ---- */
.w-100{ width:100%!important; }
.w-auto{ width:auto!important; }
.h-100{ height:100%!important; }

/* ---- text ---- */
.text-center{ text-align:center!important; }
.text-start{ text-align:left!important; }
.text-end{ text-align:right!important; }
.text-reset{ color:inherit!important; }
.text-nowrap{ white-space:nowrap!important; }
.text-truncate{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.fw-bold{ font-weight:700!important; }
.fw-semibold{ font-weight:600!important; }

/* ---- borders ---- */
.border-0{ border:0!important; }
.rounded-circle{ border-radius:50%!important; }

/* ---- position ---- */
.position-relative{ position:relative!important; }
.position-absolute{ position:absolute!important; }
.overflow-hidden{ overflow:hidden!important; }

/* ---- grid: row / row-cols-* / col ---- */
.row{ display:flex; flex-wrap:wrap; margin-top:calc(-1 * var(--sb-gy,0)); margin-right:calc(-.5 * var(--sb-gx,1.5rem)); margin-left:calc(-.5 * var(--sb-gx,1.5rem)); }
.row > *{ flex-shrink:0; width:100%; max-width:100%; padding-right:calc(var(--sb-gx,1.5rem) * .5); padding-left:calc(var(--sb-gx,1.5rem) * .5); margin-top:var(--sb-gy,0); }
.g-2{ --sb-gx:.5rem; --sb-gy:.5rem; }
.g-3{ --sb-gx:1rem; --sb-gy:1rem; }
.g-4{ --sb-gx:1.5rem; --sb-gy:1.5rem; }
.col{ flex:1 0 0%; }
.col-auto{ flex:0 0 auto; width:auto; }
.row-cols-1 > *{ flex:0 0 auto; width:100%; }
.row-cols-2 > *{ flex:0 0 auto; width:50%; }
.row-cols-3 > *{ flex:0 0 auto; width:33.33333%; }
.row-cols-4 > *{ flex:0 0 auto; width:25%; }

@media (min-width:576px){
  .row-cols-sm-1 > *{ flex:0 0 auto; width:100%; }
  .row-cols-sm-2 > *{ flex:0 0 auto; width:50%; }
  .row-cols-sm-3 > *{ flex:0 0 auto; width:33.33333%; }
  .d-sm-none{ display:none!important; }
  .d-sm-flex{ display:flex!important; }
}
@media (min-width:768px){
  .row-cols-md-1 > *{ flex:0 0 auto; width:100%; }
  .row-cols-md-2 > *{ flex:0 0 auto; width:50%; }
  .row-cols-md-3 > *{ flex:0 0 auto; width:33.33333%; }
  .row-cols-md-4 > *{ flex:0 0 auto; width:25%; }
  .d-md-none{ display:none!important; }
  .d-md-flex{ display:flex!important; }
  .d-md-block{ display:block!important; }
  .p-md-4{ padding:1.5rem!important; }
  .text-md-start{ text-align:left!important; }
}
@media (min-width:992px){
  .row-cols-lg-2 > *{ flex:0 0 auto; width:50%; }
  .row-cols-lg-3 > *{ flex:0 0 auto; width:33.33333%; }
  .row-cols-lg-4 > *{ flex:0 0 auto; width:25%; }
  .d-lg-none{ display:none!important; }
  .d-lg-flex{ display:flex!important; }
  .d-lg-block{ display:block!important; }
}
