.fab {
  display: none;
}

@media (max-width: 767px) { 
  .fab {
    display: flex;
    position: fixed;
    border-radius: 50%;
    margin: auto;
    transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);
    z-index: 10;
    height: 56px;
    width: 56px;
    min-width: 56px;
    bottom: 32px; 
    right: 32px; 
    background-color: var(--accent-color);
    color: #fff;
    border: none;
    transform: scale(0.0000001);
    pointer-events: none;
    user-select: none;
    cursor: pointer;
    font-size: 24px;
    line-height: 56px;
    text-align: center;
    font-family: Consolas,Menlo,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New,monospace,sans-serif;
    outline: none;
    align-items: center;
    justify-content: center;
    padding: 0;
    padding-bottom: 4px;
    padding-left: 4px;
  }

  .fab:before {
    background-color: rgba(255, 255, 255, 0.16);
    position: absolute;
    top: calc(50% - 100%);
    left: calc(50% - 100%);
    width: 200%;
    height: 200%;
    -webkit-transition: opacity 250ms linear;
    transition: opacity 250ms linear;
    border-radius: 50%;
    opacity: 0;
    pointer-events: none;
    content: "";
  }

  .fab::after {
    background-color: rgba(255, 255, 255, 0.16);
    position: absolute;
    top: calc(50% - 100%);
    left: calc(50% - 100%);
    width: 200%;
    height: 200%;
    -webkit-transition: opacity 250ms linear;
    transition: opacity 250ms linear;
    border-radius: 50%;
    opacity: 0;
    pointer-events: none;
    content: "";
  }

  .fab:active {
box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);
}

  .fab:focus, fab:active {
    outline: none;
  }

  @keyframes collapse {
    0% {
      transform: scale(1);
    }
    100% {
      transform: scale(0.0000001);
    }
  }
  @keyframes expand {
    0% {
      transform: scale(0.0000001);
    }
    100% {
      transform: scale(1);
    }
  }

  .fab.show {
    animation: expand .25s ease-in-out .25s forwards;
    pointer-events: auto;
  }

  .fab.hide {
    animation: collapse .25s ease-in-out forwards;
  }
}
