.booking-contact-layout{display:flex;flex-direction:column;gap:3rem;max-width:1200px;margin:0 auto;padding:0 1rem}.booking-form-container,.contact-info-container{width:100%}.booking-form-content,.contact-info-content{background:#fff;border-radius:12px;padding:2rem;box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.booking-form-content h2,.contact-info-content h2{margin-bottom:1rem;color:#2c3e50;font-size:1.75rem;font-weight:700;text-align:center}.booking-form-content p{margin-bottom:2rem;color:#64748b;text-align:center;line-height:1.6}.location-cards{display:flex;flex-direction:column;gap:1.5rem}.location-cards .card{padding:1.5rem;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc;transition:all .3s ease}.location-cards .card:hover{border-color:#406463;box-shadow:0 4px 12px rgba(90,125,124,.15)}.location-cards .card h3{color:#406463;font-size:1.25rem;font-weight:600;margin-bottom:1rem}.location-cards .card p{margin-bottom:.75rem;color:#475569;line-height:1.5}.location-cards .card .cta-link{color:#406463;text-decoration:none;font-weight:500;transition:color .3s ease}.location-cards .card .cta-link:hover{color:#4a6d6c;text-decoration:underline}@media (min-width:768px){.booking-contact-layout{flex-direction:row;gap:3rem;align-items:flex-start}.booking-form-container{flex:1;min-width:0}.contact-info-container{flex:0 0 400px}.booking-form-content h2,.contact-info-content h2{text-align:left}.booking-form-content p{text-align:left}}@media (min-width:1024px){.contact-info-container{flex:0 0 450px}}#booking-widget #step4,#booking-widget #step4>div{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:1.2rem;width:100%}#whatsapp-contact-form{display:flex;flex-direction:column;gap:1.5rem;width:100%;max-width:none;margin:0}#whatsapp-contact-form>div{display:flex;flex-direction:column;gap:.5rem}#whatsapp-contact-form label{font-weight:600;color:#2c3e50;font-size:1rem;text-align:left}#whatsapp-contact-form input,#whatsapp-contact-form select,#whatsapp-contact-form textarea{padding:.875rem;border:2px solid #e2e8f0;border-radius:8px;font-size:1rem;transition:border-color .3s ease,box-shadow .3s ease;font-family:inherit}#whatsapp-contact-form input[readonly]{cursor:pointer;background-color:#fff}#whatsapp-contact-form input[readonly]:hover{border-color:#406463}.flatpickr-calendar{box-shadow:0 10px 25px rgba(0,0,0,.15)!important;border-radius:8px!important;border:none!important}.flatpickr-day.selected{background:#406463!important;border-color:#406463!important}.flatpickr-day:hover{background:#e8f2f1!important;border-color:#406463!important}.flatpickr-current-month .flatpickr-monthDropdown-months,.flatpickr-current-month .numInputWrapper{color:#2c3e50!important}#whatsapp-contact-form input:focus,#whatsapp-contact-form select:focus,#whatsapp-contact-form textarea:focus{outline:0;border-color:#406463;box-shadow:0 0 0 3px rgba(90,125,124,.1)}#whatsapp-contact-form textarea{resize:vertical;min-height:100px}#whatsapp-contact-form select{cursor:pointer}#whatsapp-contact-form button[type=submit]:active{transform:translateY(0)}#whatsapp-contact-form button[type=submit] i{font-size:1.2rem}#success-message{background-color:#d4edda;color:#155724;padding:1rem;border-radius:8px;border:1px solid #c3e6cb;margin-top:1rem;display:flex;align-items:center;gap:.5rem}#success-message i{color:#28a745}@media (max-width:768px){#whatsapp-contact-form{margin:1.5rem auto;gap:1.25rem}#whatsapp-contact-form input,#whatsapp-contact-form select,#whatsapp-contact-form textarea{padding:.75rem;font-size:.95rem}}#booking-widget #step4 h2{margin-bottom:.5rem;font-size:2rem;font-weight:700;color:#2c3e50}#booking-widget #step4 p{margin-bottom:.5rem;color:#406463;font-size:1.1rem}#booking-widget #download-ics-div{width:100%;display:flex;justify-content:center;margin-top:1rem}#booking-widget #download-ics-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-left:auto;margin-right:auto;min-width:200px}#booking-widget #step3,#booking-widget #step3>div{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:1.2rem;width:100%}#booking-widget #step3 h2{margin-bottom:.5rem;font-size:2rem;font-weight:700;color:#2c3e50}#booking-widget #step3 p{margin-bottom:.5rem;color:#406463;font-size:1.1rem}#booking-widget #confirmation-details{width:100%;max-width:420px;background:#f1f5f9;border-radius:10px;padding:1.2rem 1.5rem;margin-bottom:1rem;text-align:left;color:#2c3e50;box-shadow:0 2px 8px rgba(90,125,124,.04)}#booking-widget .step3-btn-group{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;margin-top:1rem;margin-bottom:.5rem;width:100%}#booking-widget #step3 button{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-left:auto;margin-right:auto;min-width:180px}#booking-widget #step22,#booking-widget #step22>div{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:1.2rem;width:100%}#booking-widget #step22 h2{margin-bottom:.5rem;font-size:2rem;font-weight:700;color:#2c3e50}#booking-widget #available-slots{width:100%;margin-bottom:1rem;display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}#booking-widget .step22-btn-group{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;margin-top:1rem;margin-bottom:.5rem;width:100%}#booking-widget #step22 button{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-left:auto;margin-right:auto;min-width:180px}#booking-widget #earliest-slot-div,#booking-widget #step2{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:1.2rem;width:100%}#booking-widget #earliest-slot-div>h2{margin-bottom:.5rem;font-size:2rem;font-weight:700;color:#2c3e50}#booking-widget #display-earliest-slot-div{font-size:1.15rem;font-weight:600;color:#406463;margin-bottom:.5rem}#booking-widget .step2-btn-group{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;margin-top:1rem;margin-bottom:.5rem;width:100%}#booking-widget #step2 button{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-left:auto;margin-right:auto;min-width:180px}#booking-widget-body{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%}#booking-widget{background:#fff;border-radius:18px;box-shadow:0 4px 16px rgba(90,125,124,.08);padding:2rem 1.5rem;margin:2rem auto;max-width:600px;min-height:520px;transition:min-height .2s}#booking-widget input,#booking-widget textarea{width:100%;max-width:100%;box-sizing:border-box;padding:.75rem 1.25rem;border:1px solid #e0e7ef;border-radius:10px;background:#f9f9f9;font-size:1rem;color:#2c3e50;transition:border-color .2s,box-shadow .2s;box-shadow:0 2px 8px rgba(90,125,124,.04);margin-bottom:.5rem;outline:0}#booking-widget input:focus,#booking-widget textarea:focus{border-color:#406463;box-shadow:0 4px 12px rgba(90,125,124,.1);background:#fff}#booking-widget textarea{resize:vertical;min-height:80px;max-height:200px}#booking-widget button,#booking-widget input[type=button],#booking-widget input[type=submit]{background:#406463;color:#fff;padding:.75rem 2rem;border-radius:50px;font-weight:700;border:none;cursor:pointer;box-shadow:0 4px 16px rgba(90,125,124,.1);transition:background .2s,box-shadow .2s,color .2s;font-size:1.1rem;display:inline-block;margin-top:.5rem}#booking-widget button:hover,#booking-widget input[type=button]:hover,#booking-widget input[type=submit]:hover{background:#4a6a69;color:#fff;box-shadow:0 6px 20px rgba(90,125,124,.14)}#booking-widget button:disabled,#booking-widget input[type=button]:disabled,#booking-widget input[type=submit]:disabled{background:#e0e0e0!important;color:#a0a0a0!important;cursor:not-allowed!important;box-shadow:none!important}#booking-widget ul#slots-list{list-style:none;padding:0;margin:0}#booking-widget .slot-item{display:inline-block;background:#f9f9f9;color:#406463;font-weight:600;padding:10px 18px;margin:6px 8px 6px 0;border-radius:12px;cursor:pointer;transition:background .2s,color .2s,box-shadow .2s;box-shadow:0 2px 8px rgba(90,125,124,.06);border:1px solid #e0e7ef}#booking-widget .slot-item:hover{background:#406463;color:#fff;box-shadow:0 4px 12px rgba(90,125,124,.12)}#booking-widget .booking-next-available{background-color:#e8f0ef;color:#4a6a69}#booking-widget .booking-confirmed{background:#e0f2fe;border-radius:16px;padding:20px 28px;margin-bottom:18px;color:#406463;box-shadow:0 4px 16px rgba(90,125,124,.1);font-size:1.1rem}#booking-widget .book-link-group{display:flex;gap:18px;justify-content:center;margin-top:10px}#booking-widget .book-link-group a{color:#406463;font-weight:500;text-decoration:underline;transition:color .2s}#booking-widget .book-link-group a:hover{color:#2c3e50}#booking-widget #book-this-btn{margin-top:12px;background:#406463;color:#fff;padding:12px 24px;border-radius:12px;font-weight:700;border:none;cursor:pointer;box-shadow:0 4px 16px rgba(90,125,124,.1);transition:background .2s,box-shadow .2s;display:inline-block;font-size:1.1rem}#booking-widget #book-this-btn:hover{background:#4a6a69;box-shadow:0 6px 20px rgba(90,125,124,.14)}#booking-widget .spinner{border:4px solid #e0e7ef;border-top:4px solid #406463;border-radius:50%;width:36px;height:36px;animation:spin 1s linear infinite;margin:0 auto 16px auto}@keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.error{color:#dc2626;padding:1rem;border-radius:10px;margin-bottom:1rem;text-align:center;background:#fff0f0;border:1px solid #ffd6d6;font-size:1rem}.info{color:#406463;padding:1rem;border-radius:10px;margin-bottom:1rem;text-align:center;background:#f1f5f9;border:1px solid #e0e7ef;font-size:1rem}.loading{color:#406463;padding:1rem;border-radius:10px;margin-bottom:1rem;text-align:center;background:#f1f5f9;border:1px solid #e0e7ef;font-size:1rem}.spinner{border:4px solid #e0e7ef;border-top:4px solid #406463;border-radius:50%;width:24px;height:24px;animation:spin 1s linear infinite;display:inline-block;vertical-align:middle;margin-right:8px}.time-slot{display:inline-block;background:#f9f9f9;color:#406463;font-weight:600;padding:10px 18px;margin:6px 8px 6px 0;border-radius:12px;cursor:pointer;transition:background .2s,color .2s,box-shadow .2s;box-shadow:0 2px 8px rgba(90,125,124,.06);border:1px solid #e0e7ef}.time-slot.selected{background:#406463;color:#fff;box-shadow:0 4px 12px rgba(90,125,124,.12)}.time-slot:hover{background:#406463;color:#fff;box-shadow:0 4px 12px rgba(90,125,124,.12)}.disabled{background:#e0e0e0!important;color:#a0a0a0!important;cursor:not-allowed!important;box-shadow:none!important;border:1px solid #e0e0e0!important}