@charset "utf-8";
/* CSS Document */

/* ------------------- defaults ------------------- */
:root {
  --tsy-navy: #2c384a;
  --tsy-green: #4d7861;
  --tsy-mid-blue: #5d779d;
  --tsy-lime: #b1f0cf;
  --tsy-light-blue: #90b6f0;
  --tsy-orange: #f0ae81;
  
  --tsy-mid-blue-dark-tint: #d3dcea;
  --tsy-mid-blue-light-tint: #e8effa;
  --tsy-lime-tint: #e8fbf1;
  --tsy-light-blue-tint: #e0eaff;
  --tsy-lighter-blue-tint: #f4f7fd;
  --tsy-orange-tint: #fcefe6;
  
  --ui-almost-black: #333;
  --ui-dark-grey: #666;
  --ui-grey: #c4c4c4;
  --ui-light-grey: #eee;
  --ui-lightest-grey: #f7f8fa;

  --vertical-spacing: 2.25rem;
  --grid-gap: 20px;
  --item-padding: var(--vertical-spacing);
  --item-border-radius: 0;
  
  --fa-style-family: "Font Awesome 6 Pro";
  /*--fa-style-family: "Font Awesome 6 Sharp";
  /*--fa-style: 900; /* solid */
  --fa-style: 400; /* regular */
  /*--fa-style: 300; /* light */
  /*--fa-style: 900; /* thin */
    
  accent-color: #fff; /* applies to some browser input and progress elements */
}

/* offset scroll for fragment links */
html {
    scroll-padding-top: 120px;
}

/* give fluid layout proportional space at sides */
@media (min-width: 575px) and (max-width: 1399.98px) {
  .container-xxl {   
      margin-left: 8vw;
      margin-right: 8vw;
      width: unset !important;
  }
}

@media (min-width: 574.98px) and (max-width: 767.98px) {
    #banner-toggle .nav-link:hover:before, #banner-toggle .nav-link.disabled:before {
        /*left: calc(8vw - 8px);*/
    }
}

/* --- responsive font sizes --- */
h1 {
  font-size: calc(1.375rem + 1.5vw);
}
@media (min-width: 1200px) {
  h1 {
    font-size: 2.5rem;
  }
}

h2 {
  font-size: calc(1.325rem + 0.9vw);
}
@media (min-width: 1200px) {
  h2 {
    font-size: 2rem;
  }
}

h3 {
  font-size: calc(1.3rem + 0.6vw);
}
@media (min-width: 1200px) {
  h3 {
    font-size: 1.75rem;
  }
}

h4 {
  font-size: calc(1.275rem + 0.3vw);
}
@media (min-width: 1200px) {
  h4 {
    font-size: 1.5rem;
  }
}

h5 {
  font-size: 1.25rem;
}

h6 {
  font-size: 1rem;
}

/* --- vertical spacing utility classes --- */
.py-vs-05 {
  padding-top: calc(0.5 * var(--vertical-spacing));
  padding-bottom: calc(0.5 * var(--vertical-spacing));
}
.py-vs-1 {
  padding-top: var(--vertical-spacing);
  padding-bottom: var(--vertical-spacing);
}
.py-vs-2 {
  padding-top: calc(2 * var(--vertical-spacing));
  padding-bottom: calc(2 * var(--vertical-spacing));
}
.pt-vs-05 {
  padding-top: calc(0.5 * var(--vertical-spacing));
}
.pt-vs-1 {
  padding-top: var(--vertical-spacing);
}
.pt-vs-2 {
  padding-top: calc(2 * var(--vertical-spacing));
}
.pb-vs-05 {
  padding-bottom: calc(0.5 * var(--vertical-spacing));
}
.pb-vs-1 {
  padding-bottom: var(--vertical-spacing);
}
.pb-vs-2 {
  padding-bottom: calc(2 * var(--vertical-spacing));
}
.my-vs-05 {
  margin-top: calc(0.5 * var(--vertical-spacing));
  margin-bottom: calc(0.5 * var(--vertical-spacing));
}
.my-vs-1 {
  margin-top: var(--vertical-spacing);
  margin-bottom: var(--vertical-spacing);
}
.my-vs-2 {
  margin-top: calc(2 * var(--vertical-spacing));
  margin-bottom: calc(2 * var(--vertical-spacing));
}
.mt-vs-05 {
  margin-top: calc(0.5 * var(--vertical-spacing));
}
.mt-vs-1 {
  margin-top: var(--vertical-spacing);
}
.mt-vs-2 {
  margin-top: calc(2 * var(--vertical-spacing));
}
.mb-vs-05 {
  margin-bottom: calc(0.5 * var(--vertical-spacing));
}
.mb-vs-1 {
  margin-bottom: var(--vertical-spacing);
}
.mb-vs-2 {
  margin-bottom: calc(2 * var(--vertical-spacing));
}
.mt-gg {
    margin-top: var(--grid-gap) !important;
}
.mb-gg {
    margin-bottom: var(--grid-gap) !important;
}
@media (min-width: 576px) {
  .py-vs-sm-05 {
    padding-top: calc(0.5 * var(--vertical-spacing));
    padding-bottom: calc(0.5 * var(--vertical-spacing));
  }
  .py-vs-sm-1 {
    padding-top: var(--vertical-spacing);
    padding-bottom: var(--vertical-spacing);
  }
  .py-vs-sm-2 {
    padding-top: calc(2 * var(--vertical-spacing));
    padding-bottom: calc(2 * var(--vertical-spacing));
  }
  .my-vs-sm-05 {
    margin-top: calc(0.5 * var(--vertical-spacing));
    margin-bottom: calc(0.5 * var(--vertical-spacing));
  }
  .my-vs-sm-1 {
    margin-top: var(--vertical-spacing);
    margin-bottom: var(--vertical-spacing);
  }
  .my-vs-sm-2 {
    margin-top: calc(2 * var(--vertical-spacing));
    margin-bottom: calc(2 * var(--vertical-spacing));
  }
  .mt-sm-gg {
    margin-top: var(--grid-gap) !important;
  }
  .mb-sm-gg {
    margin-bottom: var(--grid-gap) !important;
  }
}
@media (min-width: 768px) {
  .py-vs-md-05 {
    padding-top: calc(0.5 * var(--vertical-spacing));
    padding-bottom: calc(0.5 * var(--vertical-spacing));
  }
  .py-vs-md-1 {
    padding-top: var(--vertical-spacing);
    padding-bottom: var(--vertical-spacing);
  }
  .py-vs-md-2 {
    padding-top: calc(2 * var(--vertical-spacing));
    padding-bottom: calc(2 * var(--vertical-spacing));
  }
  .my-vs-md-05 {
    margin-top: calc(0.5 * var(--vertical-spacing));
    margin-bottom: calc(0.5 * var(--vertical-spacing));
  }
  .my-vs-md-1 {
    margin-top: var(--vertical-spacing);
    margin-bottom: var(--vertical-spacing);
  }
  .my-vs-md-2 {
    margin-top: calc(2 * var(--vertical-spacing));
    margin-bottom: calc(2 * var(--vertical-spacing));
  }
  .mt-md-gg {
    margin-top: var(--grid-gap) !important;
  }
  .mb-md-gg {
    margin-bottom: var(--grid-gap) !important;
  }
}
@media (min-width: 992px) {
  .py-vs-lg-05 {
    padding-top: calc(0.5 * var(--vertical-spacing));
    padding-bottom: calc(0.5 * var(--vertical-spacing));
  }
  .py-vs-lg-1 {
    padding-top: var(--vertical-spacing);
    padding-bottom: var(--vertical-spacing);
  }
  .py-vs-lg-2 {
    padding-top: calc(2 * var(--vertical-spacing));
    padding-bottom: calc(2 * var(--vertical-spacing));
  }
  .my-vs-lg-05 {
    margin-top: calc(0.5 * var(--vertical-spacing));
    margin-bottom: calc(0.5 * var(--vertical-spacing));
  }
  .my-vs-lg-1 {
    margin-top: var(--vertical-spacing);
    margin-bottom: var(--vertical-spacing);
  }
  .my-vs-lg-2 {
    margin-top: calc(2 * var(--vertical-spacing));
    margin-bottom: calc(2 * var(--vertical-spacing));
  }
  .mt-lg-gg {
    margin-top: var(--grid-gap) !important;
  }
  .mb-lg-gg {
    margin-bottom: var(--grid-gap) !important;
  }
}
@media (min-width: 1200px) {
  .py-vs-xl-05 {
    padding-top: calc(0.5 * var(--vertical-spacing));
    padding-bottom: calc(0.5 * var(--vertical-spacing));
  }
  .py-vs-xl-1 {
    padding-top: var(--vertical-spacing);
    padding-bottom: var(--vertical-spacing);
  }
  .py-vs-xl-2 {
    padding-top: calc(2 * var(--vertical-spacing));
    padding-bottom: calc(2 * var(--vertical-spacing));
  }
  .my-vs-xl-05 {
    margin-top: calc(0.5 * var(--vertical-spacing));
    margin-bottom: calc(0.5 * var(--vertical-spacing));
  }
  .my-vs-xl-1 {
    margin-top: var(--vertical-spacing);
    margin-bottom: var(--vertical-spacing);
  }
  .my-vs-xl-2 {
    margin-top: calc(2 * var(--vertical-spacing));
    margin-bottom: calc(2 * var(--vertical-spacing));
  }
  .mt-gg {
    margin-top: var(--grid-gap) !important;
  }
  .mb-gg {
    margin-bottom: var(--grid-gap) !important;
  }
}
@media (min-width: 1400px) {
  .py-vs-xxl-05 {
    padding-top: calc(0.5 * var(--vertical-spacing));
    padding-bottom: calc(0.5 * var(--vertical-spacing));
  }
  .py-vs-xxl-1 {
    padding-top: var(--vertical-spacing);
    padding-bottom: var(--vertical-spacing);
  }
  .py-vs-xxl-2 {
    padding-top: calc(2 * var(--vertical-spacing));
    padding-bottom: calc(2 * var(--vertical-spacing));
  }
  .my-vs-xxl-05 {
    margin-top: calc(0.5 * var(--vertical-spacing));
    margin-bottom: calc(0.5 * var(--vertical-spacing));
  }
  .my-vs-xxl-1 {
    margin-top: var(--vertical-spacing);
    margin-bottom: var(--vertical-spacing);
  }
  .my-vs-xxl-2 {
    margin-top: calc(2 * var(--vertical-spacing));
    margin-bottom: calc(2 * var(--vertical-spacing));
  }
  .mt-xxl-gg {
    margin-top: var(--grid-gap) !important;
  }
  .mb-xxl-gg {
    margin-bottom: var(--grid-gap) !important;
  }
}
