/* Ryve Ticketing Premium Skin (Messi Experience Aesthetic) */

.ryve-premium-skin {
    --ryve-bg: #050709;
    --ryve-accent: #D9FF00;
    /* Neon Lime */
    --ryve-blue: #00A3E0;
    /* Cyan Glow */
    --ryve-text: #FFFFFF;
    --ryve-text-dim: #94a3b8;
    --ryve-card-bg: rgba(18, 22, 28, 0.8);
    --ryve-font-heading: 'Roboto Condensed', sans-serif;
    --ryve-font-body: 'Montserrat', sans-serif;
}

.ryve-premium-skin.ryve-booking-widget {
    background: var(--ryve-bg) !important;
    color: var(--ryve-text) !important;
    font-family: var(--ryve-font-body);
    border: 1px solid rgba(255, 255, 255, 0.05) !important;
    box-shadow: 0 40px 100px rgba(0, 0, 0, 0.8) !important;
    padding: 40px !important;
    border-radius: 24px !important;
    max-width: 960px;
    margin: 40px auto;
}

/* Allow TinyMCE rich text inline colors to show inside ticket descriptions */
.ryve-premium-skin .ryve-ticket-desc {
    color: #94a3b8;
    /* default muted color for unstyled text */
}

.ryve-premium-skin .ryve-ticket-desc span[style],
.ryve-premium-skin .ryve-ticket-desc strong,
.ryve-premium-skin .ryve-ticket-desc em,
.ryve-premium-skin .ryve-ticket-desc b,
.ryve-premium-skin .ryve-ticket-desc i {
    color: unset !important;
    /* let inline styles / element defaults win */
}

.ryve-premium-skin .ryve-ticket-desc span[style*="color"] {
    color: revert !important;
    /* reverses the cascade so inline style takes precedence */
}

.ryve-premium-skin .ryve-ticket-desc p {
    margin: 0 0 6px 0;
}

.ryve-premium-skin .ryve-ticket-desc p:last-child {
    margin-bottom: 0;
}

.ryve-premium-skin .ryve-ticket-desc ul,
.ryve-premium-skin .ryve-ticket-desc ol {
    margin: 4px 0 4px 18px;
    padding: 0;
}


/* Step Indicators & Headers */
.ryve-premium-skin .ryve-session-info-mini {
    background: rgba(255, 255, 255, 0.03) !important;
    border: 1px solid rgba(255, 255, 255, 0.08) !important;
    border-bottom: 2px solid var(--ryve-accent) !important;
    /* Replicating the step glow */
    border-radius: 8px !important;
    padding: 16px !important;
    margin-bottom: 24px !important;
    color: #fff !important;
    font-family: var(--ryve-font-heading);
    text-transform: uppercase;
    letter-spacing: 1px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
}

.ryve-premium-skin .ryve-session-info-mini strong {
    color: var(--ryve-accent) !important;
    margin-right: 10px;
}

.ryve-premium-skin .ryve-step-tracker {
    background: rgba(255, 255, 255, 0.03) !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.05) !important;
}

.ryve-premium-skin .ryve-step-item {
    color: var(--ryve-text-dim) !important;
    font-weight: 700 !important;
    text-transform: uppercase;
    font-size: 12px;
    letter-spacing: 1px;
}

.ryve-premium-skin .ryve-step-item.is-active {
    color: var(--ryve-accent) !important;
    background: rgba(217, 255, 0, 0.05) !important;
}

.ryve-premium-skin .ryve-step-item.is-active::after {
    background: var(--ryve-accent) !important;
    box-shadow: 0 0 10px var(--ryve-accent);
}

/* Layout Parts */
.ryve-premium-skin .ryve-step-1-header {
    border-bottom: 1px solid rgba(255, 255, 255, 0.05) !important;
    background: transparent !important;
}

.ryve-premium-skin .ryve-calendar-side {
    border-right: 1px solid rgba(255, 255, 255, 0.05) !important;
}

.ryve-premium-skin .ryve-slots-side {
    background: rgba(255, 255, 255, 0.02) !important;
    border-left: 1px solid rgba(255, 255, 255, 0.05) !important;
}

/* Calendar & Time Slots */
.ryve-premium-skin .ryve-day-link {
    background: rgba(255, 255, 255, 0.03) !important;
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
    color: #fff !important;
}

.ryve-premium-skin .ryve-day-link.has-sessions {
    background: rgba(0, 163, 224, 0.05) !important;
    border-color: rgba(0, 163, 224, 0.3) !important;
}

.ryve-premium-skin .ryve-day-link.is-selected {
    background: var(--ryve-blue) !important;
    border-color: var(--ryve-blue) !important;
    box-shadow: 0 0 15px rgba(0, 163, 224, 0.4);
    color: #fff !important;
}

.ryve-premium-skin .ryve-slot-pill {
    background: rgba(255, 255, 255, 0.05) !important;
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
    color: #fff !important;
    box-shadow: none !important;
}

.ryve-premium-skin .ryve-slot-pill:hover {
    border-color: var(--ryve-accent) !important;
}

.ryve-premium-skin .ryve-slot-pill.is-selected {
    background: var(--ryve-accent) !important;
    color: #000 !important;
    box-shadow: 0 0 20px rgba(217, 255, 0, 0.4) !important;
}

.ryve-premium-skin .ryve-cal-arrow {
    background: rgba(255, 255, 255, 0.05) !important;
    color: #fff !important;
}

.ryve-premium-skin .ryve-cal-arrow:hover {
    background: var(--ryve-accent) !important;
    color: #000 !important;
}

/* Ticket Cards */
.ryve-premium-skin .ryve-ticket-card {
    background: var(--ryve-card-bg) !important;
    border: 1px solid rgba(255, 255, 255, 0.08) !important;
    color: #fff !important;
    backdrop-filter: blur(10px);
    padding: 24px !important;
    border-radius: 16px !important;
    transition: all 0.3s ease;
}

.ryve-premium-skin .ryve-ticket-card:hover {
    border-color: rgba(217, 255, 0, 0.3) !important;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5) !important;
}

.ryve-premium-skin .ryve-ticket-title {
    color: var(--ryve-accent) !important;
    font-family: var(--ryve-font-heading);
}

.ryve-premium-skin .ryve-price-new {
    color: #fff !important;
    font-size: 22px;
}

/* Buttons & Inputs */
.ryve-premium-skin .ryve-btn-primary {
    background: var(--ryve-accent) !important;
    color: #000 !important;
    border-radius: 999px !important;
    padding: 16px 32px !important;
    box-shadow: 0 0 20px rgba(217, 255, 0, 0.3) !important;
}

.ryve-premium-skin .ryve-add-btn {
    background: transparent !important;
    border: 2px solid var(--ryve-accent) !important;
    color: var(--ryve-accent) !important;
    border-radius: 999px !important;
}

.ryve-premium-skin .ryve-stepper {
    border-color: var(--ryve-accent) !important;
    border-radius: 999px !important;
    background: rgba(217, 255, 0, 0.1) !important;
}

.ryve-premium-skin .ryve-stepper button {
    background: transparent !important;
    color: var(--ryve-accent) !important;
}

.ryve-premium-skin .ryve-stepper input {
    background: transparent !important;
    color: #fff !important;
}

/* Resume Section */
.ryve-premium-skin .ryve-resume-card {
    background: var(--ryve-card-bg) !important;
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
    border-radius: 12px !important;
    padding: 24px !important;
}

.ryve-premium-skin .ryve-resume-title {
    color: #fff !important;
}

.ryve-premium-skin .ryve-row .lbl {
    color: var(--ryve-text-dim) !important;
    opacity: 0.9 !important;
}

.ryve-premium-skin .ryve-row .val {
    color: #ffffff !important;
    font-weight: 500;
}

.ryve-premium-skin .ryve-row.is-total .val {
    color: var(--ryve-accent) !important;
    font-weight: 700 !important;
    font-size: 20px !important;
    text-shadow: 0 0 10px rgba(217, 255, 0, 0.4);
}

.ryve-premium-skin p strong {
    color: #6772e5 !important;
    /* Stripe Purple/Blue */
    text-shadow: 0 0 5px rgba(103, 114, 229, 0.3);
}

.ryve-premium-skin .ryve-resume-section>div[style*="font-weight:600"] {
    color: var(--ryve-accent) !important;
    font-family: var(--ryve-font-heading);
    letter-spacing: 1.5px;
    margin-bottom: 20px !important;
}

.ryve-premium-skin .ryve-ticketing-step-content {
    padding-top: 30px !important;
}

.ryve-premium-skin .ryve-step-1-main {
    display: flex !important;
    gap: 0 !important;
}

.ryve-premium-skin .ryve-step-actions {
    margin-top: 30px !important;
    border-top: 1px solid rgba(255, 255, 255, 0.08) !important;
    padding-top: 24px !important;
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
}

.ryve-premium-skin .ryve-btn-pay {
    width: 100% !important;
    border: none !important;
    margin-top: 20px !important;
}

/* Mobile Responsiveness */
@media (max-width: 768px) {
    .ryve-premium-skin.ryve-booking-widget {
        padding: 20px !important;
        margin: 10px auto !important;
        border-radius: 12px !important;
    }

    .ryve-premium-skin .ryve-step-1-main {
        flex-direction: column !important;
    }

    .ryve-premium-skin .ryve-calendar-side,
    .ryve-premium-skin .ryve-slots-side {
        width: 100% !important;
        border: none !important;
    }

    .ryve-premium-skin .ryve-event-meta-wrap {
        flex-direction: column !important;
        align-items: center !important;
        text-align: center !important;
    }

    .ryve-premium-skin .ryve-event-square-img {
        width: 160px !important;
        height: 160px !important;
        margin-bottom: 20px !important;
    }

    .ryve-premium-skin .ryve-calendar-side {
        border-bottom: 1px solid rgba(255, 255, 255, 0.05) !important;
        padding-bottom: 20px !important;
    }

    .ryve-premium-skin .ryve-ticket-cards {
        display: flex !important;
        flex-direction: column !important;
        width: 100% !important;
    }

    .ryve-premium-skin .ryve-ticket-card {
        flex-direction: column !important;
        align-items: stretch !important;
        padding: 20px !important;
    }


    .ryve-premium-skin .ryve-qty-controls {
        max-width: 140px !important;
        /* Smaller controls */
        margin: 10px 0 0 0 !important;
        /* Left aligned, top margin */
        justify-content: flex-start !important;
        background: rgba(255, 255, 255, 0.05) !important;
        border: 1px solid rgba(255, 255, 255, 0.1) !important;
    }

    .ryve-premium-skin .ryve-qty-controls .ryve-qty-btn {
        background: transparent !important;
        color: var(--ryve-accent) !important;
        border-color: rgba(217, 255, 0, 0.3) !important;
    }

    .ryve-premium-skin .ryve-qty-controls .ryve-qty-input {
        background: transparent !important;
        color: #fff !important;
    }

    .ryve-premium-skin .ryve-step-actions {
        flex-direction: column !important;
        align-items: stretch !important;
        text-align: center !important;
    }

    .ryve-premium-skin .ryve-total-preview-wrap {
        margin-bottom: 20px !important;
    }

    .ryve-premium-skin .ryve-total-preview {
        justify-content: center !important;
        font-size: 18px !important;
    }

    .ryve-premium-skin .ryve-btn-primary,
    .ryve-premium-skin .ryve-btn-pay {
        width: 100% !important;
    }
}

/* Global helper classes for the widget */
.ryve-premium-skin .ryve-section-title {
    color: var(--ryve-accent) !important;
    opacity: 1 !important;
    letter-spacing: 2px;
}

.ryve-premium-skin .empty-slots-msg {
    color: var(--ryve-text-dim) !important;
}