@font-face {
  font-family: 'Open Sans';
  font-style: italic;
  font-weight: 300;
  font-stretch: normal;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/opensans/v40/memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0Rk5hkaVc.ttf) format('truetype');
}
@font-face {
  font-family: 'Open Sans';
  font-style: italic;
  font-weight: 400;
  font-stretch: normal;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/opensans/v40/memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0Rk8ZkaVc.ttf) format('truetype');
}
@font-face {
  font-family: 'Open Sans';
  font-style: italic;
  font-weight: 500;
  font-stretch: normal;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/opensans/v40/memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0Rk_RkaVc.ttf) format('truetype');
}
@font-face {
  font-family: 'Open Sans';
  font-style: italic;
  font-weight: 600;
  font-stretch: normal;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/opensans/v40/memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0RkxhjaVc.ttf) format('truetype');
}
@font-face {
  font-family: 'Open Sans';
  font-style: italic;
  font-weight: 700;
  font-stretch: normal;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/opensans/v40/memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0RkyFjaVc.ttf) format('truetype');
}
@font-face {
  font-family: 'Open Sans';
  font-style: italic;
  font-weight: 800;
  font-stretch: normal;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/opensans/v40/memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0Rk0ZjaVc.ttf) format('truetype');
}
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 300;
  font-stretch: normal;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/opensans/v40/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsiH0C4n.ttf) format('truetype');
}
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: normal;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/opensans/v40/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjZ0C4n.ttf) format('truetype');
}
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 500;
  font-stretch: normal;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/opensans/v40/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjr0C4n.ttf) format('truetype');
}
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: normal;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/opensans/v40/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsgH1y4n.ttf) format('truetype');
}
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 700;
  font-stretch: normal;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/opensans/v40/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsg-1y4n.ttf) format('truetype');
}
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 800;
  font-stretch: normal;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/opensans/v40/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgshZ1y4n.ttf) format('truetype');
}
html {
  font-family: "Open Sans", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  font-variation-settings: "wdth" 100;
}
:root {
  --heads-background-color: #043965;
  --school-height: calc(100vh - var(--drupal-displace-offset-top));
  --school-height-maxmin: calc(var(--school-height) - 1px);
}
html {
  padding: 0;
  margin: 0;
  min-height: 100vh;
  border: none;
  font-size: 16px;
}
@media only screen and (min-width: 576px) and (max-width: calc(768px - 1)) {
  html {
    font-size: 14px;
  }
}
@media only screen and (min-width: 768px) and (max-width: calc(1280px - 1)) {
  html {
    font-size: 13px;
  }
}
@media only screen and (min-width: 0) and (max-width: calc(576px - 1)) {
  html {
    font-size: 12px;
  }
}
body {
  padding: 0;
  margin: 0;
  min-height: var(--school-height);
  border: none;
}
body > .dialog-off-canvas-main-canvas {
  padding: 0;
  margin: 0;
  border: none;
  min-height: var(--school-height-maxmin);
}
body > .layout-container,
body > .dialog-off-canvas-main-canvas > .layout-container {
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
  align-items: stretch;
  min-height: var(--school-height-maxmin);
  border: none;
}
body > .layout-container > div,
body > .dialog-off-canvas-main-canvas > .layout-container > div {
  flex: 0 0 auto;
}
body > .layout-container > a,
body > .dialog-off-canvas-main-canvas > .layout-container > a,
body > .layout-container div,
body > .dialog-off-canvas-main-canvas > .layout-container div {
  flex: 0 0 auto;
}
body > .layout-container > header,
body > .dialog-off-canvas-main-canvas > .layout-container > header,
body > .layout-container > footer,
body > .dialog-off-canvas-main-canvas > .layout-container > footer,
body > .layout-container > section,
body > .dialog-off-canvas-main-canvas > .layout-container > section {
  flex: 0 0 auto;
}
body > .layout-container > main,
body > .dialog-off-canvas-main-canvas > .layout-container > main {
  flex: 1 1 auto;
}
.hidden {
  display: none;
}
.cells {
  align-items: center;
}
@media only screen and (min-width: 0) and (max-width: calc(576px - 1)) {
  .cells.mob {
    flex-wrap: wrap;
  }
  .cells.mob > div {
    flex: 1 1 100% !important;
  }
  .cells.mob > div:empty {
    display: none;
  }
}
.container-box,
.layout-content {
  margin: 0 auto;
  width: 1536px;
}
@media only screen and (min-width: 1280px) {
  .container-box,
  .layout-content {
    width: 1280px;
  }
}
@media only screen and (min-width: 576px) and (max-width: calc(768px - 1)) {
  .container-box,
  .layout-content {
    width: 576px;
  }
}
@media only screen and (min-width: 0) and (max-width: calc(576px - 1)) {
  .container-box,
  .layout-content {
    width: 100%;
    padding: 0 0.4em;
  }
}
.layout-technical {
  background: #efefef;
}
@media only screen and (min-width: 1536px), only screen and (min-width: 1280px), only screen and (min-width: 768px) and (max-width: calc(1280px - 1)), only screen and (min-width: 576px) and (max-width: calc(768px - 1)) {
  .xs-visible {
    display: none !important;
  }
}
@media only screen and (min-width: 0) and (max-width: calc(576px - 1)) {
  .xs-invisible {
    display: none !important;
  }
}
.layout-container > header {
  background: #363636;
}
.layout-container > header .container-box {
  border: none;
}
.layout-container > header .big-banner {
  background-color: #4f4f4f;
}
.layout-container .landing .container-box {
  padding: 1em;
}
svg {
  width: 1em;
  height: 1em;
  color: currentColor;
}
.container {
  margin: 0 auto;
  width: 1536px;
}
@media only screen and (min-width: 1280px) {
  .container {
    width: 1280px;
  }
}
@media only screen and (min-width: 576px) and (max-width: calc(768px - 1)) {
  .container {
    width: 576px;
  }
}
@media only screen and (min-width: 0) and (max-width: calc(576px - 1)) {
  .container {
    width: 100%;
    padding: 0 0.4em;
  }
}
.blue-button {
  flex: none;
  padding: 1em 0.6em;
}
.blue-button:hover {
  background: #8484c5;
  border-radius: 0.4em;
  box-shadow: 0 0 4px #00000033;
  color: #fff;
  font-size: 0.93em;
  font-weight: 400;
  transition: all 0.5s;
  display: flex;
  gap: 0.5em;
  align-items: center;
  justify-content: center;
}
.blue-button:hover:active,
.blue-button:hover:focus {
  outline: 2px solid #b2b2b2;
}
.blue-button > svg {
  width: 1.2em;
  height: 1.2em;
  color: currentColor;
}
.blue-button > b {
  font-weight: 500;
}
a {
  color: currentColor;
  text-decoration: none;
  transition: all 0.5s;
  display: block;
}
.header {
  position: fixed;
  z-index: 30;
  width: 100%;
  left: 0;
  right: 0;
  color: #fff;
  box-shadow: 0 0 4px #00000033;
  padding: 0 1em;
  background: var(--heads-background-color);
}
.header .header-line {
  margin: 0 auto;
  width: 1536px;
  display: flex;
  gap: 0.5em;
  align-items: center;
}
@media only screen and (min-width: 1280px) {
  .header .header-line {
    width: 1280px;
  }
}
@media only screen and (min-width: 576px) and (max-width: calc(768px - 1)) {
  .header .header-line {
    width: 576px;
  }
}
@media only screen and (min-width: 0) and (max-width: calc(576px - 1)) {
  .header .header-line {
    width: 100%;
    padding: 0 0.4em;
  }
}
.header .brand-box {
  flex: 0 0 auto;
  font-size: 2em;
  white-space: nowrap;
  display: flex;
  gap: 0.5em;
  align-items: center;
}
@media only screen and (min-width: 0) and (max-width: calc(576px - 1)), only screen and (min-width: 576px) and (max-width: calc(768px - 1)) {
  .header .brand-box {
    flex-wrap: wrap;
    flex: 1 1 100%;
  }
}
.header .brand-box > svg {
  width: 1em;
  height: 1em;
  color: currentColor;
}
.header .menu-box {
  flex: 1 1 auto;
  display: flex;
  gap: 0.5em;
  align-items: start;
  font-size: 1em;
  transition: color 0.5s;
}
.header .menu-box > a:hover {
  color: #beab83;
}
@media only screen and (min-width: 0) and (max-width: calc(576px - 1)), only screen and (min-width: 576px) and (max-width: calc(768px - 1)), only screen and (min-width: 768px) and (max-width: calc(1280px - 1)) {
  .header .menu-box {
    font-size: 0.9em;
  }
}
@media only screen and (min-width: 0) and (max-width: calc(576px - 1)) {
  .header .menu-box {
    gap: 0.2em;
    display: none;
  }
}
.header .phone-box {
  font-size: 1.2em;
  display: flex;
  gap: 0.5em;
}
@media only screen and (min-width: 0) and (max-width: calc(576px - 1)) {
  .header .phone-box {
    display: none;
  }
}
.header .phone-box > svg {
  width: 1em;
  height: 1em;
  color: currentColor;
}
.header .call-me {
  flex: none;
  padding: 1em 0.6em;
  font-size: 0.9em;
  display: flex;
  gap: 0.5em;
}
.header .call-me:hover {
  background: #8484c5;
  border-radius: 0.4em;
  box-shadow: 0 0 4px #00000033;
  color: #fff;
  font-size: 0.93em;
  font-weight: 400;
  transition: all 0.5s;
  display: flex;
  gap: 0.5em;
  align-items: center;
  justify-content: center;
}
.header .call-me:hover:active,
.header .call-me:hover:focus {
  outline: 2px solid #b2b2b2;
}
.header .call-me > svg {
  width: 1.2em;
  height: 1.2em;
  color: currentColor;
}
.header .call-me > b {
  font-weight: 500;
}
.header .call-me > svg {
  width: 1em;
  height: 1em;
  color: currentColor;
}
@media only screen and (min-width: 0) and (max-width: calc(576px - 1)), only screen and (min-width: 576px) and (max-width: calc(768px - 1)) {
  .header .call-me {
    gap: 0.3em;
  }
}
.header .burger-box {
  display: none;
  cursor: pointer;
}
@media only screen and (min-width: 0) and (max-width: calc(576px - 1)) {
  .header .burger-box {
    display: inline-flex;
  }
}
.header .burger-box > svg {
  width: 1.5em;
  height: 1.5em;
  color: currentColor;
}
.header .brand-title {
  font-weight: 600;
  font-size: 2em;
}
.header .header-mobile-menu {
  display: none;
  overflow: hidden;
  max-height: 0;
  transition: max-height 0s 0.6s;
}
.header .header-mobile-menu .menu-drop {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
  background: #00000000;
  transition: opacity 0.2s 0.1s;
}
.header .header-mobile-menu .menu-closer {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  z-index: 30;
  display: block;
  top: 0.4em;
  right: 0.4em;
  color: #fff;
  cursor: pointer;
  opacity: 0;
  transition: top 0.1s 0.2s;
}
.header .header-mobile-menu .menu-wrap {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  z-index: 20;
  width: 320px;
  max-width: 100%;
  height: 100vh;
  background: #0A246A;
  padding: 0.5em;
  padding-left: 1em;
  left: -500px;
  transition: left 0.5s;
}
.header .header-mobile-menu .brand {
  display: block;
  font-weight: 600;
  padding: 1em 0 0.6em 0;
  gap: 0.5em;
  align-items: center;
  font-size: 3em;
}
.header .header-mobile-menu .brand > svg {
  width: 1.3em;
  height: 1.3em;
  color: currentColor;
}
.header .header-mobile-menu .menu {
  display: flex;
  flex-direction: column;
  font-size: 2em;
  border-top: 1px solid #0A246A;
  margin-top: 1.5em;
  padding-top: 1.5em;
}
.header .header-mobile-menu .menu > a {
  display: flex;
  width: auto;
  padding: 0.4em;
  transition: all 0.5s;
  border-radius: 1em;
}
.header .header-mobile-menu .menu > a:hover {
  background: #cfcfcf;
}
.header .header-mobile-menu .phone-link {
  padding: 0.5em 0;
  display: flex;
  align-items: center;
  gap: 0.5em;
  border-top: 1px solid #0A246A;
  margin-top: 1.5em;
  padding-top: 1.5em;
  font-size: 1.5em;
}
.header .header-mobile-menu .phone-link > svg {
  width: 1.3em;
  height: 1.3em;
  color: currentColor;
}
.header .header-mobile-menu.opened {
  max-height: 100vh;
  transition: max-height 0s 0s;
}
.header .header-mobile-menu.opened .menu-drop {
  background: #000000d4;
  transition: background 0.2s 0.1s;
}
.header .header-mobile-menu.opened .menu-closer {
  opacity: 1;
  transition: opacity 0.2s 0.2s;
}
.header .header-mobile-menu.opened .menu-wrap {
  left: 0;
  transition: left 0.3s;
}
.header .brand .brand-school {
  font-size: 0.5em;
}
.header .brand .brand-name {
  font-weight: 600;
  font-size: 0.8em;
}
@media only screen and (min-width: 1280px) {
  .header {
    padding: 0;
  }
}
@media only screen and (min-width: 0) and (max-width: calc(576px - 1)), only screen and (min-width: 576px) and (max-width: calc(768px - 1)) {
  .header .menu-box {
    font-size: 0.9em;
  }
}
.footer {
  position: relative;
  isolation: isolate;
  display: flex;
  color: #fff;
  padding: 1.5em 0;
  width: 100%;
  background: var(--heads-background-color);
}
.footer .footer-line {
  margin: 0 auto;
  width: 1536px;
  display: flex;
  gap: 1em;
  align-items: start;
}
@media only screen and (min-width: 1280px) {
  .footer .footer-line {
    width: 1280px;
  }
}
@media only screen and (min-width: 576px) and (max-width: calc(768px - 1)) {
  .footer .footer-line {
    width: 576px;
  }
}
@media only screen and (min-width: 0) and (max-width: calc(576px - 1)) {
  .footer .footer-line {
    width: 100%;
    padding: 0 0.4em;
  }
}
.footer .copy-box {
  flex: 0 0 auto;
  font-size: 0.8em;
  color: #cacaca;
}
.footer .address-box {
  flex: 1 1 auto;
  font-size: 0.8em;
  color: #cacaca;
}
.footer .go-top-box {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
  flex: none;
  right: -1em;
}
@media only screen and (min-width: 0) and (max-width: calc(576px - 1)) {
  .footer .footer-line {
    flex-direction: column;
    gap: 0.6em;
    align-items: start;
    justify-items: start;
  }
}
