/* Reset and Base Styles */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;

  --dark-blue: #143478;
  --light-blue: #ecf8fd;
  --bright-blue: #3abff0;
  --mid-blue: #0075A2;
  --dark-green: #228575;
  --light-green: #eaf4f2;
  --dark-grey: #333333;
  --light-grey: #e9ecf1;
  --mid-grey: #64748b;
}

body {
  font-family: "Aptos Display", "Aptos", "Segoe UI Variable", "Segoe UI", Arial, sans-serif;
  color: var(--dark-grey);
  line-height: 1.6;
  background: #fff;
  font-size: 16px;
  font-weight: 400;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.main {
  position: relative;
  width: 100%;
  min-height: 100vh;
}

.body {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
}

.heading {
  font-family: "Aptos Display", "Aptos", "Segoe UI Variable", "Segoe UI", Arial, sans-serif;
  font-weight: 700;
  margin-bottom: 20px;
  color: var(--dark-blue);
}

h3.heading {
  margin-bottom: 10px;
}

.hero-heading,
.highlight-heading {
  font-family: "Aptos Black", "Aptos Display", "Aptos", "Segoe UI Variable", "Segoe UI", Arial, sans-serif;
  font-weight: 900;
}

.heading-underlined {
  padding-bottom: 15px;
  border-bottom: 4px solid var(--bright-blue);
  margin: 0 0 30px;
}


.mb-10 {
  margin-bottom: 10px;
}

.mb-20 {
  margin-bottom: 20px;
}

.text-60 {
  font-size: clamp(2.5rem, 1.8rem + 3vw, 3.75rem);
  line-height: 1.1;
}

.text-50 {
  font-size: clamp(2.25rem, 1.6rem + 2vw, 3.125rem);
  line-height: 1.15;
}

.text-40 {
  font-size: clamp(2rem, 1.5rem + 1.5vw, 2.5rem);
  line-height: 1.15;
}

.text-35 {
  font-size: clamp(1.9rem, 1.45rem + 1.2vw, 2.1875rem);
  line-height: 1.15;
}

.text-30 {
  font-size: clamp(1.85rem, 1.45rem + 0.9vw, 1.875rem);
  line-height: 1.2;
}

.text-25 {
  font-size: clamp(1.375rem, 1.2rem + 0.5vw, 1.5625rem);
  line-height: 1.25;
}

.text-20 {
  font-size: clamp(1.125rem, 1.05rem + 0.3vw, 1.25rem);
}

.text-18 {
  font-size: clamp(1rem, 0.95rem + 0.2vw, 1.125rem);
}

.text-16 {
  font-size: 1rem;
  line-height: 1.5;
}

.text-14 {
  font-size: 0.875rem;
  line-height: 1.45;
}

.text-center {
  text-align: center;
}

.text-bold {
  font-weight: bold;
}

.text-uppercase {
  text-transform: uppercase;
}



/* Body Text */
.body-text {
  font-size: 18px;
  color: var(--dark-grey);
  line-height: 29.25px;
  margin: 0 0 30px;
}

/* Inline body link */
.body-link {
  color: var(--dark-blue);
  text-decoration: underline;
  text-decoration-color: var(--dark-blue);
  transition: text-decoration-color 0.2s;
}

.body-link:hover {
  text-decoration-color: var(--bright-blue);
}


/* Skip link */
.skip-link {
  position: absolute;
  top: -100%;
  left: 0;
  background: var(--dark-blue);
  color: white;
  padding: 12px 20px;
  font-size: 16px;
  text-decoration: none;
  z-index: 9999;
  border-radius: 0 0 4px 0;
}

.skip-link:focus {
  top: 0;
}

.btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 40px;
  border: none;
  border-radius: 8px;
  font-size: 20px;
  font-weight: bold;
  text-decoration: none;
  cursor: pointer;
  transition: background-color 0.2s ease;
}

.btn-icon {
  flex: 0 0 auto;
  transition: transform 0.2s ease;
}

.btn:hover .btn-icon {
  transform: translateX(4px);
}

.btn:focus-visible {
  outline: 3px solid white;
  outline-offset: 3px;
}

.arrow-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--dark-blue);
  text-decoration: none;
}

.arrow-link span {
  text-decoration: underline;
  text-decoration-color: var(--dark-blue);
  text-underline-offset: 3px;
  transition: text-decoration-color 0.2s ease;
}

.arrow-link:hover span,
.arrow-link:focus-visible span {
  text-decoration-color: var(--bright-blue);
}

.arrow-link-icon {
  flex: 0 0 auto;
  transition: transform 0.2s ease;
}

.arrow-link:hover .arrow-link-icon {
  transform: translateX(4px);
}

.color-dark-blue {
  background-color: var(--dark-blue);
  color: white;
  .heading {
    color: white;
  }
}
.color-white {
  background-color: white;
  color: var(--dark-blue);
}
.color-light-blue {
  background-color: var(--light-blue);
  color: var(--dark-blue);
}
.color-bright-blue {
  background-color: var(--bright-blue);
  color: var(--dark-blue);
}
.color-dark-green {
  background-color: var(--dark-green);
  color: white;
  .heading {
    color: white;
  }
}
.color-light-green {
  background-color: var(--light-green);
  color: var(--dark-blue);
}

.btn.color-dark-blue:hover {
  background-color: #1c4191;
}

.btn.color-bright-blue:hover {
  background-color: #61cdf4;
}

.btn.color-dark-green:hover {
  background-color: #2a9b88;
}

.btn.color-light-blue:hover {
  background-color: #f5fbfe;
}

.btn.color-light-green:hover {
  background-color: #f3f9f7;
}

.panel {
  padding: 60px 0;
}


@media (prefers-reduced-motion: reduce) {
  .btn {
    transition: none;
  }
  .btn-icon {
    transition: none;
  }
  .arrow-link-icon {
    transition: none;
  }
  .mobile-submenu-item {
    transition: none;
  }
  .dropdown-item {
    transition: none;
  }
}

/* styles for 3rd party cookie button and text */
#ot-sdk-btn.ot-sdk-show-settings, #ot-sdk-btn.optanon-show-settings {
  background-color: var(--dark-blue) !important;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 10px 30px !important;
  border: none;
  border-radius: 8px;
  font-size: 16px !important;
  font-weight: bold;
  text-decoration: none;
  transition: background-color 0.2s ease !important;
  margin-bottom: 20px;
  line-height: 1.6 !important;
  border: none !important;

  &:focus-visible {
    outline: 3px solid var(--bright-blue) !important;
    outline-offset: 3px !important;
  }
}



#ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy #cookie-policy-title {
  font-family: "Aptos Display", "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, sans-serif !important;
  font-size: clamp(1.375rem, 1.2rem + 0.5vw, 1.5625rem) !important;
  line-height: 1.25 !important;
  font-weight: 700 !important;
  color: var(--dark-blue) !important;
  margin: 0 0 10px !important;
}

#ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy .ot-sdk-cookie-policy-group {
  font-family: "Aptos Display", "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, sans-serif !important;
  font-size: clamp(1.125rem, 1.05rem + 0.3vw, 1.25rem) !important;
  line-height: 1.3 !important;
  font-weight: 700 !important;
  color: var(--dark-blue) !important;
  margin: 0 0 8px !important;
}

p.ot-sdk-cookie-policy-group-desc, #cookie-policy-description {
  font-size: 18px !important;
  color: var(--dark-grey) !important;
  line-height: 29.25px !important;
  margin: 0 0 30px !important;
}