/* 04.04 Button CSS */

.btn {
    font-size: 14px;
    font-weight: 700;
    line-height: 50px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    height: 52px;
    padding: 0 40px;

    cursor: pointer;
    white-space: nowrap;

    border-width: 1px;
    border-style: solid;
    border-color: transparent;
    border-radius: 5px;
    outline: none;

    &:focus {
        box-shadow: none !important;
    }

    &-icon {
        width: 56px;
        padding: 15px;
    }

    &.disabled {
        opacity: 0.65;
    }
}

/* Button Sizes */
.btn-sm {
    font-size: 12px;

    padding: 5px 20px;
}

.btn-xs{
    height: 32px;
    line-height: 30px;
    padding: 0 20px;
}

.btn-md {
    font-size: 14px;

    padding: 10px 30px;
}

.btn-lg {
    font-size: 18px;

    padding: 20px 50px;
}

.btn-xl {
    font-size: 20px;

    padding: 25px 60px;
}

.btn-width-100{
    width: 100%;
}
.btn-width-260{
    width: 260px;
}
.btn-width-300{
    width: 300px;
}
.btn-width-180{
    width: 180px;
}
.btn-height-60{
    height: 60px;
    line-height: 58px;
}

/* Button Color & Style (Solid & Outline) */
@each $name,
$value in $templateColors {
    .btn-#{$name} {
        border-color: $value;
        background-color: $value;

        @if $name==warning or $name==light or $name==off-white {
            color: $heading-color;
        }

        @else {
            color: $white;
        }

        &:hover,
        &:focus {
            border-color: transparent;
            background-color: darken($value, 7.5%);

            @if $name==warning or $name==light {
                color: $heading-color;
            }

            @else {
                color: $white;
            }
        }
    }

    .btn-outline-#{$name} {
        color: $value;
        border-color: $value;
        background-color: transparent;

        &:hover {
            border-color: transparent;
            background-color: $value;

            @if $name==warning or $name==light {
                color: $heading-color;
            }

            @else {
                color: $white;
            }
        }
    }
}

/* Button Hover Color & Style (Solid & Outline) */
@each $name,
$value in $templateColors {
    .btn-hover-#{$name} {
        &:hover,
        &:not(:disabled):not(.disabled).active {
            border-color: transparent;
            background-color: $value;

            @if $name==warning or $name==light {
                color: $heading-color;
            }

            @else {
                color: $white;
            }
        }
    }

    .btn-outline-hover-#{$name} {
        &:hover,
        &:not(:disabled):not(.disabled).active {
            color: $value;
            border-color: transparent;
            background-color: transparent;
        }
    }
}

.load-more-btn {
    min-width: 250px;

    border-color: #EEEEEE;
}

.learn-more-btn{
    border: 2px solid #eee;
}


.link {
    font-weight: 500;
    line-height: 1.67em;

    color: $secondary-light;

    &-lg {
        font-size: 18px;
    }
    &.primary-three{
        mark{
            color: $primary-three;
            &::after{
                background-color: $primary-three;
            }
        }
    }
    &.link-color{
        mark{
            color: $primary-two;
            &::after{
                background-color: $primary-two;
            }
        }
    }

    & mark {
        font-weight: 700;
        line-height: 1;

        position: relative;

        padding: 3px 0;

        color: $primary;
        background-color: transparent;

        &::before,
        &::after {
            position: absolute;
            bottom: 0;
            left: 0;

            width: 100%;
            height: 1px;

            content: "";
            transition: transform 0.6s cubic-bezier(0.165, 0.84, 0.44, 1) 0.3s;
            transform: scaleX(1) translateZ(0);
            transform-origin: right;

            background: #E0E0E0;
        }

        &::after {
            transition: transform 0.6s cubic-bezier(0.165, 0.84, 0.44, 1);
            transform: scaleX(0) translateZ(0);
            transform-origin: left;

            background-color: $primary;
        }
    }

    &:hover {
        color: $secondary-light;

        & mark {
            &::before {
                transition: transform 0.6s cubic-bezier(0.165, 0.84, 0.44, 1);
                transform: scaleX(0) translateZ(0);
            }

            &::after {
                transition: transform 0.6s cubic-bezier(0.165, 0.84, 0.44, 1) 0.3s;
                transform: scaleX(1) translateZ(0);
            }
        }
    }
}