/* Book Appointment Modal — site-wide lead capture popup, loaded on every page */

.bm-overlay{
  position:fixed;
  inset:0;
  background:rgba(24,25,28,0.6);
  z-index:9999;
  display:none;
  align-items:flex-start;
  justify-content:center;
  padding:5vh 1rem;
  overflow-y:auto;
  opacity:0;
  transition:opacity .18s ease;
}
.bm-overlay.-open{display:flex;}
.bm-overlay.-visible{opacity:1;}

.bm-modal{
  background:#fff;
  border-radius:20px;
  width:100%;
  max-width:600px;
  padding:0;
  position:relative;
  box-shadow:0 40px 80px -20px rgba(0,0,0,0.35);
  transform:translateY(12px);
  transition:transform .18s ease;
  font-family:inherit;
}
.bm-overlay.-visible .bm-modal{transform:translateY(0);}

.bm-close{
  position:absolute;
  top:1.1rem;
  right:1.1rem;
  width:36px;
  height:36px;
  border-radius:50%;
  background:#f4f1ec;
  border:none;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  color:#24262B;
  transition:background .15s ease;
  z-index:2;
}
.bm-close:hover{background:#eae5db;}

.bm-header{
  padding:2rem 2.25rem 0.5rem;
}
.bm-eyebrow{
  color:#e5652f;
  font-family:'Bricolage Grotesque', sans-serif;
  font-weight:600;
  font-size:0.8rem;
  letter-spacing:0.06em;
  text-transform:uppercase;
  margin-bottom:0.5rem;
}
.bm-title{
  font-family:'Bricolage Grotesque', sans-serif;
  font-weight:700;
  font-size:1.5rem;
  line-height:1.25;
  color:#24262B;
  margin:0 0 0.5rem;
}
.bm-subtitle{
  font-size:0.92rem;
  color:#6b6d73;
  line-height:1.5;
  margin:0;
}

.bm-body{padding:1.5rem 2.25rem 2.25rem;}
.bm-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0.9rem;
  margin-bottom:0.9rem;
}
.bm-field{
  display:flex;
  flex-direction:column;
  gap:0.35rem;
  margin-bottom:0.9rem;
}
.bm-field label{
  font-family:'Bricolage Grotesque', sans-serif;
  font-weight:600;
  font-size:0.82rem;
  color:#24262B;
}
.bm-field .bm-optional{
  font-weight:400;
  color:#a3a5ab;
  text-transform:none;
  letter-spacing:0;
}
.bm-field input,
.bm-field select,
.bm-field textarea{
  width:100%;
  box-sizing:border-box;
  border:1.5px solid rgba(36,38,43,0.12);
  border-radius:10px;
  padding:0.7rem 0.85rem;
  font-family:inherit;
  font-size:0.92rem;
  color:#24262B;
  background:#faf8f5;
  transition:border-color .15s ease;
}
.bm-field input:focus,
.bm-field select:focus,
.bm-field textarea:focus{
  outline:none;
  border-color:#e5652f;
  background:#fff;
}
.bm-field textarea{resize:vertical;min-height:6rem;}

.bm-submit{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:100%;
  background:#e5652f;
  color:#fff;
  font-family:'Bricolage Grotesque', sans-serif;
  font-weight:600;
  font-size:0.98rem;
  padding:0.9rem 1.8rem;
  border-radius:999px;
  border:none;
  cursor:pointer;
  transition:opacity .2s ease;
  margin-top:0.35rem;
}
.bm-submit:hover{opacity:0.88;}
.bm-note{
  font-size:0.78rem;
  color:#a3a5ab;
  text-align:center;
  margin-top:0.85rem;
}

/* Success state */
.bm-success{
  display:none;
  padding:3rem 2.25rem;
  text-align:center;
}
.bm-success.-visible{display:block;}
.bm-success-icon{
  width:56px;
  height:56px;
  border-radius:50%;
  background:#fdece2;
  color:#e5652f;
  display:flex;
  align-items:center;
  justify-content:center;
  margin:0 auto 1.25rem;
}
.bm-success h3{
  font-family:'Bricolage Grotesque', sans-serif;
  font-weight:700;
  font-size:1.3rem;
  color:#24262B;
  margin:0 0 0.6rem;
}
.bm-success p{
  font-size:0.95rem;
  color:#6b6d73;
  line-height:1.6;
  max-width:380px;
  margin:0 auto;
}

@media (max-width: 600px){
  .bm-row{grid-template-columns:1fr;}
  .bm-header{padding:1.75rem 1.5rem 0.5rem;}
  .bm-body{padding:1.25rem 1.5rem 1.75rem;}
}
