/**
 * Regiticket — botones primarios (curva única, cereza).
 * Uso: class="btn btn-sm rt-btn-cherry px-3" (o btn-lg / sin sm para altura default).
 */
:root {
    --rt-cherry: #b91830;
    --rt-cherry-light: #d42440;
    --rt-cherry-deep: #7d0f22;
    --rt-btn-radius: 2rem;
    --rt-btn-font-weight: 700;
    --rt-btn-letter-spacing: 0.03em;
}

.btn.rt-btn-cherry,
button.rt-btn-cherry:not(.navbar-toggler),
a.rt-btn-cherry.btn {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--rt-cherry);
    --bs-btn-border-color: transparent;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--rt-cherry-light);
    --bs-btn-hover-border-color: transparent;
    --bs-btn-focus-shadow-rgb: 185, 24, 48;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--rt-cherry-deep);
    --bs-btn-active-border-color: transparent;

    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    border: none !important;
    border-radius: var(--rt-btn-radius) !important;
    color: #fff !important;
    font-weight: var(--rt-btn-font-weight);
    letter-spacing: var(--rt-btn-letter-spacing);
    text-decoration: none !important;
    background: linear-gradient(145deg, var(--rt-cherry-light), var(--rt-cherry-deep)) !important;
    box-shadow: 0 6px 20px rgba(185, 24, 48, 0.38);
    transition: transform 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease;
}

.btn.rt-btn-cherry:hover,
button.rt-btn-cherry.btn:hover,
a.rt-btn-cherry.btn:hover {
    color: #fff !important;
    filter: brightness(1.05);
    transform: translateY(-2px);
    box-shadow: 0 10px 28px rgba(185, 24, 48, 0.48);
}

.btn.rt-btn-cherry:active,
.btn.rt-btn-cherry:focus-visible,
button.rt-btn-cherry.btn:active,
a.rt-btn-cherry.btn:active {
    color: #fff !important;
    transform: translateY(0);
    box-shadow: 0 4px 16px rgba(185, 24, 48, 0.35);
}

.btn.rt-btn-cherry:focus-visible {
    outline: 2px solid rgba(244, 114, 182, 0.55);
    outline-offset: 3px;
}

.btn.rt-btn-cherry:disabled,
.btn.rt-btn-cherry.disabled {
    opacity: 0.55;
    transform: none;
    pointer-events: none;
}

/* Tamaños (Bootstrap + curva fija) */
.btn-sm.rt-btn-cherry {
    padding: 0.4rem 1rem !important;
    font-size: 0.875rem;
    line-height: 1.5;
}

.btn.rt-btn-cherry:not(.btn-sm):not(.btn-lg) {
    padding: 0.55rem 1.25rem !important;
    font-size: 0.9375rem;
}

.btn-lg.rt-btn-cherry {
    padding: 0.65rem 1.5rem !important;
    font-size: 1rem;
    line-height: 1.5;
}

@media (prefers-reduced-motion: reduce) {
    .btn.rt-btn-cherry,
    button.rt-btn-cherry.btn,
    a.rt-btn-cherry.btn {
        transition: none;
    }

    .btn.rt-btn-cherry:hover,
    button.rt-btn-cherry.btn:hover,
    a.rt-btn-cherry.btn:hover {
        transform: none;
    }
}
