/* ==========================================================================
   KUAD THEME DESIGNER - REDISEÑO Y SOPORTE DE PRESETS: BOOKING WIDGET (KRS)
   Módulo desacoplado bajo el estándar de arquitectura KUAD (< 560 líneas).
   Aplica exclusivamente bajo el ámbito de temas kuad-theme-designer (Non-Breaking Divi).
   ========================================================================== */

/* 1. Inyección y Mapeo de Tokens de Preset al Árbol del Widget */
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget,
.ks-section-reservations-widget .kuad-krs-booking-widget {
    --kuad-krs-primary: var(--ks-primary-color, #2D1A68);
    --kuad-krs-primary-hover: var(--ks-secondary-color, #C05A86);
    --kuad-krs-bg: var(--ks-card-bg, #ffffff);
    --kuad-krs-surface: var(--ks-neumorphic-bg-soft, #f8fafc);
    --kuad-krs-border: var(--ks-input-border-color, rgba(0, 0, 0, 0.08));
    --kuad-krs-text: var(--ks-text-color, #333333);
    --kuad-krs-text-light: var(--ks-text-muted, #666666);
    --kuad-krs-shadow: var(--ks-card-shadow, 0 10px 30px rgba(0, 0, 0, 0.03));
    --kuad-krs-shadow-lg: var(--ks-hover-shadow, 0 15px 45px rgba(0, 0, 0, 0.08));
    --kuad-krs-success: var(--ks-accent-color, #10b981);
    --kuad-krs-danger: #ef4444;

    background: var(--ks-card-bg, #ffffff) !important;
    border-radius: var(--ks-card-radius, 24px) !important;
    padding: clamp(20px, 4vw, 40px) !important;
    box-shadow: var(--ks-card-shadow, 0 10px 30px rgba(0, 0, 0, 0.04)) !important;
    border: var(--ks-neumorphic-border, 1px solid rgba(0, 0, 0, 0.06)) !important;
    max-width: 860px !important;
    margin: 0 auto !important;
    box-sizing: border-box !important;
    font-family: var(--ks-body-font, 'Inter', sans-serif) !important;
    color: var(--ks-text-color, #333333) !important;
    transition: background-color 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease !important;
}

/* 2. Encabezados, Títulos y Tipografía */
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .kuad-krs-title,
.ks-section-reservations-widget .kuad-krs-booking-widget .kuad-krs-title {
    font-family: var(--ks-heading-font, 'Poppins', sans-serif) !important;
    color: var(--ks-heading-color, var(--ks-primary-color, #2D1A68)) !important;
    font-size: clamp(1.4rem, 2.8vw, 1.9rem) !important;
    font-weight: 700 !important;
    letter-spacing: -0.015em !important;
    margin-bottom: 8px !important;
}

[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .kuad-krs-subtitle,
.ks-section-reservations-widget .kuad-krs-booking-widget .kuad-krs-subtitle {
    color: var(--ks-text-muted, #666666) !important;
    font-size: var(--ks-font-size-body, 15px) !important;
    line-height: 1.5 !important;
    margin-bottom: 24px !important;
}

[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .kuad-krs-input-group label,
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-block-label {
    font-family: var(--ks-body-font, sans-serif) !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    color: var(--ks-heading-color, var(--ks-text-color, #333333)) !important;
    margin-bottom: 8px !important;
}

[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .help-text { color: var(--ks-text-muted, #777777) !important; font-size: 13px !important; margin-top: 6px !important; }

/* 3. Barra de Progreso del Wizard */
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-public-progress-bar {
    border-bottom: 1px solid var(--ks-input-border-color, rgba(0, 0, 0, 0.08)) !important;
    padding-bottom: 16px !important;
    margin-bottom: 28px !important;
    gap: 8px !important;
}

[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-progress-step {
    background: var(--ks-neumorphic-bg-soft, #f1f5f9) !important;
    color: var(--ks-text-muted, #64748b) !important;
    border: 1px solid var(--ks-card-border-color, rgba(0, 0, 0, 0.06)) !important;
    border-radius: 24px !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    padding: 8px 14px !important;
    transition: all 0.25s ease !important;
}

[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-progress-step.active {
    background: rgba(var(--ks-secondary-rgb, 192, 90, 134), 0.1) !important;
    color: var(--ks-secondary-color, #C05A86) !important;
    border: 1px solid rgba(var(--ks-secondary-rgb, 192, 90, 134), 0.3) !important;
}

[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-progress-step.current {
    background: var(--ks-primary-color, #2D1A68) !important;
    color: var(--ks-on-primary-text, #ffffff) !important;
    border: 1px solid var(--ks-primary-color, #2D1A68) !important;
    box-shadow: 0 4px 14px var(--ks-primary-glow, rgba(45, 26, 104, 0.2)) !important;
    font-weight: 700 !important;
}

/* 4. Selectores Touch UI (Sucursal, Recursos, Modalidad) */
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-tui-selector {
    background: var(--ks-neumorphic-bg-soft, #f8fafc) !important;
    border: 1px solid var(--ks-card-border-color, rgba(0, 0, 0, 0.06)) !important;
    border-radius: var(--ks-card-radius, 16px) !important;
    padding: 8px !important;
    gap: 10px !important;
}

[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-tui-option {
    background: var(--ks-card-bg, #ffffff) !important;
    color: var(--ks-text-color, #333333) !important;
    border: 1.5px solid var(--ks-card-border-color, rgba(0, 0, 0, 0.08)) !important;
    border-radius: var(--ks-button-radius, 12px) !important;
    min-height: 48px !important;
    padding: 12px 18px !important;
    font-family: var(--ks-body-font, sans-serif) !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.02) !important;
    transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-tui-option:hover {
    border-color: var(--ks-secondary-color, #C05A86) !important;
    color: var(--ks-primary-color, #2D1A68) !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 6px 14px var(--ks-primary-glow, rgba(0, 0, 0, 0.06)) !important;
}

[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-tui-option.active {
    background: var(--ks-primary-color, #2D1A68) !important;
    color: var(--ks-on-primary-text, #ffffff) !important;
    border-color: var(--ks-primary-color, #2D1A68) !important;
    box-shadow: 0 6px 18px var(--ks-primary-glow, rgba(45, 26, 104, 0.25)) !important;
}

[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-tui-option.active .krs-tui-option-text { color: var(--ks-on-primary-text, #ffffff) !important; }

[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-tui-option-discount-badge {
    background: var(--ks-accent-color, #1BA59D) !important;
    color: var(--ks-on-accent-text, #ffffff) !important;
    border: 1.5px solid var(--ks-card-bg, #ffffff) !important;
    border-radius: 8px !important;
    font-weight: 800 !important;
    font-size: 11px !important;
    box-shadow: 0 2px 8px var(--ks-accent-glow, rgba(27, 165, 157, 0.3)) !important;
}

[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-tui-option-has-discount { border-color: rgba(var(--ks-secondary-rgb, 192, 90, 134), 0.35) !important; }
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-tui-option-has-discount:hover { border-color: var(--ks-secondary-color, #C05A86) !important; }

/* 5. Inputs y Formularios (Preserva fondo dinámico en :focus) */
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget input:not([type="checkbox"]):not([type="radio"]),
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget select,
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget textarea {
    min-height: 48px !important;
    height: 48px !important;
    border-radius: var(--ks-input-radius, 12px) !important;
    border: var(--ks-input-border, 1.5px solid rgba(0, 0, 0, 0.12)) !important;
    background-color: var(--ks-input-bg, var(--ks-card-bg, #ffffff)) !important;
    color: var(--ks-text-color, #333333) !important;
    font-family: var(--ks-body-font, sans-serif) !important;
    font-size: 16px !important;
    box-sizing: border-box !important;
    transition: all 0.25s ease !important;
}

[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget input:focus,
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget select:focus,
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget textarea:focus {
    border-color: var(--ks-primary-color, #2D1A68) !important;
    outline: none !important;
    background-color: var(--ks-input-bg, var(--ks-card-bg, #ffffff)) !important;
    color: var(--ks-text-color, #333333) !important;
    box-shadow: 0 0 0 3.5px var(--ks-primary-glow, rgba(45, 26, 104, 0.15)) !important;
}

/* Mini Calendar Picker Popup Global Overrides */
[class*="theme-kuad-theme-designer"] .kuad-calendar-mini-picker-wrapper {
    background: var(--ks-card-bg, #ffffff) !important;
    border-radius: var(--ks-card-radius, 20px) !important;
    box-shadow: var(--ks-card-shadow, 0 16px 40px rgba(0, 0, 0, 0.35)) !important;
    border: var(--ks-neumorphic-border, 1.5px solid var(--ks-card-border-color, rgba(0, 0, 0, 0.08))) !important;
    padding: 20px !important;
    color: var(--ks-text-color, #333333) !important;
}

[class*="theme-kuad-theme-designer"] .kuad-calendar-mini-picker-month-arrows-date,
[class*="theme-kuad-theme-designer"] .kuad-calendar-mini-picker-month,
[class*="theme-kuad-theme-designer"] .kuad-calendar-mini-picker-year {
    font-family: var(--ks-heading-font, sans-serif) !important;
    color: var(--ks-heading-color, var(--ks-text-color, #333333)) !important;
    font-size: 16px !important;
    font-weight: 700 !important;
}

[class*="theme-kuad-theme-designer"] .kuad-calendar-mini-picker-month-arrows-arrow {
    background-color: var(--ks-primary-color, #2D1A68) !important;
    color: var(--ks-on-primary-text, #ffffff) !important;
    border-radius: 50% !important;
    width: 34px !important;
    height: 34px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: background-color 0.2s ease, transform 0.2s ease !important;
}

[class*="theme-kuad-theme-designer"] .kuad-calendar-mini-picker-month-arrows-arrow:hover { background-color: var(--ks-secondary-color, #C05A86) !important; transform: scale(1.08) !important; }

[class*="theme-kuad-theme-designer"] .kuad-calendar-mini-picker-days-container { background-color: transparent !important; border: none !important; color: var(--ks-text-color, #333333) !important; }

[class*="theme-kuad-theme-designer"] .kuad-calendar-mini-picker-days-header-name {
    color: var(--ks-heading-color, var(--ks-primary-color, #2D1A68)) !important;
    border-color: var(--ks-card-border-color, rgba(0, 0, 0, 0.08)) !important;
    font-weight: 700 !important;
    font-size: 12px !important;
}

[class*="theme-kuad-theme-designer"] .kuad-calendar-mini-picker-day { border-color: var(--ks-card-border-color, rgba(0, 0, 0, 0.06)) !important; transition: all 0.2s ease !important; }

[class*="theme-kuad-theme-designer"] .kuad-calendar-mini-picker-day-number { color: var(--ks-text-color, #333333) !important; font-weight: 600 !important; }

[class*="theme-kuad-theme-designer"] .kuad-calendar-mini-picker-day:hover { background-color: rgba(var(--ks-primary-rgb, 45, 26, 104), 0.15) !important; border-radius: 8px !important; }

[class*="theme-kuad-theme-designer"] .kuad-calendar-mini-picker-day-selected {
    background-color: var(--ks-primary-color, #2D1A68) !important;
    border-radius: 8px !important;
    box-shadow: 0 4px 12px var(--ks-primary-glow, rgba(45, 26, 104, 0.25)) !important;
}

[class*="theme-kuad-theme-designer"] .kuad-calendar-mini-picker-day-selected .kuad-calendar-mini-picker-day-number { color: var(--ks-on-primary-text, #ffffff) !important; background-color: transparent !important; font-weight: 800 !important; }

[class*="theme-kuad-theme-designer"] .kuad-calendar-mini-picker-day-weekend .kuad-calendar-mini-picker-day-number { color: var(--ks-secondary-color, #C05A86) !important; }

[class*="theme-kuad-theme-designer"] .kuad-calendar-mini-picker-day-selected.kuad-calendar-mini-picker-day-weekend .kuad-calendar-mini-picker-day-number { color: var(--ks-on-primary-text, #ffffff) !important; }

[class*="theme-kuad-theme-designer"] .kuad-calendar-mini-picker-day-previous .kuad-calendar-mini-picker-day-number,
[class*="theme-kuad-theme-designer"] .kuad-calendar-mini-picker-day-next .kuad-calendar-mini-picker-day-number { color: var(--ks-text-muted, #94a3b8) !important; opacity: 0.45 !important; }

/* 6. Slots de Horarios (.kuad-krs-slot-btn) y Asientos Butacas */
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .kuad-krs-slot-btn {
    height: 48px !important;
    border-radius: var(--ks-button-radius, 12px) !important;
    border: 1.5px solid var(--ks-card-border-color, rgba(0, 0, 0, 0.08)) !important;
    background: var(--ks-card-bg, #ffffff) !important;
    color: var(--ks-text-color, #333333) !important;
    font-family: var(--ks-body-font, sans-serif) !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.02) !important;
    transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .kuad-krs-slot-btn:hover:not(:disabled) {
    border-color: var(--ks-primary-color, #2D1A68) !important;
    color: var(--ks-primary-color, #2D1A68) !important;
    background: var(--ks-card-bg, #ffffff) !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 6px 14px var(--ks-primary-glow, rgba(45, 26, 104, 0.1)) !important;
}

[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .kuad-krs-slot-btn.selected {
    background: var(--ks-primary-color, #2D1A68) !important;
    color: var(--ks-on-primary-text, #ffffff) !important;
    border-color: var(--ks-primary-color, #2D1A68) !important;
    box-shadow: 0 6px 18px var(--ks-primary-glow, rgba(45, 26, 104, 0.25)) !important;
}

[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .kuad-krs-seat:hover:not(.occupied) { border-color: var(--ks-primary-color, #2D1A68) !important; color: var(--ks-primary-color, #2D1A68) !important; }
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .kuad-krs-seat.selected { background-color: var(--ks-primary-color, #2D1A68) !important; border-color: var(--ks-primary-color, #2D1A68) !important; color: var(--ks-on-primary-text, #ffffff) !important; box-shadow: 0 4px 12px var(--ks-primary-glow, rgba(45, 26, 104, 0.25)) !important; }

/* 7. Tarjetas Interactivas de Servicios, Planes, Mesas (Restaurante), Inventario y Extras */
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-service-label-card,
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-plan-card,
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-category-card,
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-feature-card,
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-extra-card,
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-table-card {
    background: var(--ks-card-bg, #ffffff) !important;
    border: 1.5px solid var(--ks-card-border-color, rgba(0, 0, 0, 0.08)) !important;
    border-radius: var(--ks-card-radius, 16px) !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03) !important;
    transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-service-label-card:hover,
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-plan-card:hover,
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-category-card:hover,
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-feature-card:hover,
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-extra-card:hover,
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-table-card.available:hover {
    border-color: var(--ks-secondary-color, #C05A86) !important;
    transform: translateY(-2px) !important;
    box-shadow: var(--ks-card-shadow, 0 8px 24px rgba(0, 0, 0, 0.06)) !important;
}

[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-service-label-card.is-active,
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-plan-card.active,
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-category-card.active,
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-extra-card.active,
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-table-card.selected {
    border-color: var(--ks-primary-color, #2D1A68) !important;
    background-color: rgba(var(--ks-primary-rgb, 45, 26, 104), 0.04) !important;
    box-shadow: 0 8px 20px var(--ks-primary-glow, rgba(45, 26, 104, 0.12)) !important;
}

[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-table-card.occupied { background: var(--ks-neumorphic-bg-soft, #f8fafc) !important; opacity: 0.55 !important; }

[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-plan-card h4,
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-category-card h4,
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-plan-card-title,
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-feature-title,
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-table-title { font-family: var(--ks-heading-font, sans-serif) !important; color: var(--ks-heading-color, var(--ks-text-color, #333333)) !important; font-weight: 700 !important; }

[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-table-capacity { color: var(--ks-text-muted, #64748b) !important; font-family: var(--ks-body-font, sans-serif) !important; }

[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-table-price-extra { color: var(--ks-accent-color, #1BA59D) !important; font-family: var(--ks-body-font, sans-serif) !important; font-weight: 700 !important; }

[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-table-status-pill.available {
    background-color: rgba(var(--ks-accent-rgb, 27, 165, 157), 0.12) !important;
    color: var(--ks-accent-color, #10b981) !important;
    border: 1px solid rgba(var(--ks-accent-rgb, 27, 165, 157), 0.25) !important;
}

[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-table-card-img-overlay { background: rgba(var(--ks-primary-rgb, 45, 26, 104), 0.65) !important; color: var(--ks-on-primary-text, #ffffff) !important; }

[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-table-card-img-overlay:hover { background: var(--ks-primary-color, #2D1A68) !important; transform: scale(1.1) !important; }

/* Textos de Servicios Extras (krs-extra-card) */
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-extra-card h4,
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-extra-card .krs-extra-card-title { font-family: var(--ks-heading-font, sans-serif) !important; color: var(--ks-heading-color, var(--ks-text-color, #333333)) !important; font-weight: 700 !important; }

[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-extra-card p,
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-extra-card .krs-extra-card-desc,
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-extra-card span,
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-extra-card .krs-extra-card-price-label { color: var(--ks-text-muted, #94a3b8) !important; }
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-extra-card strong,
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-extra-card .krs-extra-card-price-val { color: var(--ks-accent-color, #1BA59D) !important; }

/* Caja de Equipamiento Adicional (krs-inventory-additional-box) */
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-inventory-additional-box {
    background: var(--ks-neumorphic-bg-soft, rgba(var(--ks-primary-rgb, 45, 26, 104), 0.05)) !important;
    border: 1px solid var(--ks-card-border-color, rgba(var(--ks-primary-rgb, 45, 26, 104), 0.12)) !important;
    border-radius: var(--ks-input-radius, 12px) !important;
    color: var(--ks-text-color, #333333) !important;
}

[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-inventory-additional-box strong,
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-inventory-additional-title { color: var(--ks-heading-color, var(--ks-primary-color, #2D1A68)) !important; }

/* Sección Cumpleañeros (krs-celebrant-row) & Botón Agregar */
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget #krs-public-celebrants-section {
    background: var(--ks-neumorphic-bg-soft, #f8fafc) !important;
    border: 1px solid var(--ks-card-border-color, rgba(0, 0, 0, 0.06)) !important;
    border-radius: var(--ks-card-radius, 16px) !important;
}

[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-celebrant-row {
    background: var(--ks-card-bg, #ffffff) !important;
    border: 1.5px solid var(--ks-card-border-color, rgba(0, 0, 0, 0.08)) !important;
    border-radius: var(--ks-card-radius, 14px) !important;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.03) !important;
}

[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-celebrant-row label { color: var(--ks-heading-color, var(--ks-text-color, #333333)) !important; font-weight: 600 !important; }

[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-celebrant-row input {
    background-color: var(--ks-input-bg, var(--ks-card-bg, #ffffff)) !important;
    color: var(--ks-text-color, #333333) !important;
    border: var(--ks-input-border, 1.5px solid rgba(0, 0, 0, 0.12)) !important;
}

[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-celebrant-row .krs-btn-remove-celebrant {
    background: var(--ks-button-remove-bg-color, #ef4444) !important;
    color: var(--ks-button-remove-text-color, #ffffff) !important;
    border: none !important;
    border-radius: var(--ks-button-radius, 10px) !important;
    transition: all 0.2s ease !important;
}

[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-celebrant-row .krs-btn-remove-celebrant:hover { filter: brightness(1.15) !important; transform: scale(1.05) !important; }

[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget #krs-public-btn-add-celebrant {
    background: transparent !important;
    color: var(--ks-primary-color, #2D1A68) !important;
    border: 2px dashed var(--ks-primary-color, #2D1A68) !important;
    border-radius: var(--ks-button-radius, 12px) !important;
    height: 48px !important;
}

[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget #krs-public-btn-add-celebrant:hover {
    background: rgba(var(--ks-primary-rgb, 45, 26, 104), 0.1) !important;
    color: var(--ks-primary-color, #2D1A68) !important;
    border-color: var(--ks-primary-color, #2D1A68) !important;
    transform: translateY(-1px) !important;
}

[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-tui-indicator { color: var(--ks-secondary-color, #C05A86) !important; }

/* 8. Precios, Descuentos y Badges Animados */
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-discount-animate-badge {
    background-color: var(--ks-accent-color, #1BA59D) !important;
    color: var(--ks-on-accent-text, #ffffff) !important;
    border-radius: 12px !important;
    box-shadow: 0 4px 12px var(--ks-accent-glow, rgba(27, 165, 157, 0.3)) !important;
}

[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-price-breakdown-hint {
    background: rgba(var(--ks-accent-rgb, 27, 165, 157), 0.08) !important;
    border-color: rgba(var(--ks-accent-rgb, 27, 165, 157), 0.25) !important;
    color: var(--ks-accent-color, #1BA59D) !important;
    border-radius: var(--ks-input-radius, 10px) !important;
}

[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-step3-price-container strong,
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-summary-price-container strong,
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-total-price-val { color: var(--ks-primary-color, #2D1A68) !important; font-family: var(--ks-heading-font, sans-serif) !important; font-weight: 800 !important; }

/* 9. Resumen y Datos de Contacto */
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-summary-box {
    background: var(--ks-neumorphic-bg-soft, #f8fafc) !important;
    border: 1px solid var(--ks-card-border-color, rgba(0, 0, 0, 0.06)) !important;
    border-radius: var(--ks-card-radius, 20px) !important;
    padding: 24px !important;
}

[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-summary-label { color: var(--ks-text-muted, #64748b) !important; font-size: 14px !important; }
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-summary-value { color: var(--ks-heading-color, var(--ks-text-color, #333333)) !important; font-weight: 700 !important; font-size: 15px !important; }

[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-contact-details-box {
    background: var(--ks-card-bg, #ffffff) !important;
    border: 1px solid var(--ks-card-border-color, rgba(0, 0, 0, 0.08)) !important;
    border-radius: var(--ks-card-radius, 20px) !important;
    box-shadow: var(--ks-card-shadow, 0 6px 18px rgba(0, 0, 0, 0.03)) !important;
    padding: 24px !important;
}

[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-contact-details-box h4,
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-contact-details-title {
    font-family: var(--ks-heading-font, sans-serif) !important;
    color: var(--ks-heading-color, var(--ks-primary-color, #2D1A68)) !important;
    font-size: 18px !important;
    font-weight: 700 !important;
}

/* 10. Pasarelas de Pago (.krs-gateway-card) */
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-gateway-card {
    background: var(--ks-card-bg, #ffffff) !important;
    border: 2px solid var(--ks-card-border-color, rgba(0, 0, 0, 0.08)) !important;
    border-radius: var(--ks-card-radius, 20px) !important;
    transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-gateway-card:hover {
    border-color: var(--ks-secondary-color, #C05A86) !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 10px 20px -8px var(--ks-secondary-glow, rgba(192, 90, 134, 0.15)) !important;
}

[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-gateway-card.selected {
    border-color: var(--ks-primary-color, #2D1A68) !important;
    background: rgba(var(--ks-primary-rgb, 45, 26, 104), 0.03) !important;
    box-shadow: 0 10px 24px -8px var(--ks-primary-glow, rgba(45, 26, 104, 0.25)) !important;
}

[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-gateway-card-title { font-family: var(--ks-heading-font, sans-serif) !important; color: var(--ks-heading-color, var(--ks-primary-color, #2D1A68)) !important; font-weight: 700 !important; }
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-gateway-card-desc { color: var(--ks-text-muted, #64748b) !important; }
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-gateway-card-icon { background: var(--ks-neumorphic-bg-soft, #f8fafc) !important; border-radius: 14px !important; }
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-gateway-card.selected .krs-gateway-card-icon { background: rgba(var(--ks-primary-rgb, 45, 26, 104), 0.1) !important; }

/* 11. Botones del Sistema (ks-global-inputs-system-button) y Wizard */
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .ks-global-inputs-system-button,
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-btn-next,
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-btn-print-ticket {
    background: var(--ks-button-bg-color, var(--ks-primary-color, #2D1A68)) !important;
    color: var(--ks-button-text-color, var(--ks-on-primary-text, #ffffff)) !important;
    border: 1.5px solid var(--ks-button-border-color, transparent) !important;
    border-radius: var(--ks-button-radius, 14px) !important;
    font-family: var(--ks-body-font, sans-serif) !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    min-height: 50px !important;
    height: 50px !important;
    box-shadow: 0 4px 14px var(--ks-primary-glow, rgba(45, 26, 104, 0.2)) !important;
    transition: all 0.25s ease !important;
}

[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .ks-global-inputs-system-button:hover:not(:disabled),
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-btn-next:hover:not(:disabled),
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-btn-print-ticket:hover:not(:disabled) {
    background: var(--ks-secondary-color, #C05A86) !important;
    color: var(--ks-on-secondary-text, #ffffff) !important;
    border-color: transparent !important;
    box-shadow: 0 6px 18px var(--ks-secondary-glow, rgba(192, 90, 134, 0.25)) !important;
    transform: translateY(-2px) !important;
}

[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-btn-prev {
    background: var(--ks-card-bg, #ffffff) !important;
    border: 1.5px solid var(--ks-input-border-color, rgba(0, 0, 0, 0.12)) !important;
    border-radius: var(--ks-button-radius, 14px) !important;
    color: var(--ks-text-color, #333333) !important;
    font-family: var(--ks-body-font, sans-serif) !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    min-height: 50px !important;
    height: 50px !important;
    transition: all 0.25s ease !important;
}

[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-btn-prev:hover {
    background-color: var(--ks-neumorphic-bg-soft, #f8fafc) !important;
    border-color: var(--ks-primary-color, #2D1A68) !important;
    color: var(--ks-primary-color, #2D1A68) !important;
    transform: translateY(-1px) !important;
}

[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .kuad-krs-submit-btn,
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-btn-confirm-payment,
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-btn-close-ticket {
    background: var(--ks-button-submit-bg-color, var(--ks-accent-color, #1BA59D)) !important;
    color: var(--ks-button-submit-text-color, var(--ks-on-accent-text, #ffffff)) !important;
    border: none !important;
    border-radius: var(--ks-button-radius, 14px) !important;
    font-family: var(--ks-body-font, sans-serif) !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    min-height: 50px !important;
    height: 50px !important;
    box-shadow: 0 4px 14px var(--ks-accent-glow, rgba(27, 165, 157, 0.25)) !important;
    transition: all 0.25s ease !important;
}

[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .kuad-krs-submit-btn:hover:not(:disabled),
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-btn-confirm-payment:hover:not(:disabled),
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-btn-close-ticket:hover:not(:disabled) { filter: brightness(1.08) !important; box-shadow: 0 6px 20px var(--ks-accent-glow, rgba(27, 165, 157, 0.35)) !important; transform: translateY(-2px) !important; }

/* 12. Comprobante Ticket de Reserva y Footer */
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-ticket-wrapper {
    background: var(--ks-card-bg, #ffffff) !important;
    border: 1px solid var(--ks-card-border-color, rgba(0, 0, 0, 0.08)) !important;
    border-radius: var(--ks-card-radius, 24px) !important;
    box-shadow: var(--ks-card-shadow, 0 10px 30px rgba(0, 0, 0, 0.06)) !important;
    overflow: hidden !important;
}

[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-ticket-title { font-family: var(--ks-heading-font, sans-serif) !important; color: var(--ks-heading-color, var(--ks-primary-color, #2D1A68)) !important; }

[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-ticket-subtitle,
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-ticket-label { color: var(--ks-text-muted, #64748b) !important; }
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-ticket-value { color: var(--ks-heading-color, var(--ks-text-color, #333333)) !important; }

[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-ticket-total-label { color: var(--ks-heading-color, var(--ks-text-color, #333333)) !important; font-weight: 700 !important; }
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-ticket-total-value { color: var(--ks-heading-color, var(--ks-primary-color, #2D1A68)) !important; font-weight: 800 !important; }

[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-ticket-pending-card {
    background: rgba(var(--ks-accent-rgb, 27, 165, 157), 0.08) !important;
    border: 1px solid rgba(var(--ks-accent-rgb, 27, 165, 157), 0.25) !important;
    border-radius: var(--ks-card-radius, 14px) !important;
}

[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-ticket-pending-title { color: var(--ks-heading-color, var(--ks-text-color, #333333)) !important; font-weight: 700 !important; }

/* Footer del Ticket */
[class*="theme-kuad-theme-designer"] .kuad-krs-booking-widget .krs-ticket-footer {
    background: var(--ks-card-bg, #ffffff) !important;
    border-top: 1px solid var(--ks-card-border-color, rgba(0, 0, 0, 0.08)) !important;
    border-radius: 0 0 var(--ks-card-radius, 24px) var(--ks-card-radius, 24px) !important;
    padding: 24px !important;
    display: flex !important;
    gap: 12px !important;
}
