/*
P.S: if you like my content maybe you will become a donator and donate some money? That helps me to create new awesome materials. https://www.paypal.me/melnik909
*/

/*
=====
LEVEL 1. RESET STYLES
=====
*/

button{
  border: none;
  background-color: transparent;
  padding: 0;
  font-family: inherit;
}

.button{
  cursor: pointer;
  color: white; /* var(--colorWhite); */
}

a{
  display:inline-block;
  text-decoration: none;
}

.link{
  color: inherit;
}

.list{
  padding-left: 0;
  margin-top: 0;
  margin-bottom: 0;
  list-style: none;
}

/*
=====
LEVEL 2. MENU STYLES
=====
*/

/* menu */

.header{
  box-sizing: border-box;
  width: 100%;
  color: white; /* var(--colorWhite); */

  display: flex;
  justify-content: center;

  position: fixed;
  bottom: 0;
  left: 0;
  z-index: 9998;
}

.menu{
  box-sizing: border-box;
  width: 100%;
  padding-bottom: 55px;

  height: 0;
  transform: translate3d(0, -100%, 0);
  opacity: 0;

  display: flex;
  align-items: flex-end;

  position: fixed;
  top: 0;
  left: 0;
}

.menu__list{
  box-sizing: border-box;
  width: 100%;
  max-height: 100%;
  display: none;

  padding-top: 30px;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.menu__group{
  padding: .5rem 2rem; 
  font-size: 1.2rem;
  font-weight: 700;
  /* text-transform: uppercase; */
  font-family: "Helvetica Neue, Helvetica, Arial, sans-serif";
}

.menu__group_active{
  background-color: white; /* var(--colorWhite); */
  color: black; /* var(--colorBlack); */
}

.menu__item{
  padding: 8px 25px;
  display: block;
}

/* hamburger */

.hamburger{
  position: relative;
  line-height: 1;
  padding-bottom: .5em;
}

.hamburger:before{
  content :"";
  width: 100px;
  height: 100px;
  background-color: grey; /* var(--colorMain); */
  opacity: 0.9;
  border-radius: 50%;

  position: absolute;
  bottom: -55px;
  left: -35px;
}

.hamburger__button{
  width: 1.4em;
  height: 1em;
  font-size: 20px;

  position: relative;
  text-indent: -9999px;
  z-index: 2;
}

.hamburger__button:before, .hamburger__button:after, .hamburger__label{
  width: 100%;
  height: 20%;
  border-radius: 5px;
  background-color: currentColor;

  position: absolute;
  left: 0;
}

.hamburger__button:before, .hamburger__button:after{
  content:"";
}

.hamburger__button:before{
  top: 0;
}

.hamburger__button:after{
  bottom: 0;
}

.hamburger__button:focus{
  outline: none;
}

.hamburger__label{
  margin-top: -.1em;
  top: 50%;
}

/* activated state */

.js-menu_activated{
  overflow: hidden;
}

.js-menu_activated .menu{
  height: 100%;
  transform: translate3d(0, 0, 0);
  opacity: 1;
}

.js-menu_activated .hamburger:before{
  width: 100vh;
  height: 100vh;
  transform: translate3d(-50vh, -50vh, 0) scale(5);
}

.js-menu_activated .menu__list{
  display: block;
}

.js-menu_activated .hamburger__button:before{
  transform: translate3d(0, -50%, 0) rotate(45deg);
  top: 50%;
}

.js-menu_activated .hamburger__button:after{
  transform: translate3d(0, -50%, 0) rotate(135deg);
  top: 50%;
}

.js-menu_activated .hamburger__label{
  transform: rotate(-45deg) translate3d(-5.71429px,-6px,0);
  opacity: 0;
}

/*
=====
LEVEL 3. MOBILE ANIMATION STYLES
=====
*/

.menu{
  transition: opacity .2s ease-out;
}

.js-menu_activated .menu{
  /* will-change: opacity; */
  transition-duration: .2s;
  transition-delay: .3s;
}

.hamburger:before{
  /* will-change: width, height; */
  transition: transform .3s cubic-bezier(0.04, -0.1, 0.29, 0.98),
    width .3s cubic-bezier(0.04, -0.1, 0.29, 0.98),
    height .3s cubic-bezier(0.04, -0.1, 0.29, 0.98);
}

.js-menu_activated .hamburger:before{
  transition-duration: 1s;
}

.hamburger__button:before, .hamburger__button:after{
  transition-property: transform;
}

.hamburger__button:before, .hamburger__button:after, .hamburger__label{
  transition-timing-function: ease;
  transition-duration: .15s;
}

.hamburger__label{
  transition-property: transform, opacity;
}
