/* Book-a-Call popup (same popup as the rest of the live site) - standalone styles
   for pages that do not load Bootstrap (the new home page). */
:root {
  --bw-navy: #0D1B2A; --bw-blue: #1E3A8A; --bw-teal: #00B894; --bw-orange: #FF7A00;
  --bw-orange-dark: #c9660a; --bw-paper-2: #EFEBE1; --bw-ink: #16202E; --bw-muted-light: #8A96A6;
  --font-display: 'Poppins', sans-serif;
}
#book-a-call-modal, #book-a-call-modal * { box-sizing: border-box; }
#book-a-call-modal { font-family: 'Montserrat', sans-serif; color: #16202E; line-height: 1.5; }
#book-a-call-modal .d-flex { display: flex !important; }
#book-a-call-modal .flex-column { flex-direction: column !important; }
#book-a-call-modal .gap-3 { gap: 1rem !important; }
#book-a-call-modal .mb-1 { margin-bottom: .25rem !important; }
#book-a-call-modal .mb-2 { margin-bottom: .5rem !important; }
#book-a-call-modal .mb-4 { margin-bottom: 1.5rem !important; }
#book-a-call-modal .d-block { display: block !important; }
#book-a-call-modal .w-100 { width: 100% !important; }
#book-a-call-modal .border-0 { border: 0 !important; }
#book-a-call-modal .text-center { text-align: center !important; }
#book-a-call-modal .fw-semibold { font-weight: 600 !important; }
#book-a-call-modal .text-blue { color: var(--bw-blue) !important; }
#book-a-call-modal a { text-decoration: none; }
#book-a-call-modal .bacm-title { margin-top: 0; line-height: 1.2; }
#book-a-call-modal textarea.bacm-input { font-family: inherit; resize: vertical; display: block; }
#book-a-call-modal input.bacm-input { font-family: inherit; display: block; }
#book-a-call-modal .btn {
  display: inline-block; cursor: pointer; text-align: center; font-family: inherit;
  font-size: calc(1rem + var(--fs-boost, 0px)); line-height: 1.5; vertical-align: middle; border-radius: 2px;
}
#book-a-call-modal .btn-bw-primary { background: var(--bw-orange); color: #fff; font-weight: 600; border: 0; padding: .85rem 1.75rem; }
#book-a-call-modal .btn-bw-primary:hover, #book-a-call-modal .btn-bw-primary:focus { background: #e66d00; color: #fff; }

/* --- Book-a-call modal (CSS-only, :target driven) ----------------------- */
#book-a-call-modal {
  display: none; position: fixed; inset: 0; z-index: 1080;
  align-items: center; justify-content: center; padding: 24px;
  background: rgba(13,27,42,.72);
}
#book-a-call-modal:target { display: flex; }
.bacm-card {
  position: relative; background: #fff; width: 100%; max-width: 480px;
  border-radius: 6px; padding: 26px 30px; max-height: 94vh; overflow-y: auto;
}
.bacm-close {
  position: absolute; top: 16px; right: 18px;
  color: var(--bw-muted-light); font-size: calc(1.4rem + var(--fs-boost, 0px)); line-height: 1;
}
.bacm-close:hover { color: var(--bw-navy); }
.bacm-eyebrow {
  color: var(--bw-orange-dark); font-size: calc(.69rem + var(--fs-boost, 0px)); font-weight: 700;
  letter-spacing: 2px; text-transform: uppercase;
}
.bacm-title {
  font-family: var(--font-display); font-size: calc(1.375rem + var(--fs-boost, 0px));
  font-weight: 700; color: var(--bw-navy);
}
.bacm-label { font-size: calc(.75rem + var(--fs-boost, 0px)); font-weight: 600; color: #2B3646; margin-bottom: 2px !important; }
.bacm-input {
  width: 100%; padding: 9px 13px; border: 1.5px solid #DCD6C6;
  border-radius: 3px; font-size: calc(.84rem + var(--fs-boost, 0px)); color: var(--bw-ink); background: #fff;
}
.bacm-note { font-size: calc(.72rem + var(--fs-boost, 0px)); color: var(--bw-muted-light); }
@media (max-height: 800px) {
  .bacm-card { padding: 20px 28px; }
  .bacm-title { font-size: calc(1.15rem + var(--fs-boost, 0px)); margin-bottom: .75rem !important; }
  .bacm-form .d-flex.flex-column.gap-3 { gap: .6rem !important; }
  .bacm-input { padding: 7px 12px; }
}

/* ---------- 3. Form error messages ---------- */
.field-error {
  display: none;
  color: #D64545;
  font-size: calc(.78rem + var(--fs-boost, 0px));
  font-weight: 600;
  margin-top: 6px;
}
.field-error.show { display: block; }
.form-field.has-error input,
.form-field.has-error select,
.form-field.has-error textarea {
  border-color: #D64545 !important;
  box-shadow: 0 0 0 3px rgba(214,69,69,.12);
}
.form-success-msg {
  display: none;
  background: #E7F7F0;
  color: #0F7B4F;
  border: 1px solid #A9E6C9;
  border-radius: 6px;
  padding: 12px 14px;
  font-size: calc(.85rem + var(--fs-boost, 0px));
  font-weight: 600;
  margin-top: 14px;
}
.form-success-msg.show { display: block; }
.form-error-msg {
  display: none;
  background: #FDECEC;
  color: #B42318;
  border: 1px solid #F5B5B5;
  border-radius: 6px;
  padding: 12px 14px;
  font-size: calc(.85rem + var(--fs-boost, 0px));
  font-weight: 600;
  margin-bottom: 14px;
}
.form-error-msg.show { display: block; }
button[disabled].btn-bw-primary,
button[disabled].btn-bw-primary:hover,
button[disabled].btn-bw-primary:focus {
  opacity: .65;
  cursor: not-allowed;
  background: var(--bw-orange);
  color: #fff;
  border: 0;
}
button[disabled].btn-bw-secondary,
button[disabled].btn-bw-secondary:hover,
button[disabled].btn-bw-secondary:focus {
  opacity: .65;
  cursor: not-allowed;
  background: var(--bw-blue);
  color: #fff;
  border: 0;
}
