/* Ensayando - Public Styles (blanco y negro) */
:root {
    --rb-primary: #111827;
    --rb-primary-dark: #000000;
    --rb-primary-light: #F3F4F6;
    --rb-success: #111827;
    --rb-danger: #EF4444;
    --rb-gray-100: #F3F4F6;
    --rb-gray-200: #E5E7EB;
    --rb-gray-500: #6B7280;
    --rb-gray-900: #111827;
}

/* Single Listing */
.rb-single-listing { max-width: 1200px; margin: 0 auto; padding: 20px; }
.rb-listing-hero { border-radius: 12px; overflow: hidden; margin-bottom: 30px; max-height: none; }
.rb-listing-hero img { width: 100%; height: 400px; object-fit: cover; object-position: center; }
.rb-listing-container { display: grid; grid-template-columns: 1fr 380px; gap: 30px; }
.rb-listing-main h1 { font-size: 28px; margin: 0 0 8px; }
.rb-address { color: var(--rb-gray-500); margin: 0 0 20px; }
.rb-listing-content { margin-bottom: 25px; line-height: 1.7; }
.rb-listing-terms ul { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 15px; }
.rb-listing-terms li { background: var(--rb-gray-100); padding: 6px 14px; border-radius: 20px; font-size: 14px; }
.rb-extras-list { padding-left: 0; list-style: none; }
.rb-extras-list li { padding: 8px 0; border-bottom: 1px solid var(--rb-gray-200); }

/* Booking Widget */
.rb-booking-widget {
    background: #fff; border: 1px solid var(--rb-gray-200); border-radius: 12px; padding: 25px;
    position: sticky; top: 120px; box-shadow: 0 4px 20px rgba(0,0,0,0.08); transition: top .3s ease;
}
/* Deshabilitar sticky cuando el contenido del widget es extenso */
.rb-booking-widget.rb-widget-unstick {
    position: static !important;
    top: auto !important;
}

.rb-booking-header { text-align: center; margin-bottom: 20px; padding-bottom: 15px; border-bottom: 1px solid var(--rb-gray-200); }
.rb-booking-header h3 { margin: 0 0 5px; font-size: 20px; }
.rb-price-display { color: var(--rb-gray-500); margin: 0; }
.rb-price-display strong { color: var(--rb-primary); font-size: 24px; }

/* Form */
.rb-booking-form .rb-form-group { margin-bottom: 15px; }
.rb-booking-form label { display: block; font-size: 13px; font-weight: 600; margin-bottom: 5px; color: var(--rb-gray-900); }
.rb-booking-form input, .rb-booking-form select {
    width: 100%; padding: 10px 12px; border: 1px solid var(--rb-gray-200); border-radius: 8px;
    font-size: 14px; box-sizing: border-box;
}
.rb-booking-form input:focus, .rb-booking-form select:focus {
    outline: none; border-color: var(--rb-primary); box-shadow: 0 0 0 3px var(--rb-primary-light);
}
.rb-booking-form .rb-form-row { display: flex; gap: 10px; }
.rb-booking-form .rb-form-row > * { flex: 1; }

/* Time Slots */

/* ── Instrucción de selección ────────────────────────── */
.rb-slot-instruction {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 8px 12px;
    background: #f8f7ff;
    border-radius: 10px;
    margin-bottom: 10px;
    font-size: 12px;
    font-weight: 600;
}
.rb-si-step {
    padding: 4px 10px;
    border-radius: 20px;
    color: #c4bcd6;
    background: transparent;
    transition: all .2s;
}
.rb-si-step.rb-si-active {
    background: #111;
    color: #fff;
}
.rb-si-step.rb-si-done {
    color: #6b6180;
    text-decoration: line-through;
}
.rb-si-arrow { color: #c4bcd6; font-size: 11px; }

/* ── Grid de slots ───────────────────────────────────── */
.rb-time-slots {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 8px;
    margin: 4px 0 12px;
}
@media (max-width: 380px) {
    .rb-time-slots { grid-template-columns: repeat(3, 1fr); gap: 6px; }
}

/* ── Botón de slot (reemplaza el div anterior) ──────── */
.rb-ts {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 12px 6px;
    border-radius: 12px;
    border: 1.5px solid #e8e5f0;
    background: #fff;
    cursor: pointer;
    transition: all .15s ease;
    min-height: 58px;
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
    user-select: none;
    position: relative;
}
.rb-ts:active { transform: scale(.96); }

/* Disponible */
.rb-ts.rb-slot-avail {
    background: #fff;
    border-color: #e8e5f0;
    color: #1a1523;
}
.rb-ts.rb-slot-avail:hover {
    background: #262626;
    color: #fff;
}

/* Ocupado */
.rb-ts.rb-slot-busy {
    background: #fef2f2;
    border-color: #fecaca;
    color: #d1d5db;
    cursor: not-allowed;
    opacity: .65;
}

/* Inicio del rango */
.rb-ts.rb-ts-start {
    background: #111111 !important;
    border-color: #111111 !important;
    color: #fff !important;
    box-shadow: 0 4px 16px rgba(0,0,0,.2);
    transform: scale(1.06);
    z-index: 2;
}

/* Slots del rango (intermedios) */
.rb-ts.rb-ts-range {
    background: #ede9fe !important;
    border-color: #c4b5fd !important;
    color: #5b21b6 !important;
    border-radius: 4px;
}

/* Fin del rango */
.rb-ts.rb-ts-end {
    background: #111111 !important;
    border-color: #111111 !important;
    color: #fff !important;
    box-shadow: 0 4px 16px rgba(0,0,0,.2);
    transform: scale(1.06);
    z-index: 2;
}

/* Hover preview (desktop) */
.rb-ts.rb-ts-hover-range {
    background: #f5f3ff !important;
    border-color: #a78bfa !important;
    color: #6d28d9 !important;
    border-radius: 4px;
}

/* Textos dentro del slot */
.rb-ts-time {
    font-size: 14px;
    font-weight: 700;
    line-height: 1;
    display: block;
}
.rb-ts-price {
    font-size: 10px;
    font-weight: 600;
    margin-top: 4px;
    display: block;
    opacity: .65;
}
.rb-ts.rb-ts-start .rb-ts-price,
.rb-ts.rb-ts-end .rb-ts-price { opacity: .8; }
.rb-ts.rb-slot-busy .rb-ts-time { text-decoration: line-through; }

/* ── Warn de mínimo ──────────────────────────────────── */
.rb-slot-min-warn {
    text-align: center;
    font-size: 13px;
    font-weight: 600;
    color: #92400e;
    background: #fef3c7;
    border: 1px solid #fde68a;
    border-radius: 9px;
    padding: 10px 14px;
    margin: 8px 0;
    animation: rb-warn-in .2s ease;
}
@keyframes rb-warn-in {
    from { opacity:0; transform:translateY(-4px); }
    to   { opacity:1; transform:translateY(0); }
}

/* ── Panel de precio en tiempo real ──────────────────── */
#rb-live-price {
    background: #111111;
    color: #fff;
    border-radius: 14px;
    padding: 14px 16px;
    margin-bottom: 12px;
}
.rb-lp-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 10px;
    padding-bottom: 10px;
    border-bottom: 1px solid rgba(255,255,255,.12);
}
.rb-lp-schedule {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 13px;
    color: rgba(255,255,255,.75);
}
.rb-lp-schedule svg { flex-shrink: 0; }
.rb-lp-hours {
    background: rgba(255,255,255,.15);
    padding: 3px 10px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 700;
}
.rb-lp-total {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 8px;
    font-size: 13px;
    color: rgba(255,255,255,.7);
}
.rb-lp-total-amt {
    font-size: 22px;
    font-weight: 800;
    color: #fff;
}
.rb-lp-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 12px;
    color: rgba(255,255,255,.6);
    padding: 3px 0;
}
.rb-lp-row strong, .rb-lp-dep { font-weight: 700; color: rgba(255,255,255,.9); }
.rb-lp-rest { border-top: 1px solid rgba(255,255,255,.08); margin-top: 4px; padding-top: 6px; }

/* ── Spinner inline botón ────────────────────────────── */
.rb-spin-inline {
    display: inline-block;
    width: 14px;
    height: 14px;
    border: 2px solid rgba(255,255,255,.4);
    border-top-color: #fff;
    border-radius: 50%;
    animation: rb-spin .6s linear infinite;
    vertical-align: middle;
    margin-right: 6px;
}

/* KEEP: compatibilidad con clases que el sistema sigue usando */
.rb-time-slot { display: none; }

/* Acordeón Horarios + Resumen */
.rb-booking-accordion {
    border: 1px solid var(--rb-gray-200);
    border-radius: 8px;
    margin: 15px 0;
    overflow: hidden;
}
.rb-accordion-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    padding: 12px 14px;
    background: var(--rb-gray-100);
    border: none;
    cursor: pointer;
    font-size: 14px;
    font-weight: 600;
    color: var(--rb-gray-900);
    text-align: left;
    transition: background 0.2s;
}
.rb-accordion-header:hover {
    background: #E5E7EB;
}
.rb-accordion-summary {
    flex: 1;
}
.rb-accordion-icon {
    font-size: 10px;
    transition: transform 0.25s;
    margin-left: 8px;
}
.rb-accordion-content.rb-accordion-open .rb-accordion-icon {
    transform: rotate(0deg);
}
.rb-accordion-content:not(.rb-accordion-open) .rb-accordion-icon {
    transform: rotate(-90deg);
}
.rb-accordion-content {
    max-height: 2000px;
    overflow: hidden;
    transition: max-height 0.35s ease-out;
}
.rb-accordion-content:not(.rb-accordion-open) {
    max-height: 0;
}
.rb-accordion-content {
    padding: 0 14px 14px;
}

/* Price Summary */
.rb-price-summary {
    background: var(--rb-gray-100); border-radius: 8px; padding: 15px; margin: 15px 0;
}
.rb-price-row { display: flex; justify-content: space-between; padding: 5px 0; font-size: 14px; }
.rb-price-highlight { border-top: 2px solid var(--rb-primary); margin-top: 8px; padding-top: 8px; }
.rb-price-highlight strong { color: var(--rb-primary); font-size: 18px; }

/* Buttons */
.rb-btn {
    display: inline-block; padding: 12px 24px; border-radius: 8px; font-size: 14px; font-weight: 600;
    cursor: pointer; border: none; transition: all 0.2s; text-decoration: none; text-align: center;
}
.rb-btn-primary { background: var(--rb-primary); color: #fff; }
.rb-btn-primary:hover { background: var(--rb-primary-dark); transform: translateY(-1px); box-shadow: 0 4px 12px rgba(0,0,0,0.2); }
.rb-btn-full { width: 100%; padding: 14px; font-size: 16px; }
#rb-confirm-horario {
    background: #111111;
    border-color: #111111;
    font-size: 16px;
    font-weight: 700;
    padding: 16px;
    border-radius: 14px;
    letter-spacing: -.01em;
    transition: all .2s;
}
#rb-confirm-horario:hover:not(:disabled) {
    background: #333;
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(0,0,0,.2);
}
.rb-btn:disabled { opacity: 0.5; cursor: not-allowed; transform: none; }

/* Listings Grid */
.rb-listings-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 25px; }
.rb-listing-card { background: #fff; border-radius: 12px; overflow: hidden; box-shadow: 0 2px 10px rgba(0,0,0,0.08); transition: transform 0.2s; }
.rb-listing-card:hover { transform: translateY(-3px); box-shadow: 0 8px 25px rgba(0,0,0,0.12); }
.rb-listing-img img { width: 100%; height: 200px; object-fit: cover; }
.rb-listing-info { padding: 20px; }
.rb-listing-info h3 { margin: 0 0 8px; font-size: 18px; }
.rb-listing-info h3 a { color: var(--rb-gray-900); text-decoration: none; }
.rb-listing-address { color: var(--rb-gray-500); font-size: 14px; margin: 0 0 5px; }
.rb-listing-price { color: var(--rb-primary); font-weight: 700; font-size: 16px; margin: 0 0 5px; }
.rb-listing-size { color: var(--rb-gray-500); font-size: 13px; margin: 0 0 15px; }

/* Confirmation */
.rb-confirmation { max-width: 600px; margin: 40px auto; text-align: center; }
.rb-confirmation-icon { font-size: 64px; margin-bottom: 15px; }
.rb-confirmation h2 { color: var(--rb-success); }
.rb-confirmation-details { background: var(--rb-gray-100); border-radius: 12px; padding: 25px; text-align: left; margin: 20px 0; }

/* Responsive */
@media (max-width: 768px) {
    .rb-listing-container { grid-template-columns: 1fr; }
    .rb-booking-widget { position: static; }
    .rb-ts-time { font-size: 13px; }
    .rb-ts { min-height: 52px; }
}

/* Extras checkboxes */
.rb-extras-checkboxes { display:flex; flex-direction:column; gap:8px; }
.rb-extra-item {
    display:flex; align-items:center; gap:10px;
    background:#F8FAFC; border:1px solid #E2E8F0; border-radius:8px;
    padding:10px 14px; cursor:pointer; transition:all .15s;
}
.rb-extra-item:hover { border-color:#374151; background:#F9FAFB; }
.rb-extra-item input:checked ~ .rb-extra-name { color:#111827; font-weight:600; }
.rb-extra-item input:checked ~ .rb-extra-price { color:#111827; }
.rb-extra-item input[type=checkbox] { accent-color:#111827; width:18px; height:18px; }
.rb-extra-name { flex:1; font-size:14px; color:#1E293B; }
.rb-extra-price { font-size:13px; font-weight:600; color:#374151; white-space:nowrap; }

/* Login / logged-in user in booking form */
.rb-logged-in-user { margin-bottom: 15px; }
.rb-reserving-as { margin: 0 0 8px; font-size: 14px; }
.rb-login-prompt { margin: 0 0 12px; font-size: 14px; color: var(--rb-gray-500); }
.rb-login-prompt a, .rb-login-link a { color: #111827; text-decoration: underline; font-weight: 600; }
.rb-login-link { margin: 8px 0 0; font-size: 13px; }
.rb-login-link a:hover { color: #374151; }

/* ── Slot Hold System ──────────────────────────────────────── */
.rb-time-slot.rb-held {
    background: #FEF9C3;
    border-color: #FCD34D;
    color: #92400E;
    cursor: not-allowed;
    position: relative;
}
.rb-time-slot.rb-held:hover .rb-hold-tooltip { opacity: 1; visibility: visible; transform: translateY(0); }
.rb-hold-tooltip {
    position: absolute;
    bottom: calc(100% + 6px);
    left: 50%;
    transform: translateX(-50%) translateY(4px);
    background: #1C1917;
    color: #fff;
    font-size: 11px;
    white-space: nowrap;
    padding: 5px 9px;
    border-radius: 6px;
    pointer-events: none;
    opacity: 0;
    visibility: hidden;
    transition: opacity .15s ease, transform .15s ease;
    z-index: 10;
}
.rb-hold-tooltip::after {
    content: '';
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    border: 5px solid transparent;
    border-top-color: #1C1917;
}

/* Hold countdown bar */
#rb-hold-countdown {
    display: flex;
    align-items: center;
    gap: 8px;
    background: #ECFDF5;
    border: 1px solid #6EE7B7;
    color: #065F46;
    border-radius: 8px;
    padding: 10px 14px;
    font-size: 13px;
    margin-bottom: 12px;
}
#rb-hold-countdown svg { flex-shrink: 0; color: #059669; }
#rb-hold-countdown .rb-hold-time { font-variant-numeric: tabular-nums; }
#rb-hold-countdown.rb-hold-urgent {
    background: #FEF2F2;
    border-color: #FCA5A5;
    color: #991B1B;
}
#rb-hold-countdown.rb-hold-urgent svg { color: #DC2626; }

/* ── Mobile CTA Buttons ───────────────────────────────────── */
.rb-mobile-cta {
    display: none;
}

@media (max-width: 768px) {
    .rb-mobile-cta {
        display: flex;
        gap: 10px;
        position: sticky;
        bottom: 0;
        left: 0;
        right: 0;
        z-index: 100;
        background: #fff;
        padding: 12px 16px;
        border-top: 1px solid #e5e7eb;
        box-shadow: 0 -4px 16px rgba(0,0,0,.08);
        margin: 24px -16px 0;
    }
    .rb-mobile-cta-btn {
        flex: 1;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 6px;
        padding: 13px 10px;
        border-radius: 8px;
        font-size: 14px;
        font-weight: 600;
        text-decoration: none;
        transition: opacity .15s;
    }
    .rb-mobile-cta-btn:active { opacity: .8; }
    .rb-mobile-cta-secondary {
        background: #f3f4f6;
        color: #0a0a0a;
        border: 1.5px solid #d1d5db;
    }
    .rb-mobile-cta-primary {
        background: #0a0a0a;
        color: #fff;
        border: 1.5px solid #0a0a0a;
    }
}

/* ═══════════════════════════════════════════════════════════
   BOOKING WIZARD — Paso a paso estilo Amelia
   ══════════════════════════════════════════════════════════ */

/* Widget container */
.rb-wizard-widget {
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 4px 24px rgba(0,0,0,.10);
    background: #fff;
    padding: 0;
}

/* ── Progress bar ── */
.rb-wizard-progress {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px 16px 16px;
    background: #fff;
    border-bottom: 1px solid #f0f0f0;
    gap: 0;
    overflow-x: auto;
}

.rb-wizard-step {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
    flex-shrink: 0;
}
.rb-wizard-step span {
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: #c0c0c0;
    white-space: nowrap;
}
.rb-wstep-circle {
    width: 32px; height: 32px;
    border-radius: 50%;
    background: #e5e7eb;
    color: #9ca3af;
    display: flex; align-items: center; justify-content: center;
    transition: background .25s, color .25s;
}
.rb-wizard-step.rb-wstep-active .rb-wstep-circle {
    background: #2d5a27;
    color: #fff;
    box-shadow: 0 0 0 4px rgba(45,90,39,.15);
}
.rb-wizard-step.rb-wstep-active span { color: #2d5a27; }
.rb-wizard-step.rb-wstep-done .rb-wstep-circle {
    background: #2d5a27;
    color: #fff;
}
.rb-wizard-step.rb-wstep-done span { color: #6b7280; }

.rb-wstep-line {
    flex: 1;
    height: 2px;
    background: #e5e7eb;
    margin: 0 6px;
    margin-bottom: 18px;
    min-width: 20px;
    transition: background .25s;
}
.rb-wstep-line.rb-wstep-line-done { background: #2d5a27; }

/* ── Panel base ── */
.rb-wizard-panel {
    display: none;
    padding: 20px 20px 24px;
    animation: rbWizFadeIn .2s ease;
}
.rb-wizard-panel.rb-wpanel-active { display: block; }

@keyframes rbWizFadeIn {
    from { opacity: 0; transform: translateY(6px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* ── Step header ── */
.rb-step-header { margin-bottom: 18px; }
.rb-step-header h4 { margin: 0 0 4px; font-size: 16px; font-weight: 700; color: #1a1a1a; }
.rb-step-sub { margin: 0; font-size: 13px; color: #6b7280; }
.rb-step-back {
    background: none; border: none; cursor: pointer;
    font-size: 13px; color: #6b7280; padding: 0; margin-bottom: 10px;
    display: flex; align-items: center; gap: 4px;
}
.rb-step-back:hover { color: #1a1a1a; }

/* ── Visual Calendar ── */
.rb-vc-wrap { border: 1px solid #e5e7eb; border-radius: 10px; overflow: hidden; }

.rb-vc-nav {
    display: flex; align-items: center; justify-content: space-between;
    padding: 10px 12px;
    background: #fff;
    border-bottom: 1px solid #f0f0f0;
    gap: 8px;
}
.rb-vc-selects { display: flex; gap: 6px; flex: 1; }
.rb-vc-select {
    padding: 6px 10px;
    border: 1px solid #d1d5db; border-radius: 6px;
    font-size: 13px; font-weight: 600; color: #1a1a1a;
    background: #fff; cursor: pointer;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' viewBox='0 0 24 24' stroke='%236b7280' stroke-width='2.5'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='m19 9-7 7-7-7'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 8px center;
    padding-right: 26px;
}
.rb-vc-select:focus { outline: none; border-color: #2d5a27; }
.rb-vc-select-year { max-width: 80px; }

.rb-vc-arrows { display: flex; gap: 4px; flex-shrink: 0; }
.rb-vc-arrow {
    width: 30px; height: 30px;
    border: 1px solid #e5e7eb; border-radius: 6px;
    background: #fff; cursor: pointer; font-size: 18px; line-height: 1;
    display: flex; align-items: center; justify-content: center;
    color: #374151; transition: background .15s;
}
.rb-vc-arrow:hover { background: #f3f4f6; }

.rb-vc-weekdays {
    display: grid; grid-template-columns: repeat(7, 1fr);
    background: #f9fafb;
    border-bottom: 1px solid #f0f0f0;
}
.rb-vc-weekdays span {
    text-align: center; font-size: 11px; font-weight: 700;
    color: #9ca3af; padding: 8px 4px; text-transform: uppercase; letter-spacing: .04em;
}

.rb-vc-days {
    display: grid; grid-template-columns: repeat(7, 1fr);
    padding: 6px;
    gap: 3px;
}
.rb-vc-day {
    aspect-ratio: 1;
    display: flex; align-items: center; justify-content: center;
    border-radius: 8px;
    font-size: 13px; font-weight: 500;
    cursor: pointer;
    color: #374151;
    transition: background .15s, color .15s;
}
.rb-vc-day:hover:not(.rb-vc-past):not(.rb-vc-blank) { background: #f0f7ef; color: #2d5a27; }
.rb-vc-day.rb-vc-today { font-weight: 800; color: #2d5a27; }
.rb-vc-day.rb-vc-today::after { content: '\00B7'; position: absolute; bottom: 3px; font-size: 10px; }
.rb-vc-day { position: relative; }
.rb-vc-day.rb-vc-past { color: #d1d5db; cursor: default; }
.rb-vc-day.rb-vc-blank { cursor: default; }
.rb-vc-day.rb-vc-selected {
    background: #2d5a27 !important;
    color: #fff !important;
    font-weight: 700;
}

/* ── Time slots ── */
.rb-no-slots { text-align: center; color: #ef4444; padding: 20px; }

.rb-slots-loading {
    display: flex; align-items: center; justify-content: center;
    gap: 10px; padding: 30px; color: #6b7280; font-size: 14px;
}
.rb-spinner {
    width: 20px; height: 20px;
    border: 2px solid #e5e7eb;
    border-top-color: #2d5a27;
    border-radius: 50%;
    animation: rbSpin .7s linear infinite;
}
@keyframes rbSpin { to { transform: rotate(360deg); } }

/* ── End time selector ── */
#rb-time-selectors .rb-form-group { margin-bottom: 0; }
#rb-time-selectors select {
    width: 100%; padding: 10px 14px;
    border: 1px solid #d1d5db; border-radius: 8px;
    font-size: 14px; background: #fff; color: #0a0a0a;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' viewBox='0 0 24 24' stroke='%236b7280' stroke-width='2'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='m19 9-7 7-7-7'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    padding-right: 36px;
    cursor: pointer;
}

/* ── Musicians selector ── */
.rb-musicians-select-wrap { display: flex; flex-direction: column; gap: 14px; }
.rb-musicians-select {
    width: 100%; padding: 12px 14px;
    border: 1px solid #d1d5db; border-radius: 8px;
    font-size: 15px; font-weight: 600; background: #fff; color: #1a1a1a;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' viewBox='0 0 24 24' stroke='%236b7280' stroke-width='2'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='m19 9-7 7-7-7'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    padding-right: 36px;
    cursor: pointer;
}

.rb-musicians-visual {
    display: flex; flex-wrap: wrap; gap: 8px;
}
.rb-mus-btn {
    display: flex; flex-direction: column; align-items: center; gap: 3px;
    width: 56px; height: 56px;
    border: 2px solid #e5e7eb; border-radius: 10px;
    background: #fff; cursor: pointer; color: #6b7280;
    font-size: 12px; font-weight: 600;
    transition: all .15s;
}
.rb-mus-btn:hover { border-color: #2d5a27; color: #2d5a27; }
.rb-mus-btn.active {
    background: #2d5a27; border-color: #2d5a27; color: #fff;
}

/* ── User card (logged in) ── */
.rb-wiz-usercard {
    display: flex; align-items: center; gap: 12px;
    padding: 14px 16px; background: #f9fafb;
    border: 1px solid #e5e7eb; border-radius: 10px; margin-bottom: 4px;
}
.rb-wiz-avatar {
    width: 40px; height: 40px; border-radius: 50%;
    background: #2d5a27; color: #fff;
    font-size: 16px; font-weight: 700;
    display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.rb-wiz-usercard strong { display: block; font-size: 14px; }
.rb-wiz-usercard span  { font-size: 12px; color: #6b7280; }
.rb-wiz-logout {
    margin-left: auto; font-size: 12px; color: #6b7280;
    text-decoration: none; flex-shrink: 0;
}
.rb-wiz-logout:hover { color: #ef4444; }

/* Guest / login options */
.rb-guest-or-login { margin-bottom: 16px; }
.rb-wiz-auth-btn {
    width: 100%; padding: 11px; border-radius: 8px; font-size: 14px; font-weight: 600;
    cursor: pointer; display: flex; align-items: center; justify-content: center; gap: 8px;
    border: 1px solid #2d5a27; background: #fff; color: #2d5a27;
    transition: background .15s;
}
.rb-wiz-auth-btn:hover { background: #f0f7ef; }
.rb-wiz-divider {
    display: flex; align-items: center; gap: 10px;
    margin: 14px 0 0; color: #9ca3af; font-size: 12px;
}
.rb-wiz-divider::before, .rb-wiz-divider::after { content: ''; flex: 1; height: 1px; background: #e5e7eb; }
.rb-required { color: #ef4444; }

/* ── Summary ── */
.rb-wiz-summary {
    border: 1px solid #e5e7eb; border-radius: 10px; overflow: hidden; margin-bottom: 4px;
}
.rb-wiz-sum-row {
    display: flex; align-items: center; gap: 10px;
    padding: 11px 14px; font-size: 14px; color: #374151;
    border-bottom: 1px solid #f3f4f6;
}
.rb-wiz-sum-row:last-child { border-bottom: none; }
.rb-wiz-sum-row svg { color: #2d5a27; flex-shrink: 0; }

.rb-price-total { border-top: 1px solid #e5e7eb; padding-top: 10px; margin-top: 4px; }

/* Pay button */
.rb-btn-pay {
    display: flex; align-items: center; justify-content: center;
    gap: 8px; margin-top: 16px; padding: 14px;
    font-size: 15px; font-weight: 700; border-radius: 10px;
}
.rb-spinner-sm {
    width: 16px; height: 16px;
    border: 2px solid rgba(255,255,255,.4);
    border-top-color: #fff;
    border-radius: 50%;
    animation: rbSpin .7s linear infinite;
    display: inline-block;
}

/* Form inputs */
.rb-form-group { margin-bottom: 14px; }
.rb-form-group label { display: block; font-size: 13px; font-weight: 600; margin-bottom: 5px; color: #374151; }
.rb-form-group input[type="text"],
.rb-form-group input[type="email"],
.rb-form-group input[type="tel"] {
    width: 100%; padding: 10px 14px; border: 1px solid #d1d5db;
    border-radius: 8px; font-size: 14px; color: #0a0a0a; background: #fff;
    box-sizing: border-box; transition: border-color .15s;
}
.rb-form-group input:focus { outline: none; border-color: #2d5a27; box-shadow: 0 0 0 3px rgba(45,90,39,.1); }

/* Continue button */
#rb-confirm-horario, #rb-confirm-musicos, #rb-confirm-datos {
    margin-top: 14px;
}

@media (max-width: 480px) {
    .rb-wizard-progress { padding: 14px 10px 12px; }
    .rb-wstep-line { min-width: 12px; }
    .rb-wizard-step span { font-size: 9px; }
    .rb-wstep-circle { width: 28px; height: 28px; }
    .rb-mus-btn { width: 48px; height: 48px; }
    .rb-wizard-panel { padding: 16px; }
}

/* ═══════════════════════════════════════════════════════════
   GLOBAL COUNTDOWN BAR — fijo en top de página
   ══════════════════════════════════════════════════════════ */
/* ── Countdown bar ───────────────────────────────────────────── */
#rb-global-countdown {
    position: fixed;
    /* top se ajusta via JS según la altura del menú */
    top: 0;
    left: 0;
    right: 0;
    z-index: 9998;          /* debajo del menú (z-index ~9999) */
    transform: translateY(-120%);
    transition: transform .4s cubic-bezier(.22,.68,0,1.2), top .2s ease;
}
#rb-global-countdown.rb-gcd-visible {
    transform: translateY(0);
}

/* Barra normal — morado oscuro sutil */
.rb-gcd-bar {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 10px 20px;
    background: #1e1b2e;
    border-bottom: 1px solid rgba(255,255,255,.08);
    flex-wrap: wrap;
    font-size: 13px;
    font-weight: 500;
    color: #fff;
}

/* Urgente (< 2 min) — rojo */
#rb-global-countdown.rb-gcd-urgent .rb-gcd-bar {
    background: #7f1d1d;
    border-bottom-color: rgba(255,255,255,.1);
    animation: rb-gcd-pulse 1.5s ease-in-out infinite;
}
@keyframes rb-gcd-pulse {
    0%, 100% { opacity: 1; }
    50%       { opacity: .88; }
}

.rb-gcd-icon { flex-shrink: 0; opacity: .75; }

.rb-gcd-text {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
}
.rb-gcd-label { opacity: .75; }

/* Timer en monoespaciado con fondo pill */
.rb-gcd-timer {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    background: rgba(255,255,255,.12);
    border-radius: 20px;
    padding: 2px 10px 2px 6px;
    font-size: 14px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    letter-spacing: .03em;
}
.rb-gcd-timer-dot {
    width: 6px; height: 6px;
    background: #4ade80;
    border-radius: 50%;
    animation: rb-dot-blink .9s ease-in-out infinite;
    flex-shrink: 0;
}
#rb-global-countdown.rb-gcd-urgent .rb-gcd-timer-dot {
    background: #f87171;
}
@keyframes rb-dot-blink {
    0%, 100% { opacity: 1; }
    50%       { opacity: .3; }
}

.rb-gcd-btn {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 7px 16px;
    border-radius: 8px;
    background: #fff;
    color: #111;
    font-size: 12px;
    font-weight: 700;
    text-decoration: none;
    flex-shrink: 0;
    transition: all .15s;
    white-space: nowrap;
}
.rb-gcd-btn:hover {
    background: #f0f0f0;
    transform: translateY(-1px);
}
#rb-global-countdown.rb-gcd-urgent .rb-gcd-btn {
    background: #fef2f2;
    color: #7f1d1d;
}

/* Espacio en el body para que el contenido no quede tapado */
body.rb-has-countdown {
    /* se setea via JS con el valor real */
}

@media (max-width: 600px) {
    .rb-gcd-bar  { padding: 9px 12px; gap: 8px; justify-content: space-between; flex-wrap: nowrap; }
    .rb-gcd-label { display: none; }
    .rb-gcd-timer { font-size: 13px; }
    .rb-gcd-btn  { padding: 6px 12px; font-size: 11px; }
}

/* ── Timer dentro del popup ─────────────────────────────── */
.rb-pp-timer {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin-top: 5px;
    font-size: 13px;
    font-weight: 700;
    color: rgba(255,255,255,.9);
    background: rgba(255,255,255,.12);
    padding: 3px 10px 3px 8px;
    border-radius: 20px;
    font-variant-numeric: tabular-nums;
}
.rb-pp-timer-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #4ade80;
    flex-shrink: 0;
    animation: rb-dot-blink .9s ease-in-out infinite;
}
.rb-pp-timer-label {
    font-size: 12px;
    font-weight: 500;
    opacity: .75;
    margin-right: 2px;
}
#rb-pending-popup.rb-pp-urgent .rb-pp-timer-dot { background: #f87171; }
#rb-pending-popup.rb-pp-urgent .rb-pp-timer { color: #fca5a5; }

/* ── Countdown inline dentro del header de pago ──────────── */
#rb-pay-countdown.rb-pc-inline {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 10px;
    padding: 6px 12px;
    background: rgba(255,255,255,.12);
    border-radius: 20px;
    width: fit-content;
}
#rb-pay-countdown.rb-pc-inline .rb-pc-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #4ade80;
    flex-shrink: 0;
    animation: rb-dot-blink .9s ease-in-out infinite;
}
#rb-pay-countdown.rb-pc-inline.rb-pc-urgent .rb-pc-dot { background: #f87171; }
#rb-pay-countdown.rb-pc-inline.rb-pc-expired .rb-pc-dot { background: #9ca3af; animation: none; }
#rb-pay-countdown.rb-pc-inline .rb-pc-label {
    font-size: 12px;
    font-weight: 500;
    color: rgba(255,255,255,.75);
    white-space: nowrap;
}
#rb-pay-countdown.rb-pc-inline .rb-pc-timer {
    font-size: 14px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    color: #fff;
    letter-spacing: .02em;
}
#rb-pay-countdown.rb-pc-inline.rb-pc-urgent .rb-pc-timer { color: #fca5a5; }
#rb-pay-countdown.rb-pc-inline.rb-pc-expired .rb-pc-timer { color: #9ca3af; }

/* ═══════════════════════════════════════════════════════════
   PENDING ORDER POPUP — B&W, slide from left
   ══════════════════════════════════════════════════════════ */
#rb-pending-popup {
    position: fixed;
    bottom: 24px; left: -420px;
    width: 360px; max-width: calc(100vw - 32px);
    background: #fff;
    border-radius: 12px;
    border: 1px solid #e5e7eb;
    box-shadow: 0 8px 40px rgba(0,0,0,.14), 0 0 0 1px rgba(0,0,0,.04);
    z-index: 99998;
    transition: left .35s cubic-bezier(.22,.68,0,1.2);
    overflow: hidden;
}
#rb-pending-popup.rb-pp-visible { left: 24px; }

.rb-pp-header {
    display: flex; align-items: center; gap: 10px;
    padding: 14px 16px;
    background: #0a0a0a; color: #fff;
}
.rb-pp-icon {
    width: 32px; height: 32px; flex-shrink: 0;
    background: rgba(255,255,255,.12); border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
}
.rb-pp-title { flex: 1; min-width: 0; }
.rb-pp-title strong { display: block; font-size: 13px; font-weight: 700; color: #fff; }
.rb-pp-title p { margin: 2px 0 0; font-size: 11px; color: rgba(255,255,255,.65); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rb-pp-close {
    flex-shrink: 0; width: 26px; height: 26px;
    border: none; background: rgba(255,255,255,.12); cursor: pointer;
    font-size: 16px; color: rgba(255,255,255,.8); border-radius: 5px;
    display: flex; align-items: center; justify-content: center;
    transition: background .15s;
}
.rb-pp-close:hover { background: rgba(255,255,255,.22); }

.rb-pp-body { padding: 12px 16px; display: flex; flex-direction: column; gap: 7px; }
.rb-pp-row { display: flex; justify-content: space-between; align-items: baseline; font-size: 13px; }
.rb-pp-row span { color: #6b7280; }
.rb-pp-row strong { font-weight: 600; color: #0a0a0a; }
.rb-pp-total { padding-top: 8px; border-top: 1px solid #f0f0f0; margin-top: 2px; }
.rb-pp-total strong { font-size: 15px; }

.rb-pp-actions { display: flex; flex-direction: column; gap: 6px; padding: 10px 16px 14px; }
.rb-pp-btn {
    display: flex; align-items: center; justify-content: center; gap: 6px;
    padding: 10px 14px; border-radius: 8px;
    font-size: 13px; font-weight: 600; cursor: pointer;
    text-decoration: none; border: none; transition: opacity .15s;
}
.rb-pp-btn-pay  { background: #0a0a0a; color: #fff; }
.rb-pp-btn-pay:hover { opacity: .85; }
.rb-pp-btn-cancel { background: #f3f4f6; color: #6b7280; border: 1px solid #e5e7eb; }
.rb-pp-btn-cancel:hover { background: #fef2f2; color: #dc2626; border-color: #fecaca; }

@media (max-width: 480px) {
    #rb-pending-popup { bottom: 16px; left: -420px; }
    #rb-pending-popup.rb-pp-visible { left: 12px; right: 12px; width: auto; }
}

/* ═══════════════════════════════════════════════════════════
   BLOCKED MESSAGE — al intentar nueva reserva con pending
   ══════════════════════════════════════════════════════════ */
.rb-blocked-msg {
    display: flex; align-items: flex-start; gap: 10px;
    padding: 14px 16px; margin-bottom: 16px;
    background: #f9fafb; border: 1px solid #e5e7eb;
    border-left: 3px solid #0a0a0a; border-radius: 8px;
    font-size: 13px;
}
.rb-blocked-msg svg { flex-shrink: 0; color: #0a0a0a; margin-top: 1px; }
.rb-blocked-msg strong { display: block; font-weight: 700; color: #0a0a0a; margin-bottom: 3px; }
.rb-blocked-msg p { margin: 0 0 6px; color: #6b7280; }
.rb-blocked-pay { font-size: 12px; font-weight: 600; color: #0a0a0a; text-decoration: underline; }

/* ═══════════════════════════════════════════════════════════
   CANCELLED ORDER PAGE — WooCommerce override
   ══════════════════════════════════════════════════════════ */
.woocommerce-order-details--cancelled .woocommerce-info,
.woocommerce .woocommerce-info {
    background: #f9fafb !important;
    border-top-color: #0a0a0a !important;
    color: #374151 !important;
}
.rb-cancelled-notice {
    max-width: 560px; margin: 30px auto;
    background: #fff; border: 1px solid #e5e7eb;
    border-radius: 12px; overflow: hidden;
    box-shadow: 0 2px 12px rgba(0,0,0,.07);
}
.rb-cancelled-header {
    display: flex; align-items: center; gap: 12px;
    padding: 20px 24px; background: #0a0a0a; color: #fff;
}
.rb-cancelled-icon {
    width: 42px; height: 42px; flex-shrink: 0;
    background: rgba(255,255,255,.12); border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
}
.rb-cancelled-header h3 { margin: 0; font-size: 16px; font-weight: 700; }
.rb-cancelled-header p { margin: 4px 0 0; font-size: 13px; color: rgba(255,255,255,.65); }
.rb-cancelled-body { padding: 24px; }
.rb-cancelled-body p { margin: 0 0 12px; font-size: 14px; color: #4b5563; line-height: 1.6; }
.rb-cancelled-body p:last-child { margin-bottom: 0; }
.rb-cancelled-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 20px; }
.rb-cancelled-btn {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 10px 20px; border-radius: 8px;
    font-size: 14px; font-weight: 600; text-decoration: none;
    transition: opacity .15s;
}
.rb-cancelled-btn-primary { background: #0a0a0a; color: #fff; }
.rb-cancelled-btn-secondary { background: #f3f4f6; color: #374151; border: 1px solid #e5e7eb; }
.rb-cancelled-btn:hover { opacity: .85; }

/* ═══════════════════════════════════════════════════════════
   PAY FOR ORDER PAGE — resumen abono + total
   ══════════════════════════════════════════════════════════ */
.rb-pay-summary {
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    padding: 16px 18px;
    margin-bottom: 20px;
    font-size: 14px;
}
.rb-pay-summary-sala {
    margin-bottom: 12px; padding-bottom: 12px;
    border-bottom: 1px solid #e5e7eb;
}
.rb-pay-summary-sala strong { display: block; font-size: 15px; font-weight: 700; color: #0a0a0a; }
.rb-pay-summary-sala span { font-size: 13px; color: #6b7280; }
.rb-pay-row {
    display: flex; justify-content: space-between; align-items: baseline;
    padding: 5px 0; color: #4b5563;
}
.rb-pay-row strong { font-weight: 700; color: #0a0a0a; }
.rb-pay-row-deposit {
    margin-top: 6px; padding-top: 10px;
    border-top: 2px solid #0a0a0a;
    font-size: 15px; font-weight: 600; color: #0a0a0a;
}
.rb-pay-row-deposit strong { font-size: 18px; }
.rb-pay-row-pending { font-size: 12px; color: #9ca3af; margin-top: 2px; }


/* ════════════════════════════════════════════════════════════════
   BOOKING MODAL — Drawer mobile fullscreen
   ════════════════════════════════════════════════════════════════ */

/* Overlay oscuro */
/* ── Overlay ─────────────────────────────────────────── */
#rb-booking-modal-overlay {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 9990;
    background: rgba(0,0,0,0);
    transition: background .3s ease;
}
#rb-booking-modal-overlay.rb-mo-open {
    background: rgba(0,0,0,.55);
}

/* ── Drawer — oculto por defecto en TODOS los tamaños ── */
#rb-booking-modal {
    display: none;  /* oculto hasta que JS lo active */
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 9991;
    background: #fff;
    border-radius: 20px 20px 0 0;
    box-shadow: 0 -8px 40px rgba(0,0,0,.2);
    transform: translateY(100%);
    transition: transform .35s cubic-bezier(.22,.68,0,1.1);
    max-height: 93dvh;
    max-height: 93vh;  /* fallback */
    flex-direction: column;
    overflow: hidden;
}
/* JS pone display:flex + clase rb-mo-open */
#rb-booking-modal.rb-mo-open {
    display: flex !important;
    transform: translateY(0);
}

/* Handle / drag indicator */
.rb-mo-handle {
    width: 40px;
    height: 4px;
    background: #e8e5f0;
    border-radius: 4px;
    margin: 12px auto 0;
    flex-shrink: 0;
    cursor: grab;
}

/* Header del modal */
.rb-mo-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 18px 14px;
    border-bottom: 1px solid #f0edf8;
    flex-shrink: 0;
}
.rb-mo-title {
    font-size: 16px;
    font-weight: 800;
    color: #111;
    letter-spacing: -.02em;
}
.rb-mo-subtitle {
    font-size: 12px;
    color: #9b92b0;
    margin-top: 2px;
    font-weight: 500;
}
.rb-mo-close {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    border: none;
    background: #f0edf8;
    color: #6b6180;
    font-size: 18px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: background .15s;
    line-height: 1;
}
.rb-mo-close:hover { background: #e8e5f0; }

/* Contenido scrolleable */
.rb-mo-body {
    flex: 1;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding: 0;
}

/* Dentro del modal, el widget no necesita sticky ni borde */
#rb-booking-modal .rb-booking-widget,
#rb-booking-modal .rb-wizard-widget {
    position: static !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: 16px !important;
    margin: 0 !important;
}

/* Ocultar el sidebar en mobile cuando el modal está activo */
@media (max-width: 768px) {
    body.rb-modal-booking-open .rb-listing-sidebar {
        display: none !important;
    }
    /* El widget clonado en el modal no necesita top */
    #rb-booking-modal .rb-booking-widget {
        top: auto !important;
    }
}

/* Solo mostrar en mobile */
@media (min-width: 769px) {
    #rb-booking-modal,
    #rb-booking-modal-overlay { display: none !important; }
}

/* ══════════════════════════════════════════════════════
   Coupon Section in Booking Wizard
══════════════════════════════════════════════════════ */
.rb-coupon-section {
    margin-top: 16px;
    border-top: 1px solid #e5e7eb;
    padding-top: 12px;
}
.rb-coupon-toggle {
    display: flex;
    align-items: center;
    gap: 8px;
    background: none;
    border: none;
    cursor: pointer;
    font-size: 14px;
    font-weight: 500;
    color: #374151;
    padding: 6px 0;
    width: 100%;
    text-align: left;
    transition: color .15s;
}
.rb-coupon-toggle:hover { color: #111827; }
.rb-coupon-toggle span { flex: 1; }
.rb-coupon-chevron {
    flex-shrink: 0;
    color: #9ca3af;
    transition: transform .25s ease;
}
.rb-coupon-input-wrap {
    padding: 10px 0 0;
}
.rb-coupon-field {
    display: flex;
    gap: 8px;
}
.rb-coupon-field input {
    flex: 1;
    padding: 10px 12px;
    border: 1px solid #d1d5db;
    border-radius: 8px;
    font-size: 14px;
    outline: none;
    transition: border-color .15s;
    text-transform: uppercase;
}
.rb-coupon-field input:focus {
    border-color: #111827;
}
.rb-btn-coupon {
    padding: 10px 16px !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    border-radius: 8px !important;
    white-space: nowrap;
    background: #111827 !important;
    color: #fff !important;
    border: none !important;
    cursor: pointer;
    transition: background .15s;
}
.rb-btn-coupon:hover { background: #1f2937 !important; }
.rb-btn-coupon:disabled { opacity: .6; cursor: wait; }

.rb-coupon-msg {
    font-size: 13px;
    margin-top: 8px;
    padding: 8px 12px;
    border-radius: 8px;
    font-weight: 500;
}
.rb-coupon-success {
    background: #f0fdf4;
    color: #166534;
}
.rb-coupon-error {
    background: #fef2f2;
    color: #991b1b;
}

.rb-coupon-applied {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 6px;
    padding: 8px 12px;
    background: #f0fdf4;
    border: 1px solid #bbf7d0;
    border-radius: 8px;
}
.rb-coupon-badge {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    font-weight: 600;
    color: #166534;
}
.rb-coupon-badge svg { color: #16a34a; }
.rb-coupon-remove {
    background: none;
    border: none;
    color: #6b7280;
    font-size: 12px;
    cursor: pointer;
    font-weight: 500;
    padding: 2px 6px;
    border-radius: 4px;
    transition: all .15s;
}
.rb-coupon-remove:hover {
    color: #dc2626;
    background: #fef2f2;
}

/* Discount row in price summary */
.rb-price-discount {
    color: #16a34a;
}
.rb-price-discount span:last-child {
    color: #16a34a;
    font-weight: 600;
}

/* ══════════════════════════════════════════════════════
   WooCommerce Checkout — Coupon styling
══════════════════════════════════════════════════════ */
.woocommerce-form-coupon-toggle .woocommerce-info {
    border-top-color: #111827;
}
