.cbp-menu {
  position: relative;
  display: inline-block;
  max-width: 100%;

  // The Control uses and inherits from button classes to reduce duplication
  .cbp-menu__control {
    min-width: var(--cbp-space-6x);
    min-height: var(--cbp-space-6x);
    padding: 0;
    

  }

  /* The actual menu, positioned for mobile-first */
  .cbp-menu__menu {
    position: fixed;
    display: block;
    bottom: 0;
    left: 0;
    width: 90%;
    max-width: 100%;
    margin: 0 5% var(--cbp-space-6x);
    padding: 0;
    border-radius: var(--cbp-border-radius-softer);
    box-shadow: var(--cbp-shadow-level-1-down);
    list-style-type: none;
    z-index: var(--cbp-z-index-level-0); // TechDebt: revisit - this likely needs to be higher as it should overlay anything on the content-level including sticky items
  }

  /* Toggle the visibility of the menu based on the control's aria-expanded value */
  .cbp-menu__control:not([aria-expanded]) + .cbp-menu__menu,
  .cbp-menu__control[aria-expanded=false] + .cbp-menu__menu {
    display: none;
  }

  /* Menu Items */
  .cbp-menu__item {
    padding: 0;
    margin-bottom: 0;
    width: 100%;
    //max-width: 100%;
    height: var(--cbp-space-9x);
    background-color: var(--cbp-color-base-neutral-darker);

    &:first-child {
      border-top-left-radius: var(--cbp-border-radius-softer);
      border-top-right-radius: var(--cbp-border-radius-softer);

      a {
        border-top-left-radius: inherit;
        border-top-right-radius: inherit;
      }
    }

    &:last-child {
      border-radius: 0 0 var(--cbp-border-radius-softer) var(--cbp-border-radius-softer);
      
      a, button {
        border-bottom-left-radius: inherit;
        border-bottom-right-radius: inherit;
      }
    }

  }

  .cbp-menu__item > a,
  .cbp-menu__item > button {
    display: flex;
    align-items: center;
    width: 100%;
    height: 100%;
    padding: 0 var(--cbp-space-3x);
    font-weight: var(--cbp-font-weight-regular);
    line-height: var(--cbp-space-5x);
    color: var(--cbp-color-text-lightest);
    text-decoration: none;
    background-color: var(--cbp-color-background-dark);
    border: 0;

    &:hover {
      color: var(--cbp-color-text-darkest);
      background-color: var(--cbp-color-gray-warm-30);
    }

    &:focus {
      color: var(--cbp-color-text-darkest);
      background-color: var(--cbp-color-interactive-focus-light);
      box-shadow: inset 0 0 0 var(--cbp-border-size-md) var(--cbp-color-white);
      outline: 0;
    }

    // Icon in Menu Item
    i {
      margin-right: var(--cbp-space-2x);
    }

    /* Menu Close Button */
    &.cbp-menu__close-btn {
      width: 100%;
      justify-content: center;
      font-weight: var(--cbp-font-weight-bold);
      text-transform: uppercase;
      color: var(--cbp-color-text-lightest);
      letter-spacing: var(--cbp-letter-spacing-loose);
      background-color: var(--cbp-color-interactive-primary-base);
      border: 0;
      cursor: pointer;

      i {
        margin-right: var(--cbp-space-2x);
      }

      &:hover {
        background-color: var(--cbp-color-interactive-primary-dark);
      }

      &:focus {
        background-color: var(--cbp-color-interactive-focus-dark);
      }
    }
  }
  
  .cbp-menu__item--danger {
    border-top: var(--cbp-border-size-md) solid var(--cbp-color-gray-cool-50);

    & > button {
      color: var(--cbp-color-danger-light);

      &:hover {
        color: var(--cbp-color-white);
        background-color: var(-cbp-color-danger-base);
      }
    }
  }


  /* Menu Positioning for the larger breakpoints */
  @media (min-width: 37.5em) {
    .cbp-menu__menu {
      position: absolute;
      width: max-content;
      max-width: max-content;
      bottom: unset;
      margin: 0;
    }

    .cbp-menu--top-start {
      top: 0;
      left: 0;
      transform: translate(0, -100%);
    }

    .cbp-menu--top-end {
      top: 0;
      left: 100%;
      transform: translate(-100%, -100%);
    }

    .cbp-menu--bottom-start {
      top: 100%;
      left: 0;
    }

    .cbp-menu--bottom-end {
      top: 100%;
      left: 100%;
      transform: translate(-100%, 0);
    }
  }
}