
.gm-quote { max-width: 1160px; margin: 35px auto; padding: 24px; color: #18394d; font: 16px/1.65 Arial, sans-serif; }
.gm-quote * { box-sizing: border-box; }
.gm-quote h1, .gm-quote h2, .gm-quote h3 { color: #0a2d48; font-family: Georgia, serif; font-weight: 400; line-height: 1.2; }
.gm-quote h1 { font-size: 42px; margin-bottom: 35px; }
.gm-quote h2 { font-size: 28px; }
.gm-quote h3 { font-size: 24px; }
.gm-quote .request-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 35px; align-items: start; }
.gm-quote label { display: block; margin: 16px 0 8px; font-size: 13px; font-weight: bold; }
.gm-quote input, .gm-quote textarea { display: block; width: 100%; padding: 12px; border: 1px solid #b9c4c8; background: white; color: #18394d; font: inherit; }
.gm-quote form { padding: 26px; background: #f4f2ec; }
.gm-quote button, .gm-quote .button { display: inline-block; padding: 14px 20px; margin-top: 16px; border: 0; background: #0a2d48; color: white; font: bold 13px Arial, sans-serif; text-decoration: none; cursor: pointer; }
.gm-quote .orange { background: #d84f0c; }
.gm-quote .catalogue-note { font-size: 12px; color: #526774; }
.gm-quote .selection-row { border-bottom: 1px solid #d8dedc; padding: 18px 0; }
.gm-quote .selection-row p { font-size: 12px; }
.gm-quote .selection-row input { max-width: 130px; }
.gm-quote .quantity-row { display: flex; gap: 18px; align-items: end; }
.gm-quote .remove-product { background: transparent; color: #a32e00; padding: 8px; }
.gm-quote details { margin-top: 22px; }
.gm-quote summary { cursor: pointer; margin-bottom: 12px; }
.gm-quote [hidden] { display: none !important; }
.gm-quote a:focus-visible, .gm-quote button:focus-visible, .gm-quote input:focus-visible, .gm-quote textarea:focus-visible { outline: 3px solid #d84f0c; outline-offset: 3px; }
@media(max-width:760px) { .gm-quote .request-layout { grid-template-columns: 1fr; } .gm-quote { padding: 18px; } }

/* Parcours de cotation et suivi. */
.quote-honeypot { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.quote-confirmation { padding: 25px; background: #e7efe9; margin-top: 25px; }
.quote-confirmation h3 { font-size: 25px; }
.quote-confirmation label { margin-top: 20px; }
.quote-confirmation a { margin: 10px 0; }
.quote-picker { border: 1px solid #d8dedc; padding: 22px; margin-bottom: 20px; }
.quote-picker button { margin-top: 15px; }
button:disabled { cursor: wait; opacity: .65; }
.quote-reply { white-space: pre-wrap; overflow-wrap: anywhere; }

.quote-conversation { display: flex; flex-direction: column; gap: 18px; margin: 24px 0; }
.quote-message { padding: 22px; border-radius: 12px; max-width: 90%; background: #edf1f3; border: 1px solid #d8dedc; }
.quote-message-team { background: #f7eee5; border-left: 4px solid #d84f0c; align-self: flex-start; }
.quote-message-customer { align-self: flex-end; }
.quote-message-author { font-weight: bold; margin-bottom: 4px; }
.quote-message time { display: block; font-size: 11px; color: #5a6d78; margin-bottom: 14px; }
.quote-message .quote-reply { margin: 0; }
.quote-attached-photo { display: block; max-width: 100%; max-height: 500px; object-fit: contain; margin-top: 18px; }
.quote-recap { background: #f4f2ec; padding: 20px; margin: 20px 0; }
.quote-recap summary { cursor: pointer; }
.quote-message-form { margin-top: 30px; }
@media(max-width:700px) { .quote-message { max-width: 100%; padding: 18px; } }
