/* Universal Connect — fenêtre « Demander une soumission » (formulaire) */

.quote-dialog {
  width: min(560px, calc(100% - 32px)); max-height: calc(100dvh - 32px); padding: 0; overflow: auto;
  border-radius: var(--radius-l); border: 1px solid rgba(110, 175, 255, 0.35);
  background: linear-gradient(160deg, rgba(60, 140, 255, 0.14), var(--bg-raised) 45%);
  color: var(--ink); box-shadow: 0 40px 120px -30px rgba(0, 0, 0, 0.95), 0 0 80px -30px rgba(40, 110, 255, 0.55);
}
.quote-dialog::backdrop { background: rgba(2, 4, 12, 0.72); backdrop-filter: blur(6px); }
.quote-dialog[open] { animation: quote-in 0.45s cubic-bezier(.2, .8, .2, 1); }
@keyframes quote-in { from { opacity: 0; transform: translateY(24px) scale(0.97); } }

.quote-inner { position: relative; padding: clamp(24px, 4vw, 36px); }
.quote-close {
  position: absolute; top: 14px; right: 14px; display: grid; place-items: center; width: 40px; height: 40px;
  padding: 0; border: 1px solid var(--line); border-radius: 50%; background: transparent; color: var(--ink); cursor: pointer;
}
.quote-close:hover { border-color: var(--accent); background: rgba(47, 123, 255, 0.14); }
.quote-close svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }

.quote-dialog h2 {
  margin: 0 48px 8px 0; font-family: var(--font-display); font-weight: 600;
  font-size: clamp(26px, 4vw, 34px); line-height: 1.1; letter-spacing: -0.02em;
}
.quote-intro { margin: 0 0 22px; color: var(--ink-muted); font-size: 15px; }

.quote-form { display: grid; gap: 16px; }
.quote-form[hidden] { display: none; }   /* sinon display: grid l'emporte sur l'attribut hidden */
.quote-dialog button { font: inherit; }   /* les boutons n'héritent pas de la police par défaut */
.quote-field { display: grid; gap: 6px; }
.quote-field label { font-size: 14px; font-weight: 500; }
.quote-field input, .quote-field select, .quote-field textarea {
  width: 100%; padding: 12px 14px; border-radius: 12px; border: 1px solid rgba(255, 255, 255, 0.14);
  background: rgba(3, 6, 16, 0.7); color: var(--ink); font: inherit; font-size: 16px;   /* 16 px : pas de zoom auto sur iPhone */
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.quote-field textarea { min-height: 120px; resize: vertical; }
.quote-field select option { background: var(--bg-raised); }
.quote-field input:focus, .quote-field select:focus, .quote-field textarea:focus {
  outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px rgba(47, 123, 255, 0.28);
}
.quote-field [aria-invalid="true"] { border-color: #FF6B6B; }
.quote-error { margin: 0; min-height: 0; font-size: 13px; color: #FF8A8A; }
.quote-error:empty { display: none; }

.quote-honeypot { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }   /* piège à robots */

.quote-form .btn { justify-self: start; }
.quote-form .btn[disabled] { opacity: 0.6; cursor: progress; }
.quote-status { margin: 0; font-size: 14px; }
.quote-status:empty { display: none; }
.quote-status.is-error { color: #FF8A8A; }
.quote-status a { color: var(--accent-soft); }
.quote-privacy { margin: 0; font-size: 12px; color: var(--ink-muted); }

.quote-success { display: grid; gap: 12px; padding: 12px 0 4px; text-align: center; justify-items: center; }
.quote-success[hidden] { display: none; }
.quote-success-icon {
  display: grid; place-items: center; width: 64px; height: 64px; border-radius: 50%;
  background: rgba(52, 211, 153, 0.15); color: #6EE7B7; box-shadow: inset 0 0 0 1px rgba(110, 231, 183, 0.45);
}
.quote-success-icon svg { width: 30px; height: 30px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.quote-success p { margin: 0; color: var(--ink-muted); }
.quote-success h2 { margin-right: 0; }   /* centré : pas besoin de laisser la place du bouton × */

@media (prefers-reduced-motion: reduce) {
  .quote-dialog[open] { animation: none; }
}
