/* Desktop, dropdown, mobile, floating, and responsive site navigation. */

/*--------------------------------------------------------------
# Navigation
--------------------------------------------------------------*/

nav.main-navigation {

  ul.wp-block-navigation__container {

    li a.wp-block-navigation-item__content .wp-block-navigation-item__label > span,
    li a:not(.wp-element-button, .wp-block-navigation-item__content) {
      padding-top: 0.25rem;
      padding-bottom: 0.25rem;
      display: inline-flex;
    }

    li.main-navigation-search a.wp-block-navigation-item__content {
      display: flex !important;
      padding: 0.25rem;
      align-items: center;
      gap: 0.5rem;
    }
  }

  ul.wp-block-navigation__container li {

    &::after {
      content: "";
      display: inline-block;
      background: var(--wp--preset--color--mid-gray);
      width: 1px;
      height: 1rem;
      margin-left: 1rem;
    }

    &.wp-block-polylang-navigation-language-switcher {

      &::after {
        display: none;
      }
    }
  }

  .wp-block-navigation__responsive-container:not(.has-modal-open) {

    .wp-block-navigation {
      color: var(--wp--preset--color--rich-black);
      font-size: var(--wp--preset--font-size--small);
      font-weight: 700;
      /* letter-spacing: 0.14rem; */
      letter-spacing: 0.0625rem;
      line-height: 1.3;
      text-transform: uppercase;
    }

    ul.wp-block-navigation__container {

      li.main-navigation-search a.wp-block-navigation-item__content {
        margin: 0 -0.25rem;
      }
    }

    .wp-element-icon {
      display: none;
    }
  }

  .wp-block-navigation__responsive-container.has-modal-open {

    ul.wp-block-navigation__container {

      li.main-navigation-search a.wp-block-navigation-item__content {

        .screen-reader-text {
          clip: auto !important;
          clip-path: none !important;
          height: auto !important;
          width: auto !important;
          margin: 0 !important;
          overflow: visible !important;
          position: static !important;
          display: inline !important;
          padding: 0.25rem 0;
        }
      }
    }

    .wp-element-icon {
      display: inline-flex;
    }

    .wp-block-navigation-item__content:has(+ button) {
      position: relative;
      z-index: 5;

      .wp-element-icon {
        display: none;
      }
    }

  }

  .wp-block-navigation__responsive-container.is-menu-open {
    padding-top: 1.0rem !important;
    padding-bottom: 4rem !important; /* Mobile safe zone */
  }

  .wp-block-navigation__responsive-dialog {
    margin-top: 0 !important; /* Disable margin due to admin bar */
  }
}

nav.footer-navigation {

  ul.wp-block-navigation__container li a {
    padding-top: 0.125rem;
    padding-bottom: 0.125rem;
  }
}

.wp-block-site-logo {
  width: 8.75rem;
}
@media (max-width: 575px) {

  .wp-block-site-logo {
    width: 8rem;
  }
}

/*--------------------------------------------------------------
# Navigation, dropdown
--------------------------------------------------------------*/

nav.main-navigation {

  .wp-block-polylang-navigation-language-switcher-button {
    -webkit-appearance: none;
    padding: 0;
    margin: 0;
    background: transparent;
    border: none;
    color: var(--wp--preset--color--rich-black);
    font-size: var(--wp--preset--font-size--small);
    font-weight: 700;
    letter-spacing: 0.0625rem;
    line-height: 1.3;
    text-transform: uppercase;
    font-family: var(--wp--preset--font-family--lato);

    svg {
      stroke: currentColor;
      margin: 0;
      margin-left: 0.5rem;
      width: 0.75rem;
      height: 0.75rem;
    }

    .wp-block-navigation-item__label {
      padding: 0.25rem 0;
    }
  }

  .wp-block-navigation .wp-block-navigation__submenu-icon {
    width: 1rem;
    height: 1rem;
    margin-left: 0.5rem;

    svg {
      margin: 0;
      width: 75%;
      height: 75%;
    }
  }

  .wp-block-navigation__responsive-container:not(.has-modal-open) {

    .wp-block-navigation ul.wp-block-navigation__submenu-container {
      display: flex;
      flex-direction: column;
      gap: 0.5rem;
      background: transparent;
      padding: 3.5rem 1.5rem 1.5rem;
      box-shadow: none;
      border: none;
      min-width: 20rem;

      &.wp-block-polylang-navigation-language-switcher {
        min-width: 0;
      }

      &:before {
        content: ' ';
        position: absolute;
        top: 2.0rem;
        left: 0;
        right: 0;
        bottom: 0;
        border-radius: 0.25rem;
        background: var(--wp--preset--color--rice-white);
        box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.16);
      }

      li::after {
        display: none;
      }

      li a {
        font-size: var(--wp--preset--font-size--medium);
        padding: 0.25rem 0 !important;
        text-transform: none;
        letter-spacing: 0;
        font-weight: 400;
      }
    }
  }

}

/*--------------------------------------------------------------
# Navigation, mobile
--------------------------------------------------------------*/

nav.main-navigation {

  .wp-block-navigation__responsive-container.has-modal-open {

    button.wp-block-polylang-navigation-language-switcher-button,
    a.wp-block-navigation-item__content {
      display: flex;
      align-items: center;
      gap: 0.5rem;
      padding: 0.25rem 0 !important;
      color: var(--wp--preset--color--rich-black);
      font-size: var(--wp--preset--font-size--xl) !important;
      font-weight: 700;
      letter-spacing: 0;
      line-height: 1.3;
      text-transform: none;
    }
  }

  .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .has-child .wp-block-navigation__submenu-container {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin: 0;
    padding: 0 0 0 1rem;

    a.wp-block-navigation-item__content {
      font-size: var(--wp--preset--font-size--medium) !important;
      font-weight: 400 !important;
    }
  }

  .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) {

    .wp-block-navigation__container {

      > .wp-block-navigation-item {
        width: 100% !important;
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;

        > ul {
          flex-basis: 100%;
          height: auto;
          height: calc-size(auto, size);
          opacity: 1;
          overflow: hidden;
          transition: all var(--global-transition);
        }

        button[aria-expanded="false"] + ul {
          height: 0;
          opacity: 0;
          display: none;
          transition-behavior: allow-discrete;
        }
        @starting-style {

          button[aria-expanded="true"] + ul {
            height: 0;
            opacity: 0;
          }
        }
      }
    }

    .wp-block-navigation__responsive-container-content {

      .wp-block-navigation__submenu-icon {
        display: block;
      }
    }

    .wp-block-navigation .wp-block-navigation__submenu-icon {
      position: relative;
      z-index: 10;
      margin-left: auto;
      margin-right: 0.25rem;

      &:before {
        content: ' ';
        position: absolute;
        top: -1rem;
        right: -1rem;
        bottom: -1rem;
        left: -100vw;
      }
    }
  }
}

/*--------------------------------------------------------------
# Navigation, floating bar
--------------------------------------------------------------*/

.menu-floating-bar,
.wp-site-blocks > header.wp-block-template-part {
  background: var(--wp--preset--color--rice-white);
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  width: auto;
  z-index: 250;
  box-shadow: none;
}

body.is-scrolled .menu-floating-bar,
body.is-scrolled .wp-site-blocks > header.wp-block-template-part {
  box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.16);
  transition: box-shadow var(--global-transition);
  transition-duration: 1200ms;
}
@media (min-width: 600px) {

  body.home .menu-floating-bar {
    box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.16);
  }

  .wp-site-blocks {

    &:before {
      content: ' ';
      position: fixed;
      top: 0;
      left: 0;
      right: 0;
      height: 4.5rem;
      background-color: rgba(255, 255, 255, 0.9);
      z-index: 145;
      pointer-events: none;
      backdrop-filter: blur(10px);
      mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 1) 20%, rgba(0, 0, 0, 0) 100%);
    }

    > main,
    > footer {
      position: relative;
    }
    /* Blocks we don't want obstructed by the ::before */

    .wp-block-post-featured-image,
    .wp-block-cover.alignfull {
      position: relative;
      z-index: 150;
    }
  }

  body.is-scrolled .wp-site-blocks > header.wp-block-template-part {

  }
}
@media (min-width: 783px) {

  body.admin-bar .wp-site-blocks {

    &:before {
      top: var(--wp-admin--admin-bar--height, 32px);
    }
  }
}

.wp-site-blocks:not(:has(> .menu-floating-bar)) {
  padding-top: calc(var(--nav-height, 80px) + var(--wp--preset--spacing--small));
}
@media (min-width: 600px) {

  .wp-site-blocks:not(:has(> .menu-floating-bar)) {
    padding-top: calc(var(--nav-height, 80px) + var(--wp--preset--spacing--large));
  }
}
@media (max-width: 599.98px) {

  .wp-site-blocks:has(> .menu-floating-bar) {
    padding-top: var(--nav-height, 80px);
  }
}

.menu-floating-bar.is-hidden-by-anchor-nav,
.wp-site-blocks > header.wp-block-template-part.is-hidden-by-anchor-nav {
  transform: translateY(-200%);
  pointer-events: none;
}
@media (min-width: 600px) {

  .wp-site-blocks > .menu-floating-bar,
  .wp-site-blocks > header.wp-block-template-part {
    margin: 1.0rem calc(var(--outer) - var(--navigation-margin-x));
  }

  .menu-floating-bar,
  .wp-site-blocks > header.wp-block-template-part {
    border-radius: 4px;
  }
}
/* WP hides #wpadminbar below 783px, so only offset the fixed header for it above that width. */
@media (min-width: 783px) {

  body.admin-bar .menu-floating-bar,
  body.admin-bar .wp-site-blocks > header.wp-block-template-part {
    top: var(--wp-admin--admin-bar--height, 32px);
  }
}

/*--------------------------------------------------------------
# Navigation, break point
--------------------------------------------------------------*/
@media (max-width: 1280px) {

    .wp-block-navigation__responsive-container-open:not(.always-shown) {
        display: flex !important;
    }

    .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
        display: none !important;
    }
}
@media (min-width: 1280px) {

    .wp-block-navigation__responsive-container-open:not(.always-shown) {
        display: none !important;
    }

    .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
        display: block !important;
    }
}
