﻿/* ========================================
   3. Кнопки (и ссылки-кнопки)
   Перекрывают Bootstrap 5 — без синего #0d6efd и без голубого glow.
======================================== */

.btn,
.btn-primary,
.btn-outline-primary,
.btn-outline-secondary,
.btn-secondary,
.btn-light {
    --bs-btn-focus-box-shadow: none;
    --bs-btn-focus-shadow-rgb: var(--primary-dark-rgb);
}

.btn {
    font-family: var(--font-body);
    font-weight: var(--font-weight-card);
    padding: var(--btn-padding-y) var(--btn-padding-x);
    border-radius: var(--btn-radius);
    border: none;
    transition: var(--transition);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-transform: none;
    letter-spacing: var(--btn-letter-spacing);
    font-size: var(--text-sm);
}

/* Мышь / active: без обводки и без box-shadow Bootstrap */
.btn:focus:not(:focus-visible),
a.btn:focus:not(:focus-visible) {
    outline: none !important;
    box-shadow: none !important;
}

.btn:active:not(:focus-visible),
a.btn:active:not(:focus-visible) {
    outline: none !important;
}

@media (hover: hover) {
    .btn:hover,
    a.btn:hover {
        outline: none;
    }
}

/* Клавиатура: тёмная обводка бренда, без голубого кольца */
.btn:focus-visible,
a.btn:focus-visible {
    outline: var(--focus-ring-width) solid var(--focus-ring-color) !important;
    outline-offset: var(--focus-ring-offset);
    box-shadow: none !important;
}

.btn-primary {
    --bs-btn-bg: var(--primary-dark);
    --bs-btn-border-color: var(--primary-dark);
    --bs-btn-color: var(--white);
    --bs-btn-hover-bg: var(--primary-dark-hover);
    --bs-btn-hover-border-color: var(--primary-dark-hover);
    --bs-btn-hover-color: var(--white);
    --bs-btn-active-bg: var(--primary-dark-hover);
    --bs-btn-active-border-color: var(--primary-dark-hover);
    --bs-btn-active-color: var(--white);
    background: var(--primary-dark);
    color: var(--white);
    box-shadow: var(--shadow-sm);
}

@media (hover: hover) {
    .btn-primary:hover {
        transform: translateY(-2px);
        box-shadow: var(--shadow-md);
        background: var(--primary-dark-hover);
        border-color: var(--primary-dark-hover);
        color: var(--white);
    }
}

.btn-outline-primary {
    --bs-btn-color: var(--primary-dark);
    --bs-btn-border-color: var(--primary-dark);
    --bs-btn-bg: transparent;
    --bs-btn-hover-bg: var(--primary-dark);
    --bs-btn-hover-border-color: var(--primary-dark);
    --bs-btn-hover-color: var(--white);
    --bs-btn-active-bg: var(--primary-dark-hover);
    --bs-btn-active-border-color: var(--primary-dark-hover);
    --bs-btn-active-color: var(--white);
    background: transparent;
    border: var(--btn-outline-border-width) solid var(--primary-dark);
    color: var(--primary-dark);
}

.btn-outline-primary:focus:not(:focus-visible),
.btn-outline-primary:active:not(:focus-visible) {
    border: var(--btn-outline-border-width) solid var(--primary-dark);
    color: var(--primary-dark);
    background: transparent;
}

@media (hover: hover) {
    .btn-outline-primary:hover {
        background: var(--primary-dark);
        border-color: var(--primary-dark);
        color: var(--white);
        transform: translateY(-2px);
        box-shadow: var(--shadow-sm);
    }
}

.btn-outline-primary:focus-visible {
    border-color: var(--primary-dark) !important;
    color: var(--primary-dark);
    background: transparent;
}

.btn-outline-secondary {
    --bs-btn-color: var(--gray);
    --bs-btn-border-color: var(--neutral-warm);
    --bs-btn-hover-bg: var(--light);
    --bs-btn-hover-border-color: var(--gray);
    --bs-btn-hover-color: var(--dark);
}

.btn-light {
    background-color: var(--white);
    color: var(--dark);
    box-shadow: var(--shadow-sm);
}

@media (hover: hover) {
    .btn-light:hover {
        transform: translateY(-2px);
        box-shadow: var(--shadow-md);
    }
}

@media (prefers-contrast: more) {
    .btn-outline-primary {
        border-width: 2px;
        border-color: var(--primary-dark);
        color: var(--primary-dark);
    }

    .btn-outline-primary:hover,
    .btn-outline-primary:focus-visible {
        background-color: var(--primary-dark);
        border-color: var(--primary-dark);
        color: var(--white);
    }
}

/* form-utility: компактные кнопки в фильтрах каталога (rooms.php) */
.form-utility .btn-primary {
    border-radius: var(--input-radius);
    font-weight: var(--font-weight-card);
    padding: var(--btn-padding-compact-y) var(--btn-padding-compact-x);
}

.form-utility .btn-outline-secondary {
    border-radius: var(--input-radius);
    border: var(--input-border);
    padding: var(--btn-padding-compact-y) var(--btn-padding-compact-x);
}

@media (hover: hover) {
    .form-utility .btn-outline-secondary:hover {
        border-color: var(--primary-light);
        color: var(--primary-dark);
        background: var(--light);
    }
}
