.gfd-contact-form { display: grid; gap: 16px; max-width: 640px; width: 100%; }
.gfd-contact-form__field { display: grid; gap: 6px; }
.gfd-contact-form__field label { font-weight: 700; color: #173b43; }
.gfd-contact-form__field input, .gfd-contact-form__field textarea { width: 100%; max-width: 100%; box-sizing: border-box; padding: 12px; border: 1px solid #738992; border-radius: 5px; background: #fff; color: #173b43; }
.gfd-contact-form__field :is(input, textarea):focus-visible, .gfd-contact-form__submit:focus-visible, .gfd-quote-dialog__close:focus-visible { outline: 3px solid #176c7a; outline-offset: 2px; }
.gfd-contact-form__submit { justify-self: start; border: 0; border-radius: 5px; background: #174f5f; color: #fff; padding: 12px 26px; font-weight: 700; cursor: pointer; }
.gfd-contact-form__submit[disabled] { opacity: .65; cursor: wait; }
.gfd-contact-form__error { color: #8b1e22; background: #fff0f0; border: 1px solid #b4474b; padding: 12px; margin: 0; }
.gfd-contact-form__trap { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.gfd-quote-dialog { width: min(640px, calc(100vw - 32px)); max-height: min(90dvh, 900px); overflow: auto; padding: clamp(20px, 4vw, 32px); border: 0; border-radius: 10px; box-shadow: 0 20px 60px #0006; color: #173b43; }
.gfd-quote-dialog::backdrop { background: rgb(0 0 0 / 65%); }
.gfd-quote-dialog__heading { display: flex; justify-content: space-between; gap: 20px; align-items: start; margin-bottom: 20px; }
.gfd-quote-dialog__heading h2 { margin: 0; }
.gfd-quote-dialog__close { flex: none; width: 44px; height: 44px; border: 0; background: transparent; color: #173b43; font-size: 32px; line-height: 1; cursor: pointer; }
.gfd-contact-preview { position: fixed; left: 16px; bottom: 16px; z-index: 1001; padding: 10px 14px; background: #174f5f; color: #fff; border: 0; border-radius: 5px; }

/* Keep the floating controls fixed at a stable viewport position. */
body .gfd-contact-float {
  position: fixed !important;
  right: max(20px, env(safe-area-inset-right)) !important;
  top: auto !important;
  bottom: 38% !important;
  left: auto !important;
  transform: none !important;
}

@media (max-width: 767px) {
  body .gfd-contact-float {
    right: max(12px, env(safe-area-inset-right)) !important;
    bottom: 35% !important;
  }
}

@media (max-width: 370px) {
  body .gfd-contact-float { right: max(9px, env(safe-area-inset-right)) !important; }
}
