.quick-contact-launch {
  position: fixed;
  z-index: 899;
  inset-inline-start: max(12px, env(safe-area-inset-left));
  bottom: calc(var(--campaign-bar-height, 100px) + 29px + env(safe-area-inset-bottom));
  display: inline-flex;
  align-items: center;
  gap: 8px;
  max-inline-size: calc(100vw - 88px);
  min-block-size: 46px;
  padding: 5px 14px 5px 5px;
  border: 1px solid var(--line);
  border-radius: 30px;
  background: var(--green);
  color: var(--on-green);
  box-shadow: 0 6px 20px #06251933;
  font: inherit;
  font-size: .875rem;
  font-weight: 700;
  line-height: 1.2;
  text-align: start;
  cursor: pointer;
}
.quick-contact-launch img, .quick-contact-advisor img {
  flex-shrink: 0;
  object-fit: contain;
  object-position: bottom;
  border-radius: 50%;
  background: var(--leaf);
}
.quick-contact-launch img { inline-size: 32px; block-size: 32px; }
.quick-contact-dialog {
  box-sizing: border-box;
  inline-size: min(100% - 24px, 470px);
  max-inline-size: none;
  max-block-size: calc(100dvh - 24px);
  padding: clamp(18px, 5vw, 28px);
  margin: auto;
  border: 1px solid var(--line);
  border-radius: 24px;
  color: var(--ink);
  background: var(--paper);
  box-shadow: 0 24px 88px #031b1555;
  overflow: auto;
  overscroll-behavior: contain;
}
.quick-contact-dialog::backdrop { background: #071b1477; backdrop-filter: blur(4px); }
.quick-contact-top, .quick-contact-advisor { display: flex; align-items: center; gap: 10px; }
.quick-contact-top { justify-content: space-between; margin-bottom: 14px; }
.quick-contact-advisor { line-height: 1.25; }
.quick-contact-advisor small { display: block; margin-top: 3px; color: var(--muted); font-size: .8125rem; }
.quick-contact-close {
  display: grid;
  place-items: center;
  flex: 0 0 44px;
  block-size: 44px;
  border: 1px solid var(--line);
  border-radius: 50%;
  background: transparent;
  color: var(--ink);
  font-size: 1.4rem;
  cursor: pointer;
}
.quick-contact-dialog h2 { margin: 0 0 8px; font-size: clamp(1.55rem, 5vw, 2.15rem); line-height: 1.12; }
.quick-contact-dialog h2:focus { outline: none; }
.quick-contact-dialog p { margin: 0; color: var(--muted); line-height: 1.5; }
.quick-contact-form, .quick-contact-success { display: grid; gap: 12px; margin-top: 16px; }
.quick-contact-form label { display: grid; gap: 5px; font-weight: 600; }
.quick-contact-phone-field { margin-top: 5px; grid-template-columns: minmax(105px, .42fr) minmax(0, 1fr); }
.quick-contact-phone-field :is(.select-trigger, input) { min-block-size: 48px; }
.quick-contact-form .phone-status { margin-top: 5px; }
.quick-contact-form input:not([type="checkbox"]) {
  box-sizing: border-box;
  inline-size: 100%;
  min-block-size: 48px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--leaf);
  color: var(--ink);
  font: inherit;
  font-size: max(1rem, 16px);
}
.quick-contact-form .quick-contact-consent {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: 9px;
  font-size: .8125rem;
  font-weight: 400;
  line-height: 1.45;
}
.quick-contact-consent input { inline-size: 20px; block-size: 20px; margin: 0; accent-color: var(--green); }
.quick-contact-consent a { text-decoration: underline; }
.quick-contact-form .button, .quick-contact-success :is(.whatsapp-action, .button) { justify-content: center; min-block-size: 48px; text-align: center; }
.quick-contact-success .whatsapp-action {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  border-radius: 14px;
}
.quick-contact-saved {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 4px 12px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--leaf);
}
.quick-contact-saved span { color: var(--muted); font-size: .875rem; }
.quick-contact-saved strong { direction: ltr; overflow-wrap: anywhere; }
.quick-contact-form .quick-contact-error { color: var(--ink); font-weight: 600; }
.quick-contact-launch[hidden], .quick-contact-dialog [hidden],
body:has(#quick-contact:is([data-mode="landing"], [data-mode="home"])) #chat-nudge { display: none !important; }
@media (prefers-reduced-motion: reduce) {
  .quick-contact-dialog[open] { animation: none; }
}
