.enquiry-form { max-width: 42rem; margin: 2rem auto; display: grid; gap: 1.35rem; text-align: start; }
.enquiry-form label, .enquiry-form legend { color: var(--ink); font-weight: 600; }
.enquiry-form label > span, .enquiry-note { font-weight: 400; }
.enquiry-form input:not([type="radio"]):not([type="checkbox"]), .enquiry-form textarea {
  display: block; width: 100%; min-height: 48px; margin-top: .4rem; padding: .75rem;
  border: 1px solid var(--control-line); border-radius: .5rem; background: var(--panel); color: var(--ink); font: inherit;
}
.enquiry-form textarea { resize: vertical; }
.enquiry-form fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.enquiry-options { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; }
.enquiry-options label { display: flex; align-items: center; gap: .6rem; min-height: 48px; font-weight: 400; cursor: pointer; }
.enquiry-form input[type="radio"], .enquiry-form input[type="checkbox"] { flex-shrink: 0; width: 1.2rem; height: 1.2rem; accent-color: var(--accent); }
.enquiry-consent { display: flex; align-items: flex-start; gap: .65rem; font-size: .9rem; }
.enquiry-consent input { margin-top: .3rem; }
.enquiry-form .enquiry-note { margin: .3rem 0 0; color: var(--muted); font-size: .9rem; }
.enquiry-form :is(input, textarea, button):focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; }
.enquiry-form button { min-height: 48px; justify-self: start; }
.enquiry-form button:disabled { opacity: .6; cursor: wait; }
#enquiry-status { margin: 0; overflow-wrap: anywhere; }
#enquiry-status:not(:empty) { padding: 1rem; border: 1px solid var(--control-line); border-radius: .5rem; background: var(--tint); }
@media (max-width: 480px) { .contact-card { padding-inline: 1rem; } }

.connect-launcher, .connect-dialog, .connect-dialog * { box-sizing: border-box; }
.connect-launcher {
  position: fixed; right: max(1.25rem, env(safe-area-inset-right)); bottom: calc(max(1.25rem, env(safe-area-inset-bottom)) + var(--comparison-bar-height, 0px));
  z-index: 30; display: inline-flex; align-items: center; gap: .6rem;
  min-height: 48px; padding: .75rem 1.1rem; border: 1px solid var(--accent); border-radius: 999px;
  background: var(--accent); color: var(--button-ink); box-shadow: 0 4px 20px #0002;
  font: 600 .875rem/1.4 Inter, ui-sans-serif, system-ui, sans-serif; cursor: pointer;
}
.connect-launcher:hover { background: var(--accent-hover); }
.connect-launcher svg { flex: none; }
.connect-launcher:focus-visible, .connect-dialog button:focus-visible { outline: 3px solid var(--accent); outline-offset: 4px; }
.connect-dialog {
  position: fixed; inset: auto 1.25rem 1.25rem auto; margin: 0; padding: 0;
  width: min(34rem, calc(100% - 2.5rem)); max-width: none; max-height: 85vh; max-height: 85dvh;
  overflow: auto; overscroll-behavior: contain; border: 1px solid var(--line); border-radius: 1.25rem;
  background: var(--panel); color: var(--ink); box-shadow: 0 24px 80px #0004;
  font: 400 .9375rem/1.6 Inter, ui-sans-serif, system-ui, sans-serif;
}
.connect-dialog::backdrop { background: #07111f80; overflow: hidden; overscroll-behavior: contain; }
.connect-heading {
  position: sticky; top: 0; z-index: 1; display: flex; justify-content: space-between; align-items: center;
  gap: 1rem; padding: 1rem 1.5rem; border-bottom: 1px solid var(--line); background: var(--panel);
}
.connect-heading .connect-kicker { margin: 0 0 .2rem; color: var(--muted); font-size: .75rem; letter-spacing: .05em; }
.connect-heading h2 { margin: 0; font: 650 1.5rem/1.3 Inter, ui-sans-serif, system-ui, sans-serif; color: var(--ink); }
.connect-close {
  display: grid; place-items: center; flex: none; width: 44px; height: 44px; padding: 0;
  border: 1px solid var(--line); border-radius: 50%; background: var(--panel); color: var(--ink);
  font: 400 1.75rem/1 system-ui, sans-serif; cursor: pointer;
}
.connect-close:hover { background: var(--tint); }
.connect-content { padding: 1.25rem 1.5rem 1.5rem; }
.connect-intro { margin: 0; color: var(--muted); }
.connect-dialog .enquiry-form { margin: 1.25rem 0; gap: 1rem; }
.connect-dialog .enquiry-options { display: grid; gap: 0; }
.connect-dialog .enquiry-options label { min-height: 40px; }
.connect-dialog a { color: var(--accent); text-decoration: underline; }
.connect-dialog .enquiry-form button[type="submit"] {
  padding: .75rem 1.2rem; border: 0; border-radius: .5rem;
  background: var(--accent); color: var(--button-ink); font: inherit; font-weight: 600; cursor: pointer;
}
/* Leave room to reach footer links beneath the floating launcher. */
body:has(.connect-launcher) { padding-bottom: 5rem; }
@media (max-width: 600px) {
  .connect-launcher { right: max(.75rem, env(safe-area-inset-right)); bottom: calc(max(.75rem, env(safe-area-inset-bottom)) + var(--comparison-bar-height, 0px)); }
  .connect-dialog { inset: auto 0 0; width: 100%; max-height: 90vh; max-height: 90dvh; border-radius: 1.25rem 1.25rem 0 0; }
  .connect-heading { padding: 1rem; }
  .connect-content { padding: 1rem 1rem max(1.5rem, env(safe-area-inset-bottom)); }
  .connect-dialog .enquiry-form input, .connect-dialog .enquiry-form textarea { font-size: 1rem; }
}
@media print { .connect-launcher, .connect-dialog { display: none !important; } body:has(.connect-launcher) { padding-bottom: 0; } }
