:root{--color-primary:#c65a1e;--color-primary-light:rgba(255,102,0,.1);--color-primary-dark:#d45500;--color-text:#2d3748;--color-text-light:#718096;--color-bg:#f8fafc;--color-card:#fff;--color-border:#e2e8f0;--color-disabled:#cbd5e0;--color-success:#38a169;--color-error:#e53e3e}*{box-sizing:border-box;margin:0;padding:0}body{font-family:'Segoe UI','Roboto','Helvetica Neue',sans-serif;line-height:1.6;color:var(--color-text);background-color:var(--color-bg)}.disponibilidad-title{text-align:center;color:var(--color-text);margin-bottom:2rem;font-size:2rem;font-weight:700;position:relative}.disponibilidad-title:after{content:'';display:block;width:80px;height:4px;background:var(--color-primary);margin:.5rem auto 0;border-radius:2px}.disponibilidad-filters{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:2rem;background:var(--color-card);padding:1.5rem;border-radius:12px;box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.filter-group{flex:1;min-width:200px}.filter-group label{display:block;margin-bottom:.5rem;font-weight:600;color:var(--color-text);font-size:.875rem}.filter-group select,.filter-group input{width:100%;padding:.75rem;border:1px solid var(--color-border);border-radius:8px;font-size:1rem;transition:all .2s;background-color:var(--color-bg)}.filter-group select:focus,.filter-group input[type=text]:focus{outline:none;border-color:#c65a1e;box-shadow:0 0 0 3px #fadfd0}.buscar-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;background-color:var(--color-primary);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:600;transition:all .2s;height:auto;box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.buscar-btn:hover{background-color:var(--color-primary-dark);transform:translateY(-1px);box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.buscar-btn:active{transform:translateY(0)}.buscar-btn svg{width:1rem;height:1rem}.disponibilidad-results{margin-top:1.5rem}.dia-disponibilidad{margin-bottom:2rem;background:var(--color-card);border-radius:12px;overflow:hidden;box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.dia-title{background-color:var(--color-primary);color:#fff;padding:1rem 1.5rem;font-size:1.125rem;font-weight:600;display:flex;align-items:center}.dia-title:before{content:'';display:inline-block;width:24px;height:24px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M18 10H8v2h10v-2zm0 4v-2H8v2h10zM6 6h12v12H6V6z'/%3E%3C/svg%3E");margin-right:.75rem}.horarios-container{padding:0}.horario-item{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid var(--color-border);position:relative;transition:all .2s}.horario-item:last-child{border-bottom:none}.horario-item:before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background-color:var(--color-primary);border-radius:0 4px 4px 0;opacity:0;transition:opacity .2s}.horario-item:hover{background-color:var(--color-primary-light)}.flatpickr-day.selected{background:#c65a1e !important}.horario-item:hover:before{opacity:1}.agotado{padding:5px 10px;border-radius:5px;background-color:#c65a1e;color:#fff}.horario-item.horario-pasado{opacity:.6;background-color:#ff660014}.horario-item.horario-pasado .horario-info{position:relative}.horario-item.horario-pasado .horario-info:after{content:'';position:absolute;left:0;top:50%;width:100%;height:1px;background-color:var(--color-text-light);opacity:.5}.horario-info{min-width:0}.horario-ruta{font-weight:700;color:var(--color-text);margin-bottom:.25rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.horario-hora{color:var(--color-text-light);font-size:.875rem;display:flex;align-items:center;gap:.5rem}.horario-hora:before{content:'';display:inline-block;width:16px;height:16px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23718096'%3E%3Cpath d='M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zm0 18c-4.4 0-8-3.6-8-8s3.6-8 8-8 8 3.6 8 8-3.6 8-8 8zm.5-13H11v6l5.2 3.2.8-1.3-4.5-2.7V7z'/%3E%3C/svg%3E")}.fecha-bus i{color:var(--color-text-light)}.horario-bus{color:var(--color-text-light);font-size:.875rem;display:flex;align-items:center;gap:.5rem;margin-top:.25rem}.horario-bus:before{content:'';display:inline-block;width:16px;height:16px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23718096'%3E%3Cpath d='M18 10H8v2h10v-2zm0 4v-2H8v2h10zM6 6h12v12H6V6z'/%3E%3C/svg%3E")}.horario-asientos{margin-right:1.5rem;text-align:center;min-width:80px}.asientos-disponibles{font-weight:700;color:var(--color-success);font-size:1.125rem}.asientos-total{font-size:.75rem;color:var(--color-text-light)}.reservar-btn{background-color:var(--color-primary);color:#fff;border:none;padding:.75rem 1.25rem;border-radius:8px;cursor:pointer;font-weight:600;transition:all .2s;min-width:100px;display:flex;align-items:center;justify-content:center;gap:.5rem}.reservar-btn:hover{background-color:var(--color-primary-dark);transform:translateY(-1px);box-shadow:0 2px 4px rgba(0,0,0,.1)}.reservar-btn:active{transform:translateY(0)}.reservar-btn.sin-disponibilidad{background-color:var(--color-disabled);color:var(--color-text-light);cursor:not-allowed}.reservar-btn svg{width:1rem;height:1rem}.bus-modal{position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.5);backdrop-filter:blur(4px);z-index:9999;display:none;align-items:center;justify-content:center;padding:1rem}.modal-content{background-color:var(--color-card);border-radius:12px;width:100%;max-width:600px;max-height:90vh;overflow-y:auto;padding:2rem;position:relative;box-shadow:0 10px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04);margin:20px auto;animation:modalFadeIn .3s ease-out}@keyframes modalFadeIn{from{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.modal-content h3{color:var(--color-text);margin-bottom:1.5rem;font-size:1.5rem;text-align:center;position:relative;padding-bottom:.5rem}.modal-content h3:after{content:'';display:block;width:60px;height:3px;background:var(--color-primary);margin:.5rem auto 0;border-radius:2px}.close-modal{position:absolute;top:2rem;right:1rem;font-size:1.5rem;cursor:pointer;color:var(--color-text-light);transition:all .2s;width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center;border-radius:50%;z-index:1}.close-modal:hover{color:var(--color-error);background-color:rgba(0,0,0,.05)}.loading{text-align:center;padding:2rem;color:var(--color-text-light);display:flex;flex-direction:column;align-items:center;gap:1rem}.spinner{width:40px;height:40px;border:4px solid var(--color-primary-light);border-top:4px solid var(--color-primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.success{background-color:rgba(56,161,105,.1);padding:1rem;border-radius:8px;color:var(--color-success);margin-top:1rem;border-left:4px solid var(--color-success)}.error{background-color:rgba(229,62,62,.1);padding:1rem;border-radius:8px;color:var(--color-error);margin-top:1rem;border-left:4px solid var(--color-error)}.no-results{text-align:center;padding:2rem;color:var(--color-text-light);background:var(--color-card);border-radius:12px;box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}@keyframes fadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.horario-item{animation:fadeIn .3s ease-out forwards;opacity:0}.horario-item:nth-child(1){animation-delay:.1s}.horario-item:nth-child(2){animation-delay:.2s}.horario-item:nth-child(3){animation-delay:.3s}.horario-item:nth-child(4){animation-delay:.4s}.horario-item:nth-child(5){animation-delay:.5s}.horario-item:nth-child(n+6){animation-delay:.6s}.bus-tickets-availability{max-width:800px;margin:0 auto;padding:20px;background:#f9f9f9;border-radius:5px}.form-group{margin-bottom:15px}.form-group label{display:block;margin-bottom:5px;font-weight:700}.form-group input,.form-group select{width:100%;padding:8px;border:1px solid #ddd;border-radius:4px}button{background:#c65a1e;color:#fff;border:none;padding:10px 15px;border-radius:4px;cursor:pointer}button:hover{background:#f60}#booking-modal{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5);z-index:9999;display:flex;align-items:center;justify-content:center}.booking-content{background:#fff;padding:20px;border-radius:5px;max-width:500px;width:100%;position:relative}.close-booking{position:absolute;top:10px;right:15px;font-size:24px;cursor:pointer}table{width:100%;border-collapse:collapse;margin-top:20px}table th,table td{padding:10px;border:1px solid #ddd;text-align:left}table th{background:#0073aa;color:#fff}.booking-success{background:#d4edda;color:#155724;padding:15px;border-radius:4px}.booking-error{background:#f8d7da;color:#721c24;padding:15px;border-radius:4px}.hp-field{display:none}.hp-field{visibility:hidden;height:0;margin:0;padding:0}.payment-container{display:grid;grid-template-columns:repeat(2,1fr);margin:20px auto}.resumen-reserva{background:#f8f9fa;border-radius:8px;padding:20px;margin-bottom:30px;box-shadow:0 2px 10px rgba(0,0,0,.05)}.resumen-reserva h3{margin-top:0;color:#2c3e50;border-bottom:1px solid #eee;padding-bottom:10px}.reserva-detalle{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:25px 80px}.detalle-item{display:flex;justify-content:space-between;padding:8px 0}.detalle-label{font-weight:600;color:#555}.detalle-valor{color:#2c3e50}.payment-header{display:flex;flex-direction:column;justify-content:center;align-items:center}#micuentawebstd_rest_wrapper{display:flex;justify-content:center}.intl-tel-input{display:block;width:100%}.intl-tel-input .flag-container{padding:0 5px 0 8px}.intl-tel-input .selected-flag{padding:0 15px 0 8px}.intl-tel-input input{padding-left:48px !important;width:100% !important}.country-list{width:300px;max-height:200px;overflow-y:auto}.reserva-confirmada{max-width:800px;margin:30px auto;padding:25px;border:1px solid #e1e1e1;border-radius:10px;background:#f9f9f9;box-shadow:0 2px 10px rgba(0,0,0,.05)}.reserva-header{text-align:center;margin-bottom:30px;padding-bottom:20px;border-bottom:1px solid #e1e1e1}.reserva-header h2{color:#c65a1e;margin-bottom:10px}.reserva-subtitulo{color:#6c757d;font-size:1.1em}.reserva-detalles{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;margin-bottom:30px}.reserva-detalles h3{color:#c65a1e;border-bottom:1px solid #dee2e6;padding-bottom:8px;margin-bottom:15px;font-size:1.2em}.reserva-notas{background:#f1f8ff;padding:15px;border-radius:5px;border-left:4px solid #c65a1e}.nota{display:flex;align-items:center;margin:10px 0}.nota i{margin-right:10px;color:#c65a1e}.boton-home{padding:15px 20px;background-color:#c65a1e;color:#fff;border-radius:20px}.boton-home:hover{color:#fff}.form-colum{display:flex;gap:20px}.form-colum .form-group{flex:1}@media (max-width:768px){.reserva-detalle{grid-template-columns:1fr}.horario-item{gap:5px;padding:5px}.horario-asientos{margin:0;align-self:flex-end}.reservar-btn{width:100%}.disponibilidad-filters{flex-direction:column}.buscar-btn{width:100%}.payment-container{display:flex;flex-direction:column}.horario-ruta img{width:60px}}