.bcp-occasions-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin:20px 0}@media (max-width:768px){.bcp-occasions-grid{grid-template-columns:1fr}}.bcp-occasion-box{border:2px solid #ddd;border-radius:8px;padding:20px;background:#fff;cursor:pointer;transition:all 0.3s ease;box-shadow:0 2px 4px rgb(0 0 0 / .1)}.bcp-occasion-box:hover{border-color:#0073aa;box-shadow:0 4px 8px rgb(0 115 170 / .2);transform:translateY(-2px)}.bcp-occasion-box.selected{border-color:#0073aa;background:#f0f7ff;box-shadow:0 4px 12px rgb(0 115 170 / .3)}.bcp-occasion-box.unavailable{opacity:.6;cursor:not-allowed;background:#f5f5f5}.bcp-occasion-box.unavailable:hover{border-color:#ddd;transform:none;box-shadow:0 2px 4px rgb(0 0 0 / .1)}.bcp-occasion-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:15px;padding-bottom:15px;border-bottom:1px solid #eee}.bcp-occasion-header h3{margin:0;font-size:18px;font-weight:600;color:#333}.bcp-spots-badge{display:inline-block;padding:4px 12px;background:#0073aa;color:#fff;border-radius:12px;font-size:12px;font-weight:600;white-space:nowrap}.bcp-occasion-box.unavailable .bcp-spots-badge{background:#999}.bcp-occasion-sessions{margin-top:15px}.bcp-occasion-sessions ul{margin:0;padding:0;list-style:none}.bcp-occasion-sessions li{padding:10px 0;border-bottom:1px solid #f0f0f0;font-size:14px;line-height:1.6;color:#555}.bcp-occasion-sessions li:last-child{border-bottom:none}.bcp-occasion-sessions li strong{color:#333;font-weight:600}.bcp-no-sessions{color:#999;font-style:italic;margin:0}.bcp-loading{text-align:center;padding:40px 20px;color:#666;font-size:16px}.bcp-loading::before{content:"";display:inline-block;width:20px;height:20px;border:3px solid #f3f3f3;border-top:3px solid #0073aa;border-radius:50%;animation:spin 1s linear infinite;margin-right:10px;vertical-align:middle}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.bcp-error{background:#f8d7da;color:#721c24;padding:15px 20px;border-radius:4px;border:1px solid #f5c6cb;margin:20px 0}.bcp-notice{background:#fff3cd;color:#856404;padding:15px 20px;border-radius:4px;border:1px solid #ffeaa7;margin:20px 0}.bcp-booking-form-container{max-width:1200px;margin:0 auto;padding:20px}.bcp-timeslots-container{min-height:200px}.bcp-progress-bar{display:flex;justify-content:space-between;margin-bottom:30px;padding:0;list-style:none}.bcp-progress-step{flex:1;text-align:center;position:relative;padding:10px;color:#999;font-size:14px}.bcp-progress-step::before{content:"";display:block;width:30px;height:30px;margin:0 auto 10px;border-radius:50%;background:#ddd;border:2px solid #ddd;transition:all 0.3s ease}.bcp-progress-step.active{color:#0073aa;font-weight:600}.bcp-progress-step.active::before{background:#0073aa;border-color:#0073aa}.bcp-progress-step.completed::before{background:#46b450;border-color:#46b450}.bcp-form-step{display:none}.bcp-form-step.active{display:block}.bcp-next-step,.bcp-prev-step,.bcp-submit-booking{display:inline-block;padding:12px 24px;margin:10px 5px;background:#0073aa;color:#fff;border:none;border-radius:4px;font-size:16px;font-weight:600;cursor:pointer;transition:background 0.3s ease}.bcp-next-step:hover,.bcp-prev-step:hover,.bcp-submit-booking:hover{background:#005a87}.bcp-prev-step{background:#666}.bcp-prev-step:hover{background:#555}.bcp-submit-booking:disabled{background:#ccc;cursor:not-allowed}.bcp-spinner{display:inline-block;width:14px;height:14px;border:2px solid #fff;border-top-color:#fff0;border-radius:50%;animation:spin 0.8s linear infinite;vertical-align:middle;margin-right:8px}.bcp-booking-form input[type="text"],.bcp-booking-form input[type="email"],.bcp-booking-form input[type="tel"],.bcp-booking-form select,.bcp-booking-form textarea{width:100%;padding:10px 15px;margin-bottom:15px;border:1px solid #ddd;border-radius:4px;font-size:14px;font-family:inherit}.bcp-booking-form input:focus,.bcp-booking-form select:focus,.bcp-booking-form textarea:focus{outline:none;border-color:#0073aa;box-shadow:0 0 0 3px rgb(0 115 170 / .1)}.bcp-booking-form label{display:block;margin-bottom:5px;font-weight:600;color:#333}.bcp-booking-form .required::after{content:" *";color:#dc3232}.bcp-success-message{text-align:center;padding:40px 20px}.bcp-success-message .dashicons{font-size:64px;color:#46b450;margin-bottom:20px}.bcp-success-message h2{color:#46b450;margin-bottom:15px}.bcp-success-message p{font-size:16px;color:#555}