.modal {
  display: block;
  height: 100%;
  pointer-events: none;
  position: fixed;
  top: 0;
  visibility: hidden;
  -webkit-transition: visibility 0s 0.3s;
  transition: visibility 0s 0.3s;
  width: 100%;
  z-index: 5; }
  .modal--active {
    pointer-events: auto;
    visibility: visible; }
  .modal__dialog {
    position: relative;
    z-index: 1; }
    .modal__dialog::before, .modal__dialog:not([class*='bg-brand--']) {
      background: transparent; }
    .modal__dialog::before {
      content: '';
      height: 100%;
      position: absolute;
      opacity: 0;
      top: 0;
      width: 100%;
      z-index: -1; }
  .modal__header {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-shrink: 0;
    -ms-flex-negative: 0;
    flex-shrink: 0;
    min-height: 60px;
    padding: 25px 25px;
    position: relative;
    z-index: 2; }
    .modal__header:not(.modal__header--divider-in) {
      border-bottom: 1px solid transparent; }
    .modal__header--divider-in, .modal__header--divider-out {
      -webkit-transition: border 0.2s 0s;
      transition: border 0.2s 0s; }
    .modal__header .modal__title {
      font-size: 26px;
      letter-spacing: -1px;
      line-height: 30px;
      font-family: inherit;
      text-transform: lowercase;
      -webkit-transition: 0.1s ease;
      transition: 0.1s ease;
      -webkit-box-flex: 1;
      -webkit-flex: 1;
      -ms-flex: 1;
      flex: 1; }
  .modal__close {
    margin-left: 30px; }
    .modal__close svg {
      color: #2175D9; }
  .modal__dialog.bg-brand--dark-blue .modal__close svg, .modal__dialog.bg-brand--red .modal__close svg, .modal__dialog.bg-brand--turquoise .modal__close svg, .modal__dialog.bg-brand--blue .modal__close svg {
    color: #F7F5F0; }
  .modal__dialog.bg-brand--yellow .modal__close svg {
    color: #0F1941; }
  .modal__main {
    height: calc(100vh - 60px);
    position: relative;
    -webkit-overflow-scrolling: touch; }
    .modal__main p:last-child {
      margin-bottom: 0; }
  .modal__footer {
    background: inherit;
    padding: 20px 25px;
    width: 100%; }
  .modal .form__header {
    margin-bottom: 20px; }
  .modal .form-group + .form-group {
    margin-top: 15px; }
  .modal .form-group + .button {
    margin-top: 25px; }

@media (max-width: 940px) {
  .modal__dialog {
    height: 100%; }
  .modal:not(.modal--popup):not(.modal--navigation) .modal__header {
    opacity: 0;
    -webkit-transform: translateY(100px);
    transform: translateY(100px);
    -webkit-transition: 0s;
    transition: 0s; }
    .modal:not(.modal--popup):not(.modal--navigation) .modal__header--divider-in {
      min-height: 50px;
      padding: 10px 25px 10px; }
      .modal:not(.modal--popup):not(.modal--navigation) .modal__header--divider-in .modal__title {
        font-size: 20px;
        letter-spacing: 0;
        line-height: 30px;
        font-family: inherit;
        text-transform: lowercase;
        -webkit-transition: 0.2s ease;
        transition: 0.2s ease; }
      .modal:not(.modal--popup):not(.modal--navigation) .modal__header--divider-in .modal__close {
        height: 30px;
        margin-top: -4px; }
        .modal:not(.modal--popup):not(.modal--navigation) .modal__header--divider-in .modal__close .icon {
          width: 15px; }
  .modal.modal--active:not(.modal--popup):not(.modal--navigation) .modal__header {
    opacity: 1;
    -webkit-transform: translateY(0);
    transform: translateY(0);
    -webkit-transition: -webkit-transform 0.7s;
    transition: -webkit-transform 0.7s;
    transition: transform 0.7s;
    transition: transform 0.7s, -webkit-transform 0.7s; }
  .modal.modal--active:not(.modal--popup) .modal__footer {
    background: #F7F5F0; }
  .modal__close {
    height: 40px;
    margin-right: -10px;
    cursor: none;
    margin-top: -6px;
    position: relative;
    width: 40px; }
    .modal__close .icon {
      top: 10px; }
  .modal__main, .modal__footer {
    opacity: 0; }
  .modal__main {
    overflow-y: scroll;
    padding: 0 25px 230px; }
  .modal__footer {
    bottom: 0;
    position: absolute;
    -webkit-transform: translateY(100%);
    transform: translateY(100%); }
  .modal .modal__dialog::before {
    -webkit-transition: 0.3s;
    transition: 0.3s; }
  .modal .modal__main {
    -webkit-transform: translateY(100px);
    transform: translateY(100px); }
    .modal .modal__main::after {
      -webkit-transition: 0.3s 0.1s;
      transition: 0.3s 0.1s; }
  .modal .modal__footer {
    opacity: 0;
    -webkit-transition: opacity 0.2s 0.1s, -webkit-transform 0.3s;
    transition: opacity 0.2s 0.1s, -webkit-transform 0.3s;
    transition: transform 0.3s, opacity 0.2s 0.1s;
    transition: transform 0.3s, opacity 0.2s 0.1s, -webkit-transform 0.3s; }
  .modal--active {
    visibility: visible; }
    .modal--active .modal__dialog::before {
      opacity: 1;
      background: #F7F5F0;
      -webkit-transition: 0.5s;
      transition: 0.5s; }
    .modal--active .modal__main {
      opacity: 1;
      -webkit-transform: translateY(0);
      transform: translateY(0);
      -webkit-transition-duration: 0.9s;
      transition-duration: 0.9s; }
      .modal--active .modal__main::after {
        -webkit-transform: translateY(100%);
        transform: translateY(100%);
        -webkit-transition-delay: 0.5s;
        transition-delay: 0.5s; }
    .modal--active .modal__footer {
      opacity: 1;
      -webkit-transform: translateY(0);
      transform: translateY(0);
      -webkit-transition: opacity 0.2s 0.7s, -webkit-transform 0.2s 0.7s;
      transition: opacity 0.2s 0.7s, -webkit-transform 0.2s 0.7s;
      transition: transform 0.2s 0.7s, opacity 0.2s 0.7s;
      transition: transform 0.2s 0.7s, opacity 0.2s 0.7s, -webkit-transform 0.2s 0.7s; } }

@media (min-width: 501px) {
  .modal:not(.modal--cookie)__header, .modal:not(.modal--cookie)__main {
    padding-left: 50px;
    padding-right: 50px; } }

@media (min-width: 941px) {
  .modal {
    -webkit-box-align: center;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
    background: transparent;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
    -ms-flex-pack: center;
    justify-content: center;
    opacity: 0;
    padding: 50px 0;
    -webkit-transition: background-color 0.3s, opacity 0.3s, visibility 0.3s;
    transition: background-color 0.3s, opacity 0.3s, visibility 0.3s;
    z-index: 3; }
    .modal--active {
      background: rgba(15, 25, 65, 0.7);
      opacity: 1; }
    .modal__dialog {
      border-radius: 8px;
      display: -webkit-box;
      display: -webkit-flex;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
      -webkit-flex-direction: column;
      -ms-flex-direction: column;
      flex-direction: column;
      height: auto;
      margin-top: -20px;
      max-height: 100%;
      opacity: 0;
      overflow: hidden;
      -webkit-transform: translateY(10%);
      transform: translateY(10%);
      -webkit-transition: opacity 0.3s, -webkit-transform 0.3s;
      transition: opacity 0.3s, -webkit-transform 0.3s;
      transition: transform 0.3s, opacity 0.3s;
      transition: transform 0.3s, opacity 0.3s, -webkit-transform 0.3s;
      width: 450px; }
      .modal__dialog:not([class*='bg-brand--']) {
        background: #F7F5F0; }
    .modal--active .modal__dialog {
      opacity: 1;
      -webkit-transform: translateY(0);
      transform: translateY(0); }
    .modal__close {
      height: 30px; }
    .modal__header, .modal.form__header {
      padding-top: 30px; }
    .modal__header, .modal__main {
      padding-left: 30px;
      padding-right: 30px; }
    .modal__footer {
      padding: 30px 30px;
      position: static; }
    .modal__main {
      height: 100%;
      overflow-y: auto; }
      .modal__main--overflow {
        border-bottom: 0; }
      .modal__main--overflow::after {
        content: '';
        display: block;
        padding-bottom: 30px; } }

html.modal-open body {
  height: 100%;
  overflow: hidden;
  position: fixed;
  width: 100%; }

.modal__overlay {
  background: #0F1941;
  bottom: 0;
  left: 0;
  max-height: 0;
  opacity: 0;
  position: fixed;
  right: 0;
  -webkit-transition: opacity 0.2s, max-height 0s 0.2s;
  transition: opacity 0.2s, max-height 0s 0.2s;
  top: 0;
  z-index: 2; }
  .modal__overlay--active {
    max-height: 100%;
    opacity: 0.7;
    -webkit-transition: opacity 0.2s, max-height 0s 0s;
    transition: opacity 0.2s, max-height 0s 0s; }
    .modal__overlay--active.modal__overlay--light {
      opacity: 0.3; }
