/* ===== Configurateur de devis ===== */
.dv{background:var(--bg);padding:0 0 110px;margin-top:-1px}
.dv .wrap{display:grid;grid-template-columns:1fr 340px;gap:32px;align-items:start}
.dv-main{background:#fff;border-radius:14px;box-shadow:var(--shadow);overflow:hidden;position:relative;top:-60px;z-index:4;min-width:0}
.dv-prog{display:flex;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none}
.dv-prog::-webkit-scrollbar{display:none}
.dv-prog button{flex:1 0 auto;min-width:0;border:0;background:none;padding:18px 12px 16px;font-weight:700;font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;color:#a3a5ab;cursor:default;position:relative;display:flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap}
.dv-prog button i{font-style:normal;width:24px;height:24px;border-radius:50%;border:2px solid currentColor;display:grid;place-items:center;font-size:.75rem;flex:none}
.dv-prog button::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:3px;background:transparent}
.dv-prog button.done{color:var(--ink);cursor:pointer}
.dv-prog button.done i{background:var(--ink);border-color:var(--ink);color:#fff}
.dv-prog button.cur{color:var(--red)}
.dv-prog button.cur::after{background:var(--red)}
.dv-prog.many button:not(.cur) span{display:none}
.dv-prog.many button.cur{flex-grow:3}
.dv-step{display:none;padding:44px 48px 40px}
.dv-step.on{display:block;animation:dvin .45s cubic-bezier(.2,.7,.2,1)}
@keyframes dvin{from{opacity:0;transform:translateX(18px)}to{opacity:1;transform:none}}
.dv-step h2{font-size:clamp(1.8rem,3vw,2.4rem);margin:8px 0 8px}
.dv-step .hint{color:var(--muted);margin-bottom:30px}
.dv-block{margin-bottom:34px}
.dv-block > h3{font-size:1.2rem;margin-bottom:14px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.dv-block > h3 .tag{font-family:Barlow;font-size:.7rem;letter-spacing:.12em;background:var(--anth);color:#fff;padding:4px 9px;border-radius:4px}
.dv-block > h3 .tag.r{background:var(--red)}
.dv-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.dv-grid .full{grid-column:1/-1}
.dv-grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.cards.c2{grid-template-columns:1fr 1fr}
.cards.c4{grid-template-columns:repeat(4,1fr)}
.card-opt{position:relative;cursor:pointer;display:block}
.card-opt input{position:absolute;opacity:0;pointer-events:none}
.card-opt .box{display:flex;flex-direction:column;gap:6px;height:100%;border:2px solid var(--line);border-radius:12px;padding:22px 20px;transition:border-color .2s,background .2s}
.card-opt:hover .box{border-color:#c8c6c1}
.card-opt input:checked + .box{border-color:var(--red);background:#fff6f6}
.card-opt input:focus-visible + .box{outline:2px solid var(--red);outline-offset:2px}
.card-opt .box svg{width:30px;height:30px;color:var(--red);margin-bottom:6px}
.card-opt .box b{font-family:"Barlow Condensed";font-size:1.3rem;text-transform:uppercase;line-height:1.1;padding-right:24px}
.card-opt .box small{color:var(--muted);font-size:.9rem;line-height:1.35}
.card-opt .box::after{content:"";position:absolute;top:14px;right:14px;width:20px;height:20px;border-radius:50%;border:2px solid var(--line);background:#fff;transition:.2s}
.card-opt input:checked + .box::after{border-color:var(--red);background:var(--red) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/11px no-repeat}
.card-opt.sm .box{padding:14px 44px 14px 16px;flex-direction:row;align-items:center;gap:10px}
.card-opt.sm .box b{font-size:1.05rem;padding-right:0}
.card-opt.sm .box svg{width:22px;height:22px;margin:0;flex:none}
.card-opt.sm .box::after{top:50%;margin-top:-10px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{position:relative;cursor:pointer}
.chip input{position:absolute;opacity:0;pointer-events:none}
.chip span{display:inline-flex;align-items:center;gap:6px;padding:10px 16px;border:1.5px solid var(--line);border-radius:30px;font-weight:600;font-size:.94rem;transition:.2s;background:#fff}
.chip:hover span{border-color:#c8c6c1}
.chip input:checked + span{background:var(--anth);border-color:var(--anth);color:#fff}
.chip input:focus-visible + span{outline:2px solid var(--red);outline-offset:2px}
.dv .field select,.dv .field input,.dv .field textarea{background:#fbfbfa}
.field .opt{font-weight:500;text-transform:none;letter-spacing:0;color:#a3a5ab}
.field.err input,.field.err select,.field.err textarea{border-color:var(--red);background:#fff6f6}
.cards.err .box,.chips.err span{border-color:var(--red)}
.errmsg{display:none;color:var(--red);font-weight:600;font-size:.95rem;margin:4px 0 0;padding:12px 16px;background:#fff6f6;border-radius:8px}
.errmsg.on{display:block}
.addr-card{border:1px solid var(--line);border-radius:12px;padding:30px 26px 26px;margin-bottom:26px;position:relative}
.addr-card .lbl{position:absolute;top:-13px;left:20px;background:#fff;padding:0 10px;font-family:"Barlow Condensed";font-weight:700;font-size:1.15rem;text-transform:uppercase;display:flex;align-items:center;gap:8px}
.addr-card .lbl i{width:12px;height:12px;border-radius:50%;background:var(--red)}
.addr-card .lbl i.b{background:var(--anth)}
.sw{display:flex;align-items:center;gap:12px;cursor:pointer;font-weight:600;user-select:none;position:relative}
.sw input{position:absolute;opacity:0;pointer-events:none}
.sw span.t{width:46px;height:26px;border-radius:30px;background:#d6d4cf;position:relative;transition:.2s;flex:none}
.sw span.t::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:.2s;box-shadow:0 2px 4px rgba(0,0,0,.2)}
.sw input:checked + span.t{background:var(--red)}
.sw input:checked + span.t::after{left:23px}
.sw input:focus-visible + span.t{outline:2px solid var(--red);outline-offset:2px}
.sw small{display:block;color:var(--muted);font-weight:500;font-size:.88rem}

/* inventaire */
.room{border:1px solid var(--line);border-radius:12px;margin-bottom:14px;overflow:hidden}
.room summary{list-style:none;cursor:pointer;padding:18px 22px;display:flex;justify-content:space-between;align-items:center;font-family:"Barlow Condensed";font-weight:700;font-size:1.25rem;text-transform:uppercase;background:#fbfbfa}
.room summary::-webkit-details-marker{display:none}
.room summary .cnt{font-family:Barlow;font-size:.85rem;text-transform:none;font-weight:700;color:var(--muted);display:flex;align-items:center;gap:12px}
.room summary .cnt b{background:var(--red);color:#fff;border-radius:30px;padding:2px 10px;font-size:.8rem}
.room summary .cnt b:empty{display:none}
.room summary .cnt::after{content:"";width:9px;height:9px;border-right:2px solid var(--ink);border-bottom:2px solid var(--ink);transform:rotate(45deg);margin-top:-4px;transition:transform .25s}
.room[open] summary .cnt::after{transform:rotate(-135deg);margin-top:4px}
.items{display:grid;grid-template-columns:1fr 1fr;gap:0 26px;padding:6px 22px 14px}
.item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px dashed var(--line)}
.item > span{font-weight:600;font-size:.97rem;line-height:1.25}
.item > span small{display:block;color:#a3a5ab;font-weight:500;font-size:.8rem}
.step-n{display:flex;align-items:center;flex:none;border:1.5px solid var(--line);border-radius:30px;overflow:hidden;background:#fff}
.step-n button{width:34px;height:34px;border:0;background:none;font-size:1.2rem;font-weight:700;cursor:pointer;color:var(--ink);line-height:1}
.step-n button:hover{background:var(--bg)}
.step-n input{width:38px;height:34px;border:0;text-align:center;font:inherit;font-weight:700;font-size:1rem;-moz-appearance:textfield;appearance:textfield;background:none;padding:0}
.step-n input::-webkit-outer-spin-button,.step-n input::-webkit-inner-spin-button{-webkit-appearance:none}
.item.has .step-n{border-color:var(--red)}
.item.has > span{color:var(--red)}
.vol-bar{display:flex;align-items:center;justify-content:space-between;gap:20px;background:var(--anth);color:#fff;border-radius:12px;padding:22px 26px;margin-top:22px;flex-wrap:wrap}
.vol-bar b{font-family:"Barlow Condensed";font-size:2.6rem;line-height:1}
.vol-bar small{color:#b9bbc1;display:block;font-size:.85rem}
.vol-gauge{flex:1;min-width:180px}
.vol-gauge .g{height:10px;background:#3a3b41;border-radius:10px;overflow:hidden}
.vol-gauge .g i{display:block;height:100%;width:0;background:var(--red);border-radius:10px;transition:width .4s}
.vol-gauge small{margin-top:8px}

/* boutons bas */
.dv-nav{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:22px 48px;border-top:1px solid var(--line);background:#fbfbfa}
.dv-nav .btn[hidden]{display:none}
.dv-nav .save{font-size:.85rem;color:var(--muted);flex:1;text-align:center}

/* récap */
.recap{border:1px solid var(--line);border-radius:12px;overflow:hidden;margin-bottom:20px}
.recap h4{background:#fbfbfa;padding:14px 22px;font-family:"Barlow Condensed";text-transform:uppercase;font-size:1.15rem;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}
.recap h4 button{border:0;background:none;color:var(--red);font-weight:700;font-size:.88rem;cursor:pointer;font-family:Barlow;text-transform:none}
.recap dl{display:grid;grid-template-columns:210px 1fr;padding:6px 22px 12px}
.recap dt{color:var(--muted);font-size:.93rem;padding:9px 0;border-bottom:1px dashed var(--line)}
.recap dd{font-weight:600;padding:9px 0;border-bottom:1px dashed var(--line)}
.recap dl > :nth-last-child(-n+2){border-bottom:0}
.consent{display:flex;gap:12px;align-items:flex-start;font-size:.93rem;color:var(--muted);cursor:pointer;margin-top:10px}
.consent input{width:20px;height:20px;accent-color:var(--red);flex:none;margin-top:2px}
.files{border:2px dashed var(--line);border-radius:12px;padding:26px;text-align:center;cursor:pointer;transition:.2s;display:block}
.files:hover{border-color:var(--red);background:#fff6f6}
.files svg{width:34px;height:34px;color:var(--red);margin:0 auto 8px}
.files b{display:block}
.files small{color:var(--muted)}
.files input{position:absolute;opacity:0;width:1px;height:1px}
.file-list{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}
.file-list span{width:74px;height:74px;border-radius:8px;overflow:hidden;background:var(--bg)}
.file-list img{width:100%;height:100%;object-fit:cover}

/* colonne */
.dv-side{position:sticky;top:110px;margin-top:-60px;z-index:4;display:grid;gap:18px}
.dv-sum{background:var(--anth2);color:#fff;border-radius:14px;padding:28px;box-shadow:var(--shadow)}
.dv-sum h3{font-size:1.4rem;margin-bottom:18px;display:flex;align-items:center;gap:12px}
.dv-sum h3::before{content:"";width:10px;height:10px;border-radius:50%;background:var(--red);box-shadow:0 0 0 4px rgba(227,38,43,.25)}
.dv-sum ul{list-style:none;display:grid;gap:14px}
.dv-sum li{display:flex;flex-direction:column;gap:2px;padding-bottom:14px;border-bottom:1px solid #2c2d32}
.dv-sum li:last-child{border-bottom:0;padding-bottom:0}
.dv-sum li small{color:#8d9097;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700}
.dv-sum li b{font-weight:600;font-size:1rem;line-height:1.35}
.dv-sum li b.empty{color:#5d5f66;font-weight:500}
.dv-sum .big{font-family:"Barlow Condensed";font-size:2.2rem;line-height:1;font-weight:700}
.dv-help{background:#fff;border-radius:14px;padding:24px;border:1px solid var(--line)}
.dv-help b{font-family:"Barlow Condensed";text-transform:uppercase;font-size:1.25rem;display:block}
.dv-help p{color:var(--muted);font-size:.95rem;margin:6px 0 14px}
.dv-help .btn{width:100%}
.dv-trust{display:grid;gap:10px;font-size:.92rem;font-weight:600;padding:0 6px}
.dv-trust span{display:flex;gap:10px;align-items:center}
.dv-trust svg{width:20px;height:20px;color:var(--red);flex:none}

/* succès */
.dv-done{text-align:center;padding:60px 48px}
.dv-done .ok-ic{width:84px;height:84px;border-radius:50%;background:#eaf7ee;color:#1d8a45;display:grid;place-items:center;margin:0 auto 24px}
.dv-done .ok-ic svg{width:42px;height:42px}
.dv-done h2{margin-bottom:12px}
.dv-done p{color:var(--muted);max-width:520px;margin:0 auto 22px}
.dv-done .ref{display:inline-block;background:var(--bg);border-radius:8px;padding:10px 18px;font-weight:700;margin-bottom:26px;letter-spacing:.04em}
.dv-done .acts{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}

/* encart devis sur l'accueil */
.dv-promo{background:var(--anth2);color:#fff;border-radius:14px;padding:44px;box-shadow:var(--shadow);position:relative;overflow:hidden}
.dv-promo::after{content:"";position:absolute;right:-40px;bottom:-10px;width:320px;height:150px;background:var(--red);opacity:.13;clip-path:polygon(0 100%,30% 25%,42% 45%,62% 0,100% 100%)}
.dv-promo .eyebrow{color:#ff8a8e}
.dv-promo h3{font-size:2.3rem;margin:14px 0 12px}
.dv-promo > p{color:#b9bbc1;margin-bottom:26px}
.dv-promo ol{list-style:none;counter-reset:p;display:grid;gap:16px;margin-bottom:32px;position:relative;z-index:1}
.dv-promo li{counter-increment:p;display:flex;gap:14px;align-items:center;font-weight:600}
.dv-promo li::before{content:counter(p);width:36px;height:36px;border-radius:50%;border:2px solid var(--red);color:#fff;display:grid;place-items:center;font-family:"Barlow Condensed";font-size:1.15rem;flex:none}
.dv-promo li small{display:block;color:#8d9097;font-weight:500}
.dv-promo .btn{width:100%;position:relative;z-index:1}
.dv-promo .alt{text-align:center;margin-top:16px;font-size:.92rem;color:#8d9097;position:relative;z-index:1}
.dv-promo .alt a{color:#fff;font-weight:700}

[data-mode]{display:none}
.is-mm [data-mode~="mm"],.is-dem [data-mode~="dem"],.is-both [data-mode~="both"]{display:block}
.dv-grid > [data-mode],.dv-grid3 > [data-mode]{display:none}
.is-mm .dv-grid > [data-mode~="mm"],.is-dem .dv-grid > [data-mode~="dem"],.is-both .dv-grid > [data-mode~="both"]{display:flex}

@media(max-width:1100px){
  .dv .wrap{grid-template-columns:1fr}
  .dv-side{position:static;margin-top:-30px}
  .dv-sum{display:none}
}
@media(max-width:760px){
  .dv-step{padding:32px 18px 26px}
  .dv-nav{padding:16px 18px}
  .dv-nav .save{display:none}
  .dv-nav .btn{padding:15px 18px}
  .cards,.cards.c4{grid-template-columns:1fr 1fr}
  .cards.c1m{grid-template-columns:1fr}
  .card-opt .box{padding:18px 16px}
  .dv-grid,.dv-grid3{grid-template-columns:1fr}
  .items{grid-template-columns:1fr;padding:0 16px 10px}
  .room summary{padding:16px}
  .recap dl{grid-template-columns:1fr;padding:6px 16px 12px}
  .recap dt{border-bottom:0;padding-bottom:0}
  .addr-card{padding:26px 16px 16px}
  .dv-prog button{min-width:auto;padding:16px 12px}
  .dv-prog button:not(.cur) span{display:none}
  .dv-promo{padding:30px 22px}
  .dv-promo h3{font-size:1.9rem}
  .dv-main{top:-40px}
  .dv-done{padding:44px 20px}
}
@media print{
  .topbar,header.site,.phero,.dv-side,.dv-nav,.dv-prog,footer.site,.callbar,.dv-done .acts,.dv-done .ok-ic{display:none!important}
  .dv-main{box-shadow:none;top:0}
  .dv{padding:0;background:#fff}
}
