.section-header {
  display: contents;

  --menu-bg-fill-light: #ffffff;
  --menu-bg-fill-dark: #3a3a3a;
  --global-border-width: 1px;
  --menu-bg-stroke: rgba(0, 0, 0, 0.1);
  --menu-pad-y-sm: 24px;
  --menu-pad-x: 32px;
  --menu-pad-y-lg: 20px;
  --menu-pad-x-lg: 24px;
  --menu-logo-fill-light: #ffffff;
  --menu-logo-fill-dark: #000000;
  --menu-link-fill-dark: #000000;
  --menu-link-fill-light: #ffffff;
  --menu-link-fill-dark-active: #3a3a3a;
  --menu-link-fill-light-active: #ffffff;
  --menu-heading-fill: #000000;
  --menu-item-gap: 24px;
  --menu-link-gap: 12px;
  --menu-icon-gap: 8px;
  --menu-icon-fill-light-default: #ffffff;
  --menu-icon-fill-light-active: #ffffff;
  --menu-icon-fill-dark-default: #000000;
  --menu-icon-fill-dark-active: #000000;
  --menu-toggle-gap: 16px;
  --focus-light: #ffffff;
  --focus-dark: #000000;
  --menu-border-rad: 16px;

  @media (max-width: 1232px) {
    --menu-pad-y-sm: 12px;
    --menu-pad-x: 16px;
    --menu-toggle-gap-lg: 20px;
    --menu-toggle-gap: 16px;
  }

  gaia-header {
    position: fixed;
    top: 20px;
    z-index: 1000000;
    transition: top 0.2s ease-in-out;
    background-color: var(--menu-bg-fill-dark);
    display: grid;
    grid-template-columns: max-content auto max-content;
    padding: var(--menu-pad-y-sm) var(--menu-pad-x);
    border-radius: 45px;
    width: calc(100% - 100px);
    margin: 0px 50px;

    @media screen and (max-width: 1232px) {
      width: calc(100% - 32px);
      margin: 0px 16px;
    }

    @media (min-width: 1233px) {
      gap: 16px;
      grid-template-columns: max-content auto max-content;
    }

    /* Open styling  */
    &:has(.mega-menu.open, .mega-menu.opening),
    &:has(gaia-mobile-menu > details[open]),
    &:has(.search-dropdown details[open]) {
      background-color: var(--menu-bg-fill-light);
      border-radius: 45px 45px 0 0;
      .header-logo {
        color: var(--menu-logo-fill-dark);
      }

      .mega-menu.open,
      .mega-menu.opening {
        .top-link {
          background-color: var(--menu-bg-fill-dark);
          color: var(--menu-link-fill-light);
        }
      }

      .top-link {
        color: var(--menu-link-fill-dark);
        &:hover {
          background-color: var(--menu-bg-fill-dark);
          color: var(--menu-link-fill-light);
        }
      }

      .menu-icon-link {
        color: var(--menu-icon-fill-dark-default);
        &:hover {
          background-color: var(--menu-icon-fill-dark-default);
          color: var(--menu-link-fill-light);
        }
      }
      .menu-icons .localization-form-wrapper form .disclosure__button {
        background-color: var(--menu-bg-fill-light);
        color: var(--menu-link-fill-dark);
        &:hover,
        &[aria-expanded="true"] {
          background-color: var(--menu-bg-fill-dark);
          color: var(--menu-link-fill-light);
        }
      }
      /* Mobile open styling  */
      @media screen and (max-width: 1232px) {
        margin: 0;
        border-radius: 0;
        top: 0 !important;
        width: 100%;
        padding: var(--menu-pad-y-lg) var(--menu-pad-x-lg);
        .menu-icon-link {
          &:hover {
            background-color: transparent;
            color: var(--menu-icon-fill-dark-default);
          }
        }
      }
      .cart-count-bubble {
        background-color: #000000;
      }
    }

    header {
      display: contents;
    }

    .mobile-menu-wrapper {
      display: none;
      @media screen and (max-width: 1232px) {
        display: flex;
        align-items: center;
        justify-content: center;
      }
    }

    .header-logo {
      display: flex;
      align-items: center;
      min-width: 0;
      max-width: max-content;
      color: var(--menu-logo-fill-light);
      margin: auto;
      @media (max-width: 1232px) {
        svg {
          height: 20px;
        }
      }
    }

    .logo {
      width: auto;
      max-width: 100%;
    }

    .menu-link {
      color: var(--menu-link-fill-light);
      transition: color 0.3s;
      text-decoration: underline;
      text-decoration-color: transparent;
      transition: text-decoration-color 0.3s ease-in-out;
      &.current,
      &:hover {
        color: var(--menu-link-fill-dark-active);
        text-decoration-color: var(--menu-link-fill-dark-active);
      }
      &.top-link.current {
        color: var(--menu-link-fill-light);
        &:hover {
          color: var(--menu-link-fill-dark);
        }
      }
    }

    .menu-heading {
      color: var(--menu-heading-fill);
    }

    .menu {
      list-style: none;
      padding: 0;
      margin: 0;
      display: flex;
      gap: var(--menu-pad-y-sm) var(--menu-link-gap);
      align-items: center;
      flex-wrap: wrap;
      justify-content: center;

      a {
        text-decoration: none;
      }
    }

    .top-menu {
      height: 100%;
      align-content: center;
    }

    .mega-menu {
      cursor: pointer;
      &.open,
      &.opening {
        .top-link {
          .top-link {
            background-color: var(--menu-bg-fill-dark);
            color: var(--menu-link-fill-light);
          }

          .icon-minus {
            opacity: 1;
          }

          .icon-plus {
            opacity: 0;
          }
        }
      }
    }

    .top-link {
      font-family: "PP Neue Montreal";
      font-weight: 500;
      line-height: 100%;
      letter-spacing: 0;
      font-size: 14px;
      text-transform: uppercase;
      text-decoration: none;
      background-color: var(--menu-link-fill-dark-default);
      height: 42px;
      display: flex;
      align-items: center;
      justify-content: center;
      border-radius: 1000px;
      padding: 16px;
      transition: color 0.3s, background-color 0.3s;
      &:hover {
        color: var(--menu-link-fill-dark);
        background-color: var(--menu-link-fill-light-active);
      }
      &:focus-visible {
        outline: 2px solid var(--focus-light);
        outline-offset: 2px;
      }
      .icon-plus {
        transition: opacity 0.3s;
        position: absolute;
        right: 0;
      }

      .icon-minus {
        opacity: 0;
        transition: opacity 0.3s;
      }

      @media (min-width: 1233px) {
        color: var(--menu-link-fill-light);

        .icon-plus,
        .icon-minus {
          display: none;
        }
      }
    }

    .menu-arrow {
      border-radius: 100%;
      border: var(--global-border-width) solid var(--menu-bg-stroke);
      height: 32px;
      width: 32px;
      display: flex;
      align-items: center;
      justify-content: center;
      color: var(--menu-icon-fill-dark-default);
      @media (max-width: 1232px) {
        height: 28px;
        width: 28px;
      }
    }

    .child-menu {
      overflow: auto;
      .child-link-icon {
        display: none;
      }

      &.order-links-first {
        li {
          order: 1;
        }
        li:has(.mega-menu-card) {
          order: 2;
        }
      }

      &.order-card-first {
        li {
          order: 2;
        }
        li:has(.mega-menu-card) {
          order: 1;
        }
      }

      > li {
        &:has(.solo-link) {
          display: grid;
          &.solo-link-large {
            grid-template-rows: repeat(3, auto);
            grid-auto-flow: column;
            column-gap: var(--menu-item-gap);

            @media (min-width: 1233px) {
              a {
                &:nth-child(3n) {
                  padding-bottom: 0;
                  border-bottom: 0;
                }
              }
            }
          }

          a {
            &:last-child {
              padding-bottom: 0;
              border-bottom: 0;
            }
          }
        }
      }

      .menu-heading {
        cursor: pointer;
        font-family: "PP Neue Montreal", sans-serif;
        font-weight: 400;
        line-height: 100%;
        letter-spacing: 0;
        font-size: 20px;
        display: flex;
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        border-bottom: var(--global-border-width) solid var(--menu-bg-stroke);
        padding-bottom: var(--menu-toggle-gap);
        transition: transform 0.3s;

        &:hover {
          .menu-arrow {
            animation: arrow-slide 1s infinite linear;
          }
        }
      }

      @media (min-width: 1233px) {
        position: absolute;
        top: 100%;
        left: 0;
        width: 100%;
        background-color: var(--menu-bg-fill-light);
        padding: var(--menu-pad-y-sm) var(--menu-pad-x);
        align-items: flex-start;
        max-height: calc(100vh - var(--header-bottom-position, 0));
        overflow-y: scroll;
        border-radius: 0 0 45px 45px;
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
        gap: var(--menu-item-gap);
        padding: var(--menu-pad-y-sm) var(--menu-pad-x);
        align-items: stretch;

        &.cards-only {
          .mega-menu-card {
            min-height: 280px;
          }
        }

        > li {
          display: flex;
          flex-direction: column;
          gap: var(--menu-toggle-gap);
          border: var(--global-border-width) solid var(--menu-bg-stroke);
          border-radius: var(--menu-border-rad);
          padding: var(--menu-pad-y-sm);
          height: 100%;
          transition: border-color 0.3s, box-shadow 0.3s;
        }

        .child-link-icon {
          display: block;
          height: 40px;
          width: auto;
          align-self: flex-start;
        }
      }
    }

    .child-link {
      @media (max-width: 1232px) {
      }

      @media (min-width: 1233px) {
        margin: 0;
      }
    }

    .grandchild-menu {
      flex-direction: column;
      align-items: flex-start;
      gap: var(--menu-link-gap);
      li {
        display: flex;
      }
    }

    a.grandchild-link {
      color: var(--menu-link-fill-dark);
      text-decoration: underline;
      text-decoration-color: transparent;
      transition: text-decoration-color 0.3s ease-in-out;
      font-family: "PP Neue Montreal", sans-serif;
      font-weight: 400;
      line-height: 100%;
      letter-spacing: 0;
      font-size: 14px;
      &:hover {
        color: var(--menu-link-fill-dark);
        text-decoration-color: var(--menu-link-fill-dark);
      }
    }

    li:has(.mega-menu-card) {
      padding: 0;

      &:has(:focus-visible) {
        outline: 2px solid var(--focus-dark);
        outline-offset: 2px;
        border-radius: var(--menu-border-rad);
      }
      .mega-menu-card {
        position: relative;
        height: 100%;
        width: 100%;

        .mega-menu-card-content {
          padding: var(--menu-pad-y-sm);
          display: flex;
          flex-direction: column;
          gap: var(--menu-link-gap);
          height: 100%;
          width: 100%;
          position: relative;
          z-index: 2;
          color: var(--menu-link-fill-light);
          &.image-gradient {
            &:after {
              z-index: -1;
              content: "";
              position: absolute;
              top: 0;
              left: 0;
              width: 100%;
              height: 100%;
              background: rgba(0, 0, 0, 0.25);
              border-radius: var(--menu-border-rad);
            }
          }
          .mega-menu-card-title {
            font-weight: 400;
            font-family: "PP Neue Montreal", sans-serif;
            font-size: 20px;
            line-height: 130%;
            letter-spacing: 0;
            @media screen and (max-width: 1232px) {
              font-size: 16px;
            }
          }
          .mega-menu-card-text {
            max-width: 140px;
            font-weight: 400;
            font-family: "PP Neue Montreal", sans-serif;
            font-size: 12px;
            line-height: 150%;
            letter-spacing: 0;
          }
          .menu-arrow {
            border-color: var(--menu-icon-fill-light-default);
            color: var(--menu-icon-fill-light-default);
            margin-top: auto;
          }
          &:hover {
            .menu-arrow {
              animation: arrow-slide 1s infinite linear;
            }
          }
        }
        .mega-menu-card-img {
          position: absolute;
          position: 1;
          height: 100%;
          width: 100%;
          border-radius: var(--menu-border-rad);
          object-fit: cover;
          top: 0;
          left: 0;
        }
      }
    }

    .header-left {
      @media (max-width: 1232px) {
        display: none;
      }
    }

    .header-right {
      display: contents;

      .top-menu {
        justify-content: center;

        @media (max-width: 1232px) {
          display: none;
        }
      }
    }

    .menu-icons {
      display: flex;
      align-items: center;
      gap: var(--menu-icon-gap);
      list-style: none;
      justify-content: flex-end;
      margin: 0;
      padding: 0;

      @media screen and (max-width: 1232px) {
        li {
          height: 30px;
          width: 30px;
          .menu-icon-link {
            height: 30px;
            width: 30px;
          }
        }
      }

      .localization-form-wrapper {
        padding: 0;
        @media screen and (max-width: 1232px) {
          display: none;
        }
        form {
          margin: 0;
          .disclosure {
            .disclosure__list-wrapper {
              top: 100%;
              bottom: unset;
              transform: none;
            }

            &:has(button[aria-expanded="true"]) {
              svg {
                transform: rotate(180deg);
                transition: transform 0.3s;
              }
            }

            .disclosure__button {
              margin: 0;
              padding: 0;
              background: none;
              height: fit-content;
              display: flex;
              flex-direction: row;
              min-width: fit-content;
              gap: 5px;
              background-color: var(--menu-bg-fill-dark);
              color: var(--menu-link-fill-light);
              border-radius: 1000px;
              max-height: 32px;
              min-height: 32px;
              padding: 5px;
              transition: background-color 0.3s, color 0.3s;
              &:hover,
              &[aria-expanded="true"] {
                background-color: var(--menu-bg-fill-light);
                color: var(--menu-link-fill-dark);
              }
              &:focus-visible {
                outline: 2px solid var(--focus-dark);
                outline-offset: 2px;
              }
              span {
                font-size: 14px;
                font-weight: 500;
                line-height: 100%;
                letter-spacing: 0;
                font-family: "PP Neue Montreal", sans-serif;
                text-transform: uppercase;
              }
              &:after,
              &:before {
                display: none;
              }
              svg {
                position: unset;
                height: 20px;
                width: 20px;
              }
            }
          }
        }
      }

      .desktop-icon {
        @media screen and (max-width: 1232px) {
          display: none;
        }
      }

      .menu-icon-link {
        cursor: pointer;
        color: var(--menu-icon-fill-light-default);
        transition: color 0.3s;
        display: flex;
        align-items: center;
        justify-content: center;
        transition: background-color 0.3s, color 0.3s;
        aspect-ratio: 1/1;
        padding: 0;
        height: 32px;
        width: 32px;
        border-radius: 1000px;

        &:hover {
          background-color: var(--menu-icon-fill-light-default);
          color: var(--menu-link-fill-dark);
          aspect-ratio: 1/1;
        }
      }

      > li > a,
      .header__icon {
        display: flex;
      }

      .icon {
        width: 24px;
        height: 24px;
      }

      .header__icon--cart {
        position: relative;

        .cart-count-bubble {
          position: absolute;
          background-color: #ffffff;
          color: transparent;
          height: 10px;
          width: 10px;
          border-radius: 100%;
          display: flex;
          justify-content: center;
          align-items: center;
          top: 1px;
          right: 0;

          @media (min-width: 769px) {
            top: 2px;
            right: 0.5px;
          }
        }
      }
    }

    gaia-mobile-menu {
      @media (min-width: 1233px) {
        display: none;
      }
      @media (max-width: 1232px) {
        display: contents;
      }

      .menu-icon-link {
        color: var(--menu-link-fill-light);
        padding: 5px;
        svg {
          height: 20px;
          width: 20px;
        }
        &:hover {
          background-color: var(--menu-icon-fill-light-default);
          color: var(--menu-link-fill-dark);
          aspect-ratio: 1/1;
          border-radius: 1000px;
        }
      }

      details {
        height: fit-content;
        cursor: pointer;

        &[open] {
          .mobile-menu {
            translate: 0 0;
          }
        }

        &[open].open {
          > summary {
            .icon-hamburger {
              opacity: 1;
            }
          }

          .mobile-menu {
            translate: 0 0;
          }
        }

        &[open].opening {
          > summary {
            .icon-hamburger {
              opacity: 1;
            }
          }

          .mobile-menu {
            translate: 0 0;
          }
        }

        &.closing {
          .mobile-menu {
            translate: -100% 0;
          }
        }

        &.closed {
          .mobile-menu {
            translate: -100% 0;
          }
        }

        summary {
          display: flex;
          align-items: center;
          position: relative;

          .icon-hamburger {
            transition: color 0.3s, opacity 0.3s;
          }
        }

        .mobile-menu {
          position: fixed;
          bottom: 0;
          left: 0;
          background: var(--menu-bg-fill-light);
          display: flex;
          flex-direction: column;
          width: 100%;
          height: calc(100dvh - var(--header-height));
          overflow-x: hidden;
          overflow-y: auto;
          translate: 0 0;
          transition: translate 0.3s ease-in-out;
          border-top: var(--global-border-width) solid var(--menu-bg-stroke);
          padding: var(--menu-pad-y-lg) var(--menu-pad-x-lg);

          .mobile-menu-drilldown {
            height: 100%;
            width: 100%;
          }

          button {
            background: none;
            outline: none;
            border: none;
            width: 100%;
            padding: 0;
            display: flex;
            flex-direction: row;
            align-items: center;
            justify-content: space-between;
          }

          button,
          .menu-heading {
            cursor: pointer;
            font-family: "PP Neue Montreal", sans-serif;
            font-weight: 400;
            line-height: 100%;
            letter-spacing: 0;
            font-size: 16px;
            display: flex;
            flex-direction: row;
            align-items: center;
            justify-content: space-between;
            width: 100%;
          }

          .menu-heading {
            &:hover {
              .menu-arrow {
                animation: arrow-slide 1s infinite linear;
              }
            }
          }

          ul {
            list-style: none;
            margin: 0;
            padding: 0;
            display: flex;
            flex-direction: column;
          }

          .mobile-menu-back {
            font-size: 20px;
            font-weight: 400;
            letter-spacing: 0;
            line-height: 100%;
            border-bottom: var(--global-border-width) solid
              var(--menu-bg-stroke);
            padding-bottom: var(--menu-toggle-gap);
            .menu-arrow {
              rotate: 180deg;
            }
          }

          .mobile-menu-view {
            height: 100%;
            width: 100%;
            .menu {
              flex-direction: column;
              flex-wrap: nowrap;
            }
            &[data-level="0"] {
              ul {
                gap: var(--menu-toggle-gap-lg);

                li {
                  display: flex;
                  flex-direction: row;
                  align-items: center;
                  justify-content: space-between;
                  border-bottom: var(--global-border-width) solid
                    var(--menu-bg-stroke);
                  padding-bottom: var(--menu-toggle-gap);
                  transition: transform 0.3s;
                }
              }
            }
            &[data-level="1"] {
              display: flex;
              flex-direction: column;
              gap: var(--menu-toggle-gap);
              ul {
                display: flex;
                flex-direction: column;
                gap: var(--menu-toggle-gap);
                height: 100%;
                width: 100%;
                justify-content: flex-start;

                .child-link-wrapper,
                li.solo-link {
                  display: flex;
                  flex-direction: column;
                  gap: var(--menu-toggle-gap);
                  border-radius: var(--menu-border-rad);
                  height: 100%;
                  transition: border-color 0.3s, box-shadow 0.3s;
                  width: 100%;

                  &:not(:has(.mega-menu-card)) {
                    padding: var(--menu-toggle-gap);
                    border: var(--global-border-width) solid
                      var(--menu-bg-stroke);
                    flex-grow: 0;
                    max-height: fit-content;
                  }
                }
                li:has(.mega-menu-card) {
                  .mega-menu-card-content {
                    min-height: 190px;
                    flex-grow: 1;
                  }
                }
              }
            }
          }
        }
      }
    }
    .gaia-mobile-header {
      display: flex;
      flex-direction: row;
      align-items: center;
      gap: var(--menu-toggle-gap);
      border-bottom: var(--global-border-width) solid var(--menu-bg-stroke);
      padding-bottom: var(--menu-toggle-gap);
      margin-bottom: var(--menu-toggle-gap);
      .localization-form__select {
        color: var(--menu-link-fill-dark);
        margin: 0;
        gap: 4px;
        max-width: fit-content;
        min-width: fit-content;
        &:before,
        &:after {
          display: none;
        }
        &[aria-expanded="true"] {
          svg {
            transform: rotate(180deg);
            transition: transform 0.3s;
          }
        }
      }
      .disclosure__list-wrapper {
        top: calc(var(--header-height) + 25px);
        width: 100dvw;
        height: fit-content;
        position: fixed;
        left: 0;
        .disclosure__item,
        .disclosure__list-wrapper,
        .disclosure__list {
          width: 100%;
          min-width: 100%;
          max-width: 100%;
        }
      }
      .menu-icon-link {
        height: 24px;
        width: 24px;
        display: flex;
        align-items: center;
        justify-content: center;
        svg {
          height: 24px;
          width: 24px;
        }
      }
    }

    gaia-predictive-search {
      display: contents;

      .search-modal__form {
        position: fixed;
        z-index: 1;
        top: calc(var(--header-height) + 19px);
        left: 50px;
        width: calc(100% - 100px);
        max-width: calc(100% - 100px);
        height: fit-content;
        padding: 0 var(--menu-pad-x) var(--menu-pad-y-sm) var(--menu-pad-x);
        background-color: var(--menu-bg-fill-light);
        display: flex;
        justify-content: center;
        align-items: center;
        border-radius: 0 0 45px 45px;
        gap: var(--menu-link-gap);

        @media screen and (max-width: 1232px) {
          position: relative;
          top: unset;
          left: unset;
          padding: 0;
        }

        .field {
          flex: 1;
          border: 1px solid rgba(0, 0, 0, 0.1);
          border-radius: 100px;
          &:after,
          &:before {
            display: none;
          }
          .field__input:focus {
            padding: 1.5rem;
          }
        }

        .menu-arrow {
          position: absolute;
          right: 8px;
          top: 50%;
          transform: translateY(-50%);
          z-index: 2;
          border: none;
        }

        input {
          box-shadow: none;
          &::placeholder {
            display: block !important;
            opacity: 1 !important;
            color: var(--menu-link-fill-dark) !important;
          }
        }

        .close__button {
          background: none;
          outline: none;
          border: none;
          padding: 0;
          cursor: pointer;
          color: var(--menu-icon-fill-dark-default);
          transition: background-color 0.3s, color 0.3s;
          border-radius: 100%;
          height: 32px;
          width: 32px;
          display: flex;
          align-items: center;
          justify-content: center;
          @media screen and (max-width: 1232px) {
            display: none;
          }
          svg {
            height: 32px;
            width: 32px;
          }
          &:hover {
            background-color: var(--menu-icon-fill-dark-default);
            color: var(--menu-link-fill-light);
          }
        }

        .search__button {
          appearance: none;
          height: 32px;
          width: 32px;
          svg {
            height: 32px;
            width: 32px;
          }
          background-color: transparent;
          border: none;
          cursor: pointer;
          border-radius: 100%;
          transition: background-color 0.3s, color 0.3s;
          display: flex;
          align-items: center;
          justify-content: center;
          @media screen and (max-width: 1232px) {
            display: none;
          }
          &:hover {
            background-color: var(--menu-icon-fill-dark-default);
            color: var(--menu-link-fill-light);
          }
        }
      }
    }
  }

  /* Snug text properties as CSS custom properties */
  :root {
    --snug-text-cap-height: 0.7em;
    --snug-text-top: calc(0.4em - 0.5lh);
    --snug-text-bottom: calc(0.3em - 0.5lh);
    --snug-text-gap: calc(2lh - (2em - var(--snug-text-cap-height)));
  }

  /* Snug text utility class */
  .snug-text {
    margin-top: var(--snug-text-top);
    margin-bottom: var(--snug-text-bottom);
    min-height: 0;
    height: min-content;
  }
}

@keyframes arrow-slide {
  0% {
    transform: translateX(0);
  }
  50% {
    transform: translateX(4px);
  }
  100% {
    transform: translateX(0);
  }
}

body.overflow-hidden {
  position: relative;
  &::after {
    position: absolute;
    content: "";
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: black;
    opacity: 0.3;
    z-index: 3;
  }
}
