.btn {
    position: relative;
    display: inline-block;
    font-size: 18px;
    border-radius: 0;
    padding: 12px 20px;
    line-height: 1.2;
    border: 2px solid;
    transition: all .4s;
    border-color: var(--accent-yellow);
    background-color: var(--accent-yellow);
    color: var(--primary-black);
}

.btn:focus {
    outline: 1px solid;
}

.btn.btn-outline {
    background-color: #0000;
    border-color: var(--primary-white);
    color: var(--primary-white);
}

.btn.btn-transparent {
    padding: 0;
    padding-bottom: 8px;
    background-color: #0000;
    border: none;
    border-bottom: 1px solid #0000;
}

.btn.icon-btn {
    display: inline-block;
    width: fit-content;
    border: none !important;
    padding: 8px;
    position: relative;
    left: -8px;
}

.btn.icon-btn:focus {
    outline-color: white;
}

.icon-btn::after {
    content: "";
    position: absolute;
    top: 100%;
    left: -10px;
    margin-top: 1px;
    width: 0;
    height: 1px;
    background-color: var(--primary-white);
    transition: left .4s, width .4s;
    transition-delay: .3s, 0;
}

.icon-btn:hover::after {
    width: 100%;
    left: 0;
}

.btn:hover {
    background-color: var(--secondary-blue);
}

.btn:visited {
    background: linear-gradient(0deg, rgb(0 0 0 / 10%) 0%, rgb(0 0 0 / 13%) 100%), var(--primary-white);
}

.btn:focus {
    border-color: var(--secondary-blue);
}

.btn.btn-outline:hover {
    background-color: var(--primary-white);
    color: var(--primary-black);
}

.btn.btn-outline:visited {
    background-color: var(--secondary-cool-gray);
}

.btn.btn-transparent:hover {
    background-color: #0000;
    border-color: #fff;
}

.btn>* {
    display: inline-block;
    width: fit-content;
    vertical-align: middle;
    line-height: 0 !important;
}

.btn .icon+.label {
    padding-left: 8px;
}

.btn .spinner-border {
    width: 18px;
    height: 18px;
    border-width: 2px;
}

.btn .spinner-border+span {
    padding-left: 4px;
}

/* Secondary button style begin */
.btn.btn-secondary {
    border-color: var(--primary-blue);
    background-color: var(--primary-blue);
    color: var(--primary-white);
}

.btn.btn-secondary.btn-outline {
    color: var(--primary-blue);
    background-color: #0000;
}

.btn.btn-secondary.btn-transparent {
    color: var(--primary-blue);
}

.btn.btn-secondary:hover {
    border-color: var(--accent-yellow);
    background-color: var(--accent-yellow);
    color: var(--primary-blue);
}

.btn.btn-secondary.btn-outline:hover {
    background-color: var(--primary-blue);
    border-color: var(--primary-blue);
    color: var(--primary-white);
}

.btn.btn-secondary.btn-transparent:hover {
    background-color: #0000;
}

/* Secondary button style end */

/* Underline button style begin */
.btn.btn-underline {
    width: fit-content;
}

.btn.btn-underline::after {
    content: "";
    position: absolute;
    width: 100%;
    height: 1px;
    bottom: 10px;
    left: 0;
    background-color: var(--primary-blue);
}

.btn.btn-underline:hover::after {
    animation: border-animation .8s;
}

/* Underline button style end */

@media (max-width: 768px) {
    .btn {
        padding: 14px 18px;
    }
}

@media (max-width: 576px) {
    .btn {
        width: 100%;
        line-height: 1.25;
    }

    .btn+.btn {
        margin-top: 24px;
    }

    .btn {
        font-size: 16px;
    }

    .btn.btn.btn-transparent {
        text-align: start;
    }
}

@keyframes border-animation {
    0% {
        width: 0
    }

    20% {
        width: 0
    }

    to {
        width: 100%
    }
}