/* Overlay */
#otpro-quote-modal{
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: rgba(0,0,0,.6);
  display: none;                 /* closed */
  align-items: center;
  justify-content: center;
  padding: 16px;
}

/* When open, force flex layout (beats theme overrides) */
#otpro-quote-modal.is-open{
  display: flex !important;
}

/* Dialog */
.otpro-quote-modal-inner{
  background: #fff;
  width: 100%;
  max-width: 560px;
  max-height: calc(100vh - 32px);
  overflow-y: auto;
  box-sizing: border-box;
  padding: 24px;
  border-radius: 12px;
  position: relative;
  box-shadow: 0 8px 32px rgba(0,0,0,.15);

  /* If parent isn't flex for any reason, this still centers horizontally */
  margin-left: auto;
  margin-right: auto;
}

/* Typography + fields */
#otpro-quote-modal h2{ margin:0 0 12px; text-align:center; }
#otpro-quote-modal label{ font-weight:500; }
#otpro-quote-modal input,
#otpro-quote-modal textarea{
  width:100%;
  border-radius:5px;
  border:1px solid #ccc;
  padding:.6em;
  margin:.2em 0 1em;
  font-size:1em;
}

#otpro-quote-modal button.button{
  width:100%;
  background:#0060af;
  color:#fff;
  border:0;
  padding:.8em 0;
  border-radius:5px;
  font-size:1.1em;
  font-weight:600;
  transition:background .2s;
}
#otpro-quote-modal button.button:hover{ background:#01406e; }

.otpro-quote-close{
  position:absolute;
  top:12px; right:12px;
  background:transparent; border:0;
  font-size:1.5em; cursor:pointer; color:#888;
}

.otpro-quote-success{ display:none; margin-top:1em; color:green; font-weight:500; }
.otpro-quote-error{   display:none; margin-top:1em; color:red;   font-weight:500; }

@media (max-width:500px){
  .otpro-quote-modal-inner{ padding:16px; }
}
