/* Shared "Get a Quote" request modal — used site-wide */
.qm-overlay {
    position: fixed; inset: 0; z-index: 9990;
    background: rgba(15,23,42,.72); backdrop-filter: blur(6px);
    display: none; align-items: center; justify-content: center; padding: 20px;
    opacity: 0; transition: opacity .25s;
}
.qm-overlay.open { opacity: 1; }
.qm-card {
    background: #fff; border-radius: 18px; width: 100%; max-width: 560px;
    padding: 0; position: relative; max-height: 92vh; overflow-y: auto;
    box-shadow: 0 40px 110px rgba(0,0,0,.42);
    transform: translateY(16px) scale(.97);
    transition: transform .28s cubic-bezier(.2,1,.3,1);
    font-family: 'Gotham SSm', sans-serif;
}
.qm-overlay.open .qm-card { transform: translateY(0) scale(1); }

.qm-close {
    position: absolute; top: 16px; right: 16px; width: 34px; height: 34px; z-index: 3;
    border-radius: 9px; border: 1px solid rgba(255,255,255,.2); background: rgba(255,255,255,.12);
    color: #fff; cursor: pointer; display: flex; align-items: center; justify-content: center;
    transition: background .2s; backdrop-filter: blur(4px);
}
.qm-close:hover { background: rgba(255,255,255,.24); }
.qm-close svg { width: 15px; height: 15px; }

/* Branded navy header */
.qm-header {
    position: relative; overflow: hidden;
    background: linear-gradient(135deg, #1D3464 0%, #16264A 58%, #0F1B38 100%);
    border-radius: 18px 18px 0 0; padding: 26px 32px;
    display: flex; align-items: center; gap: 16px;
}
.qm-header-glow { position: absolute; width: 260px; height: 260px; border-radius: 50%; background: radial-gradient(circle, rgba(201,162,75,.24), transparent 70%); top: -130px; right: -50px; pointer-events: none; }
.qm-logo-chip { background: #fff; border-radius: 12px; padding: 10px 14px; flex-shrink: 0; position: relative; box-shadow: 0 6px 18px rgba(0,0,0,.28); }
.qm-logo-chip img { height: 32px; width: auto; display: block; }
.qm-header-text { position: relative; min-width: 0; }
.qm-eyebrow { font-family: 'Gotham SSm', sans-serif; font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: #E7CE8E; margin-bottom: 5px; }
.qm-ref-label { font-family: 'Gotham SSm Display', serif; font-size: 21px; color: #fff; line-height: 1.15; }

.qm-body { padding: 26px 32px 30px; }

.qm-error {
    display: none; background: rgba(220,38,38,.08); border: 1px solid rgba(220,38,38,.25);
    color: #b91c1c; font-size: 12.5px; padding: 9px 13px; border-radius: 8px; margin-bottom: 14px;
}

.qm-row-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 14px; }
.qm-field { margin-bottom: 14px; }
.qm-field label { display: block; font-size: 12px; font-weight: 600; color: #334155; margin-bottom: 6px; }
.qm-field label span { color: #1D3464; }
.qm-field input, .qm-field textarea {
    width: 100%; border: 1.5px solid #e2e8f0; border-radius: 10px;
    padding: 0 14px; font-size: 13.5px; outline: none; background: #fff;
    font-family: 'Gotham SSm', sans-serif; transition: border-color .2s, box-shadow .2s;
}
.qm-field input { height: 44px; }
.qm-field textarea { height: 100px; padding: 12px 14px; resize: vertical; }
.qm-field input:focus, .qm-field textarea:focus { border-color: #1D3464; box-shadow: 0 0 0 3px rgba(29,52,100,.1); }

.qm-submit {
    width: 100%; height: 48px; border: none; border-radius: 10px; cursor: pointer;
    background: linear-gradient(135deg, #CA2325, #A81D20); color: #fff;
    font-size: 14px; font-weight: 700; display: flex; align-items: center; justify-content: center; gap: 8px;
    box-shadow: 0 4px 16px rgba(29,52,100,.3); transition: opacity .2s, transform .2s;
}
.qm-submit:hover { opacity: .92; transform: translateY(-1px); }
.qm-submit:disabled { cursor: default; opacity: .75; transform: none; }

/* Channel-matched CTA colours — Email = brand navy, WhatsApp = WhatsApp green
   (matches the Email/WhatsApp Enquiry buttons on the product page). */
#qm-overlay.qm-ch-email .qm-submit,
#qm-overlay.qm-ch-email #qm-continue { background: var(--accent, #1D3464); }
#qm-overlay.qm-ch-email .qm-submit:hover,
#qm-overlay.qm-ch-email #qm-continue:hover { background: #16294f; opacity: 1; }
#qm-overlay.qm-ch-whatsapp .qm-submit,
#qm-overlay.qm-ch-whatsapp #qm-continue { background: #25D366; }
#qm-overlay.qm-ch-whatsapp .qm-submit:hover,
#qm-overlay.qm-ch-whatsapp #qm-continue:hover { background: #1EBE5A; opacity: 1; }
.qm-submit svg { width: 15px; height: 15px; flex-shrink: 0; }
.qm-spinner { display: none; animation: qm-spin .7s linear infinite; }
@keyframes qm-spin { to { transform: rotate(360deg); } }

.qm-success { display: none; text-align: center; padding: 20px 0 4px; }
.qm-success-icon {
    width: 52px; height: 52px; border-radius: 50%; margin: 0 auto 14px;
    background: rgba(5,150,105,.1); border: 1px solid rgba(5,150,105,.25);
    display: flex; align-items: center; justify-content: center;
}
.qm-success-icon svg { width: 22px; height: 22px; }
.qm-success h4 { font-family: 'Gotham SSm Display', serif; font-size: 17px; color: #151B2B; margin-bottom: 8px; }
.qm-success p { font-size: 13px; color: #64748b; line-height: 1.7; margin-bottom: 22px; max-width: 380px; margin: 0 auto 22px; }
.qm-close-btn {
    padding: 10px 26px; border-radius: 9999px; border: 1.5px solid #e2e8f0; background: #fff;
    color: #475569; font-size: 12.5px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
    cursor: pointer; transition: background .2s, color .2s;
}
.qm-close-btn:hover { background: #f8fafc; color: #151B2B; }

@media (max-width: 520px) {
    .qm-row-2 { grid-template-columns: 1fr; }
}
