/* ============================================
   IMPRIXO — Design System v3
   Style d'après /design (main branch)
   Primary Blue #0052CC + Secondary Orange #FF6B00
   ============================================ */

/* === VARIABLES === */
:root {
  /* Primary — Bleu */
  --primary:       #0052CC;
  --primary-50:    #E6F0FF;
  --primary-100:   #CCE0FF;
  --primary-500:   #0052CC;
  --primary-600:   #0047B3;
  --primary-700:   #003D99;
  --primary-800:   #003380;
  --primary-200:   #99BFFF;
  --primary-300:   #6699FF;
  --primary-400:   #3370FF;
  --primary-900:   #002966;

  /* Secondary — Orange */
  --secondary:     #FF6B00;
  --secondary-50:  #FFF3E6;
  --secondary-100: #FFE0B3;
  --secondary-200: #FFCC80;
  --secondary-500: #FF6B00;
  --secondary-600: #E65100;
  --secondary-700: #CC4700;

  /* Aliases (compatibilité configurator.css) */
  --navy:          var(--primary);
  --navy-dark:     var(--primary-900);
  --navy-mid:      var(--primary-700);
  --navy-light:    var(--primary-50);
  --orange:        var(--secondary);
  --orange-dark:   var(--secondary-600);
  --orange-light:  var(--secondary-50);
  --orange-glow:   rgba(255,107,0,.18);

  /* Neutres */
  --white:         #ffffff;
  --gray-50:       #F9FAFB;
  --gray-100:      #F3F4F6;
  --gray-200:      #E5E7EB;
  --gray-300:      #D1D5DB;
  --gray-400:      #9CA3AF;
  --gray-500:      #6B7280;
  --gray-600:      #4B5563;
  --gray-700:      #374151;
  --gray-800:      #1F2937;
  --gray-900:      #111827;

  /* Fonctionnelles */
  --success:       #059669;
  --success-bg:    #D1FAE5;
  --warning:       #D97706;
  --warning-bg:    #FEF3C7;
  --danger:        #DC2626;
  --danger-bg:     #FEE2E2;
  --info:          #0284C7;
  --info-bg:       #DBEAFE;

  /* Typo */
  --font:          'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;

  /* Layout */
  --max-width:     1280px;
  --gutter:        24px;

  /* Bordures */
  --radius-sm:     4px;
  --radius:        8px;
  --radius-lg:     12px;
  --radius-xl:     20px;
  --radius-full:   9999px;

  /* Ombres */
  --shadow-xs:     0 1px 2px rgba(0,0,0,.06);
  --shadow-sm:     0 1px 4px rgba(0,0,0,.08);
  --shadow:        0 2px 8px rgba(0,0,0,.10);
  --shadow-md:     0 4px 16px rgba(0,0,0,.10);
  --shadow-lg:     0 8px 32px rgba(0,0,0,.12);
  --shadow-xl:     0 16px 48px rgba(0,0,0,.16);

  /* Transitions */
  --t:             .2s ease;
  --t-slow:        .35s ease;
}

/* === RESET === */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;font-size:16px;-webkit-text-size-adjust:100%}
body{font-family:var(--font);color:var(--gray-800);background:var(--white);line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
button{cursor:pointer;font-family:var(--font)}
input,textarea,select{font-family:var(--font)}
ul,ol{list-style:none}

/* === LAYOUT === */
.container{max-width:var(--max-width);margin:0 auto;padding:0 var(--gutter)}
.section{padding:80px 0}
.section--sm{padding:56px 0}
.section--xs{padding:32px 0}

/* ==========================================
   TOPBAR
   ========================================== */
.topbar{background:var(--primary-900);color:rgba(255,255,255,.85);font-size:12.5px;font-weight:500;padding:8px 0}
.topbar-inner{display:flex;align-items:center;justify-content:space-between;gap:16px}
.topbar-left{display:flex;align-items:center;gap:20px}
.topbar-left a{display:flex;align-items:center;gap:5px;color:rgba(255,255,255,.75);transition:color var(--t)}
.topbar-left a:hover{color:white}
.topbar-center{flex:1;text-align:center;font-weight:600;display:flex;align-items:center;justify-content:center;gap:6px}
.topbar-right{display:flex;align-items:center;gap:12px}
.topbar-right a{color:rgba(255,255,255,.75);transition:color var(--t)}
.topbar-right a:hover{color:white}

/* ==========================================
   HEADER
   ========================================== */
.header{background:white;position:sticky;top:0;z-index:1000;border-bottom:1px solid var(--gray-200);box-shadow:0 1px 3px rgba(0,0,0,.06)}
.header-inner{height:72px;display:flex;align-items:center;gap:20px}

/* Logo deux tons */
.logo{flex-shrink:0;display:flex;align-items:center;text-decoration:none}
.logo-impri{font-size:26px;font-weight:900;color:var(--primary);letter-spacing:-1px;line-height:1}
.logo-xo{font-size:26px;font-weight:900;color:var(--secondary);letter-spacing:-1px;line-height:1}

/* Recherche */
.search-wrap{flex:1;max-width:520px;position:relative}
.search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--gray-400);font-size:16px;pointer-events:none}
.search-wrap input{width:100%;height:44px;padding:0 110px 0 42px;border:1.5px solid var(--gray-200);border-radius:var(--radius-lg);font-size:13.5px;outline:none;background:var(--gray-50);transition:border-color var(--t),box-shadow var(--t),background var(--t)}
.search-wrap input:focus{border-color:var(--primary);background:white;box-shadow:0 0 0 3px rgba(0,82,204,.12)}
.search-wrap input::placeholder{color:var(--gray-400)}
.search-btn{position:absolute;right:4px;top:4px;bottom:4px;padding:0 18px;background:var(--primary);color:white;border:none;border-radius:var(--radius);font-size:13px;font-weight:700;transition:background var(--t)}
.search-btn:hover{background:var(--primary-600)}
.search-autocomplete{position:absolute;top:calc(100% + 8px);left:0;right:0;background:white;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);border:1px solid var(--gray-200);z-index:999;max-height:400px;overflow-y:auto;display:none}
.search-autocomplete.active{display:block}
.search-result-item{display:flex;align-items:center;gap:12px;padding:10px 16px;border-bottom:1px solid var(--gray-100);cursor:pointer;transition:background var(--t)}
.search-result-item:hover{background:var(--gray-50)}
.search-result-img{width:40px;height:40px;border-radius:var(--radius);background:var(--gray-100);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:18px;overflow:hidden}
.search-result-img img{width:100%;height:100%;object-fit:cover}
.search-result-name{font-size:13.5px;font-weight:600;color:var(--gray-800)}
.search-result-cat{font-size:11.5px;color:var(--gray-500);margin-top:2px}
.search-result-price{margin-left:auto;font-size:13px;font-weight:700;color:var(--secondary);white-space:nowrap}

/* Actions header */
.header-actions{display:flex;align-items:center;gap:8px;margin-left:auto}
.btn-icon{display:flex;align-items:center;gap:6px;padding:8px 14px;border-radius:var(--radius);font-size:13.5px;font-weight:500;color:var(--gray-600);transition:background var(--t),color var(--t);border:none;background:transparent}
.btn-icon:hover{background:var(--gray-100);color:var(--primary)}
.btn-cart{position:relative;display:flex;align-items:center;gap:8px;padding:10px 20px;background:var(--secondary);color:white;border:none;border-radius:var(--radius);font-size:14px;font-weight:700;transition:all var(--t)}
.btn-cart:hover{background:var(--secondary-600);transform:translateY(-1px);box-shadow:0 4px 14px rgba(255,107,0,.3)}
.cart-count{position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;padding:0 4px;background:var(--primary);color:white;border-radius:var(--radius-full);font-size:10px;font-weight:800;display:flex;align-items:center;justify-content:center;border:2px solid white}

/* ==========================================
   NAV CATÉGORIES (blanc, liens gris → bleu)
   ========================================== */
.nav-cats{background:white;border-bottom:1px solid var(--gray-200);position:relative;z-index:900}
.nav-cats-inner{display:flex;align-items:stretch;overflow-x:auto;scrollbar-width:none}
.nav-cats-inner::-webkit-scrollbar{display:none}
.nav-cat-item{position:relative;flex-shrink:0}
.nav-cat-link{display:flex;align-items:center;gap:5px;padding:12px 16px;color:var(--gray-600);font-size:13px;font-weight:500;white-space:nowrap;transition:color var(--t),background var(--t);border-bottom:2px solid transparent;margin-bottom:-1px}
.nav-cat-link:hover,.nav-cat-link.active{color:var(--primary);background:var(--primary-50);border-bottom-color:var(--primary)}
.nav-cat-link .chevron{font-size:10px;opacity:.5}

/* Mega-menu */
.megamenu{position:absolute;top:100%;left:0;min-width:220px;background:white;border-radius:0 var(--radius-lg) var(--radius-lg) var(--radius-lg);box-shadow:var(--shadow-xl);border:1px solid var(--gray-200);border-top:3px solid var(--primary);z-index:999;opacity:0;pointer-events:none;transform:translateY(-6px);transition:opacity var(--t),transform var(--t)}
.nav-cat-item:hover .megamenu{opacity:1;pointer-events:all;transform:translateY(0)}
.megamenu-header{padding:10px 16px;background:var(--primary-50);border-bottom:1px solid var(--gray-100);font-size:11px;font-weight:700;color:var(--primary);text-transform:uppercase;letter-spacing:.6px}
.megamenu a{display:flex;align-items:center;gap:8px;padding:9px 16px;font-size:13px;color:var(--gray-600);border-bottom:1px solid var(--gray-50);transition:all var(--t)}
.megamenu a:hover{color:var(--primary);background:var(--primary-50);padding-left:22px}
.megamenu a:last-child{border-bottom:none}

/* ==========================================
   BOUTONS
   ========================================== */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 28px;border-radius:var(--radius);font-size:14.5px;font-weight:700;border:2px solid transparent;transition:all var(--t);cursor:pointer;text-decoration:none;line-height:1;white-space:nowrap}
.btn--primary{background:var(--secondary);color:white;box-shadow:0 2px 8px rgba(255,107,0,.25)}
.btn--primary:hover{background:var(--secondary-600);transform:translateY(-1px);box-shadow:0 4px 16px rgba(255,107,0,.35)}
.btn--blue{background:var(--primary);color:white;box-shadow:0 2px 8px rgba(0,82,204,.2)}
.btn--blue:hover{background:var(--primary-600);transform:translateY(-1px)}
.btn--navy{background:var(--primary);color:white}
.btn--navy:hover{background:var(--primary-600);transform:translateY(-1px)}
.btn--outline-navy{border-color:var(--primary);color:var(--primary)}
.btn--outline-navy:hover{background:var(--primary);color:white}
.btn--outline{border-color:var(--gray-300);color:var(--gray-700)}
.btn--outline:hover{border-color:var(--gray-400);background:var(--gray-50)}
.btn--white{background:white;color:var(--primary);border-color:white}
.btn--white:hover{background:var(--gray-100)}
.btn--ghost{background:rgba(255,255,255,.12);color:white;border-color:rgba(255,255,255,.35)}
.btn--ghost:hover{background:rgba(255,255,255,.22)}
.btn--sm{padding:8px 18px;font-size:13px}
.btn--lg{padding:14px 32px;font-size:15px}
.btn--xl{padding:16px 40px;font-size:16px}
.btn--full{width:100%}
.btn--round{border-radius:var(--radius-full)}

/* ==========================================
   HERO — Gradient bleu centré
   ========================================== */
.hero{background:linear-gradient(135deg,var(--primary-600) 0%,var(--primary-800) 50%,#001A4D 100%);color:white;padding:96px 0;position:relative;overflow:hidden}
.hero::before{content:'';position:absolute;inset:0;background-image:radial-gradient(circle at 1px 1px,rgba(255,255,255,.15) 1px,transparent 0);background-size:40px 40px;pointer-events:none;z-index:0}
.hero .container{position:relative;z-index:1}
.hero-content{position:relative;z-index:1;max-width:780px;margin:0 auto;text-align:center}
.hero-badge{display:inline-flex;align-items:center;gap:6px;background:var(--secondary-50);color:var(--secondary-600);padding:5px 16px;border-radius:var(--radius-full);font-size:13px;font-weight:700;margin-bottom:24px}
.hero h1{font-size:clamp(30px,5vw,56px);font-weight:900;line-height:1.1;letter-spacing:-.7px;margin-bottom:20px}
.hero h1 .accent{background:linear-gradient(135deg,var(--secondary-500),var(--secondary-600));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.hero-sub{font-size:18px;line-height:1.7;color:rgba(255,255,255,.82);margin-bottom:36px;max-width:600px;margin-left:auto;margin-right:auto}
.hero-ctas{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;margin-bottom:48px}
.hero-trust{display:flex;gap:28px;justify-content:center;flex-wrap:wrap;padding-top:28px;border-top:1px solid rgba(255,255,255,.12)}
.hero-trust-item{display:flex;align-items:center;gap:7px;font-size:13px;color:rgba(255,255,255,.75)}

/* ==========================================
   RÉASSURANCE (sous nav si besoin)
   ========================================== */
.reassurance{border-bottom:1px solid var(--gray-200);background:white}
.reassurance-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
.reassurance-item{display:flex;align-items:center;gap:12px;padding:18px 20px;border-right:1px solid var(--gray-100);transition:background var(--t)}
.reassurance-item:last-child{border-right:none}
.reassurance-item:hover{background:var(--primary-50)}
.reassurance-icon{width:40px;height:40px;background:var(--primary-50);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0;transition:background var(--t)}
.reassurance-item:hover .reassurance-icon{background:rgba(255,107,0,.1)}
.reassurance-text strong{display:block;font-size:13px;font-weight:700;color:var(--gray-800)}
.reassurance-text span{font-size:11.5px;color:var(--gray-500)}

/* ==========================================
   BADGES
   ========================================== */
.badge{display:inline-flex;align-items:center;padding:3px 9px;border-radius:var(--radius-full);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}
.badge--new     {background:var(--secondary);color:white}
.badge--promo   {background:#dc2626;color:white}
.badge--express {background:var(--success);color:white}
.badge--eco     {background:#15803d;color:white}
.badge--premium {background:var(--primary);color:white}
.badge--m1      {background:#7c3aed;color:white}
.badge--b1      {background:#0369a1;color:white}

/* ==========================================
   SECTION TITLES
   ========================================== */
.section-header{margin-bottom:48px;text-align:center}
.section-tag{display:inline-block;background:var(--primary-50);color:var(--primary);padding:4px 14px;border-radius:var(--radius-full);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;margin-bottom:12px}
.section-title{font-size:clamp(24px,3.5vw,36px);font-weight:900;color:var(--gray-900);line-height:1.2;letter-spacing:-.3px}
.section-title .accent{color:var(--secondary)}
.section-sub{margin-top:14px;font-size:16px;color:var(--gray-500);max-width:600px;line-height:1.65;margin-left:auto;margin-right:auto}

/* ==========================================
   CATÉGORIES — Cards à icône bleue
   ========================================== */
.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}
.cat-card{display:flex;align-items:center;gap:12px;padding:14px 16px;background:white;border:1px solid var(--gray-200);border-radius:var(--radius-lg);text-decoration:none;color:inherit;transition:all var(--t)}
.cat-card:hover{border-color:var(--primary-100);box-shadow:var(--shadow-md);transform:translateY(-2px)}
.cat-card:hover .cat-name{color:var(--primary)}
.cat-icon-wrap{width:40px;height:40px;background:var(--primary-50);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0;transition:background var(--t)}
.cat-card:hover .cat-icon-wrap{background:var(--primary-100)}
.cat-name{font-size:13.5px;font-weight:600;color:var(--gray-800);line-height:1.3;transition:color var(--t)}
.cat-count{font-size:11px;color:var(--gray-400);margin-top:2px}

/* Ancien style (compat home) */
.cat-emoji{font-size:32px;margin-bottom:8px;transition:transform var(--t)}
.cat-card:hover .cat-emoji{transform:scale(1.12)}

/* ==========================================
   PRODUCT CARDS
   ========================================== */
.product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:18px}
.product-card{background:white;border-radius:var(--radius-lg);border:1px solid var(--gray-200);transition:all var(--t);overflow:hidden;display:flex;flex-direction:column;text-decoration:none;color:inherit}
.product-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px);border-color:transparent}
.product-card__image{aspect-ratio:1/1;background:linear-gradient(135deg,var(--gray-50),var(--gray-100));overflow:hidden;position:relative;display:flex;align-items:center;justify-content:center}
.product-card__image img{width:100%;height:100%;object-fit:contain;padding:12px;transition:transform .45s ease}
.product-card:hover .product-card__image img{transform:scale(1.06)}
.product-card__img-placeholder{display:flex;flex-direction:column;align-items:center;gap:8px;color:rgba(255,255,255,.7);font-size:40px;text-align:center}
.product-card__img-placeholder small{font-size:11.5px;font-weight:600;color:rgba(255,255,255,.85);padding:0 12px;text-align:center;line-height:1.4}
/* Gradients catégories — identiques au design */
.cat-gradient-roll-ups{background:linear-gradient(135deg,#3b82f6,#1d4ed8)}
.cat-gradient-beach-flags{background:linear-gradient(135deg,#f97316,#dc2626)}
.cat-gradient-baches{background:linear-gradient(135deg,#10b981,#0d9488)}
.cat-gradient-stands-led,.cat-gradient-led{background:linear-gradient(135deg,#8b5cf6,#7c3aed)}
.cat-gradient-pop-up{background:linear-gradient(135deg,#06b6d4,#2563eb)}
.cat-gradient-murs{background:linear-gradient(135deg,#e879f9,#db2777)}
.cat-gradient-comptoirs{background:linear-gradient(135deg,#10b981,#059669)}
.cat-gradient-default{background:linear-gradient(135deg,var(--primary-500),var(--primary-700))}
.badges-wrap{position:absolute;top:10px;left:10px;display:flex;flex-direction:column;gap:4px}
.product-card__body{padding:14px 16px 10px;flex:1}
.product-name{font-size:13.5px;font-weight:600;color:var(--gray-800);line-height:1.4;margin-bottom:4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.product-cat{font-size:11.5px;color:var(--gray-400);margin-bottom:8px}
.product-tags{display:flex;gap:4px;flex-wrap:wrap}
.product-tag{font-size:10.5px;padding:2px 8px;background:var(--gray-100);border-radius:var(--radius-full);color:var(--gray-600);font-weight:500}
.product-card__footer{padding:12px 16px;border-top:1px solid var(--gray-100);display:flex;align-items:center;justify-content:space-between;gap:8px}
.price-block .price-from{display:block;font-size:10px;color:var(--gray-400);text-transform:uppercase;letter-spacing:.4px;margin-bottom:1px}
.price-block .price-main{font-size:20px;font-weight:800;color:var(--primary-600);line-height:1}
.price-block .price-unit{font-size:11px;color:var(--gray-500)}
.price-block .price-old{font-size:12px;color:var(--gray-400);text-decoration:line-through}
.btn-config{flex-shrink:0;padding:8px 14px;background:var(--primary);color:white;border:none;border-radius:var(--radius);font-size:12px;font-weight:700;transition:background var(--t)}
.btn-config:hover{background:var(--primary-600)}

/* ==========================================
   ÉTAPES — Comment ça marche
   ========================================== */
.steps-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;position:relative}
.steps-grid::before{content:'';position:absolute;top:40px;left:calc(12.5% + 20px);right:calc(12.5% + 20px);height:2px;background:var(--gray-200);z-index:0;pointer-events:none}
.step-card{text-align:center;padding:28px 16px;background:white;border:1px solid var(--gray-100);border-radius:var(--radius-lg);transition:all var(--t);position:relative;z-index:1}
.step-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}
.step-icon-wrap{width:80px;height:80px;background:var(--primary-50);border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:32px;margin:0 auto 18px;position:relative}
.step-num-badge{position:absolute;top:-8px;right:-8px;width:24px;height:24px;background:var(--secondary);color:white;border-radius:50%;font-size:11px;font-weight:900;display:flex;align-items:center;justify-content:center}
.step-title{font-size:16px;font-weight:700;color:var(--gray-900);margin-bottom:8px}
.step-desc{font-size:13.5px;color:var(--gray-500);line-height:1.6}
@media(max-width:900px){.steps-grid{grid-template-columns:repeat(2,1fr)}.steps-grid::before{display:none}}
@media(max-width:480px){.steps-grid{grid-template-columns:1fr}.step-icon-wrap{width:64px;height:64px;font-size:26px}}

/* ==========================================
   AVANTAGES
   ========================================== */
.advantages-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:24px}
.advantage-card{padding:28px;background:white;border:1px solid var(--gray-100);border-radius:var(--radius-lg);transition:all var(--t)}
.advantage-card:hover{box-shadow:var(--shadow-md);border-color:var(--primary-100)}
.advantage-icon{width:48px;height:48px;background:var(--primary-50);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;font-size:22px;margin-bottom:16px}
.advantage-title{font-size:16px;font-weight:700;color:var(--gray-900);margin-bottom:10px}
.advantage-desc{font-size:13.5px;color:var(--gray-500);line-height:1.65}

/* ==========================================
   SECTEURS
   ========================================== */
.sector-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}
.sector-card{background:white;border:1px solid var(--gray-200);border-radius:var(--radius-lg);padding:22px;transition:all var(--t)}
.sector-card:hover{border-color:var(--primary-200);box-shadow:var(--shadow-md);transform:translateY(-2px)}
.sector-card-icon{font-size:28px;margin-bottom:12px}
.sector-card-name{font-size:14px;font-weight:700;color:var(--gray-800);margin-bottom:6px}
.sector-card-desc{font-size:13px;color:var(--gray-500);line-height:1.5}

/* ==========================================
   FORMULAIRES
   ========================================== */
.form-group{margin-bottom:18px}
.form-label{display:block;font-size:13.5px;font-weight:600;color:var(--gray-700);margin-bottom:6px}
.form-label .required{color:var(--danger)}
.form-control{width:100%;height:44px;padding:0 14px;border:1.5px solid var(--gray-300);border-radius:var(--radius);font-size:14px;color:var(--gray-800);background:white;transition:border-color var(--t),box-shadow var(--t);outline:none}
.form-control:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(0,82,204,.12)}
textarea.form-control{height:auto;padding:12px 14px;resize:vertical;min-height:100px}
select.form-control{cursor:pointer}
.form-error{font-size:12px;color:var(--danger);margin-top:5px}
.form-help{font-size:12px;color:var(--gray-500);margin-top:5px}
.form-check{display:flex;align-items:center;gap:8px}
.form-check input[type=checkbox]{width:16px;height:16px;accent-color:var(--primary)}

/* ==========================================
   ALERTS
   ========================================== */
.alert{padding:14px 18px;border-radius:var(--radius);display:flex;align-items:flex-start;gap:12px;font-size:14px;margin-bottom:16px}
.alert--success{background:var(--success-bg);color:#065f46;border:1px solid #a7f3d0}
.alert--warning{background:var(--warning-bg);color:#78350f;border:1px solid #fcd34d}
.alert--danger {background:var(--danger-bg) ;color:#991b1b;border:1px solid #fca5a5}
.alert--info   {background:var(--info-bg)   ;color:#1e3a8a;border:1px solid #93c5fd}

/* ==========================================
   TABS
   ========================================== */
.tabs{border-bottom:2px solid var(--gray-200);margin-bottom:28px}
.tabs-list{display:flex;overflow-x:auto;scrollbar-width:none}
.tab-btn{padding:12px 22px;font-size:14px;font-weight:600;color:var(--gray-500);background:none;border:none;border-bottom:3px solid transparent;margin-bottom:-2px;white-space:nowrap;transition:all var(--t);cursor:pointer}
.tab-btn:hover{color:var(--primary)}
.tab-btn.active{color:var(--primary);border-bottom-color:var(--primary)}
.tab-panel{display:none}
.tab-panel.active{display:block}

/* ==========================================
   BREADCRUMB
   ========================================== */
.breadcrumb{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-size:13px;color:var(--gray-500);padding:14px 0}
.breadcrumb a{color:var(--gray-500)}
.breadcrumb a:hover{color:var(--primary)}
.breadcrumb-sep{color:var(--gray-300)}
.breadcrumb-current{color:var(--gray-800);font-weight:600}

/* ==========================================
   PRODUCT PAGE
   ========================================== */
.product-page{display:grid;grid-template-columns:1fr 420px;gap:48px;align-items:start;padding:28px 0 60px}
.product-main-img{width:100%;border-radius:var(--radius-lg);background:var(--gray-50);border:1px solid var(--gray-200);aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;overflow:hidden;font-size:60px;color:var(--gray-300)}
.product-main-img img{width:100%;height:100%;object-fit:cover}
.product-specs{background:var(--gray-50);border-radius:var(--radius-lg);padding:22px;margin-top:24px;border:1px solid var(--gray-200)}
.specs-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.spec-item{font-size:13px}
.spec-label{display:block;font-size:10.5px;text-transform:uppercase;letter-spacing:.5px;color:var(--gray-500);margin-bottom:2px;font-weight:600}
.spec-value{font-weight:700;color:var(--gray-900)}

/* Configurateur sidebar */
.product-sidebar{position:sticky;top:88px}
.config-card{background:white;border:1.5px solid var(--gray-200);border-radius:var(--radius-xl);padding:28px;box-shadow:var(--shadow)}
.config-title{font-size:20px;font-weight:900;color:var(--gray-900);line-height:1.3;margin-bottom:8px}
.config-gamme{display:inline-block;padding:4px 12px;background:var(--primary-50);color:var(--primary);border-radius:var(--radius-full);font-size:11.5px;font-weight:700;margin-bottom:20px}

/* Prix configurateur */
.config-price-box{background:linear-gradient(135deg,var(--primary-800) 0%,var(--primary-900) 100%);border-radius:var(--radius-lg);padding:20px 22px;margin-bottom:24px;color:white}
.config-price-label{font-size:11px;color:rgba(255,255,255,.6);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}
.config-price-main{font-size:40px;font-weight:900;line-height:1;color:white}
.config-price-unit{font-size:18px;font-weight:500;color:rgba(255,255,255,.7)}
.config-price-ttc{font-size:12px;color:rgba(255,255,255,.55);margin-top:4px}
.config-total{font-size:13px;color:rgba(255,255,255,.7);margin-top:10px;padding-top:10px;border-top:1px solid rgba(255,255,255,.12)}
.config-total strong{color:#ffb899;font-weight:800}

/* Paliers de prix */
.price-tiers{width:100%;border-collapse:collapse;margin-bottom:22px;font-size:13px}
.price-tiers th{padding:8px 12px;text-align:left;background:var(--gray-50);font-size:11px;font-weight:700;color:var(--gray-500);text-transform:uppercase;letter-spacing:.4px;border-bottom:2px solid var(--gray-200)}
.price-tiers td{padding:10px 12px;border-bottom:1px solid var(--gray-100)}
.price-tiers tr:last-child td{border-bottom:none}
.price-tiers tr.active-tier td{background:var(--primary-50)}
.price-tiers tr.active-tier .price-col{color:var(--primary)}
.price-tiers .price-col{font-weight:900;color:var(--gray-900);font-size:15px}
.tier-best{display:inline-block;padding:2px 6px;background:var(--success);color:white;border-radius:20px;font-size:9px;font-weight:800;text-transform:uppercase;margin-left:6px;vertical-align:middle}

/* Quantité */
.qty-selector{display:flex;align-items:stretch;border:1.5px solid var(--gray-300);border-radius:var(--radius);overflow:hidden;height:50px}
.qty-btn{width:52px;border:none;background:var(--gray-50);color:var(--gray-700);font-size:22px;font-weight:400;cursor:pointer;transition:background var(--t);flex-shrink:0;display:flex;align-items:center;justify-content:center}
.qty-btn:hover{background:var(--gray-200)}
.qty-input{flex:1;border:none;border-left:1.5px solid var(--gray-200);border-right:1.5px solid var(--gray-200);text-align:center;font-size:18px;font-weight:800;color:var(--gray-900);outline:none;width:100%;padding:0}

/* Options produit */
.option-check-label{display:flex;align-items:center;gap:10px;padding:10px 14px;border:1.5px solid var(--gray-200);border-radius:var(--radius);cursor:pointer;transition:all var(--t);font-size:13px;margin-bottom:8px}
.option-check-label:hover{border-color:var(--primary);background:var(--primary-50)}
.option-check-label input{accent-color:var(--primary);width:16px;height:16px;flex-shrink:0}

/* Zone dépôt fichier */
.file-drop-zone{border:2px dashed var(--gray-300);border-radius:var(--radius-lg);padding:20px;text-align:center;cursor:pointer;transition:all var(--t);background:var(--gray-50);margin-bottom:20px}
.file-drop-zone:hover,.file-drop-zone.drag-over{border-color:var(--primary);background:var(--primary-50)}
.file-drop-icon{font-size:28px;margin-bottom:6px}
.file-drop-text{font-size:13px;color:var(--gray-600);font-weight:500}
.file-drop-hint{font-size:11px;color:var(--gray-400);margin-top:4px}
.file-drop-zone input[type=file]{display:none}
.file-name-display{margin-top:8px;font-size:12px;color:var(--success);font-weight:600}

/* Infos livraison */
.config-infos{display:flex;flex-direction:column;gap:8px;margin:16px 0;padding:14px 16px;background:var(--gray-50);border-radius:var(--radius);font-size:13px;color:var(--gray-600)}
.config-info-item{display:flex;align-items:center;gap:8px}
.config-info-item strong{color:var(--gray-800)}

/* ==========================================
   PANIER
   ========================================== */
.cart-layout{display:grid;grid-template-columns:1fr 340px;gap:28px;align-items:start}
.cart-items{background:white;border-radius:var(--radius-lg);border:1px solid var(--gray-200);overflow:hidden}
.cart-item{display:grid;grid-template-columns:76px 1fr auto auto;gap:16px;align-items:center;padding:18px 20px;border-bottom:1px solid var(--gray-100)}
.cart-item:last-child{border-bottom:none}
.cart-item-img{width:76px;height:76px;border-radius:var(--radius);background:var(--gray-100);display:flex;align-items:center;justify-content:center;font-size:24px;overflow:hidden;flex-shrink:0}
.cart-item-img img{width:100%;height:100%;object-fit:cover}
.cart-item-name{font-weight:700;color:var(--gray-900);font-size:14px;margin-bottom:3px}
.cart-item-cat{font-size:12px;color:var(--gray-500)}
.cart-item-total{font-size:17px;font-weight:900;color:var(--secondary);white-space:nowrap}
.cart-summary{background:white;border-radius:var(--radius-lg);border:1px solid var(--gray-200);padding:24px;position:sticky;top:88px}
.cart-summary-row{display:flex;justify-content:space-between;align-items:center;padding:9px 0;font-size:14px;color:var(--gray-700)}
.cart-summary-row.total{border-top:2px solid var(--gray-200);margin-top:8px;padding-top:16px;font-size:20px;font-weight:900;color:var(--gray-900)}
.cart-empty{text-align:center;padding:64px 24px}
.cart-empty-icon{font-size:56px;margin-bottom:20px}

/* ==========================================
   CHECKOUT
   ========================================== */
.checkout-layout{display:grid;grid-template-columns:1fr 340px;gap:28px;align-items:start}
.checkout-section{background:white;border-radius:var(--radius-lg);border:1px solid var(--gray-200);padding:24px;margin-bottom:18px}
.checkout-section h3{font-size:16px;font-weight:800;color:var(--gray-900);margin-bottom:20px;padding-bottom:12px;border-bottom:1px solid var(--gray-100)}
.shipping-opt{display:flex;align-items:center;gap:14px;padding:14px 16px;border:1.5px solid var(--gray-200);border-radius:var(--radius);cursor:pointer;transition:border-color var(--t);margin-bottom:10px}
.shipping-opt:hover,.shipping-opt.selected{border-color:var(--primary);background:var(--primary-50)}
.shipping-opt input[type=radio]{accent-color:var(--primary)}

/* ==========================================
   NEWSLETTER — Bande bleue
   ========================================== */
.newsletter-band{background:var(--primary-600);color:white;padding:48px 0}
.newsletter-band-inner{display:flex;align-items:center;justify-content:space-between;gap:32px;flex-wrap:wrap}
.newsletter-band h3{font-size:22px;font-weight:800;margin-bottom:4px}
.newsletter-band p{font-size:14px;color:rgba(255,255,255,.8)}
.newsletter-band form{display:flex;gap:8px;flex:1;max-width:420px}
.newsletter-band input{flex:1;height:46px;padding:0 16px;border-radius:var(--radius);border:none;font-size:14px;outline:none;background:rgba(255,255,255,.15);color:white}
.newsletter-band input::placeholder{color:rgba(255,255,255,.5)}
.newsletter-band input:focus{background:rgba(255,255,255,.25)}
.newsletter-band button{height:46px;padding:0 20px;background:var(--secondary);color:white;border:none;border-radius:var(--radius);font-weight:700;font-size:14px;cursor:pointer;white-space:nowrap;transition:background var(--t)}
.newsletter-band button:hover{background:var(--secondary-600)}

/* ==========================================
   FOOTER — Dark gray-900
   ========================================== */
.footer{background:var(--gray-900);color:rgba(255,255,255,.65);margin-top:0}
.footer-top{padding:64px 0 48px;border-bottom:1px solid rgba(255,255,255,.07)}
.footer-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:40px}
.footer-col-title{font-size:11.5px;font-weight:800;text-transform:uppercase;letter-spacing:.8px;color:white;margin-bottom:18px}
.footer-col a{display:block;font-size:13.5px;color:rgba(255,255,255,.55);margin-bottom:10px;transition:color var(--t)}
.footer-col a:hover{color:white}
.footer-logo{display:flex;align-items:center;margin-bottom:16px}
.footer-logo-impri{font-size:24px;font-weight:900;color:var(--primary-300)}
.footer-logo-xo{font-size:24px;font-weight:900;color:var(--secondary)}
.footer-desc{font-size:13.5px;line-height:1.75;color:rgba(255,255,255,.5);margin-bottom:24px}
.footer-contacts a{display:flex;align-items:center;gap:8px;font-size:13px;color:rgba(255,255,255,.55);margin-bottom:8px;transition:color var(--t)}
.footer-contacts a:hover{color:white}
.social-links{display:flex;gap:10px;margin-top:20px}
.social-link{width:36px;height:36px;background:rgba(255,255,255,.08);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;color:white;font-size:16px;transition:all var(--t)}
.social-link:hover{background:var(--secondary);transform:translateY(-2px)}
.footer-bottom{padding:20px 0;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:12px;color:rgba(255,255,255,.3)}
.footer-bottom a{color:rgba(255,255,255,.3)}
.footer-bottom a:hover{color:rgba(255,255,255,.7)}
.footer-bottom-links{display:flex;gap:20px}

/* ==========================================
   COMPTE
   ========================================== */
.account-layout{display:grid;grid-template-columns:240px 1fr;gap:24px;align-items:start}
.account-nav{background:white;border-radius:var(--radius-lg);border:1px solid var(--gray-200);overflow:hidden;position:sticky;top:88px}
.account-nav a{display:flex;align-items:center;gap:10px;padding:13px 20px;font-size:14px;color:var(--gray-700);border-left:3px solid transparent;transition:all var(--t);border-bottom:1px solid var(--gray-100)}
.account-nav a:last-child{border-bottom:none}
.account-nav a:hover{color:var(--primary);background:var(--primary-50)}
.account-nav a.active{color:var(--primary);border-left-color:var(--primary);background:var(--primary-50);font-weight:600}
.account-content{background:white;border-radius:var(--radius-lg);border:1px solid var(--gray-200);padding:32px}

/* ==========================================
   CATALOGUE
   ========================================== */
.catalog-layout{display:grid;grid-template-columns:240px 1fr;gap:28px;align-items:start;padding:28px 0 60px}
.catalog-sidebar{position:sticky;top:88px}
.catalog-sidebar-card{background:white;border-radius:var(--radius-lg);border:1px solid var(--gray-200);overflow:hidden;margin-bottom:16px}
.catalog-sidebar-title{padding:12px 16px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.6px;color:var(--gray-500);background:var(--gray-50);border-bottom:1px solid var(--gray-200)}
.catalog-cat-link{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;font-size:13.5px;color:var(--gray-700);border-bottom:1px solid var(--gray-100);transition:all var(--t)}
.catalog-cat-link:last-child{border-bottom:none}
.catalog-cat-link:hover{color:var(--primary);background:var(--primary-50)}
.catalog-cat-link.active{color:var(--primary);font-weight:700;background:var(--primary-50);border-left:3px solid var(--primary)}
.catalog-cat-count{font-size:11.5px;color:var(--gray-400)}
.catalog-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:20px;background:white;padding:12px 16px;border-radius:var(--radius);border:1px solid var(--gray-200)}
.catalog-count{font-size:13.5px;color:var(--gray-600)}
.catalog-count strong{color:var(--gray-900)}
.catalog-sort select{height:36px;padding:0 12px;border:1.5px solid var(--gray-300);border-radius:var(--radius);font-size:13px;outline:none;cursor:pointer}
.catalog-sort select:focus{border-color:var(--primary)}

/* ==========================================
   TAGS
   ========================================== */
.tag{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;background:var(--gray-100);color:var(--gray-700);border-radius:var(--radius-full);font-size:12px;font-weight:500}
.tag--blue   {background:var(--primary-50);color:var(--primary)}
.tag--orange {background:var(--secondary-50);color:var(--secondary-600)}
.tag--success{background:#dcfce7;color:var(--success)}

/* ==========================================
   TOAST NOTIFICATION
   ========================================== */
.toast-container{position:fixed;top:20px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:10px}
.toast{min-width:280px;max-width:380px;padding:14px 18px;border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);display:flex;align-items:flex-start;gap:12px;font-size:14px;animation:slideIn .3s ease;background:var(--gray-900);color:white}
.toast--success{background:#065f46;border-left:4px solid var(--success)}
.toast--error  {background:#991b1b;border-left:4px solid var(--danger)}
.toast--info   {background:var(--primary-800);border-left:4px solid var(--primary)}
@keyframes slideIn{from{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}

/* ==========================================
   CLASSES UTILITAIRES — globals.css design
   ========================================== */

/* Gradient text — texte dégradé orange */
.text-gradient {
  background: linear-gradient(135deg, var(--secondary-500) 0%, var(--secondary-600) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* Gradient hero (fond bleu dégradé) */
.gradient-hero {
  background: linear-gradient(135deg, var(--primary-600) 0%, var(--primary-800) 50%, #001A4D 100%);
}

/* Gradient primary (bleu simple) */
.gradient-primary {
  background: linear-gradient(135deg, var(--primary-500) 0%, var(--primary-700) 100%);
}

/* Dot grid overlay */
.dot-grid {
  background-image: radial-gradient(circle at 1px 1px, rgba(255,255,255,.15) 1px, transparent 0);
  background-size: 40px 40px;
}

/* Card hover lift */
.card-hover {
  transition: all .3s ease;
}
.card-hover:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 32px rgba(0,0,0,.10);
}

/* Badge utilitaires design */
.badge-primary   { background:var(--primary-50);  color:var(--primary-700);  }
.badge-secondary { background:var(--secondary-50);color:var(--secondary-700);}
.badge-success   { background:#D1FAE5; color:#065F46; }

/* Boutons design folder */
.btn-primary-blue {
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:12px 24px;background:var(--primary-500);color:white;font-weight:600;
  border-radius:var(--radius);border:none;font-size:15px;cursor:pointer;
  transition:all .2s ease;
}
.btn-primary-blue:hover { background:var(--primary-600);transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,82,204,.3); }

/* container-site alias */
.container-site { max-width:1280px;margin:0 auto;padding:0 24px; }
@media(max-width:640px){ .container-site{padding:0 16px;} }

/* Scrollbar hide */
.scrollbar-hide { -ms-overflow-style:none; scrollbar-width:none; }
.scrollbar-hide::-webkit-scrollbar { display:none; }

/* Utilitaires généraux */
.mt-sm{margin-top:12px}
.mt-md{margin-top:20px}
.mt-lg{margin-top:32px}
.text-center{text-align:center}
.text-muted{color:var(--gray-500)}
.fw-700{font-weight:700}
.fw-900{font-weight:900}

/* ==========================================
   RESPONSIVE
   ========================================== */
@media(max-width:1100px){
  .product-page{grid-template-columns:1fr 380px;gap:32px}
  .footer-grid{grid-template-columns:1fr 1fr;gap:32px}
}
@media(max-width:960px){
  /* Cart & checkout inline grids */
  [style*="grid-template-columns:1fr 340px"]{grid-template-columns:1fr !important}
  [style*="grid-template-columns:220px 1fr"]{grid-template-columns:1fr !important}
}
@media(max-width:900px){
  .nav-cats-inner{flex-wrap:nowrap}
  .catalog-layout{grid-template-columns:1fr;padding-top:0}
  .catalog-sidebar{position:static}
  .account-layout{grid-template-columns:1fr}
  .cart-layout,.checkout-layout{grid-template-columns:1fr}
  .product-page{grid-template-columns:1fr;gap:24px}
  .product-sidebar{position:static}
  .footer-grid{grid-template-columns:1fr 1fr}
  .topbar-left{display:none}
}
@media(max-width:768px){
  :root{--gutter:16px}
  .header-inner{height:62px;gap:12px}
  .logo-impri,.logo-xo{font-size:22px}
  .search-wrap{max-width:100%;flex:1}
  .hero{padding:60px 0}
  .hero-trust{gap:16px}
  .section,.section--sm{padding:48px 0}
  .reassurance-grid{grid-template-columns:repeat(2,1fr)}
  .steps-grid,.advantages-grid{grid-template-columns:1fr 1fr}
  .newsletter-band-inner{flex-direction:column;text-align:center}
  .newsletter-band form{max-width:100%;width:100%}
}
@media(max-width:480px){
  .product-grid{grid-template-columns:1fr 1fr;gap:10px}
  .cat-grid{grid-template-columns:1fr 1fr}
  .steps-grid,.advantages-grid{grid-template-columns:1fr}
  .hero h1{font-size:28px}
  .hero-ctas{flex-direction:column;align-items:center}
  .footer-grid{grid-template-columns:1fr 1fr;gap:20px}
  .topbar-center{font-size:11px}
}

/* ── Long description SEO ── */
.fp-long-desc { max-width:860px; }
.fp-long-desc__heading { font-size:17px; font-weight:700; color:var(--gray-900); margin:24px 0 8px; letter-spacing:-.2px; }
.fp-long-desc__heading:first-child { margin-top:0; }
.fp-long-desc__p { font-size:15px; line-height:1.75; color:var(--gray-600); margin:0 0 12px; }

/* ── Section À propos ── */
.fp-about { margin-top:48px; padding:32px 36px; background:linear-gradient(135deg,#f0f7ff 0%,#f8fafc 100%); border:1px solid #dbeafe; border-radius:18px; }
.fp-about__hd { display:flex; align-items:center; gap:10px; margin-bottom:16px; }
.fp-about__hd svg { color:#2563eb; flex-shrink:0; }
.fp-about__title { font-size:20px; font-weight:800; color:var(--gray-900); letter-spacing:-.25px; margin:0; }
.fp-about__body { font-size:15px; line-height:1.8; color:var(--gray-700); max-width:800px; }
.fp-about__specs { display:flex; flex-wrap:wrap; gap:8px 16px; margin-top:20px; padding-top:20px; border-top:1px solid #bfdbfe; }
.fp-about__spec-item { display:flex; align-items:center; gap:6px; font-size:13px; font-weight:600; color:var(--gray-700); }
.fp-about__spec-item svg { color:#16a34a; flex-shrink:0; }

/* ── Section FAQ ── */
.fp-faq-section { margin-top:48px; }
.fp-faq-section__hd { display:flex; align-items:center; gap:12px; margin-bottom:20px; padding-bottom:16px; border-bottom:2px solid var(--gray-100); }
.fp-faq-section__hd svg { color:#2563eb; flex-shrink:0; }
.fp-faq-section__title { font-size:22px; font-weight:800; color:var(--gray-900); letter-spacing:-.3px; margin:0; }
.fp-faq-section__count { margin-left:auto; font-size:12px; font-weight:700; color:#2563eb; background:#eff6ff; padding:4px 12px; border-radius:20px; }

/* ── FAQ accordion ── */
.fp-faq { display:flex; flex-direction:column; gap:10px; max-width:860px; }
.fp-faq__item { border:1.5px solid var(--gray-200); border-radius:14px; overflow:hidden; transition:border-color .15s, box-shadow .15s; }
.fp-faq__item[open] { border-color:#93c5fd; box-shadow:0 4px 16px rgba(37,99,235,.08); }
.fp-faq__q { display:flex; align-items:center; gap:12px; padding:16px 20px; cursor:pointer; font-size:15px; font-weight:700; color:var(--gray-800); list-style:none; user-select:none; background:#fff; transition:background .15s; }
.fp-faq__item[open] .fp-faq__q { background:var(--primary-50,#eff6ff); color:#1d4ed8; }
.fp-faq__q::-webkit-details-marker { display:none; }
.fp-faq__num { display:flex; align-items:center; justify-content:center; width:26px; height:26px; border-radius:50%; background:var(--gray-100); font-size:11px; font-weight:800; color:var(--gray-500); flex-shrink:0; transition:all .15s; }
.fp-faq__item[open] .fp-faq__num { background:#2563eb; color:#fff; }
.fp-faq__qtext { flex:1; }
.fp-faq__chevron { flex-shrink:0; transition:transform .2s; color:var(--gray-400); }
.fp-faq__item[open] .fp-faq__chevron { transform:rotate(180deg); color:#2563eb; }
.fp-faq__a { padding:16px 20px 18px 58px; font-size:14.5px; line-height:1.75; color:var(--gray-600); border-top:1px solid var(--gray-100); background:#fafbfc; }
