.booking-section{background:#faf8f5;border-radius:12px;padding:40px 30px;margin-bottom:40px}.booking-section h3{font-family:'Playfair Display',serif;font-size:28px;color:#2c2c2c;margin-bottom:8px}.booking-section .booking-subtitle{color:#888;font-size:15px;margin-bottom:30px}.booking-stepper{display:flex;justify-content:center;gap:0;margin-bottom:35px;position:relative}.booking-step{display:flex;align-items:center;gap:10px;padding:10px 20px;color:#aaa;font-size:14px;font-weight:600;position:relative}.booking-step .step-number{width:32px;height:32px;border-radius:50%;background:#e0ddd8;color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;transition:all .3s ease}.booking-step.active .step-number{background:#c5a47e;box-shadow:0 2px 10px rgba(197,164,126,.4)}.booking-step.completed .step-number{background:#28a745}.booking-step.active{color:#2c2c2c}.booking-step.completed{color:#28a745}.step-connector{width:40px;height:2px;background:#e0ddd8;align-self:center;transition:background .3s ease}.step-connector.active{background:#c5a47e}.exp-calendar{max-width:500px;margin:0 auto 30px;background:#fff;border-radius:12px;box-shadow:0 4px 20px rgba(0,0,0,.06);overflow:hidden}.cal-header{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;background:#2c2c2c;color:#fff}.cal-header h4{margin:0;font-family:'Playfair Display',serif;font-size:18px;font-weight:600;text-transform:capitalize;color:#fff}.cal-nav{background:none;border:1px solid rgba(255,255,255,.3);color:#fff;width:36px;height:36px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;font-size:16px}.cal-nav:hover{background:rgba(255,255,255,.15);border-color:rgba(255,255,255,.5)}.cal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;padding:12px 10px 8px;border-bottom:1px solid #f0ede8}.cal-weekday{font-size:11px;font-weight:700;color:#999;text-transform:uppercase;letter-spacing:1px}.cal-days{display:grid;grid-template-columns:repeat(7,1fr);padding:8px 10px 15px;gap:4px}.cal-day{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:10px;cursor:default;font-size:14px;font-weight:500;color:#ccc;transition:all .2s ease;position:relative;gap:2px}.cal-day.available{color:#2c2c2c;cursor:pointer;background:#f8f5f0}.cal-day.available:hover{background:#c5a47e;color:#fff;transform:scale(1.05);box-shadow:0 3px 12px rgba(197,164,126,.35)}.cal-day.available:hover .cal-day-spots{color:rgba(255,255,255,.85)}.cal-day.selected{background:#c5a47e;color:#fff;box-shadow:0 3px 12px rgba(197,164,126,.35)}.cal-day.selected .cal-day-spots{color:rgba(255,255,255,.85)}.cal-day.full{color:#ddd;text-decoration:line-through}.cal-day.today{border:2px solid #c5a47e}.cal-day-num{font-size:14px;line-height:1}.cal-day-spots{font-size:13px;font-weight:700;color:#c5a47e;line-height:1;white-space:nowrap}.time-slots-container{display:none;max-width:500px;margin:0 auto 30px}.time-slots-container.visible{display:block;animation:fadeInUp .3s ease}.selected-date-label{text-align:center;font-family:'Playfair Display',serif;font-size:18px;color:#2c2c2c;margin-bottom:15px}.time-slots{display:flex;gap:15px;justify-content:center;flex-wrap:wrap}.time-slot{flex:1;min-width:180px;background:#fff;border:2px solid #e8e4df;border-radius:12px;padding:20px;text-align:center;cursor:pointer;transition:all .25s ease}.time-slot:hover{border-color:#c5a47e;box-shadow:0 4px 15px rgba(197,164,126,.2);transform:translateY(-2px)}.time-slot.selected{border-color:#c5a47e;background:linear-gradient(135deg,#faf5ee 0%,#f5ede0 100%);box-shadow:0 4px 15px rgba(197,164,126,.25)}.time-slot.disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.time-slot-time{font-size:20px;font-weight:700;color:#2c2c2c;margin-bottom:6px}.time-slot-spots{font-size:13px;color:#888}.time-slot-spots strong{color:#c5a47e}.time-slot-full{font-size:13px;color:#dc3545;font-weight:600}.people-selector{display:none;max-width:500px;margin:0 auto 30px;text-align:center}.people-selector.visible{display:block;animation:fadeInUp .3s ease}.people-selector label{display:block;font-family:'Playfair Display',serif;font-size:18px;color:#2c2c2c;margin-bottom:15px}.people-buttons{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.people-btn{width:56px;height:56px;border:2px solid #e8e4df;border-radius:12px;background:#fff;font-size:20px;font-weight:700;color:#2c2c2c;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.people-btn:hover:not(.disabled) {border-color:#c5a47e;background:#faf5ee;transform:scale(1.08)}.people-btn.selected{background:#c5a47e;border-color:#c5a47e;color:#fff;box-shadow:0 3px 12px rgba(197,164,126,.35)}.people-btn.disabled{opacity:.3;cursor:not-allowed}.price-summary{display:none;max-width:500px;margin:0 auto 25px;background:#fff;border-radius:12px;padding:20px 25px;box-shadow:0 2px 12px rgba(0,0,0,.05)}.price-summary.visible{display:block;animation:fadeInUp .3s ease}.price-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;font-size:15px;color:#666}.price-row.total{border-top:2px solid #f0ede8;margin-top:8px;padding-top:12px;font-size:20px;font-weight:700;color:#2c2c2c}.booking-form-container{display:none;max-width:500px;margin:0 auto}.booking-form-container.visible{display:block;animation:fadeInUp .3s ease}.booking-form .form-group{margin-bottom:18px}.booking-form .form-group label{display:block;font-size:13px;font-weight:600;color:#555;margin-bottom:6px;text-transform:uppercase;letter-spacing:.5px}.booking-form .form-control{width:100%;padding:12px 16px;border:2px solid #e8e4df;border-radius:10px;font-size:15px;font-family:inherit;transition:border-color .2s ease;box-sizing:border-box;background:#fff}.booking-form .form-control:focus{outline:none;border-color:#c5a47e;box-shadow:0 0 0 3px rgba(197,164,126,.15)}.booking-form textarea.form-control{min-height:80px;resize:vertical}.form-row{display:flex;gap:15px}.form-row .form-group{flex:1}.btn-book{display:block;width:100%;padding:16px;background:linear-gradient(135deg,#c5a47e 0%,#b08d67 100%);color:#fff;border:none;border-radius:12px;font-size:17px;font-weight:700;cursor:pointer;transition:all .3s ease;letter-spacing:.5px;margin-top:25px}.btn-book:hover{background:linear-gradient(135deg,#b08d67 0%,#9c7a56 100%);box-shadow:0 6px 20px rgba(197,164,126,.4);transform:translateY(-2px)}.btn-book:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.btn-book .spinner{display:none;width:20px;height:20px;border:3px solid rgba(255,255,255,.3);border-top:3px solid #fff;border-radius:50%;animation:spin .8s linear infinite;margin:0 auto}.btn-book.loading .btn-text{display:none}.btn-book.loading .spinner{display:block}.contact-info-box{background:linear-gradient(135deg,#2c2c2c 0%,#3d3d3d 100%);color:#fff;border-radius:12px;padding:30px;text-align:center;margin-top:30px}.contact-info-box h4{font-family:'Playfair Display',serif;font-size:20px;margin-bottom:15px;color:#c5a47e}.contact-info-box p{margin:0 0 15px;font-size:14px;color:rgba(255,255,255,.7)}.contact-info-links{display:flex;justify-content:center;gap:25px;flex-wrap:wrap}.contact-info-links a{color:#fff;text-decoration:none;font-size:15px;font-weight:600;display:flex;align-items:center;gap:8px;transition:color .2s ease}.contact-info-links a:hover{color:#c5a47e}.contact-info-links a i{font-size:18px;color:#c5a47e}.booking-alert{padding:14px 20px;border-radius:10px;font-size:14px;margin-bottom:20px;display:none;animation:fadeInUp .3s ease}.booking-alert.error{display:block;background:#fde8e8;color:#c0392b;border:1px solid #f5c6cb}.booking-alert.success{display:block;background:#d4edda;color:#155724;border:1px solid #c3e6cb}.booking-alert.warning{display:block;background:#fff3cd;color:#856404;border:1px solid #ffeaa7}.cal-loading{position:relative;pointer-events:none;opacity:.5}@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(15px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}@media (max-width:576px){.booking-section{padding:25px 15px}.booking-step span{display:none}.step-connector{width:20px}.exp-calendar{margin-left:-5px;margin-right:-5px}.cal-day{font-size:12px}.cal-day-spots{font-size:10px}.time-slot{min-width:140px}.people-btn{width:48px;font-size:13px!important;font-weight:bold}.time-slot{min-width:140px}.people-btn{width:48px;height:48px;font-size:18px}.form-row{flex-direction:column;gap:0}.contact-info-links{flex-direction:column;gap:12px}}