/* Scoped to the public booking page. Existing shared styles remain unchanged. */
.booking-page { background:#f4f6f8; color:#172433; -webkit-font-smoothing:antialiased; }
.booking-page > div { max-width:880px; }
.booking-page .section-card { padding:24px; border-color:#e3e8ee; border-radius:18px; box-shadow:0 3px 14px rgba(23,36,51,.025); }
.booking-page .section-title { display:flex; align-items:center; gap:8px; color:#172433; font-size:16px; letter-spacing:-.015em; text-transform:none; }
.booking-page .section-subtitle { color:#626e7e; font-size:13px; line-height:1.6; margin-top:5px; }
.booking-page .form-label { display:flex; align-items:center; flex-wrap:wrap; gap:6px; font-size:13px; color:#354255; }
.booking-page .field-icon { font-size:18px; line-height:1; font-weight:400; flex-shrink:0; color:#768294; }
.booking-page .form-input { min-height:48px; border-radius:10px; border-color:#dce2e9; padding:12px 14px; font-size:16px; line-height:1.5; background:#fff; }
.booking-page .form-input:hover { border-color:#aebac8; }
.booking-page .form-input:focus { border-color:#ad8a18; box-shadow:0 0 0 3px rgba(244,201,63,.18); }
.booking-page .form-textarea { min-height:112px; }
.booking-page .required-mark { color:#c53030; }
.booking-page .optional-label { color:#667385; font-size:12px; font-weight:400; }
.booking-page .field-hint { margin-top:7px; font-size:12px; line-height:1.6; color:#667385; }
.booking-page .field-error { margin-top:7px; font-size:13px; line-height:1.5; color:#b42318; }
.booking-page .field-error:empty { display:none; }
.booking-page .form-input[aria-invalid="true"] { border-color:#d04438; }
.booking-page .designer-card { border-radius:12px; min-height:80px; }
.booking-page .designer-radio:checked + .designer-card { border-color:#c5a43d; background:#fffdf3; box-shadow:inset 0 0 0 1px #c5a43d; }
.booking-page .designer-radio:focus-visible + .designer-card { outline:3px solid #dfbf50; outline-offset:3px; }
.booking-page .designer-check { background:#233345; }
.booking-page .submit-cta { display:flex; align-items:center; justify-content:center; gap:9px; min-height:52px; border-radius:12px; background:#f5cf46; color:#233044; }
.booking-page .submit-cta .field-icon { color:inherit; }
.booking-page .submit-cta:disabled { opacity:.65; cursor:wait; }
.booking-page button:focus-visible { outline:3px solid #b89523; outline-offset:3px; }
@media(max-width:639px) {
  .booking-page .section-card { padding:20px 16px; border-radius:14px; }
  .booking-page .section-subtitle { font-size:13px; }
  .booking-page .social-links { gap:8px; flex-wrap:wrap; }
}
@media(prefers-reduced-motion:reduce) {
  .booking-page *, .booking-page *::before, .booking-page *::after { transition:none !important; }
}
