/* Variables */
:root {
  /* Colors */
  --primary-blue: #051f53;
  --secondary-blue: #07327b;
  --light-blue: #ecf2fe;
  --lighter-blue: #d9e5fe;
  --lightest-blue: #c5d9fd;
  --white: #ffffff;
  --neutral-gray: #64748b;
  --dark-gray: #191d23;
  --medium-gray: #3b3b3b;
  --light-gray: #dadada;
  --link-blue: #1e5bc7;
  --highlight-blue: #3b76dc;
  --banner-dark: #323a46;
  --banner-darker: #2a313b;
  --banner-darkest: #222830;
  --footer-bg: #191d23;

  /* Font Sizes */
  --font-size-xs: 0.875rem;
  --font-size-sm: 0.9375rem;
  --font-size-base: 1rem;
  --font-size-md: 1.125rem;
  --font-size-lg: 1.25rem;
  --font-size-xl: 1.44rem;
  --font-size-2xl: 2rem;
  --font-size-3xl: 2.5rem;
  --font-size-4xl: 3rem;
}

/* Global Styles */
html {
  font-size: var(--font-size-base);
  font-family: "Inter", sans-serif !important;
}

body {
  font-family: "Inter", sans-serif !important;
  background-color: #fcfdff;
}
p{font-family: "Inter", sans-serif !important;}

/* Typography */
h1,
h2,
h3,
h4 {
  color: var(--primary-blue);
  line-height: 120%;
  font-family: "Inter", sans-serif !important;
}

h1 {
  font-size: var(--font-size-4xl);
  font-weight: 700;
  letter-spacing: -2px;
  text-align: center;
}

h2 {
  font-size: var(--font-size-2xl);
  font-weight: 700;
}

h2 a {
  color: var(--link-blue);
}

h3 {
  font-size: var(--font-size-xl);
  font-weight: 600;
  color: var(--secondary-blue);
  padding-bottom: 1rem;
  margin-bottom: 0;
}

h4 {
  font-weight: 600;
  display: flex;
  align-items: center;
}

a {
  text-decoration: none;
  font-family: "Inter", sans-serif !important;
}

.subheading {
  font-size: var(--font-size-lg);
  font-weight: 400;
  line-height: 170%;
  margin-bottom: 0;
}

section .subheading {
  color: var(--neutral-gray);
  margin-bottom: 2rem;
}

/* Navbar */
nav {
  background-color: var(--white);
}

.logo {
  height: 60px;
  width: auto;
}

.nav-link {
  color: #4b5768;
}

.nav-link:hover {
  color: #0d47aa;
}

.navbar-nav .dropdown-toggle:focus,
.navbar-nav .dropdown-toggle:active,
.navbar-nav .dropdown-toggle.show {
  color: var(--secondary-blue);
}

.dropdown-menu {
  max-height: 500px;
  overflow-y: auto;
  padding: 0;
}

.dropdown-menu li {
  padding-bottom: 0;
}

.dropdown-item {
  padding: 0.75rem;
}

/* Hero Section */
.hero {
  padding: 6.25rem 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  border-bottom: 1px solid var(--secondary-blue);
  background: linear-gradient(
    180deg,
    var(--white) 0.85%,
    var(--light-blue) 20.51%,
    var(--lighter-blue) 40.17%,
    var(--lightest-blue) 59.83%,
    #b0ccfc 79.49%,
    #9bc0fb 99.15%
  );
}

.hero .subheading {
  color: var(--primary-blue);
  text-align: center;
  line-height: 150%;
  max-width: 75ch;
}

/* Card Styles */
.card-group {
  gap: 1.5rem;
}

.services {
  border: 1px solid var(--light-gray);
  padding: 3rem;
  background: #fff;
  border-radius: 4px;
}

.services .card {
  padding: 2rem;
  border: 1px solid var(--light-gray) !important;
  min-width: 500px;
  flex-direction: column;
  justify-content: space-between;
  flex-wrap: wrap;
  border-radius: 8px !important;
}

.services .card .description,
.services .card .description p {
  color: var(--dark-gray);
  font-size: var(--font-size-base);
  font-weight: 400;
  line-height: 170%;
}

.eyebrow-icon {
  margin-bottom: 1rem;
}

/* Eyebrow Headline */
.eyebrow-headline {
  color: var(--neutral-gray);
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  line-height: 150%;
  letter-spacing: 0.01rem;
  margin: 0;
  padding-bottom: 0.5rem;
}

#main-content h1 {
  margin-bottom: 1rem;
}

/* Content Styles */
#content {
  padding: 3rem;
  border: 1px solid var(--light-gray);
  border-radius: 4px;
  background: var(--white);
}

#content-wrapper {
  gap: 2rem;
}

/* External Link */
.external-link {
  color: var(--link-blue);
  font-size: var(--font-size-base);
  font-weight: 600;
  text-decoration: underline;
  line-height: 27px;
  display: flex;
  align-items: center;
}

/* Banner */
.banner {
  padding: 4.44rem 0;
  background: linear-gradient(
    178deg,
    var(--banner-dark) 1.66%,
    var(--banner-darker) 20.99%,
    var(--banner-darkest) 40.33%,
    #1b1f25 59.67%,
    #14171b 79.01%,
    #0d0f11 98.34%
  );
  display: flex;
  flex-direction: column;
  align-items: center;
}

.banner h2 {
  color: #e8effb;
  font-size: var(--font-size-3xl);
  text-align: center;
  margin-bottom: 1rem;
}

.banner p {
  color: #f7f8f9;
  font-size: var(--font-size-lg);
  font-weight: 400;
  line-height: 170%;
  text-align: center;
  max-width: 750px;
}

.banner a {
  color: #73a7ff;
  font-size: var(--font-size-lg);
  font-weight: 700;
  text-decoration: underline;
  line-height: 34px;
}

/* Buttons */
.cta-btn {
  max-width: fit-content;
}

.cta-btn:focus {
  background-color: #cee0ff !important;
  color: var(--highlight-blue) !important;
}

.contact-us {
  background: linear-gradient(180deg, #6c9aec 0%, #0d47aa 100%);
  box-shadow: inset 0 2px hsl(224, 83%, 74%, 0.74),
    0 2px 8px hsla(218.1, 100%, 53.7%, 0.49);
  border-radius: 8px;
  color: var(--white) !important;
  padding: 1rem 5rem;
  font-weight: 600 !important;
  font-size: var(--font-size-md) !important;
  text-decoration: none !important;
}

.contact-us:hover {
  background: linear-gradient(180deg, #4f79c0 0%, #083c96 100%);
  box-shadow: none !important;
}

.contact-us:active {
  background: linear-gradient(180deg, #4066a7 0%, #04307c 100%);
  box-shadow: none !important;
}

.btn-outline-primary {
  color: var(--highlight-blue);
}

.btn-outline-primary:hover,
.btn-outline-primary:focus-visible {
  background-color: #e8effb;
  color: var(--highlight-blue);
}

/* Contact Info */
.space-down {
  margin-bottom: 3rem !important;
}

.contact-info h2 {
  margin-bottom: 2rem;
}

.details {
  margin-bottom: 1.5rem;
  padding: 1rem;
  border: 1px solid var(--light-gray);
  border-radius: 4px;
  background-color: var(--white);
}

.details p {
  margin-bottom: 0.5rem;
}

/* Accordion */
.accordion-header .accordion-button {
  font-weight: 600 !important;
  color: var(--primary-blue) !important;
  line-height: 150%;
}

.accordion-button,
.accordion-body {
  padding: 1.5rem;
}

/* Footer */
footer {
  background: var(--footer-bg);
  color: var(--white);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.footer-links {
  width: 100%;
  display: flex;
  flex-direction: row;
  padding: 5rem 0;
  justify-content: space-between;
  gap: 5rem;
  max-width: 1440px;
  flex-wrap: wrap;
}

.footer-links h4 {
  color: var(--white);
  font-size: var(--font-size-base);
  font-weight: 700;
  line-height: 150%;
  letter-spacing: 0.08rem;
  text-transform: uppercase;
  margin-bottom: 1rem;
}

.footer-links ul {
  padding-left: 0;
  margin-left: 0;
}

.footer-links ul li {
  list-style-type: none;
}

.footer-links ul li a {
  color: var(--white);
}

.footer-info {
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  max-width: 1440px;
  font-size: 0.88rem;
  border-top: 1px solid var(--medium-gray);
  padding: 1.5rem 0;
}

.footer-info p,
.footer-info b,
.footer-info ul li a {
  width: max-content;
  color: var(--white);
  font-weight: 600;
}

.footer-info ul {
  display: flex;
  gap: 0.5rem;
  padding-left: 0;
  flex-wrap: wrap;
}

.footer-info ul li {
  list-style-type: none;
  color: var(--white);
}

.link-group {
  display: flex;
  gap: 4rem;
  flex-wrap: wrap;
}

.link-group .links {
  min-width: fit-content;
}

.links a {
  text-decoration: none;
}

.links a:hover {
  text-decoration: underline;
  text-decoration-thickness: 2px;
}

.links ul li {
  font-size: var(--font-size-base);
  font-weight: 400;
  line-height: 150%;
  letter-spacing: 0.02rem;
  margin-bottom: 0.5rem;
}

/* Table of Contents */
#toc .inner {
  border: 1px solid var(--light-gray);
  border-radius: 4px;
  padding: 1rem;
  position: sticky;
  top: 0;
  background-color: var(--white);
}

#toc-header {
  text-transform: uppercase;
  letter-spacing: 0.05625rem;
  font-weight: 700;
  width: max-content;
}

#toc li {
  width: max-content !important;
  line-height: 150%;
  list-style-type:disc;
  letter-spacing: 0.02rem;
  margin-bottom: 0.3rem;
}

#toc li a {
  color: var(--highlight-blue) !important;
  font-size: var(--font-size-base);
}

#toc li a:hover {
  text-decoration: underline;
}

#toc ul {
  margin-bottom: 0;
  padding-left:0;
}

/* General List Styles */
ul {
  padding-left: 1.3rem;
}

/* Media Queries */
@media (min-width: 1400px) {
  .container-xxl {
    max-width: 1440px;
  }
}

@media (max-width: 1500px) {
  .hero,
  .banner,
  .services,
  .footer-info,
  .footer-links {
    padding-left: 32px;
    padding-right: 32px;
  }

  .services .card {
    min-width: fit-content;
  }

  .mapouter {
    width: 100% !important;
  }

  .details-group {
    display: flex;
    flex-direction: column;
    width: 100%;
    justify-content: center;
  }

  .details-group .details {
    width: 100%;
  }

  .contact-info,
  .contact-info .inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
  }
}

@media (max-width: 1270px) {
  .navbar-brand img {
    height: 52px;
  }

  .navbar-nav {
    margin-bottom: 8px;
  }

  a.dropdown-item.py-4,
  .nav-link.dropdown-toggle,
  .nav-link {
    padding: 12px 20px !important;
  }

  .navbar-collapse .btn {
    margin-left: 44px !important;
  }

  ul.dropdown-menu.show {
    margin-top: -2px;
    margin-left: 20px !important;
  }
}

@media (max-width: 834px) {
  #content-wrapper {
    flex-direction: column-reverse;
    gap: 0;
  }

  #content {
    padding: 1rem;
  }

  h2 {
    font-size: var(--font-size-2xl) !important;
  }

  p.subheading,
  p.subheading a {
    font-size: var(--font-size-base) !important;
  }

  .card-group {
    gap: 0;
  }

  .services .card {
    margin-bottom: 1.5rem;
  }
}

@media (max-width: 390px) {
  html {
    font-size: 14.4px;
  }

  .space-down {
    margin-bottom: 3rem !important;
  }

  .space-down-sm {
    margin-bottom: 1rem !important;
  }

  .hero,
  .banner,
  .services,
  .footer-info,
  .footer-links {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }

  .accordion-button {
    padding: 1rem;
  }

  .hero {
    margin-bottom: 3rem;
    padding: 1rem;
  }

  .eyebrow-icon {
    width: 40px;
    height: auto;
  }

  .banner {
    padding-top: 3.75rem;
    padding-bottom: 3.75rem;
  }

  .footer-links {
    padding-top: 2.5rem;
    padding-bottom: 2.5rem;
    gap: 2.5rem;
  }

  .link-group {
    gap: 2rem;
  }

  .navbar {
    padding: 1.5rem 0 !important;
  }

  h1 {
    font-size: var(--font-size-2xl);
    letter-spacing: -1px;
  }

  h2 {
    font-size: 1.75rem !important;
  }

  .banner .subheading,
  .banner .subheading a,
  .banner .subheading .contact-us {
    font-size: var(--font-size-base) !important;
  }

  .contact-us {
    padding: 0.75rem 0;
    width: 100%;
    justify-content: center;
    font-size: var(--font-size-base) !important;
  }

  .subheading,
  .subheading a {
    font-size: var(--font-size-base) !important;
  }

  .services {
    padding: 2rem;
  }

  .services .card {
    padding: 1rem;
  }

  h3 {
    font-size: var(--font-size-md);
  }

  p.description,
  a.external-link {
    font-size: var(--font-size-base) !important;
  }
}


#dnn_mainContent p{font-size: var(--font-size-base) !important;}

#dnn_mainContent ul{padding-left:0;}
#dnn_mainContent li{
  font-size: var(--font-size-base);
  font-weight: 400;
  line-height: 150%;
  list-style-type:disc;
  letter-spacing: 0.02rem;
  margin-bottom: 0.5rem;
}
#dnn_heroPane p{
  font-size: var(--font-size-lg);
  font-weight: 400;
  line-height: 170%;
  margin-bottom: 0;
  text-align:center;
  color: var(--primary-blue);
}
.dnnModuleDialog,
.dnnFormPopup,
.floating {top:10% !important; border:1px solid red !important;}

.form-root,
.form-root label{
  text-align:left !important;
  font-size: var(--font-size-base) !important;
}

label.required:after {
    font-weight: bold;
    content: '*';
    color: red;
}

.btn-success {
    --bs-btn-color: #0d6efd;
    --bs-btn-bg: #fff;
    --bs-btn-border-color: #0d6efd;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #0d6efd;
    --bs-btn-hover-border-color: #0d6efd;
    --bs-btn-focus-shadow-rgb: 60, 153, 110;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #0d6efd;
    --bs-btn-active-border-color: #0d6efd;
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: #fff;
    --bs-btn-disabled-border-color: #0d6efd;
}