.fab-container{position:fixed;right:24px;top:50%;transform:translateY(-50%);z-index:99999;display:flex;flex-direction:column;gap:10px;align-items:flex-end}.fab-btn{display:block;cursor:pointer;border:none;background:0 0;padding:0;transition:transform .3s ease,filter .3s ease;filter:drop-shadow(0 4px 12px rgba(0,0,0,.25))}.fab-btn:hover{transform:scale(1.05) translateX(-4px);filter:drop-shadow(0 6px 20px rgba(0,0,0,.35))}.fab-btn svg{width:200px;height:auto;display:block}.booking-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.6);z-index:10000;display:none;align-items:center;justify-content:center;padding:2rem}.booking-overlay.open{display:flex}.booking-modal{background:#fff;border-radius:10px;max-width:520px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px rgba(0,0,0,.3);position:relative}.booking-header{background:#41413e;padding:1.5rem 2rem;border-radius:10px 10px 0 0;display:flex;justify-content:space-between;align-items:center}.booking-header-text h2{color:#fff;font-family:Lato,sans-serif;font-size:1.2rem;font-weight:700;margin:0 0 .2rem}.booking-header-text p{color:rgba(255,255,255,.6);font-family:Lato,sans-serif;font-size:.75rem;margin:0}.booking-close{background:0 0;border:none;color:rgba(255,255,255,.6);font-size:1.5rem;cursor:pointer;padding:.25rem;line-height:1;transition:color .3s}.booking-close:hover{color:#fff}.booking-body{padding:2rem}.booking-form .form-group{margin-bottom:1.25rem}.booking-form label{display:block;font-family:Lato,sans-serif;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#3a3a3a;margin-bottom:.4rem}.booking-form label .required{color:#8b2635}.booking-form input,.booking-form select,.booking-form textarea{width:100%;padding:.75rem 1rem;font-family:Lato,sans-serif;font-size:.9rem;color:#3a3a3a;background:#f8f6f3;border:1.5px solid #e0dcd6;border-radius:6px;transition:border-color .3s,box-shadow .3s}.booking-form input:focus,.booking-form select:focus,.booking-form textarea:focus{outline:0;border-color:#8b2635;box-shadow:0 0 0 3px rgba(139,38,53,.1)}.booking-form textarea{resize:vertical;min-height:80px}.booking-form select{cursor:pointer;-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%233A3A3A' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;padding-right:2.5rem}.booking-actions{display:flex;gap:.75rem;margin-top:1.5rem}.booking-submit{flex:1;padding:.85rem 1.5rem;background:#8b2635;color:#fff;font-family:Lato,sans-serif;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;border:none;border-radius:6px;cursor:pointer;transition:background .3s,transform .3s}.booking-submit:hover{background:#6d1e2a;transform:translateY(-1px)}.booking-submit:disabled{background:#b8afa2;cursor:not-allowed;transform:none}.booking-email-btn{padding:.85rem 1.25rem;background:0 0;color:#8b2635;font-family:Lato,sans-serif;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;border:1.5px solid #8b2635;border-radius:6px;cursor:pointer;transition:all .3s;white-space:nowrap}.booking-email-btn:hover{background:#8b2635;color:#fff}.booking-success{display:none;text-align:center;padding:2rem}.booking-success.show{display:block}.booking-success .success-icon{width:64px;height:64px;background:#2d8a4e;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 1.25rem}.booking-success .success-icon svg{width:32px;height:32px;stroke:#fff;fill:none;stroke-width:2.5}.booking-success h3{font-family:Lato,sans-serif;font-size:1.2rem;color:#3a3a3a;margin-bottom:.75rem}.booking-success p{font-family:Lato,sans-serif;font-size:.9rem;color:#5f5955;line-height:1.7;margin-bottom:.5rem}.booking-success .booking-close-btn{margin-top:1.5rem;padding:.75rem 2rem;background:#41413e;color:#fff;font-family:Lato,sans-serif;font-size:.8rem;font-weight:600;border:none;border-radius:6px;cursor:pointer;transition:background .3s}.booking-success .booking-close-btn:hover{background:#2c2c2c}.booking-error{display:none;background:#fef2f2;border:1px solid #fecaca;color:#991b1b;padding:.75rem 1rem;border-radius:6px;font-size:.8rem;margin-bottom:1rem}.booking-error.show{display:block}@media (max-width:1024px){.fab-btn svg{width:170px}}@media (max-width:768px){.fab-container{position:fixed;right:10px;top:auto;bottom:12px;transform:none;flex-direction:column;gap:10px;align-items:flex-end}.fab-btn svg{width:140px}.pe-float-btn{bottom:160px!important;right:10px!important}.booking-overlay{padding:1rem;align-items:flex-end}.booking-modal{max-height:85vh;border-radius:10px 10px 0 0}.booking-body{padding:1.5rem}.booking-actions{flex-direction:column}}