/* ==============================================================
   Formulaire d'estimation par service (js/quote.js)
   ============================================================== */
.quote{
  position:relative;max-width:720px;margin:0 auto;
  border:1px solid var(--line);border-radius:var(--radius-lg);background:#0c0c0f;
  box-shadow:0 30px 80px rgba(0,0,0,.5);overflow:hidden;
}
.quote-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 24px 0}
.quote-kicker{font-family:var(--font-display);font-weight:700;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}
.quote-count{font-size:12px;color:var(--dim)}
.quote-bar{height:2px;background:var(--line);margin:14px 24px 0;border-radius:2px;overflow:hidden}
.quote-bar i{display:block;height:100%;background:var(--accent);transform-origin:left;transition:transform .45s var(--ease)}
.quote-body{padding:26px 24px 24px;min-height:300px}
.quote-step{animation:qfade .32s var(--ease)}
@keyframes qfade{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.quote-title{margin:0 0 6px;font-size:clamp(19px,2.4vw,24px);font-weight:700;line-height:1.3;color:var(--ink)}
.quote-help{margin:0 0 18px;font-size:13px;line-height:1.5;color:var(--dim)}
.quote-options{display:grid;gap:10px}
.quote-opt{
  display:flex;align-items:center;gap:12px;width:100%;text-align:left;
  padding:14px 16px;border-radius:14px;border:1px solid var(--line);background:#101014;
  color:var(--ink);font:500 14.5px var(--font-ui);cursor:pointer;
  transition:border-color .18s,background .18s,transform .18s var(--ease);
}
.quote-opt:hover{border-color:rgba(244,244,240,.4);transform:translateY(-1px)}
.quote-opt[aria-checked="true"]{border-color:var(--accent);background:rgba(236,255,0,.08)}
.quote-opt i{flex:0 0 auto;width:18px;height:18px;border-radius:50%;border:1.5px solid rgba(244,244,240,.4);display:inline-flex;align-items:center;justify-content:center}
.quote-opt[data-kind="multi"] i{border-radius:5px}
.quote-opt[aria-checked="true"] i{background:var(--accent);border-color:var(--accent)}
.quote-opt[aria-checked="true"] i::after{content:"";width:8px;height:8px;border-radius:inherit;background:var(--pill-ink)}
.quote-services{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}
.quote-services .quote-opt{flex-direction:column;align-items:flex-start;gap:6px;padding:16px}
.quote-services .quote-opt b{font-size:14.5px}
.quote-services .quote-opt small{font-size:12px;color:var(--dim);line-height:1.4}
.quote-field{margin-bottom:14px}
.quote-field label{display:block;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim);margin-bottom:6px}
.quote-field input,.quote-field textarea,.quote-field select{
  width:100%;padding:13px 15px;border-radius:12px;border:1px solid var(--line);background:#121216;
  color:var(--ink);font:500 14.5px var(--font-ui);
}
.quote-field textarea{min-height:110px;resize:vertical;line-height:1.55}
.quote-field input:focus,.quote-field textarea:focus,.quote-field select:focus{outline:none;border-color:rgba(236,255,0,.5)}
.quote-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.quote-consent{display:grid;grid-template-columns:20px 1fr;gap:12px;align-items:start;margin:6px 0 4px;font-size:12.5px;line-height:1.5;color:var(--dim);cursor:pointer}
.quote-consent input{width:18px;height:18px;margin:2px 0 0;accent-color:var(--accent)}
.quote-consent a{color:var(--ink);text-decoration:underline;text-underline-offset:2px}
.quote-hp{position:absolute;left:-9999px;opacity:0;height:0;width:0}
.quote-nav{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:0 24px 22px}
.quote-back{background:none;border:0;color:var(--dim);font:500 13px var(--font-ui);cursor:pointer;padding:10px 0}
.quote-back:hover{color:var(--ink)}
.quote-next{
  display:inline-flex;align-items:center;gap:10px;height:48px;padding:0 24px;border-radius:999px;border:0;
  background:var(--accent);color:var(--pill-ink);font:700 14px var(--font-ui);cursor:pointer;transition:filter .2s,transform .2s var(--ease);
}
.quote-next:hover{filter:brightness(1.06);transform:translateY(-1px)}
.quote-next:disabled{opacity:.45;cursor:not-allowed;transform:none}
.quote-status{padding:0 24px 18px;font-size:12.5px;color:#ff8a70;min-height:16px}
.quote-alt{text-align:center;padding:0 24px 20px;font-size:12.5px;color:var(--dim)}
.quote-help--tight{margin:0}
.quote-alt--top{padding:18px 0 0}
.quote-alt button{background:none;border:0;color:var(--ink);text-decoration:underline;text-underline-offset:2px;font:inherit;cursor:pointer}

/* résultat */
.quote-result{text-align:center;padding:10px 0 4px}
.quote-size{
  display:inline-flex;align-items:center;justify-content:center;width:84px;height:84px;border-radius:24px;
  background:var(--accent);color:var(--pill-ink);font-family:var(--font-display);font-weight:900;font-size:44px;
  box-shadow:0 18px 44px rgba(236,255,0,.28);margin-bottom:18px;
}
.quote-result h3{margin:0 0 8px;font-size:22px;font-weight:700;color:var(--ink)}
.quote-result .quote-range{font-family:var(--font-display);font-weight:800;font-size:clamp(22px,3vw,30px);color:var(--accent);margin:12px 0 4px}
.quote-result .quote-eur{font-size:14px;color:var(--dim)}
.quote-result .quote-note{margin:16px auto 0;max-width:46ch;font-size:13px;line-height:1.55;color:var(--dim)}
.quote-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:22px}
.quote-actions a{display:inline-flex;align-items:center;gap:8px;height:48px;padding:0 22px;border-radius:999px;font:700 14px var(--font-ui);text-decoration:none}
.quote-wa{background:var(--accent);color:var(--pill-ink)}
.quote-cal{background:var(--pill);color:var(--pill-ink)}
.quote-recap{margin:26px 0 0;text-align:left;border-top:1px solid var(--line);padding-top:16px}
.quote-recap dt{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--dim);margin-top:10px}
.quote-recap dd{margin:2px 0 0;font-size:13.5px;color:rgba(244,244,240,.85)}

/* bouton d'appel « Estimer » et section sur les pages service */
.quote-section{background:var(--bg);border-top:1px solid var(--line);padding:clamp(60px,8vw,100px) 4vw}
.quote-section .section-head{margin-bottom:34px}
@media (max-width:720px){
  .quote-body{padding:22px 18px 18px}
  .quote-head{padding:16px 18px 0}
  .quote-bar{margin:12px 18px 0}
  .quote-nav{padding:0 18px 18px}
  .quote-row{grid-template-columns:1fr}
  .quote-services{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){.quote-step{animation:none}.quote-opt,.quote-next{transition:none}}
