:root {
  --header-height: calc(var(--baseline) * 9);

  @media (hover: hover) and (pointer: fine) {
    --header-height: calc(var(--baseline) * 14);
  }
}
html:has(body.submenu-opened),
html:has(body.language-switcher-opened),
html:has(body.mobile-menu-opened) {
  overflow: hidden !important;

  .main-content {
    filter: blur(3px);
  }
}
html:has(body.language-switcher-opened) {
  .header-logo-link,
  .main-navigation,
  .main-content * {
    pointer-events: none;
  }
}

.header-block {

  position: fixed;
  top: 0;
  z-index: 4;
  height: var(--header-height);
  align-items: center;
  background-color: var(--transparent);
  border-bottom: 1px solid var(--transparent);
  transition: all .4s;

  .page-scrolled & {
    transform: translateY( calc( -1 * (100%) ) );
  }

  .submenu-opened &,
  .page-not-on-top & {
    background-color: var(--background-color);
    border-bottom: 1px solid var(--dark-blue-400);
  }

  .inner-wrapper {
    align-items: center;
  }

  .header-logo-figure {
    max-height: calc(var(--baseline) * 5);
    height: calc(var(--baseline) * 5);
    min-height: calc(var(--baseline) * 5);
  }

  .header-logo-img {
    object-position: left top;
  }

  .main-navigation {
    display: flex;
    justify-content: center;
    gap: calc(var(--baseline) * 4);
    margin-left: auto;
    margin-right: auto;
  }

  .menu-voice {
  }
  .voice-label {
    position: relative;
    text-wrap: nowrap;
    width: fit-content;

    &::after {
      content: '';
      position: absolute;
      bottom: 0;
      left: 0;
      width: 0px;
      height: 1px;
      background-color: var(--transparent);
      transition: all .4s;
    }
  }

  .header-utils {
    display: flex;
    flex-direction: row;
    justify-content: flex-end;
    align-items: center;
    gap: calc(var(--baseline) * 2);
  }

  .language-switcher {}
  .current-language {
    display: flex;
    align-items: center;
    gap: calc(var(--baseline) * 1);
    margin: 0;
    padding: 0;
    border: 0 none;
    background-color: var(--transparent);

    &[disabled] {
      /*pointer-events: none;*/
    }
  }
  .languages {
    display: flex;
    flex-direction: column;
    gap: calc(var(--baseline) * .5);
    top: calc(100% + (var(--baseline) * 2));
    right: 0;
    height: 0;
    padding: 0;
    overflow: hidden;
    text-align: right;
    background-color: var(--background-color);
    /*pointer-events: none;*/

    transition: all .4s;

    .language-switcher-opened & {
      /*pointer-events: all;*/
    }

    .language-switch {
      padding: 0 calc(var(--baseline) * 2);

      &:first-child {
        margin-top: calc(var(--baseline) * 2);
      }
      &:last-child {
        margin-bottom: calc(var(--baseline) * 2);
      }
    }
  }

  .search-opener {
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    border-radius: 0;
    width: calc(var(--baseline) * 4);
    height: calc(var(--baseline) * 4);
  }
  .search-toggle {
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    border: 0 none;
    padding: 0;
    background-color: var(--transparent);
  }

  @media (hover: hover) and (pointer: fine) {
    .menu-voice {
      &:hover {
        .voice-label {
          &::after {
            width: 100%;
            background-color: currentColor;
          }
        }
      }
    }
  }
}

.submenus {
  position: fixed;
  top: var(--header-height);
  pointer-events: none;
  z-index: 4;

  .mobile-menu-opened.submenu-opened & {
    z-index: 5;
  }

  .submenu {
    position: absolute;
    top: 0;
    z-index: 3;
    opacity: 0;
    border-top: 1px solid var(--default-primary-50);
    border-bottom: 1px solid var(--dark-blue-400);
    background-color: var(--background-color);
    pointer-events: none;
    transition: all .4s;

    &.active {
      pointer-events: all;
      opacity: 1;
    }

    .mobile-menu-opened.submenu-opened & {
      height: 100%;
    }
  }

  .inner-wrapper {
    padding-top: calc(var(--baseline) * 6);
    padding-bottom: calc(var(--baseline) * 10);
  }

  .column-items {
    display: flex;
    flex-direction: column;
    gap: calc(var(--baseline) * .5);
    padding-top: calc(var(--baseline) * 2);
  }

  .submenu-voice {
    &:not(:first-child) {
      margin-top: calc(var(--baseline) * 1);
    }

    &:has(.submenu-voice-image) {
      padding-top: 0;

      &:not(:first-child) {
        margin-top: calc(var(--baseline) * 0);
        padding-top: calc(var(--baseline) * 2);
      }
    }
  }

  .submenu-voice-image {
    height: calc(var(--baseline) * 5);
  }

  .highlight-item {
    display: flex;
    align-items: flex-start;
    gap: calc(var(--baseline) * 3);
    padding-bottom: calc(var(--baseline) * 3);

    &:not(:first-child) {
      border-top: 1px solid var(--dark-blue-400);
      padding-top: calc(var(--baseline) * 3);
    }

    .item-figure {}
    .item-img {}
    .item-copy {}
    .item-pre-heading {}
    .item-heading {
      &:not(:first-child) {
        padding-top: calc(var(--baseline) * 2);
      }
    }
    .item-actions {
      padding-top: calc(var(--baseline) * 2);
    }
    .item-action {}
  }

  @media screen and (max-width: 959px) {
    height: calc(100dvh - var(--header-height));

    .inner-wrapper {
      height: 100%;
      overflow: auto;
      flex-direction: column;
      flex-wrap: nowrap;
    }
  }

  .mobile-submenus-back {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
    border: 0 none;
    padding: 0;
    margin: 0;
    background-color: var(--transparent);
    transform: translateY(calc(-50% - var(--header-height)/2 )) translateX(calc(var(--baseline) * 4)) rotate(-135deg);
    pointer-events: none;
    opacity: 0;

    .mobile-menu-opened.submenu-opened & {
      opacity: 1;
      pointer-events: all;
    }
  }
}

.mobile-search-menu-wrapper {
  --line-height: 2px;
  --display: flex;

  @media screen and (min-width: 960px) {
    --display: none;
  }

  @media screen and (min-width: 1440px) {
    display: none !important;
    pointer-events: none;
  }

  display: var(--display);
  gap: calc(var(--baseline) * 2);
  pointer-events: all;
  position: fixed;
  top: calc(var(--baseline) * 2);
  right: calc(var(--baseline) * 2);
  z-index: 5;

  .mobile-search-opener {
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    border-radius: 0;
    width: calc(var(--baseline) * 4);
    height: calc(var(--baseline) * 4);
  }
  .mobile-search-toggle,
  .mobile-menu-toggle {
    filter: drop-shadow(0px 0px calc(var(--baseline) * .5) var(--background-color));
  }
  .mobile-search-toggle {
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    border: 0 none;
    padding: 0;
    background-color: var(--transparent);
  }

  .mobile-menu-opener {
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    border-radius: 0;
    width: calc(var(--baseline) * 4);
    height: calc(var(--baseline) * 4);
  }
  .mobile-menu-toggle {
    position: relative;
    border: 0 none;
    border-radius: 0;
    width: calc(var(--baseline) * 3);
    height: var(--line-height);
    transition: all .4s;
    background-color: var(--transparent);
    padding: 0;
    display: flex;
    flex-direction: row;
    justify-content: flex-end;
    align-items: center;

    &::before,
    &::after {
      content: '';
      display: block;
      width: calc(var(--baseline) * 3);
      height: var(--line-height);
      background-color: var(--default-primary-50);
      position: absolute;
      left: 0;
      transform-origin: 50%;
      transition: all .4s;
    }

    &::before {
      transform: translateY( calc(-2 * (100% + var(--line-height)) ) );
    }
    &::after {
      transform: translateY( calc(2 * (100% + var(--line-height)) ) );
    }

    .line {
      display: block;
      height: var(--line-height);
      width: calc(var(--baseline) * 2);
      background-color: var(--default-primary-50);
      transition: all .4s;
    }

    .mobile-menu-opened & {

      &::before,
      &::after {}
      &::before {
        transform: translateY(0) rotate(45deg);
      }
      &::after {
        transform: translateY(0) rotate(-45deg);
      }

      .line {
        background-color: var(--color-transparent);
      }
    }
  }
}

.mobile-menu {
  display: none;
  z-index: 3;
  height: 100dvh;
  width: 100dvw;
  padding-top: var(--header-height);
  background-color: var(--background-color);

  @media (hover: hover) and (pointer: fine) {
    display: none !important;
    pointer-events: none;
  }

  .mobile-menu-opened & {
    display: block;
  }

  .mobile-navigation {
    height: 100%;
  }

  .inner-wrapper {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: calc(var(--baseline) * 3);
    height: 100%;
    padding-top: calc(var(--baseline) * 6);
    padding-bottom: calc(var(--baseline) * 6);
  }

  .menu-voice {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    width: 100%;

    svg {
      transform-origin: 50%;
      // transform: translateX(calc(var(--baseline) * -1)) rotate(45deg);
      transform: rotate(45deg);
    }
  }

  .mobile-language-switcher {
    margin-top: auto;
    margin-left: calc(-1 * (var(--baseline) * 3.5));
    border-top: 1px solid var(--default-primary-50);
    padding: calc(var(--baseline) * 2) calc(var(--baseline) * 3.5) 0;
    width: 100dvw;
  }
  .language-switcher {}
  .current-language {
    display: flex;
    gap: calc(var(--baseline) * 1);
  }
  .languages {
    display: flex;
    gap: calc(var(--baseline) * 2);
    padding-top: calc(var(--baseline) * 2);
  }

  .mobile-menu-opened.submenu-opened & {
    z-index: 4;
  }
}
