/*
* File: _root.scss
* Contains: Root CSS variables, .row sizing
*/
:root {
  --teal: #0093b2;
  --dark-gray: #53565a;
  --crimson: #76232f;
  --dark-blue: #005587;
  --yellow: #e6a65d;
  --purple: #7e5475;
  --light-gray: #d0d0ce;
  --fs-sm: clamp(0.8rem, 0.11vi + 0.77rem, 0.9rem);
  --fs-base: clamp(1rem, 0.21vi + 0.95rem, 1.2rem);
  --fs-md: clamp(1.25rem, 0.37vi + 1.16rem, 1.6rem);
  --fs-lg: clamp(1.56rem, 0.6vi + 1.41rem, 2.13rem);
  --fs-xl: clamp(1.95rem, 0.94vi + 1.72rem, 2.84rem);
  --fs-2xl: clamp(2.44rem, 1.42vi + 2.09rem, 3.79rem);
  --fs-3xl: clamp(3.05rem, 2.1vi + 2.53rem, 5.05rem);
  --font-header: "Asap Condensed", sans-serif;
  --font-text: "Roboto", sans-serif;
  --bs-body-font-size: clamp(1rem, 0.21vi + 0.95rem, 1.2rem);
}

.row {
  width: min(100%, 120rem);
  margin: auto;
}

@media (width > 1750px) {
  :root {
    --bs-body-font-size: calc(clamp(1rem, 0.21vi + 0.95rem, 1.2rem) * 1.125);
  }
}
.teal {
  color: #0093b2 !important;
}

.dark-gray {
  color: #53565a !important;
}

.crimson {
  color: #76232f !important;
}

.dark-blue {
  color: #005587 !important;
}

.yellow {
  color: #e6a65d !important;
}

.purple {
  color: #7e5475 !important;
}

.light-gray {
  color: #d0d0ce !important;
}

.white {
  color: #fff !important;
}

.bg-teal {
  background-color: #0093b2;
  color: #fff;
}

.bg-dark-gray {
  background-color: #53565a;
  color: #fff;
}

.bg-crimson {
  background-color: #76232f;
  color: #fff;
}

.bg-dark-blue {
  background-color: #005587;
  color: #fff;
}

.bg-yellow {
  background-color: #e6a65d;
  color: #fff;
}

.bg-purple {
  background-color: #7e5475;
  color: #fff;
}

.bg-light-gray {
  background-color: #d0d0ce;
  color: #53565a;
}

.font-header {
  font-family: "Asap Condensed", sans-serif;
}

.font-text {
  font-family: "Roboto", sans-serif;
}

.fs-sm,
.btn-sm {
  font-size: clamp(0.8rem, 0.11vi + 0.77rem, 0.9rem) !important;
}

.fs-base,
.btn-base {
  font-size: clamp(1rem, 0.21vi + 0.95rem, 1.2rem) !important;
}

.fs-md,
.btn-md {
  font-size: clamp(1.25rem, 0.37vi + 1.16rem, 1.6rem) !important;
}

.fs-lg,
.btn-lg {
  font-size: clamp(1.56rem, 0.6vi + 1.41rem, 2.13rem) !important;
}

.fs-xl,
.btn-xl {
  font-size: clamp(1.95rem, 0.94vi + 1.72rem, 2.84rem) !important;
}

.fs-2xl,
.btn-2xl {
  font-size: clamp(2.44rem, 1.42vi + 2.09rem, 3.79rem) !important;
}

.fs-3xl,
.btn-3xl {
  font-size: clamp(3.05rem, 2.1vi + 2.53rem, 5.05rem) !important;
}

.fs-4xl,
.btn-4xl {
  font-size: clamp(3.81rem, 3.07vi + 3.05rem, 6.73rem) !important;
}

.h1,
h1 {
  font-size: calc(clamp(1rem, 0.21vi + 0.95rem, 1.2rem) * 2.5);
}

.h2,
h2 {
  font-size: calc(clamp(1rem, 0.21vi + 0.95rem, 1.2rem) * 2);
}

.h3,
h3 {
  font-size: calc(clamp(1rem, 0.21vi + 0.95rem, 1.2rem) * 1.75);
}

.h4,
h4 {
  font-size: calc(clamp(1rem, 0.21vi + 0.95rem, 1.2rem) * 1.5);
}

.h5,
h5 {
  font-size: calc(clamp(1rem, 0.21vi + 0.95rem, 1.2rem) * 1.25);
}

.h6,
h6 {
  font-size: clamp(1rem, 0.21vi + 0.95rem, 1.2rem);
}

a.hyperlink {
  --color: vars.$teal;
  color: var(--color);
  text-decoration: underline dashed;
  text-underline-offset: 0.125em;
  background-image: linear-gradient(var(--color), var(--color));
  background-position: 0% 100%;
  background-repeat: no-repeat;
  background-size: 0% 0.125em;
  transition: background-size 300ms;
}
a.hyperlink:hover, a.hyperlink:focus {
  text-decoration: none;
  text-underline-offset: 0;
  background-size: 100% 0.125em;
}

a.hyperlink.teal {
  --color: #0093b2;
}

a.hyperlink.dark-gray {
  --color: #53565a;
}

a.hyperlink.crimson {
  --color: #76232f;
}

a.hyperlink.dark-blue {
  --color: #005587;
}

a.hyperlink.yellow {
  --color: #e6a65d;
}

a.hyperlink.purple {
  --color: #7e5475;
}

a.hyperlink.light-gray {
  --color: #d0d0ce;
}

a.hyperlink.white {
  --color: #fff;
}

.btn {
  font-size: clamp(1.25rem, 0.37vi + 1.16rem, 1.6rem);
  line-height: 1;
  border-radius: 2em;
  padding: 0.375em 1em;
  margin: 0.125em;
  text-transform: uppercase;
}

.btn-teal {
  background-color: #0093b2;
  color: #fff;
}
.btn-teal:hover, .btn-teal:focus-visible {
  box-shadow: 0 0 0.375em #0093b2;
  background-color: #0093b2;
  color: #fff;
}

.btn-dark-gray {
  background-color: #53565a;
  color: #fff;
}
.btn-dark-gray:hover, .btn-dark-gray:focus-visible {
  box-shadow: 0 0 0.375em #53565a;
  background-color: #53565a;
  color: #fff;
}

.btn-crimson {
  background-color: #76232f;
  color: #fff;
}
.btn-crimson:hover, .btn-crimson:focus-visible {
  box-shadow: 0 0 0.375em #76232f;
  background-color: #76232f;
  color: #fff;
}

.btn-dark-blue {
  background-color: #005587;
  color: #fff;
}
.btn-dark-blue:hover, .btn-dark-blue:focus-visible {
  box-shadow: 0 0 0.375em #005587;
  background-color: #005587;
  color: #fff;
}

.btn-yellow {
  background-color: #e6a65d;
  color: #fff;
}
.btn-yellow:hover, .btn-yellow:focus-visible {
  box-shadow: 0 0 0.375em #e6a65d;
  background-color: #e6a65d;
  color: #fff;
}

.btn-purple {
  background-color: #7e5475;
  color: #fff;
}
.btn-purple:hover, .btn-purple:focus-visible {
  box-shadow: 0 0 0.375em #7e5475;
  background-color: #7e5475;
  color: #fff;
}

.btn-light-gray {
  background-color: #d0d0ce;
  color: #53565a;
}
.btn-light-gray:hover, .btn-light-gray:focus-visible {
  box-shadow: 0 0 0.375em #d0d0ce;
  background-color: #d0d0ce;
  color: #53565a;
}

.btn-white {
  background-color: #fff;
  color: #53565a;
}
.btn-white:hover, .btn-white:focus-visible {
  box-shadow: 0 0 0.375em #fff;
  background-color: #fff;
  color: #53565a;
}

.list-stretched-wrapper {
  --min-list-padding: 1em;
  height: stretch;
  display: flex;
  flex-direction: column;
}
.list-stretched-wrapper :is(ul, ol) {
  height: 90%;
  display: flex;
  flex-direction: column;
  justify-content: space-evenly;
}
.list-stretched-wrapper :is(ul, ol) li {
  padding-bottom: var(--min-list-padding);
}

.grid-2-2 {
  display: grid;
  grid-template-areas: "a b" "c d";
  gap: 0.4rem;
}

[class*=spread-evenly-] {
  display: flex;
  justify-content: space-evenly !important;
}

.spread-evenly-vertical {
  height: stretch;
  flex-direction: column;
}

.h-stretch {
  height: stretch;
}

.accordion-header button.accordion-button {
  font-size: var(--fs-md);
  font-weight: 600;
}