/* --- PREMIUM SAAS DESIGN 2026 --- */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Playfair+Display:wght@600;700&display=swap');

:root {
    --rv-font-text: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    --rv-font-heading: 'Playfair Display', serif;
    
    --rv-bg: #ffffff;
    --rv-bg-secondary: #f9fafb;
    --rv-border: #eaecf0;
    --rv-border-focus: #94a3b8;
    
    --rv-text-main: #101828;
    --rv-text-muted: #475467;
    
    --rv-primary: #0f172a; 
    --rv-primary-hover: #334155;
    --rv-ring: rgba(15, 23, 42, 0.08);
    
    --rv-radius-lg: 16px;
    --rv-radius-md: 10px;
    --rv-radius-sm: 6px;
    
    --rv-shadow-sm: 0 1px 2px rgba(16, 24, 40, 0.05);
    --rv-shadow-md: 0 4px 6px -1px rgba(16, 24, 40, 0.08), 0 2px 4px -2px rgba(16, 24, 40, 0.04);
    --rv-shadow-xl: 0 20px 25px -5px rgba(16, 24, 40, 0.08), 0 8px 10px -6px rgba(16, 24, 40, 0.04);
}

/* --- GRID RULOTE --- */
.rv-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 32px; margin-bottom: 40px; font-family: var(--rv-font-text); }
.rv-card { background: var(--rv-bg); border: 1px solid var(--rv-border); border-radius: var(--rv-radius-lg); overflow: hidden; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); box-shadow: var(--rv-shadow-sm); display: flex; flex-direction: column; }
.rv-card:hover { transform: translateY(-4px); box-shadow: var(--rv-shadow-md); border-color: #d0d5dd; }
.rv-card img { width: 100%; height: 240px; object-fit: cover; }
.rv-card-content { padding: 24px; display: flex; flex-direction: column; flex-grow: 1; }
.rv-card-content h3 { font-family: var(--rv-font-heading); margin: 0 0 8px 0; font-size: 1.5rem; font-weight: 700; color: var(--rv-text-main); }
.rv-desc { color: var(--rv-text-muted); font-size: 0.95rem; line-height: 1.5; margin-bottom: 24px; flex-grow: 1; }
.rv-card-footer { display: flex; justify-content: space-between; align-items: center; border-top: 1px solid var(--rv-border); padding-top: 16px; margin-top: auto; }
.rv-price strong { font-size: 1.25rem; color: var(--rv-text-main); }
.rv-price small { color: var(--rv-text-muted); font-size: 0.85rem; }
.rv-btn-book { background: var(--rv-bg); color: var(--rv-text-main); border: 1px solid var(--rv-border); padding: 8px 16px; border-radius: var(--rv-radius-md); font-weight: 600; font-size: 0.9rem; text-decoration: none; transition: all 0.2s; box-shadow: var(--rv-shadow-sm); }
.rv-btn-book:hover { background: var(--rv-bg-secondary); border-color: #d0d5dd; }

/* --- FORMULAR REZERVARE (CONTAINER GENERAL) --- */
.rv-form-wrapper { font-family: var(--rv-font-text); padding: 40px 0; }

/* --- LAYOUT 2 COLOANE (Card Formular stanga / Card Dotari dreapta) --- */
.rv-layout-grid { display: grid; grid-template-columns: 1fr; gap: 24px; max-width: 900px; margin: 0 auto; align-items: start; }
@media(min-width: 800px) {
    .rv-layout-grid { grid-template-columns: 1fr 320px; gap: 32px; }
}

.rv-form-card { background: var(--rv-bg); border: 1px solid var(--rv-border); border-radius: var(--rv-radius-lg); padding: 40px; box-shadow: var(--rv-shadow-xl); width: 100%; box-sizing: border-box; }

.rv-form-header { margin-bottom: 32px; text-align: left; }
.rv-form-header h2 { font-family: var(--rv-font-heading); margin: 0 0 8px 0; font-size: 2.2rem; color: var(--rv-text-main); font-weight: 700; letter-spacing: -0.02em; }
.rv-form-header p { margin: 0; color: var(--rv-text-muted); font-size: 0.95rem; }

.rv-form-row { margin-bottom: 20px; }
.rv-col-2 { display: flex; gap: 16px; }
@media(max-width: 600px) { .rv-col-2 { flex-direction: column; gap: 20px; } }

.rv-form-group label { display: block; margin-bottom: 6px; font-weight: 500; font-size: 0.875rem; color: var(--rv-text-main); text-align: left; }
.rv-form-group input { width: 100%; padding: 10px 14px; border: 1px solid var(--rv-border); border-radius: var(--rv-radius-md); font-size: 0.95rem; font-family: inherit; color: var(--rv-text-main); background: var(--rv-bg); transition: all 0.2s ease; box-shadow: var(--rv-shadow-sm); box-sizing: border-box; }
.rv-form-group input::placeholder { color: #98a2b3; }
.rv-form-group input:focus { border-color: var(--rv-border-focus); outline: none; box-shadow: 0 0 0 4px var(--rv-ring); }

/* --- CUSTOM DROPDOWN (RICH SELECT) --- */
.rv-custom-select { position: relative; width: 100%; }
.rv-select-trigger { display: flex; justify-content: space-between; align-items: center; width: 100%; padding: 10px 14px; border: 1px solid var(--rv-border); border-radius: var(--rv-radius-md); background: var(--rv-bg); cursor: pointer; font-size: 0.95rem; color: var(--rv-text-main); box-shadow: var(--rv-shadow-sm); transition: all 0.2s ease; box-sizing: border-box; }
.rv-select-trigger:hover { border-color: #d0d5dd; }
.rv-custom-select.open .rv-select-trigger { border-color: var(--rv-border-focus); box-shadow: 0 0 0 4px var(--rv-ring); }
.rv-custom-select.open .rv-select-trigger svg { transform: rotate(180deg); }

.rv-trigger-content { display: flex; align-items: center; gap: 12px; }
.rv-trigger-img { width: 32px; height: 24px; object-fit: cover; border-radius: 4px; border: 1px solid #f1f5f9; }

.rv-select-options { position: absolute; top: calc(100% + 8px); left: 0; width: 100%; background: var(--rv-bg); border: 1px solid var(--rv-border); border-radius: var(--rv-radius-md); box-shadow: var(--rv-shadow-xl); z-index: 100; max-height: 250px; overflow-y: auto; opacity: 0; visibility: hidden; transform: translateY(-10px); transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1); }
.rv-custom-select.open .rv-select-options { opacity: 1; visibility: visible; transform: translateY(0); }

.rv-option { display: flex; align-items: center; gap: 12px; padding: 10px 14px; cursor: pointer; transition: background 0.2s; border-bottom: 1px solid #f8fafc; }
.rv-option:last-child { border-bottom: none; }
.rv-option:hover { background: var(--rv-bg-secondary); }
.rv-option img { width: 40px; height: 30px; object-fit: cover; border-radius: 4px; border: 1px solid #eaecf0; }
.rv-option span { font-weight: 500; font-size: 0.95rem; color: var(--rv-text-main); }

/* --- CARD DOTARI (CARD SEPARAT DREAPTA) --- */
.rv-amenities-card { background: var(--rv-bg-secondary); border: 1px solid var(--rv-border); border-radius: var(--rv-radius-lg); padding: 32px 24px; box-shadow: var(--rv-shadow-md); position: sticky; top: 24px; display: flex; flex-direction: column; }
.rv-amenities-header { margin-bottom: 24px; border-bottom: 1px solid var(--rv-border); padding-bottom: 16px; }
.rv-amenities-header h4 { font-family: var(--rv-font-heading); margin: 0 0 4px 0; font-size: 1.4rem; color: var(--rv-text-main); }
.rv-amenities-header p { margin: 0; font-size: 0.85rem; color: var(--rv-text-muted); }
.rv-amenities-list { display: flex; flex-direction: column; gap: 16px; }
.rv-amenity-item { display: flex; align-items: center; gap: 12px; color: var(--rv-text-main); font-size: 0.95rem; font-weight: 500; }
.rv-amenity-item svg { width: 20px; height: 20px; color: var(--rv-primary); flex-shrink: 0; }

/* --- BUTOANE FORMULAR --- */
.rv-form-actions { display: flex; gap: 12px; margin-top: 16px; }
.rv-submit-btn { flex: 1; background: var(--rv-primary); color: #fff; border: none; padding: 14px; border-radius: var(--rv-radius-md); cursor: pointer; font-size: 1rem; font-weight: 500; transition: background 0.2s; font-family: inherit; display: flex; align-items: center; justify-content: center; }
.rv-submit-btn:hover { background: var(--rv-primary-hover); }

.rv-reset-btn { display: flex; align-items: center; justify-content: center; background: var(--rv-bg); color: var(--rv-text-muted); border: 1px solid var(--rv-border); padding: 14px; border-radius: var(--rv-radius-md); cursor: pointer; transition: all 0.2s; }
.rv-reset-btn:hover { background: #fef2f2; color: #dc2626; border-color: #fca5a5; }

/* --- REZUMAT PREȚ --- */
.rv-summary-box { background: var(--rv-bg-secondary); border: 1px solid var(--rv-border); border-radius: var(--rv-radius-md); padding: 20px; margin: 24px 0; }
.rv-summary-box h4 { margin: 0 0 16px 0; font-size: 0.95rem; color: var(--rv-text-muted); text-transform: uppercase; letter-spacing: 0.05em; font-weight: 600; text-align: left; }
.rv-summary-line { display: flex; justify-content: space-between; margin-bottom: 8px; font-size: 0.95rem; color: var(--rv-text-main); }
.rv-summary-line.rv-discount { color: #059669; }
.rv-summary-total { display: flex; justify-content: space-between; align-items: center; margin-top: 16px; padding-top: 16px; border-top: 1px dashed #cbd5e1; font-size: 1.1rem; color: var(--rv-text-main); font-weight: 600; }

/* =================================================================
   SISTEM NOTIFICĂRI (TOAST)
   ================================================================= */
.rv-toast-container { position: fixed; bottom: 24px; right: 24px; display: flex; flex-direction: column; gap: 12px; z-index: 9999; font-family: var(--rv-font-text); pointer-events: none; }
.rv-toast { display: flex; align-items: center; gap: 12px; padding: 16px 20px; background: var(--rv-bg); border-left: 4px solid; border-radius: var(--rv-radius-md); box-shadow: var(--rv-shadow-xl); transform: translateX(120%); opacity: 0; transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.4s ease; pointer-events: auto; min-width: 300px; max-width: 400px; }
.rv-toast.show { transform: translateX(0); opacity: 1; }

.rv-toast-success { border-color: #10b981; }
.rv-toast-success .rv-toast-icon { color: #10b981; }
.rv-toast-error { border-color: #ef4444; }
.rv-toast-error .rv-toast-icon { color: #ef4444; }

.rv-toast-message { font-size: 0.95rem; font-weight: 500; color: var(--rv-text-main); flex: 1; }
.rv-toast-close { background: none; border: none; font-size: 1.2rem; color: var(--rv-text-muted); cursor: pointer; padding: 0; margin-left: 8px; transition: color 0.2s; }
.rv-toast-close:hover { color: var(--rv-text-main); }


/* =================================================================
   FLATPICKR: DOAR CULORI SI ESTETICA (FARA GRID-URI SUPLIMENTARE)
   ================================================================= */
.flatpickr-calendar { font-family: var(--rv-font-text) !important; background: var(--rv-bg) !important; box-shadow: var(--rv-shadow-xl) !important; border: 1px solid var(--rv-border) !important; border-radius: var(--rv-radius-lg) !important; padding: 10px !important; }
.flatpickr-month { color: var(--rv-text-main) !important; fill: var(--rv-text-main) !important; }
.flatpickr-current-month { font-size: 1.1rem !important; font-weight: 600 !important; color: var(--rv-text-main) !important; }
.flatpickr-prev-month, .flatpickr-next-month { color: var(--rv-text-main) !important; fill: var(--rv-text-main) !important; }
.flatpickr-prev-month:hover, .flatpickr-next-month:hover { background: var(--rv-bg-secondary) !important; border-radius: 50%; }
.flatpickr-weekday { color: var(--rv-text-muted) !important; font-weight: 600 !important; font-size: 0.8rem !important; }
.flatpickr-day { border-radius: var(--rv-radius-sm) !important; color: var(--rv-text-main) !important; }
.flatpickr-day:hover { background: var(--rv-bg-secondary) !important; border-color: var(--rv-border) !important; }
.flatpickr-day.flatpickr-disabled, .flatpickr-day.flatpickr-disabled:hover { color: #cbd5e1 !important; background: transparent !important; text-decoration: line-through !important; }
.flatpickr-day.inRange, .flatpickr-day.inRange:hover { background: #f1f5f9 !important; border-color: #f1f5f9 !important; box-shadow: -5px 0 0 #f1f5f9, 5px 0 0 #f1f5f9 !important; border-radius: 0 !important; color: var(--rv-text-main) !important; }
.flatpickr-day.startRange, .flatpickr-day.endRange, .flatpickr-day.startRange:hover, .flatpickr-day.endRange:hover, .flatpickr-day.startRange:focus, .flatpickr-day.endRange:focus { background: var(--rv-primary) !important; border-color: var(--rv-primary) !important; color: #fff !important; font-weight: 600 !important; }
.flatpickr-day.startRange { border-radius: var(--rv-radius-sm) 0 0 var(--rv-radius-sm) !important; box-shadow: 5px 0 0 var(--rv-primary) !important; }
.flatpickr-day.endRange { border-radius: 0 var(--rv-radius-sm) var(--rv-radius-sm) 0 !important; box-shadow: -5px 0 0 var(--rv-primary) !important; }
.flatpickr-day.startRange.endRange { border-radius: var(--rv-radius-sm) !important; box-shadow: none !important; }

/* FIX DEFINITIV PENTRU ULTIMUL RÂND DIN CALENDAR */
.dayContainer { justify-content: flex-start !important; }
.flatpickr-day { flex-basis: 14.2857% !important; max-width: 14.2857% !important; margin: 0 !important; }
