@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,400;0,500;0,700;0,800;1,700;1,800&display=swap');

/* --- Reset & Base Header --- */
header {
  position: relative;
  z-index: 100;
  background-color: #fff;
  color: #183067;
  font-family: Montserrat, sans-serif;
}

header button,
header .navbar-toggle,
header .btn {
  border: none;
  border-radius: 4px;
  background: transparent;
  box-shadow: none !important;
  transform: none !important;
}

@media (min-width: 992px) {
  header .navbar-toggle,
  header .menu-toggle,
  header button.navbar-toggler {
    display: none !important;
  }
}

header .container .header-nav-top .login p a,
header .login a {
  color: #183067;
  font-family: Montserrat, sans-serif;
  font-weight: 700 !important;
  text-transform: uppercase;
}

/* --- Navigation Menu --- */
.sf-menu > li > a {
  padding: .7em 1.5em;
  border-color: transparent;
  background: transparent !important;
  box-shadow: none !important;
  transform: none !important;
  color: #183067;
  font-family: Montserrat, sans-serif;
  font-size: 16px;
  font-style: italic !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
}

.sf-menu > li > a:hover,
.sf-menu > li > a:focus,
.sf-menu > li.active > a {
  color: #0e1e42;
  font-style: italic !important;
  font-weight: 700 !important;
}

.sf-menu ul,
.sf-menu li li,
.sf-menu li ul li a {
  background-color: #fff;
  box-shadow: none !important;
  color: #183067;
  font-family: Montserrat, sans-serif !important;
  font-size: 14px;
  font-style: normal !important;
  font-weight: 500 !important;
  text-transform: none !important;
}

.sf-menu li ul li a:hover,
.sf-menu li ul li a:focus {
  color: #0e1e42;
  font-style: normal !important;
  font-weight: 500 !important;
  text-transform: none !important;
}

.top-mobile a {
  margin-bottom: 12px;
  color: #183067;
  font-family: Montserrat, sans-serif;
  font-size: 15px;
  font-weight: 700 !important;
}

/* --- Banner & Header Containers (Home & Subpages) --- */
section#content .content-header,
section#content .content-header.content-header-background {
  position: relative;
  min-height: 0;
  height: auto;
  padding: 16px 0 20px !important;
  margin-bottom: 20px;
  background-color: #183067 !important;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}

/* Full banner height when an image is assigned */
section#content .content-header.content-header-background[style*="background-image"] {
  height: 260px;
  padding: 30px 0 !important;
}

/* Clear grey gradient overlays from the default template */
section#content .content-header::before,
section#content .content-header::after,
section#content .content-header.content-header-background::before,
section#content .content-header.content-header-background::after {
  display: none !important;
  background: transparent !important;
}

/* Breadcrumbs on subpages */
section#content .content-header .breadcrumb,
section#content .content-header .breadcrumb li,
section#content .content-header .breadcrumb a {
  color: rgba(255, 255, 255, .85) !important;
  font-family: Montserrat, sans-serif !important;
  font-size: 13px;
  font-weight: 500 !important;
  text-shadow: none !important;
}

/* Header Headings & Text */
section#content .content-header :is(h1, .h1, h2, .h2),
.carousel-caption :is(h1, h2, h3) {
  margin-top: 5px;
  margin-bottom: 0;
  color: #fff !important;
  font-family: Montserrat, sans-serif !important;
  font-weight: 700 !important;
  text-shadow: 0 1px 3px rgba(0, 0, 0, .35);
}

section#content .content-header :is(p, span:not(.breadcrumb *)),
.carousel-caption :is(p, span) {
  color: #fff !important;
  font-family: Montserrat, sans-serif !important;
  font-weight: 500 !important;
  font-style: normal !important;
  text-shadow: 0 1px 2px rgba(0, 0, 0, .35);
}

/* --- Clean 3D Layered Content Buttons --- */
:is(section#content, main, .main-content) :is(
  .btn,
  a.btn,
  button:not(.carousel-control, .slick-arrow),
  input[type="submit"],
  input[type="button"]
) {
  display: inline-block !important;
  box-sizing: border-box !important;
  margin: 14px 0 24px !important;
  padding: 12px 28px !important;
  border: 3px solid #183067 !important;
  border-radius: 14px !important;
  outline: none !important;
  background-color: #fff !important;
  box-shadow: 0 6px 0 0 #183067 !important;
  transform: translateY(0) !important;
  color: #183067 !important;
  font-family: Montserrat, sans-serif !important;
  font-size: inherit;
  font-style: italic !important;
  font-weight: 800 !important;
  letter-spacing: .5px !important;
  text-align: center !important;
  text-decoration: none !important;
  text-transform: uppercase !important;
  cursor: pointer !important;
  transition: transform .1s ease, box-shadow .1s ease !important;
}

:is(section#content, main, .main-content) :is(
  .btn,
  a.btn,
  button:not(.carousel-control, .slick-arrow),
  input[type="submit"],
  input[type="button"]
):hover {
  transform: translateY(2px) !important;
  box-shadow: 0 4px 0 0 #183067 !important;
  color: #183067 !important;
}

:is(section#content, main, .main-content) :is(
  .btn,
  a.btn,
  button:not(.carousel-control, .slick-arrow),
  input[type="submit"],
  input[type="button"]
):active {
  transform: translateY(6px) !important;
  box-shadow: 0 0 0 0 #183067 !important;
  color: #183067 !important;
}

/* --- Form Inputs & Global Headings --- */
input:not([type="button"], [type="submit"]),
optgroup,
select,
textarea {
  margin: 0;
  color: gray;
  font: inherit;
}

:is(h1, .h1, h2, .h2, h3, .h3) {
  color: #183067 !important;
  font-family: Montserrat, sans-serif;
  font-weight: 700 !important;
}

:is(h2, .h2, h3, .h3) {
  clear: both;
  margin-top: 20px !important;
}

:is(h3, .h3) {
  font-size: 20px;
}

/* --- Footer & Modules --- */
footer {
  background-color: #183067;
  color: #fff;
  font-family: Montserrat, sans-serif;
}

footer .headline {
  border-bottom: 1px solid rgba(255, 255, 255, .1);
}

.social-icons li a {
  background-color: rgba(255, 255, 255, .2);
}

dl.headlines.headlines-footer dd .text-muted {
  color: rgba(255, 255, 255, .5);
}

footer a,
dl.headlines.headlines-footer dd a {
  color: rgba(255, 255, 255, .7);
}

footer a:is(:focus, :hover),
dl.headlines.headlines-footer dd a:is(:focus, :hover) {
  color: #fff;
}

.module-events .paragraphs .img-responsive {
  object-fit: contain !important;
}