/* ============================================================
   CARLYTO — PARCOURS D'ACHAT (langage 111)
   catalogue · recherche · fiche produit · panier · commande rapide
   checkout · confirmation · paiement non abouti
   Complète carlyto-111.css (jamais modifié ici). Prix en graphite.
   ============================================================ */

/* Alias des anciennes variables encore lues par les scripts de page
   (messages promo, états…) : traduites dans la charte, sans bleu. */
:root{--ink:var(--c-ink);--muted:var(--c-muted);--line:var(--c-line);--red:#A23A35;--green:#2F7A4E;--accent:var(--c-ink)}
[hidden]{display:none !important}
.page{padding-bottom:36px}

/* ---------- toast d'ajout au panier ---------- */
.shop-toast{position:fixed;right:20px;bottom:20px;z-index:300;display:flex;align-items:center;gap:12px;max-width:min(380px,calc(100vw - 32px));padding:12px 14px;background:#fff;border:1px solid var(--c-line);border-radius:10px;box-shadow:0 14px 34px -12px rgba(0,0,0,.3);font-size:13px;color:var(--c-ink);transform:translateY(160%);transition:transform .25s ease}
.shop-toast.on{transform:none}
.shop-toast .ti{width:28px;height:28px;border-radius:50%;background:#E8F3EC;color:#2F7A4E;display:grid;place-items:center;flex:none}
.shop-toast .ti .ico{width:16px;height:16px}
.shop-toast b{display:block;font-weight:600}
.shop-toast small{display:block;color:var(--c-muted);font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px}
.shop-toast a{margin-left:auto;font-size:12px;font-weight:600;text-decoration:underline;text-underline-offset:2px;white-space:nowrap}
@media (prefers-reduced-motion:reduce){.shop-toast{transition:none}}

/* ---------- cartes produits : compléments ---------- */
.vcard .im{color:#B5B5B5}
.vcard .im img.illu{mix-blend-mode:multiply;max-height:110px}
.vcard .im .ph{width:40px;height:40px}
.vcard .br{gap:6px}
.vcard .px{display:flex;align-items:baseline;gap:4px;flex-wrap:wrap}
.vcard .px s{font-size:12px;font-weight:500;color:var(--c-muted);margin-left:6px}
.vcard .av.ko{color:var(--c-muted)}
.vcard.oos .im{opacity:.55}
.vcard .badge2.tag{background:var(--c-dark)}
.vcard .nm:hover{text-decoration:underline;text-underline-offset:2px}
/* vue liste */
.pgrid.list{grid-template-columns:minmax(0,1fr)}
.pgrid.list .vcard{display:grid;grid-template-columns:140px minmax(0,1fr) 260px;grid-template-rows:auto auto auto 1fr;column-gap:18px;align-items:start}
.pgrid.list .vcard .im{grid-row:1/6;margin:0;height:120px}
.pgrid.list .vcard .br,.pgrid.list .vcard .nm,.pgrid.list .vcard .rf,.pgrid.list .vcard .av{grid-column:2}
.pgrid.list .vcard .nm{min-height:0}
.pgrid.list .vcard .px{grid-column:3;grid-row:1/3;justify-content:flex-end;margin:0}
.pgrid.list .vcard .buy{grid-column:3;grid-row:3/5;align-self:end}
.pgrid .empty,.pgrid .loading{grid-column:1/-1;background:#fff;border:1px solid var(--c-line);border-radius:var(--r-card)}
.pgrid .loading{padding:40px 20px;text-align:center;color:var(--c-muted)}

/* ---------- bandeau catalogue (recherche véhicule) ---------- */
.cat-hero .bg{width:56%}
.cat-hero .bg img{object-position:center 46%}
.cat-hero .wrap{min-height:150px;gap:28px}
.cat-hero .txt{flex:0 1 380px}
.cat-hero .eyebrow{font-size:14px}
.cat-hero h1{font-size:30px}
.cat-hero p{font-size:13.5px;max-width:36ch}
.cat-hero .finder{margin:0;flex:0 1 560px;width:auto}
.cat-hero .finder .btn{width:auto;padding:0 18px}
.cat-hero .tabs button{height:34px}
.cat-hero .hcard{width:240px}
.cat-hero .hcard .go{width:16px;height:16px;color:#fff;margin-left:auto}

/* ---------- colonne de filtres ---------- */
.fside{display:flex;flex-direction:column;gap:12px}
.fbox{background:#fff;border:1px solid var(--c-line);border-radius:var(--r-card);padding:14px 14px 12px}
.fbox > h2,.fbox .fh{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 10px;font-size:15px;font-weight:700;color:var(--c-ink)}
.fbox h3{margin:12px 0 8px;font-size:12.5px;font-weight:700;color:var(--c-ink)}
.fbox h3:first-of-type{margin-top:0}
.fbox .reset{border:none;background:none;padding:0;font-size:12px;font-weight:600;color:var(--c-ink);text-decoration:underline;text-underline-offset:2px}
.fbox .sub{border-top:1px solid #EFEFEF;padding-top:12px;margin-top:12px}
.ctree{display:flex;flex-direction:column;max-height:430px;overflow:auto;margin:0 -6px;scrollbar-width:thin}
.ctree a{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:6px;font-size:13px;color:var(--c-ink);cursor:pointer}
.ctree a:hover{background:var(--c-page)}
.ctree a.fam{font-weight:600}
.ctree a.child{padding-left:22px;font-size:12.5px;color:var(--c-text)}
.ctree a.active{background:var(--c-brand-soft);box-shadow:inset 3px 0 0 var(--c-brand);color:var(--c-ink);font-weight:600}
.ctree .ct{margin-left:auto;font-size:11px;color:var(--c-muted)}
.ctree .msg{padding:8px;color:var(--c-muted);font-size:12.5px}
.vbox{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid var(--c-line);border-radius:8px;background:var(--c-page)}
.vbox .ico{width:22px;height:22px;color:var(--c-ink)}
.vbox b{display:block;font-size:12.5px;color:var(--c-ink)}
.vbox small{display:block;font-size:11px;color:var(--c-muted)}
.vbox a{margin-left:auto;font-size:11.5px;font-weight:600;text-decoration:underline;text-underline-offset:2px;color:var(--c-ink);white-space:nowrap}
.fsearch{position:relative;margin-bottom:8px}
.fsearch .ico{position:absolute;left:10px;top:50%;transform:translateY(-50%);width:15px;height:15px;color:var(--c-muted)}
.fsearch .inp{height:36px;padding-left:32px;font-size:13px}
.bchecks{display:flex;flex-direction:column;gap:2px;max-height:240px;overflow:auto;scrollbar-width:thin}
.bchecks .check{padding:4px 0;font-size:12.5px;cursor:pointer}
.bchecks .check .ct{margin-left:auto;font-size:11px;color:var(--c-muted)}
.bchecks .msg{padding:4px 0;color:var(--c-muted);font-size:12.5px}
.prow{display:flex;align-items:center;gap:8px}
.prow .inp{height:36px;font-size:13px;padding:0 10px}
.prow span{color:var(--c-muted)}
.prange{width:100%;margin-top:10px;accent-color:var(--c-btn)}
.pscale{display:flex;justify-content:space-between;font-size:11px;color:var(--c-muted)}

/* ---------- barre d'outils des résultats ---------- */
.rhead{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:2px 0 10px}
.rhead .ptitle{margin:0;flex:1;min-width:0}
.rtools{display:flex;align-items:center;gap:8px;margin-left:auto}
.sortw{display:flex;align-items:center;gap:8px;height:40px;padding:0 4px 0 12px;background:#fff;border:1px solid var(--c-line);border-radius:8px}
.sortw label{font-size:12.5px;color:var(--c-muted);white-space:nowrap}
.sortw .sel{height:34px;border:none;padding:0 8px;font-weight:600;font-size:13px;background:transparent;width:auto}
.sortw .sel:focus{box-shadow:none}
.vtog{display:flex;border:1px solid var(--c-line);border-radius:8px;background:#fff;overflow:hidden}
.vtog button{width:40px;height:38px;border:none;background:none;display:grid;place-items:center;color:var(--c-muted)}
.vtog button.active{color:var(--c-ink);box-shadow:inset 0 -2px 0 var(--c-brand);background:var(--c-brand-soft)}
.vtog .ico{width:18px;height:18px}
.chips{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 12px}
.chips .chip{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 10px;border:1px solid var(--c-line);border-radius:6px;background:#fff;font-size:12.5px;color:var(--c-ink)}
.chips .chip .ico{width:13px;height:13px}
.chips .clear{border:none;background:none;font-size:12.5px;color:var(--c-ink);text-decoration:underline;text-underline-offset:2px}
.pager{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:16px;flex-wrap:wrap}
.pager button{min-width:36px;height:36px;padding:0 10px;border:1px solid var(--c-line);border-radius:8px;background:#fff;font-size:13px;color:var(--c-ink)}
.pager button[aria-current]{background:var(--c-dark);color:#fff;border-color:var(--c-dark)}
.pager button[disabled]{opacity:.4;cursor:default}
.pager .ico{width:15px;height:15px}
.rmore{margin-top:10px;text-align:center;font-size:12.5px;color:var(--c-muted)}
.related{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}

/* ---------- fiche produit ---------- */
.pd{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr) 360px;gap:14px;align-items:start}
.pd-gal{display:flex;gap:10px;background:#fff;border:1px solid var(--c-line);border-radius:var(--r-card);padding:14px;min-height:340px;position:relative}
.pd-gal .stage{flex:1;display:grid;place-items:center;min-height:310px}
.pd-gal .stage img{max-height:300px;object-fit:contain}
.pd-gal .stage img.illu{mix-blend-mode:multiply;max-height:220px}
.pd-gal .stage .ph{width:64px;height:64px;color:#B5B5B5}
.pd-gal .blogo{position:absolute;left:18px;top:16px;height:26px;display:flex;align-items:center;font-weight:800;font-size:16px;color:var(--c-ink);text-transform:uppercase}
.pd-gal .blogo img{height:24px;width:auto}
.pd-gal .badge2{position:absolute;right:16px;top:16px}
.pd-info{background:#fff;border:1px solid var(--c-line);border-radius:var(--r-card);padding:16px 18px}
.pd-ref{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 4px 0 9px;border-radius:5px;background:var(--c-page);font-size:11.5px;color:var(--c-muted)}
.pd-ref b{color:var(--c-ink);font-weight:600}
.pd-ref button{border:none;background:none;padding:2px 4px;color:var(--c-ink);display:grid;place-items:center}
.pd-ref .ico{width:13px;height:13px}
.pd-info h1{margin:10px 0 4px;font-size:24px;line-height:1.2;font-weight:700;color:var(--c-ink)}
.pd-info .lead{margin:0;color:var(--c-text);font-size:13.5px}
.pd-rate{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:13px;color:var(--c-ink)}
.pd-rate .stars{color:var(--c-brand);letter-spacing:1px}
.pd-rate small{color:var(--c-muted);font-size:12.5px}
.pd-brand{margin-top:12px;height:26px;display:flex;align-items:center;font-weight:800;font-size:16px;color:var(--c-ink);text-transform:uppercase}
.pd-brand img{height:24px;width:auto}
.pd-compat{margin-top:14px;border:1px solid var(--c-line);border-radius:10px;padding:12px 14px;background:#FAFAFA}
.pd-compat .h{display:flex;align-items:center;gap:8px;font-weight:600;font-size:13.5px;color:var(--c-ink)}
.pd-compat .h .ico{width:18px;height:18px}
.pd-compat p{margin:6px 0 0;font-size:12.5px;color:var(--c-text)}
.pd-compat a{display:inline-flex;align-items:center;gap:6px;margin-top:8px;font-size:12.5px;font-weight:600;color:var(--c-ink);text-decoration:underline;text-underline-offset:2px}
.pd-compat a .ico{width:14px;height:14px}
.pd-buy{background:#fff;border:1px solid var(--c-line);border-radius:var(--r-card);padding:18px}
.pd-buy .price{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;font-size:32px;font-weight:700;color:var(--c-ink);line-height:1.1}
.pd-buy .price small{font-size:18px;font-weight:600}
.pd-buy .price s{font-size:14px;color:var(--c-muted);font-weight:500;margin-left:6px}
.pd-buy .ht{font-size:13px;color:var(--c-muted);margin-top:4px}
.pd-stock{display:flex;align-items:center;gap:8px;margin-top:12px;font-size:13.5px;font-weight:600;color:#2F7A4E}
.pd-stock.ko{color:var(--c-muted)}
.pd-stock .ico{width:18px;height:18px}
.pd-stock small{display:block;font-weight:400;color:var(--c-muted);font-size:12px}
.pd-cart{display:flex;gap:10px;margin-top:14px}
.pd-cart .qty{height:46px;flex:1;justify-content:space-between}
.pd-cart .qty button{width:38px}
.pd-cart .qty input{width:38px;font-size:14px}
.pd-cart .btn-cart{width:46px;height:46px}
.pd-cart .btn-cart .ico{width:20px;height:20px}
.pd-assur{list-style:none;margin:16px 0 0;padding:14px 0 0;border-top:1px solid #EFEFEF;display:flex;flex-direction:column;gap:12px}
.pd-assur li{display:flex;align-items:flex-start;gap:12px}
.pd-assur .ico{width:22px;height:22px;color:var(--c-ink);margin-top:1px}
.pd-assur b{display:block;font-size:13px;color:var(--c-ink)}
.pd-assur div > span{display:block;font-size:12px;color:var(--c-muted)}
.pd-tabs{margin-top:16px}
.pd-low{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) 360px;gap:14px;align-items:start}
.pd-low .panel h2{font-size:17px}
.pd-desc{margin:0;font-size:13.5px;line-height:1.6;color:var(--c-text);white-space:pre-line}
.kv{width:100%;border-collapse:collapse;font-size:13px}
.kv th,.kv td{padding:8px 10px;border-bottom:1px solid #EFEFEF;text-align:left;vertical-align:top}
.kv th{font-weight:500;color:var(--c-ink);width:46%;background:#FAFAFA}
.kv td{color:var(--c-text)}
.kv tr:last-child th,.kv tr:last-child td{border-bottom:none}
.revsum{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:12px}
.revsum .num{font-size:28px;font-weight:700;color:var(--c-ink)}
.revsum .num small{font-size:14px;color:var(--c-muted);font-weight:500}
.revsum .stars{color:var(--c-brand);font-size:16px;letter-spacing:1px}
.rev{padding:12px 0;border-top:1px solid #EFEFEF}
.rev .h{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:13px}
.rev .h .stars{color:var(--c-brand);letter-spacing:1px}
.rev .h .pill{height:20px}
.rev p{margin:6px 0 0;font-size:13px;color:var(--c-text)}
.pd-rel{margin-top:18px}
.pd-rel .prods{grid-auto-columns:calc((100% - 4*11px)/5)}
.pd-help{display:flex;align-items:center;gap:14px}
.pd-help .ico.big{width:30px;height:30px;color:var(--c-ink)}
.pd-help p{margin:2px 0 0;font-size:12.5px;color:var(--c-muted)}
.pd-help .btn{margin-left:auto}

/* ---------- panier ---------- */
.ctitle{display:flex;align-items:flex-start;gap:18px;flex-wrap:wrap;margin:4px 0 16px}
.ctitle .ptitle{margin:0;flex:1;min-width:0}
.cline{display:grid;grid-template-columns:120px minmax(0,1fr) auto 150px 40px;gap:18px;align-items:center;padding:16px 18px;border-bottom:1px solid #EFEFEF}
.cline:last-child{border-bottom:none}
.cline .th{height:96px;display:grid;place-items:center}
.cline .th img{max-height:92px;object-fit:contain}
.cline .th img.illu{mix-blend-mode:multiply;max-height:72px}
.cline .th .ph{width:36px;height:36px;color:#B5B5B5}
.cline .nm{font-size:15px;font-weight:600;color:var(--c-ink);line-height:1.3}
.cline .nm:hover{text-decoration:underline;text-underline-offset:2px}
.cline .meta{font-size:12.5px;color:var(--c-muted);margin-top:3px}
.cline .lot{margin-top:6px}
.cline .qty{height:40px}
.cline .tot{text-align:right;font-size:16px;font-weight:700;color:var(--c-ink);font-variant-numeric:tabular-nums}
.cline .tot small{display:block;font-size:12px;font-weight:400;color:var(--c-muted)}
.cline .del{border:none;background:none;color:var(--c-ink);display:grid;place-items:center;width:36px;height:36px;border-radius:8px}
.cline .del:hover{background:var(--c-page)}
.cline .del .ico{width:19px;height:19px}
.clist{padding:0;overflow:hidden}
.cfoot{display:flex;justify-content:flex-end;padding:10px 4px 0}
.cfoot button{border:none;background:none;font-size:12.5px;color:var(--c-muted);display:inline-flex;align-items:center;gap:6px}
.cfoot button .ico{width:14px;height:14px}
.freebar{display:flex;flex-direction:column;gap:8px;padding:12px 16px}
.freebar .t{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--c-ink)}
.freebar .t .ico{width:17px;height:17px}
.freebar .bar{height:6px;border-radius:999px;background:#ECECEC;overflow:hidden}
.freebar .bar i{display:block;height:100%;background:var(--c-btn);border-radius:999px;transition:width .3s}
.freebar.done .bar i{background:#2F7A4E}
.sumh{display:flex;align-items:center;gap:12px;margin:0 0 12px;font-size:16px;font-weight:700;color:var(--c-ink)}
.sumh .ico{width:22px;height:22px}
.sumh .n{margin-left:auto;white-space:nowrap;font-size:12.5px;font-weight:500;color:var(--c-muted)}
.srow{display:flex;justify-content:space-between;gap:10px;padding:5px 0;font-size:13.5px;color:var(--c-text)}
.srow b{color:var(--c-ink);font-weight:600;font-variant-numeric:tabular-nums}
.srow .ok,.srow .cs-green{color:#2F7A4E}
.stot{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-top:10px;padding-top:12px;border-top:1px solid var(--c-line);font-size:17px;font-weight:700;color:var(--c-ink)}
.stot b{font-size:24px;font-variant-numeric:tabular-nums}
.svat{display:flex;justify-content:space-between;font-size:12px;color:var(--c-muted);margin-top:4px}
.paylogos{display:flex;justify-content:center;align-items:center;gap:14px;margin-top:14px}
.paylogos img{height:22px;width:auto}
.secure{display:flex;justify-content:center;align-items:center;gap:7px;margin-top:10px;font-size:12px;color:var(--c-ink)}
.secure .ico{width:14px;height:14px}
.promo-in{display:flex;gap:8px}
.promo-in .inp{flex:1;min-width:0}
.promo-ok{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:#2F7A4E}
.promo-ok .ico{width:16px;height:16px}
.promo-ok button{margin-left:auto;border:none;background:none;font-size:18px;color:var(--c-muted)}
.helpbar{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.helpbar .ico.big{width:34px;height:34px;color:var(--c-ink);stroke-width:1.5}
.helpbar b{display:block;font-size:15px;color:var(--c-ink)}
.helpbar span{font-size:12.5px;color:var(--c-muted)}
.helpbar .btn{margin-left:auto}

/* ---------- checkout ---------- */
.cohead{display:flex;align-items:flex-start;gap:24px;flex-wrap:wrap;margin:4px 0 16px}
.cohead .ptitle{margin:0;flex:1 1 360px}
.cohead .steps{margin:4px 0 0}
.steps .st small{display:block;font-size:11.5px;font-weight:400;color:var(--c-muted)}
.steps .st b .ico{width:14px;height:14px}
.secth{display:flex;align-items:center;gap:12px;margin:0 0 14px;font-size:16px;font-weight:700;color:var(--c-ink)}
.secth .ico{width:22px;height:22px}
.secth .n{width:24px;height:24px;border-radius:50%;background:var(--c-dark);color:#fff;display:grid;place-items:center;font-size:12px;flex:none}
.secth .aside{margin-left:auto;display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--c-muted)}
.secth .aside .ico{width:14px;height:14px}
.fgrid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px 14px}
.fgrid .fld{grid-column:span 3}
.fgrid .fld.full{grid-column:1/-1}
.fgrid .fld.s2{grid-column:span 2}
.fgrid .fld.s4{grid-column:span 4}
.signin{margin:0 0 14px}
.signin a{font-weight:600;text-decoration:underline;text-underline-offset:2px;margin-left:4px}
.opts{display:flex;flex-direction:column;gap:10px}
.opt{display:flex;align-items:center;gap:14px;padding:14px 16px;border:1px solid var(--c-line);border-radius:10px;background:#fff;cursor:pointer}
.opt:hover{border-color:#CFCFCF}
/* « sel » = classe d'état posée par le script ; neutralise .sel (liste déroulante) de la base */
.opts .opt.sel{width:auto;height:auto;padding:14px 16px;font-size:inherit;color:inherit;border-radius:10px;background:#fff;border-color:var(--c-btn);box-shadow:0 0 0 1px var(--c-btn)}
.opt .radio{width:18px;height:18px;border-radius:50%;border:2px solid #BDBDBD;flex:none;display:grid;place-items:center}
.opt.sel .radio{border-color:var(--c-brand)}
.opt.sel .radio::after{content:"";width:8px;height:8px;border-radius:50%;background:var(--c-brand)}
.opt .oic .ico{width:24px;height:24px;color:var(--c-ink)}
.opt .otxt b{display:block;font-size:13.5px;color:var(--c-ink)}
.opt .otxt small{display:block;font-size:12px;color:var(--c-muted)}
.opt .oprice{margin-left:auto;font-weight:700;font-size:13.5px;color:var(--c-ink);white-space:nowrap}
.opt .oprice.free{color:#2F7A4E}
.opt .opay{margin-left:auto;display:flex;gap:8px;align-items:center}
.opt .opay img{height:20px;width:auto}
.mini{display:flex;flex-direction:column}
.mini .it{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid #EFEFEF}
.mini .it .th{height:56px;display:grid;place-items:center;position:relative}
.mini .it .th img{max-height:54px;object-fit:contain}
.mini .it .th img.illu{mix-blend-mode:multiply;max-height:44px}
.mini .it .th .ph{width:26px;height:26px;color:#B5B5B5}
.mini .it .nm{font-size:13px;font-weight:600;color:var(--c-ink);line-height:1.3}
.mini .it .nm small{display:block;font-weight:400;font-size:12px;color:var(--c-muted);margin-top:2px}
.mini .it .pr{font-size:13.5px;font-weight:700;color:var(--c-ink);text-align:right;white-space:nowrap}
.mini .it .pr small{display:block;font-weight:400;font-size:11.5px;color:var(--c-muted)}
.mini .vide{padding:16px 0;text-align:center;color:var(--c-muted);font-size:13px}
.consents{display:flex;flex-direction:column;gap:8px;margin:14px 0}
.consents .check{align-items:flex-start;font-size:12.5px;line-height:1.4}
.consents .check input{margin-top:1px;flex:none}
.consents a{text-decoration:underline;text-underline-offset:2px}
#paypal-button-container{margin-top:4px}
.payhint{display:flex;gap:8px;align-items:flex-start;margin:12px 0 0;font-size:12.5px;color:var(--c-muted);line-height:1.5}
.payhint .ico{width:15px;height:15px;margin-top:1px}
.assur3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px;padding:12px;border:1px solid var(--c-line);border-radius:10px}
.assur3 div{display:flex;align-items:center;gap:8px;font-size:11.5px;color:var(--c-ink);line-height:1.3}
.assur3 .ico{width:22px;height:22px;flex:none}
.co-toast{position:fixed;left:50%;bottom:16px;z-index:300;transform:translate(-50%,220%);max-width:calc(100vw - 32px);background:var(--c-dark);color:#fff;padding:12px 18px;border-radius:10px;font-size:13.5px;font-weight:600;box-shadow:0 14px 34px -12px rgba(0,0,0,.5);transition:transform .28s ease}
.pay-err{font-size:12.5px;color:#A23A35;margin-top:8px}
.pay-wait{font-size:12.5px;color:var(--c-muted);text-align:center;margin-top:8px}

/* ---------- confirmation / paiement non abouti ---------- */
.cnf-top{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;align-items:center;margin:6px 0 6px}
.cnf-hd{display:flex;align-items:center;gap:20px;min-width:0}
.cnf-ok{width:84px;height:84px;border-radius:50%;background:#E3F1E8;display:grid;place-items:center;flex:none}
.cnf-ok .ico{width:44px;height:44px;color:#2F7A4E;stroke-width:2.6}
.cnf-ok.ko{background:#F9E5E4}
.cnf-ok.ko .ico{color:#A23A35}
.cnf-hd h1{margin:0;font-size:32px;line-height:1.1;font-weight:700;color:var(--c-ink)}
.cnf-hd p{margin:6px 0 0;font-size:15px;color:var(--c-text)}
.cnf-hd p small{display:block;font-size:13px;color:var(--c-muted);margin-top:3px}
.cnf-num{display:flex;align-items:center;gap:14px;padding:16px 18px;border-radius:var(--r-card);background:#EEF5F0;border:1px solid #D5E7DB}
.cnf-num.neutral{background:#fff;border-color:var(--c-line)}
.cnf-num .ico{width:32px;height:32px;color:var(--c-ink);stroke-width:1.5}
.cnf-num small{display:block;font-size:12px;color:var(--c-muted)}
.cnf-num b{display:block;font-size:22px;color:var(--c-ink);letter-spacing:.01em;word-break:break-all}
.cnf-num em{display:block;font-style:normal;font-size:12px;color:var(--c-muted)}
.cnf-steps{padding:14px 0 6px;border-top:1px solid var(--c-line);margin-top:14px}
.addr{font-size:13px;line-height:1.55;color:var(--c-text)}
.addr b{display:block;color:var(--c-ink)}
.infoblk{display:flex;gap:12px;align-items:flex-start;padding:10px 0}
.infoblk + .infoblk{border-top:1px solid #EFEFEF}
.infoblk > .ico{width:22px;height:22px;color:var(--c-ink);margin-top:1px}
.infoblk .t{font-size:13.5px;font-weight:600;color:var(--c-ink)}
.infoblk .s{font-size:12.5px;color:var(--c-muted)}
.acts{display:flex;flex-direction:column;gap:10px;margin-top:14px}
.acts .btn{width:100%}
.mailnote{display:flex;align-items:center;gap:14px}
.mailnote .ico.big{width:30px;height:30px;color:var(--c-ink);stroke-width:1.5}
.mailnote b{display:block;font-size:14px;color:var(--c-ink)}
.mailnote span{font-size:12.5px;color:var(--c-muted)}
.reasons{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.reasons li{display:flex;gap:12px;align-items:flex-start;padding:10px 0;border-top:1px solid #EFEFEF}
.reasons li:first-child{border-top:none;padding-top:0}
.reasons .ico{width:20px;height:20px;color:var(--c-ink);margin-top:1px}
.reasons b{display:block;font-size:13.5px;color:var(--c-ink)}
.reasons small{display:block;font-size:12.5px;color:var(--c-muted)}

/* ---------- commande rapide ---------- */
.qo-tabs{margin-bottom:14px}
.qo-tabs .qo-tab{display:inline-flex;align-items:center;gap:8px}
.qo-tabs .qo-tab .ico{width:16px;height:16px}
.qo-tabs .qo-tab.active{color:var(--c-ink);font-weight:600;box-shadow:inset 0 -2px 0 var(--c-brand)}
.qo-rows{display:flex;flex-direction:column;gap:8px}
.qo-rowhd,.qo-row{display:grid;grid-template-columns:minmax(0,1fr) 110px 40px;gap:10px;align-items:center}
.qo-rowhd span{font-size:12px;font-weight:600;color:var(--c-muted)}
.qo-row input{width:100%;height:42px;border:1px solid #D4D9D4;border-color:#D4D4D4;border-radius:8px;padding:0 12px;font:inherit;font-size:14px;color:var(--c-ink);background:#fff}
.qo-row input:focus{outline:none;border-color:var(--c-btn);box-shadow:0 0 0 3px rgba(96,100,106,.16)}
.qo-del{width:40px;height:40px;border:1px solid var(--c-line);border-radius:8px;background:#fff;display:grid;place-items:center;color:var(--c-ink)}
.qo-del .ico{width:16px;height:16px}
.qo-addrow{margin-top:10px}
.qo-paste textarea{width:100%;min-height:170px;border:1px solid #D4D4D4;border-radius:8px;padding:11px 13px;font:inherit;font-size:14px;color:var(--c-ink);resize:vertical}
.qo-paste code{background:var(--c-page);padding:1px 5px;border-radius:4px;font-size:12px}
.qo-actions{display:flex;justify-content:flex-end;margin-top:16px}
.qo-count{margin-left:auto;font-size:12.5px;font-weight:500;color:var(--c-muted)}
.qo-item{display:grid;grid-template-columns:56px minmax(0,1fr) auto 110px 34px;gap:14px;align-items:center;padding:12px 0;border-top:1px solid #EFEFEF}
.qo-item:first-child{border-top:none}
.qo-item.unknown{grid-template-columns:56px minmax(0,1fr) auto}
.qo-item-th{width:56px;height:56px;border-radius:10px;background:var(--c-page);display:grid;place-items:center}
.qo-item-th .ico{width:24px;height:24px;color:var(--c-ink)}
.qo-item-br{font-size:11.5px;font-weight:800;text-transform:uppercase;color:var(--c-ink)}
.qo-item.unknown .qo-item-br{color:#8A5A00;text-transform:none;font-weight:600}
.qo-item-nm{font-size:13.5px;font-weight:600;color:var(--c-ink)}
.qo-item-ref{font-size:12px;color:var(--c-muted)}
.qo-item-ref a{text-decoration:underline;text-underline-offset:2px;color:var(--c-ink)}
.qo-item-stock{display:inline-flex;align-items:center;gap:4px}
.qo-item-stock .ico{width:13px;height:13px}
.qo-item-qty{display:flex;align-items:center;border:1px solid #D4D4D4;border-radius:8px;height:36px}
.qo-item-qty button{width:30px;height:100%;border:none;background:none;font-size:16px;color:var(--c-ink)}
.qo-item-qty span{min-width:26px;text-align:center;font-size:13px}
.qo-item-price{text-align:right;font-weight:700;color:var(--c-ink);font-variant-numeric:tabular-nums}
.qo-item-price small{display:block;font-weight:400;font-size:11.5px;color:var(--c-muted);text-decoration:line-through}
.qo-item-x{width:34px;height:34px;border-radius:8px;display:grid;place-items:center;cursor:pointer;color:var(--c-ink)}
.qo-item-x:hover{background:var(--c-page)}
.qo-item-x .ico{width:16px;height:16px}
.qo-item.rupture{opacity:.7}
.qo-submit{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.qo-submit-tot{font-size:13.5px;color:var(--c-text)}
.qo-submit-tot b{display:block;font-size:22px;color:var(--c-ink)}
.qo-submit .btn{margin-left:auto}
.qo-searching{display:inline-flex;align-items:center;gap:8px}
.qo-drop{display:flex;flex-direction:column;align-items:center;gap:6px;padding:22px 14px;border:1.5px dashed #CFCFCF;border-radius:10px;text-align:center;cursor:pointer;color:var(--c-ink)}
.qo-drop:hover{border-color:var(--c-btn);background:#FAFAFA}
.qo-drop .ico{width:28px;height:28px}
.qo-drop b{font-size:13.5px}
.qo-drop span{font-size:12px;color:var(--c-muted)}
.qo-how{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.qo-how li{display:flex;gap:10px;align-items:flex-start;font-size:13px;color:var(--c-text)}
.qo-how .ico{width:18px;height:18px;color:var(--c-ink);margin-top:1px}

/* ---------- adaptation ---------- */
@media (max-width:1280px){
  .pd{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .pd-buy{grid-column:1/-1}
  .pd-low{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .pd-low > :last-child{grid-column:1/-1}
  .pd-rel .prods{grid-auto-columns:calc((100% - 3*11px)/4)}
  .cat-hero .side{display:none}
}
@media (max-width:1100px){
  .cat-hero .wrap{flex-direction:column;align-items:stretch;gap:14px}
  .cat-hero .txt,.cat-hero .finder{flex:none}
  .cat-hero .finder{max-width:620px}
  .fside{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .ctree{max-height:260px}
  .pgrid.list .vcard{grid-template-columns:110px minmax(0,1fr)}
  .pgrid.list .vcard .px,.pgrid.list .vcard .buy{grid-column:2;grid-row:auto}
  .pgrid.list .vcard .px{justify-content:flex-start;margin-top:8px}
  .cnf-top{grid-template-columns:minmax(0,1fr)}
  .cline{grid-template-columns:96px minmax(0,1fr) auto 120px 36px;gap:12px}
}
@media (max-width:860px){
  .pd,.pd-low{grid-template-columns:minmax(0,1fr)}
  .pd-low > :last-child{grid-column:auto}
  .pd-gal{min-height:0}
  .pd-gal .stage{min-height:220px}
  .pd-rel .prods{grid-auto-columns:78%}
  .cline{grid-template-columns:80px minmax(0,1fr) auto;grid-template-areas:"th info del" "th qty tot";row-gap:10px}
  .cline .th{grid-area:th;height:80px}
  .cline .info{grid-area:info}
  .cline .qty{grid-area:qty;justify-self:start}
  .cline .tot{grid-area:tot}
  .cline .del{grid-area:del;align-self:start;justify-self:end}
  .cline .tot{white-space:nowrap;align-self:center}
  .ctitle .btn{width:100%}
  .fgrid .fld,.fgrid .fld.s2,.fgrid .fld.s4{grid-column:1/-1}
  .qo-item{grid-template-columns:48px minmax(0,1fr) 34px;row-gap:8px}
  .qo-item-th{width:48px;height:48px}
  .qo-item-qty{grid-column:2;justify-self:start}
  .qo-item-price{grid-column:2/4;text-align:left}
  .qo-item-x{grid-column:3;grid-row:1}
  .qo-item.unknown{grid-template-columns:48px minmax(0,1fr)}
  .qo-item.unknown .btn{grid-column:2;justify-self:start}
}
@media (max-width:640px){
  .fside{grid-template-columns:minmax(0,1fr)}
  .ctree{max-height:220px}
  .bchecks{max-height:170px}
  .vcard .buy .qty{justify-content:space-between}
  .vcard .im{height:110px;margin:4px 0 6px}
  .rtools{margin-left:0;width:100%}
  .sortw{flex:1}
  .sortw .sel{flex:1}
  .cat-hero h1{font-size:24px}
  .cat-hero .finder .fpanel{flex-direction:column}
  .cat-hero .finder .btn{width:100%}
  .cnf-hd{align-items:flex-start}
  .cnf-ok{width:56px;height:56px}
  .cnf-ok .ico{width:30px;height:30px}
  .cnf-hd h1{font-size:24px}
  .pd-info h1{font-size:20px}
  .pd-buy .price{font-size:28px}
  .assur3{grid-template-columns:minmax(0,1fr)}
  .helpbar .btn,.pd-help .btn{margin-left:0;width:100%}
  .pd-help{flex-wrap:wrap}
  .shop-toast a{display:none}
  .qo-rowhd,.qo-row{grid-template-columns:minmax(0,1fr) 72px 40px}
  .opt[data-pay]{flex-wrap:wrap}
  .opt .opay{margin-left:32px}
}
@media print{
  .top,.head,.nav,.foot,.acts,.mailnote{display:none !important}
}
