  :root{
    --bg: #F3F5FA;
    --bg-panel: #FFFFFF;
    --bg-panel-2: #F7F8FC;
    --navy: #16296B;
    --navy-light: #3B5BA8;
    --wine: #7C3B44;
    --ink: #1C2430;
    --muted: #667089;
    --line: rgba(22,41,107,0.14);
    --radius: 6px;
    --store-bg: #F3F5FA;
    --red: #D7262E;
    --gold: #E8C77A;
  }
  *{box-sizing:border-box;}
  html,body{margin:0;padding:0;}
  body{
    background:var(--bg);
    color:var(--ink);
    font-family:'Work Sans', sans-serif;
    min-height:100vh;
    -webkit-font-smoothing:antialiased;
  }
  ::selection{ background:var(--navy); color:var(--bg); }
  a{color:inherit;}
  button{font-family:inherit; cursor:pointer;}
  .wrap{max-width:1180px; margin:0 auto; padding:0 28px;}

  /* ---------- BARRE D'ANNONCE ---------- */
  .topbar{
    display:flex; justify-content:center; align-items:center; gap:10px; flex-wrap:wrap;
    background:linear-gradient(90deg, #0F1D4F, var(--navy) 50%, #0F1D4F); color:#fff;
    font-family:'Montserrat', sans-serif; font-size:12.5px; font-weight:600; padding:7px 12px; text-align:center;
  }
  .topbar strong{ color:var(--gold); font-weight:800; }
  .tb-sep{ opacity:.5; }
  @media (max-width:640px){ .tb-hide-m{ display:none; } .topbar{ font-size:11.5px; gap:6px; padding:6px 8px; } }

  /* ---------- BANDEAU COOKIES ---------- */
  .consent-banner{
    position:fixed; left:16px; bottom:16px; z-index:120; max-width:440px; width:calc(100% - 32px);
    background:#fff; border:1px solid var(--line); border-top:4px solid var(--gold); border-radius:14px;
    box-shadow:0 18px 50px rgba(16,22,40,.25); padding:18px 18px 16px;
  }
  body.view-admin .consent-banner{ display:none !important; }
  .consent-title{ font-family:'Montserrat', sans-serif; font-weight:800; color:var(--navy); font-size:16px; margin-bottom:6px; }
  .consent-text{ font-size:13px; line-height:1.5; color:var(--ink); margin:0 0 12px; }
  .consent-text a{ color:var(--navy); }
  .consent-details{ display:none; flex-direction:column; gap:8px; margin-bottom:12px; }
  .consent-banner.detailed .consent-details{ display:flex; }
  .consent-row{ display:flex; gap:8px; align-items:flex-start; font-size:12.5px; line-height:1.4; cursor:pointer; }
  .consent-row input{ margin-top:2px; width:16px; height:16px; }
  .consent-actions{ display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
  .consent-actions button{ padding:9px 14px; font-size:13px; }
  .consent-banner .consent-only-detailed{ display:none; }
  .consent-banner.detailed .consent-only-detailed{ display:inline-block; }
  .consent-banner.detailed .consent-only-simple{ display:none; }
  .consent-banner ~ .promo-countdown.pos-0{ bottom:24px; }
  .footer-link-btn{ background:none; border:none; padding:0; color:inherit; font:inherit; text-decoration:underline; cursor:pointer; }
  .set-label{ font-size:12px; color:var(--muted); display:block; margin-bottom:6px; }

  /* ---------- SUIVEZ-NOUS (YouTube / Facebook) ---------- */
  .social-section{ padding:10px 0 20px; }
  .social-row{ display:flex; gap:16px; flex-wrap:wrap; align-items:flex-start; }
  .embed-box{ background:#fff; border:1px solid var(--line); border-radius:12px; overflow:hidden; }
  .embed-video{ flex:2 1 420px; aspect-ratio:16/9; }
  .embed-fb{ flex:1 1 300px; max-width:360px; height:480px; }
  .embed-box iframe{ width:100%; height:100%; border:0; display:block; }
  .embed-blocked{ height:100%; min-height:200px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; padding:20px; text-align:center; background:var(--bg); }
  .embed-blocked p{ font-size:13px; color:var(--muted); margin:0; max-width:300px; }
  @media (max-width:640px){ .embed-fb{ max-width:none; height:420px; } }

  /* ---------- AVIS DE CLIENTES ---------- */
  .reviews-section{ padding:10px 0 30px; }
  .reviews-row{ display:grid; grid-template-columns:repeat(auto-fill, minmax(240px,1fr)); gap:14px; }
  .review-card{ background:#fff; border:1px solid var(--line); border-radius:12px; overflow:hidden; display:flex; flex-direction:column; }
  .review-card img{ width:100%; aspect-ratio:4/3; object-fit:cover; display:block; cursor:zoom-in; background:var(--bg); }
  .review-body{ padding:14px 16px 16px; display:flex; flex-direction:column; gap:8px; }
  .review-stars{ color:#F2A900; font-size:15px; letter-spacing:2px; }
  .review-text{ font-size:13.5px; line-height:1.55; color:var(--ink); font-style:italic; }
  .review-name{ font-family:'Montserrat', sans-serif; font-weight:700; font-size:13px; color:var(--navy); }
  .review-admin-row{ display:flex; align-items:center; gap:10px; padding:8px 0; border-bottom:1px solid var(--line); font-size:12.5px; }
  .review-admin-row img{ width:40px; height:40px; object-fit:cover; border-radius:6px; }
  .review-admin-row .ra-text{ flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .share-preview{ margin-bottom:10px; font-size:12.5px; color:var(--muted); }
  .share-preview img{ width:100%; max-height:220px; object-fit:cover; border-radius:10px; border:1px solid var(--line); display:block; }
  @media (max-width:640px){ .reviews-row{ display:flex; overflow-x:auto; scroll-snap-type:x mandatory; } .review-card{ flex:0 0 78%; scroll-snap-align:start; } }

  /* « Espace équipe » : seulement en bas de page pour les clientes, dans l'en-tête une fois connectée */
  body:not(.team-logged) .team-link{ display:none !important; }
  .footer-team{ background:none; border:none; color:inherit; font:inherit; text-decoration:underline; padding:0; cursor:pointer; opacity:.75; }
  .footer-team:hover{ opacity:1; }

  /* ---------- EN-TÊTE ---------- */
  body.view-admin .store-only{ display:none !important; }
  body:not(.view-admin) .back-store, body.view-admin .team-link, body.view-admin .cart-btn{ display:none; }
  header.top{
    position:sticky; top:0; z-index:40; background:#fff;
    box-shadow:0 1px 0 var(--line), 0 6px 18px rgba(22,41,107,0.05);
  }
  .navrow{ display:flex; align-items:center; gap:24px; padding:12px 0; }
  .brand{ display:flex; align-items:center; gap:10px; cursor:pointer; flex-shrink:0; }
  .brand img{ height:48px; width:auto; display:block; }
  .brand-text{ font-family:'Montserrat', sans-serif; font-weight:800; font-size:20px; letter-spacing:-.2px; color:var(--navy); line-height:1.05;}
  .brand-text small{ display:block; font-family:'Montserrat', sans-serif; font-size:8.5px; letter-spacing:1.4px; color:var(--muted); font-weight:600; margin-top:3px;}
  .search-bar{
    flex:1; display:flex; align-items:stretch; min-width:0; height:44px;
    border:1.5px solid var(--navy); border-radius:8px; overflow:hidden; background:#fff;
  }
  .search-bar input{ flex:1; min-width:0; border:none; outline:none; padding:0 16px; font-family:inherit; font-size:14px; color:var(--ink); background:none; }
  .search-bar select{
    border:none; border-left:1px solid var(--line); background:#fff; padding:0 12px; font-family:inherit;
    font-size:13px; color:var(--ink); max-width:170px; outline:none; cursor:pointer;
  }
  .search-go{ background:var(--navy); color:#fff; border:none; width:52px; display:flex; align-items:center; justify-content:center; }
  .search-go svg{ width:20px; height:20px; }
  nav.links{ display:flex; gap:20px; align-items:center; flex-shrink:0; margin-left:auto; }
  .head-contacts{ display:flex; gap:20px; align-items:center; }
  .head-item{
    display:flex; align-items:center; gap:9px; background:none; border:none; padding:0; text-decoration:none;
    color:var(--ink); text-align:left;
  }
  .head-item .hi-icon{ width:26px; height:26px; color:var(--navy); display:flex; flex-shrink:0; }
  .head-item .hi-icon svg, svg.hi-icon{ width:26px; height:26px; fill:currentColor; }
  svg.hi-icon{ fill:none; color:var(--navy); }
  .head-item.wa .hi-icon{ color:#25D366; }
  .head-item.fb .hi-icon{ color:#1877F2; }
  .hi-text{ font-size:12px; font-weight:600; line-height:1.25; white-space:nowrap; }
  .hi-text small{ display:block; font-size:12.5px; font-weight:500; color:var(--muted); }
  .head-item.navbtn.active .hi-text{ color:var(--navy); }
  .cart-btn{
    position:relative; background:none; color:var(--navy); border:none; padding:0;
    display:flex; flex-direction:column; align-items:center; gap:1px; font-size:11px; font-weight:600;
  }
  .cart-btn svg{ width:28px; height:28px; }
  .cart-count{
    position:absolute; top:-6px; right:-8px; background:var(--navy); color:#fff; border:2px solid #fff;
    font-size:10.5px; min-width:21px; height:21px; padding:0 4px; border-radius:11px;
    display:flex; align-items:center; justify-content:center; font-weight:700;
  }

  /* ---------- BARRE DES CATÉGORIES ---------- */
  .catnav{ border-top:1px solid var(--line); background:#fff; }
  .catnav-row{ display:flex; align-items:center; gap:18px; height:48px; }
  .allcats-btn{
    display:flex; align-items:center; gap:12px; background:var(--navy); color:#fff; border:none; border-radius:6px;
    height:38px; padding:0 16px; font-size:14px; font-weight:600; width:236px; flex-shrink:0;
  }
  .allcats-btn .chev{ margin-left:auto; font-size:11px; }
  .burger{ display:flex; flex-direction:column; gap:3.5px; }
  .burger i{ display:block; width:17px; height:2px; background:currentColor; border-radius:2px; }
  .catnav-links{ display:flex; gap:4px; overflow-x:auto; flex:1; scrollbar-width:none; height:100%; align-items:stretch; }
  .catnav-links::-webkit-scrollbar{ display:none; }
  .catnav-links button{
    background:none; border:none; border-bottom:2px solid transparent; padding:0 12px; font-size:13.5px; font-weight:600;
    color:var(--ink); white-space:nowrap; display:flex; align-items:center; gap:6px;
  }
  .catnav-links button:hover{ color:var(--navy); }
  .catnav-links button.active{ color:var(--navy); border-bottom-color:var(--navy); }
  .catnav-links .promo-link, .cat-tabs .promo-link{ color:var(--red); }
  .pct{ width:20px; height:20px; border-radius:50%; background:var(--red); color:#fff; font-size:11px; font-weight:800; display:inline-flex; align-items:center; justify-content:center; }
  .catnav-right{ display:flex; align-items:center; gap:14px; flex-shrink:0; }

  .btn-primary{
    background:var(--navy); color:#fff; border:none; padding:13px 26px; font-weight:600; font-size:14px;
    border-radius:var(--radius); letter-spacing:.3px;
  }
  .btn-ghost{
    background:none; border:1px solid var(--line); color:var(--ink); padding:12px 22px; font-size:14px; border-radius:var(--radius);
  }

  /* ---------- HAUT DE PAGE : colonne catégories + bandeau + promos ---------- */
  .home-top{ padding:16px 0 0; }
  .home-grid{ display:grid; grid-template-columns:236px minmax(0,1fr) 260px; gap:14px; align-items:stretch; }
  .cat-sidebar{
    background:#fff; border:1px solid var(--line); border-radius:10px; padding:6px 0; display:flex; flex-direction:column;
    max-height:400px; overflow-y:auto;
  }
  .cat-side-item{
    display:flex; align-items:center; gap:12px; width:100%; background:none; border:none; border-bottom:1px solid rgba(22,41,107,0.07);
    padding:9px 14px; text-align:left; font-size:13.5px; color:var(--ink); font-weight:500;
  }
  .cat-side-item:hover, .cat-side-item.active{ background:var(--store-bg); color:var(--navy); }
  .csi-icon{ width:22px; height:22px; color:var(--navy); display:flex; flex-shrink:0; }
  .csi-icon svg{ width:22px; height:22px; }
  .csi-name{ flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .csi-count{ font-size:11px; color:var(--muted); }
  .cat-side-item.promo .csi-icon, .cat-side-item.promo .csi-count{ color:var(--red); }
  .cat-side-foot{ margin-top:auto; padding:10px 14px 6px; font-size:11.5px; color:var(--muted); }
  .cat-side-foot span{ color:var(--navy); font-weight:700; }

  /* ---------- SECTION TITLES ---------- */
  .section-head{ display:flex; align-items:center; gap:20px; margin:30px 0 14px; }
  h2.section-title{ font-family:'Montserrat', sans-serif; font-size:22px; font-weight:800; color:var(--navy); margin:0; letter-spacing:-.2px; }
  .section-note{ color:var(--muted); font-size:13px; }
  body.searching .home-top, body.searching .cat-circles-section, body.searching .cat-banners-section{ display:none !important; }

  /* ---------- SUBSCRIBE MINI BUTTON ---------- */
  .subscribe-mini{
    display:inline-flex; align-items:center; gap:6px; background:var(--navy); color:#fff; border:none;
    padding:7px 14px; font-size:12px; font-weight:600; border-radius:20px; letter-spacing:.2px;
  }
  .subscribe-mini:hover{ filter:brightness(1.08); }
  .subscribe-mini.is-subscribed{ background:none; color:var(--navy); border:1px solid var(--line); }

  /* ---------- CARTES PROMO DES CATÉGORIES (colonne de droite + bannières) ---------- */
  .side-promos{ display:flex; flex-direction:column; gap:10px; }
  .side-promo, .cat-banner{
    position:relative; flex:1; display:flex; align-items:center; justify-content:space-between; gap:8px; overflow:hidden;
    border:none; border-radius:10px; padding:14px 0 14px 16px; text-align:left; color:#fff; min-height:0;
  }
  .tone-navy{ background:linear-gradient(110deg, #0F1D4F 0%, var(--navy) 60%, #2A4596 100%); }
  .tone-wine{ background:linear-gradient(110deg, #4E1F26 0%, var(--wine) 60%, #A0505B 100%); }
  .tone-ink{ background:linear-gradient(110deg, #10141C 0%, #232C3D 60%, #3A4660 100%); }
  .sp-text{ display:flex; flex-direction:column; gap:3px; position:relative; z-index:1; min-width:0; }
  .sp-name{ font-family:'Montserrat', sans-serif; font-weight:800; font-size:16px; text-transform:uppercase; letter-spacing:.2px; line-height:1.1; }
  .sp-sub{ font-size:12px; opacity:.85; }
  .sp-cta{
    margin-top:8px; align-self:flex-start; background:#fff; color:var(--navy); font-size:11.5px; font-weight:700;
    padding:6px 12px; border-radius:20px; white-space:nowrap;
  }
  .sp-img{ width:44%; align-self:stretch; flex-shrink:0; margin:-14px 0; position:relative; }
  .sp-img img{ width:100%; height:100%; object-fit:cover; display:block; -webkit-mask-image:linear-gradient(90deg, transparent 0, #000 35%); mask-image:linear-gradient(90deg, transparent 0, #000 35%); }
  .sp-img .cat-icon{ width:100%; height:100%; display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,.75); }
  .sp-img .cat-icon svg{ width:54px; height:54px; }
  .side-promo:hover .sp-cta, .cat-banner:hover .sp-cta{ background:var(--gold); }

  /* ---------- CERCLES DES CATÉGORIES ---------- */
  .cat-circles-section{ padding:16px 0 4px; }
  .cat-circles{ display:flex; gap:10px; overflow-x:auto; padding:4px 2px 8px; scrollbar-width:thin; justify-content:space-between; }
  .cat-circle{ flex:0 0 96px; background:none; border:none; display:flex; flex-direction:column; align-items:center; gap:8px; padding:0; }
  .cc-img{
    width:78px; height:78px; border-radius:50%; overflow:hidden; background:#fff; border:1px solid var(--line);
    display:flex; align-items:center; justify-content:center; transition:transform .2s, box-shadow .2s;
  }
  .cc-img img{ width:100%; height:100%; object-fit:cover; }
  .cc-img .cat-icon{ color:var(--navy); display:flex; }
  .cc-img .cat-icon svg{ width:38px; height:38px; }
  .cat-circle:hover .cc-img{ transform:translateY(-3px); box-shadow:0 8px 18px rgba(22,41,107,0.14); }
  .cc-name{ font-size:12.5px; font-weight:600; color:var(--ink); text-align:center; line-height:1.2; }
  .cc-pct{ width:44px; height:44px; border-radius:50%; background:var(--red); color:#fff; font-size:22px; font-weight:800; display:flex; align-items:center; justify-content:center; }
  .cat-circle.promo .cc-name{ color:var(--red); }

  /* ---------- BANNIÈRES LARGES ---------- */
  .cat-banners-section{ padding:10px 0 0; }
  .cat-banners{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:14px; }
  .cat-banner{ height:118px; padding-left:20px; }
  .cat-banner .sp-name{ font-size:18px; }
  .cat-banner .sp-sub{ font-size:13px; }

  /* ---------- PRODUITS ---------- */
  .cat-tabs{ display:flex; gap:6px; overflow-x:auto; flex:1; scrollbar-width:none; }
  .cat-tabs::-webkit-scrollbar{ display:none; }
  .cat-tabs button{
    background:none; border:none; border-radius:20px; padding:6px 13px; font-size:12.5px; font-weight:600;
    color:var(--ink); white-space:nowrap;
  }
  .cat-tabs button:hover{ color:var(--navy); }
  .cat-tabs button.active{ background:var(--navy); color:#fff; }
  .see-all{ background:none; border:none; color:var(--navy); font-weight:700; font-size:13px; white-space:nowrap; }
  .products-toolbar{ display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:16px; flex-wrap:wrap; }
  .price-filters{ display:flex; gap:8px; }
  .price-filters .text-input{ margin:0; width:150px; background:#fff; }
  .price-filters .btn-ghost{ padding:8px 14px; font-size:13px; background:#fff; }

  /* ---------- BANDEAU DE CONFIANCE ---------- */
  .trust-bar{ background:#fff; border-top:1px solid var(--line); margin-top:10px; }
  .trust-row{ display:grid; grid-template-columns:repeat(5, minmax(0,1fr)); gap:10px; padding:20px 28px; }
  .trust-item{ display:flex; align-items:center; gap:12px; padding:0 10px; border-left:1px solid var(--line); }
  .trust-item:first-child{ border-left:none; }
  .trust-item svg{ width:32px; height:32px; color:var(--navy); flex-shrink:0; }
  .ti-title{ font-size:13px; font-weight:700; color:var(--ink); }
  .ti-sub{ font-size:12px; color:var(--muted); margin-top:1px; }

  /* ---------- PRODUCT GRID ---------- */
  .grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(190px,1fr)); gap:14px; padding-bottom:40px;}
  .cat-chip{
    display:inline-flex; align-items:center; gap:8px; background:var(--bg-panel-2); border:1px solid var(--line);
    border-radius:20px; padding:6px 12px; margin:0 8px 8px 0; font-size:13px;
  }
  .cat-chip button{ background:none; border:none; color:var(--wine); font-size:15px; line-height:1; padding:0; }
  .cat-row{ display:flex; align-items:center; gap:8px; background:var(--bg-panel-2); border:1px solid var(--line); border-radius:8px; padding:6px 8px 6px 10px; margin-bottom:6px; font-size:13.5px; }
  .cat-row .cat-pos{ width:20px; color:var(--muted); font-weight:600; }
  .cat-row .cat-row-name{ flex:1; font-weight:600; }
  .cat-row button{ width:30px; height:30px; border:1px solid var(--line); background:#fff; border-radius:6px; font-size:15px; line-height:1; color:var(--navy); cursor:pointer; }
  .cat-row button:disabled{ opacity:.35; cursor:default; }
  .cat-row button.del{ color:var(--wine); }
  .tag-card{
    position:relative; background:#fff; border:1px solid var(--line); border-radius:10px;
    padding:12px 12px 14px; display:flex; flex-direction:column;
    transition:transform .2s ease, border-color .2s ease, box-shadow .2s ease;
  }
  .tag-card:hover{ border-color:rgba(22,41,107,0.35); transform:translateY(-3px); box-shadow:0 12px 26px rgba(22,41,107,0.10);}
  .tag-card.flash-highlight{ animation: tag-flash 1.6s ease; }
  @keyframes tag-flash{
    0%, 100% { box-shadow:none; border-color:var(--line); }
    15%, 55% { box-shadow:0 0 0 3px var(--wine); border-color:var(--wine); }
  }
  .tag-card .icon{ display:flex; justify-content:center; align-items:center; aspect-ratio:1/1; margin-bottom:10px; color:var(--navy-light); background:var(--store-bg); border-radius:8px; }
  .tag-card .icon svg{ width:52px; height:52px; }
  .tag-card .cat{ color:var(--muted); font-size:11px; text-transform:uppercase; letter-spacing:.6px; margin-bottom:2px; }
  .tag-card h3{ font-family:'Montserrat', sans-serif; font-weight:700; font-size:14px; margin:0 0 8px; color:var(--ink); line-height:1.3;}
  .color-swatches{ display:flex; flex-wrap:wrap; gap:5px; margin:0 0 8px; }
  .swatch{
    background:var(--bg-panel-2); border:1px solid var(--line); border-radius:20px; padding:3px 10px;
    font-size:11px; color:var(--ink); cursor:pointer;
  }
  .swatch.active{ background:var(--navy); border-color:var(--navy); color:#fff; }
  .swatch.oos{ opacity:0.45; text-decoration:line-through; }
  .tag-card .price-row{ display:flex; align-items:baseline; gap:5px; margin-bottom:2px; flex-wrap:wrap;}
  .tag-card .price-row.promo{ flex-direction:row; }
  .tag-card .price{ font-family:'Montserrat', sans-serif; font-weight:800; font-size:16px; color:var(--navy); }
  .tag-card .price-row.promo .price{ color:var(--red); }
  .tag-card .curr{ font-family:'Montserrat', sans-serif; font-weight:700; font-size:12px; color:var(--navy); }
  .price-old-row{ display:flex; align-items:center; gap:6px; width:100%; }
  .tag-card .price-old{ font-size:12px; color:var(--muted); text-decoration:line-through; }
  .promo-badge{
    display:inline-block; background:linear-gradient(120deg, #B3121B, var(--red) 50%, #FF6A1A); color:#fff; font-family:'Montserrat', sans-serif;
    font-size:10px; font-weight:600; letter-spacing:.3px; padding:2px 6px; border-radius:20px;
  }
  .tag-card .stock{ font-size:11.5px; color:#1B7A3D; margin-bottom:10px; }
  .tag-card .stock.low{ color:var(--red); }
  .tag-card .stock.out{ color:var(--muted); }
  .tag-card button.add{
    margin-top:auto; width:100%; background:var(--navy); border:none; color:#fff; padding:9px; font-size:13px;
    border-radius:6px; font-weight:600; transition:background .2s;
  }
  .tag-card button.add:hover{ background:#0F1D4F; }
  .tag-card button.add:disabled{ background:#C9CDD8; cursor:not-allowed; }
  .card-promo{
    position:absolute; top:20px; left:52px; z-index:2; color:#fff; font-family:'Montserrat', sans-serif; font-size:14px; font-weight:900;
    padding:5px 10px; border-radius:20px; border:1.5px solid var(--gold);
    background:linear-gradient(120deg, #B3121B, var(--red) 50%, #FF6A1A); box-shadow:0 4px 12px rgba(215,38,46,.35);
  }

  /* ---------- CART DRAWER ---------- */
  .overlay{ position:fixed; inset:0; background:rgba(22,24,32,.35); z-index:60; opacity:0; pointer-events:none; transition:opacity .25s; }
  .overlay.show{ opacity:1; pointer-events:auto; }
  .drawer{
    position:fixed; top:0; right:-420px; width:400px; max-width:92vw; height:100%; background:var(--bg-panel-2);
    z-index:70; border-left:1px solid var(--line); transition:right .3s ease; display:flex; flex-direction:column;
  }
  .drawer.open{ right:0; }
  .drawer.open ~ .wa-fab, .drawer.open ~ .promo-countdown{ display:none !important; }
  .drawer-head{ padding:22px 22px 16px; border-bottom:1px solid var(--line); display:flex; justify-content:space-between; align-items:center;}
  .drawer-head h3{ font-family:'Montserrat', sans-serif; font-size:20px; font-weight:800; margin:0; color:var(--ink);}
  .drawer-close{ background:none; border:none; color:var(--muted); font-size:22px; }
  .drawer-items{ flex:1; overflow-y:auto; padding:18px 22px; }
  .cart-item{ display:flex; justify-content:space-between; align-items:center; padding:12px 0; border-bottom:1px solid var(--line); gap:10px;}
  .cart-item .ci-name{ font-size:14px; }
  .cart-item .ci-price{ font-family:'Montserrat', sans-serif; font-size:12px; color:var(--muted); }
  .qty-ctrl{ display:flex; align-items:center; gap:8px; }
  .qty-ctrl button{ background:var(--bg-panel); border:1px solid var(--line); color:var(--ink); width:24px; height:24px; border-radius:50%; font-size:14px; line-height:1;}
  .drawer-foot{ padding:20px 22px; border-top:1px solid var(--line); max-height:78vh; overflow-y:auto; }
  /* ---------- MODE DE PAIEMENT (panier) ---------- */
  .pay-block{ margin:4px 0 12px; }
  .pay-title{ font-family:'Montserrat', sans-serif; font-weight:700; font-size:14px; color:var(--ink); margin-bottom:8px; }
  .pay-options{ display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-bottom:10px; }
  .pay-opt{
    display:flex; align-items:center; gap:8px; background:#fff; border:1.5px solid var(--line); border-radius:10px;
    padding:10px; font-size:13px; font-weight:600; color:var(--ink); text-align:left;
  }
  .pay-opt.active{ border-color:#1B7A3D; background:#EAF6EE; }
  .om-logo{
    width:32px; height:32px; border-radius:50%; background:#FF7900; color:#fff; flex-shrink:0;
    font-size:6.5px; font-weight:800; line-height:1.05; display:flex; align-items:center; justify-content:center; text-align:center;
  }
  .cash-logo{ width:32px; height:32px; border-radius:50%; background:var(--bg); color:var(--navy); flex-shrink:0; display:flex; align-items:center; justify-content:center; }
  .cash-logo svg{ width:20px; height:20px; }
  .pay-info{ background:#FFF8E6; border:1px solid #F1DFB0; border-radius:10px; padding:10px 12px; font-size:12.5px; line-height:1.5; color:var(--ink); margin-bottom:10px; }
  .om-merchant{ display:flex; align-items:center; gap:10px; margin:6px 0; font-family:'Montserrat', sans-serif; font-weight:800; font-size:16px; color:var(--navy); }
  .pay-return{ position:fixed; inset:0; z-index:150; background:rgba(16,22,40,.55); display:flex; align-items:center; justify-content:center; padding:20px; }
  .pay-return-card{ background:#fff; border-radius:14px; padding:28px 24px; max-width:380px; width:100%; text-align:center; box-shadow:0 20px 50px rgba(0,0,0,.25); }
  .pay-return-icon{ font-size:40px; margin-bottom:8px; }
  .pay-return-title{ font-family:'Montserrat', sans-serif; font-weight:800; font-size:18px; color:var(--navy); margin-bottom:8px; }
  .pay-return-text{ font-size:13.5px; color:var(--muted); line-height:1.5; margin-bottom:18px; }
  .pay-pill.online{ background:#E8EEFB; color:var(--navy); }
  .pay-pill.failed{ background:#FDECEC; color:var(--red); }
  .pay-note{ font-size:11.5px; color:var(--muted); margin:-4px 0 6px; }
  .pay-pill{ display:inline-block; margin-top:4px; font-size:10.5px; font-weight:600; padding:2px 8px; border-radius:20px; white-space:nowrap; }
  .pay-pill.om{ background:#FFF1E6; color:#B85400; }
  .pay-pill.cash{ background:var(--bg); color:var(--muted); }
  .pay-pill.paid{ background:#EAF6EE; color:#1B7A3D; }
  .total-row{ display:flex; justify-content:space-between; font-family:'Montserrat', sans-serif; font-size:16px; margin-bottom:14px;}
  .empty-note{ color:var(--muted); font-size:13px; text-align:center; padding:40px 0; }
  input.text-input, select.text-input, textarea.text-input{
    width:100%; background:var(--bg-panel); border:1px solid var(--line); color:var(--ink); padding:10px 12px;
    border-radius:var(--radius); font-family:inherit; font-size:13px; margin-bottom:10px;
  }
  textarea.text-input{ resize:vertical; }
  .checkbox-row{ display:flex; align-items:center; gap:8px; font-size:13px; color:var(--ink); cursor:pointer; }
  .checkbox-row input{ width:16px; height:16px; cursor:pointer; }

  /* ---------- ADMIN / TEAM SPACE ---------- */
  .admin-shell{ padding:28px 0 80px; }
  .admin-shell .admin-head{ background:#fff; border:1px solid var(--line); border-radius:12px; padding:18px 22px; align-items:center; }
  .admin-shell .admin-head .section-title{ margin-top:0 !important; }
  .admin-head{ display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:10px; flex-wrap:wrap; gap:16px;}
  .whoami{ display:flex; align-items:center; gap:10px; font-size:13px; color:var(--muted); }
  .role-badge{ font-family:'Montserrat', sans-serif; font-size:11px; padding:4px 10px; border-radius:20px; border:1px solid var(--navy); color:var(--navy); }
  .role-badge.assistant{ border-color:var(--navy-light); color:var(--navy-light); }
  .btn-mini{ background:#fff; border:1px solid var(--line); color:var(--ink); padding:6px 12px; font-size:12px; font-weight:600; border-radius:var(--radius); margin-right:6px;}
  .btn-mini:hover{ border-color:var(--navy); color:var(--navy); }
  #addProductBtn, #sendInviteBtn{ background:var(--navy); border-color:var(--navy); color:#fff; padding:0 18px; }
  #addProductBtn:hover, #sendInviteBtn:hover{ background:#0F1D4F; color:#fff; }
  .btn-mini.danger:hover{ border-color:var(--wine); color:var(--wine); }
  .admin-tabs{ display:flex; gap:6px; margin:16px 0 22px; padding:6px; background:#fff; border:1px solid var(--line); border-radius:12px; flex-wrap:wrap;}
  .admin-tab{ background:none; border:none; color:var(--ink); padding:9px 16px; font-size:13px; font-weight:600; border-radius:8px; display:inline-flex; align-items:center; white-space:nowrap;}
  .admin-tab:hover{ color:var(--navy); background:var(--bg); }
  .admin-tab.active{ color:#fff; background:var(--navy); }
  .tab-badge{
    display:inline-flex; align-items:center; justify-content:center; min-width:18px; height:18px; padding:0 5px;
    margin-left:6px; background:var(--wine); color:#fff; font-size:11px; font-weight:600; border-radius:9px;
  }
  #teamAlertsBtn.is-subscribed{ background:var(--navy); color:#fff; }
  .panel{ background:var(--bg-panel); border:1px solid var(--line); border-radius:12px; padding:24px; box-shadow:0 6px 18px rgba(22,41,107,0.04); }
  .panel h4{ font-family:'Montserrat', sans-serif; font-weight:800; font-size:17px; margin:0 0 16px; color:var(--navy);}
  .form-row{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr auto; gap:10px; align-items:center; margin-bottom:12px;}
  table.admin-table{ width:100%; border-collapse:collapse; font-size:13px; }
  table.admin-table th{ text-align:left; color:var(--navy); background:var(--bg); font-weight:700; font-size:11px; letter-spacing:.5px; text-transform:uppercase; padding:8px 10px; border-bottom:1px solid var(--line); }
  table.admin-table td{ padding:10px 10px; border-bottom:1px solid var(--line); }
  table.admin-table tr:hover td{ background:rgba(22,41,107,0.025); }
  .order-detail-row td{ background:var(--bg-panel-2); }
  .order-detail-grid{ display:flex; flex-direction:column; gap:6px; font-size:12.5px; color:var(--ink); }
  .variant-detail-row td{ background:var(--bg-panel-2); }
  .variant-manage{ display:flex; flex-direction:column; gap:10px; }
  .variant-row{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; padding:6px 0; border-bottom:1px solid var(--line); font-size:12.5px; }
  .variant-row:last-of-type{ border-bottom:none; }
  .variant-add-form{ display:grid; grid-template-columns:1fr 100px 1fr auto; gap:8px; align-items:center; }
  @media (max-width:760px){
    .variant-add-form{ grid-template-columns:1fr; }
  }
  .pill{ font-family:'Montserrat', sans-serif; font-size:11px; padding:3px 9px; border-radius:20px; border:1px solid var(--line); white-space:nowrap;}
  .pill.new{ color:var(--wine); border-color:var(--wine); }
  .pill.progress{ color:var(--navy-light); border-color:var(--navy-light); }
  .pill.done{ color:var(--navy); border-color:var(--navy); }
  .pill.cancel{ color:#9a9a9a; border-color:#9a9a9a; text-decoration:line-through; }
  .status-msg{ font-size:12px; color:var(--muted); margin-top:8px; font-family:'Montserrat', sans-serif;}
  .grid2{ display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-bottom:20px; }
  .stat-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:16px; margin-bottom:24px;}
  .stat-card{ background:var(--bg-panel); border:1px solid var(--line); border-left:4px solid var(--navy); border-radius:12px; padding:18px 20px;}
  .stat-card .num{ font-family:'Montserrat', sans-serif; font-size:24px; color:var(--navy); font-weight:800;}
  .cumul-panel{ margin-bottom:20px; border-top:4px solid var(--gold); }
  .cumul-row-archive td{ color:var(--muted); font-style:italic; }
  .stat-card .lbl{ font-size:12px; color:var(--muted); margin-top:4px;}
  .stat-card.net-highlight{ background:#F7EAEC; border-color:rgba(124,59,68,0.3); border-left-color:var(--wine); }
  .stat-card.net-highlight .num{ color:var(--wine); }
  .stat-card.commission-highlight{ background:#EAF6EE; border-color:rgba(27,122,61,0.25); border-left-color:#1B7A3D; }
  .stat-card.commission-highlight .num{ color:#1B7A3D; }
  .team-row{ display:flex; align-items:center; gap:10px; margin-bottom:12px; }
  .team-row input{ margin:0; }
  .activity-scroll{ max-height:300px; overflow-y:auto; border-top:1px solid var(--line); }
  @media (max-width:760px){
    .form-row{ grid-template-columns:1fr 1fr; }
    .grid2{ grid-template-columns:1fr; }
  }
  .loading{ text-align:center; padding:60px 0; color:var(--muted); font-family:'Montserrat', sans-serif; font-size:13px;}
  /* ---------- PIED DE PAGE ---------- */
  .site-footer{ background:var(--navy); color:#E6EAF5; margin-top:0; }
  .footer-grid{ display:grid; grid-template-columns:1.2fr 1fr 1fr; gap:28px; padding:34px 28px 26px; }
  .f-brand{ display:flex; gap:14px; align-items:flex-start; }
  .f-brand img{ width:56px; height:56px; border-radius:10px; background:#fff; padding:4px; object-fit:contain; }
  .f-name{ font-family:'Montserrat', sans-serif; font-weight:800; font-size:18px; color:#fff; }
  .f-tag{ font-family:'Playfair Display', serif; font-style:italic; font-size:14px; color:var(--gold); margin-top:2px; }
  .f-sub{ font-size:12.5px; opacity:.8; margin-top:8px; line-height:1.5; }
  .site-footer h4{ font-family:'Montserrat', sans-serif; font-weight:700; font-size:13px; letter-spacing:1px; text-transform:uppercase; color:#fff; margin:4px 0 12px; }
  .f-links{ display:flex; flex-direction:column; gap:10px; }
  .f-link{ display:flex; align-items:center; gap:10px; color:#E6EAF5; text-decoration:none; font-size:13.5px; }
  .f-link:hover{ color:#fff; text-decoration:underline; }
  .f-ico{ width:32px; height:32px; border-radius:50%; background:rgba(255,255,255,.1); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
  .f-ico svg{ width:16px; height:16px; fill:currentColor; }
  .f-link.wa .f-ico{ color:#25D366; }
  .f-link.fb .f-ico{ color:#fff; background:#1877F2; }
  .f-pay{ display:flex; flex-direction:column; gap:8px; }
  .f-pay-item{ display:flex; align-items:center; gap:10px; background:rgba(255,255,255,.08); border-radius:10px; padding:8px 10px; font-size:13px; }
  .f-pay-item .om-logo{ width:30px; height:30px; }
  .f-pay-item .cash-logo{ width:30px; height:30px; background:#fff; }
  .f-pay-item small{ display:block; opacity:.75; font-size:11.5px; }
  .footer-copy{ border-top:1px solid rgba(255,255,255,.12); display:flex; justify-content:space-between; align-items:center; gap:12px;
    max-width:1180px; margin:0 auto; padding:14px 28px; font-size:12px; }
  @media (max-width:760px){ .footer-copy{ padding:14px 90px 14px 18px; } } /* garde le lien hors de la bulle de chat */
  .footer-copy > span{ opacity:.75; }
  .footer-copy a{ color:inherit; }
  .checkout-legal{ font-size:11.5px; color:var(--muted); margin:8px 0 0; line-height:1.45; text-align:center; }
  .checkout-legal a{ color:var(--navy); }
  @media (max-width:760px){ .footer-copy{ flex-direction:column; align-items:flex-start; } }
  @media (max-width:760px){ .footer-grid{ grid-template-columns:1fr; gap:22px; padding:28px 18px 20px; } }

  /* ---------- BANDEAU PRINCIPAL (diaporama des pièces en vedette) ---------- */
  .hero-slider{ position:relative; border-radius:10px; overflow:hidden; background:var(--navy); height:400px; }
  .carousel-track{
    display:flex; height:100%; overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth;
    scrollbar-width:none; -webkit-overflow-scrolling:touch;
  }
  .carousel-track::-webkit-scrollbar{ display:none; }
  .car-slide{
    flex:0 0 100%; height:100%; scroll-snap-align:start; display:grid; grid-template-columns:minmax(0,31fr) minmax(0,69fr);
    cursor:pointer; color:#fff;
    background:radial-gradient(120% 140% at 0% 0%, #22398A 0%, var(--navy) 45%, #0B1640 100%);
  }
  .hs-copy{ padding:20px 10px 30px 22px; display:flex; flex-direction:column; justify-content:center; min-width:0; }
  .hs-eyebrow{ font-size:10px; letter-spacing:1.6px; text-transform:uppercase; font-weight:600; color:var(--gold); }
  .hs-title{ font-family:'Montserrat', sans-serif; font-weight:800; font-size:clamp(20px,1.9vw,26px); line-height:1; margin:6px 0 6px; text-transform:uppercase; letter-spacing:-.5px; }
  .hs-title span{ color:var(--gold); }
  @media (min-width:861px){ .hero-slider .hs-features{ display:none; } .hs-script{ margin-bottom:14px; } }
  .reviews-row{ align-items:start; }
  .hs-lead{ font-size:14px; font-weight:600; line-height:1.4; color:#fff; margin:2px 0 8px; }
  .hs-cod{
    align-self:flex-start; display:inline-flex; align-items:center; gap:6px; margin-bottom:4px;
    background:var(--gold); color:#0F1D4F; font-family:'Montserrat', sans-serif; font-weight:800; font-size:12.5px;
    padding:5px 12px; border-radius:20px; box-shadow:0 4px 12px rgba(0,0,0,.18);
  }
  .hs-cats{ overflow-wrap:anywhere; font-size:10.5px; font-weight:700; letter-spacing:1px; text-transform:uppercase; opacity:.9; line-height:1.4; }
  .hs-script{ font-family:'Playfair Display', serif; font-style:italic; font-size:14px; line-height:1.3; margin:4px 0 0; color:#E9ECF7; }
  .hs-features{ display:flex; flex-direction:column; gap:7px; margin:14px 0 16px; }
  .hf{ display:flex; align-items:center; gap:8px; font-size:11px; font-weight:600; line-height:1.2; }
  .hf br{ display:none; }
  .hf-icon{ width:24px; height:24px; border-radius:50%; border:1.2px solid rgba(255,255,255,.55); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
  .hf-icon svg{ width:13px; height:13px; }
  .hs-cta{
    align-self:flex-start; display:inline-flex; align-items:center; gap:12px; background:#fff; color:var(--navy); border:none;
    border-radius:30px; padding:12px 24px; font-weight:700; font-size:14px;
  }
  .hs-cta span{ font-size:18px; line-height:1; }
  .hero-slider .hs-cta{ padding:10px 16px; font-size:12.5px; gap:8px; white-space:nowrap; }
  .car-slide:hover .hs-cta{ background:var(--gold); }
  .hs-visual{ position:relative; overflow:hidden; }
  .hs-visual img{ width:100%; height:100%; object-fit:cover; display:block; -webkit-mask-image:linear-gradient(90deg, transparent 0, #000 22%); mask-image:linear-gradient(90deg, transparent 0, #000 10%); }
  .hs-visual img.hs-logo{ object-fit:contain; padding:40px; -webkit-mask-image:none; mask-image:none; filter:drop-shadow(0 10px 30px rgba(0,0,0,.3)); }
  .hs-tag{
    position:absolute; right:16px; bottom:36px; background:rgba(255,255,255,.95); color:var(--ink); border-radius:8px;
    padding:9px 14px; max-width:80%; box-shadow:0 8px 20px rgba(0,0,0,.18); display:flex; flex-wrap:wrap; align-items:center; gap:4px 8px;
  }
  .hs-name{ width:100%; font-weight:700; font-size:13px; }
  .hs-price{ font-family:'Montserrat', sans-serif; font-weight:800; color:var(--navy); font-size:14px; }
  .hs-old{ font-size:11.5px; color:var(--muted); text-decoration:line-through; }
  .car-arrow{
    position:absolute; top:50%; transform:translateY(-50%); z-index:3;
    background:#fff; border:none; color:var(--navy); width:38px; height:38px; border-radius:50%;
    font-size:22px; line-height:1; display:flex; align-items:center; justify-content:center; box-shadow:0 4px 12px rgba(0,0,0,.2);
  }
  .car-arrow.prev{ left:calc(31% + 10px); }
  .car-arrow.next{ right:10px; }
  .carousel-dots{ position:absolute; left:0; right:0; bottom:12px; display:flex; gap:7px; justify-content:center; z-index:3; }
  .car-dot{ width:8px; height:8px; border-radius:50%; background:rgba(255,255,255,.5); border:none; padding:0; }
  .car-dot.active{ background:#fff; width:22px; border-radius:4px; }

  /* ---------- PRODUCT PHOTO ---------- */
  .tag-card .photo-wrap{ width:100%; aspect-ratio:1/1; border-radius:8px; overflow:hidden; margin-bottom:10px; background:var(--store-bg); }
  .tag-card .photo-wrap img{ width:100%; height:100%; object-fit:cover; display:block; cursor:zoom-in; }

  /* ---------- IMAGE LIGHTBOX ---------- */
  .img-lightbox{
    position:fixed; inset:0; z-index:200; background:rgba(20,20,20,0.92);
    display:flex; align-items:center; justify-content:center; padding:24px;
  }
  .img-lightbox img{ max-width:100%; max-height:100%; object-fit:contain; border-radius:4px; }
  .lightbox-close{
    position:fixed; top:16px; right:20px; z-index:201; background:rgba(255,255,255,0.12); color:#fff;
    border:none; width:40px; height:40px; border-radius:50%; font-size:24px; line-height:1; cursor:pointer;
  }
  .lightbox-close:hover{ background:rgba(255,255,255,0.22); }
  .photo-thumb{ width:38px; height:38px; border-radius:4px; object-fit:cover; display:block; border:1px solid var(--line); }
  .photo-cell{ display:flex; align-items:center; gap:8px; }
  .table-scroll{ width:100%; overflow-x:auto; }

  /* ---------- RESPONSIVE ---------- */
  @media (max-width:1100px){
    .home-grid{ grid-template-columns:minmax(0,1fr) 240px; }
    .cat-sidebar{ display:none; }
    .head-contacts .head-item:not(.fb){ display:none; }
    .trust-row{ grid-template-columns:repeat(3, minmax(0,1fr)); row-gap:16px; }
    .trust-item:nth-child(4){ border-left:none; }
  }
  @media (max-width:860px){
    .navrow{ flex-wrap:wrap; gap:10px 16px; }
    .search-bar{ order:3; flex-basis:100%; height:42px; }
    nav.links{ margin-left:auto; }
    .allcats-btn{ width:auto; }
    .catnav-right .contact-bar{ display:none !important; }
    .home-grid{ grid-template-columns:1fr; }
    .cat-sidebar.open{ display:flex; max-height:none; }
    .side-promos{ flex-direction:row; overflow-x:auto; scrollbar-width:none; }
    .side-promo{ flex:0 0 78%; height:118px; }
    .hero-slider{ height:auto; }
    .car-slide{ grid-template-columns:1fr; grid-template-rows:300px auto; }
    .car-arrow.prev{ left:10px; }
    .car-arrow{ top:150px; }
    .hs-title br{ display:none; }
    .hs-title{ font-size:22px; margin:3px 0 3px; }
    .hs-script{ font-size:13px; margin:2px 0 0; }
    .hs-visual{ grid-row:1; }
    .hs-visual img{ -webkit-mask-image:linear-gradient(0deg, transparent 0, #000 30%); mask-image:linear-gradient(0deg, transparent 0, #000 12%); }
    .hs-copy{ padding:2px 16px 34px; }
    .hs-tag{ bottom:14px; }
    .hs-features{ flex-direction:row; justify-content:space-between; margin:10px 0 12px; gap:4px; }
    .hf{ flex-direction:column; text-align:center; gap:4px; font-size:9.5px; flex:1; }
    .hf br{ display:inline; }
    .hf-icon{ width:28px; height:28px; }
    .hf-icon svg{ width:15px; height:15px; }
    .cat-banners{ grid-template-columns:1fr; }
    .section-head{ flex-wrap:wrap; gap:10px; }
    .cat-tabs{ order:3; flex-basis:100%; }
  }
  @media (max-width:640px){
    .wrap{ padding:0 16px; }
    .brand-text{ font-size:15px; }
    .brand-text small{ display:none; }
    .brand img{ height:38px; }
    .hi-text{ display:none; }
    nav.links, .head-contacts{ gap:12px; }
    .navrow{ flex-wrap:wrap; }
    .brand{ min-width:0; }
    .team-link .hi-text, .back-store .hi-text{ display:block; font-size:11px; }
    .team-link .hi-text small, .back-store .hi-text small{ display:none; }
    .team-link, .back-store{ gap:5px; }
    .head-item .hi-icon, svg.hi-icon, .head-item .hi-icon svg{ width:22px; height:22px; }
    .cart-label{ display:none; }
    .search-bar select{ max-width:120px; font-size:12px; padding:0 6px; }
    .catnav-row{ gap:10px; }
    .allcats-btn{ padding:0 12px; font-size:13px; }
    .allcats-btn .chev{ display:none; }
    .btn-primary, .btn-ghost{ padding:11px 18px; font-size:13px; }
    h2.section-title{ font-size:19px; }
    .products-toolbar{ flex-direction:column; align-items:stretch; }
    .price-filters .text-input{ width:0; flex:1 1 0; min-width:0; }
    .price-filters .btn-ghost{ flex-shrink:0; }
    .grid{ grid-template-columns:repeat(2, minmax(0,1fr)); gap:10px; }
    .tag-card{ padding:8px 8px 10px; }
    .tag-card h3{ font-size:13px; }
    .car-arrow{ width:32px; height:32px; font-size:18px; }
    .cat-circle{ flex-basis:80px; }
    .cc-img{ width:66px; height:66px; }
    .trust-row{ grid-template-columns:1fr 1fr; padding:16px; }
    .trust-item{ border-left:none; padding:0; }
    .form-row{ grid-template-columns:1fr; }
    .admin-tabs{ overflow-x:auto; flex-wrap:nowrap; }
    .stat-grid{ grid-template-columns:repeat(2,1fr); }
  }

  /* ---------- LIKE BUTTON ---------- */
  .like-btn{
    position:absolute; top:18px; right:18px; background:var(--bg-panel); border:1px solid var(--line);
    border-radius:50%; width:32px; height:32px; font-size:14px; display:flex; align-items:center; justify-content:center;
    color:var(--wine); z-index:2;
  }
  .like-btn.liked{ background:var(--wine); color:#fff; border-color:var(--wine); }
  .like-count{ font-family:'Montserrat', sans-serif; font-size:10px; margin-left:2px; }
  .share-btn{
    position:absolute; top:18px; left:18px; background:var(--bg-panel); border:1px solid var(--line);
    border-radius:50%; width:32px; height:32px; font-size:13px; display:flex; align-items:center; justify-content:center;
    color:var(--navy); z-index:2;
  }
  .share-btn:hover{ border-color:var(--navy); }

  /* ---------- STATS ---------- */
  .bar-row{ display:flex; align-items:center; gap:10px; margin-bottom:8px; font-size:12px;}
  .bar-label{ width:130px; flex-shrink:0; color:var(--muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
  .bar-track{ flex:1; background:var(--bg-panel-2); border-radius:4px; height:16px; overflow:hidden; border:1px solid var(--line);}
  .bar-fill{ height:100%; background:var(--navy-light); }
  .bar-fill.wine{ background:var(--wine); }
  .bar-val{ font-family:'Montserrat', sans-serif; font-size:11px; width:56px; text-align:right; color:var(--ink);}
  .panel + .panel{ margin-top:20px; }

  /* ---------- FINANCES ---------- */
  .fin-form{ display:grid; grid-template-columns:1.4fr 1fr 1fr auto; gap:10px; align-items:center; margin-bottom:14px;}
  @media (max-width:640px){ .fin-form{ grid-template-columns:1fr; } }
  .num-pos{ color:var(--navy); font-family:'Montserrat', sans-serif;}
  .num-neg{ color:var(--wine); font-family:'Montserrat', sans-serif;}

  /* ---------- BADGE PROMOTION (flottant, change de place sur la page) ---------- */
  .promo-countdown{
    position:fixed; z-index:85; display:flex; align-items:center; gap:12px; cursor:pointer;
    padding:8px 20px 8px 8px; border-radius:60px; color:#fff; white-space:nowrap;
    background:linear-gradient(120deg, #B3121B 0%, var(--red) 45%, #FF6A1A 100%);
    border:2px solid var(--gold); overflow:hidden;
    box-shadow:0 14px 34px rgba(215,38,46,.45), 0 0 0 6px rgba(232,199,122,.25);
    transition:opacity .45s ease, transform .45s ease;
    animation:promo-glow 2.2s ease-in-out infinite;
  }
  /* reflet qui traverse le badge */
  .promo-countdown::after{
    content:''; position:absolute; top:0; bottom:0; width:40%; left:-60%;
    background:linear-gradient(100deg, transparent, rgba(255,255,255,.45), transparent);
    animation:promo-shine 3.2s ease-in-out infinite;
  }
  .promo-countdown.hop{ opacity:0; transform:scale(.6); }
  .promo-countdown:hover{ filter:brightness(1.06); }
  .pc-pct{
    font-family:'Montserrat', sans-serif; font-weight:900; font-size:30px; line-height:1; letter-spacing:-1px;
    background:#fff; color:var(--red); border-radius:50px; padding:12px 14px;
    box-shadow:inset 0 0 0 2px var(--gold);
  }
  .pc-body{ display:flex; flex-direction:column; gap:2px; position:relative; z-index:1; }
  .pc-title{ font-family:'Montserrat', sans-serif; font-weight:800; font-size:13px; letter-spacing:1.5px; text-transform:uppercase; color:var(--gold); }
  .pc-text{ font-family:'Montserrat', sans-serif; font-weight:700; font-size:14px; }
  /* emplacements successifs (sans gêner panier, chat ni en-tête) */
  .promo-countdown.pos-0{ left:24px; bottom:24px; }
  .promo-countdown.pos-1{ right:24px; top:150px; }
  .promo-countdown.pos-2{ left:24px; top:50%; }
  .promo-countdown.pos-3{ right:24px; bottom:100px; }
  body.view-admin .promo-countdown{ display:none !important; }
  @keyframes promo-glow{
    0%, 100% { box-shadow:0 14px 34px rgba(215,38,46,.45), 0 0 0 6px rgba(232,199,122,.25); }
    50% { box-shadow:0 18px 40px rgba(215,38,46,.6), 0 0 0 12px rgba(232,199,122,.12); }
  }
  @keyframes promo-shine{ 0%{ left:-60%; } 55%, 100%{ left:130%; } }
  @media (max-width: 640px){
    .promo-countdown{ padding:6px 14px 6px 6px; gap:9px; max-width:calc(100vw - 92px); }
    .pc-pct{ font-size:22px; padding:9px 10px; }
    .pc-title{ font-size:11px; }
    .pc-text{ font-size:12px; }
    .promo-countdown.pos-0{ left:12px; bottom:16px; }
    .promo-countdown.pos-1{ right:12px; top:150px; }
    .promo-countdown.pos-2{ left:12px; top:55%; }
    .promo-countdown.pos-3{ right:12px; bottom:92px; }
  }
  @media (prefers-reduced-motion: reduce){
    .promo-countdown, .promo-countdown::after{ animation:none; }
  }

  /* ---------- CHATBOT ---------- */
  .wa-fab{
    position:fixed; bottom:22px; right:22px; z-index:80; width:58px; height:58px; border-radius:50%;
    background:#25D366; color:#fff; display:flex; align-items:center; justify-content:center;
    box-shadow:0 10px 26px rgba(37,211,102,.45); transition:transform .2s;
  }
  .wa-fab:hover{ transform:scale(1.06); }
  .wa-fab svg{ width:32px; height:32px; fill:currentColor; }
  body.view-admin .wa-fab{ display:none !important; }

  /* ---------- WHATSAPP ---------- */
  .wa-btn{
    display:inline-flex; align-items:center; gap:8px; background:#25D366; color:#fff; border:none;
    padding:12px 20px; font-size:14px; font-weight:600; border-radius:var(--radius); text-decoration:none; cursor:pointer;
  }
  .wa-btn:hover{ filter:brightness(0.95); }
  .wa-btn svg{ width:18px; height:18px; fill:currentColor; }
  .contact-bar{ display:flex; align-items:center; }
  .checkout-wa{ margin-top:10px; }
  .checkout-contact-list{ display:flex; flex-direction:column; gap:2px; }
  .checkout-om{
    display:flex; align-items:center; gap:10px; margin-top:10px; padding:10px 12px;
    background:var(--bg-panel-2); border:1px solid var(--line); border-radius:var(--radius); flex-wrap:wrap;
  }
  .checkout-om .om-label{ font-size:12px; color:var(--muted); }
  .checkout-om .om-number{ font-family:'Montserrat', sans-serif; font-weight:600; color:var(--ink); }
  .checkout-contact-list .contact-menu-item{ padding:8px 4px; }

  /* ---------- MENU CONTACT (dans l'en-tête) ---------- */
  .contact-menu{ position:relative; }
  .contact-menu-btn{
    display:inline-flex; align-items:center; gap:5px; background:none; border:none; color:var(--muted);
    font-size:14px; letter-spacing:0.4px; padding:6px 0; border-bottom:1px solid transparent; transition:all .2s;
  }
  .contact-menu-btn:hover, .contact-menu.open .contact-menu-btn{
    color:var(--navy); border-bottom-color:var(--navy);
  }
  .contact-menu-panel{
    position:absolute; top:calc(100% + 14px); left:50%; transform:translateX(-50%); background:var(--bg-panel);
    border:1px solid var(--line); border-radius:6px; box-shadow:0 10px 28px rgba(22,41,107,0.14); padding:8px;
    min-width:230px; z-index:50; display:none; flex-direction:column;
  }
  .contact-menu.open .contact-menu-panel{ display:flex; }
  .contact-menu-item{
    display:flex; align-items:center; gap:12px; padding:10px; border-radius:4px; color:var(--ink); text-decoration:none;
  }
  .contact-menu-item:hover{ background:var(--bg-panel-2); }
  .contact-menu-item .mi-icon{
    width:34px; height:34px; border-radius:50%; display:flex; align-items:center; justify-content:center;
    background:var(--bg-panel-2); flex-shrink:0; color:var(--navy);
  }
  .contact-menu-item .mi-icon svg{ width:16px; height:16px; fill:currentColor; }
  .contact-menu-item.wa .mi-icon{ color:#25D366; }
  .contact-menu-item.fb .mi-icon{ color:#1877F2; }
  .contact-menu-item.bell{ width:100%; background:none; border:none; text-align:left; font-family:inherit; }
  .contact-menu-item.bell .mi-icon{ color:var(--wine); }
  .contact-menu-item .mi-text{ font-size:14px; line-height:1.3; }
  .contact-menu-item .mi-number{ display:block; font-family:'Montserrat', sans-serif; font-size:12px; color:var(--muted); margin-top:2px; }

  /* ---------- MOT DE PASSE ---------- */
  .pw-field{ position:relative; }
  .pw-field input.text-input{ padding-right:74px; }
  .pw-toggle{
    position:absolute; right:6px; top:50%; transform:translateY(-50%);
    background:none; border:none; color:var(--muted); font-size:11px; cursor:pointer; padding:6px 8px; margin:0;
    font-family:'Montserrat', sans-serif; letter-spacing:.3px;
  }
  .pw-toggle:hover{ color:var(--navy); }
  .forgot-link{
    display:inline-block; background:none; border:none; color:var(--navy-light); font-size:12px;
    text-decoration:underline; cursor:pointer; padding:0; margin:-4px 0 14px;
  }

  /* ---------- LOGIN GATE ---------- */
  .login-shell{ max-width:400px; margin:70px auto; text-align:center; }
  .login-shell img{ height:70px; margin-bottom:18px;}
  .login-shell h2{ font-family:'Montserrat', sans-serif; font-size:26px; color:var(--navy); margin:0 0 6px; font-weight:800;}
  .login-shell p.sub{ color:var(--muted); font-size:13px; margin:0 0 26px;}
  .login-panel{ background:var(--bg-panel); border:1px solid var(--line); border-radius:12px; padding:28px; text-align:left; box-shadow:0 10px 30px rgba(22,41,107,0.07);}
  .login-panel label{ font-size:12px; color:var(--muted); display:block; margin-bottom:6px; }
