:host {
  display: block;
}

  :host * {
    box-sizing: border-box;
  }

.menu {
  width: 100%;
}

.menu--mobile.menu--root {
    position: relative;
  }

.menu--mobile.menu--root .menu__menu {
      top: 3.5rem;
      transition: left 0.2s;
    }

.menu--mobile.menu--active .menu__menu {
      display: block;
    }

.menu--mobile .menu__menu {
    position: absolute;
    top: 0;
    left: 0;
    display: none;
    width: 100%;
  }

:not(.menu--mobile).menu--root {
    position: relative;
  }

:not(.menu--mobile).menu--root .menu__menu {
      position: relative;
      padding-top: 0;
      padding-bottom: 0;
    }

:not(.menu--mobile):not(.menu--root) .menu__menu {
      z-index: 1;
      max-width: 22.5rem;
      border-radius: var(--s-border-radius-base);
      box-shadow: var(--s-shadow-level-1);
      padding: var(--s-space-4);
      outline: var(--s-border-width-default) solid var(--s-border-translucent-outline);
    }

:not(.menu--mobile):not(.menu--root) .menu__menu:before {
        content: "";
        position: absolute;
        inset: 0;
        z-index: -1;
        border-radius: inherit;
        background: var(--s-translucent-low-default);
        -webkit-backdrop-filter: blur(var(--s-blur-l));
                backdrop-filter: blur(var(--s-blur-l));
      }

:not(.menu--mobile).menu--active .menu__menu {
      display: block;
    }

:not(.menu--mobile) .menu__menu {
    position: fixed;
    display: none;
  }

.menu__mobile-header {
  display: flex;
  height: 3.5rem;
  padding-right: var(--s-space-16);
  padding-left: var(--s-space-16);
  justify-content: space-between;
  align-items: center;
  border-bottom: var(--s-border-width-default) solid var(--s-border-default);
  gap: var(--s-space-8);
}

.menu__mobile-header > * {
    display: inline-flex;
    flex-shrink: 0;
  }

.menu__title {
  min-width: 0;
  flex-grow: 1;
  flex-shrink: 1;
}

.menu__title swirl-heading {
    min-width: 0;
  }

.menu__done-button {
  margin-right: calc(-1 * var(--s-space-8));
}
