.fab__button {
    border: none;
    cursor: pointer;
    -webkit-tap-highlight-color: rgba(0,0,0,0);
}

.fab {
    display: flex;
    flex-direction: column-reverse;
    align-items: center;
    position: fixed;
    right: 2rem;
    bottom: 2rem;
    font-size: 12px !important;
}
.fab__button {
    width: 3rem;
    height: 3rem;
    border-radius: 50%;
    will-change: transform;
}
.fab__button--primary {
    width: 4rem;
    height: 4rem;
    margin-top: .5rem;
    background-image: linear-gradient(135deg, #0068e0 0%, #285f8d 60%, #3d92d9 100%);
    background-size: 12rem 12rem;
    background-position: -3rem -3rem;
    position: relative;
    color: white;
    display: flex;
    transition: background-position .4s, transform .16s;
    justify-content: center;
    align-items: center;
}
.fab__button--primary:active {
    transform: scale(.85);
    outline: none;
    border: none;
}
.fab__button--primary:before {
    display: block;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    box-shadow: 0 0 2rem 1rem rgba(66, 162, 252, 0.3);
    opacity: 0;
    transition: opacity .4s;
    will-change: opacity;
}
.fab__button--primary:hover {
    background-position: -4rem -5rem;
}
.fab__button--primary:hover:before {
    opacity: 1;
}

.fab__button--secondary {
    display: inline-block;
    background-color: #FFFFFF;
    margin: .5rem 0;
    box-shadow: 0 0 2rem rgb(168, 199, 229);
    position: relative;
    color: #275f8f;
    opacity: 0;
    pointer-events: none;
    transform: translateY(25%);
    transition: opacity .24s, transform .4s cubic-bezier(0.23, 1, 0.32, 1);
}
.fab__button--secondary:nth-child(3) {
    transition-delay: .06s;
}
.fab__button--secondary:nth-child(4) {
    transition-delay: .12s;
}
.fab__button--secondary svg {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}
.fab__button--secondary:before {
    content: attr(data-label);
    display: inline-block;
    position: absolute;
    padding: .5rem 1rem;
    border-radius: .5rem;
    top: 50%;
    left: -1rem;
    transform: translateX(-100%) translateY(-25%) rotateX(-25deg);
    background-color: #FFFFFF;
    box-shadow: 0 0 2rem rgb(168, 199, 229);
    font-weight: 600;
    font-family: 'Open Sans', sans-serif;
    color: #5c6167;
    pointer-events: none;
    opacity: 0;
    transition: transform .33s, opacity .33s;
}
.fab__button--secondary:hover:before {
    opacity: 1;
    transform: translateX(-100%) translateY(-50%);
}
.fab.is-expanded .fab__button--primary {
    transform: scale(.9);
}
.fab.is-expanded .fab__button--primary:active {
    transform: scale(.85);
}
.fab.is-expanded .fab__button--primary__icon {
    transform: rotate(-225deg);
}
.fab.is-expanded .fab__button--secondary {
    opacity: 1;
    pointer-events: auto;
    transform: none;
}