/* Call Me Back Pro - Frontend */
.cmbp-root { position: relative; z-index: 99999; }
body.cmbp-lock { overflow:hidden; }

.cmbp-floating-button{
  position: fixed;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding: 12px 16px;
  border-radius: 999px;
  border: 0;
  cursor: pointer;
  background: #0b4d8a;
  color: #fff;
  font-weight: 700;
  box-shadow: 0 12px 30px rgba(0,0,0,.18);
}
.cmbp-floating-button:focus{ outline: 2px solid rgba(11,77,138,.35); outline-offset: 2px; }
.cmbp-floating-button__text{ font-size: 14px; line-height: 1; }

.cmbp-floating-button.is-top_left{ top: 20px; left: 20px; }
.cmbp-floating-button.is-top_right{ top: 20px; right: 20px; }
.cmbp-floating-button.is-bottom_left{ bottom: 20px; left: 20px; }
.cmbp-floating-button.is-bottom_right{ bottom: 20px; right: 20px; }
.cmbp-floating-button.is-center_left{ top: 50%; left: 20px; transform: translateY(-50%); }
.cmbp-floating-button.is-center_right{ top: 50%; right: 20px; transform: translateY(-50%); }

.cmbp-modal{
  position: fixed;
  inset: 0;
  display:none;
}
.cmbp-modal.is-open{ display:block; }

.cmbp-modal__backdrop{
  position:absolute;
  inset:0;
  background: rgba(0,0,0,.55);
}

.cmbp-modal__panel{
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: min(520px, 94vw);
  max-height: 86vh;
  overflow:auto;
  background: #fff;
  border-radius: 18px;
  box-shadow: 0 18px 60px rgba(0,0,0,.25);
  padding: 18px 16px 16px;
}

.cmbp-modal__close{
  position:absolute;
  right: 10px;
  top: 8px;
  border:0;
  background: transparent;
  font-size: 28px;
  line-height: 1;
  cursor:pointer;
  color: #0b1a2b;
}

.cmbp-form__fields{ display:flex; flex-direction:column; gap: 12px; padding-top: 8px; }
.cmbp-label{ font-weight: 700; font-size: 13px; margin-bottom: 6px; display:block; color:#0b1a2b; }
.cmbp-req{ color:#b42318; margin-left: 4px; }

.cmbp-input{
  width:100%;
  border:1px solid rgba(15, 23, 42, .18);
  border-radius: 12px;
  padding: 10px 12px;
  font-size: 14px;
  background: #fff;
}
.cmbp-input:focus{ outline: 2px solid rgba(11,77,138,.25); border-color: rgba(11,77,138,.35); }

.cmbp-checkbox{ display:flex; gap:10px; align-items:flex-start; font-size: 14px; color:#0b1a2b; }
.cmbp-checkbox input{ margin-top: 3px; }

.cmbp-radio-group .cmbp-label{ margin-bottom: 8px; }
.cmbp-radio{ display:flex; gap:10px; align-items:center; padding: 8px 10px; border: 1px solid rgba(15, 23, 42, .12); border-radius: 12px; margin-bottom: 8px; }
.cmbp-radio input{ margin:0; }

.cmbp-field__error{ color:#b42318; font-size: 12px; margin-top: 6px; min-height: 14px; }
.cmbp-field.has-error .cmbp-input,
.cmbp-field.has-error select,
.cmbp-field.has-error textarea{ border-color: rgba(180, 35, 24, .55); outline-color: rgba(180, 35, 24, .25); }

.cmbp-form__actions{ display:flex; flex-direction:column; gap: 10px; margin-top: 14px; }
.cmbp-submit{
  width:100%;
  padding: 12px 14px;
  border-radius: 14px;
  border: 0;
  background: #0b4d8a;
  color:#fff;
  font-weight: 800;
  cursor:pointer;
}
.cmbp-submit[disabled]{ opacity: .6; cursor: not-allowed; }
.cmbp-form__status{ font-size: 13px; color:#0b1a2b; min-height: 18px; }

@media (max-width: 480px){
  .cmbp-modal__panel{ padding: 16px 14px 14px; }
  .cmbp-floating-button{ padding: 11px 14px; }
}
