.booking-form{background:var(--color-white);border-radius:var(--border-radius);margin-bottom:2rem;padding:2rem;box-shadow:0 .5rem 1.5rem #0020261a}.booking-form .booking-section{border-bottom:1px solid var(--color-border);margin-bottom:2.5rem;padding-bottom:2rem}.booking-form .booking-section:last-child{border-bottom:0;margin-bottom:1rem}.booking-form .booking-section .section-header{align-items:center;gap:.75rem;margin-bottom:1.5rem;display:flex}.booking-form .booking-section .section-header h2{color:var(--color-dark-teal);margin:0;font-size:1.25rem}.booking-form .booking-section .section-header svg{color:#067a6e;flex-shrink:0}.booking-form .input-grid{grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:1.5rem;display:grid}.booking-form .input-group{flex-direction:column;gap:.75rem;display:flex}.booking-form .input-group label{color:#033f39;font-size:.875rem;font-weight:500}.booking-form .input-group label .required{color:var(--color-error);margin-left:.25rem}.booking-form .input-group input,.booking-form .input-group select,.booking-form .input-group textarea{border:2px solid var(--color-border);border-radius:var(--border-radius);width:100%;padding:.75rem 1rem;font-size:1rem;transition:border-color .2s,box-shadow .2s}.booking-form .input-group input:focus,.booking-form .input-group select:focus,.booking-form .input-group textarea:focus{border-color:var(--color-dark-teal);box-shadow:var(--input-focus-glow);outline:none}.booking-form .input-group input[type=time],.booking-form .input-group select[type=time],.booking-form .input-group textarea[type=time]{padding:.65rem 1rem}.booking-form .input-group textarea{resize:vertical;min-height:120px}.booking-form .input-group .input-hint{color:#08aa9a;margin-top:.25rem;font-size:.75rem}.booking-form .price-summary{background:var(--color-background);border-radius:var(--border-radius);grid-column:1/-1;gap:1rem;margin-top:1.5rem;padding:1.5rem;display:grid}.booking-form .price-summary .price-item{justify-content:space-between;align-items:center;padding:.5rem 0;display:flex}.booking-form .price-summary .price-item.total{border-top:2px solid var(--color-border);color:var(--color-dark-teal);padding-top:1rem;font-weight:600}.booking-form .price-summary .price-item output{color:#033a35;font-weight:500}.booking-form .error-message{color:var(--color-error);border-radius:var(--border-radius);background:#f9d2d4;border:1px solid #f7bbbf;align-items:center;gap:.5rem;margin:1.5rem 0;padding:1rem;display:flex}.booking-form .error-message svg{flex-shrink:0}.booking-form .error-message p{margin:0;font-size:.9rem}.booking-form .terms-section{margin-bottom:1rem;padding:1rem 1rem 0 0}.booking-form .terms-section .input-group.terms{flex-direction:row;align-items:center;gap:.75rem;display:flex}.booking-form .terms-section .input-group.terms input[type=checkbox]{accent-color:#067a6e;width:18px;height:18px}.booking-form .terms-section .input-group.terms label{color:#033f39;margin:0;font-size:.95rem;display:inline-block}.booking-form .terms-section .input-group.terms label a{color:#067a6e;text-decoration:underline}.booking-form .submit-button{background:var(--color-dark-teal);width:100%;color:var(--color-white);border:none;border:.125rem solid var(--color-dark-teal);transition:var(--transition);cursor:pointer;border-radius:var(--border-radius);justify-content:center;align-items:center;gap:.75rem;padding:1rem 2rem;font-weight:600;display:flex}.booking-form .submit-button:hover:not(:disabled){background:var(--color-white);color:var(--color-dark-teal);transform:translateY(-1px)}.booking-form .submit-button:disabled{opacity:.7;cursor:not-allowed}.booking-form .submit-button .price{background:#ffffff26;border-radius:2rem;padding:.25rem .75rem;font-size:.9em}.booking-form .submit-button .loading{min-width:100px;display:inline-block}@media (max-width:640px){.booking-form{box-shadow:none;border-radius:0;padding:1rem}.booking-form .booking-section{margin-bottom:1.5rem;padding-bottom:1.5rem}.booking-form .booking-section .section-header{gap:.5rem;margin-bottom:1rem}.booking-form .booking-section .section-header h2{font-size:1.125rem}.booking-form .booking-section .section-header svg{width:18px;height:18px}.booking-form .input-grid{grid-template-columns:1fr;gap:1rem}.booking-form .input-group{gap:.5rem}.booking-form .input-group label{font-size:.8125rem}.booking-form .input-group input,.booking-form .input-group select,.booking-form .input-group textarea{padding:.625rem;font-size:.875rem}.booking-form .input-group textarea{min-height:100px}.booking-form .price-summary{margin-top:1rem;padding:1rem}.booking-form .price-summary .price-item,.booking-form .price-summary .price-item output{font-size:.875rem}.booking-form .price-summary .price-item.total{padding-top:.75rem}.booking-form .error-message{margin:1rem 0;padding:.75rem;font-size:.8125rem}.booking-form .error-message svg{width:16px;height:16px}.booking-form .submit-button{gap:.5rem;padding:.875rem;font-size:.9rem}.booking-form .submit-button .price{padding:.2rem .6rem}}@media (max-width:400px){.booking-form .section-header{flex-wrap:wrap}.booking-form .input-group input[type=time]{padding:.5rem}.booking-form .submit-button{flex-direction:column;gap:.25rem;padding:.75rem}.booking-form .submit-button .price{text-align:center;width:100%}}
