.link {
    position: relative;
    margin: 0 16px;
    color: var(--bh-black-02);
    font-size: 16px;
    display: inline-block;
    padding-bottom: 6px;
    cursor: pointer;
    
    &:hover {
        color: var(--bh-black-01);
        text-decoration: none;
    }
    
    &.disabled {
        cursor: none;
        pointer-events: none;
        color: grey;
    }
}

.link::before {
    content: "";
    position: absolute;
    width: 100%;
    height: 4px;
    bottom: 0;
    left: 0;
    background-color: var(--bh-black-06);
    visibility: hidden;
    transform: scaleX(0);
    transition: all 0.3s ease-in-out 0s;
}

.link:hover::before {
    visibility: visible;
    transform: scaleX(1);
}

.active-link {
    color: var(--bh-black-01);

    &::before {
        content: "";
        position: absolute;
        width: 100%;
        height: 4px;
        bottom: 0;
        left: 0;
        background-color: var(--bh-accent-04);
        visibility: visible;
        transform: scaleX(1);
        transition: all 0.3s ease-in-out 0s;
    }
}

.bh-link, a {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    text-decoration: unset;

    &.bh-link-blue {
        color: var(--bh-accent-02);

        &:hover, &:active {
            color: var(--bh-accent-01);
        }

        &:focus {
            box-shadow: 0px 0px 0px 3px var(--bh-white);
        }
    }

    &.bh-link-white {
        color: var(--bh-white);

        &:hover, &:active {
            color: var(--bh-black-09);
        }

        &:focus {
            box-shadow: 0px 0px 0px 3px var(--bh-core-02);
        }
    }

    &:hover, &:active {
        cursor: pointer;
    }

    &:focus {
        display: inline-flex;
        border-radius: 2px;
        border: 2px solid var(--bh-accent-03);
        box-shadow: 0px 0px 0px 3px var(--bh-white);
    }

    &.disabled {
        color: var(--bh-black-05);
        cursor: not-allowed;
        pointer-events: none;
    }
}

.bh-link-text {
    &:hover, &:active {
        text-decoration: underline;
    }
}
