/* =========================================================
   DTM FACTORY — Design system
   White, mobile-first. Inter Tight. Editorial, no AI tells.
   ========================================================= */

:root{
  /* palette */
  --bg:#ffffff;
  --surface:#f6f5f2;
  --surface-2:#efede8;
  --ink:#141312;
  --muted:#5d5952;
  --line:#e7e4de;
  --accent:#ff5a3c;        /* signature print/coral */
  --accent-ink:#d83b1f;
  --accent-soft:#fff0ec;
  --ok:#1f7a4d;
  --warn:#b4690e;

  /* type */
  --sans:'Inter Tight',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  --serif:'Fraunces',Georgia,'Times New Roman',serif;

  /* spacing / radius */
  --r-sm:8px; --r:14px; --r-lg:22px; --r-pill:999px;
  --pad:20px;
  --maxw:1240px;

  --shadow-1:0 1px 2px rgba(20,19,18,.04), 0 4px 16px rgba(20,19,18,.06);
  --shadow-2:0 8px 40px rgba(20,19,18,.12);
  --ease:cubic-bezier(.2,.7,.2,1);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font-family:var(--sans);font-size:16px;line-height:1.5;
  font-weight:420;letter-spacing:-.011em;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{max-width:100%;display:block}
svg{width:1em;height:1em;flex:none}/* garde-fou : icônes sans taille CSS ne débordent jamais */
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer}
ul{margin:0;padding:0;list-style:none}
h1,h2,h3,h4{margin:0;font-weight:600;letter-spacing:-.03em;line-height:1.05}
p{margin:0}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}

.wrap{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 var(--pad)}
.eyebrow{
  font-size:12.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--accent-ink);
}
.lead{color:var(--muted);font-size:17px;line-height:1.55}
.hide{display:none!important}
.hide-sm{display:none}
@media (min-width:900px){.hide-sm{display:inline-flex}}
.serif{font-family:var(--serif);font-weight:430}
.muted{color:var(--muted)}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5em;
  border:1px solid transparent;border-radius:var(--r-pill);
  font-weight:560;font-size:15px;letter-spacing:-.01em;
  padding:14px 22px;line-height:1;transition:.18s var(--ease);
  white-space:nowrap;
}
.btn svg{width:18px;height:18px}
.btn-primary{background:var(--ink);color:#fff}
.btn-primary:hover{background:#000;transform:translateY(-1px)}
.btn-accent{background:var(--accent);color:#fff}
.btn-accent:hover{background:var(--accent-ink);transform:translateY(-1px)}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line)}
.btn-ghost:hover{border-color:var(--ink);background:var(--surface)}
.btn-block{width:100%}
.btn-lg{padding:17px 28px;font-size:16px}
.btn-sm{padding:10px 16px;font-size:14px}

.link-arrow{display:inline-flex;align-items:center;gap:.4em;font-weight:560;color:var(--ink);border-bottom:1.5px solid var(--accent);padding-bottom:2px}
.link-arrow:hover{color:var(--accent-ink)}

/* ---------- header ---------- */
.site-header{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.82);backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid var(--line)}
.header-bar{display:flex;align-items:center;gap:14px;height:62px}
.brand{display:flex;align-items:center;gap:10px;font-weight:680;letter-spacing:-.03em;font-size:18px;margin-right:auto}
.brand .logo-ph{width:34px;height:34px;border-radius:9px;background:#fff;overflow:hidden;display:grid;place-items:center;flex:none}
.brand .logo-ph img{width:100%;height:100%;object-fit:contain;display:block}
.brand .logo-ph span{color:var(--accent)}
.brand small{display:block;font-size:10px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-top:-2px}

.nav-desktop{display:none}
.header-actions{display:flex;align-items:center;gap:6px}
.icon-btn{width:42px;height:42px;display:grid;place-items:center;border-radius:var(--r-pill);background:transparent;border:none;color:var(--ink);position:relative}
.icon-btn:hover{background:var(--surface)}
.icon-btn svg{width:21px;height:21px}
.cart-badge{position:absolute;top:5px;right:5px;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:var(--accent);color:#fff;font-size:10.5px;font-weight:700;display:grid;place-items:center;line-height:1}

/* locale pill */
.locale-pill{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:var(--r-pill);padding:8px 12px;background:#fff;font-size:13.5px;font-weight:560}
.locale-pill .flag{font-size:15px;line-height:1}
.locale-pill:hover{border-color:var(--ink)}

/* mobile drawer */
.drawer-overlay{position:fixed;inset:0;background:rgba(20,19,18,.4);z-index:70;opacity:0;visibility:hidden;transition:.25s}
.drawer-overlay.open{opacity:1;visibility:visible}
.drawer{position:fixed;top:0;right:0;height:100%;width:min(86vw,380px);background:#fff;z-index:80;transform:translateX(100%);transition:.3s var(--ease);display:flex;flex-direction:column;padding:18px}
.drawer.open{transform:translateX(0)}
.drawer-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.drawer nav{margin-top:10px;display:flex;flex-direction:column}
.drawer nav a{padding:15px 6px;font-size:20px;font-weight:560;letter-spacing:-.02em;border-bottom:1px solid var(--line)}
.drawer nav a:hover{color:var(--accent-ink)}
.drawer-foot{margin-top:auto;padding-top:18px}

/* language sheet */
.lang-sheet-list{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.lang-opt{display:flex;align-items:center;gap:9px;padding:12px;border:1px solid var(--line);border-radius:var(--r);font-size:14px;font-weight:520;background:#fff;text-align:left}
.lang-opt .flag{font-size:18px}
.lang-opt small{display:block;color:var(--muted);font-size:11.5px;font-weight:500}
.lang-opt:hover{border-color:var(--ink)}
.lang-opt.active{border-color:var(--accent);background:var(--accent-soft)}

/* ---------- announcement strip (static, no pulse) ---------- */
.topstrip{background:var(--ink);color:#fff;font-size:13px;text-align:center;padding:8px 14px;font-weight:480;letter-spacing:-.01em}
.topstrip b{font-weight:640;color:#fff}
/* bandeau réassurance */
.reassure-bar{background:var(--surface);border-bottom:1px solid var(--line)}
.reassure-row{display:flex;align-items:center;justify-content:center;gap:26px;padding:9px var(--pad)}
.re-item{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:520;color:var(--ink);white-space:nowrap}
.re-item svg{width:16px;height:16px;color:var(--accent);flex:none}
@media (max-width:680px){
  .reassure-row{justify-content:flex-start;gap:18px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .reassure-row::-webkit-scrollbar{display:none}
  .re-item{font-size:12px}
}

/* ---------- hero ---------- */
.hero{padding:34px 0 18px}
.hero-grid{display:grid;gap:26px}
.hero h1{font-size:clamp(34px,9vw,50px);letter-spacing:-.04em;line-height:.98}
.hero h1 em{font-style:normal;color:var(--accent)}
.hero .lead{margin-top:16px;max-width:30ch}
.hero-cta{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.hero-trust{display:flex;flex-wrap:wrap;gap:18px;margin-top:24px;color:var(--muted);font-size:13.5px;font-weight:500}
.hero-trust span{display:inline-flex;align-items:center;gap:6px}
.hero-trust svg{width:16px;height:16px;color:var(--accent-ink)}
.hero-visual{position:relative;border-radius:var(--r-lg);overflow:hidden;background:var(--surface);aspect-ratio:4/3}
.hero-visual .ph-img{width:100%;height:100%}

/* placeholder image generic */
.ph-img{background:
   linear-gradient(135deg,#f0eee9,#e6e3dc);
  display:grid;place-items:center;color:#b6b1a8;position:relative;overflow:hidden}
.ph-img::after{content:attr(data-label);font-size:13px;font-weight:560;letter-spacing:.04em;color:#a8a297;text-transform:uppercase}
.ph-img.accent{background:linear-gradient(135deg,#fff0ec,#ffd9cf)}
.ph-img.ink{background:linear-gradient(135deg,#23211e,#141312)}
.home-img{width:100%;height:100%;object-fit:cover;display:block}
.ph-img.ink::after{color:#7d776d}

/* ---------- logos / marquee ---------- */
.section{padding:48px 0}
.section-tight{padding:34px 0}
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:22px}
.sec-head h2{font-size:clamp(25px,6vw,34px)}
.sec-head p{color:var(--muted);margin-top:8px;max-width:46ch}

.logo-row{display:flex;flex-wrap:wrap;gap:10px 26px;align-items:center;opacity:.8}
.logo-row .lg{font-weight:680;letter-spacing:-.02em;font-size:18px;color:#9a948b}

/* ---------- category cards ---------- */
.cat-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.cat-card{position:relative;border-radius:var(--r);overflow:hidden;background:var(--surface);aspect-ratio:3/4;display:block}
.cat-card .ph-img{height:100%}
.cat-card .cat-meta{position:absolute;left:12px;right:12px;bottom:12px;background:rgba(255,255,255,.94);border-radius:10px;padding:11px 13px;display:flex;align-items:center;justify-content:space-between;gap:8px}
.cat-card .cat-meta b{font-size:15px;letter-spacing:-.02em}
.cat-card .cat-meta small{color:var(--muted);font-size:12px;display:block;margin-top:1px}
.cat-card .cat-meta .arr{flex:none;width:30px;height:30px;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-items:center}
.cat-card:hover .cat-meta{background:#fff}
.cat-card:hover .arr{background:var(--accent)}

/* ---------- product cards ---------- */
.prod-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 12px}
.prod-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;transition:.2s var(--ease)}
.prod-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-1);border-color:#dcd8d1}
.prod-card .pc-media{aspect-ratio:1/1;background:var(--surface);position:relative}
.prod-card .pc-media .ph-img{height:100%}
.prod-card .pc-media .pc-img{width:100%;height:100%;object-fit:cover;display:block}
.prod-card .pc-tag{position:absolute;top:10px;left:10px;background:#fff;border-radius:var(--r-pill);font-size:11px;font-weight:640;letter-spacing:.02em;padding:5px 10px;color:var(--ink);box-shadow:var(--shadow-1)}
.prod-card .pc-body{padding:13px 13px 15px;display:flex;flex-direction:column;gap:3px;flex:1}
.prod-card .pc-cat{font-size:11.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.prod-card .pc-name{font-size:16px;font-weight:560;letter-spacing:-.02em}
.prod-card .pc-foot{margin-top:auto;display:flex;align-items:flex-end;justify-content:space-between;gap:8px;padding-top:11px}
.prod-card .pc-price{font-weight:640;font-size:16px}
.prod-card .pc-price small{display:block;font-size:11px;font-weight:500;color:var(--muted);letter-spacing:0}
.prod-card .pc-add{flex:none;width:38px;height:38px;border-radius:50%;background:var(--surface);border:1px solid var(--line);display:grid;place-items:center;color:var(--ink)}
.prod-card .pc-add:hover{background:var(--ink);color:#fff;border-color:var(--ink)}

/* ---------- value props ---------- */
.feat-grid{display:grid;gap:12px}
.feat{display:flex;gap:13px;padding:18px;border:1px solid var(--line);border-radius:var(--r);background:#fff}
.feat .ic{flex:none;width:42px;height:42px;border-radius:11px;background:var(--accent-soft);color:var(--accent-ink);display:grid;place-items:center}
.feat .ic svg{width:22px;height:22px}
.feat h4{font-size:16.5px;margin-bottom:4px}
.feat p{font-size:14px;color:var(--muted);line-height:1.5}

/* ---------- use cases ---------- */
.uc-grid{display:grid;gap:12px}
.uc{position:relative;border-radius:var(--r);overflow:hidden;aspect-ratio:16/10;color:#fff}
.uc .ph-img{height:100%}
.uc .uc-text{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:20px;background:linear-gradient(transparent 35%,rgba(20,19,18,.72))}
.uc .uc-text h4{font-size:21px;color:#fff}
.uc .uc-text p{font-size:13.5px;color:rgba(255,255,255,.85);margin-top:4px}

/* ---------- steps / how it works ---------- */
.steps{display:grid;gap:14px;counter-reset:s}
.step{display:flex;gap:14px;align-items:flex-start}
.step .num{flex:none;width:34px;height:34px;border-radius:50%;border:1.5px solid var(--ink);display:grid;place-items:center;font-weight:640;font-size:15px}
.step h4{font-size:17px;margin-bottom:3px}
.step p{font-size:14.5px;color:var(--muted)}

/* ---------- CTA band ---------- */
.cta-band{background:var(--ink);color:#fff;border-radius:var(--r-lg);padding:34px 24px;text-align:center}
.cta-band h2{font-size:clamp(26px,7vw,38px);letter-spacing:-.03em}
.cta-band p{color:rgba(255,255,255,.7);margin:12px auto 0;max-width:48ch}
.cta-band .hero-cta{justify-content:center}
.cta-band .btn-ghost{color:#fff;border-color:rgba(255,255,255,.3)}
.cta-band .btn-ghost:hover{background:rgba(255,255,255,.1);border-color:#fff}

/* ---------- quote bullet B2B ---------- */
.quote-cta{display:flex;flex-direction:column;gap:16px;background:var(--surface);border-radius:var(--r-lg);padding:24px}
.quote-cta ul{display:grid;gap:10px}
.quote-cta li{display:flex;gap:10px;font-size:14.5px;align-items:flex-start}
.quote-cta li svg{flex:none;width:19px;height:19px;color:var(--ok);margin-top:1px}

/* ---------- footer ---------- */
.site-footer{background:var(--ink);color:#cfcac2;margin-top:50px;padding:46px 0 28px}
.site-footer a{color:#cfcac2}
.site-footer a:hover{color:#fff}
.foot-grid{display:grid;gap:30px}
.foot-brand .brand{color:#fff}
.foot-brand .logo-ph{background:#fff;color:var(--ink)}
.foot-brand p{color:#928d85;font-size:13.5px;margin-top:14px;max-width:34ch}
.foot-mail{margin-top:10px!important}
.foot-mail a{color:#e7e3dc!important;font-size:14px;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.25);padding-bottom:1px}
.foot-mail a:hover{border-color:#fff}
.foot-col h5{color:#fff;font-size:13px;letter-spacing:.08em;text-transform:uppercase;margin-bottom:14px;font-weight:600}
.foot-col li{margin-bottom:11px;font-size:14px}
.foot-bottom{border-top:1px solid #2a2825;margin-top:34px;padding-top:20px;display:flex;flex-direction:column;gap:12px;font-size:12.5px;color:#857f77}
.foot-bottom svg{width:15px;height:15px;flex:none}
.pay-row{display:flex;gap:7px;flex-wrap:wrap;align-items:center}
.pay-row .pay{width:40px;height:26px;border-radius:5px;background:#fff;display:block;overflow:hidden;box-shadow:0 1px 2px rgba(0,0,0,.18)}
.pay-row .pay svg{width:100%;height:100%;display:block}

/* =========================================================
   SHOP / CATALOG
   ========================================================= */
.page-head{padding:30px 0 6px}
.page-head h1{font-size:clamp(30px,8vw,44px);letter-spacing:-.04em}
.page-head p{color:var(--muted);margin-top:10px;max-width:54ch}
.breadcrumb{font-size:13px;color:var(--muted);margin-bottom:14px;display:flex;gap:7px;align-items:center}
.breadcrumb a:hover{color:var(--ink)}

.filter-row{display:flex;gap:8px;overflow-x:auto;padding:14px 0 16px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.filter-row::-webkit-scrollbar{display:none}
.chip{flex:none;border:1px solid var(--line);background:#fff;border-radius:var(--r-pill);padding:9px 15px;font-size:14px;font-weight:520;color:var(--ink)}
.chip.active{background:var(--ink);color:#fff;border-color:var(--ink)}
.chip:hover{border-color:var(--ink)}
/* 2e ligne : sous-catégories (style secondaire, plus léger) */
.filter-subrow{padding:0 0 16px;margin-top:-6px}
.filter-subrow:empty{display:none}
.chip-sub{padding:7px 13px;font-size:13px;font-weight:500;border-radius:var(--r-pill);background:var(--paper,#f6f4f0);border-color:transparent;color:var(--muted,#6b6b6b)}
.chip-sub.active{background:var(--ink);color:#fff;border-color:var(--ink)}
.chip-sub:hover{border-color:var(--ink);color:var(--ink)}
.chip-sub.active:hover{color:#fff}

/* =========================================================
   PRODUCT DETAIL
   ========================================================= */
.pd-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:22px}
.pd-gallery{display:flex;flex-direction:column;gap:10px}
.pd-main{aspect-ratio:1/1;border-radius:var(--r-lg);overflow:hidden;background:var(--surface)}
.pd-main .ph-img{height:100%}
.pd-thumbs{display:flex;gap:8px}
.pd-thumbs .th{flex:1;aspect-ratio:1/1;border-radius:10px;overflow:hidden;background:var(--surface);border:2px solid transparent;cursor:pointer}
.pd-thumbs .th.active{border-color:var(--ink)}
.pd-info h1{font-size:clamp(26px,6.5vw,36px);letter-spacing:-.035em;margin-top:6px}
.pd-price{display:flex;align-items:baseline;gap:10px;margin:14px 0}
.pd-price .now{font-size:27px;font-weight:680;letter-spacing:-.02em}
.pd-price .unit{color:var(--muted);font-size:14px}
.pd-desc{color:var(--muted);font-size:15.5px;line-height:1.6;margin-bottom:8px}
/* badge marketing « impression devant incluse » : format marqueur visible, corail signature */
.pd-incl-badge{display:inline-flex;align-items:center;gap:7px;background:var(--accent);color:#fff;font-size:12.5px;font-weight:800;letter-spacing:.045em;text-transform:uppercase;line-height:1;padding:7px 13px;border-radius:9px;margin:8px 0 2px;box-shadow:0 3px 10px rgba(255,90,60,.28)}
.pd-incl-badge svg{width:15px;height:15px;flex:none;stroke-width:2.6}

.opt-block{margin:18px 0}
.opt-block label{display:block;font-size:13px;font-weight:600;letter-spacing:.02em;margin-bottom:9px}
.opt-block label .val{color:var(--muted);font-weight:500;margin-left:6px}
.swatches{display:flex;gap:8px;flex-wrap:wrap}
.swatch{width:34px;height:34px;border-radius:50%;border:2px solid var(--line);position:relative;cursor:pointer}
.swatch.active{border-color:var(--ink)}
.swatch.active::after{content:"";position:absolute;inset:-5px;border:1.5px solid var(--ink);border-radius:50%}
.size-row{display:flex;gap:8px;flex-wrap:wrap}
.size-btn{min-width:46px;padding:11px 12px;border:1px solid var(--line);border-radius:var(--r-sm);background:#fff;font-weight:560;font-size:14px;text-align:center}
.size-btn.active{background:var(--ink);color:#fff;border-color:var(--ink)}
.size-btn:hover{border-color:var(--ink)}

.qty-tier{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;margin:18px 0}
.qty-tier .qt-row{display:flex;justify-content:space-between;padding:11px 14px;font-size:13.5px;border-bottom:1px solid var(--line)}
.qty-tier .qt-row:last-child{border-bottom:none}
.qty-tier .qt-row.active{background:var(--accent-soft);font-weight:600}
.qty-tier .qt-row b{color:var(--accent-ink)}

.qty-stepper{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:var(--r-pill);overflow:hidden}
.qty-stepper button{width:44px;height:46px;background:#fff;border:none;font-size:20px;color:var(--ink)}
.qty-stepper button:hover{background:var(--surface)}
.qty-stepper input{width:54px;height:46px;border:none;text-align:center;font-size:16px;font-weight:600;font-family:inherit}
.pd-buy{display:flex;flex-direction:column;gap:9px;margin-top:18px}

.pd-accordion{margin-top:24px;border-top:1px solid var(--line)}
.acc-item{border-bottom:1px solid var(--line)}
.acc-head{display:flex;justify-content:space-between;align-items:center;width:100%;background:none;border:none;padding:16px 2px;font-size:15.5px;font-weight:560;text-align:left;color:var(--ink)}
.acc-head .pm{font-size:22px;color:var(--muted);transition:.2s}
.acc-item.open .pm{transform:rotate(45deg)}
.acc-body{max-height:0;overflow:hidden;transition:.25s var(--ease)}
.acc-body .inner{padding:0 2px 16px;color:var(--muted);font-size:14.5px;line-height:1.6}

/* =========================================================
   STUDIO DE PERSONNALISATION
   ========================================================= */
.pd-visual{display:flex;flex-direction:column;gap:10px}
.pv-main{aspect-ratio:3/4;border-radius:var(--r-lg);overflow:hidden;background:var(--surface);position:relative}
.pv-photo{width:100%;height:100%;object-fit:cover;display:block}
.pv-stage{width:100%;height:100%;position:relative;background:#f1efe9}
.pv-stage::before{content:"";position:absolute;inset:0;background:radial-gradient(120% 80% at 50% 16%,rgba(255,255,255,.5),transparent 62%)}
.pv-stage.on-dark{box-shadow:inset 0 0 0 1px rgba(255,255,255,.04)}
/* éditeur t-shirt : fond + zone d'impression + calques déplaçables */
.pv-tee{position:absolute;inset:0;width:100%;height:100%;filter:drop-shadow(0 8px 22px rgba(0,0,0,.10))}
.pv-base{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.pv-stage.has-photo{background:#eceae5}
.pv-stage.has-photo .pv-print{border-color:rgba(20,19,18,.28)}
/* tee sombre : la zone d'impression et son placeholder doivent passer en clair, sinon bordure+texte sombres = invisibles (marine/noir/rouge/forêt/bordeaux/royal/orange). on-dark calculé via isDark(sel.color). */
.pv-stage.on-dark .pv-print,.pv-stage.on-dark.has-photo .pv-print{border-color:rgba(255,255,255,.55)}
.pv-stage.on-dark .pv-empty{color:rgba(255,255,255,.85)}
.pv-stage.on-dark .pv-empty svg{opacity:.8}
.pv-prod{position:absolute;left:12%;top:10%;right:12%;bottom:10%;border-radius:14px;box-shadow:0 8px 22px rgba(0,0,0,.10)}
.pv-print{position:absolute;z-index:2;container-type:size;border:1.5px dashed rgba(20,19,18,.3);border-radius:6px;overflow:hidden}
.pv-print.empty{display:grid;place-items:center}
.pv-d{position:absolute;transform:translate(-50%,-50%);max-width:none;-webkit-user-select:none;user-select:none;touch-action:none;cursor:grab;filter:drop-shadow(0 2px 6px rgba(0,0,0,.2))}
.pv-t{position:absolute;transform:translate(-50%,-50%);touch-action:none;cursor:grab;text-align:center;line-height:1.05;white-space:nowrap;padding:2px 4px}
.pv-d:hover,.pv-t:hover{outline:1.5px dashed rgba(20,19,18,.4);outline-offset:3px}
.pv-d.dragging,.pv-t.dragging{cursor:grabbing;outline:1.5px solid var(--accent);outline-offset:3px}
.pv-coach{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);background:rgba(20,19,18,.82);color:#fff;font-size:11.5px;font-weight:500;padding:6px 13px;border-radius:20px;z-index:6;white-space:nowrap;pointer-events:none;box-shadow:0 2px 10px rgba(0,0,0,.22);transition:opacity .3s}
.pv-coach.gone{opacity:0}
.pz-pill{display:none;align-items:center;gap:3px;background:var(--accent);color:#fff;font-size:10.5px;font-weight:600;padding:4px 9px;border-radius:20px;white-space:nowrap;box-shadow:0 1px 6px rgba(0,0,0,.2);animation:pzpulse 1.8s ease-in-out infinite}
.pz-pill svg{width:12px;height:12px;flex:none}
.pv-empty .pz-pill{display:none}
.pv-print.empty{overflow:visible}
/* boutons d'ajout pendant l'upload des fichiers print (anti double-clic, marche aussi sur les <a>) */
.busy{opacity:.6;pointer-events:none;cursor:progress}
@keyframes pzpulse{0%,100%{transform:scale(1)}50%{transform:scale(1.07)}}
.crea-modal{position:fixed;inset:0;z-index:130;background:#fff;display:flex;flex-direction:column;transform:translateY(100%);transition:transform .3s var(--ease);pointer-events:none}
.crea-modal.show{transform:translateY(0);pointer-events:auto}
.cm-head{display:flex;align-items:center;justify-content:space-between;padding:18px var(--pad) 14px;border-bottom:.5px solid var(--line)}
.cm-head b{font-size:19px;font-weight:680;letter-spacing:-.02em;color:var(--ink)}
.cm-x{width:34px;height:34px;border-radius:50%;background:var(--surface);border:0;display:grid;place-items:center;color:var(--ink);cursor:pointer;padding:0}
.cm-x svg{width:18px;height:18px}
.cm-opts{padding:16px var(--pad) calc(20px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:11px;overflow-y:auto;max-width:520px;width:100%;margin:0 auto}
.cm-opt{display:flex;align-items:center;gap:14px;border:1px solid var(--line);border-radius:var(--r);padding:15px 14px;background:#fff;text-align:left;cursor:pointer;font-family:inherit;transition:.12s}
.cm-opt:active{transform:scale(.99);background:var(--surface)}
.cm-opt.reco{border:2px solid var(--accent)}
.cm-ic{width:46px;height:46px;border-radius:12px;background:var(--accent-soft);color:var(--accent-ink);display:grid;place-items:center;flex:none}
.cm-ic svg{width:24px;height:24px}
.cm-txt{flex:1;min-width:0}
.cm-txt b{display:block;font-size:16px;font-weight:600;color:var(--ink)}
.cm-txt small{display:block;font-size:13px;color:var(--muted);margin-top:2px}
.cm-go{color:var(--muted);flex:none;display:flex}
.cm-go svg{width:16px;height:16px}
.pz-label{font-size:11px;font-weight:500;letter-spacing:.03em;text-align:center;padding:0 6px;color:rgba(20,19,18,.5)}
.pv-stage.on-dark .pz-label{color:rgba(255,255,255,.72)}
body.st-s1 .pv-print.empty{border-color:rgba(20,19,18,.3);background:none}
body.st-s1 .pv-stage.on-dark .pv-print.empty{border-color:rgba(255,255,255,.5)}
body.st-s1 .pv-stage{cursor:default}
body.st-s2 .pz-label{display:none}
body.st-s2 .pv-empty .pz-pill{display:inline-flex}
body.st-s2 .pv-print.empty{border-color:var(--accent);background:rgba(255,90,60,.14)}
body.st-s2 .pv-stage{cursor:pointer}
.pv-guide{position:absolute;background:var(--accent);opacity:0;pointer-events:none;z-index:5;transition:opacity .1s}
.pv-guide-x{left:50%;top:0;bottom:0;width:1px;transform:translateX(-.5px)}
.pv-guide-y{top:50%;left:0;right:0;height:1px}
.pv-guide.on{opacity:.95}
.pv-frame{position:absolute;border:1.5px solid var(--accent);border-radius:3px;pointer-events:none;z-index:7;box-sizing:border-box}
.pv-frame.hide{display:none}
.pv-knob{position:absolute;width:18px;height:18px;border-radius:50%;background:#fff;border:2px solid var(--accent);box-shadow:0 1px 5px rgba(0,0,0,.28);pointer-events:auto;touch-action:none;cursor:nwse-resize}
.pv-knob.k-nw{left:-9px;top:-9px}.pv-knob.k-ne{right:-9px;top:-9px}.pv-knob.k-sw{left:-9px;bottom:-9px}.pv-knob.k-se{right:-9px;bottom:-9px}
/* mobile : contour permanent = objet manipulable (glisser pour déplacer, pincer à 2 doigts pour redimensionner) */
@media (max-width:899px){.pv-d,.pv-t{outline:none}}
/* tee sombre : contours de manipulation (survol + permanent mobile) en clair, même raison que la zone d'impression */
.pv-stage.on-dark .pv-d:hover,.pv-stage.on-dark .pv-t:hover{outline-color:rgba(255,255,255,.6)}
@media (max-width:899px){.pv-stage.on-dark .pv-d,.pv-stage.on-dark .pv-t{outline-color:rgba(255,255,255,.55)}}
.pv-logo{max-width:74%;max-height:64%;width:auto;height:auto;object-fit:contain;position:relative;z-index:1;filter:drop-shadow(0 6px 18px rgba(0,0,0,.12))}
.pv-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;color:var(--muted);font-size:11px;font-weight:500;z-index:1;text-align:center;padding:6px;height:100%;width:100%;overflow:hidden}
.pv-empty svg{width:24px;height:24px;opacity:.55}
.pv-empty span{max-width:100%;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
/* le label « Zone d'impression » ne doit jamais être tronqué : on retire le clamp/clip et on laisse la zone vide déborder du cadre étroit */
.pv-empty .pz-label{display:block;-webkit-line-clamp:unset;overflow:visible;text-overflow:clip;white-space:normal;max-width:none;line-height:1.2}
body.st-s1 .pv-empty,body.st-s2 .pv-empty{overflow:visible}
.pv-tag{position:absolute;left:12px;bottom:12px;background:rgba(255,255,255,.92);color:var(--ink);font-size:11.5px;font-weight:600;padding:5px 10px;border-radius:var(--r-pill);z-index:1}
.pv-loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--ink);text-align:center;padding:20px}
.pv-loading b{font-size:16px;letter-spacing:-.02em}.pv-loading small{color:var(--muted);font-size:13px}
.pv-thumbs{display:flex;gap:8px}
.pv-th{flex:1;max-width:84px;aspect-ratio:3/4;border-radius:10px;overflow:hidden;background:var(--surface);border:2px solid transparent;cursor:pointer;padding:0;position:relative}
.pv-th img{width:100%;height:100%;object-fit:cover;display:block}
.pv-th.active{border-color:var(--ink)}
.pv-th em{position:absolute;left:0;right:0;bottom:0;background:rgba(20,19,18,.6);color:#fff;font-size:9.5px;font-weight:600;font-style:normal;text-align:center;padding:2px;letter-spacing:.02em}
/* cartes "Emplacement de l'impression" (Avant/Dos/Manche + prix) — façon Mister Tee */
.pv-thumbs-lab{display:flex;align-items:center;gap:6px;margin:16px 0 9px;font-size:13.5px;font-weight:600;color:var(--ink)}
.pv-thumbs-lab svg{width:15px;height:15px;color:var(--accent)}
.pv-th-zone{max-width:none;width:auto;aspect-ratio:auto;flex:0 0 auto;background:#fff;border:1.5px solid var(--line);border-radius:13px;padding:6px 13px 6px 7px;display:flex;flex-direction:row;align-items:center;gap:9px;overflow:visible;position:relative}
.pv-th-zone img{width:34px;height:44px;border-radius:7px;object-fit:cover;flex:none}
.pv-th-meta{display:flex;flex-direction:column;align-items:flex-start;gap:1px}
.pv-th-zone em{position:static;background:none;color:var(--ink);font-size:13px;font-weight:600;padding:0;line-height:1.15;white-space:nowrap}
.pv-th-price{font-size:11px;font-weight:600;color:var(--muted);line-height:1.1;white-space:nowrap}
.pv-th-zone.active{border-color:var(--ink);border-width:1.5px}
.pv-th-zone.filled .pv-th-price{color:#0f7a4d}
.pv-th-zone.filled::after{content:"";position:absolute;top:6px;right:6px;width:14px;height:14px;border-radius:50%;background:#0f7a4d url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M5 12l4 4L19 7'/%3E%3C/svg%3E") center/9px no-repeat}
.pv-gender{display:flex;gap:6px;margin:10px 0 0}
.pv-gender.hide{display:none}
.pg-btn{flex:1;padding:7px 10px;border:1px solid var(--line);border-radius:9px;background:#fff;font:inherit;font-size:13px;font-weight:560;color:var(--muted);cursor:pointer}
.pg-btn.active{border-color:var(--ink);background:var(--surface);color:var(--ink)}
/* dock d'outils éditeur mobile (caché sur desktop) */
.studio-dock{display:none}
.editor-close{display:none}
.sheet-head{display:none}
.sheet-backdrop{position:fixed;inset:0;background:transparent;z-index:85;opacity:0;pointer-events:none;transition:opacity .25s}
body.sheet-open .sheet-backdrop{opacity:1;pointer-events:none}
.studio-tools,.sticky-buy{transition:transform .22s var(--ease)}
.studio-tools.editor-hidden,.sticky-buy.editor-hidden{transform:translateY(150%);pointer-events:none}
.acc-body .inner p{margin:0 0 .55rem}.acc-body .inner p:last-child{margin-bottom:0}
.acc-spec{font-weight:600}
.acc-care{font-size:.86rem;opacity:.72}
/* description : sections étiquetées (Composition / Usage / Entretien / Durabilité) */
.acc-sec{display:block;margin:0 0 14px}.acc-sec:last-child{margin-bottom:0}
.acc-sec>b{display:block;font-size:11px;font-weight:680;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);margin-bottom:3px}
.acc-sec>span{display:block;color:var(--ink);font-size:14px;line-height:1.55}
/* schéma livraison à dates dynamiques */
.ship-head{font-weight:600;color:var(--ink);margin:0 0 14px;font-size:14.5px}
.ship-flow{list-style:none;margin:0 0 12px;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:6px;position:relative}
.sf-step{display:flex;flex-direction:column;align-items:center;text-align:center;gap:3px;position:relative;padding-top:4px}
.sf-step::before{content:"";position:absolute;top:16px;left:-50%;width:100%;height:2px;background:var(--line);z-index:0}
.sf-step:first-child::before{display:none}
.sf-dot{position:relative;z-index:1;width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#fff;border:2px solid var(--line);color:var(--muted);font-size:12.5px;font-weight:680}
.sf-lab{font-size:12px;font-weight:620;color:var(--ink);margin-top:3px}
.sf-sub{font-size:10.5px;color:var(--muted);line-height:1.25}
.sf-date{font-size:11px;font-weight:600;color:var(--ink)}
.sf-hot .sf-dot{background:var(--accent);border-color:var(--accent);color:#fff}
.sf-hot .sf-date{color:var(--accent)}
.ship-note{font-size:12.5px;color:var(--muted);margin:0}
.co-eta{margin:6px 0 20px;padding-bottom:18px;border-bottom:1px solid var(--line)}
@media(max-width:520px){
  .ship-flow{grid-template-columns:1fr;gap:0}
  .sf-step{display:grid;grid-template-columns:26px 1fr;grid-template-areas:"dot lab" "dot sub" "dot date";column-gap:12px;row-gap:1px;text-align:left;padding:9px 0}
  .sf-dot{grid-area:dot;align-self:start}
  .sf-lab{grid-area:lab;margin-top:0}
  .sf-sub{grid-area:sub}
  .sf-date{grid-area:date}
  .sf-step::before{top:0;left:12px;width:2px;height:100%}
  .sf-step:first-child::before{display:block;top:13px}
}
/* ----- notation en t-shirts jaunes ----- */
.tee-rate{display:inline-flex;gap:2px;font-size:15px;line-height:1;vertical-align:middle}
.tee{position:relative;display:inline-block;width:1em;height:1em;color:#E4E0D8}
.tee.on{color:#F5B301}
.tee-svg{width:1em;height:1em;display:block;fill:currentColor}
.tee-fill{position:absolute;inset:0;overflow:hidden;color:#F5B301}
.tee-fill .tee-svg{width:1em}
/* notation en étoiles oranges (avis) */
.star-rate{display:inline-flex;gap:3px;align-items:center;line-height:1;vertical-align:middle}
.star-svg{display:block;fill:currentColor}
.rt-tile{position:relative;display:inline-block;border-radius:4px;background:#F5821F;flex:none}
.rt-tile .star-svg{position:absolute;inset:16%;width:68%;height:68%;fill:#fff}
.rt-tile.rt-e{background:#ded9d1;overflow:hidden}
.rt-pf{position:absolute;left:0;top:0;bottom:0;background:#F5821F}
/* prix + badge avis sur la même ligne */
.pv-priceline,.pd-priceline{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
/* badge avis (cliquable, ouvre le bloc d'avis) */
.pv-rate{display:inline-flex;align-items:center;gap:8px;text-decoration:none;color:inherit}
.pv-rate b{font-size:1rem;font-weight:700}
.pv-rate .rv-out{font-size:.78rem;color:#9a9288;margin-left:-4px}
.pv-rate>span:last-child{font-size:.82rem;color:#7a7268;text-decoration:underline;text-underline-offset:2px}
/* bandeau avis déroulant */
.reviews{margin:14px 0 4px;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff}
.rv-head{width:100%;display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:15px 16px;background:none;border:none;cursor:pointer;text-align:left}
.rv-hl{display:flex;align-items:center;gap:14px}
.rv-score{font-size:34px;font-weight:700;color:var(--ink);line-height:1}
.rv-hc{display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.rv-word{font-size:13px;color:#7a7268}
.rv-word b{color:var(--ink);font-weight:700}
.rv-hr{display:inline-flex;align-items:center;gap:10px;margin-left:auto}
.rv-trust{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;color:#0f7a4d;background:#e7f6ee;border-radius:20px;padding:5px 11px;font-weight:600}
.rv-trust svg{width:14px}
.rv-chev{color:#9a9288;transition:transform .25s var(--ease);flex:none}
.rv-chev svg{width:18px;display:block}
.reviews.open .rv-chev{transform:rotate(180deg)}
.rv-body{max-height:0;overflow:hidden;transition:max-height .3s var(--ease)}
.rv-list{padding:2px 16px 14px}
.rv-item{display:flex;gap:12px;padding:14px 0;border-top:1px solid #f0ede7}
.rv-av{width:38px;height:38px;border-radius:50%;background:#FAECE7;color:#993C1D;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;flex:none}
.rv-cl{flex:1;min-width:0}
.rv-top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.rv-name{font-weight:600;font-size:.92rem}
.rv-verified{display:inline-flex;align-items:center;gap:4px;font-size:.72rem;color:#0f7a4d;background:#e7f6ee;border-radius:20px;padding:2px 9px;font-weight:600}
.rv-verified svg{width:13px}
.rv-meta{display:flex;align-items:center;gap:9px;margin:6px 0 7px}
.rv-date{font-size:.78rem;color:#9a9288}
.rv-text{font-size:.88rem;line-height:1.55;color:#4a463f;margin:0}
.rv-out{font-size:.78rem;color:#9a9288;margin-left:-3px}
/* répartition des notes (façon Trustpilot/Hawkers) */
.rv-dist{padding:14px 15px 8px;border-top:1px solid #f0ede7;display:grid;gap:7px}
.rv-drow{display:grid;grid-template-columns:34px 1fr 38px;align-items:center;gap:9px}
.rv-dn{display:inline-flex;align-items:center;gap:2px;font-size:.8rem;font-weight:600;color:#4a463f}
.rv-dstar{display:inline-flex;width:13px;height:13px;color:#F5821F}
.rv-dstar .star-svg{width:13px;height:13px}
.rv-dbar{height:7px;border-radius:4px;background:#efece6;overflow:hidden}
.rv-dbar>i{display:block;height:100%;background:#F5821F;border-radius:4px}
.rv-dp{font-size:.76rem;color:#7a7268;text-align:right}
/* ----- tiroir panier ----- */
.cart-drawer{padding:0;width:min(92vw,420px)}
.cart-drawer .drawer-head{padding:16px 18px;border-bottom:1px solid var(--line);margin:0}
.cart-drawer .cd-body{flex:1;overflow-y:auto;padding:4px 18px}
.cart-drawer .cd-foot{padding:14px 18px 18px;border-top:1px solid var(--line);background:#fff}
.cd-line{display:flex;gap:12px;padding:13px 0;border-bottom:1px solid #f0ede7}
.cd-media{width:60px;height:76px;border-radius:8px;overflow:hidden;background:#f4f2ee;flex:none;display:flex;align-items:center;justify-content:center}
.cd-media img{width:100%;height:100%;object-fit:cover}
.cd-ph{opacity:.22;width:26px}
.cd-info{flex:1;min-width:0}
.cd-top{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}
.cd-name{font-weight:600;font-size:.93rem;line-height:1.25}
.cd-rm{flex:none;background:none;border:none;color:#b0a99e;cursor:pointer;padding:2px;width:24px}
.cd-rm svg{width:14px}
.cd-meta{font-size:.8rem;color:#7a7268;margin:3px 0 9px;display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.cd-sw{width:12px;height:12px;border-radius:50%;border:1px solid #d8d4cc;display:inline-block;flex:none}
.cd-szs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.cd-bottom{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.cd-qty{font-size:.78rem;color:#9a9288}
.cd-sz{display:inline-flex;align-items:center;gap:3px;background:#f4f2ee;border-radius:20px;padding:2px 4px}
.cd-sz u{font-size:.72rem;text-decoration:none;color:#7a7268;padding:0 2px 0 4px;font-weight:700}
.cd-sz button{width:21px;height:21px;border:none;background:#fff;border-radius:50%;cursor:pointer;font-size:14px;line-height:1;color:#1a2233}
.cd-sz i{min-width:15px;text-align:center;font-style:normal;font-size:.84rem;font-weight:600}
.cd-price{font-weight:700;white-space:nowrap;font-size:.95rem}
.cd-ship{margin:8px 0 10px}
.cd-ship-txt{display:flex;align-items:center;gap:6px;font-size:.84rem;font-weight:600;margin-bottom:6px;color:#1a2233}
.cd-ship-txt svg{width:15px;color:#1a9d5a;flex:none}
.cd-ship.done .cd-ship-txt{color:#1a9d5a}
.cd-bar{height:6px;border-radius:6px;background:#ece8e1;overflow:hidden}
.cd-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--accent,#e8623d),#f08a3c);transition:width .4s}
.cd-ship.done .cd-bar i{background:#1a9d5a}
.cd-pack{display:flex;align-items:center;gap:8px;background:#fbf3e8;border:1px solid #f0d9bd;border-radius:10px;padding:9px 11px;font-size:.83rem;color:#8a5a1e;margin-bottom:11px}
.cd-pack svg{width:16px;flex:none}
.cd-sum{display:flex;justify-content:space-between;align-items:center;font-size:1rem;margin:2px 0 12px}
.cd-sum b{font-size:1.2rem}
.cart-drawer .cd-co{display:inline-flex;align-items:center;justify-content:center;gap:8px;margin-bottom:8px}
.cart-drawer .cd-co svg{width:18px}
.cd-empty{text-align:center;padding:46px 18px;color:#7a7268}
.cd-empty svg{width:46px;opacity:.3;margin-bottom:10px}
.cd-empty p{margin-bottom:16px;font-size:1.05rem}
.pv-head{display:none}
.pv-dots{display:flex;gap:5px;align-items:center;flex-wrap:wrap}
.pv-dot{width:18px;height:18px;border-radius:50%;flex:none;padding:0;border:none;cursor:pointer}
.pv-dot.active{outline:2px solid var(--accent);outline-offset:2px}
.pv-dot-more{font-size:11px;color:var(--muted);font-weight:560;margin-left:2px}
/* flèches de navigation sur la photo (changer de vue) */
.pv-nav{position:absolute;top:50%;transform:translateY(-50%);width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.92);border:0.5px solid var(--line);display:grid;place-items:center;color:var(--ink);cursor:pointer;z-index:4;padding:0;box-shadow:0 1px 4px rgba(20,19,18,.12)}
.pv-nav:hover{background:#fff}
.pv-nav svg{width:18px;height:18px}
.pv-nav-l{left:9px}.pv-nav-r{right:9px}
/* ÉDITEUR MOBILE : header clair en haut, produit, outils en bas */
@media (max-width:899px){
  .pd-studio{position:relative}
  /* header produit (titre · prix · tailles+couleurs · pastilles) — remplace le bloc dupliqué de pd-info */
  .pv-head{display:block;padding:8px var(--pad) 8px}
  .pv-title{font-size:19px;font-weight:600;margin:0;line-height:1.15}
  .pv-price2{font-size:21px;font-weight:700;margin-top:3px;color:var(--ink)}
  .pv-price2 small{font-size:12.5px;font-weight:400;color:var(--muted)}
  .pv-sub{font-size:12.5px;color:var(--muted);margin-top:5px}
  /* color chart t-shirt remonté en tête — strip horizontal + flèches (défile si > la largeur) */
  .pv-colors-wrap{position:relative}
  .pd-studio .pv-colors{display:flex;gap:6px;overflow-x:auto;scroll-behavior:smooth;scrollbar-width:none;margin:9px 0 2px;padding:2px 0}
  .pv-colors::-webkit-scrollbar{display:none}
  .pv-colors .cp-opt{flex:0 0 46px;width:46px;padding:3px;border-width:1.5px}
  .pvc-arrow{display:none;position:absolute;top:calc(50% + 4px);transform:translateY(-50%);width:28px;height:28px;border-radius:50%;background:rgba(255,255,255,.96);border:.5px solid var(--line);align-items:center;justify-content:center;color:var(--ink);cursor:pointer;z-index:3;padding:0;box-shadow:0 1px 5px rgba(20,19,18,.14)}
  .pv-colors-wrap.scrollable .pvc-arrow{display:flex}
  .pvc-l{left:-3px}.pvc-r{right:-3px}
  .pvc-arrow.off{opacity:.3;pointer-events:none}
  .pvc-arrow svg{width:16px;height:16px}
  /* couleur retirée de l'étape 1 sur mobile (elle est en tête) ; on garde la collection */
  .pd-studio .pd-info .cp-head,.pd-studio .pd-info #pd-colors{display:none}
  .pd-studio .pd-info > .pc-cat,.pd-studio .pd-info > h1,.pd-studio .pd-info > .pd-priceline,.pd-studio .pd-info > .pd-incl-badge{display:none}
  /* bloc visuel collant : header + photo + genre + vignettes, compact */
  .pd-studio .pd-visual{padding:0 0 8px}
  /* photo à taille raisonnable (le t-shirt + la zone visibles), ratio 3:4 conservé pour la calibration */
  .pd-studio .pv-main{aspect-ratio:3/4;height:min(48vh,420px);max-height:420px;width:auto;align-self:center;margin:8px 0 0}
  .pd-studio .pv-thumbs{gap:8px;margin:9px var(--pad) 0;justify-content:flex-start;overflow-x:auto;scrollbar-width:none}
  .pd-studio .pv-thumbs::-webkit-scrollbar{display:none}
  .pd-studio .pv-thumbs-lab{margin:14px var(--pad) 0}
  .pd-studio .pv-th{max-width:56px}
  .pd-studio .pv-th-zone{max-width:none;width:auto}
  /* le dock remplace la nav du wizard + les portes ; les vignettes remplacent zone-row */
  .pd-studio .wz-steps,.pd-studio .wz-nav,.pd-studio .wz-next,.pd-studio .wz-back,.pd-studio .door-grid,.pd-studio .door-q,.pd-studio .zone-row,.pd-studio .step-lab.sub:has(+ .zone-row){display:none}
  .pd-studio .pd-info{padding-bottom:6px}
  /* réserve la place du chrome bas SUR le footer (sombre) plutôt qu'en bas du body (blanc) → pas de bande blanche */
  body:has(.studio-tools) .site-footer{padding-bottom:224px}
  .studio-dock{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;left:0;right:0;bottom:76px;z-index:56;background:#fff;border-top:1px solid var(--line);gap:3px;padding:6px 6px}
  /* chrome bas consolidé : [cartes emplacement][dock][CTA] empilés, un seul bloc fixe collé en bas */
  .studio-tools{position:fixed;left:0;right:0;bottom:0;z-index:56;background:#fff;box-shadow:0 -3px 16px rgba(0,0,0,.07)}
  .studio-tools .pv-thumbs-lab{display:none}
  /* 4 cartes emplacement FIXES sur une ligne (pas de scroll), compactes verticales pour tenir à l'écran ; minmax(0,1fr) sinon le min-content déborde */
  .studio-tools .pv-thumbs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin:6px var(--pad);overflow:visible}
  .studio-tools .pv-th-zone{flex:none;width:auto;max-width:none;flex-direction:column;align-items:center;gap:2px;padding:5px 2px 6px;border-radius:9px;min-width:0}
  .studio-tools .pv-th-zone img{width:24px;height:30px;border-radius:4px}
  .studio-tools .pv-th-meta{align-items:center;text-align:center;gap:0;min-width:0;max-width:100%}
  .studio-tools .pv-th-zone em{font-size:10px;white-space:nowrap}
  .studio-tools .pv-th-zone .pv-th-price{font-size:9px}
  .studio-tools .pv-th-zone.filled::after{top:3px;right:3px;width:12px;height:12px;background-size:8px}
  .studio-tools .studio-dock{position:static;left:auto;right:auto;bottom:auto;z-index:auto;border-top:1px solid var(--line)}
  .studio-tools .sticky-buy{position:static;left:auto;right:auto;bottom:auto;z-index:auto}
  /* mobile 3-étapes : Step 1 = dock config bas (qualité + barre couleurs + Personalizar) ; le chrome de création (dock outils + emplacements) est masqué et n'apparaît qu'en Step 2 */
  .studio-s1{display:none}
  body.st-s1 .studio-tools{display:none}
  body.st-s1 .studio-s1{display:flex;flex-direction:column;gap:11px;position:fixed;left:0;right:0;bottom:0;z-index:57;background:#fff;box-shadow:0 -4px 18px rgba(0,0,0,.09);padding:11px var(--pad) calc(13px + env(safe-area-inset-bottom));border-radius:18px 18px 0 0}
  body.st-s1 .studio-s1 .coll-block,body.st-s1 .studio-s1 .pv-colors-wrap{margin:0}
  body.st-s1 .studio-s1 .coll-block .cp-head{margin:0 0 6px}
  body.st-s1 .studio-s1{box-sizing:border-box;padding-left:12px;padding-right:12px}
  body.st-s1 .studio-s1>*{min-width:0;max-width:100%}
  body.st-s1 .studio-s1 .coll-block{min-width:0;width:100%;overflow:visible}
  body.st-s1 .studio-s1 .coll-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;width:100%;margin-top:9px}
  body.st-s1 .studio-s1 .coll-btn{min-width:0;padding:8px 4px}
  body.st-s1 .studio-s1 .coll-btn b{font-size:13px}
  body.st-s1 .studio-s1 .coll-btn .coll-desc{font-size:10px;line-height:1.25;margin:1px 0}
  body.st-s1 .studio-s1 .coll-btn small{font-size:11px}
  body.st-s1 .studio-s1 .coll-detail{display:none}
  body.st-s1 .studio-s1 .coll-block .sz-guide{display:none}
  body.st-s1 .studio-s1 .pv-colors-wrap{display:flex;align-items:center;gap:5px}
  body.st-s1 .studio-s1 .pv-colors{display:flex;gap:6px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;flex:1;min-width:0;margin:0;padding:2px 0}
  body.st-s1 .studio-s1 .pv-colors::-webkit-scrollbar{display:none}
  body.st-s1 .studio-s1 .cp-opt{flex:0 0 auto;width:46px;padding:0}
  body.st-s1 .studio-s1 .pvc-arrow{flex:0 0 auto}
  body.st-s1 .studio-s1 .s1-go{margin:0}
  /* étape tailles : on retire tout le chrome bas fixe (il chevauchait les sélecteurs de quantité) ; le CTA passe inline sous les quantités, + bouton retour pour revenir au design */
  body.sizes-step .studio-tools{display:none}
  body.sizes-step .pv-frame,body.sizes-step .pv-coach{display:none}   /* étape tailles : design figé → pas de cadre d'édition ni de coach */
  body.sizes-step .site-footer{padding-bottom:28px}
  body.sizes-step .wstep[data-step="3"] .wz-nav{display:flex}
  .dock-btn{min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:3px;border:none;background:transparent;color:var(--muted);font-family:inherit;font-size:10.5px;font-weight:540;padding:6px 1px;border-radius:11px;cursor:pointer}
  .dock-btn span{text-align:center;line-height:1.12;white-space:normal}
  .dock-btn svg{width:22px;height:22px;flex:none}
  .dock-btn.active{color:var(--accent-ink);background:var(--accent-soft)}
  .sticky-buy{z-index:55}
  /* === POP-UP DE DESIGN (bottom-sheet modal) — un outil à la fois, façon Mister Tee === */
  .wstep[data-step="2"]{display:block;position:fixed;left:0;right:0;bottom:0;z-index:90;background:#fff;border-radius:22px 22px 0 0;box-shadow:0 -12px 40px rgba(0,0,0,.24);max-height:48vh;overflow-y:auto;transform:translateY(106%);transition:transform .3s var(--ease);padding:0 var(--pad) calc(16px + env(safe-area-inset-bottom));margin:0}
  body.sheet-open .wstep[data-step="2"]{transform:translateY(0)}
  .wstep[data-step="2"]>.step-lab:not(.sub){display:none}
  /* tiroir = UN seul outil (le dock est le sélecteur de porte) : portes, zone-row interne et nav wizard retirées */
  .wstep[data-step="2"] .door-q,.wstep[data-step="2"] .door-grid,.wstep[data-step="2"] .zone-row,.wstep[data-step="2"] .step-lab.sub:has(+ .zone-row),.wstep[data-step="2"] .wz-nav{display:none}
  /* blocs des AUTRES outils masqués : texte visible seulement sur la porte « Texte », astuce et curseur verrouillé masqués */
  .wstep[data-step="2"] #txt-hint{display:none}
  .wstep[data-step="2"] #adjust-design.locked{display:none}
  body:not([data-edit-src="text"]) .wstep[data-step="2"] #txt-block{display:none}
  .sheet-head{display:flex;align-items:center;justify-content:space-between;gap:12px;position:sticky;top:0;background:#fff;padding:16px 0 13px;margin-bottom:14px;border-bottom:.5px solid var(--line);z-index:3}
  .sheet-head b{font-size:18px;font-weight:700;color:var(--ink)}
  .sheet-x{width:34px;height:34px;border-radius:50%;background:var(--surface);border:none;display:flex;align-items:center;justify-content:center;color:var(--ink);padding:0;flex:none;cursor:pointer}
  .sheet-x svg{width:18px;height:18px}
  .sheet-done{margin-top:16px}
  /* flèches sur la photo retirées : l'aller-retour se fait via les cartes Avant/Dos/Manche */
  .pd-studio .pv-nav{display:none}
}
.pv-th-stage{width:100%;height:100%;display:grid;place-items:center}
.pv-th-stage img{width:60%;height:60%;object-fit:contain}
.pv-th.skel{background:linear-gradient(100deg,var(--surface) 30%,#eceae4 50%,var(--surface) 70%);background-size:200% 100%;animation:sk 1.2s infinite;border:none;cursor:default}
@keyframes sk{0%{background-position:200% 0}100%{background-position:-200% 0}}

.spin{display:inline-block;width:15px;height:15px;border:2px solid rgba(20,19,18,.18);border-top-color:var(--ink);border-radius:50%;animation:spin .7s linear infinite;vertical-align:-2px}
.spin.big{width:30px;height:30px;border-width:3px}
@keyframes spin{to{transform:rotate(360deg)}}

.studio-step{margin:18px 0;padding-top:18px;border-top:1px solid var(--line)}
.step-lab{display:flex;align-items:center;gap:9px;font-size:15px;font-weight:600;letter-spacing:-.02em;margin-bottom:13px}
.step-n{width:23px;height:23px;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-items:center;font-size:12.5px;font-weight:680;flex:none}
.opt-tag{font-size:11px;font-weight:600;color:var(--muted);background:var(--surface);padding:2px 8px;border-radius:var(--r-pill);letter-spacing:.02em}

.dropzone{border:1.5px dashed var(--line);border-radius:var(--r);background:var(--surface);padding:22px 16px;text-align:center;cursor:pointer;transition:.15s}
.dropzone:hover,.dropzone.drag{border-color:var(--accent);background:var(--accent-soft)}
.dropzone.has-logo{cursor:default;background:#fff;border-style:solid}
.dz-idle{display:flex;flex-direction:column;align-items:center;gap:5px;color:var(--ink)}
.dz-idle svg{width:26px;height:26px;color:var(--accent-ink);margin-bottom:2px}
.dz-idle b{font-size:14.5px;font-weight:560}.dz-idle small{color:var(--muted);font-size:12.5px}
.dz-loading{color:var(--muted);font-size:14px}
.dz-done{display:flex;align-items:center;gap:12px;text-align:left}
.dz-done img{width:46px;height:46px;border-radius:9px;object-fit:contain;background:var(--surface);border:1px solid var(--line);flex:none}
.dz-done .dz-meta b{font-size:14px;display:block}.dz-done .dz-meta small{color:var(--muted);font-size:12px}
.dz-done #dz-remove{margin-left:auto;background:none;border:none;color:var(--accent-ink);font-weight:560;font-size:13.5px;text-decoration:underline;cursor:pointer;padding:0}
.dz-err{color:var(--accent-ink);font-size:13px;margin-top:8px}

.st-fields{display:flex;flex-direction:column;gap:10px}
.st-2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.st-in{border:1px solid var(--line);border-radius:var(--r-sm);padding:12px 13px;font-family:inherit;font-size:14.5px;background:#fff;color:var(--ink);width:100%}
.st-in:focus{border-color:var(--ink);outline:none}
textarea.st-in{resize:vertical;min-height:58px;line-height:1.4}

/* occasion chips */
.chips-row{display:flex;flex-wrap:wrap;gap:7px}
.chips-row .chip{padding:8px 13px;font-size:13.5px}
/* source toggle */
.src-toggle{display:flex;gap:5px;background:var(--surface);border-radius:var(--r-pill);padding:4px;margin-bottom:12px}
.src-btn{flex:1;border:none;background:transparent;border-radius:var(--r-pill);padding:9px;font-family:inherit;font-size:14px;font-weight:540;color:var(--muted);cursor:pointer;transition:.15s}
.src-btn.active{background:#fff;color:var(--ink);box-shadow:var(--shadow-1)}
/* entrée studio : 4 portes */
.door-q{font-size:15px;font-weight:600;margin:0 0 10px}
.door-grid{display:grid;grid-template-columns:1fr;gap:9px;margin-bottom:14px}
.door{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:11px 13px;border:1px solid var(--line);border-radius:var(--r);background:#fff;cursor:pointer;font-family:inherit;transition:.15s}
.door:hover{border-color:var(--ink)}
.door.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);background:var(--surface)}
.door-primary{border-color:var(--line)}
.door-grid:has(.door.active) .door-primary:not(.active) .door-ic{background:var(--surface);color:var(--ink)}
.door-ic{width:38px;height:38px;flex:none;display:grid;place-items:center;border-radius:10px;background:var(--surface);color:var(--ink)}
.door-primary .door-ic,.door.active .door-ic{background:var(--accent-soft);color:var(--accent-ink)}
.door-ic svg{width:20px;height:20px}
.door-txt b{display:flex;align-items:center;gap:7px;font-size:14.5px;font-weight:600;color:var(--ink)}
.door-txt small{display:block;font-size:12px;color:var(--muted);margin-top:1px}
.door-badge{font-style:normal;font-size:10px;font-weight:600;background:var(--accent-soft);color:var(--accent-ink);padding:2px 7px;border-radius:6px}
.tpl-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:8px}
.tpl-card{border:1px solid var(--line);border-radius:var(--r);background:#fff;cursor:pointer;padding:0;overflow:hidden;font-family:inherit;transition:.15s}
.tpl-card:hover{border-color:var(--ink)}
.tpl-card.active{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}
.tpl-card img{width:100%;aspect-ratio:1/1;object-fit:contain;background:#fff;display:block}
.tpl-card span{display:block;font-size:11.5px;font-weight:540;color:var(--ink);padding:5px 4px;text-align:center;border-top:1px solid var(--line)}
/* ===== bibliothèque de modèles paramétriques (recherche + carrousels par catégorie + voir tout) ===== */
.tpl-search{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:var(--r-pill);padding:9px 14px;margin:4px 0 14px;background:#fff}
.tpl-search svg{width:17px;height:17px;color:var(--muted);flex:none}
.tpl-search input{border:none;outline:none;flex:1;min-width:0;font:inherit;font-size:14.5px;background:transparent}
.tpl-cat{margin-bottom:16px}
.tpl-cat-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:8px}
.tpl-cat-head b{font-size:14.5px;font-weight:700;color:var(--ink)}
.tpl-seeall{background:none;border:none;color:var(--accent-ink);font-weight:600;font-size:12.5px;cursor:pointer;font-family:inherit;padding:0;white-space:nowrap}
.tpl-row{display:flex;gap:9px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
.tpl-row::-webkit-scrollbar{display:none}
.tpl-grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.tpl-card2{flex:0 0 auto;width:132px;height:92px;border:1px solid var(--line);border-radius:13px;background:linear-gradient(160deg,#fbfaf8,#efece6);cursor:pointer;display:grid;place-items:center;padding:8px 10px;overflow:hidden;font-family:inherit;transition:transform .12s,border-color .15s}
.tpl-grid2 .tpl-card2{width:auto;height:86px}
.tpl-card2:hover{border-color:var(--ink)}
.tpl-card2:active{transform:scale(.97)}
.tpl-prev{font-size:15px;line-height:1.08;text-align:center;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}
.tpl-prev2{width:100%;height:100%;object-fit:contain;display:block}
.tpl-back{background:none;border:none;color:var(--accent-ink);font-weight:600;font-size:13px;cursor:pointer;font-family:inherit;padding:0 0 10px;display:block}
.tpl-none{color:var(--muted);text-align:center;padding:24px 0;font-size:14px}
/* personnalisation d'un design : champs texte + color chart */
.de-fields{display:flex;flex-direction:column;gap:11px;margin:8px 0 16px}
.de-fld{display:flex;flex-direction:column;gap:4px}
.de-fld span{font-size:12px;font-weight:600;color:var(--muted)}
.de-in{width:100%}
.de-collab{font-size:13.5px;font-weight:700;color:var(--ink);margin:2px 0 9px}
.de-chart{display:grid;grid-template-columns:repeat(8,1fr);gap:8px}
.de-sw{aspect-ratio:1;border-radius:50%;border:1.5px solid var(--line);cursor:pointer;padding:0}
.de-sw.on{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--ink)}
.de-remove{display:block;width:100%;margin-top:18px;background:none;border:none;color:var(--accent-ink);font-weight:600;font-size:13.5px;text-decoration:underline;cursor:pointer;font-family:inherit;padding:6px}
/* ---- wizard 3 étapes ---- */
.wz-steps{display:flex;align-items:center;gap:6px;margin:16px 0 18px}
.wz-dot{flex:1;display:flex;flex-direction:column;align-items:center;gap:5px;background:transparent;border:none;cursor:pointer;color:var(--muted);position:relative;padding:0}
.wz-dot i{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:13px;font-weight:680;font-style:normal;background:var(--surface);color:var(--muted);border:1px solid var(--line);transition:.15s}
.wz-dot span{font-size:12px;font-weight:560;letter-spacing:-.01em}
.wz-dot::before{content:"";position:absolute;top:13px;left:-50%;width:100%;height:2px;background:var(--line);z-index:-1}
.wz-dot:first-child::before{display:none}
.wz-dot.active i{background:var(--ink);color:#fff;border-color:var(--ink)}
.wz-dot.active span{color:var(--ink)}
.wz-dot.done i{background:var(--accent);color:#fff;border-color:var(--accent)}
.wz-dot.done::before{background:var(--accent)}
.wstep{animation:wzin .25s var(--ease)}
.wstep.hide{display:none}
/* exclusivité des panneaux (desktop ET mobile) : selon la porte active on ne montre que son bloc (sinon tout s'empile sur desktop) */
.wstep[data-step="2"] #txt-hint{display:none}
.wstep[data-step="2"] #adjust-design.locked{display:none}
body:not([data-edit-src="text"]) .wstep[data-step="2"] #txt-block{display:none}
@keyframes wzin{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.wz-next,.wz-back{margin-top:18px}
.wz-nav{display:flex;gap:10px;margin-top:18px}
.wz-nav .wz-back{flex:none;margin-top:0}
.wz-nav .wz-next{flex:1;margin-top:0}
.step-lab.sub{font-size:13.5px;font-weight:560;margin-top:18px;color:var(--ink)}
.step-lab.sub small{font-weight:480;color:var(--muted);font-size:12px;margin-left:2px}
.step-n.sm{width:19px;height:19px;font-size:11px;background:var(--accent-soft);color:var(--accent-ink)}
.step-n.sm svg{width:11px;height:11px}
.st-mini{display:block;font-size:12.5px;font-weight:560;color:var(--muted);margin:12px 0 7px}
.chip.stl.active,.chip.pal.active{background:var(--ink);color:#fff;border-color:var(--ink)}
.txt-block{margin-top:6px;padding:0;border:none;background:none}
.txt-block .st-in{background:#fff}
.txt-style{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:end;margin-top:12px}
.ts-col label{margin-top:0}
select.st-in{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px;cursor:pointer}
.tc-row{display:flex;gap:7px}
.tc-sw{width:30px;height:30px;border-radius:50%;border:1px solid var(--line);cursor:pointer;padding:0;transition:.12s}
.tc-sw.active{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--ink)}
/* texte apposé après visuel + poignées taille/position */
.tb-hint{font-size:12.5px;color:var(--accent-ink);background:var(--accent-soft);border-radius:var(--r-sm);padding:10px 12px;margin-top:16px;display:flex;gap:7px;align-items:flex-start;line-height:1.4}
.tb-hint svg{width:15px;height:15px;flex:none;margin-top:1px}
.tb-hint.hide{display:none}
.st-hint{font-size:12px;color:var(--muted);margin:8px 0 0;display:flex;gap:6px;align-items:flex-start;line-height:1.4}
.st-hint svg{width:13px;height:13px;flex:none;margin-top:1px;color:var(--accent-ink)}
/* réassurance finale (étape 3) */
.trust-final{margin-top:18px;padding:16px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
.tf-row{display:flex;gap:9px;align-items:flex-start;font-size:13px;line-height:1.45;margin-bottom:10px;color:var(--ink)}
.tf-row svg{width:17px;height:17px;flex:none;margin-top:1px;color:var(--accent-ink)}
.tf-pay{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding-top:12px;border-top:1px solid var(--line)}
.tf-pay .pay{width:42px;height:27px;border:1px solid var(--line);border-radius:6px;background:#fff;display:grid;place-items:center;padding:3px}
.tf-pay .pay svg{width:100%;height:100%}
.adjust-block{margin-top:16px}
.adjust-block.locked,.txt-block.locked{opacity:.45;pointer-events:none;filter:grayscale(.4);user-select:none}
.adj-row{display:flex;align-items:center;gap:10px;margin-top:12px}
.adj-row label{font-size:12.5px;font-weight:560;color:var(--muted);min-width:42px}
.adj-row input[type=range]{flex:1;accent-color:var(--ink);height:4px}
.adj-move{display:flex;gap:5px}
.adj-btn{width:32px;height:32px;display:grid;place-items:center;border:1px solid var(--line);border-radius:var(--r-sm);background:#fff;color:var(--ink);cursor:pointer}
.adj-btn:hover{border-color:var(--ink);background:var(--surface)}
.adj-btn svg{width:15px;height:15px}
.adj-btn:disabled,.adj-row input:disabled{opacity:.5;cursor:default}
/* placement zones */
.zone-row{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.zone-btn{display:flex;flex-direction:column;align-items:center;gap:5px;padding:11px 4px;border:1px solid var(--line);border-radius:var(--r);background:#fff;cursor:pointer;font-size:11.5px;font-weight:520;color:var(--muted)}
.zone-btn svg{width:30px;height:28px;color:var(--muted)}
.zone-btn small{font-size:11px;color:var(--muted);font-weight:500}
.zone-btn{position:relative}
.zone-btn.active{border-color:var(--ink);color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.zone-btn.filled::before{content:"✓";position:absolute;top:5px;right:6px;width:15px;height:15px;background:var(--accent);color:#fff;border-radius:50%;font-size:9px;line-height:15px;text-align:center;font-weight:700}
.zone-btn.active svg{color:var(--ink)}
.zone-btn.active small{color:var(--accent-ink);font-weight:600}

/* color picker — visuels produit recolorés */
.cp-head{font-size:14px;font-weight:560;margin-bottom:10px;color:var(--ink)}
.cp-head b{font-weight:640}
.cp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(56px,1fr));gap:8px;margin-bottom:18px}
.cp-opt{border:2px solid transparent;border-radius:10px;background:var(--surface);padding:4px;cursor:pointer;aspect-ratio:1/1;display:grid;place-items:center}
.cp-opt svg.tee{width:100%;height:100%}
.cp-opt .col-card{width:74%;height:74%;border-radius:8px;display:block}
.cp-opt:hover{border-color:var(--line)}
.cp-opt.active{border-color:var(--ink)}
/* couleur non productible dans la collection choisie : grisée + barrée + non cliquable */
.cp-opt.cp-unavail{opacity:.34;cursor:not-allowed;position:relative;filter:grayscale(.55)}
.cp-opt.cp-unavail:hover{border-color:transparent}
.cp-opt.cp-unavail::after{content:"";position:absolute;left:14%;right:14%;top:50%;height:1.5px;background:var(--muted);transform:rotate(-45deg);transform-origin:center}

/* collection (qualité) */
.coll-block{margin-bottom:18px}
.coll-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.coll-btn{position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;padding:12px 6px;border:1px solid var(--line);border-radius:var(--r);background:#fff;cursor:pointer;font-family:inherit}
.coll-btn b{font-size:14.5px;font-weight:600;color:var(--ink)}
.coll-btn .coll-desc{font-size:11px;line-height:1.3;color:var(--muted);text-align:center;margin:1px 0 2px}
.coll-btn small{font-size:12px;color:var(--muted)}
.coll-badge{position:absolute;top:-8px;left:50%;transform:translateX(-50%);white-space:nowrap;background:var(--accent);color:#fff;font-size:10px;font-weight:600;padding:2px 8px;border-radius:20px;box-shadow:0 1px 4px rgba(0,0,0,.18)}
.coll-btn:hover{border-color:var(--ink)}
.coll-btn.active{border-color:var(--ink);background:var(--surface)}
.coll-btn.active small{color:var(--accent-ink);font-weight:600}
.coll-detail{display:flex;flex-direction:column;gap:3px;margin-top:10px;padding:11px 14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);border-left:3px solid var(--accent)}
.coll-detail .cm-spec{font-size:13px;font-weight:600;color:var(--ink)}
.coll-detail .cm-use{font-size:12.5px;color:var(--muted)}
.coll-cards{display:flex;flex-direction:column;gap:10px}
.coll-card{border:1px solid var(--line);border-radius:var(--r);padding:13px 15px}
.coll-card.active{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.cc-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:3px}
.cc-top b{font-size:15.5px}
.cc-top span{font-size:13px;font-weight:600;color:var(--accent-ink)}
.coll-card small{color:var(--muted);font-size:13px}

/* size matrix */
.sz-lab{display:flex;align-items:center;justify-content:space-between}
.sz-guide{display:inline-flex;align-items:center;gap:5px;background:none;border:none;color:var(--accent-ink);font-weight:560;font-size:13px;cursor:pointer;font-family:inherit;padding:0}
.sz-guide svg{width:15px;height:15px}
.size-matrix{display:grid;grid-template-columns:repeat(auto-fill,minmax(86px,1fr));gap:8px}
.size-cell{border:1px solid var(--line);border-radius:var(--r-sm);padding:8px 6px;text-align:center}
.size-cell .sz{display:block;font-weight:640;font-size:13.5px;margin-bottom:6px}
.mini-stepper{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:var(--r-pill);overflow:hidden;background:#fff}
.mini-stepper button{width:30px;height:30px;border:none;background:#fff;font-size:16px;color:var(--ink);cursor:pointer}
.mini-stepper button:hover{background:var(--surface)}
.mini-stepper input{width:32px;height:30px;border:none;text-align:center;font-size:14px;font-weight:600;font-family:inherit;background:#fff}
.mini-stepper.sm button{width:26px;height:26px;font-size:14px}
.mini-stepper.sm input{width:28px;height:26px;font-size:13px}

/* récap + incitation palier */
.order-recap{margin-top:14px}
.rec-empty{color:var(--muted);font-size:13.5px;text-align:center;padding:11px;background:var(--surface);border-radius:var(--r-sm)}
.rec-row{display:flex;justify-content:space-between;align-items:center;font-size:14.5px;padding:11px 0;border-top:1px solid var(--line)}
.rec-row b{font-size:18px;letter-spacing:-.02em}
.rec-inc{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:13px;color:var(--accent-ink);background:var(--accent-soft);border-radius:var(--r-sm);padding:10px 12px;margin-top:2px}
.rec-inc svg{width:16px;height:16px;flex:none}
.rec-inc-msg{display:flex;align-items:center;gap:6px;flex:1 1 auto;min-width:0}
.rec-inc-deal{display:flex;align-items:center;gap:8px;flex:0 0 auto;margin-left:auto}
.rec-inc.best{color:var(--ok);background:var(--ok-soft)}
.rec-print{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--muted);padding:8px 0}
.rec-print svg{width:15px;height:15px;flex:none}
.rec-print span{margin-left:auto;opacity:.7}
.rec-pct{font-weight:700;background:#fff;border-radius:var(--r-pill);padding:2px 9px;font-size:12px;white-space:nowrap}
.rec-save{white-space:nowrap}
/* mobile : message d'incitation et l'offre s'empilent proprement (plus de wrapping cassé) */
@media (max-width:560px){.rec-inc{flex-direction:column;align-items:flex-start}.rec-inc-deal{margin-left:0}}
.order-recap.shake{animation:shk .4s}
@keyframes shk{0%,100%{transform:translateX(0)}25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}

/* cart multi-tailles */
.cl-body{min-width:0}
.cl-sizes{display:flex;flex-wrap:wrap;gap:8px;margin-top:9px}
.cl-sz{display:flex;flex-direction:column;align-items:center;gap:3px}
.cl-szlab{font-size:11px;font-weight:640;color:var(--muted)}
.cl-qtytot{font-size:13px;color:var(--muted)}

/* modal (guide tailles) */
.modal-ov{position:fixed;inset:0;background:rgba(20,19,18,.45);z-index:100;display:grid;place-items:center;padding:18px;opacity:0;transition:.2s}
.modal-ov.open{opacity:1}
.modal{background:#fff;border-radius:var(--r-lg);max-width:460px;width:100%;max-height:88vh;overflow:auto;transform:translateY(8px);transition:.2s;box-shadow:var(--shadow-2)}
.modal-ov.open .modal{transform:none}
.modal-head{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fff}
.modal-head h3{font-size:19px}
.modal-x{background:none;border:none;font-size:26px;line-height:1;color:var(--muted);cursor:pointer}
.modal-body{padding:18px 20px}
.size-table{width:100%;border-collapse:collapse;font-size:14px}
.size-table th{text-align:left;font-size:11.5px;color:var(--muted);font-weight:600;padding:9px 8px;border-bottom:1px solid var(--line)}
.size-table td{padding:10px 8px;border-bottom:1px solid var(--line)}
.size-table tr:nth-child(even){background:var(--surface)}

#gen-btn{margin-top:6px}
#gen-btn svg{width:18px;height:18px}
#gen-btn[disabled]{opacity:.5;cursor:not-allowed}
.gen-note{font-size:12.5px;color:var(--muted);text-align:center;margin-top:9px;line-height:1.4}
.reassure{display:flex;flex-wrap:wrap;gap:14px;margin-top:18px;padding-top:16px;border-top:1px solid var(--line);color:var(--muted);font-size:13px;font-weight:500}
.reassure span{display:inline-flex;align-items:center;gap:6px}
.reassure svg{width:15px;height:15px;color:var(--ok)}

/* design tag dans panier / checkout */
.cl-custom,.mini-custom{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;color:var(--accent-ink);background:var(--accent-soft);padding:2px 8px;border-radius:var(--r-pill);margin-top:4px}
.cl-design{width:100%;margin-top:8px;display:flex;gap:8px;align-items:center}
.cl-design img{width:40px;height:52px;object-fit:cover;border-radius:7px;border:1px solid var(--line)}
.cl-design small{color:var(--muted);font-size:12px;line-height:1.4}

/* =========================================================
   CART
   ========================================================= */
.cart-layout{display:grid;gap:24px}
.cart-line{display:grid;grid-template-columns:84px 1fr;gap:13px;padding:16px 0;border-bottom:1px solid var(--line)}
.cart-line .cl-media{aspect-ratio:1/1;border-radius:11px;overflow:hidden;background:var(--surface)}
.cart-line .cl-name{font-weight:560;font-size:15.5px;letter-spacing:-.02em}
.cart-line .cl-opts{color:var(--muted);font-size:13px;margin-top:3px}
.cart-line .cl-foot{display:flex;align-items:center;justify-content:space-between;margin-top:10px;gap:10px}
.cart-line .cl-price{font-weight:640}
.cl-remove{background:none;border:none;color:var(--muted);font-size:13px;text-decoration:underline;padding:0}
.cl-remove:hover{color:var(--accent-ink)}

.summary{background:var(--surface);border-radius:var(--r-lg);padding:20px}
.summary h3{font-size:18px;margin-bottom:16px}
.sum-row{display:flex;justify-content:space-between;padding:8px 0;font-size:14.5px;color:var(--muted)}
.sum-row.total{border-top:1px solid var(--line);margin-top:8px;padding-top:14px;color:var(--ink);font-size:19px;font-weight:680}
.promo{display:flex;gap:8px;margin:14px 0}
.promo input{flex:1;border:1px solid var(--line);border-radius:var(--r-sm);padding:12px;font-family:inherit;font-size:14px;background:#fff}

.empty-state{text-align:center;padding:60px 20px}
.empty-state .ic{width:64px;height:64px;border-radius:50%;background:var(--surface);display:grid;place-items:center;margin:0 auto 18px;color:var(--muted)}
.empty-state .ic svg{width:26px;height:26px}
.empty-state h2{font-size:23px;margin-bottom:8px}
.empty-state p{color:var(--muted);margin-bottom:20px}

/* =========================================================
   CHECKOUT (Delfa-inspired, 2-col on desktop)
   ========================================================= */
.checkout-layout{display:grid;gap:0}
.co-main{padding:0 var(--pad) 30px}
.co-aside{background:var(--surface)}
.co-steps{display:flex;gap:6px;margin:6px 0 22px;font-size:12.5px;color:var(--muted);font-weight:560;letter-spacing:.02em;flex-wrap:wrap}
.co-steps span{display:inline-flex;align-items:center;gap:6px}
.co-steps span.active{color:var(--ink)}
.co-steps span.done{color:var(--ok)}
.co-steps .sep{color:var(--line)}

.co-section{margin-bottom:30px}
.co-section h3{font-size:18px;margin-bottom:4px;display:flex;align-items:center;gap:8px}
.co-section .n{width:25px;height:25px;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-items:center;font-size:13px;font-weight:640;flex:none}
.co-section .sub{color:var(--muted);font-size:13.5px;margin:0 0 16px 33px}
.co-fields{display:grid;gap:12px;margin-left:33px}
.field{display:flex;flex-direction:column;gap:6px}
.field label{font-size:13px;font-weight:560;color:var(--ink)}
.field input,.field select,.field textarea{
  border:1px solid var(--line);border-radius:var(--r-sm);padding:13px 14px;
  font-family:inherit;font-size:15px;background:#fff;color:var(--ink);width:100%;
}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--ink);outline:none}
.field.row-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.field.row-2 .field{margin:0}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:12px}

#payment-element{margin-top:2px}
.pay-loading{padding:18px;border:1px dashed var(--line);border-radius:var(--r);color:var(--muted);font-size:14px;text-align:center}
.pay-msg{padding:12px 14px;border-radius:var(--r-sm);background:#fdecea;color:#b4231a;font-size:13.5px;margin-top:10px;line-height:1.45}
.pay-msg.info{background:var(--surface);color:var(--muted)}
.pay-method{display:flex;flex-direction:column;gap:10px;margin-left:33px}
.pay-opt{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:var(--r);padding:15px;cursor:pointer;background:#fff}
.pay-opt.active{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.pay-opt .radio{width:20px;height:20px;border-radius:50%;border:2px solid var(--line);flex:none;display:grid;place-items:center}
.pay-opt.active .radio{border-color:var(--ink)}
.pay-opt.active .radio::after{content:"";width:10px;height:10px;border-radius:50%;background:var(--accent)}
.pay-opt .pm-name{font-weight:560;font-size:15px}
.pay-opt .pm-sub{color:var(--muted);font-size:12.5px}
.pay-opt .pm-logos{margin-left:auto;display:flex;gap:5px}
.pay-opt .pm-logos .pay{height:22px;padding:0 7px;background:var(--surface);border-radius:5px;font-size:10px;font-weight:700;display:grid;place-items:center;color:var(--muted)}

.co-summary{padding:24px var(--pad)}
.co-summary .mini-line{display:flex;gap:12px;padding:11px 0;border-bottom:1px solid var(--line)}
.co-summary .mini-line .mm{width:58px;height:58px;border-radius:9px;overflow:hidden;background:#fff;flex:none;position:relative}
.co-summary .mini-line .mq{position:absolute;top:4px;right:4px;min-width:22px;height:22px;padding:0 6px;border-radius:11px;background:var(--accent);color:#fff;font-size:12px;font-weight:800;letter-spacing:.01em;display:grid;place-items:center;border:1.5px solid #fff;box-shadow:0 1px 5px rgba(216,59,31,.4)}
.co-summary .mini-line .mn{font-size:14px;font-weight:560;letter-spacing:-.01em}
.co-summary .mini-line .mo{font-size:12px;color:var(--muted)}
.co-summary .mini-line .mp{margin-left:auto;font-weight:600;font-size:14px}
.trust-line{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12.5px;margin-top:16px}
.trust-line svg{width:15px;height:15px;color:var(--ok)}

/* toast */
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(20px);background:var(--ink);color:#fff;padding:13px 18px;border-radius:var(--r-pill);font-size:14px;font-weight:520;box-shadow:var(--shadow-2);z-index:120;opacity:0;visibility:hidden;transition:.25s var(--ease);display:flex;align-items:center;gap:9px;max-width:calc(100vw - 32px)}
.toast.show{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.toast svg{width:18px;height:18px;color:#7ee2a8;flex:none}
/* animation ajout au panier : vol du visuel vers l'icône panier + pulse */
.fly-cart{position:fixed;width:70px;height:70px;border-radius:14px;background:#fff center/cover no-repeat;z-index:200;pointer-events:none;box-shadow:0 10px 30px rgba(0,0,0,.22);opacity:.96;transition:transform .62s cubic-bezier(.45,-.2,.5,1.2),opacity .62s}
.cart-badge.pop{animation:cartpop .45s var(--ease)}
@keyframes cartpop{0%{transform:scale(1)}40%{transform:scale(1.7)}100%{transform:scale(1)}}
.cart-link.cart-bump{animation:cartbump .42s var(--ease)}
@keyframes cartbump{0%{transform:translateY(0)}30%{transform:translateY(-4px)}65%{transform:translateY(2px)}100%{transform:translateY(0)}}

/* sticky add-to-cart mobile */
.buy-locked{display:none!important}
.sticky-buy{position:fixed;left:0;right:0;bottom:0;z-index:55;background:#fff;border-top:1px solid var(--line);padding:7px var(--pad) calc(8px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:6px}
.sb-reassure{display:flex;gap:14px;justify-content:center;font-size:10.5px;color:var(--muted)}
.sb-reassure span{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
.sb-reassure svg{width:12px;height:12px;color:var(--accent)}
.sb-row{display:flex}
.sb-create{width:100%}
.sb-ready{display:flex;align-items:center;gap:12px;width:100%}
.sb-ready .sb-price{font-weight:680;font-size:18px;white-space:nowrap}
.sb-ready .sb-cta{flex:1}

/* =========================================================
   RESPONSIVE — tablet & desktop
   ========================================================= */
@media (min-width:600px){
  .cat-grid{grid-template-columns:repeat(4,1fr)}
  .prod-grid{grid-template-columns:repeat(3,1fr)}
  .feat-grid{grid-template-columns:1fr 1fr}
  .uc-grid{grid-template-columns:repeat(3,1fr)}
  .foot-grid{grid-template-columns:1.6fr 1fr 1fr 1fr}
  .lang-sheet-list{grid-template-columns:1fr 1fr 1fr}
}
@media (min-width:900px){
  :root{--pad:32px}
  .nav-desktop{display:flex;align-items:center;gap:4px;margin-left:8px}
  .nav-desktop a{padding:10px 14px;border-radius:var(--r-pill);font-size:15px;font-weight:480;color:var(--ink)}
  .nav-desktop a:hover{background:var(--surface)}
  .burger{display:none}
  .hero-grid{grid-template-columns:1.05fr .95fr;align-items:center;gap:40px}
  .hero{padding:56px 0 30px}
  .hero h1{font-size:clamp(46px,5.2vw,68px)}
  .hero .lead{font-size:18.5px}
  .section{padding:72px 0}
  .prod-grid{grid-template-columns:repeat(4,1fr)}
  .feat-grid{grid-template-columns:repeat(4,1fr)}
  .steps{grid-template-columns:repeat(4,1fr)}
  .pd-grid{grid-template-columns:1.05fr .95fr;gap:46px;align-items:start}
  /* desktop : vignettes emplacement contenues dans la colonne gauche (grille 2 col) — sinon elles débordent sur la colonne droite et recouvrent les portes */
  .pd-studio .pv-thumbs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;overflow:visible}
  .pd-studio .pv-thumbs-lab{margin-top:14px}
  .pd-gallery{position:sticky;top:84px}
  .cart-layout{grid-template-columns:1.6fr .9fr;align-items:start}
  .summary{position:sticky;top:84px}
  .checkout-layout{grid-template-columns:1.4fr 1fr;min-height:calc(100vh - 62px)}
  .co-main{padding:40px 4vw 60px;max-width:660px;margin-left:auto;width:100%}
  .co-aside{min-height:100%}
  .co-summary{position:sticky;top:0;padding:40px 4vw}
  .sticky-buy{display:none}
  .cta-band{padding:60px}
  .quote-cta{padding:34px}
}
@media (min-width:1100px){
  .cat-grid{gap:16px}
}

/* reduce motion */
/* ---- UX mobile : header compact + visuel studio moins haut ---- */
@media (max-width:760px){
  /* cap réservé aux vignettes galerie ; PAS aux cartes emplacement (sinon texte « Devant » coupé) */
  .pv-thumbs .pv-th:not(.pv-th-zone){max-width:70px}
}
@media (max-width:520px){
  .header-bar{gap:9px;height:58px}
  .brand{font-size:16px;gap:8px}
  .brand .logo-ph{width:32px;height:32px}
  .brand .bn{white-space:nowrap}
  .brand .bn small{display:none}
  .topstrip{font-size:11.5px;padding:7px 12px;line-height:1.35}
  .locale-pill{padding:8px 9px;gap:5px}
  .locale-pill .lp-cur{display:none}
  .icon-btn{width:38px;height:38px}
  .header-actions{gap:2px}
  .pd-info h1{font-size:clamp(22px,7vw,28px)}
  .studio-step{margin:14px 0;padding-top:14px}
  .reassure{gap:10px}
}
@media (prefers-reduced-motion:reduce){
  *{transition:none!important;scroll-behavior:auto!important}
}
/* pages légales / info */
.legal{padding:40px 0 72px}
.legal-wrap{max-width:760px;margin:0 auto;padding:0 var(--pad)}
.legal-back{display:inline-block;margin-bottom:22px;color:var(--muted);font-size:14px;text-decoration:none}
.legal-back:hover{color:var(--ink)}
.legal-wrap h1{font-size:clamp(28px,5vw,38px);line-height:1.1;margin:0 0 6px}
.legal-maj{color:var(--muted);font-size:13px;margin:0 0 30px}
.legal-wrap h2{font-size:19px;margin:30px 0 8px}
.legal-wrap p,.legal-wrap li{line-height:1.65;color:#3a3833}
.legal-wrap ul{padding-left:20px;margin:8px 0}
.legal-wrap li{margin:5px 0}
.legal-wrap a{color:var(--accent-ink);text-decoration:underline}
/* formulaire de contact */
.cform{max-width:580px;margin:18px 0 0;display:flex;flex-direction:column;gap:14px}
.cform-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.cform label{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:560;color:var(--ink)}
.cform input,.cform textarea{font:inherit;padding:11px 13px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);width:100%}
.cform input:focus,.cform textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.cform textarea{resize:vertical;min-height:120px}
.cform .btn{align-self:flex-start}
.cform-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}
.cform-msg{font-size:14px;margin:2px 0 0}
.cform-msg.ok{color:#1f7a4d;font-weight:560}
.cform-msg.err{color:#b4231a}
@media (max-width:560px){.cform-row{grid-template-columns:1fr}}
/* audit : champs 1 colonne + cibles tactiles ≥ 44px sur petits écrans */
@media (max-width:600px){
  .st-2{grid-template-columns:1fr}
  .field.row-2,.field.f2,.f2{grid-template-columns:1fr}
  .mini-stepper.sm button{width:34px;height:34px;font-size:16px}
  .mini-stepper.sm input{width:30px;height:34px}
  /* checkout : pleine largeur (bloc paiement Stripe + champs pas rétrécis) */
  .co-fields{margin-left:0}
  .co-summary{padding:18px var(--pad)}
  .co-summary .mini-line .mn{word-break:break-word}
  .co-steps{font-size:11.5px}
  #payment-element{width:100%}
}
.rec-save{color:var(--accent-ink);font-weight:560}
/* ===== Studio Poster encadré (route /<loc>/poster-encadre-personnalise) ===== */
.po-wrap{display:grid;grid-template-columns:1fr;gap:22px}
@media(min-width:780px){.po-wrap{grid-template-columns:1.05fr .95fr;align-items:start}}
.po-stagewrap{position:relative}
@media(min-width:780px){.po-stagewrap{position:sticky;top:84px}}
.po-stage{display:flex;align-items:center;justify-content:center;min-height:340px;background:var(--surface,#f7f5f2);border-radius:14px;padding:26px;cursor:pointer}
.po-stage.po-drag{outline:2px dashed var(--accent);outline-offset:-7px}
.po-frame{background:#fff;box-sizing:content-box;transition:width .15s,height .15s,border-color .15s}
.po-mat{height:100%;box-sizing:border-box;background:#fff}
.po-photo{width:100%;height:100%;background-size:cover;background-position:center;background-color:#eceff2}
.po-photo.po-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;color:#8a97a4;font-size:11.5px;text-align:center;padding:6px;line-height:1.3}
.po-ic::before{content:"\2191";font-size:20px;line-height:1;display:block}
.po-uploadbtn{display:block;width:100%;margin-top:12px;padding:12px;border:1.5px dashed var(--line,#ddd);border-radius:10px;background:#fff;font-family:inherit;font-size:14px;color:var(--ink);cursor:pointer}
.po-uploadbtn.po-shake{animation:poshake .42s}
@keyframes poshake{0%,100%{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}
.po-title{font-size:22px;font-weight:680;letter-spacing:-.02em;margin:0 0 6px;color:var(--ink)}
.po-price{font-size:26px;font-weight:680;color:var(--ink);margin-bottom:18px}
.po-grp{margin-bottom:18px}
.po-lab{font-size:12.5px;font-weight:600;color:var(--muted);margin-bottom:7px}
.po-seg{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.po-seg button{padding:10px;border:1px solid var(--line);border-radius:10px;background:#fff;font-family:inherit;font-size:14px;cursor:pointer;color:var(--muted)}
.po-seg button.on{border-color:var(--accent);color:var(--ink);font-weight:600}
.po-select{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;font-family:inherit;font-size:14px;color:var(--ink)}
.po-frames{display:flex;gap:10px}
.po-sw{width:48px;height:48px;border-radius:11px;border:2px solid transparent;background:none;cursor:pointer;padding:3px}
.po-sw span{display:block;width:100%;height:100%;border-radius:7px;border:1px solid rgba(0,0,0,.14)}
.po-sw.on{border-color:var(--accent)}
.po-add{width:100%;padding:15px;border:0;border-radius:12px;background:var(--accent);color:#fff;font-family:inherit;font-size:16px;font-weight:600;cursor:pointer;margin-top:4px}
.po-add:active{transform:scale(.99)}
.po-trust{font-size:12px;color:var(--muted);margin-top:12px;text-align:center}
.po-info{max-width:760px;margin:38px auto 0}
.po-section{margin-top:26px;padding-top:26px;border-top:1px solid var(--line,#e7e2d8)}
.po-section:first-child{border-top:0;padding-top:0;margin-top:0}
.po-rate{display:flex;align-items:center;gap:9px;margin-bottom:16px}
.po-rate b{font-size:18px;color:var(--ink)}
.po-rate small{color:var(--muted);font-size:13px}
.po-info .rv-list{display:grid;gap:14px}

/* ===== Studio Carte de visite (dédié) ===== */
.cs-wrap{align-items:start}
.cs-stage{background:linear-gradient(160deg,#f2efe9,#e7e3dc);border:1px solid var(--line);border-radius:16px;padding:26px;display:flex;align-items:center;justify-content:center;position:relative}
.cs-stage canvas{width:100%;max-width:520px;height:auto;display:block;border-radius:10px}
.cs-matchip{position:absolute;top:14px;left:14px;display:inline-flex;align-items:center;gap:5px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:5px 11px;font-size:12.5px;font-weight:600;color:var(--ink);box-shadow:0 2px 8px rgba(0,0,0,.06)}
.cs-matchip svg{width:14px;height:14px;color:#0b8457}
.cs-hint{color:var(--muted);font-size:13px;text-align:center;margin:10px 0 0}
.cs-ed{margin:18px 0 6px;display:flex;flex-direction:column;gap:16px}
.cs-sec{display:flex;flex-direction:column;gap:8px}
.cs-lab{font-size:12.5px;font-weight:640;text-transform:uppercase;letter-spacing:.03em;color:var(--muted)}
.cs-tpls{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.cs-tpl{padding:9px 6px;border:1.5px solid var(--line);background:#fff;border-radius:10px;font-size:13px;font-weight:560;cursor:pointer;color:var(--ink);transition:.15s}
.cs-tpl:hover{border-color:var(--ink)}
.cs-tpl.on{border-color:var(--ink);background:var(--ink);color:#fff}
.cs-fields{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.cs-in{width:100%;padding:11px 12px;border:1.5px solid var(--line);border-radius:10px;font-size:14.5px;font-family:inherit;color:var(--ink);background:#fff}
.cs-in:focus{border-color:var(--accent);outline:none}
.cs-row2{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:12px;align-items:start}
.cs-row2>div{display:flex;flex-direction:column;gap:7px}
.cs-sws{display:flex;gap:6px;flex-wrap:wrap}
.cs-swt{width:26px;height:26px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1.5px var(--line);cursor:pointer;padding:0}
.cs-swt.on{box-shadow:0 0 0 2px var(--ink);transform:scale(1.08)}
.cs-buy{margin:20px 0 4px;padding:18px;border:1px solid var(--line);border-radius:14px;background:var(--surface,#faf8f5)}
.cs-qty{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}
.cs-qunit{color:var(--muted);font-size:13.5px;align-self:center;margin-left:4px}
.cs-tiers{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px}
.qt-row.on{border-color:var(--ink);background:#fff;box-shadow:inset 0 0 0 1px var(--ink)}
.cs-tiers .qt-row{display:flex;flex-direction:column;align-items:center;gap:2px;padding:9px 4px;border:1.5px solid var(--line);border-radius:10px;cursor:pointer;font-size:13px}
.cs-tiers .qt-row span{color:var(--muted);font-size:12px}
.cs-add{margin-top:2px;font-size:16px;padding:15px}
.cs-desc{margin-top:22px}
@media(max-width:860px){.cs-fields{grid-template-columns:1fr}.cs-row2{grid-template-columns:1fr}.cs-tpls{grid-template-columns:repeat(2,1fr)}}

/* Studio carte — logo */
.cs-logo{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.cs-logo-btn{display:inline-flex;align-items:center;gap:7px;padding:11px 16px;border:1.5px dashed var(--line);border-radius:10px;background:#fff;font-size:14px;font-weight:560;color:var(--ink);cursor:pointer;transition:.15s}
.cs-logo-btn:hover{border-color:var(--ink);background:var(--surface,#faf8f5)}
.cs-logo-btn svg{width:16px;height:16px}
.cs-logo-rm{background:none;border:none;color:var(--accent-ink);font-size:13.5px;font-weight:560;cursor:pointer;text-decoration:underline;padding:4px}
.cs-logo-hint{color:var(--muted);font-size:12.5px;margin:7px 0 0}

/* Studio carte — recto/verso, QR, repères */
.cs-sidetabs{display:inline-flex;gap:4px;background:#efece7;border-radius:10px;padding:4px;margin-bottom:12px}
.cs-side{padding:8px 20px;border:none;background:transparent;border-radius:7px;font-size:14px;font-weight:600;color:var(--muted);cursor:pointer;transition:.15s}
.cs-side.on{background:#fff;color:var(--ink);box-shadow:0 1px 4px rgba(0,0,0,.08)}
.cs-guide{display:inline-flex;align-items:center;gap:8px;margin-top:12px;font-size:13.5px;color:var(--muted);cursor:pointer;user-select:none}
.cs-guide input{width:16px;height:16px;accent-color:var(--accent)}
.cs-extras{gap:10px}
.cs-check{display:flex;align-items:center;gap:8px;font-size:14.5px;color:var(--ink);cursor:pointer;user-select:none}
.cs-check input{width:18px;height:18px;accent-color:var(--accent)}
.cs-check span{color:var(--muted);font-size:13px;font-weight:400}

/* Studio carte — palettes couleur designées */
.cs-pal{display:flex;flex-wrap:wrap;gap:8px}
.cs-pal-chip{width:56px;height:34px;border-radius:9px;overflow:hidden;display:flex;padding:0;border:2px solid #fff;box-shadow:0 0 0 1.5px var(--line);cursor:pointer;transition:.12s}
.cs-pal-chip:hover{transform:translateY(-1px)}
.cs-pal-chip.on{box-shadow:0 0 0 2.5px var(--ink)}
.cs-pal-chip .pc-ink{flex:1}
.cs-pal-chip .pc-acc{width:17px}
.cs-fontrow{max-width:280px}

/* Studio carte — vignettes de modèle visuelles */
.cs-tpls{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.cs-tplthumb{padding:0;border:2px solid var(--line);background:#fff;border-radius:11px;overflow:hidden;cursor:pointer;display:flex;flex-direction:column;transition:.12s}
.cs-tplthumb canvas{width:100%;height:auto;display:block;background:#efece7}
.cs-tplthumb span{font-size:12px;font-weight:560;color:var(--ink);padding:6px 4px;text-align:center;border-top:1px solid var(--line)}
.cs-tplthumb:hover{border-color:var(--ink);transform:translateY(-1px)}
.cs-tplthumb.on{border-color:var(--ink);box-shadow:0 0 0 1.5px var(--ink)}
@media(max-width:520px){.cs-tpls{grid-template-columns:repeat(2,1fr)}}
.cs-optprice{color:var(--accent-ink);font-weight:600;font-size:13px}

/* Sélecteur méthode (impression/broderie) */
.mth-sel{display:inline-flex;gap:8px;flex-wrap:wrap}
.mth-opt{padding:10px 18px;border:1.5px solid var(--line);background:#fff;border-radius:10px;font-size:14px;font-weight:560;color:var(--ink);cursor:pointer;transition:.15s}
.mth-opt:hover{border-color:var(--ink)}
.mth-opt.active{border-color:var(--ink);background:var(--ink);color:#fff}

/* Carte produit — méta (couleurs · tailles · zones) façon Gelato */
.pc-meta{display:flex;flex-direction:column;gap:7px;margin:8px 0 4px}
.pc-colors{display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.pc-dot{width:15px;height:15px;border-radius:50%;display:inline-block;border:1px solid rgba(0,0,0,.08)}
.pc-more{font-size:12px;color:var(--muted);font-weight:560;margin-left:2px}
.pc-specs{display:flex;flex-wrap:wrap;gap:5px 12px}
.pc-spec{display:inline-flex;align-items:center;gap:4px;font-size:12.5px;color:var(--muted)}
.pc-spec b{color:var(--ink);font-weight:600}
.pc-spec svg{width:13px;height:13px;opacity:.7}

/* Mini-mockups zones d'impression sur la carte produit */
.pc-zones{margin-top:3px}
.pc-zlab{font-size:10.5px;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);font-weight:640;display:block;margin-bottom:5px}
.pc-zrow{display:flex;gap:9px;flex-wrap:wrap}
.zmk{display:flex;flex-direction:column;align-items:center;gap:2px}
.zmk-svg{width:32px;height:32px;display:block}
.zmk em{font-size:10px;color:var(--muted);font-style:normal;white-space:nowrap}
.zmk-cap{width:44px;height:auto}

/* ===== Page avis internes (type Trustpilot, nos couleurs) ===== */
.rvpage{padding:34px 0 64px}
.rvp-hero{display:grid;grid-template-columns:1fr 340px;gap:30px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:34px 32px;margin-bottom:26px}
.rvp-hl h1{font-size:clamp(26px,4.4vw,40px);line-height:1.06;margin:12px 0 10px;letter-spacing:-.02em}
.rvp-badge{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;color:#0f7a4d;background:#e7f6ee;border-radius:20px;padding:5px 12px}
.rvp-badge svg{width:14px}
.rvp-sub{color:var(--muted);font-size:16px;line-height:1.5;max-width:46ch;margin:0}
.rvp-score{background:var(--bg);border:1px solid var(--line);border-radius:var(--r);padding:20px 22px;box-shadow:var(--shadow-1)}
.rvp-big{font-size:52px;font-weight:700;line-height:1;color:var(--ink);letter-spacing:-.02em}
.rvp-big small{font-size:22px;color:#9a9288;font-weight:600;margin-left:3px}
.rvp-stars{margin:10px 0 4px;color:#F5821F}
.rvp-word{font-weight:700;color:var(--ink);font-size:15px}
.rvp-based{color:var(--muted);font-size:13px;margin-top:2px}
.rvp-dist{margin-top:14px;padding-top:14px;border-top:1px solid var(--line);display:grid;gap:7px}
.rvp-filters{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:20px}
.rvp-chip{font:inherit;font-size:13.5px;font-weight:520;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:var(--r-pill);padding:8px 15px;cursor:pointer;transition:.18s var(--ease)}
.rvp-chip:hover{border-color:#c9c4bb}
.rvp-chip.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.rvp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.rvp-card{border:1px solid var(--line);border-radius:var(--r);padding:18px 18px 16px;background:var(--bg);display:flex;flex-direction:column;gap:9px}
.rvp-chead{display:flex;align-items:center;gap:11px}
.rvp-who{display:flex;flex-direction:column;gap:3px;min-width:0}
.rvp-cmeta{display:flex;align-items:center;gap:9px;color:#F5821F}
.rvp-card .rv-text{margin:0;flex:1}
.rvp-prod{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:560;color:var(--accent-ink);text-decoration:none;background:var(--accent-soft);border-radius:20px;padding:5px 11px;align-self:flex-start;max-width:100%}
.rvp-prod svg{width:13px;flex:none}
.rvp-prod span,.rvp-prod{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rvp-prod:hover{text-decoration:underline;text-underline-offset:2px}
.rvp-more-wrap{text-align:center;margin-top:28px}
.rvp-empty{grid-column:1/-1;text-align:center;color:var(--muted);padding:40px 0}
@media(max-width:900px){.rvp-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:720px){.rvp-hero{grid-template-columns:1fr;padding:26px 20px}.rvp-grid{grid-template-columns:1fr}}

/* ===== Footer : bandeau avis global cliquable ===== */
.foot-reviews{display:flex;align-items:center;gap:12px;margin:24px 0 4px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--r);text-decoration:none;color:var(--ink);transition:.18s var(--ease);width:fit-content;max-width:100%}
.foot-reviews:hover{border-color:#c9c4bb;background:var(--surface)}
.foot-stars{display:inline-flex;gap:2px;color:#F5821F}
.foot-stars .fs{width:16px;height:16px;color:#d8d3ca}
.foot-stars .fs.on{color:#F5821F}
.foot-stars svg{width:16px;height:16px;display:block}
.foot-rv-txt{font-size:14px;font-weight:560}
.foot-rv-arrow{margin-left:auto;color:#9a9288;display:inline-flex}
.foot-rv-arrow svg{width:18px;display:block}

/* rappel prix dégressif à côté du prix unitaire (fiche produit) */
.pd-volhint{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:560;color:var(--accent-ink);background:var(--accent-soft);border:1px solid #ffd9cf;border-radius:var(--r-pill);padding:4px 10px;white-space:nowrap;line-height:1}
.pd-volhint svg{width:13px;flex:none}
.pd-priceline{flex-wrap:wrap;gap:10px 12px}

/* ============ NAV UPGRADE (méga-menu, recherche, note, CTA, mini-panier) ============ */
.hdr-search-btn,.hdr-rating,.hdr-cta{display:none}
@media(min-width:1000px){
  .hdr-search-btn{display:inline-flex}
  .hdr-rating{display:inline-flex;align-items:center;gap:5px;padding:6px 10px;border-radius:var(--r-pill);font-size:13px;font-weight:560;color:var(--ink);white-space:nowrap}
  .hdr-rating:hover{background:var(--surface)}
  .hdr-rating .hr-star{color:#f5a623;font-size:14px}
  .hdr-rating .hr-n{color:var(--muted,#6b6b6b);font-weight:460}
  .hdr-cta{display:inline-flex;padding:9px 16px;font-size:14px;white-space:nowrap}
}
/* méga-menu Shop */
.nav-mega-wrap{position:static;display:inline-flex}
.nav-mega-trig{display:inline-flex;align-items:center;gap:3px}
.nav-mega-trig svg{width:15px;height:15px;transition:transform .2s}
.nav-mega{position:absolute;left:0;right:0;top:100%;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 22px 44px -26px rgba(0,0,0,.28);opacity:0;visibility:hidden;transform:translateY(-6px);transition:.18s;z-index:55}
.nav-mega-wrap:hover .nav-mega,.nav-mega:hover{opacity:1;visibility:visible;transform:none}
.nav-mega-wrap:hover .nav-mega-trig svg{transform:rotate(180deg)}
.mega-inner{display:flex;gap:30px;align-items:center;padding:24px var(--pad) 28px}
.mega-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:22px;flex:1}
.mega-col{display:flex;flex-direction:column;gap:8px}
.mega-h{font-weight:680;font-size:14px;color:var(--ink);margin-bottom:2px}
.mega-col a{font-size:13.5px;color:var(--muted,#6b6b6b);padding:0;border-radius:0;font-weight:460}
.mega-col a:hover{color:var(--accent);background:none}
.mega-cta{align-self:center;white-space:nowrap;display:inline-flex;align-items:center;gap:6px;font-weight:640;color:var(--accent)}
.mega-cta svg{width:17px;height:17px}
.nav-desktop a.active,.nav-mega-trig.active{color:var(--accent)}
/* mini-panier au survol */
.cart-wrap{position:relative;display:inline-flex}
.mini-cart{position:absolute;right:0;top:calc(100% + 8px);width:320px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 24px 48px -24px rgba(0,0,0,.3);padding:14px;opacity:0;visibility:hidden;transform:translateY(-6px);transition:.16s;z-index:56}
.cart-wrap:hover .mini-cart{opacity:1;visibility:visible;transform:none}
.mc-empty{color:var(--muted,#6b6b6b);font-size:13.5px;text-align:center;padding:14px 0}
.mc-line{display:flex;align-items:center;gap:10px;padding:7px 0}
.mc-media{width:40px;height:40px;border-radius:8px;overflow:hidden;flex:none;background:var(--surface);display:flex;align-items:center;justify-content:center}
.mc-media img{width:100%;height:100%;object-fit:cover}
.mc-media svg{width:18px;height:18px;color:var(--muted)}
.mc-info{flex:1;min-width:0;display:flex;flex-direction:column}
.mc-name{font-size:13px;font-weight:560;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mc-qty{font-size:12px;color:var(--muted)}
.mc-line b{font-size:13px;white-space:nowrap}
.mc-more{font-size:12px;color:var(--muted);padding:4px 0}
.mc-sub{display:flex;justify-content:space-between;padding:10px 0;border-top:1px solid var(--line);margin-top:6px;font-size:13.5px}
.mc-view,.mc-co{margin-top:8px;font-size:13.5px;padding:10px;width:100%;text-align:center}
@media(max-width:999px){.mini-cart{display:none}}
/* barre réassurance = marquee mobile (jamais coupée) */
.re-track{display:flex;align-items:center;gap:26px}
.reassure-row>.re-track:last-child{display:none}
@media(max-width:680px){
  .reassure-row{overflow:hidden;justify-content:flex-start;gap:0;flex-wrap:nowrap}
  .reassure-row>.re-track{gap:22px;padding-right:22px;animation:re-marquee 20s linear infinite;flex:none}
  .reassure-row>.re-track:last-child{display:flex}
  .reassure-row:hover>.re-track{animation-play-state:paused}
}
@keyframes re-marquee{from{transform:translateX(0)}to{transform:translateX(-100%)}}
/* recherche overlay */
.search-ov{position:fixed;inset:0;z-index:80;background:rgba(20,18,16,.45);opacity:0;transition:.2s;display:flex;justify-content:center;align-items:flex-start}
.search-ov.open{opacity:1}
.search-panel{width:100%;max-width:640px;margin:9vh 16px 0;background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 30px 60px -20px rgba(0,0,0,.4);transform:translateY(-10px);transition:.2s}
.search-ov.open .search-panel{transform:none}
.search-bar{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line)}
.search-bar svg{width:20px;height:20px;color:var(--muted);flex:none}
.search-bar input{flex:1;border:none;outline:none;font-size:16px;background:none;color:var(--ink)}
.search-res{max-height:60vh;overflow-y:auto}
.search-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 16px;border-bottom:1px solid var(--surface)}
.search-item:hover{background:var(--surface)}
.search-item span{font-weight:520;font-size:14.5px}
.search-item b{font-size:13px;color:var(--muted);white-space:nowrap;font-weight:460}
.search-none{padding:26px 16px;text-align:center;color:var(--muted)}
/* drawer mobile enrichi */
.dr-rating{display:flex;align-items:center;gap:6px;margin:2px 0 12px;padding:11px 14px;background:var(--surface);border-radius:12px;font-size:14px;font-weight:560}
.dr-rating .hr-star{color:#f5a623}
.dr-rating span{color:var(--muted);font-weight:460}
.dr-rating svg{width:16px;height:16px;margin-left:auto;color:var(--muted)}
.dr-cat{font-weight:600}
.dr-subs{display:flex;flex-wrap:wrap;gap:6px;padding:2px 0 10px 12px}
.dr-subs a{font-size:12.5px;color:var(--muted);background:var(--surface);padding:5px 10px;border-radius:var(--r-pill)}
.dr-re{display:flex;gap:16px;justify-content:center;margin-top:12px}
.dr-re .re-item{font-size:12px;color:var(--muted)}

/* ============ HEADER 2 NIVEAUX + AVIS TRUSTPILOT (remplace méga-menu) ============ */
.header-actions{margin-left:auto;gap:11px}
.hdr-tp,.hdr-search-btn,.hdr-cta,.cat-nav{display:none}
@media(min-width:1000px){
  .hdr-tp{display:inline-flex;align-items:center;gap:8px;text-decoration:none}
  .hdr-search-btn{display:inline-flex}
  .hdr-cta{display:inline-flex;padding:9px 16px;font-size:14px;white-space:nowrap}
}
.tp-stars{display:inline-flex;gap:2px}
.tp-sq{width:17px;height:17px;border-radius:3px;background:#e2ded7;display:inline-flex;align-items:center;justify-content:center;position:relative;overflow:hidden}
.tp-sq i{font-style:normal;color:#fff;font-size:11px;line-height:1;position:relative;z-index:1}
.tp-sq.full{background:var(--accent)}
.tp-sq.half::before{content:"";position:absolute;left:0;top:0;bottom:0;width:50%;background:var(--accent)}
.tp-txt{font-size:12.5px;color:var(--ink);white-space:nowrap}
.tp-txt b{font-weight:600}
.tp-txt span{color:var(--muted,#6b6b6b);font-weight:460;margin-left:3px}
.hdr-tp:hover .tp-txt b{text-decoration:underline}
/* rangée catégories à plat (desktop) */
@media(min-width:900px){
  .cat-nav{display:block;border-top:0.5px solid var(--line)}
  .cat-row{display:flex;align-items:center;gap:30px;height:47px;overflow-x:auto;scrollbar-width:none}
  .cat-row::-webkit-scrollbar{display:none}
  .cat-link{font-size:14.5px;font-weight:480;color:var(--ink);white-space:nowrap;padding:13px 0;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s}
  .cat-link:hover{color:var(--accent)}
  .cat-link.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:560}
}

/* évite tout débordement horizontal (marquee réassurance, etc.) — clip sans casser position:sticky */
html,body{overflow-x:clip;max-width:100%}

/* ============ DRAWER MOBILE — tuiles visuelles + scroll fluide ============ */
.dr-scroll{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;margin-top:10px}
.dr-search{display:flex;align-items:center;gap:9px;width:100%;background:var(--surface);border:none;border-radius:12px;padding:12px 14px;margin-bottom:14px;color:var(--muted,#8a857c);font-size:14px;text-align:left;cursor:pointer}
.dr-search svg{width:18px;height:18px;flex:none}
.dr-tiles{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding-bottom:6px}
.dr-tile{display:flex;flex-direction:column;gap:6px;background:var(--surface);border-radius:14px;padding:15px 13px;border:1.5px solid transparent;transition:transform .12s}
.dr-tile svg{width:24px;height:24px;color:var(--ink)}
.dr-tile b{font-size:14.5px;color:var(--ink);font-weight:560;line-height:1.15}
.dr-tile span{font-size:11.5px;color:var(--muted,#8a857c);line-height:1.2}
.dr-tile-hl{background:#fbf1ed;border-color:var(--accent)}
.dr-tile-hl svg,.dr-tile-hl b{color:var(--accent)}
.dr-tile:active{transform:scale(.97)}
.drawer-foot{margin-top:0;padding-top:14px;border-top:0.5px solid var(--line)}
.drawer-foot .dr-rating{margin:0 0 10px}

/* ============ DRAWER — bas : avis Trustpilot + langue/devise + réassurance ============ */
.drawer-foot .dr-tp{display:flex;align-items:center;gap:8px;background:var(--surface);border-radius:12px;padding:11px 13px;margin-bottom:8px;text-decoration:none}
.dr-tp-txt{font-size:13px;color:var(--ink)}
.dr-tp-txt b{font-weight:600}
.dr-tp-txt span{color:var(--muted,#8a857c)}
.dr-tp>svg{width:16px;height:16px;color:var(--muted,#c3beb4);margin-left:auto;flex:none}
.dr-lang{display:flex;align-items:center;gap:7px;width:100%;background:var(--surface);border:none;border-radius:12px;padding:11px 13px;margin-bottom:14px;font-size:13.5px;color:var(--ink);cursor:pointer;text-align:left}
.dr-lang .dr-flag{font-size:15px;flex:none}
.dr-lang b{font-weight:600}
.dr-lang span{color:var(--muted,#8a857c)}
.dr-lang>svg{width:15px;height:15px;color:var(--muted,#9a958c);margin-left:auto;flex:none}
.dr-re-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px 12px}
.dr-re-grid .re-g{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--ink)}
.dr-re-grid .re-g svg{width:16px;height:16px;color:var(--accent);flex:none}

/* ============ bandeau avis Trustpilot mobile (sous la réassurance) ============ */
.mob-tp{display:none}
@media(max-width:999px){
  .mob-tp{display:flex;align-items:center;justify-content:center;gap:8px;padding:9px 14px;background:var(--surface);border-bottom:1px solid var(--line);text-decoration:none}
  .mob-tp .tp-sq{width:15px;height:15px}
  .mob-tp .tp-sq i{font-size:10px}
  .mob-tp-txt{font-size:12.5px;color:var(--ink);white-space:nowrap}
  .mob-tp-txt b{font-weight:600}
  .mob-tp-txt span{color:var(--muted,#8a857c);margin-left:2px}
}
