.button-block {
    width: 100%;
    padding-top: var(--button-block-padding-y, 12px);
    padding-bottom: var(--button-block-padding-y, 12px);
}

.button-block__row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--button-block-gap, 12px);
}

.button-block__row--left {
    justify-content: flex-start;
}

.button-block__row--center {
    justify-content: center;
}

.button-block__row--right {
    justify-content: flex-end;
}

.button-block__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    white-space: nowrap;
    min-height: 40px;
    padding: 0.5rem 1rem;
    font-weight: 600;
    transition: transform 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease;
}

.button-block__btn.button-block-btn--custom,
.button-block__btn[data-button-style="custom"][data-button-bg-color],
.button-block__btn[data-button-style="custom"][data-button-text-color] {
    --bs-btn-bg: var(--button-block-custom-bg, #212529);
    --bs-btn-border-color: var(--button-block-custom-bg, #212529);
    --bs-btn-color: var(--button-block-custom-text, #ffffff);
    --bs-btn-hover-bg: var(--button-block-custom-bg, #212529);
    --bs-btn-hover-border-color: var(--button-block-custom-bg, #212529);
    --bs-btn-hover-color: var(--button-block-custom-text, #ffffff);
    --bs-btn-active-bg: var(--button-block-custom-bg, #212529);
    --bs-btn-active-border-color: var(--button-block-custom-bg, #212529);
    --bs-btn-active-color: var(--button-block-custom-text, #ffffff);
    background-color: var(--button-block-custom-bg, #212529) !important;
    border-color: var(--button-block-custom-bg, #212529) !important;
    color: var(--button-block-custom-text, #ffffff) !important;
}

.button-block__btn.button-block-btn--custom:hover,
.button-block__btn.button-block-btn--custom:focus,
.button-block__btn[data-button-style="custom"][data-button-bg-color]:hover,
.button-block__btn[data-button-style="custom"][data-button-bg-color]:focus,
.button-block__btn[data-button-style="custom"][data-button-text-color]:hover,
.button-block__btn[data-button-style="custom"][data-button-text-color]:focus {
    background-color: var(--button-block-custom-hover-bg, var(--button-block-custom-bg, #212529)) !important;
    border-color: var(--button-block-custom-hover-border, var(--button-block-custom-border, var(--button-block-custom-bg, #212529))) !important;
    color: var(--button-block-custom-text, #ffffff) !important;
    opacity: 0.92;
}

.button-block__btn.hover-lift:hover {
    transform: translateY(-2px);
}

.button-block__btn.hover-glow:hover {
    box-shadow: 0 0 0.75rem rgba(0, 0, 0, 0.25);
}

.button-block__btn.hover-scale:hover {
    transform: scale(1.04);
}

.button-block__placeholder {
    font-size: 0.9rem;
    padding: 0.75rem 0;
}

@media (max-width: 575.98px) {
    .button-block__row {
        justify-content: center;
    }

    .button-block__btn {
        flex: 1 1 auto;
        min-width: calc(50% - var(--button-block-gap, 12px));
    }
}
