/* ============================================
   DS Promo ED7 — Devis Express + Popup Alertes
   V5.0-ed7 — portage DS-Liquidation, palette verte ED7
   Classes préfixées dsq- pour éviter tout conflit
   ============================================ */

.dsq-overlay {
    position: fixed; inset: 0; z-index: 9999;
    background: rgba(10, 20, 14, 0.66);
    backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
    display: flex; align-items: center; justify-content: center;
    padding: 20px; opacity: 0; visibility: hidden;
    transition: opacity .3s ease, visibility .3s ease;
}
.dsq-overlay.dsq-show { opacity: 1; visibility: visible; }
.dsq-card {
    position: relative; width: 100%; max-width: 560px;
    max-height: 92vh; overflow-y: auto;
    background: #ffffff; border-radius: 22px;
    padding: 34px 30px 26px;
    box-shadow: 0 30px 80px rgba(0,0,0,.35);
    transform: translateY(18px) scale(.97);
    transition: transform .35s cubic-bezier(.22,1,.36,1);
}
.dsq-overlay.dsq-show .dsq-card { transform: translateY(0) scale(1); }
.dsq-close {
    position: absolute; top: 14px; right: 14px;
    width: 38px; height: 38px; border-radius: 50%;
    border: none; background: #f1f5f2; color: #5c514b;
    font-size: 15px; cursor: pointer; transition: all .2s;
}
.dsq-close:hover { background: #e4ece6; color: #0e0e0e; transform: rotate(90deg); }

/* ===== Popup Alertes ===== */
.dsq-hero { text-align: center; margin-bottom: 14px; }
.dsq-hero-icon {
    width: 74px; height: 74px; margin: 0 auto 14px;
    border-radius: 50%; display: flex; align-items: center; justify-content: center;
    background: linear-gradient(135deg, #2f9e44, #40b838);
    color: #fff; font-size: 30px;
    box-shadow: 0 14px 34px rgba(47,158,68,.4);
    animation: dsq-bell 3s ease-in-out infinite;
}
@keyframes dsq-bell { 0%,100% { transform: rotate(0); } 8% { transform: rotate(12deg); } 16% { transform: rotate(-10deg); } 24% { transform: rotate(6deg); } 32% { transform: rotate(0); } }
.dsq-badge {
    display: inline-block; font-size: 11px; font-weight: 800; letter-spacing: .1em;
    text-transform: uppercase; color: #2f9e44;
    background: #e9f9ec; border: 1.5px solid #8ce99a;
    padding: 6px 14px; border-radius: 999px;
}
.dsq-title {
    font-family: Montserrat, Arial, sans-serif; font-size: 24px; font-weight: 900;
    color: #0e0e0e; line-height: 1.25; margin: 6px 0 10px; text-align: center;
}
.dsq-title .dsq-accent { color: #2f9e44; }
.dsq-sub { font-size: 14px; color: #5c514b; line-height: 1.55; text-align: center; margin: 0 0 20px; }
.dsq-form { display: flex; flex-direction: column; gap: 10px; }
.dsq-field-group { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.dsq-form input {
    width: 100%; padding: 13px 15px; box-sizing: border-box;
    background: #f6f9f7; border: 1.5px solid #e4ece6; border-radius: 11px;
    font-size: 14px; color: #0e0e0e; font-family: inherit; transition: all .2s;
}
.dsq-form input:focus { outline: none; border-color: #40b838; background: #fff; box-shadow: 0 0 0 3px rgba(64,184,56,.16); }
.dsq-btn-primary {
    padding: 15px; border: none; border-radius: 12px; cursor: pointer;
    background: linear-gradient(135deg, #2f9e44, #40b838);
    color: #fff; font-family: Montserrat, Arial, sans-serif;
    font-size: 15px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase;
    display: flex; align-items: center; justify-content: center; gap: 9px;
    transition: all .2s; box-shadow: 0 10px 26px rgba(47,158,68,.35);
}
.dsq-btn-primary:hover { transform: translateY(-2px); box-shadow: 0 16px 34px rgba(47,158,68,.45); }
.dsq-btn-ghost {
    padding: 12px; border: none; border-radius: 12px; cursor: pointer;
    background: transparent; color: #8b857e; font-size: 13.5px; font-weight: 600;
    transition: all .2s;
}
.dsq-btn-ghost:hover { background: #f1f5f2; color: #0e0e0e; }
.dsq-trust {
    display: flex; justify-content: center; gap: 18px; flex-wrap: wrap;
    padding-top: 18px; margin-top: 16px; border-top: 1px solid #eef2ef;
    font-size: 11.5px; color: #8b857e;
}
.dsq-trust span { display: inline-flex; align-items: center; gap: 5px; }
.dsq-trust i { color: #2f9e44; }

/* ===== FAB Devis express ===== */
.dsq-fab {
    position: fixed; right: 24px; bottom: 24px; z-index: 998;
    display: inline-flex; align-items: center; gap: 10px;
    padding: 14px 22px 14px 17px; border: none; border-radius: 999px;
    background: linear-gradient(135deg, #2f9e44 0%, #40b838 100%);
    color: #fff; font-family: Montserrat, Arial, sans-serif;
    font-size: 14px; font-weight: 800; cursor: pointer;
    box-shadow: 0 12px 32px rgba(47,158,68,.45); transition: all .25s;
}
.dsq-fab i { font-size: 17px; }
.dsq-fab:hover { transform: translateY(-3px) scale(1.04); }
.dsq-fab-pulse {
    position: absolute; inset: -4px; border-radius: 999px; z-index: -1;
    background: linear-gradient(135deg, #2f9e44, #40b838); opacity: 0;
    animation: dsq-fab-pulse 3s ease-in-out infinite;
}
@keyframes dsq-fab-pulse { 0%,90%,100% { opacity: 0; transform: scale(1); } 45% { opacity: .35; transform: scale(1.12); } }

/* ===== Modal Devis ===== */
.dsq-quote-card { max-width: 620px; }
.dsq-quote-header { display: flex; gap: 16px; align-items: center; margin-bottom: 20px; }
.dsq-quote-icon {
    flex-shrink: 0; width: 56px; height: 56px; border-radius: 15px;
    display: flex; align-items: center; justify-content: center;
    background: linear-gradient(135deg, #2f9e44, #40b838);
    color: #fff; font-size: 23px; box-shadow: 0 10px 24px rgba(47,158,68,.35);
}
.dsq-quote-header h3 { font-family: Montserrat, Arial, sans-serif; font-size: 21px; font-weight: 900; color: #0e0e0e; margin: 0 0 4px; }
.dsq-quote-header h3 .dsq-accent { color: #2f9e44; }
.dsq-quote-header p { font-size: 13px; color: #5c514b; margin: 0; line-height: 1.45; }
.dsq-type-selector {
    margin-bottom: 16px; padding: 14px 16px;
    background: #e9f9ec; border: 1.5px solid #8ce99a; border-radius: 13px;
}
.dsq-type-label {
    display: flex; align-items: center; gap: 6px;
    font-size: 11.5px; font-weight: 800; color: #1b7a35;
    text-transform: uppercase; letter-spacing: .07em; margin-bottom: 8px;
}
.dsq-type-select {
    width: 100%; padding: 12px 40px 12px 14px; box-sizing: border-box;
    background: #fff; border: 1.5px solid #8ce99a; border-radius: 10px;
    color: #0e0e0e; font-size: 14px; font-weight: 600; font-family: inherit;
    cursor: pointer; appearance: none; -webkit-appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%232f9e44' d='M6 8L0 0h12z'/%3E%3C/svg%3E");
    background-repeat: no-repeat; background-position: right 14px center;
}
.dsq-type-select:focus { outline: none; border-color: #2f9e44; box-shadow: 0 0 0 3px rgba(64,184,56,.18); }
.dsq-dynamic {
    display: grid; grid-template-columns: 1fr 1fr; gap: 12px;
    margin-bottom: 12px; padding: 14px;
    background: #f6f9f7; border: 1px dashed #8ce99a; border-radius: 13px;
    animation: dsq-fields-in .35s ease;
}
.dsq-dynamic:empty { display: none; }
@keyframes dsq-fields-in { from { opacity: 0; transform: translateY(-5px); } to { opacity: 1; transform: translateY(0); } }
.dsq-field { display: flex; flex-direction: column; gap: 5px; }
.dsq-field-full { grid-column: 1 / -1; }
.dsq-field-label { font-size: 11px; font-weight: 700; color: #1b7a35; text-transform: uppercase; letter-spacing: .04em; }
.dsq-field input, .dsq-field select, .dsq-field textarea {
    padding: 11px 13px; background: #fff; border: 1.5px solid #e4ece6;
    border-radius: 10px; color: #0e0e0e; font-size: 13.5px; font-family: inherit;
    width: 100%; box-sizing: border-box; transition: all .2s;
}
.dsq-field input:focus, .dsq-field select:focus, .dsq-field textarea:focus {
    outline: none; border-color: #40b838; box-shadow: 0 0 0 3px rgba(64,184,56,.14);
}
.dsq-pdf-link {
    display: flex; align-items: center; gap: 11px;
    margin: 4px 0 16px; padding: 13px 15px;
    background: #e9f9ec; border: 1.5px solid #8ce99a; border-radius: 12px;
    font-size: 12.5px; color: #3a3532; text-decoration: none; transition: all .2s;
}
.dsq-pdf-link:hover { background: #d8f5df; }
.dsq-pdf-link i.fa-file-pdf { color: #2f9e44; font-size: 19px; }
.dsq-pdf-link i.fa-external-link-alt { color: #40b838; font-size: 12px; }
.dsq-pdf-link span { flex: 1; line-height: 1.4; }
.dsq-pdf-link strong { color: #1b7a35; }

/* ===== Toast ===== */
.dsq-toast {
    position: fixed; bottom: 28px; left: 50%; transform: translate(-50%, 90px);
    z-index: 10000; display: flex; align-items: center; gap: 10px;
    background: #0e0e0e; color: #fff; padding: 14px 22px; border-radius: 13px;
    font-size: 14px; font-weight: 600; box-shadow: 0 18px 44px rgba(0,0,0,.4);
    opacity: 0; transition: all .35s cubic-bezier(.22,1,.36,1); max-width: 90vw;
}
.dsq-toast i { color: #40b838; }
.dsq-toast.dsq-toast-show { transform: translate(-50%, 0); opacity: 1; }

@media (max-width: 640px) {
    .dsq-card { padding: 26px 20px 20px; }
    .dsq-field-group, .dsq-dynamic { grid-template-columns: 1fr; }
    .dsq-fab { right: 16px; bottom: 16px; padding: 12px 18px 12px 14px; }
    .dsq-title { font-size: 20px; }
}
