/* Only loaded where the quote composer is present. */
.qlf-devis { max-width: 58rem; margin-inline: auto; padding: clamp(1.25rem, 4vw, 3rem); border: 1px solid #d5deec; border-top: 4px solid var(--qc-purple-700); border-radius: 1.5rem; background: #fff; box-shadow: 0 1rem 3rem #07152f0a; color: #152238; }
.qlf-devis [hidden] { display: none !important; }
.qlf-devis-intro { margin: 0 0 1.5rem; font-size: 1.1rem; }
.qlf-devis-fields { border: 0; padding: 0; margin: 0; min-width: 0; }
.qlf-devis-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1.25rem; }
.qlf-devis-grid > div { min-width: 0; }
.qlf-devis-full { grid-column: 1 / -1; }
.qlf-devis label { display: block; margin-bottom: .5rem; font-size: 1rem; font-weight: 650; }
.qlf-devis :is(input, select, textarea) { display: block; width: 100%; max-width: 100%; min-height: 3.15rem; padding: .8rem 1rem; border: 1px solid #8191a8; border-radius: .65rem; background: #fff; color: #152238; font-size: 1rem; line-height: 1.5; box-shadow: none; }
.qlf-devis textarea { resize: vertical; }
.qlf-devis :is(input, textarea)::placeholder { color: #526177; opacity: 1; }
.qlf-devis :is(input, select, textarea):focus-visible { outline: 3px solid #7415aa; outline-offset: 2px; }
.qlf-devis [aria-invalid="true"] { border-color: #b32222; }
.qlf-devis-help, .qlf-devis-privacy { color: #526177; font-size: .94rem; line-height: 1.6; }
.qlf-devis-details { margin: 1.5rem 0; padding: 1rem 0; border-block: 1px solid #d5deec; }
.qlf-devis-details summary { cursor: pointer; padding: .35rem 0; font-weight: 650; min-height: 2.75rem; }
.qlf-devis-details summary span { font-weight: 400; color: #526177; }
.qlf-devis-details[open] .qlf-devis-grid { margin-top: 1rem; }
.qlf-devis-error { color: #a11818; font-weight: 600; }
.qlf-devis-error:empty, .qlf-devis-status:empty { display: none; }
.qlf-devis .button { border: 1px solid transparent; min-height: 3.15rem; text-align: center; cursor: pointer; white-space: normal; }
.qlf-devis .qlf-devis-submit { width: 100%; }
.qlf-devis .button-secondary { border-color: #8191a8; color: #12325c; background: #fff; }
.qlf-devis .button-secondary:hover { background: #edf2fa; }
.qlf-devis-result { margin-top: 2rem; padding: clamp(1rem, 3vw, 1.75rem); border: 1px solid #bccbe1; border-radius: 1rem; background: #f6f8fc; scroll-margin-top: 8rem; }
.qlf-devis-result h3 { font-size: clamp(1.35rem, 3vw, 1.75rem); }
.qlf-devis-actions { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; margin-block: 1rem; }
.qlf-devis-edit { padding: .5rem 0; min-height: 2.75rem; color: #1637b7; border: 0; background: none; cursor: pointer; text-decoration: underline; text-underline-offset: .2em; }
.qlf-devis-status { color: #12325c; font-weight: 600; }
.qlf-devis-summary { font-size: .95rem !important; white-space: pre-wrap; overflow-wrap: anywhere; }
.qlf-devis-privacy { margin-top: 1.5rem; }
.qlf-devis-direct { border-top: 1px solid #d5deec; padding-top: 1.2rem; display: flex; gap: .75rem 1.2rem; flex-wrap: wrap; align-items: center; }
.qlf-devis-direct span { flex-basis: 100%; font-weight: 650; }
.qlf-devis-direct a { padding-block: .4rem; }
@media (max-width: 600px) { .qlf-devis-grid { grid-template-columns: minmax(0,1fr); } .qlf-devis-actions { align-items: stretch; flex-direction: column; } .qlf-devis-actions .button { width: 100%; } .qlf-devis { border-radius: 1rem; } }
@media (prefers-reduced-motion: reduce) { .qlf-devis * { scroll-behavior: auto; transition: none; } }
