/* Book an appointment page (bookAppointment.html). Scoped to .ba-*; px units because Bootstrap sets html to 10px. */
.ba-page{padding:28px 0 60px;font:15px/1.55 system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;color:#2c2a31}
.ba-page *,.ba-page *::before,.ba-page *::after{box-sizing:border-box}
.ba-page [hidden]{display:none!important}
/* Page banner: stretch the strip across the full page width on wide screens */
.container-fluid.aboutus{padding-left:0;padding-right:0}
.aboutus>.row{margin-left:0;margin-right:0}
.aboutus>.row>img.img-responsive{width:100%;max-width:none;height:auto}
.ba-wrap{max-width:960px;margin:0 auto;padding:0 16px}
.ba-intro h2,.ba-done h2{margin:0 0 6px;font-family:inherit;font-weight:700;font-size:26px;line-height:1.25;color:#5b3e78}
.ba-intro p{margin:0 0 20px;color:#4a4752}

.ba-form,.ba-done{background:#fff;border-radius:16px;box-shadow:0 4px 18px rgba(36,26,49,.12);padding:8px 24px 24px}
.ba-section{border:0;margin:0;padding:18px 0 8px;border-bottom:1px solid #eeeaf2;min-width:0}
.ba-section legend{display:flex;align-items:center;gap:10px;width:auto;margin:0 0 12px;padding:0;border:0;font-family:inherit;font-weight:700;font-size:17px;line-height:1.3;color:#2c2a31}
.ba-step{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:#5b3e78;color:#fff;font-size:13px}
.ba-consent{border-bottom:0}

.ba-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 18px}
.ba-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.ba-field{min-width:0;margin-bottom:12px}
.ba-full{grid-column:1/-1}
.ba-field>label,.ba-label{display:block;margin:0 0 4px 2px;font-size:14px;font-weight:700;color:#2c2a31}
.ba-req{color:#5b3e78}

.ba-page input[type=text],.ba-page input[type=email],.ba-page input[type=tel],.ba-page input[type=number],
.ba-page input[type=date],.ba-page input[type=time],.ba-page select,.ba-page textarea{
  display:block;width:100%;height:42px;margin:0;padding:0 13px;border:1px solid #d9d6de;border-radius:8px;background:#fff;
  font-family:inherit;font-weight:400;font-size:15px;line-height:1.3;color:#2c2a31;transition:border-color .15s,box-shadow .15s}
.ba-page textarea{height:auto;padding:10px 13px;resize:vertical;line-height:1.5}
.ba-page select{padding-right:38px;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;text-overflow:ellipsis}
.ba-page select:disabled{background:#f6f5f8;color:#8b8791;cursor:not-allowed}
.ba-page input:hover,.ba-page select:hover,.ba-page textarea:hover{border-color:#b9b3c2}
.ba-page input:focus,.ba-page select:focus,.ba-page textarea:focus{outline:none;border-color:#5b3e78;box-shadow:0 0 0 3px rgba(91,62,120,.18)}
.ba-select{position:relative}
.ba-chev{position:absolute;right:12px;top:50%;width:16px;height:16px;margin-top:-8px;pointer-events:none;fill:none;stroke:#6d6975;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

.ba-radios{display:flex;flex-wrap:wrap;gap:8px}
.ba-radios label{display:inline-flex;align-items:center;gap:7px;height:42px;margin:0;padding:0 16px;border:1px solid #d9d6de;border-radius:8px;font-weight:400;cursor:pointer}
.ba-radios label:has(input:checked){border-color:#5b3e78;background:#f3eff8;color:#5b3e78;font-weight:600}
.ba-radios input{margin:0;accent-color:#5b3e78}

.ba-field>label.ba-check,.ba-check{display:flex;gap:10px;align-items:flex-start;margin:0;font-size:15px;font-weight:400;cursor:pointer}
.ba-check input{flex:none;width:18px;height:18px;margin:3px 0 0;accent-color:#5b3e78}
.ba-page a{color:#5b3e78;text-decoration:underline}
.ba-terms{margin:10px 0 0 28px;padding:10px 14px;background:#f7f5fa;border-radius:8px;font-size:14px}
.ba-terms summary{cursor:pointer;font-weight:600;color:#5b3e78}
.ba-terms ol{margin:10px 0 2px;padding-left:20px}
.ba-terms li{margin-bottom:6px}

.ba-error{display:none;margin:4px 0 0 2px;font-size:13px;font-weight:600;color:#b3261e}
.ba-field.has-error .ba-error{display:block}
.ba-field.has-error input,.ba-field.has-error select,.ba-field.has-error textarea{border-color:#b3261e;box-shadow:0 0 0 2px rgba(179,38,30,.12)}
.ba-field.has-error .ba-radios label{border-color:#b3261e}
.ba-summary{margin-top:14px;padding:10px 14px;border-radius:8px;background:#fdf1f0;color:#b3261e;font-weight:600}

.ba-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;padding-top:18px}
.ba-submit{display:inline-flex;align-items:center;gap:10px;height:48px;padding:0 28px;border:0;border-radius:8px;background:#5b3e78;color:#fff;
  font-family:inherit;font-weight:700;font-size:16px;line-height:1;letter-spacing:.02em;cursor:pointer;transition:background-color .2s,box-shadow .2s}
.ba-submit svg{width:20px;height:20px;fill:currentColor}
.ba-submit:hover,.ba-submit:focus{background:#43295f;box-shadow:0 4px 14px rgba(91,62,120,.3);outline:none}
.ba-submit:focus-visible,.ba-again:focus-visible{outline:2px solid #7ba786;outline-offset:3px}
.ba-note{margin:0;font-size:13px;color:#6d6975;flex:1 1 260px}

.ba-done{padding:28px 24px}
.ba-done p{margin:0 0 10px}
.ba-again{margin-top:8px;height:42px;padding:0 20px;border:2px solid #5b3e78;border-radius:8px;background:#fff;color:#5b3e78;font-weight:700;cursor:pointer}
.ba-again:hover{background:#5b3e78;color:#fff}

@media (max-width:767px){
  .ba-page{padding-top:20px}
  .ba-form,.ba-done{padding:4px 16px 20px;border-radius:14px}
  .ba-grid,.ba-grid-3{grid-template-columns:minmax(0,1fr)}
  .ba-submit{width:100%;justify-content:center}
  .ba-terms{margin-left:0}
}
