.booking-widget{margin:0 auto;max-width:1450px;padding:20px}.booking-step{animation:fadeIn .3s ease-in}.booking-step.hidden{display:none}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.step-header{margin-bottom:40px}.step-header h2{color:#333;font-size:28px;margin:10px 0 5px}.step-header p{color:#666;font-size:14px;margin:0}.btn-back{background:none;border:none;color:var(--booking-primary-color,#353535);cursor:pointer;font-size:16px;margin-bottom:10px;padding:0;transition:all .3s}.btn-back:hover{text-decoration:underline}.services-list{display:flex;flex-wrap:wrap;gap:12px}.service-card{align-items:center;border:2px solid #e0e0e0;border-radius:8px;cursor:pointer;display:flex;gap:20px;justify-content:space-between;padding:15px;transition:all .3s;width:100%}.service-card:hover{border-color:var(--booking-primary-color,#353535);box-shadow:0 4px 12px rgba(var(--booking-primary-color,#353535),.15)}.service-card .service-image{border-radius:8px;flex:0 0 150px;height:150px;overflow:hidden}.service-card .service-image img{height:100%;-o-object-fit:cover;object-fit:cover}.service-card .service-info h3{color:#333;font-size:20px;margin:0 0 10px}.service-card .service-info .service-description{color:#666;font-size:14px;line-height:1.5;margin:0 0 15px}.service-card .service-info .service-meta{display:flex;font-size:14px;gap:15px;margin-bottom:15px}.service-card .service-info .service-meta span{color:var(--booking-primary-color,#353535);font-size:20px;font-weight:700}.service-card .btn-select{border:none;border-radius:4px;color:var(--booking-button-text-color,#fff);cursor:pointer;flex-shrink:0;font-size:14px;font-weight:700;padding:10px 20px;transition:all .3s;width:150px}.service-card .btn-select,.service-card .btn-select:hover{background:var(--booking-primary-color,#353535)}.step2-container{display:flex;gap:20px;margin-bottom:20px}.step2-left{flex-shrink:0;gap:40px;width:60%}.step2-left,.step2-right{display:flex;flex-direction:column}.step2-right{width:40%}.service-booking-card{background:#fff;border:2px solid var(--booking-primary-color,#353535);border-radius:8px;display:flex;flex-direction:column;gap:20px;padding:30px;position:sticky;top:20px}.service-booking-card h2{border-bottom:2px solid var(--booking-primary-color,#353535);color:#333;font-size:24px!important;line-height:1.2!important;margin:0!important;padding-bottom:15px}.booking-info{display:flex;flex-direction:column;gap:12px}.info-row{align-items:center;background:#f9f9f9;border-radius:4px;display:flex;justify-content:space-between;padding:12px}.info-label{color:#666;font-size:13px;font-weight:600;text-transform:uppercase}.info-value{color:#333;font-size:14px;font-weight:500}.info-value.price{color:var(--booking-primary-color,#353535);font-size:18px;font-weight:700}.service-image-placeholder{align-items:center;background:linear-gradient(135deg,var(--booking-primary-color,#353535) 0,var(--booking-primary-color,#353535) 100%);border-radius:8px;color:var(--booking-button-text-color,#fff);display:flex;font-weight:700;height:200px;justify-content:center}.service-image-placeholder img{border-radius:8px;height:230px;-o-object-fit:cover;object-fit:cover;width:100%}.service-description-card{color:#666;font-size:14px;line-height:1.6;margin:0}.btn-continue-desktop{font-size:16px;font-weight:700;padding:14px;width:100%}.btn-continue-mobile{display:none}.calendar-container{background:#fff;border-radius:8px;margin-bottom:0;padding:20px}.calendar-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.calendar-header h3{font-size:25px!important;font-weight:700;margin:0}.btn-nav{background:#f0f0f0;border:none;border-radius:4px;cursor:pointer;padding:8px 12px;transition:all .3s}.btn-nav:hover{background:#e0e0e0}.time-slots-placeholder{background:#f5f5f5;border:2px dashed var(--booking-primary-color,#353535);border-radius:8px;color:#666;font-size:16px;margin-bottom:20px;padding:30px;text-align:center}.time-slots-placeholder p{font-weight:500;margin:0}.time-periods-container{display:flex;gap:20px;justify-content:center}.time-period{align-items:center;background:#fff;display:flex;flex-direction:column}.time-period h4{color:#333;font-size:14px;font-weight:600;letter-spacing:.5px;margin:0 0 12px;text-transform:uppercase}.time-slots{display:grid;gap:8px;grid-template-columns:repeat(2,1fr)}.time-slot{background:#fff;border:2px solid #e0e0e0;border-radius:4px;cursor:pointer;font-size:13px;font-weight:500;padding:10px;text-align:center;transition:all .3s;width:120px}.time-slot:hover{background:#f9f9f9}.time-slot.selected,.time-slot:hover{border-color:var(--booking-primary-color,#353535)}.time-slot.selected{background:var(--booking-primary-color,#353535);color:var(--booking-button-text-color,#fff);cursor:pointer}.time-slot.disabled{background:#fafafa;color:#ccc;cursor:not-allowed}.time-slot.blocked{background:#ffebee;border-color:#ef5350;color:#999;cursor:not-allowed;text-decoration:line-through}.calendar{overflow:hidden}.weekdays{display:grid;font-weight:700;gap:15px;grid-template-columns:repeat(7,1fr);text-align:center}.weekdays div{color:#666;font-size:16px;font-weight:700;padding:20px 10px;text-transform:capitalize}.dates{display:grid;gap:15px;grid-template-columns:repeat(7,1fr)}.date-cell{cursor:pointer;font-size:14px}.date-cell,.date-cell span{align-items:center;display:flex;justify-content:center;transition:all .3s}.date-cell span{border:1px solid var(--booking-primary-color,#353535);border-radius:50%;height:40px;width:40px}.date-cell.other-month span{background:#fafafa;border-color:#ddd;color:#ccc}.date-cell.available:hover span,.date-cell.selected span{background:var(--booking-primary-color,#353535);color:var(--booking-button-text-color,#fff);font-weight:700}.date-cell.disabled span{background:#fafafa;border-color:#ddd;color:#ccc;cursor:not-allowed}.date-cell.blocked span{background:#ffebee;border-color:#ef5350;color:#999;cursor:not-allowed;position:relative}.step3-container{display:grid;gap:30px;grid-template-columns:1fr 1fr}.step3-left,.step3-right{display:flex;flex-direction:column}.booking-summary-card{background:#fff;border:2px solid var(--booking-primary-color,#353535);border-radius:8px;padding:20px}.booking-summary-card>h3{border-bottom:2px solid var(--booking-primary-color,#353535);color:#333!important;font-size:25px!important;margin:0 0 20px;padding-bottom:15px}.summary-content{align-items:flex-start;display:flex;flex-direction:column;gap:20px}@media(max-width:768px){.summary-content{flex-direction:column}}.summary-content .summary-image{border-radius:4px;overflow:hidden;width:100%}.summary-content .summary-image img{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}@media(max-width:768px){.summary-content .summary-image{flex:0 0 100px;height:100px}}.summary-details{display:flex;flex-direction:column;gap:8px;width:100%}.summary-item{align-items:center;background:#f5f5f5;border-radius:4px;display:flex;justify-content:space-between;padding:8px 10px}.summary-item.price-item{font-size:16px;font-weight:700;margin-top:8px;padding:12px 10px}.summary-item:last-child{border-bottom:none}.summary-label{color:#666;font-size:12px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.summary-value{color:#333;font-size:13px;font-weight:500;text-align:right}.summary-value.price{color:var(--booking-primary-color,#353535);font-size:18px;font-weight:700}.summary-divider{background:#e0e0e0;height:1px;margin:8px 0}.booking-info-box{background:#f9f9f9;border-left:4px solid var(--booking-primary-color,#353535);border-radius:4px;margin-top:12px;padding:12px}.booking-info-box p{color:#666;font-size:12px;line-height:1.5;margin:0}#booking-form{background:#fff;border:2px solid var(--booking-primary-color,#353535);border-radius:8px;padding:30px}#booking-form h3{border-bottom:2px solid var(--booking-primary-color,#353535);color:#333;font-size:25px;margin:0 0 20px;padding-bottom:15px}.form-section{margin-bottom:40px}.form-section h4{border-bottom:2px solid #f0f0f0;color:#666;font-size:14px;font-weight:600;letter-spacing:.5px;margin:0 0 15px;padding-bottom:10px;text-transform:uppercase}.form-group{margin-bottom:15px}.form-group label{color:#333;display:block;font-size:14px;font-weight:500;margin-bottom:8px}.form-group input{border:1px solid #ddd;border-radius:4px;box-sizing:border-box;font-size:14px;padding:12px;transition:all .3s;width:100%}.form-group input::-moz-placeholder{color:#999}.form-group input::placeholder{color:#999}.form-group input:focus{border-color:var(--booking-primary-color,#353535);box-shadow:0 0 0 3px rgba(var(--booking-primary-color,#353535),.1);outline:none}.form-row{display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.btn{border:none;border-radius:4px;cursor:pointer;font-size:14px;font-weight:600;padding:12px 24px;transition:all .3s}.btn-primary{color:var(--booking-button-text-color,#fff);width:100%}.btn-primary,.btn-primary:hover:not(:disabled){background:var(--booking-primary-color,#353535)}.btn-primary:disabled{background:#ccc;cursor:not-allowed}.btn-submit{margin-top:20px}.message{border-radius:4px;font-size:14px;margin-top:15px;padding:15px;text-align:center}.message.hidden{display:none}.message.success{background:#d4edda;border:1px solid #c3e6cb;color:#155724}.message.error{background:#f8d7da;border:1px solid #f5c6cb;color:#721c24}@media(max-width:1024px){.booking-widget{padding:15px}.step2-container{flex-direction:column;gap:20px}.step2-left,.step2-right{width:100%}.service-booking-card{position:static}.time-slots{grid-template-columns:repeat(3,1fr)}.btn-continue-desktop{display:none}.btn-continue-mobile{display:block;margin-top:20px}.step3-container{gap:15px;grid-template-columns:1fr}.booking-summary-card{position:static}}@media(max-width:768px){.booking-widget{padding:12px}.services-list{gap:12px}.service-card{align-items:flex-start;flex-direction:column;padding:12px}.service-card .service-image{flex:0 0 auto;height:200px;width:100%}.service-card .service-info{width:100%}.service-card .service-info h3{font-size:18px}.service-card .service-info .service-description{font-size:13px}.service-card .service-info .service-meta{flex-wrap:wrap;gap:12px}.service-card .btn-select{margin-top:12px;width:100%}.form-row{grid-template-columns:1fr}.step2-container{gap:15px}.time-slots{grid-template-columns:repeat(2,1fr)}.time-slot{font-size:12px;padding:8px;width:auto}.step-header h2{font-size:22px}.step-header p{font-size:13px}.service-booking-card{margin-bottom:15px;padding:15px}.service-booking-card h2{font-size:18px}.time-periods-container{flex-direction:column;gap:15px}.time-period{width:100%}.time-period h4{font-size:13px;margin-bottom:12px}.time-period .time-slots{grid-template-columns:repeat(3,1fr)}.calendar-header h3{font-size:20px!important}.weekdays div{font-size:14px;padding:12px}.date-cell span{font-size:13px;height:35px;width:35px}.summary-content{gap:15px}.booking-summary-card{padding:15px}.booking-summary-card h3{font-size:16px}#booking-form{padding:15px}#booking-form h3{font-size:18px}}@media(max-width:480px){.booking-widget{padding:8px}.step-header{margin-bottom:20px}.step-header h2{font-size:20px}.step-header p{font-size:12px}.service-card .service-image{height:150px}.service-card .service-info h3{font-size:16px}.calendar-container{padding:12px}.calendar-header{margin-bottom:12px}.calendar-header h3{font-size:18px!important}.weekdays{gap:8px}.weekdays div{font-size:12px;padding:8px}.dates{gap:8px}.date-cell span{font-size:12px;height:30px;width:30px}.time-periods-container{gap:12px}.time-period h4{font-size:12px}.time-period .time-slots{gap:8px;grid-template-columns:repeat(2,1fr)}.time-slot{font-size:11px;padding:6px}.service-booking-card{padding:12px}.service-booking-card h2{font-size:16px}.service-booking-card .info-label{font-size:11px}.service-booking-card .info-value{font-size:12px}.service-booking-card .info-value.price{font-size:16px}.service-booking-card .service-image-placeholder,.service-booking-card .service-image-placeholder img{height:150px}.service-booking-card .service-description-card{font-size:12px}.summary-image{flex:0 0 80px;height:80px}.summary-label{font-size:11px}.summary-value{font-size:12px}.summary-value.price{font-size:16px}.booking-summary-card{padding:12px}.booking-summary-card h3{font-size:14px}#booking-form{padding:12px}#booking-form h3{font-size:16px}.form-section h4{font-size:12px}.form-group label{font-size:13px}.form-group input{font-size:13px;padding:8px}.btn{font-size:13px;padding:8px 16px}.booking-info-box{padding:8px}.booking-info-box p{font-size:11px}}.btn-submit{position:relative}.btn-submit.loading{cursor:not-allowed;opacity:.7}.btn-submit .spinner{animation:spin .6s linear infinite;border:2px solid hsla(0,0%,100%,.3);border-radius:50%;border-top-color:#fff;display:inline-block;height:14px;margin-right:8px;vertical-align:middle;width:14px}@keyframes spin{to{transform:rotate(1turn)}}.thank-you-container{margin:0 auto;max-width:700px;padding:20px 15px;text-align:center}.thank-you-icon{align-items:center;display:flex;justify-content:center;margin:0 auto 20px}.thank-you-icon svg{animation:scaleIn .4s ease-out}@keyframes scaleIn{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}.thank-you-title{color:#333;font-size:26px;font-weight:600;margin:0 0 8px}.thank-you-subtitle{color:#666;font-size:15px;margin:0 0 30px}.booking-confirmation-card{background:#fafafa;border:1px solid #e0e0e0;border-radius:8px;margin-bottom:20px;padding:20px;text-align:left}.booking-confirmation-card h3{border-bottom:1px solid #e0e0e0;color:#333;font-size:17px;font-weight:600;margin:0 0 15px;padding-bottom:12px}.confirmation-details{display:flex;flex-direction:column;gap:8px}.detail-item{align-items:center;display:flex;justify-content:space-between;padding:8px 0}.detail-item .detail-label{color:#666;font-size:14px;font-weight:500}.detail-item .detail-value{color:#333;font-size:14px;font-weight:600}.payment-info-card{background:#f0f8ff;border:2px solid #2196f3;border-radius:8px;margin-bottom:20px;padding:20px;text-align:left}.payment-info-card h3{border-bottom:2px solid #2196f3;color:#1976d2;font-size:18px;font-weight:600;margin:0 0 15px;padding-bottom:12px}.payment-info-card h4{color:#333;font-size:15px;font-weight:600;margin:15px 0 8px}.custom-booking-text{background:#fff3cd;border:2px solid #ffc107;color:#856404;font-size:16px;font-weight:700;line-height:1.5;text-align:center}.custom-booking-text,.payment-details{border-radius:8px;margin-bottom:15px;padding:15px}.payment-details{background:#fff}.payment-row{align-items:center;display:flex;justify-content:space-between;padding:8px 0}.payment-row .payment-label{color:#666;font-size:14px;font-weight:500}.payment-row .payment-value{color:#333;font-size:15px;font-weight:600}.payment-row.payment-total{margin-top:8px;padding-top:12px}.payment-row.payment-total .payment-label{color:#333;font-size:16px;font-weight:700}.payment-row.payment-total .payment-value{color:#4caf50;font-size:20px;font-weight:700}.payment-divider{background:#e0e0e0;height:1px;margin:8px 0}.payment-instructions p{color:#333;font-size:14px;line-height:1.5;margin:0 0 12px}.payment-instructions ul{list-style:none;margin:8px 0 0;padding:0}.payment-instructions ul li{color:#333;font-size:13px;line-height:1.5;padding:4px 0 4px 20px;position:relative}.payment-instructions ul li:before{color:#4caf50;content:"✓";font-size:14px;font-weight:700;left:0;position:absolute}.thank-you-actions{margin:20px 0}.thank-you-actions .btn{font-size:15px;min-width:220px;padding:12px 20px}.confirmation-note{background:#f9f9f9;border-radius:8px;padding:15px}.confirmation-note p{color:#666;font-size:13px;line-height:1.5;margin:0}@media(max-width:768px){.thank-you-container{padding:15px 12px}.thank-you-title{font-size:22px}.thank-you-subtitle{font-size:14px}.booking-confirmation-card,.payment-info-card{padding:15px}.booking-confirmation-card h3,.payment-info-card h3{font-size:16px}.booking-confirmation-card h4,.payment-info-card h4{font-size:14px}.detail-item,.payment-row{align-items:flex-start;flex-direction:column;gap:2px}.detail-item .detail-label,.detail-item .payment-label,.payment-row .detail-label,.payment-row .payment-label{font-size:12px}.detail-item .detail-value,.detail-item .payment-value,.payment-row .detail-value,.payment-row .payment-value{font-size:14px}.payment-row.payment-total .payment-label{font-size:15px}.payment-row.payment-total .payment-value{font-size:18px}.thank-you-actions .btn{font-size:14px;min-width:100%;padding:12px 15px}.thank-you-icon svg{height:50px;width:50px}.payment-instructions ul li{font-size:12px}.confirmation-note{padding:12px}.confirmation-note p{font-size:12px}.custom-booking-text{font-size:14px;padding:12px}}
