/* =========================================================
   BUTTONS — кнопки, группы, loading
   ========================================================= */

.ui-kit-btn {
    display: inline-flex; align-items: center; justify-content: center;
    gap: var(--ui-kit-space-sm); width: 100%; padding: 12px 18px;
    border-radius: var(--ui-kit-radius-md); font-family: inherit;
    font-size: var(--ui-kit-fs-md); font-weight: var(--ui-kit-fw-semibold);
    line-height: 1; box-sizing: border-box; cursor: pointer;
    border: 1px solid transparent; text-decoration: none;
    transition: background var(--ui-kit-trans-fast), color var(--ui-kit-trans-fast),
                box-shadow var(--ui-kit-trans-fast), border-color var(--ui-kit-trans-fast);
}
.ui-kit-btn--inline { width: auto; }
.ui-kit-btn--sm { padding: 8px 14px; font-size: var(--ui-kit-fs-sm); border-radius: var(--ui-kit-radius-sm); }
.ui-kit-btn--lg { padding: 14px 22px; font-size: var(--ui-kit-fs-lg); }
.ui-kit-btn--primary { background: var(--ui-kit-blue); color: var(--ui-kit-white); box-shadow: var(--ui-kit-shadow-cta); }
.ui-kit-btn--primary:hover { background: var(--ui-kit-blue-hover); box-shadow: var(--ui-kit-shadow-cta-hover); }
.ui-kit-btn--secondary { background: var(--ui-kit-accent); color: var(--ui-kit-white); box-shadow: 0 6px 16px -6px rgba(232, 102, 48, 0.55); }
.ui-kit-btn--secondary:hover { background: var(--ui-kit-accent-hover); }
.ui-kit-btn--success { background: var(--ui-kit-success); color: var(--ui-kit-white); }
.ui-kit-btn--success:hover { background: #268650; }
.ui-kit-btn--danger { background: var(--ui-kit-danger); color: var(--ui-kit-white); }
.ui-kit-btn--danger:hover { background: #C93A32; }
.ui-kit-btn--ghost { background: transparent; color: var(--ui-kit-navy); border-color: var(--ui-kit-border); }
.ui-kit-btn--ghost:hover { background: var(--ui-kit-bg-soft); border-color: var(--ui-kit-navy); }
.ui-kit-btn--soft { background: var(--ui-kit-blue-tint); color: var(--ui-kit-blue); }
.ui-kit-btn--soft:hover { background: rgba(43, 44, 132, 0.16); }
.ui-kit-btn--link { background: transparent; color: var(--ui-kit-accent); padding: 0; border-radius: 0; box-shadow: none; font-weight: var(--ui-kit-fw-medium); width: auto; }
.ui-kit-btn--link:hover { color: var(--ui-kit-accent-hover); text-decoration: underline; }
.ui-kit-btn--icon { width: 40px; height: 40px; padding: 0; }
.ui-kit-btn--icon.ui-kit-btn--sm { width: 32px; height: 32px; }
.ui-kit-btn--icon.ui-kit-btn--lg { width: 48px; height: 48px; }
.ui-kit-btn__icon { transition: transform var(--ui-kit-trans-fast); }
.ui-kit-btn--primary:hover .ui-kit-btn__icon { transform: translateX(4px); }

.ui-kit-btn.is-loading {
    position: relative;
    color: transparent !important;
    pointer-events: none;
}
.ui-kit-btn.is-loading > * { visibility: hidden; }
.ui-kit-btn.is-loading::after {
    content: ''; position: absolute;
    top: 50%; left: 50%;
    width: 18px; height: 18px;
    margin: -9px 0 0 -9px;
    border: 2.5px solid rgba(255, 255, 255, 0.4);
    border-top-color: var(--ui-kit-white);
    border-radius: 50%;
    animation: ui-kit-spin 0.7s linear infinite;
}
.ui-kit-btn--ghost.is-loading::after,
.ui-kit-btn--soft.is-loading::after,
.ui-kit-btn--link.is-loading::after {
    border-color: var(--ui-kit-blue-tint);
    border-top-color: var(--ui-kit-blue);
}

.ui-kit-btn-group {
    display: inline-flex;
    border-radius: var(--ui-kit-radius-md);
    overflow: hidden;
    box-shadow: var(--ui-kit-shadow-cta);
}
.ui-kit-btn-group .ui-kit-btn {
    width: auto;
    border-radius: 0;
    box-shadow: none;
    border-right: 1px solid rgba(255, 255, 255, 0.25);
}
.ui-kit-btn-group .ui-kit-btn:first-child { border-radius: var(--ui-kit-radius-md) 0 0 var(--ui-kit-radius-md); }
.ui-kit-btn-group .ui-kit-btn:last-child { border-radius: 0 var(--ui-kit-radius-md) var(--ui-kit-radius-md) 0; border-right: none; }

.ui-kit-btn-group--ghost {
    box-shadow: none;
    border: 1px solid var(--ui-kit-border);
    border-radius: var(--ui-kit-radius-md);
}
.ui-kit-btn-group--ghost .ui-kit-btn {
    background: transparent; color: var(--ui-kit-navy);
    border-right: 1px solid var(--ui-kit-border);
}
.ui-kit-btn-group--ghost .ui-kit-btn:hover { background: var(--ui-kit-bg-soft); }

@keyframes ui-kit-cta-pulse {
    0%   { box-shadow: var(--ui-kit-shadow-cta), 0 0 0 0 rgba(43, 44, 132, 0.45); }
    70%  { box-shadow: var(--ui-kit-shadow-cta), 0 0 0 14px rgba(43, 44, 132, 0); }
    100% { box-shadow: var(--ui-kit-shadow-cta), 0 0 0 0 rgba(43, 44, 132, 0); }
}
.ui-kit-btn--primary.is-pulsing { animation: ui-kit-cta-pulse 1.8s ease-out infinite; }
.ui-kit-btn--primary.is-pulsing:hover { animation-play-state: paused; }