/* Boutique MSP Services — charte du site www.mspservices.be (#4C94AE surfaces, #65C5E8 IA, Source Sans 3 hébergée ici).
   Police : Source Sans 3 (Adobe, SIL OFL 1.1 — /static/OFL-SourceSans3.txt), fichiers servis par la boutique (aucun appel à Google).
   Contrastes : --teal (#4C94AE) seulement pour les surfaces ; --teal-txt pour les boutons à texte blanc et --lien pour les liens
   (calculs WCAG : tests/contrastes.py). Icônes : SVG en ligne (Lucide, ISC/MIT — /static/LICENCES-TIERS.txt). */
@font-face{font-family:"Source Sans 3";src:url(/static/SourceSans3-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Source Sans 3";src:url(/static/SourceSans3-Semibold.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Source Sans 3";src:url(/static/SourceSans3-Bold.woff2) format("woff2");font-weight:700 900;font-style:normal;font-display:swap}
:root{--teal:#4c94ae;--teal2:#3d7f97;--nuit:#1f5266;--bleu:#65c5e8;--clair:#d3eef7;--fond:#f5f9fb;--blanc:#fff;--lien:#156f8f;--teal-txt:#357a92;--teal-txt-h:#2d6a80;--ph:#6b7780;--alerte:#c2410c;
--texte:#212529;--gris:#5c6670;--ligne:#dde9ef;--ok:#22744a;--warn:#b35c00;--rouge:#b3261e;--ombre:0 2px 10px rgba(31,82,102,.08)}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{font-family:"Source Sans 3","Source Sans Pro",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;margin:0;background:var(--fond);color:var(--texte);font-size:16px;line-height:1.45}
a{color:var(--lien);text-decoration:none}a:hover{text-decoration:underline}
img{max-width:100%}
.in{max-width:1260px;margin:0 auto;padding:0 20px}
button{font:inherit;cursor:pointer}
.sr{position:absolute;left:-9999px}
.ic{display:inline-block;vertical-align:-4px;flex:none}
/* barre du haut */
.topbar{background:var(--nuit);color:#e6f3f8;font-size:14px}
.topbar .in{display:flex;gap:18px;align-items:center;min-height:36px;flex-wrap:wrap}
.topbar a,.topbar .local{color:#fff;display:inline-flex;align-items:center;gap:6px}.topbar .ic{width:16px;height:16px;color:#9fd8ee}.topbar .sp{flex:1}
.mode{display:inline-flex;border:1px solid #6aa9bf;border-radius:16px;overflow:hidden}
.mode button{background:transparent;border:0;color:#d9eef6;padding:3px 11px;font-size:13px}
.mode button.on{background:var(--bleu);color:var(--texte);font-weight:700}
/* en-tête */
.hd{background:var(--teal);color:#fff;position:sticky;top:0;z-index:40;box-shadow:0 2px 8px rgba(0,0,0,.12)}
.hd .in{display:flex;align-items:center;gap:16px;min-height:74px}
.logo img{height:54px;width:auto;display:block}
.burger{display:none;background:transparent;border:0;color:#fff;padding:4px 6px}.burger .ic{width:28px;height:28px}
.search{flex:1;position:relative;display:flex;max-width:640px}
.search input{flex:1;border:0;border-radius:6px 0 0 6px;padding:12px 14px;font:inherit;font-size:16px;min-width:0}
.search>button{border:0;background:var(--bleu);color:var(--texte);border-radius:0 6px 6px 0;padding:0 16px;display:flex;align-items:center}
.sugg{position:absolute;top:100%;left:0;right:0;background:#fff;color:var(--texte);border-radius:0 0 8px 8px;box-shadow:0 10px 30px rgba(0,0,0,.18);display:none;z-index:60;max-height:70vh;overflow:auto}
.sugg.on{display:block}
.sugg h6{margin:0;padding:8px 14px 4px;font-size:12px;text-transform:uppercase;color:var(--gris);letter-spacing:.04em}
.sugg a{display:flex;align-items:center;gap:10px;padding:7px 14px;color:var(--texte)}
.sugg a:hover,.sugg a.sel{background:var(--clair);text-decoration:none}
.sugg img{width:38px;height:38px;object-fit:contain;background:#fff}
.sugg .sp{margin-left:auto;font-weight:700;color:var(--nuit);white-space:nowrap}
.sugg .n{margin-left:auto;color:var(--gris);font-size:13px}
.btn-ia{background:var(--bleu);color:var(--texte);border:0;border-radius:22px;padding:10px 16px;font-weight:700;white-space:nowrap;box-shadow:0 2px 6px rgba(0,0,0,.15);display:inline-flex;align-items:center;gap:6px}
.btn-ia:hover{filter:brightness(1.05)}
.lien-panier{color:#fff;display:flex;align-items:center;gap:8px;position:relative;white-space:nowrap}
.lien-panier>.ic{width:26px;height:26px}
.lien-panier .lbl{font-size:18.7px;font-weight:700}
.cpt{position:absolute;top:-8px;left:16px;background:var(--alerte);color:#fff;border-radius:10px;font-size:12px;padding:0 6px;font-weight:700;min-width:20px;text-align:center}
.cpt.zero{display:none}
/* navigation + méga-menu */
.nav{background:#fff;border-bottom:1px solid var(--ligne);position:relative;z-index:35}
.nav .in{display:flex;align-items:center;gap:4px;min-height:46px;overflow-x:auto;scrollbar-width:none}
.nav .in::-webkit-scrollbar{display:none}
.rayons-btn{background:var(--nuit);color:#fff;border:0;border-radius:4px;padding:8px 14px;font-weight:700;white-space:nowrap;display:inline-flex;align-items:center;gap:6px}
.nav .rap{padding:8px 10px;color:var(--nuit);white-space:nowrap;font-weight:600;font-size:15px}
.mega{display:none;position:absolute;left:0;right:0;top:100%;background:#fff;box-shadow:0 18px 40px rgba(0,0,0,.16);border-top:1px solid var(--ligne)}
.mega.on{display:block}
.mega .in{display:flex;gap:0;align-items:stretch;overflow:visible;padding:0 20px}
.mega-g{width:270px;border-right:1px solid var(--ligne);padding:10px 0;max-height:70vh;overflow:auto}
.mega-g a{display:flex;justify-content:space-between;padding:8px 14px;color:var(--texte);font-weight:600}
.mega-g a.on,.mega-g a:hover{background:var(--clair);color:var(--nuit);text-decoration:none}
.mega-g small{color:var(--gris);font-weight:400}
.mega-p{flex:1;padding:16px 24px;max-height:70vh;overflow:auto}
.mega-p section{display:none}.mega-p section.on{display:block}
.mega-p h3{margin:0 0 10px;color:var(--nuit);font-size:20px}
.mega-c{display:grid;grid-template-columns:1fr 240px;gap:24px}
.mega-vis .btn{margin-top:4px}
.mega-vis{background:var(--fond);border-radius:10px;padding:14px;text-align:center;font-size:14.5px;color:var(--nuit)}
.mega-vis img{width:100%;height:130px;object-fit:contain}
.mega-p ul{list-style:none;margin:0;padding:0;columns:2;column-gap:24px}
.bandeau-ia .court{display:none}
.mega-p li{break-inside:avoid;padding:4px 0}
.mega-p li small{color:var(--gris)}
.mega-p .tout{display:inline-block;margin-top:12px;font-weight:700}
/* tiroir mobile */
.tiroir{position:fixed;inset:0;z-index:80;display:none}
.tiroir.on{display:block}
.tiroir .voile{position:absolute;inset:0;background:rgba(0,0,0,.45)}
.tiroir .pan{position:absolute;left:0;top:0;bottom:0;width:min(88vw,360px);background:#fff;overflow:auto;padding-bottom:30px}
.tiroir .tete{background:var(--teal-txt);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:12px 16px}
.tiroir .tete button{background:transparent;border:0;color:#fff;font-size:28px}
.tiroir details{border-bottom:1px solid var(--ligne)}
.tiroir summary{padding:12px 16px;font-weight:700;color:var(--nuit);list-style:none;display:flex;justify-content:space-between}
.tiroir summary::after{content:"+";font-size:20px;line-height:1}
.tiroir details[open] summary::after{content:"–"}
.tiroir details a{display:block;padding:8px 26px;color:var(--texte)}
.tiroir .liens a{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--ligne);font-weight:600}.tiroir .liens .ic{color:var(--teal-txt)}
/* bandeau IA (AI Act) */
.bandeau-ia{background:var(--clair);font-size:14px;color:var(--nuit)}
.bandeau-ia .in{padding:7px 20px}
.bandeau-ia .ic{color:var(--teal-txt);width:18px;height:18px;margin-right:4px}
.bandeau-ia a{white-space:nowrap}
/* blocs */
main{min-height:60vh}
.fil{font-size:14px;color:var(--gris);padding:14px 0 4px}
.fil a{color:var(--gris)}.fil span{margin:0 6px}
h1{font-size:30px;line-height:1.2;color:var(--nuit);margin:6px 0 12px}
h2{font-size:24px;color:var(--nuit);margin:0 0 6px}
.sous{color:var(--gris);margin:0 0 14px}
/* hiérarchie des boutons : principal = --teal-txt plein ; IA = #65C5E8 ; secondaire = contour (défaut) */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:#fff;color:var(--nuit);border:1px solid var(--teal);border-radius:5px;padding:10px 16px;font-weight:700;text-decoration:none!important}
.btn:hover{background:var(--fond)}
.btn.ia{background:var(--bleu);color:var(--texte);border-color:var(--bleu)}.btn.ia:hover{filter:brightness(.96);background:var(--bleu)}
.btn.sombre,.btn.vert{background:var(--teal-txt);border-color:var(--teal-txt);color:#fff}.btn.sombre:hover,.btn.vert:hover{background:var(--teal-txt-h)}
.btn.nuit{background:var(--nuit);border-color:var(--nuit);color:#fff}
.btn.contour{background:#fff;border:1px solid var(--teal);color:var(--nuit)}
.btn.grand{padding:13px 22px;font-size:17px}
.btn[disabled]{opacity:.6;cursor:wait}
.carte-bloc{background:#fff;border:1px solid var(--ligne);border-radius:10px;padding:18px;box-shadow:var(--ombre)}
/* accueil */
.hero{background:linear-gradient(160deg,var(--teal-txt) 0%,#317189 55%,var(--teal-txt-h) 100%);color:#fff;overflow:hidden;position:relative}
.hero::after{content:"";position:absolute;right:-120px;bottom:-160px;width:520px;height:520px;border-radius:50%;background:rgba(101,197,232,.18)}
.hero .in{display:grid;grid-template-columns:1.25fr .75fr;gap:30px;padding-top:44px;padding-bottom:66px;position:relative;z-index:1}
.hero h1{color:#fff;font-size:42px;margin:0 0 12px;letter-spacing:-.01em}
.hero p.acc{font-size:19px;margin:0 0 22px;max-width:640px}
.hero p.acc a.savoir{color:#fff;text-decoration:underline;text-underline-offset:3px;font-weight:600}.hero p.acc a.savoir:hover{text-decoration-thickness:2px}
.hero .cta{display:flex;gap:12px;flex-wrap:wrap}
.hero .btn.contour{background:transparent;border-color:#fff;color:#fff}
.hero-ia{background:#fff;color:var(--texte);border-radius:14px;padding:18px;box-shadow:0 12px 34px rgba(0,0,0,.2);align-self:center}
.hero-ia>b{color:var(--nuit);font-size:18px;display:flex;align-items:center;gap:8px}.hero-ia>b .ic{color:var(--teal-txt)}
.hero-ia .bul{background:var(--fond);border-radius:12px;padding:10px 12px;margin:10px 0;font-size:15px}
.hero-ia .bul.cl{background:#e3f3fa;margin-left:30px}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.chip{background:#fff;border:1px solid #cfe7f0;color:var(--nuit);border-radius:18px;padding:6px 12px;font-size:14px;display:inline-flex;align-items:center;gap:6px}.chip .ic{color:var(--teal-txt);width:16px;height:16px}
.chip:hover{background:var(--clair)}
.atouts{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:-26px auto 0;position:relative;z-index:2}
.atout{background:#fff;border-radius:10px;padding:16px;box-shadow:var(--ombre);border:1px solid var(--ligne)}
.atout b{display:block;color:var(--nuit);font-size:17px;margin-bottom:2px}
.atout span{font-size:14.5px;color:var(--gris)}
.atout .ic{display:block;margin-bottom:8px;color:var(--teal-txt);width:28px;height:28px}
.sec{padding:34px 0 8px}
.sec-t{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.tuiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px}
.tuile{background:#fff;border:1px solid var(--ligne);border-radius:10px;padding:14px;display:flex;flex-direction:column;align-items:center;text-align:center;color:var(--texte);transition:transform .12s,box-shadow .12s}
.tuile:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(31,82,102,.14);text-decoration:none}
.tuile img{width:100%;height:120px;object-fit:contain}
.tuile b{color:var(--nuit);margin-top:8px;font-size:17px}
.tuile small{color:var(--gris)}
.etapes{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.etape{background:#fff;border:1px solid var(--ligne);border-radius:10px;padding:18px;position:relative}
.etape .num{width:36px;height:36px;border-radius:50%;background:var(--bleu);display:flex;align-items:center;justify-content:center;font-weight:800;color:var(--nuit);margin-bottom:8px}
.etape b{color:var(--nuit);font-size:18px}
.preuve{display:grid;grid-template-columns:1.2fr .8fr;gap:16px;align-items:stretch}
.preuve .carte-bloc b{color:var(--nuit)}
/* grille produits */
.grille{display:grid;grid-template-columns:repeat(auto-fill,minmax(228px,1fr));gap:14px}
.grille.x4{grid-template-columns:repeat(4,minmax(0,1fr))}
.pc{min-width:0;background:#fff;border:1px solid var(--ligne);border-radius:10px;padding:12px;display:flex;flex-direction:column;position:relative;transition:box-shadow .12s}
.pc:hover{box-shadow:0 8px 24px rgba(31,82,102,.13)}
.pc-img{display:block;height:170px;margin-bottom:8px}
.pc-img img{width:100%;height:100%;object-fit:contain}
.pc-t{font-weight:700;color:var(--texte);font-size:16px;line-height:1.25;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.pc-m{font-size:13px;color:var(--gris);margin:2px 0 0}.pc-m:empty{display:none}
.pc-p{list-style:none;margin:6px 0 8px;padding-left:0;font-size:13.5px;color:#333;min-height:58px}
.pc-p li::before{content:"";display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--teal);margin:0 7px 2px 0;vertical-align:middle}
.pc-p li{margin:1px 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.px{margin-top:auto}
.px .pp{font-size:22px;font-weight:800;color:var(--nuit)}
.px .pp small,.px .ps small{font-size:12px;font-weight:600}
.px .ps{font-size:13px;color:var(--gris);display:block}
.prep{font-size:12.5px;color:var(--teal-txt);display:flex;align-items:center;gap:4px}.prep .ic{width:14px;height:14px}
.prep .pc-court{display:none}
.stock{display:inline-block;align-self:flex-start;font-size:12.5px;font-weight:700;border-radius:10px;padding:2px 8px;margin:6px 0}
.stock.ok{background:#e4f4ea;color:var(--ok)}.stock.bas{background:#fff1e0;color:var(--warn)}
.pc-a{display:flex;gap:6px;margin-top:8px}
.pc-a .btn{flex:1;padding:9px 8px;font-size:14.5px}
.pc-a .ask{flex:0 0 auto;background:#fff;border:1px solid var(--ligne);color:var(--nuit);font-weight:600}.pc-a .ask .ic{color:var(--teal-txt)}
.cmp{position:absolute;top:10px;right:10px;font-size:12.5px;background:rgba(255,255,255,.92);border-radius:12px;padding:2px 8px;border:1px solid var(--ligne);display:flex;gap:4px;align-items:center;cursor:pointer;color:var(--gris)}
/* 17/10 (accessibilité, cible tactile >= 24 px) : la case « Comparer » garde l'aspect et l'encombrement d'une case native de
   13 px (marges négatives = 13 px + marges natives 3/3/3/4 px) mais sa zone cliquable mesure 24 px (32 px sur mobile) */
.cmp input{-webkit-appearance:none;appearance:none;width:24px;height:24px;margin:-2.5px -2.5px -2.5px -1.5px;flex:none;cursor:pointer;border:0;border-radius:4px;
 background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='13' height='13'%3E%3Crect x='.5' y='.5' width='12' height='12' rx='2' fill='%23fff' stroke='%23767676'/%3E%3C/svg%3E") center/13px 13px no-repeat}
.cmp input:checked{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='13' height='13'%3E%3Crect width='13' height='13' rx='2' fill='%230075ff'/%3E%3Cpath d='M3 6.6l2.4 2.4L10.2 4.2' fill='none' stroke='%23fff' stroke-width='1.8'/%3E%3C/svg%3E")}
.cmp input:focus-visible{outline:2px solid #101010;outline-offset:-6px}
.fiche .cmp{vertical-align:-5.5px}   /* fiche (case en ligne) : même ligne de base qu'avec la case native (mesuré) */
/* prix : bascule particulier / pro */
.vpro,.px .ps.vpro{display:none}
body.pro .vpro{display:inline}body.pro .vpart,body.pro .px .ps.vpart{display:none}
body.pro .px .ps.vpro{display:block}
/* liste catégorie */
.liste{display:grid;grid-template-columns:260px 1fr;gap:22px;align-items:start;padding-bottom:30px}
.filtres{background:#fff;border:1px solid var(--ligne);border-radius:10px;padding:6px 14px 14px;position:sticky;top:132px;max-height:calc(100vh - 150px);overflow:auto}
.filtres h3{font-size:15px;color:var(--nuit);margin:14px 0 6px;text-transform:uppercase;letter-spacing:.03em}
.filtres label{display:flex;gap:8px;align-items:center;font-size:14.5px;padding:3px 0;cursor:pointer}
.filtres label small{margin-left:auto;color:var(--gris)}
.filtres .plus{font-size:14px}
.filtres .reset{display:inline-block;margin-top:12px;font-size:14px}
.sous-cats{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}
.sous-cats a{background:#fff;border:1px solid var(--ligne);border-radius:18px;padding:6px 12px;font-size:14.5px;color:var(--nuit)}
.sous-cats a small{color:var(--gris)}
.barre{display:flex;align-items:center;gap:10px;justify-content:space-between;margin-bottom:12px;flex-wrap:wrap}
.barre select{font:inherit;padding:7px 10px;border:1px solid #c9d6dd;border-radius:5px;background:#fff}
.btn-filtres{display:none}
.actifs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.actifs a{background:var(--clair);color:var(--nuit);border-radius:14px;padding:3px 10px;font-size:13.5px}
.pages{display:flex;gap:6px;justify-content:center;align-items:center;margin:22px 0 6px;flex-wrap:wrap}
.pages a,.pages span{padding:7px 12px;border:1px solid var(--ligne);border-radius:5px;background:#fff}
.pages .on{background:var(--teal-txt);color:#fff;border-color:var(--teal-txt)}
.voir-plus{display:flex;justify-content:center;margin-top:16px}
.vide{background:#fff;border:1px dashed #b9d4df;border-radius:10px;padding:26px;text-align:center;color:var(--gris)}
.vide-actions{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;margin-top:6px}.vide-actions .btn{margin:0}
/* fiche produit */
.fiche{overflow-wrap:anywhere;display:grid;grid-template-columns:1fr 1fr;gap:30px;background:#fff;border:1px solid var(--ligne);border-radius:12px;padding:24px;margin-bottom:20px}
.fiche .photo{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:380px;gap:12px;min-width:0}
.fiche .photo img{max-height:440px;object-fit:contain;width:100%}
.fiche h1{font-size:28px;margin:4px 0 4px}
.fiche .ref{font-size:13.5px;color:var(--gris)}
.fiche .titre-long{font-size:14.5px;color:var(--gris);margin:4px 0 10px}
.fiche ul.pts{padding-left:20px;margin:10px 0}
.fiche ul.pts li{margin:3px 0}
.boite-prix{background:var(--fond);border:1px solid var(--ligne);border-radius:10px;padding:16px;margin:14px 0}
.boite-prix .pp{font-size:34px;font-weight:800;color:var(--nuit)}
.boite-prix .pp small{font-size:15px}
.detail-prix{font-size:14px;color:var(--gris);margin-top:6px}
.detail-prix table{border-collapse:collapse;width:100%;margin-top:6px}
.detail-prix td{padding:3px 0;border-bottom:1px dotted #cfdde4}
.detail-prix td:last-child{text-align:right;white-space:nowrap}
.achat{display:flex;gap:10px;align-items:center;margin-top:12px;flex-wrap:wrap}
.qte{display:inline-flex;border:1px solid #c9d6dd;border-radius:6px;overflow:hidden;background:#fff}
.qte button{border:0;background:#eef6f9;width:38px;font-size:18px}
.qte input{width:52px;border:0;text-align:center;font:inherit;font-size:17px;-moz-appearance:textfield}
.qte input::-webkit-inner-spin-button{-webkit-appearance:none}
.ask-ia{display:flex;gap:10px;align-items:center;background:linear-gradient(90deg,#e8f6fc,#fff);border:1px solid #bfe3f1;border-radius:10px;padding:12px 14px;margin-top:14px;cursor:pointer;width:100%;text-align:left}
.ask-ia b{color:var(--nuit)}
.ask-ia>.ic{width:28px;height:28px;color:var(--teal-txt)}
.garanties{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:14px;color:var(--nuit);margin-top:14px}.garanties span{display:inline-flex;align-items:center;gap:5px}.garanties .ic{color:var(--ok);width:16px;height:16px}
.carac{background:#fff;border:1px solid var(--ligne);border-radius:12px;padding:20px 24px;margin-bottom:20px}
.carac table{border-collapse:collapse;width:100%;table-layout:fixed}
.carac td{overflow-wrap:anywhere;padding:7px 10px;border-bottom:1px solid #edf3f6;font-size:15px;vertical-align:top}
.carac td:first-child{color:var(--gris);width:38%}
.carac .src{font-size:13px;color:var(--gris);margin-top:8px}
.tout-carac{margin-top:14px;border-top:1px solid var(--ligne);padding-top:4px}
.tout-carac summary{cursor:pointer;font-weight:700;color:var(--lien);padding:8px 0}
/* comparateur */
.barre-cmp{position:fixed;left:50%;transform:translateX(-50%);bottom:20px;background:var(--nuit);color:#fff;border-radius:30px;padding:8px 10px 8px 18px;display:none;align-items:center;gap:12px;z-index:45;box-shadow:0 6px 20px rgba(0,0,0,.25)}
.barre-cmp.on{display:flex}
.barre-cmp>span{display:inline-flex;align-items:center;gap:6px}
.barre-cmp button.x{background:transparent;border:0;color:#cfe9f2;text-decoration:underline;font-size:14px}
/* la barre ne masque plus le bas des pages ; absente là où elle n'a rien à faire (panier, confirmation, comparateur) */
body.cmp-on main{padding-bottom:84px}
body[data-page=panier] .barre-cmp,body[data-page=confirmation] .barre-cmp,body[data-page=comparer] .barre-cmp{display:none!important}
body[data-page=panier].cmp-on main,body[data-page=confirmation].cmp-on main,body[data-page=comparer].cmp-on main{padding-bottom:0}
.tcmp{overflow-x:auto;background:#fff;border:1px solid var(--ligne);border-radius:12px}
@media (min-width:901px){.tcmp{overflow:visible}.tcmp tr.noms>*{position:sticky;top:120px;background:#fff;z-index:2;box-shadow:0 1px 0 var(--ligne)}}
.tcmp table{border-collapse:collapse;min-width:640px;width:100%}
.tcmp td,.tcmp th{border-bottom:1px solid #edf3f6;padding:9px 12px;vertical-align:top;font-size:14.5px;text-align:left}
.tcmp th{width:180px;color:var(--gris);font-weight:600;background:#fafcfd;position:sticky;left:0}
.tcmp img{width:150px;height:130px;object-fit:contain}
.tcmp .diff td{background:#fffbea}
.tcmp .leg{display:inline-block;background:#fffbea;border:1px solid #f0e3b0;padding:0 6px;border-radius:4px}
/* panier */
.panier{display:grid;grid-template-columns:1fr 360px;gap:22px;align-items:start;padding-bottom:30px}
.lignes{background:#fff;border:1px solid var(--ligne);border-radius:12px}
.ligne{display:grid;grid-template-columns:90px 1fr auto;gap:14px;padding:14px;border-bottom:1px solid #edf3f6;align-items:center}
.ligne img{width:90px;height:80px;object-fit:contain}
.ligne .t{font-weight:700;color:var(--texte)}
.ligne .sub{font-size:13.5px;color:var(--gris)}
.ligne .droite{text-align:right;display:flex;flex-direction:column;gap:6px;align-items:flex-end}
.ligne .mt{font-weight:800;color:var(--nuit);font-size:18px}
.ligne .retirer{background:transparent;border:0;color:var(--rouge);font-size:13.5px;text-decoration:underline}
.totaux table{width:100%;border-collapse:collapse}
.totaux td{padding:6px 0}.totaux td:last-child{text-align:right}
.totaux tr.g td{font-size:20px;font-weight:800;color:var(--nuit);border-top:2px solid var(--ligne);padding-top:10px}
.fdem label{display:block;font-size:14.5px;margin:8px 0}
.fdem input:not([type=checkbox]){display:block;width:100%;padding:9px;border:1px solid #c9d6dd;border-radius:5px;font:inherit;margin-top:3px}
.fdem input::placeholder{color:var(--ph);font-style:italic}
.fdem .rgpd{font-size:13px;color:var(--gris);display:flex;gap:8px;align-items:flex-start}
/* formulaire de devis : un champ = libellé + saisie + message d'erreur (adresse ajoutée le 17/10) */
.fdem .champ{margin:10px 0}
.fdem .champ>label{margin:0 0 3px;font-weight:600}
.fdem input:not([type=checkbox]),.fdem select{font-size:16px;min-height:44px}
.fdem select{display:block;width:100%;padding:9px;border:1px solid #c9d6dd;border-radius:5px;font:inherit;font-size:16px;background:#fff;color:var(--texte)}
.fdem input:focus-visible,.fdem select:focus-visible{outline:3px solid var(--nuit);outline-offset:1px}
.fdem [aria-invalid=true]{border-color:var(--rouge);box-shadow:0 0 0 1px var(--rouge)}
.fdem .rgpd input[aria-invalid=true]{outline:2px solid var(--rouge);outline-offset:2px}
.ferr-champ{display:block;color:var(--rouge);font-size:13.5px;line-height:1.35;margin-top:3px}
.ferr-champ:empty{display:none}
.fadr{border:1px solid var(--ligne);border-radius:8px;padding:6px 14px 10px;margin:14px 0 10px;min-width:0}
.fadr legend{font-weight:700;font-size:15px;color:var(--nuit);padding:0 6px}
.fadr legend small{font-weight:400;color:var(--gris);font-size:13px}
.fadr-ville{display:grid;grid-template-columns:minmax(7rem,9rem) 1fr;gap:0 12px}
.fadr-ville .champ{margin-bottom:0}
.aide-cp{display:block;font-size:12.5px;color:var(--gris);margin:3px 0 0}
.aide-cp[hidden]{display:none}
@media (max-width:340px){.fadr-ville{grid-template-columns:1fr}}
.err{color:var(--rouge);font-size:14px;margin-top:6px}
.confirm{background:#fff;border:1px solid var(--ligne);border-radius:12px;padding:30px;max-width:760px;margin:20px auto 40px;text-align:center}
.confirm .ok{color:var(--ok);display:flex;justify-content:center}.confirm .ok .ic{width:56px;height:56px}
.delai{display:inline-flex;align-items:center;gap:8px;background:#e8f4f8;color:var(--nuit);border-radius:20px;padding:5px 14px;font-weight:700;margin:4px 0 8px;font-size:15px}
.delai .ic{width:18px;height:18px;color:var(--teal-txt)}
.confirm .ref-long{display:block;font-size:13px;color:var(--gris)}
/* bloc « vérifié par un humain » : photo ronde de Nicolas (/static/nicolas.jpg) si présente, sinon pictogramme sobre */
.humain{display:flex;gap:12px;align-items:center;text-align:left;background:var(--fond);border:1px solid var(--ligne);border-radius:10px;padding:10px 12px;margin:10px 0;color:var(--gris);font-size:14.5px}
.humain b{color:var(--nuit)}
.humain img,.humain .pic{width:52px;height:52px;border-radius:50%;object-fit:cover;flex:none}
.humain .pic{background:#fff;border:1px solid var(--ligne);display:flex;align-items:center;justify-content:center;color:var(--teal-txt)}
.humain .pic .ic{width:26px;height:26px}
.confirm .humain{max-width:520px;margin:14px auto}
.hero-ia .humain{margin:10px 0 0;padding:8px 10px;font-size:14px}.hero-ia .humain img,.hero-ia .humain .pic{width:44px;height:44px}
.confirm ol{text-align:left;max-width:520px;margin:16px auto}
/* pages d'information */
.texte{background:#fff;border:1px solid var(--ligne);border-radius:12px;padding:24px 30px;max-width:900px;margin-bottom:30px}
.texte h2{margin-top:20px;font-size:21px}
.brouillon{background:#fff4e5;border:2px dashed #e0a040;color:#7a4500;padding:10px 14px;border-radius:8px;font-weight:700;margin-bottom:14px}
/* pied de page */
footer{background:var(--nuit);color:#d7ebf3;font-size:14.5px;margin-top:30px}
footer .cols{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr 1fr;gap:24px;padding:30px 20px 18px}
footer h2,footer h4{color:#fff;margin:0 0 8px;font-size:16px}
footer a{color:#e8f6fb;display:block;padding:2px 0}
footer .bas{border-top:1px solid #2f6b80;padding:12px 20px 90px;font-size:13px;color:#a9cbd8}
footer img{height:56px;width:auto;margin-bottom:6px}
footer .cols>div:not(:first-child) a{display:flex;align-items:center;gap:6px}footer .ic{width:16px;height:16px}
/* chat */
#bulle{position:fixed;right:20px;bottom:20px;width:64px;height:64px;border-radius:50%;background:var(--bleu);color:var(--nuit);border:0;box-shadow:0 4px 16px rgba(0,0,0,.25);z-index:50;display:flex;align-items:center;justify-content:center}
#bulle .ic{width:30px;height:30px}
#bulle .pastille{position:absolute;top:-4px;right:-4px;background:var(--alerte);color:#fff;font-size:11px;border-radius:9px;padding:1px 6px;font-weight:700}
#chat{position:fixed;right:20px;bottom:96px;width:410px;height:min(660px,calc(100vh - 120px));background:#fff;border-radius:14px;box-shadow:0 10px 40px rgba(0,0,0,.28);display:none;flex-direction:column;z-index:70;overflow:hidden}
body.chat-ouvert #chat{display:flex}
#chat .tete{background:var(--teal-txt);color:#fff;padding:10px 14px;display:flex;align-items:center;gap:10px}
#chat .tete b{display:block;font-size:16px}#chat .tete span{font-size:12.5px}
#chat .tete .av{width:34px;height:34px;border-radius:50%;background:#fff;color:var(--teal-txt);display:flex;align-items:center;justify-content:center;flex:none}
#fermer{margin-left:auto;background:transparent;border:0;color:#fff;display:flex}
.ctx{font-size:13px;background:#fff8e6;border-bottom:1px solid #f0e0b0;padding:6px 12px;color:#5a4300;display:none;align-items:center;gap:6px}
.ctx.on{display:flex}.ctx .ic{width:16px;height:16px}
#fil{overflow-y:auto;padding:10px 12px;flex:1;background:#fbfdfe}
.m{padding:8px 11px;border-radius:12px;margin:6px 0;white-space:pre-wrap;font-size:14.5px;max-width:90%;line-height:1.38}
.m.client{background:#d9f0f9;margin-left:auto;border-bottom-right-radius:3px}.m.ia{background:#eef2f5;border-bottom-left-radius:3px}
.m.attente{color:#666;font-style:italic}
.props{display:flex;flex-direction:column;gap:8px;margin:6px 0 10px}
.prop{display:grid;grid-template-columns:64px 1fr;gap:10px;background:#fff;border:1px solid var(--ligne);border-radius:10px;padding:8px}
.prop.reco{border:2px solid var(--bleu)}
.prop img{width:64px;height:64px;object-fit:contain}
.prop b{font-size:14.5px;display:block}
.prop .pr{font-weight:800;color:var(--nuit)}
.prop .ac{display:flex;gap:6px;margin-top:4px;flex-wrap:wrap}
.prop .ac .btn{padding:5px 10px;font-size:13px}
.prop .pr small{font-weight:600;font-size:12px}
.prop .badge{font-size:11.5px;background:var(--bleu);border-radius:8px;padding:1px 7px;font-weight:700;margin-left:4px}
.suggest{display:flex;gap:6px;flex-wrap:wrap;padding:6px 12px 0}
.suggest button{background:#fff;border:1px solid #cfe7f0;border-radius:14px;font-size:13px;padding:4px 10px;color:var(--nuit)}
#saisie{display:flex;border-top:1px solid var(--ligne)}
#saisie textarea{flex:1;border:0;padding:10px;font:inherit;font-size:15px;resize:none;height:56px}
#saisie button{background:var(--teal-txt);color:#fff;border:0;padding:0 16px;font-weight:700}#saisie button[disabled]{opacity:.6;cursor:wait}
.toast{position:fixed;left:50%;transform:translateX(-50%);top:90px;background:#1f5266;color:#fff;padding:10px 18px;border-radius:24px;z-index:90;box-shadow:0 6px 20px rgba(0,0,0,.25);display:none}
.toast.on{display:block}
/* responsive */
@media (max-width:1100px){.grille.x4{grid-template-columns:repeat(3,minmax(0,1fr))}.atouts{grid-template-columns:repeat(2,1fr)}}
@media (max-width:900px){
 .hero .in{grid-template-columns:1fr}.hero-ia{display:none}
 .liste{grid-template-columns:1fr}
 .filtres{position:fixed;inset:0 0 0 auto;width:min(90vw,360px);z-index:85;max-height:none;border-radius:0;display:none;top:0}
 body.filtres-on .filtres{display:block}
 .btn-filtres{display:inline-flex}
 .fiche{grid-template-columns:1fr;padding:16px}.fiche .photo{min-height:240px}
 .panier{grid-template-columns:1fr}
 .preuve{grid-template-columns:1fr}
 footer .cols{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){
 .in{padding:0 12px}
 .topbar .in{gap:10px;font-size:13px;min-height:32px}.topbar .local{display:none}
 .bandeau-ia .long{display:none}.bandeau-ia .court{display:inline}.bandeau-ia{font-size:12.5px}.bandeau-ia .in{padding:4px 12px}.bandeau-ia .ic{width:15px;height:15px}
 .hd .in{flex-wrap:wrap;gap:8px 10px;min-height:0;padding-top:8px;padding-bottom:10px}
 .burger{display:block;order:1}
 .logo{order:2}.logo img{height:36px}
 .btn-ia{order:3;margin-left:auto;padding:8px 12px;font-size:14px}
 .lien-panier{order:4}.lien-panier .lbl{display:none}
 .search{order:5;flex:1 1 100%;max-width:none}
 .search input{padding:10px 12px}
 .nav .rayons-btn{display:none}
 h1{font-size:25px}
 .hero h1{font-size:30px}.hero p.acc{font-size:17px}.hero .in{padding-top:28px;padding-bottom:40px}
 .atouts{grid-template-columns:1fr 1fr;gap:10px}.atout{padding:12px}.atout b{font-size:15.5px}.atout span{font-size:13.5px}
 .etapes{grid-template-columns:1fr}
 .grille,.grille.x4{grid-template-columns:1fr 1fr;gap:10px}
 .pc{padding:9px}.pc-img{height:120px}.pc-t{font-size:14.5px}.pc-p{display:none}.px .pp{font-size:18px}
 .pc-a{flex-direction:row}.pc-a .btn{font-size:13.5px;padding:8px 6px;min-height:44px}
 .pc-a .ask{flex:0 0 44px;padding:0}.pc-a .ask .lbl{position:absolute;left:-9999px}
 .prep{font-size:12px}.prep .pc-long{display:none}.prep .pc-court{display:inline}
 .fiche .photo{min-height:0}.fiche .photo img{max-height:240px}
 .achat .btn{flex:1 1 100%}
 .tcmp th{width:110px;min-width:110px;font-size:13px}.tcmp td{font-size:13.5px}.tcmp img{width:100px;height:90px}
 .cmp{top:6px;right:6px;font-size:11.5px;padding:1px 6px}.cmp input{width:32px;height:32px;margin:-6.5px -6.5px -6.5px -5.5px}.fiche .cmp{vertical-align:-9.5px}
 .tuiles{grid-template-columns:1fr 1fr;gap:10px}.tuile img{height:90px}.tuile b{font-size:15px}
 .ligne{grid-template-columns:64px 1fr;}.ligne img{width:64px;height:64px}.ligne .droite{grid-column:1/-1;flex-direction:row;justify-content:space-between;align-items:center}
 .texte{padding:16px}
 footer .cols{grid-template-columns:1fr}
 #chat{right:0;bottom:0;width:100%;height:100%;border-radius:0}
 body.chat-ouvert #bulle{display:none}
 .barre-cmp{left:12px;transform:none;bottom:24px;font-size:13px;padding:6px 8px 6px 12px;gap:8px;white-space:nowrap;max-width:calc(100vw - 100px)}
 body.cmp-on main{padding-bottom:90px}.barre-cmp .btn{padding:6px 10px;font-size:13px}
 .fiche h1{font-size:23px}.boite-prix .pp{font-size:28px}
}

/* galerie photos (fiche produit) */
.vignettes{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;max-width:100%}
.vignettes .vig{width:68px;height:68px;padding:3px;border:1px solid var(--ligne);border-radius:8px;background:#fff;cursor:pointer}
.vignettes .vig img{width:100%;height:100%;object-fit:contain;max-height:none}
.vignettes .vig.on,.vignettes .vig:hover{border-color:#1B8AB3;box-shadow:0 0 0 2px #D3EEF7}
.carac h3{font-size:16px;margin:14px 0 6px}.carac table.attrs td:first-child{width:40%;font-weight:600}
/* bandeau IA : version longue à la première visite seulement (PC), version courte ensuite et sur mobile */
.bandeau-ia:not(.premiere) .long{display:none}.bandeau-ia:not(.premiere) .court{display:inline}
@media (max-width:640px){.topbar .rdv{display:none}.topbar .in{flex-wrap:nowrap}.mode button{padding:3px 8px}}
/* personnage 3D AssistIA (static/assistia3d.js) : le canvas n'existe que si WebGL fonctionne ; sinon l'icône reste */
#bulle canvas.assistia-3d{position:absolute;left:50%;bottom:0;width:84px;height:96px;transform:translateX(-50%);pointer-events:none;
 -webkit-mask:radial-gradient(circle 32px at 50% calc(100% - 32px),#000 97%,transparent 100%),linear-gradient(#000,#000) top/100% 76px no-repeat;
 mask:radial-gradient(circle 32px at 50% calc(100% - 32px),#000 97%,transparent 100%),linear-gradient(#000,#000) top/100% 76px no-repeat}
#bulle.a-3d .pastille{top:auto;bottom:-3px;right:-8px}
#bulle.a-3d{overflow:visible;background:radial-gradient(circle at 50% 38%,#e9f8fd 0,var(--bleu) 72%)}
#bulle.a-3d>.ic{display:none}
#bulle .pastille{z-index:2}
#bulle.a-3d:hover{box-shadow:0 6px 22px rgba(0,0,0,.3)}
/* 17/10 (perf) : affiche fixe du personnage (même cadrage que le canvas) tant que le module 3D n'est pas chargé — il ne l'est
   qu'à la première interaction ; assistia3d.js retire la classe a-affiche à sa première image */
#bulle.a-affiche:not(.a-3d){overflow:visible;background:radial-gradient(circle at 50% 38%,#e9f8fd 0,var(--bleu) 72%)}
#bulle.a-affiche:not(.a-3d)>.ic{display:none}
#bulle.a-affiche:not(.a-3d)::before{content:"";position:absolute;left:50%;bottom:0;width:84px;height:96px;transform:translateX(-50%);pointer-events:none;background:url(/static/assistia-affiche.webp) 0 0/84px 96px no-repeat}
#bulle.a-affiche:not(.a-3d) .pastille{top:auto;bottom:-3px;right:-8px}
#bulle.a-affiche:hover{box-shadow:0 6px 22px rgba(0,0,0,.3)}
.assistia-accroche{position:absolute;right:76px;bottom:16px;white-space:nowrap;background:#fff;color:var(--nuit);font-size:14px;font-weight:600;padding:7px 12px;border-radius:14px 14px 4px 14px;box-shadow:0 4px 16px rgba(31,82,102,.22);opacity:0;transform:translateX(8px);transition:opacity .35s,transform .35s;pointer-events:none}
.assistia-accroche.on{opacity:1;transform:none}
#chat .tete .nom-role{display:block;font-size:13.5px;font-weight:600;opacity:.95}
#chat .tete:has(.av.a-3d){padding:22px 14px 10px}
#chat .tete .av.a-3d{position:relative;width:76px;height:76px;margin:0 4px 0 0;background:radial-gradient(circle at 50% 38%,#fff 0,var(--clair) 75%);overflow:visible}
#chat .tete .av.a-3d>.ic{display:none}
#chat .tete .av canvas.assistia-3d{position:absolute;left:50%;bottom:0;width:100px;height:100px;transform:translateX(-50%);pointer-events:none;
 -webkit-mask:radial-gradient(circle 38px at 50% 62px,#000 97%,transparent 100%),linear-gradient(#000,#000) top/100% 80px no-repeat;
 mask:radial-gradient(circle 38px at 50% 62px,#000 97%,transparent 100%),linear-gradient(#000,#000) top/100% 80px no-repeat}
@media (prefers-reduced-motion:reduce){.assistia-accroche{transition:none}}
/* D28 : « Être rappelé » (chat, fiche produit, panier) — dialogue natif accessible (Échap, focus, voile) */
.chat-rappel{display:flex;justify-content:center;padding:6px 12px 2px}
.btn-rappel{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--teal);color:var(--nuit);border-radius:18px;font:inherit;font-size:13.5px;font-weight:700;padding:5px 14px;cursor:pointer;min-height:36px}
.btn-rappel:hover{background:var(--clair)}
.m .btn-rappel{margin-top:8px;white-space:normal}
.ask-rappel{background:linear-gradient(90deg,#eef8f1,#fff);border-color:#bfe0cb}
.ask-rappel>.ic{color:var(--ok)}
.rappel-panier{margin-top:16px}.rappel-panier p{margin:0 0 10px}
#dlg-rappel{border:0;border-radius:14px;padding:0;width:min(460px,calc(100vw - 20px));max-height:calc(100dvh - 20px);overflow:auto;box-shadow:0 12px 44px rgba(0,0,0,.32);color:var(--texte)}
#dlg-rappel::backdrop{background:rgba(10,32,42,.55)}
.frappel,.rap-ok{padding:16px 20px 20px}
.rap-tete{display:flex;align-items:center;justify-content:space-between;gap:10px}
.rap-tete h2{margin:0;font-size:21px;color:var(--nuit);display:flex;align-items:center;gap:8px}
.rap-tete h2 .ic{color:var(--ok)}
.rap-fermer{background:none;border:0;color:var(--gris);cursor:pointer;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;border-radius:8px}
.rap-fermer:hover{background:var(--fond)}
.frappel .sous{margin:4px 0 0}
.frappel>label:not(.rgpd){display:block;font-size:14.5px;font-weight:600;margin:12px 0 4px}
.frappel input:not([type=checkbox]),.frappel select,.frappel textarea{display:block;width:100%;padding:10px;border:1px solid #8fa5b0;border-radius:6px;font:inherit;font-size:16px;background:#fff;color:var(--texte)}
.frappel textarea{resize:vertical;min-height:64px}
.frappel input::placeholder,.frappel textarea::placeholder{color:var(--ph);font-style:italic}
.frappel .rgpd{display:flex;gap:10px;align-items:flex-start;font-size:13px;color:var(--gris);margin-top:14px;cursor:pointer}
.frappel .rgpd input{width:20px;height:20px;margin-top:1px;flex:none}
.oblig{font-size:12.5px;color:var(--gris);margin:6px 0 0}
.rap-ctx{font-size:13.5px;background:#fff8e6;border:1px solid #f0e0b0;color:#5a4300;border-radius:6px;padding:6px 10px;margin:10px 0 0}
.rap-ctx:empty{display:none}
.rap-piege{position:absolute!important;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
.frappel .btn.grand{width:100%;margin-top:14px}
.rap-ok .msg{font-size:17px;line-height:1.45;margin:14px 0 8px}
.rap-ok:focus{outline:none}
.btn-rappel:focus-visible,.rap-fermer:focus-visible,.frappel .btn:focus-visible,.rap-ok .btn:focus-visible,.ask-rappel:focus-visible,.rappel-panier .btn:focus-visible{outline:3px solid var(--nuit);outline-offset:2px}
.frappel input:focus-visible,.frappel select:focus-visible,.frappel textarea:focus-visible{outline:3px solid var(--bleu);outline-offset:1px;border-color:var(--teal-txt)}
@media (max-width:640px){#dlg-rappel{width:100vw;max-width:100vw;max-height:100dvh;height:100dvh;margin:0;border-radius:0}.frappel,.rap-ok{padding:12px 16px 20px}}

/* ---- vente complémentaire (E13, 17/10) : sobre, jamais insistant ; cibles tactiles >= 44 px ---- */
.cs{margin:14px 0 4px;border-top:1px solid var(--ligne);padding-top:12px}
.cs-t{font-size:17px;margin:0 0 8px;color:var(--nuit)}
.cs-l{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.cs-i{display:grid;grid-template-columns:56px 1fr auto;gap:10px;align-items:center;background:#fff;border:1px solid var(--ligne);border-radius:10px;padding:8px 10px}
.cs-img img{width:56px;height:56px;object-fit:contain;display:block}
.cs-x{min-width:0;display:flex;flex-direction:column;gap:2px}
.cs-n{font-weight:600;color:var(--texte);line-height:1.25;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.cs-r{font-size:13.5px;color:var(--gris);line-height:1.35}
.cs-neutre{color:var(--gris);font-weight:600}
.cs-badge{display:inline-flex;align-items:center;gap:3px;color:var(--ok);font-weight:600}.cs-badge .ic{width:14px;height:14px}
.cs-p{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.cs-px{font-weight:700;color:var(--nuit);white-space:nowrap}.cs-px small{font-weight:400;font-size:12px}
.cs-aj{min-height:44px;padding:6px 14px;font-size:14.5px}
.cs-aj.fait{color:var(--ok);border-color:var(--ok)}
.cs-sv{display:flex;gap:8px;align-items:flex-start;font-size:14px;color:var(--gris);margin:10px 0 0}.cs-sv .ic{color:var(--teal-txt);flex:none;margin-top:2px}
.cs-sv b{color:var(--texte);font-weight:600}
.cs-panier{border-top:0;margin-top:18px;padding-top:0}
.cs-svc{margin:16px 0 0;background:#fff;border:1px solid var(--ligne);border-radius:12px;padding:12px 14px 10px}
.cs-svc legend{font-weight:700;color:var(--nuit);padding:0 6px;font-size:16px}.cs-svc legend span{font-weight:400;color:var(--gris);font-size:14px}
.cs-sous{margin:0 0 6px;font-size:14px;color:var(--gris)}
.cs-c{display:grid;grid-template-columns:24px 1fr auto;gap:10px;align-items:center;padding:9px 2px;min-height:44px;border-top:1px solid #edf3f6;cursor:pointer}
.cs-c:first-of-type{border-top:0}
.cs-c input{width:20px;height:20px;margin:0;accent-color:var(--teal-txt)}
.cs-c input:focus-visible{outline:3px solid var(--bleu);outline-offset:2px}
.cs-cl{display:flex;flex-direction:column}.cs-cl b{font-weight:600}.cs-cl small{color:var(--gris);font-size:13.5px}
.cs-sd{font-size:13px;color:var(--teal-txt);border:1px solid #b9dceb;border-radius:12px;padding:2px 9px;white-space:nowrap}
.cs-etat{margin:6px 0 0;font-size:13.5px;color:var(--ok);min-height:1em}
.cs-recap{display:flex;gap:6px;align-items:flex-start;font-size:13.5px;color:var(--gris);margin:8px 0 0}.cs-recap .ic{flex:none;margin-top:1px;color:var(--teal-txt)}
.cs-chat{margin:6px 10px 10px;font-size:14px;color:var(--gris);line-height:1.4}
.btn-lien{background:none;border:0;padding:6px 0;color:var(--lien);text-decoration:underline;font:inherit;font-weight:600;min-height:32px;cursor:pointer}
.btn-lien:focus-visible{outline:3px solid var(--bleu);outline-offset:2px}
.cs-ok{color:var(--ok);font-weight:600;display:inline-flex;align-items:center;gap:3px}
@media (max-width:640px){
 .cs-i{grid-template-columns:48px 1fr;padding:8px}.cs-img img{width:48px;height:48px}
 .cs-p{grid-column:1/-1;flex-direction:row;justify-content:space-between;align-items:center}
 .cs-c{grid-template-columns:24px 1fr}.cs-sd{grid-column:2;justify-self:start}
}
.cs-st{margin:-4px 0 8px;font-size:13.5px;color:var(--gris)}
/* ---- vente complémentaire v2 (17/10) : jeux d'encre, groupes du panier, panneau « Ajouté au panier » ---- */
.cs-jeu{background:#fff;border:1px solid var(--ligne);border-radius:12px;padding:12px 14px;margin:0 0 10px}
.cs-jeu p{margin:0 0 4px}
.cs-jeu-t{font-size:16px;color:var(--nuit)}.cs-jeu-t b{font-weight:700}
.cs-jeu-n{font-size:13.5px;color:var(--gris);font-weight:400;margin-left:4px}
.cs-jeu-c{font-size:14px;color:var(--texte)}
.cs-jeu .cs-badge{font-size:13.5px}
.cs-jeu-deja{font-size:13.5px;color:var(--gris)}
.cs-manque{display:flex;gap:6px;align-items:flex-start;font-size:13.5px;color:var(--warn)}.cs-manque .ic{flex:none;width:16px;height:16px;margin-top:2px}
.cs-manque b{font-weight:600}
.cs-jeu-a{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:8px}
.cs-jeu-a .cs-px{display:flex;flex-direction:column;font-size:17px;line-height:1.15}
.cs-jeu-tot{font-weight:400;color:var(--gris);font-size:12.5px}
.cs-aj-jeu{min-height:44px;padding:8px 16px;font-size:15px}
.cs-aj-jeu.fait{background:var(--ok);border-color:var(--ok)}
.cs-vp{font-weight:600;font-size:14.5px;padding:10px 0}
.cs-jeu-d{margin-top:8px;border-top:1px solid #edf3f6;padding-top:6px}
.cs-jeu-d summary{cursor:pointer;color:var(--lien);font-weight:600;font-size:14px;min-height:36px;display:flex;align-items:center}
.cs-jeu-d summary:focus-visible{outline:3px solid var(--bleu);outline-offset:2px}
.cs-jeu-d ul{list-style:none;margin:4px 0 0;padding:0;display:grid;gap:8px}
.cs-jeu-d li{display:grid;grid-template-columns:40px 1fr auto;gap:8px;align-items:start}
.cs-jeu-d img{width:40px;height:40px;object-fit:contain}
.cs-jd-x{display:flex;flex-direction:column;min-width:0}.cs-jd-x a{font-weight:600;color:var(--texte);font-size:14px;line-height:1.25}
.cs-jd-x small{color:var(--gris);font-size:12.5px;line-height:1.35;overflow-wrap:anywhere}.cs-jd-x small b{color:var(--texte);font-weight:600}
.cs-jd-p{font-weight:600;font-size:14px;white-space:nowrap;color:var(--nuit)}
.cs-jeu-1{font-size:14px}.cs-jeu-1 small{color:var(--gris)}
.cs-g{margin:0 0 6px}
.cs-gt{font-size:15.5px;margin:12px 0 6px;color:var(--texte);font-weight:600}.cs-gt span{color:var(--nuit)}
.pa{position:fixed;top:84px;right:20px;width:min(460px,calc(100vw - 32px));max-height:calc(100vh - 104px);display:flex;flex-direction:column;
 background:var(--fond);border:1px solid var(--ligne);border-radius:14px;box-shadow:0 14px 44px rgba(31,82,102,.30);z-index:88;opacity:0;transform:translateY(-8px);transition:opacity .16s,transform .16s}
.pa.on{opacity:1;transform:none}
.pa-tete{display:flex;align-items:flex-start;gap:8px;padding:12px 12px 10px 16px;background:#fff;border-bottom:1px solid var(--ligne);border-radius:14px 14px 0 0}
.pa-ok{margin:0;flex:1;display:flex;gap:8px;align-items:flex-start;color:var(--ok);font-weight:600;font-size:15.5px;line-height:1.35}
.pa-ok span{color:var(--texte);font-weight:400}.pa-ok b{font-weight:600}.pa-ok .ic{flex:none;margin-top:1px}
.pa-ok:focus{outline:none}.pa-ok:focus-visible{outline:3px solid var(--bleu);outline-offset:2px}
.pa-x{background:none;border:0;width:44px;height:44px;margin:-8px -6px -6px 0;display:flex;align-items:center;justify-content:center;color:var(--gris);cursor:pointer;border-radius:8px}
.pa-x:hover{background:var(--fond)}.pa-x:focus-visible{outline:3px solid var(--bleu)}
.pa-corps{overflow:auto;padding:12px 16px 4px;overscroll-behavior:contain}
.pa-h{font-size:16px;margin:0 0 8px;color:var(--nuit)}
.pa-l{margin-bottom:10px}
.pa-svc{margin:6px 0 10px}
.pa-pied{display:flex;gap:10px;justify-content:flex-end;padding:10px 16px 14px;border-top:1px solid var(--ligne);background:#fff;border-radius:0 0 14px 14px}
.pa-pied .btn{min-height:44px}
@media (max-width:640px){
 .pa{top:auto;bottom:0;right:0;left:0;width:100%;max-height:82vh;border-radius:16px 16px 0 0;transform:translateY(16px)}
 .pa-tete{border-radius:16px 16px 0 0}.pa-pied{border-radius:0}
 .pa-pied .btn{flex:1;justify-content:center}
 .cs-jeu-a .cs-aj-jeu{width:100%}
 .cs-jeu-d li{grid-template-columns:36px 1fr}.cs-jd-p{grid-column:2}
}
@media (prefers-reduced-motion:reduce){.pa{transition:none}}
/* D29 étape 4 : réponses rapides de la bulle (proposition du mode Projet) — cibles ≥ 44 px */
.puces-chat{display:flex;gap:8px;flex-wrap:wrap;margin:2px 0 10px}
.puces-chat button{min-height:44px;border:1px solid #cfe7f0;border-radius:22px;background:#fff;color:var(--nuit);font:inherit;font-size:14px;padding:8px 16px;cursor:pointer}
.puces-chat button.forte{background:var(--nuit);border-color:var(--nuit);color:#fff;font-weight:600}
.puces-chat button:focus-visible{outline:3px solid #00a3e0;outline-offset:2px}

/* 17/10 : « Nouvelle conversation » et « Recevoir par e-mail » (en-tête du chat), confirmation non modale, dialogue d'envoi */
#chat .tete-actions{margin-left:auto;display:flex;align-items:center;gap:0;flex:none}
#chat .tete>div:not(.tete-actions){min-width:0}
#chat .tete-actions #fermer{margin-left:0}
.btn-tete-chat{background:transparent;border:0;color:#fff;min-width:36px;min-height:36px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;cursor:pointer;padding:0}
.btn-tete-chat:hover{background:rgba(255,255,255,.16)}
.btn-tete-chat:focus-visible,#fermer:focus-visible{outline:3px solid #fff;outline-offset:-2px}
.conf-nouvelle{background:#fff8e6;border-bottom:1px solid #f0e0b0;color:#3d3000;padding:10px 14px;font-size:14.5px}
.conf-nouvelle p{margin:0 0 8px}
.conf-nouvelle .conf-act{display:flex;gap:8px;flex-wrap:wrap}
.conf-nouvelle .btn{min-height:44px;padding:8px 14px;font-size:14.5px;cursor:pointer}
.conf-nouvelle .btn.sombre{background:var(--nuit);color:#fff;border-color:var(--nuit)}
.conf-nouvelle .btn:focus-visible{outline:3px solid var(--nuit);outline-offset:2px}
#dlg-envoi{border:0;border-radius:14px;padding:0;width:min(460px,calc(100vw - 20px));max-height:calc(100dvh - 20px);overflow:auto;box-shadow:0 12px 44px rgba(0,0,0,.32);color:var(--texte)}
#dlg-envoi::backdrop{background:rgba(10,32,42,.55)}
#dlg-envoi .err:empty{display:none}
#dlg-envoi .err{margin-top:10px}
@media (max-width:640px){#dlg-envoi{width:100vw;max-width:100vw;max-height:100dvh;height:100dvh;margin:0;border-radius:0}.btn-tete-chat,#chat #fermer{min-width:44px;min-height:44px}}
.conseil-rayon{display:flex;align-items:center;gap:6px;margin:-4px 0 12px;font-size:15px}.conseil-rayon .ic{width:16px;height:16px}.conseil-rayon a{font-weight:600;text-decoration:underline;text-underline-offset:3px}
