/* ==========================================================================
   dprint.be — style commun aux pages catalogues (print / objets / signalétique)
   Reprend l'identité visuelle de l'accueil et du catalogue textile.
   ========================================================================== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{--ink:#111111;--red:#E8322A;--bg:#F4F4F2;--white:#FFFFFF;--mid:#E0E0DC;--muted:#888884;--r:10px}
body{font-family:'Inter',sans-serif;background:var(--bg);color:var(--ink);padding-bottom:80px}
a{text-decoration:none;color:inherit}

/* HEADER */
.site-header{background:var(--white);border-bottom:2px solid var(--ink);display:flex;align-items:center;padding:0 2.25rem;height:82px;gap:1.75rem;position:sticky;top:0;z-index:500}
.logo-wrap{display:flex;align-items:center;gap:.85rem;flex-shrink:0}
.logo-svg{height:54px;width:auto;display:block;transition:transform .2s}
.logo-wrap:hover .logo-svg{transform:scale(1.04)}
.logo-divider{width:2px;height:40px;background:var(--mid);flex-shrink:0}
.logo-tag{font-size:.72rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);line-height:1.35}
.header-search{flex:1;max-width:520px;position:relative;margin:0 .5rem}
.header-search svg{position:absolute;left:1rem;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}
.header-search input{width:100%;padding:.72rem 1rem .72rem 2.7rem;border:1.5px solid var(--mid);border-radius:9px;font-size:.9rem;font-family:'Inter',sans-serif;outline:none;transition:border-color .15s,box-shadow .15s;background:#fafafa}
.header-search input:focus{border-color:var(--red);background:#fff;box-shadow:0 0 0 3px rgba(232,50,42,.1)}
.header-right{display:flex;align-items:center;gap:.85rem;margin-left:auto}
.cart-pill{font-family:'Inter',sans-serif;font-size:.86rem;font-weight:700;background:var(--ink);color:var(--white);padding:.62rem 1.05rem;border-radius:8px;display:flex;align-items:center;gap:.45rem;white-space:nowrap;transition:background .15s}
.cart-pill [data-cart-count]{background:var(--red);border-radius:20px;padding:.05rem .5rem;font-size:.74rem;min-width:1.35rem;text-align:center}
.btn-devis{font-size:.9rem;font-weight:800;color:var(--white);background:var(--red);border-radius:8px;padding:.68rem 1.4rem;transition:background .15s,transform .15s,box-shadow .15s;white-space:nowrap;box-shadow:0 2px 10px rgba(232,50,42,.28)}
.btn-devis:hover{background:#c8261f;transform:translateY(-1px);box-shadow:0 4px 16px rgba(232,50,42,.35)}

/* MOBILE : la barre du haut ne tient pas sur une ligne à 64px de large
   fixe — on la fait passer sur 2 lignes et on masque le superflu. */
@media(max-width:640px){
  .site-header{flex-wrap:wrap;height:auto;padding:.7rem 1rem;row-gap:.7rem;gap:1rem}
  .logo-svg{height:44px}
  .logo-tag{display:none}
  .main-nav{position:static;top:auto}
  .header-search{order:3;flex:1 1 100%;max-width:none;margin:0}
  .header-right{gap:.5rem}
  .cart-pill .cart-label{display:none}
  .btn-devis{padding:.5rem .7rem;font-size:.75rem}
}

/* NAV */
.main-nav{background:var(--ink);position:sticky;top:82px;z-index:400}
.main-nav-inner{display:flex;align-items:center;padding:0 2rem;overflow-x:auto;scrollbar-width:none}
.main-nav-inner::-webkit-scrollbar{display:none}
.nav-trigger{display:flex;align-items:center;gap:.35rem;font-family:'Barlow Condensed',sans-serif;font-size:1.05rem;font-weight:700;text-transform:uppercase;letter-spacing:.01em;color:rgba(255,255,255,.7);padding:1.1rem 1.5rem;white-space:nowrap;transition:color .15s;border-bottom:3px solid transparent}
.nav-trigger:hover{color:var(--white)}
.nav-trigger.active{color:var(--white);border-bottom-color:var(--red)}
.nav-trigger.red-link{color:var(--red)}
.nav-trigger.red-link:hover{color:#ff6a63}

/* BREADCRUMB */
.breadcrumb{max-width:1400px;margin:0 auto;padding:1rem 2rem 0;font-size:.78rem;color:var(--muted)}
.breadcrumb a{border-bottom:1px dotted var(--muted)}
.breadcrumb a:hover{color:var(--ink)}

/* HERO BAND (plus compact que l'accueil) */
.hero-band{background:var(--ink);padding:2.75rem 2rem;margin-top:1rem}
.hero-band-inner{max-width:1400px;margin:0 auto}
.hero-eyebrow{display:inline-flex;align-items:center;gap:.5rem;background:rgba(232,50,42,.15);border:1px solid rgba(232,50,42,.3);color:var(--red);font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:.3rem .8rem;border-radius:20px;margin-bottom:1rem}
.hero-band h1{font-family:'Barlow Condensed',sans-serif;font-size:clamp(2.2rem,4vw,3.2rem);font-weight:900;text-transform:uppercase;color:var(--white);letter-spacing:-.01em;margin-bottom:.5rem}
.hero-band h1 em{color:var(--red);font-style:normal}
.hero-band p{color:rgba(255,255,255,.55);font-size:.9rem;max-width:60ch}

/* LAYOUT */
.cat-body{max-width:1400px;margin:0 auto;display:grid;grid-template-columns:230px 1fr;gap:2rem;padding:2rem}
@media(max-width:820px){.cat-body{grid-template-columns:1fr}}

/* FILTERS */
.filters{border-top:2px solid var(--ink);padding-top:1rem}
.filter-group{margin-bottom:1.5rem}
.filter-group h4{font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:.6rem;font-weight:700}
.filter-opt{display:flex;align-items:center;gap:.5rem;font-size:.85rem;padding:.3rem 0;cursor:pointer;color:var(--ink)}
.filter-opt .box{width:13px;height:13px;border:1.5px solid var(--ink);border-radius:3px;flex-shrink:0}
.filter-opt.active .box{background:var(--ink)}
.filter-opt .c{margin-left:auto;font-size:.68rem;color:var(--muted)}

/* PRODUCT GRID (même langage que les best-sellers de l'accueil) */
.product-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}
@media(max-width:1150px){.product-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.product-grid{grid-template-columns:1fr}}

.pcard{background:var(--white);border:1.5px solid var(--mid);border-radius:var(--r);overflow:hidden;position:relative;transition:all .18s;display:flex;flex-direction:column}
.pcard:hover{border-color:var(--ink);transform:translateY(-3px);box-shadow:0 10px 28px rgba(0,0,0,.1)}
.pcard .badge{position:absolute;top:.55rem;left:.55rem;z-index:2;background:var(--red);color:var(--white);font-size:.58rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:.22rem .55rem;border-radius:4px}
.pcard .shot{aspect-ratio:1/1;background:#f8f8f6;display:flex;align-items:center;justify-content:center}
.pcard .shot span{font-size:2.6rem;opacity:.35}
.pcard .body{padding:.9rem 1rem 1rem;border-top:1.5px solid var(--mid);display:flex;flex-direction:column;flex:1}
.pcard .eyebrow-sm{font-size:.66rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:.25rem}
.pcard h4{font-size:.95rem;font-weight:600;margin-bottom:.2rem;line-height:1.3}
.pcard .ref{font-size:.7rem;color:var(--muted);margin-bottom:.75rem;font-family:monospace}
.pcard .row{display:flex;gap:.5rem;margin-top:auto}
.pcard .btn-view,.pcard .btn-quick{flex:1;font-size:.78rem;font-weight:700;padding:.55rem .4rem;text-align:center;border-radius:6px;cursor:pointer;white-space:nowrap}
.pcard .btn-view{border:1.5px solid var(--ink);background:transparent;color:var(--ink)}
.pcard .btn-view:hover{background:var(--ink);color:var(--white)}
.pcard .btn-quick{background:var(--red);color:var(--white);border:none}
.pcard .btn-quick:hover{background:#c8261f}

.page-count{font-size:.8rem;color:var(--muted);margin-bottom:1.25rem}

/* STICKY QUOTE BAR */
.quotebar{position:fixed;bottom:1.1rem;right:1.1rem;left:auto;background:var(--ink);color:var(--white);display:inline-flex;align-items:center;gap:.5rem;padding:.6rem .8rem;border-radius:12px;box-shadow:0 4px 16px rgba(0,0,0,.25);text-decoration:none;transform:translateY(180%);transition:transform .28s cubic-bezier(.2,.7,.3,1),background .15s;z-index:600}
.quotebar.show{transform:translateY(0)}
.quotebar:hover{background:#000}
.quotebar .qb-icon{display:inline-flex;align-items:center;justify-content:center;color:var(--white)}
.quotebar .qb-label{font-size:.82rem;font-weight:700;white-space:nowrap}
.quotebar .count{background:var(--red);color:var(--white);min-width:20px;height:20px;padding:0 .35rem;border-radius:10px;font-size:.72rem;font-weight:800;display:inline-flex;align-items:center;justify-content:center;line-height:1}
@media(max-width:520px){.quotebar{bottom:.9rem;right:.9rem;padding:.55rem .7rem;gap:.4rem}.quotebar .qb-label{font-size:.78rem}}

.toast{position:fixed;top:80px;right:20px;background:#3E7A4E;color:#fff;padding:.7rem 1.1rem;font-size:.82rem;font-weight:600;border-radius:6px;opacity:0;transform:translateY(-8px);transition:all .2s;z-index:700}
.toast.show{opacity:1;transform:translateY(0)}

/* FOOTER */
.site-footer{background:var(--ink);color:rgba(255,255,255,.45);padding:1.75rem 2rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:.78rem}
.site-footer a{color:rgba(255,255,255,.65);font-weight:600}
.site-footer a:hover{color:var(--white)}

/* ---------- Page devis ---------- */
.devis-wrap{max-width:1180px;margin:0 auto;padding:2rem;display:grid;grid-template-columns:1.15fr .85fr;gap:2.5rem;align-items:start}
@media(max-width:900px){.devis-wrap{grid-template-columns:1fr;gap:1.5rem}}

/* univers → couleurs d'accent */
.u-textile{--u:#2563EB}
.u-print{--u:#E8322A}
.u-objets{--u:#7C3AED}
.u-signaletique{--u:#059669}

/* hero steps */
.hero-steps{display:flex;gap:1.75rem;margin-top:1.6rem;flex-wrap:wrap}
.hero-step{display:flex;align-items:center;gap:.55rem;font-size:.78rem;font-weight:600;color:rgba(255,255,255,.7)}
.hero-step .n{width:22px;height:22px;border-radius:50%;background:var(--red);color:#fff;font-size:.72rem;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0}

/* recap bar */
.devis-recap{display:flex;align-items:center;justify-content:space-between;gap:1rem;background:var(--white);border:1.5px solid var(--mid);border-radius:var(--r);padding:.9rem 1.2rem;margin-bottom:1.25rem;flex-wrap:wrap}
.devis-recap-count{font-family:'Barlow Condensed',sans-serif;font-size:1.8rem;font-weight:900;color:var(--red);line-height:1;margin-right:.4rem}
.devis-recap-lbl{font-size:.82rem;color:var(--muted);font-weight:600}
.devis-recap-universes{display:flex;gap:.4rem;flex-wrap:wrap}
.u-chip{font-size:.66rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;padding:.28rem .6rem;border-radius:20px;color:var(--u);background:color-mix(in srgb,var(--u) 12%,transparent);border:1px solid color-mix(in srgb,var(--u) 30%,transparent)}

/* items */
.devis-item{display:flex;gap:1rem;padding:1.1rem;background:var(--white);border:1.5px solid var(--mid);border-radius:var(--r);align-items:flex-start;margin-bottom:.8rem;transition:opacity .2s,transform .2s,border-color .15s}
.devis-item:hover{border-color:#cfcfca}
.devis-item.removing{opacity:0;transform:translateX(-12px)}
.devis-item .shot{width:60px;height:60px;background:var(--bg);border:1.5px solid var(--mid);border-radius:8px;display:flex;align-items:center;justify-content:center;flex:0 0 auto;font-size:1.5rem;border-left:3px solid var(--u,var(--mid))}
.devis-item .info{flex:1;min-width:0}
.u-tag{display:inline-block;font-size:.6rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--u,var(--muted));margin-bottom:.25rem}
.devis-item .info h4{font-size:.95rem;margin-bottom:.1rem;font-weight:600;line-height:1.25}
.devis-item .info .d{font-size:.7rem;color:var(--muted);font-family:monospace;margin-bottom:.55rem}
.item-note{width:100%;border:1px solid var(--mid);border-radius:6px;padding:.4rem .55rem;font-family:'Inter',sans-serif;font-size:.76rem;color:var(--ink);background:var(--bg)}
.item-note:focus{outline:none;border-color:var(--ink);background:#fff}
.item-side{display:flex;flex-direction:column;align-items:flex-end;gap:.6rem;flex-shrink:0}
.qty-mini{display:flex;align-items:center;border:1.5px solid var(--mid);border-radius:6px;overflow:hidden}
.qty-mini button{width:26px;height:28px;border:none;background:var(--white);font-size:1rem;font-weight:700;cursor:pointer;color:var(--ink)}
.qty-mini button:hover{background:var(--bg)}
.qty-mini input{width:36px;height:28px;text-align:center;border:none;border-left:1.5px solid var(--mid);border-right:1.5px solid var(--mid);font-size:.82rem;font-weight:600;font-family:'Inter',sans-serif}
.qty-mini input:focus{outline:none}
.devis-item .remove{font-size:.72rem;color:var(--muted);cursor:pointer;font-weight:600;transition:color .12s}
.devis-item .remove:hover{color:var(--red)}

.devis-continue{display:block;text-align:center;margin-top:.5rem;padding:.85rem;border:1.5px dashed var(--mid);border-radius:var(--r);font-size:.82rem;font-weight:600;color:var(--muted);transition:all .15s}
.devis-continue:hover{border-color:var(--ink);color:var(--ink)}

/* empty */
.empty-cart{padding:3.5rem 2rem;text-align:center;color:var(--muted);background:var(--white);border:1.5px solid var(--mid);border-radius:var(--r)}
.empty-cart .big{color:var(--mid);margin-bottom:1rem;display:flex;justify-content:center}
.empty-cart .ec-title{font-family:'Barlow Condensed',sans-serif;font-size:1.3rem;font-weight:800;text-transform:uppercase;color:var(--ink);margin-bottom:.4rem}
.empty-cart .ec-sub{font-size:.82rem;max-width:36ch;margin:0 auto 1.4rem;line-height:1.5}
.ec-btn{display:inline-block;background:var(--red);color:#fff;font-weight:700;font-size:.82rem;padding:.65rem 1.3rem;border-radius:6px}
.ec-btn:hover{background:#c8261f}

/* form panel */
.form-panel{background:var(--white);border:1.5px solid var(--mid);border-radius:var(--r);padding:1.6rem;position:sticky;top:88px}
@media(max-width:900px){.form-panel{position:static}}
.form-panel h3{font-family:'Barlow Condensed',sans-serif;font-size:1.25rem;text-transform:uppercase;letter-spacing:.01em;margin-bottom:1.2rem;padding-bottom:.8rem;border-bottom:1.5px solid var(--mid)}
.field{margin-bottom:1rem}
.field label{display:block;font-size:.72rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.35rem}
.field label .req{color:var(--red)}
.field input,.field select,.field textarea{width:100%;border:1.5px solid var(--mid);border-radius:6px;padding:.6rem .7rem;font-family:'Inter',sans-serif;font-size:.85rem}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--ink)}
.field textarea{min-height:70px;resize:vertical}
.field-row{display:flex;gap:.7rem}
.field-row .field{flex:1}
@media(max-width:420px){.field-row{flex-direction:column;gap:0}}

/* dropzone */
.dropzone{border:1.8px dashed var(--mid);border-radius:8px;padding:1.4rem 1rem;text-align:center;cursor:pointer;transition:all .15s;color:var(--muted)}
.dropzone:hover{border-color:var(--ink);color:var(--ink)}
.dropzone.over{border-color:var(--red);background:#fdf1f0;color:var(--red)}
.dropzone svg{margin-bottom:.5rem}
.dropzone .dz-main{font-size:.82rem;font-weight:600;color:var(--ink)}
.dropzone .dz-main span{color:var(--red);text-decoration:underline}
.dropzone .dz-sub{font-size:.68rem;margin-top:.25rem;color:var(--muted)}
.dz-list{margin-top:.6rem;display:flex;flex-direction:column;gap:.4rem}
.dz-file{display:flex;align-items:center;gap:.5rem;background:var(--bg);border:1px solid var(--mid);border-radius:6px;padding:.4rem .6rem;font-size:.76rem}
.dz-file svg{color:var(--muted);flex-shrink:0}
.dzf-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}
.dzf-size{color:var(--muted);font-size:.68rem;flex-shrink:0}
.dzf-x{color:var(--muted);cursor:pointer;font-size:.72rem;padding:0 .2rem;flex-shrink:0}
.dzf-x:hover{color:var(--red)}

/* consent */
.consent-row{display:flex;align-items:flex-start;gap:.5rem;margin:.3rem 0 1rem}
.consent-row input{margin-top:.15rem;flex-shrink:0}
.consent-row label{font-size:.76rem;color:var(--muted);line-height:1.4;cursor:pointer}

.submit-btn{width:100%;background:var(--red);color:var(--white);border:none;padding:.9rem;border-radius:6px;font-weight:700;font-size:.9rem;cursor:pointer;margin-top:.3rem;transition:background .15s}
.submit-btn:hover:not(:disabled){background:#c8261f}
.submit-btn:disabled{background:#d8d8d4;cursor:not-allowed}
.submit-hint{font-size:.72rem;color:var(--muted);text-align:center;margin-top:.6rem;line-height:1.4}
.submit-hint.ok{color:#059669;font-weight:600}

/* success overlay */
.devis-success-overlay{position:fixed;inset:0;background:rgba(17,17,17,.72);display:none;align-items:center;justify-content:center;z-index:900;padding:1.5rem}
.devis-success-overlay.show{display:flex;animation:fadeIn .2s ease}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.devis-success-card{background:var(--white);border-radius:16px;padding:2.5rem 2rem;max-width:420px;text-align:center;animation:popIn .3s cubic-bezier(.2,.9,.3,1.3)}
@keyframes popIn{from{opacity:0;transform:scale(.9) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}
.check-ring{width:74px;height:74px;border-radius:50%;background:#ecfdf5;color:#059669;display:flex;align-items:center;justify-content:center;margin:0 auto 1.2rem;border:3px solid #a7f3d0}
.devis-success-card h2{font-family:'Barlow Condensed',sans-serif;font-size:1.7rem;font-weight:800;text-transform:uppercase;margin-bottom:.6rem}
.devis-success-card p{font-size:.86rem;color:#3a3a33;line-height:1.6;margin-bottom:.6rem}
.devis-success-card .mock-note{font-size:.72rem;color:var(--muted);font-style:italic;margin:1rem 0}
.success-btn{display:inline-block;background:var(--ink);color:#fff;font-weight:700;font-size:.84rem;padding:.7rem 1.5rem;border-radius:7px;margin-top:.5rem}
.success-btn:hover{background:#000}

/* ---------- Page produit configurable (print / signalétique) ---------- */
.pd-wrap{max-width:1100px;margin:0 auto;padding:2rem;display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;align-items:start}
@media(max-width:820px){.pd-wrap{grid-template-columns:1fr}}
.pd-gallery{background:var(--white);border:1.5px solid var(--mid);border-radius:var(--r);aspect-ratio:1/1;display:flex;align-items:center;justify-content:center}
.pd-gallery span{font-size:5rem;opacity:.3}
.no-photo-name{font-family:'Barlow Condensed',sans-serif;font-weight:800;font-size:1.4rem;text-transform:uppercase;text-align:center;color:var(--muted);opacity:.6;padding:1rem;line-height:1.15;letter-spacing:-.01em}
.pcard .shot .no-photo-name{font-size:1.05rem;opacity:.5}
.pd-eyebrow{font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.pd-title{font-family:'Barlow Condensed',sans-serif;font-size:2rem;font-weight:800;text-transform:uppercase;margin:.3rem 0 .2rem;letter-spacing:-.01em}
.pd-ref{font-family:monospace;font-size:.8rem;color:var(--muted);margin-bottom:1rem}
.pd-desc{font-size:.88rem;color:#3a3a33;line-height:1.6;margin-bottom:1.5rem;max-width:44ch}

.config-panel{background:var(--white);border:1.5px solid var(--mid);border-radius:var(--r);padding:1.5rem}
.config-panel h3{font-family:'Barlow Condensed',sans-serif;font-size:1.05rem;text-transform:uppercase;letter-spacing:.02em;margin-bottom:1.1rem;padding-bottom:.7rem;border-bottom:1.5px solid var(--mid)}

.qty-stepper{display:flex;align-items:center;gap:.5rem}
.qty-stepper button{width:34px;height:34px;border:1.5px solid var(--mid);background:var(--white);border-radius:6px;font-size:1.1rem;font-weight:700;cursor:pointer;color:var(--ink)}
.qty-stepper button:hover{border-color:var(--ink)}
.qty-stepper input{width:70px;text-align:center;border:1.5px solid var(--mid);border-radius:6px;padding:.5rem;font-size:.9rem}

.pd-recap{background:var(--bg);border:1px dashed var(--mid);border-radius:8px;padding:.85rem 1rem;font-size:.8rem;color:#3a3a33;margin:1.1rem 0;line-height:1.6}
.pd-recap strong{color:var(--ink)}

/* Cartes de choix visuelles (remplace les <select> simples) */
.choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:.6rem}
.choice-card{border:1.5px solid var(--mid);border-radius:8px;padding:.7rem .5rem;text-align:center;cursor:pointer;background:var(--white);transition:all .15s;user-select:none}
.choice-card:hover{border-color:var(--ink)}
.choice-card.active{border-color:var(--red);border-width:2px;background:#fdf1f0}
.choice-card .ci{width:100%;height:56px;margin-bottom:.4rem;display:flex;justify-content:center;align-items:center;overflow:hidden;border-radius:6px}
.choice-card .ct{font-size:.76rem;font-weight:700;color:var(--ink)}
.choice-card .cd{font-size:.64rem;color:var(--muted);margin-top:.15rem;line-height:1.3}

/* ---------- Devis express (formulaire multi-étapes) ---------- */
.wizard-wrap{max-width:640px;margin:0 auto;padding:2rem}
.wizard-progress{margin-bottom:1.5rem}
.wizard-progress .label{display:flex;justify-content:space-between;font-size:.75rem;color:var(--muted);font-weight:600;margin-bottom:.5rem}
.wizard-progress .bar{height:6px;background:var(--mid);border-radius:10px;overflow:hidden}
.wizard-progress .bar-fill{height:100%;background:var(--red);border-radius:10px;transition:width .3s ease}
.wizard-card{background:var(--white);border:1.5px solid var(--mid);border-radius:var(--r);padding:1.75rem}
.wizard-step{display:none}
.wizard-step.active{display:block}
.wizard-step h2{font-family:'Barlow Condensed',sans-serif;font-size:1.5rem;text-transform:uppercase;margin-bottom:.2rem;display:flex;align-items:center;gap:.5rem}
.wizard-step h2 svg{color:var(--red);flex-shrink:0}
.wizard-step .wizard-sub{font-size:.82rem;color:var(--muted);margin-bottom:1.3rem}
.wizard-choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.7rem;margin-bottom:1.3rem}
.wizard-choice{border:1.5px solid var(--mid);border-radius:10px;padding:1rem .8rem;text-align:center;cursor:pointer;background:var(--white);transition:all .15s}
.wizard-choice:hover{border-color:var(--ink)}
.wizard-choice.active{border-color:var(--red);border-width:2px;background:#fdf1f0}
.wizard-choice .wi{font-size:1.8rem;display:block;margin-bottom:.4rem}
.wizard-choice .wt{font-size:.85rem;font-weight:700}
.wizard-nav{display:flex;justify-content:space-between;margin-top:1.5rem;gap:.75rem}
.wizard-btn-back{background:transparent;border:1.5px solid var(--mid);color:var(--ink);font-weight:700;font-size:.85rem;padding:.75rem 1.4rem;border-radius:7px;cursor:pointer}
.wizard-btn-back:hover{border-color:var(--ink)}
.wizard-btn-next{background:var(--red);border:none;color:var(--white);font-weight:700;font-size:.85rem;padding:.75rem 1.6rem;border-radius:7px;cursor:pointer;margin-left:auto}
.wizard-btn-next:hover{background:#c8261f}
.wizard-btn-next:disabled{background:#ccc;cursor:not-allowed}
.wizard-consent{display:flex;align-items:flex-start;gap:.5rem;font-size:.76rem;color:var(--muted);margin-top:1rem}
.wizard-success{text-align:center;padding:2.5rem 1rem}
.wizard-success .wi{font-size:3rem;margin-bottom:1rem}
/* ===== Devis v2 : image produit, fichiers par article, formulaire développé ===== */

/* vignette : vraie image produit */
.devis-item .shot img{width:100%;height:100%;object-fit:contain;padding:.25rem;border-radius:6px}

/* fichiers joints par article */
.item-files-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.5rem}
.item-file-btn{display:inline-flex;align-items:center;gap:.35rem;font-size:.7rem;font-weight:600;color:var(--red);border:1px solid var(--mid);background:var(--white);border-radius:6px;padding:.32rem .6rem;cursor:pointer;transition:all .12s}
.item-file-btn:hover{border-color:var(--red);background:#fdf1f0}
.item-files{display:flex;flex-wrap:wrap;gap:.35rem}
.item-file{display:inline-flex;align-items:center;gap:.35rem;background:var(--bg);border:1px solid var(--mid);border-radius:5px;padding:.22rem .5rem;font-size:.68rem;color:var(--ink);max-width:180px}
.item-file{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.item-file .if-x{color:var(--muted);cursor:pointer;font-size:.62rem;flex-shrink:0}
.item-file .if-x:hover{color:var(--red)}

/* toggle type de client */
.client-toggle{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-bottom:1.2rem}
.ct-opt{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.7rem;border:1.5px solid var(--mid);background:var(--white);border-radius:8px;font-family:'Inter',sans-serif;font-size:.85rem;font-weight:600;color:var(--muted);cursor:pointer;transition:all .15s}
.ct-opt svg{color:var(--muted);transition:color .15s}
.ct-opt:hover{border-color:var(--ink)}
.ct-opt.active{border-color:var(--red);border-width:2px;background:#fdf1f0;color:var(--ink)}
.ct-opt.active svg{color:var(--red)}

.field label .opt{color:var(--muted);font-weight:500;text-transform:none;letter-spacing:0;font-size:.68rem}

/* bloc livraison/retrait */
.delivery-block{margin:.4rem 0 1rem}
.block-label{display:block;font-size:.72rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.5rem}
.block-label .req{color:var(--red)}
.delivery-toggle{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}
.dl-opt{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.25rem;padding:.9rem .6rem;border:1.5px solid var(--mid);background:var(--white);border-radius:9px;cursor:pointer;transition:all .15s;font-family:'Inter',sans-serif}
.dl-opt svg{color:var(--muted);margin-bottom:.15rem;transition:color .15s}
.dl-opt:hover{border-color:var(--ink)}
.dl-opt.active{border-color:var(--red);border-width:2px;background:#fdf1f0}
.dl-opt.active svg{color:var(--red)}
.dl-opt .dl-t{font-size:.85rem;font-weight:700;color:var(--ink)}
.dl-opt .dl-d{font-size:.66rem;color:var(--muted)}
.delivery-detail{margin-top:.9rem}
.pickup-info{display:flex;gap:.7rem;align-items:flex-start;margin-top:.9rem;background:var(--bg);border:1px dashed var(--mid);border-radius:8px;padding:.85rem 1rem;font-size:.82rem;line-height:1.5;color:#3a3a33}
.pickup-info svg{color:var(--red);flex-shrink:0;margin-top:.15rem}
.pickup-info strong{color:var(--ink);font-family:'Barlow Condensed',sans-serif;font-size:.95rem;text-transform:uppercase;letter-spacing:.02em}

/* message mis en avant */
.message-highlight{background:var(--bg);border:1.5px solid var(--mid);border-left:4px solid var(--red);border-radius:10px;padding:1.1rem 1.2rem;margin:1rem 0}
.message-highlight label{display:flex;align-items:center;gap:.45rem;font-family:'Barlow Condensed',sans-serif;font-size:1.05rem;font-weight:800;text-transform:uppercase;letter-spacing:.01em;color:var(--ink);margin-bottom:.3rem}
.message-highlight label svg{color:var(--red)}
.message-highlight .mh-sub{font-size:.74rem;color:var(--muted);line-height:1.45;margin-bottom:.7rem}
.message-highlight textarea{width:100%;border:1.5px solid var(--mid);border-radius:7px;padding:.7rem .8rem;font-family:'Inter',sans-serif;font-size:.85rem;min-height:96px;resize:vertical;background:var(--white)}
.message-highlight textarea:focus{outline:none;border-color:var(--ink)}

/* ===== Devis express : encadré d'explication + champs harmonisés ===== */
.express-intro{background:var(--white);border:1.5px solid var(--mid);border-left:4px solid var(--red);border-radius:var(--r);padding:1.2rem 1.4rem;margin-bottom:1.5rem}
.express-intro-head{display:flex;align-items:center;gap:.5rem;font-family:'Barlow Condensed',sans-serif;font-size:1.15rem;font-weight:800;text-transform:uppercase;letter-spacing:.01em;color:var(--ink);margin-bottom:.9rem}
.express-intro-head svg{color:var(--red);flex-shrink:0}
.express-intro-grid{display:grid;grid-template-columns:1fr 1fr;gap:.7rem 1.2rem}
@media(max-width:560px){.express-intro-grid{grid-template-columns:1fr}}
.ei-item{display:flex;align-items:flex-start;gap:.55rem;font-size:.82rem;color:#3a3a33;line-height:1.4}
.ei-item svg{color:#059669;flex-shrink:0;margin-top:.1rem}
.ei-item strong{color:var(--ink);font-weight:700}

/* champs du wizard alignés sur le design system */
.wizard-textarea{width:100%;min-height:96px;border:1.5px solid var(--mid);border-radius:6px;padding:.6rem .7rem;font-family:'Inter',sans-serif;font-size:.85rem;resize:vertical}
.wizard-textarea:focus{outline:none;border-color:var(--ink)}
.field-help{font-size:.72rem;color:var(--muted);line-height:1.45;margin-top:.45rem}
.field .req{color:var(--red)}
/* === Footer riche (identique a footer.css) === */
.site-footer-rich{background:var(--ink);color:rgba(255,255,255,.62);margin-top:0}
.footer-inner{max-width:1400px;margin:0 auto;padding:3rem 2rem 2rem;display:grid;grid-template-columns:1.4fr 1fr 1fr 1.3fr;gap:2.5rem}
.footer-col h4{font-family:'Barlow Condensed',sans-serif;font-size:1rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:#fff;margin-bottom:1rem}
.footer-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.6rem}
.footer-col ul li{font-size:.86rem;line-height:1.5}
.footer-col a{color:rgba(255,255,255,.62);text-decoration:none;transition:color .15s}
.footer-col a:hover{color:#fff}
.footer-brand .footer-logo{height:46px;width:auto;filter:brightness(0) invert(1);margin-bottom:1rem}
.footer-tagline{font-size:.86rem;line-height:1.6;color:rgba(255,255,255,.62);margin-bottom:.75rem}
.footer-since{font-size:.82rem;color:var(--red);font-weight:700}
.footer-contact ul li{display:flex;align-items:flex-start;gap:.6rem}
.footer-contact svg{width:16px;height:16px;color:var(--red);flex-shrink:0;margin-top:.15rem}
.footer-bottom{border-top:1px solid rgba(255,255,255,.12);max-width:1400px;margin:0 auto;padding:1.25rem 2rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:.78rem;color:rgba(255,255,255,.5)}
.footer-bottom a{color:rgba(255,255,255,.7);text-decoration:none;font-weight:600}
.footer-bottom a:hover{color:#fff}
@media(max-width:900px){
  .footer-inner{grid-template-columns:1fr 1fr;gap:2rem}
}
@media(max-width:560px){
  .footer-inner{grid-template-columns:1fr;gap:1.75rem;padding:2.25rem 1.25rem 1.5rem}
  .footer-bottom{flex-direction:column;text-align:center;padding:1.25rem}
}

/* === Bandeau promo provisoire === */
.promo-bar{background:var(--red);color:#fff;text-align:center;font-weight:700;font-size:.85rem;letter-spacing:.02em;padding:.55rem 1rem;line-height:1.3}
.promo-bar span{display:inline-block}
@media(max-width:640px){.promo-bar{font-size:.78rem;padding:.5rem .75rem}}

/* Bulle d'info matière (fiches print & signalétique) */
.mat-info{margin-top:.7rem;background:#fdf3f2;border-left:3px solid var(--red);border-radius:6px;padding:.6rem .8rem;font-size:.82rem;line-height:1.5;color:#333}