/* ═══════════════════════════════════════════════════════════════
   UMU Dual Buttons – Front-end Styles v1.2.0
   Theme: Black · Red #ff0000 · White
   Layout: single connected pill — shrink-wraps to content
═══════════════════════════════════════════════════════════════ */

/* ── Alignment outer wrapper ── */
.udb-align-left   { display: block; text-align: left;   margin: 16px 0; }
.udb-align-center { display: block; text-align: center; margin: 16px 0; }
.udb-align-right  { display: block; text-align: right;  margin: 16px 0; }

/* ── Group: one pill, shrinks to fit its buttons ── */
.udb-group {
    display: inline-flex;      /* shrink-wrap — NOT block/full-width */
    flex-wrap: nowrap;         /* never stack */
    align-items: stretch;
    border-radius: 999px;
    overflow: hidden;
    border: 2px solid #ff0000;
    box-shadow: 0 4px 18px rgba(255, 0, 0, 0.25);
    /* no width / max-width here — let content size it */
}

/* ── Divider line between buttons ── */
.udb-btn + .udb-btn {
    border-left: 2px solid rgba(255, 255, 255, 0.55);
}

/* ── Individual button ── */
.udb-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 13px 30px;
    border-radius: 0;
    border: none;
    font-size: 0.93rem;
    font-weight: 700;
    text-decoration: none !important;
    letter-spacing: 0.4px;
    cursor: pointer;
    position: relative;
    overflow: hidden;
    white-space: nowrap;
    flex: 0 0 auto;            /* do NOT stretch to fill container */
    transition:
        background-color 0.25s ease,
        color            0.25s ease,
        transform        0.2s  ease,
        box-shadow       0.25s ease;
    -webkit-tap-highlight-color: transparent;
}

/* Pill rounding on edge buttons */
.udb-btn:first-child  { border-radius: 999px 0 0 999px; }
.udb-btn:last-child   { border-radius: 0 999px 999px 0; }
.udb-btn:only-child   { border-radius: 999px; }

/* Ripple overlay */
.udb-btn::after {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(255,255,255,0.12);
    opacity: 0;
    transition: opacity 0.2s ease;
}
.udb-btn:hover::after { opacity: 1; }
.udb-btn:active { transform: scale(0.97) !important; }

.udb-btn-icon { font-size: 1.05em; line-height: 1; }
.udb-btn-text { line-height: 1; }

/* ═══════════════════════════════════════════════════════════════
   ANIMATIONS
═══════════════════════════════════════════════════════════════ */

@keyframes udb-pulse-kf {
    0%, 100% { box-shadow: 0 0 0 0    rgba(255,0,0,0.55); }
    50%       { box-shadow: 0 0 0 10px rgba(255,0,0,0); }
}
.udb-anim-pulse { animation: udb-pulse-kf 2s infinite; }
.udb-anim-pulse:hover { animation: none; transform: scale(1.04); box-shadow: 0 6px 24px rgba(255,0,0,0.45); }

@keyframes udb-bounce-kf {
    0%, 100% { transform: translateY(0); }
    40%       { transform: translateY(-6px); }
    60%       { transform: translateY(-3px); }
}
.udb-anim-bounce { animation: udb-bounce-kf 1.8s infinite; }
.udb-anim-bounce:hover { animation: none; transform: translateY(-4px); }

@keyframes udb-shake-kf {
    0%, 100% { transform: translateX(0); }
    20%       { transform: translateX(-4px); }
    40%       { transform: translateX(4px); }
    60%       { transform: translateX(-3px); }
    80%       { transform: translateX(3px); }
}
.udb-anim-shake:hover { animation: udb-shake-kf 0.45s ease; }

@keyframes udb-glow-kf {
    0%, 100% { box-shadow: 0 0 8px  2px rgba(255,0,0,0.4); }
    50%       { box-shadow: 0 0 22px 6px rgba(255,0,0,0.75); }
}
.udb-anim-glow { animation: udb-glow-kf 2.2s infinite; }
.udb-anim-glow:hover { animation: none; box-shadow: 0 0 30px 8px rgba(255,0,0,0.7); transform: scale(1.03); }

@keyframes udb-slidein-kf {
    from { opacity: 0; transform: translateY(16px); }
    to   { opacity: 1; transform: translateY(0); }
}
.udb-anim-slide-in { animation: udb-slidein-kf 0.55s ease both; }
.udb-anim-slide-in:hover { transform: translateY(-3px); }

@keyframes udb-zoom-kf {
    0%, 100% { transform: scale(1); }
    50%       { transform: scale(1.04); }
}
.udb-anim-zoom { animation: udb-zoom-kf 2s infinite; }
.udb-anim-zoom:hover { animation: none; transform: scale(1.08); }

@keyframes udb-flip-kf {
    from { transform: perspective(400px) rotateY(0); }
    to   { transform: perspective(400px) rotateY(360deg); }
}
.udb-anim-flip:hover { animation: udb-flip-kf 0.65s ease; }

.udb-anim-none:hover { transform: scale(1.03); }

/* ═══════════════════════════════════════════════════════════════
   RESPONSIVE — keep pill intact on small screens
═══════════════════════════════════════════════════════════════ */
@media (max-width: 600px) {
    .udb-btn {
        padding: 11px 18px;
        font-size: 0.82rem;
        letter-spacing: 0;
    }
    /* scroll horizontally rather than break the pill */
    .udb-align-left,
    .udb-align-center,
    .udb-align-right {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
}
