body.quick-contact-open { overflow: hidden; }

.quick-contact-dialog {
  font-family: inherit;
  margin: 0;
  width: 100%;
  max-width: none;
  height: 100dvh;
  max-height: none;
  border: 0;
  position: fixed;
  z-index: 90;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 20px;
  background: rgba(23, 32, 51, 0.42);
}

.quick-contact-dialog[hidden] { display: none; }

.quick-contact-form {
  box-sizing: border-box;
  max-height: 100%;
  overflow-y: auto;
  width: min(460px, 100%);
  display: grid;
  gap: 14px;
  padding: 22px;
  border: 1px solid #d6dce3;
  border-radius: 8px;
  background: #ffffff;
  color: #172033;
  box-shadow: 0 20px 54px rgba(23, 32, 51, 0.24);
}

.quick-contact-heading { display: flex; align-items: start; justify-content: space-between; gap: 16px; }
.quick-contact-heading h2 { margin: 0; font-size: 20px; line-height: 1.35; }
.quick-contact-heading p, .quick-contact-notice, .quick-contact-message { margin: 5px 0 0; color: #5b6877; font-size: 13px; line-height: 1.6; }
.quick-contact-close { min-width: 44px; min-height: 36px; border: 0; border-radius: 6px; background: transparent; color: #334155; font: inherit; font-size: 13px; cursor: pointer; }
.quick-contact-close:hover, .quick-contact-close:focus-visible { background: #eef5ff; outline: 2px solid rgba(37, 99, 235, 0.2); outline-offset: 1px; }
.quick-contact-field { display: grid; gap: 6px; color: #263248; font-size: 13px; font-weight: 700; }
.quick-contact-field input { width: 100%; min-height: 44px; padding: 9px 11px; border: 1px solid #bfc9d4; border-radius: 6px; background: #ffffff; color: #172033; font: inherit; font-size: 15px; }
.quick-contact-field input:focus { border-color: #2563eb; outline: 2px solid rgba(37, 99, 235, 0.16); outline-offset: 1px; }
.quick-contact-notice { margin: 0; color: #748091; font-size: 11px; }
.quick-contact-message { min-height: 20px; margin: 0; color: #b4233c; }
.quick-contact-submit { min-height: 44px; border: 1px solid #172033; border-radius: 6px; background: #172033; color: #ffffff; font: inherit; font-size: 14px; font-weight: 700; cursor: pointer; }
.quick-contact-submit:disabled { cursor: not-allowed; opacity: 0.6; }
.quick-contact-close { min-height: 44px; flex-shrink: 0; }
.quick-contact-field input { box-sizing: border-box; font-size: 16px; }
.quick-contact-message.is-success { color: #15705c; }
.quick-contact-submit { background: #0066cc; border-color: #0066cc; }
.quick-contact-dialog::backdrop { background: transparent; }

@media (max-width: 680px) {
  .quick-contact-dialog { align-items: end; padding: 12px; padding-bottom: max(12px, env(safe-area-inset-bottom)); }
  .quick-contact-form { padding: 18px; }
}
