CATALOGUE PRODUITS EPI

<!DOCTYPE html>
<html lang="fr">
<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
  <title>Équipements de Sécurité Industrielle</title>
  <link href="https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@400;600;700;900&family=Barlow:wght@400;500;600&display=swap" rel="stylesheet"/>
  <style>
    :root {
      --orange: #FF6B00;
      --orange-light: #FF8C2F;
      --orange-glow: rgba(255, 107, 0, 0.25);
      --black: #0A0A0A;
      --dark: #111111;
      --card-bg: #161616;
      --border: #2A2A2A;
      --text: #E8E8E8;
      --muted: #888;
      --white: #FFFFFF;
    }

    * { margin: 0; padding: 0; box-sizing: border-box; }

    body {
      background: var(--black);
      color: var(--text);
      font-family: 'Barlow', sans-serif;
      min-height: 100vh;
      overflow-x: hidden;
    }

    /* NOISE TEXTURE */
    body::before {
      content: '';
      position: fixed;
      inset: 0;
      background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");
      pointer-events: none;
      z-index: 0;
      opacity: 0.5;
    }

    /* HEADER */
    header {
      position: relative;
      z-index: 10;
      padding: 60px 40px 40px;
      border-bottom: 1px solid var(--border);
      background: linear-gradient(180deg, rgba(255,107,0,0.06) 0%, transparent 100%);
    }

    .header-tag {
      display: inline-block;
      font-family: 'Barlow Condensed', sans-serif;
      font-size: 11px;
      font-weight: 700;
      letter-spacing: 0.25em;
      text-transform: uppercase;
      color: var(--orange);
      border: 1px solid var(--orange);
      padding: 4px 12px;
      margin-bottom: 20px;
    }

    header h1 {
      font-family: 'Barlow Condensed', sans-serif;
      font-size: clamp(42px, 7vw, 90px);
      font-weight: 900;
      text-transform: uppercase;
      line-height: 0.9;
      letter-spacing: -0.02em;
    }

    header h1 span {
      color: var(--orange);
      display: block;
    }

    header p {
      margin-top: 20px;
      color: var(--muted);
      font-size: 15px;
      max-width: 500px;
      line-height: 1.6;
    }

    /* ACCENT LINE */
    .accent-line {
      width: 60px;
      height: 3px;
      background: var(--orange);
      margin-top: 24px;
    }

    /* FILTERS */
    .filters {
      position: relative;
      z-index: 10;
      padding: 24px 40px;
      display: flex;
      gap: 10px;
      flex-wrap: wrap;
      border-bottom: 1px solid var(--border);
    }

    .filter-btn {
      font-family: 'Barlow Condensed', sans-serif;
      font-size: 13px;
      font-weight: 600;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      padding: 8px 18px;
      border: 1px solid var(--border);
      background: transparent;
      color: var(--muted);
      cursor: pointer;
      transition: all 0.2s;
    }

    .filter-btn:hover, .filter-btn.active {
      border-color: var(--orange);
      color: var(--orange);
      background: var(--orange-glow);
    }

    /* GRID */
    .grid {
      position: relative;
      z-index: 10;
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
      gap: 1px;
      background: var(--border);
      padding: 0;
    }

    /* CARD */
    .card {
      background: var(--card-bg);
      padding: 0;
      display: flex;
      flex-direction: column;
      position: relative;
      overflow: hidden;
      transition: transform 0.3s ease;
      animation: fadeUp 0.5s ease both;
    }

    @keyframes fadeUp {
      from { opacity: 0; transform: translateY(20px); }
      to { opacity: 1; transform: translateY(0); }
    }

    .card:nth-child(1) { animation-delay: 0.05s; }
    .card:nth-child(2) { animation-delay: 0.1s; }
    .card:nth-child(3) { animation-delay: 0.15s; }
    .card:nth-child(4) { animation-delay: 0.2s; }
    .card:nth-child(5) { animation-delay: 0.25s; }
    .card:nth-child(6) { animation-delay: 0.3s; }
    .card:nth-child(7) { animation-delay: 0.35s; }

    .card:hover {
      z-index: 2;
      transform: scale(1.01);
    }

    .card:hover .card-img-wrap::after {
      opacity: 1;
    }

    /* CARD IMAGE */
    .card-img-wrap {
      position: relative;
      height: 220px;
      overflow: hidden;
      background: #1A1A1A;
    }

    .card-img-wrap::after {
      content: '';
      position: absolute;
      inset: 0;
      background: linear-gradient(135deg, var(--orange-glow), transparent);
      opacity: 0;
      transition: opacity 0.3s;
    }

    .card-img-wrap .emoji-icon {
      position: absolute;
      inset: 0;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 80px;
      filter: grayscale(0.2);
    }

    .card-badge {
      position: absolute;
      top: 14px;
      left: 14px;
      font-family: 'Barlow Condensed', sans-serif;
      font-size: 10px;
      font-weight: 700;
      letter-spacing: 0.2em;
      text-transform: uppercase;
      padding: 4px 10px;
      z-index: 3;
    }

    .badge-ce { background: var(--orange); color: #000; }
    .badge-new { background: #fff; color: #000; }
    .badge-promo { background: #FF3333; color: #fff; }

    .card-norm {
      position: absolute;
      bottom: 12px;
      right: 12px;
      font-family: 'Barlow Condensed', sans-serif;
      font-size: 10px;
      font-weight: 600;
      letter-spacing: 0.15em;
      color: var(--orange);
      border: 1px solid var(--orange);
      padding: 3px 8px;
      z-index: 3;
      background: rgba(0,0,0,0.6);
    }

    /* CARD BODY */
    .card-body {
      padding: 24px;
      flex: 1;
      display: flex;
      flex-direction: column;
      gap: 10px;
    }

    .card-category {
      font-family: 'Barlow Condensed', sans-serif;
      font-size: 10px;
      font-weight: 700;
      letter-spacing: 0.25em;
      text-transform: uppercase;
      color: var(--orange);
    }

    .card-title {
      font-family: 'Barlow Condensed', sans-serif;
      font-size: 22px;
      font-weight: 700;
      text-transform: uppercase;
      line-height: 1.1;
      color: var(--white);
      letter-spacing: 0.02em;
    }

    .card-desc {
      font-size: 13px;
      color: var(--muted);
      line-height: 1.6;
      flex: 1;
    }

    /* FEATURES */
    .card-features {
      display: flex;
      flex-direction: column;
      gap: 5px;
      margin-top: 4px;
    }

    .feature-item {
      display: flex;
      align-items: center;
      gap: 8px;
      font-size: 12px;
      color: #bbb;
    }

    .feature-item::before {
      content: '▸';
      color: var(--orange);
      font-size: 10px;
    }

    /* CARD FOOTER */
    .card-footer {
      padding: 16px 24px;
      border-top: 1px solid var(--border);
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
    }

    .price-block {}
    .price-label {
      font-size: 10px;
      color: var(--muted);
      letter-spacing: 0.1em;
      text-transform: uppercase;
    }
    .price-value {
      font-family: 'Barlow Condensed', sans-serif;
      font-size: 28px;
      font-weight: 900;
      color: var(--white);
      line-height: 1;
    }
    .price-value span {
      font-size: 14px;
      font-weight: 400;
      color: var(--muted);
    }

    .btn-add {
      font-family: 'Barlow Condensed', sans-serif;
      font-size: 13px;
      font-weight: 700;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      padding: 12px 20px;
      background: var(--orange);
      color: #000;
      border: none;
      cursor: pointer;
      transition: background 0.2s, transform 0.1s;
      white-space: nowrap;
    }

    .btn-add:hover { background: var(--orange-light); transform: scale(1.03); }
    .btn-add:active { transform: scale(0.97); }

    /* DIAGONAL ACCENT */
    .card::before {
      content: '';
      position: absolute;
      top: 0; right: 0;
      width: 0; height: 0;
      border-style: solid;
      border-width: 0 28px 28px 0;
      border-color: transparent var(--orange) transparent transparent;
      z-index: 5;
    }

    /* FOOTER */
    footer {
      position: relative;
      z-index: 10;
      padding: 32px 40px;
      border-top: 1px solid var(--border);
      display: flex;
      align-items: center;
      justify-content: space-between;
      flex-wrap: wrap;
      gap: 16px;
    }

    footer p {
      font-size: 13px;
      color: var(--muted);
    }

    .footer-badges {
      display: flex;
      gap: 12px;
      flex-wrap: wrap;
    }

    .footer-badge {
      font-family: 'Barlow Condensed', sans-serif;
      font-size: 11px;
      font-weight: 600;
      letter-spacing: 0.15em;
      text-transform: uppercase;
      color: var(--muted);
      border: 1px solid var(--border);
      padding: 6px 14px;
    }
  </style>
</head>
<body>

<header>
  <div class="header-tag">Catalogue Professionnel 2026</div>
  <h1>Équipements<span>de Sécurité</span></h1>
  <p>Matériel certifié CE, conçu pour les environnements industriels les plus exigeants. Livraison express sur toute la France.</p>
  <div class="accent-line"></div>
</header>

<div class="filters">
  <button class="filter-btn active">Tous</button>
  <button class="filter-btn">Protection tête</button>
  <button class="filter-btn">Mains</button>
  <button class="filter-btn">Chaussures</button>
  <button class="filter-btn">Antichute</button>
  <button class="filter-btn">Respiratoire</button>
  <button class="filter-btn">Visuel</button>
  <button class="filter-btn">Haute visibilité</button>
</div>

<div class="grid">

  <!-- CASQUE -->
  <div class="card">
    <div class="card-img-wrap">
      <span class="card-badge badge-ce">✓ CE</span>
      <span class="card-norm">EN 397</span>
      <div class="emoji-icon">🪖</div>
    </div>
    <div class="card-body">
      <div class="card-category">Protection tête</div>
      <div class="card-title">Casque de Sécurité Pro</div>
      <div class="card-desc">Conçu pour les professionnels du BTP, de l'industrie et de la maintenance, ce casque offre une protection maximale contre les chocs et les projections. Sa coque en polyéthylène haute densité absorbe les impacts violents, tandis que son système de réglage par roue crantée garantit un maintien précis pour toutes les morphologies. Compatible avec les accessoires de protection auditives et les écrans faciaux.</div>
      <div class="card-features">
        <div class="feature-item">Résistant aux chocs, UV & températures (-30°C / +50°C)</div>
        <div class="feature-item">Réglage roue crantée 52–63 cm</div>
        <div class="feature-item">Compatible écran facial & coquilles antibruit</div>
        <div class="feature-item">Disponible en 6 coloris (blanc, jaune, orange, rouge, bleu, vert)</div>
      </div>
    </div>
    <div class="card-footer">
      <div class="price-block">
        <div class="price-label">À partir de (HT)</div>
        <div class="price-value">18,90 <span>€</span></div>
      </div>
      <button class="btn-add">+ Ajouter</button>
    </div>
  </div>

  <!-- GANTS -->
  <div class="card">
    <div class="card-img-wrap">
      <span class="card-badge badge-ce">✓ CE</span>
      <span class="card-norm">EN 388</span>
      <div class="emoji-icon">🧤</div>
    </div>
    <div class="card-body">
      <div class="card-category">Protection mains</div>
      <div class="card-title">Gants Anticoupure Niveau 5</div>
      <div class="card-desc">Ces gants professionnels en fibre HPPE avec enduction nitrile foam offrent une protection anticoupure de niveau 5 — le niveau maximum. Indispensables pour les métiers de la métallurgie, de la découpe, du verre et de la logistique. L'enduction nitrile assure une prise en main ferme même sur surfaces huileuses ou humides. Confortables au port prolongé toute la journée.</div>
      <div class="card-features">
        <div class="feature-item">Anticoupure niveau F (EN ISO 13997) — protection max.</div>
        <div class="feature-item">Enduction nitrile foam antidérapante</div>
        <div class="feature-item">Tailles XS à XXL (6 à 11)</div>
        <div class="feature-item">Lavable en machine 40°C — réutilisable</div>
      </div>
    </div>
    <div class="card-footer">
      <div class="price-block">
        <div class="price-label">À partir de (HT)</div>
        <div class="price-value">12,50 <span>€</span></div>
      </div>
      <button class="btn-add">+ Ajouter</button>
    </div>
  </div>

  <!-- CHAUSSURES -->
  <div class="card">
    <div class="card-img-wrap">
      <span class="card-badge badge-new">NOUVEAU</span>
      <span class="card-norm">S3 SRC</span>
      <div class="emoji-icon">👟</div>
    </div>
    <div class="card-body">
      <div class="card-category">Chaussures de sécurité</div>
      <div class="card-title">Basse S3 Composite</div>
      <div class="card-desc">La référence pour les professionnels qui travaillent debout toute la journée. Embout composite ultra-léger (non métallique, non conducteur) résistant à 200 joules. Semelle de propreté amovible et lavable. Idéale pour les secteurs BTP, industrie, logistique, agroalimentaire et maintenance. 40 % plus légère que les modèles acier équivalents.</div>
      <div class="card-features">
        <div class="feature-item">Embout composite 200 joules — non conducteur</div>
        <div class="feature-item">Semelle anti-perforation acier (300 N)</div>
        <div class="feature-item">Antistatique ESD & résistant aux hydrocarbures</div>
        <div class="feature-item">Tailles 38 à 48 — homme & femme</div>
      </div>
    </div>
    <div class="card-footer">
      <div class="price-block">
        <div class="price-label">À partir de (HT)</div>
        <div class="price-value">54,00 <span>€</span></div>
      </div>
      <button class="btn-add">+ Ajouter</button>
    </div>
  </div>

  <!-- HARNAIS -->
  <div class="card">
    <div class="card-img-wrap">
      <span class="card-badge badge-ce">✓ CE</span>
      <span class="card-norm">EN 361</span>
      <div class="emoji-icon">🪢</div>
    </div>
    <div class="card-body">
      <div class="card-category">Antichute</div>
      <div class="card-title">Harnais Polyvalent Pro</div>
      <div class="card-desc">Harnais de sécurité intégral conçu pour les travaux en hauteur dans les secteurs BTP, toiture, maintenance industrielle et télécoms. Ses 5 points d'attache (dos, sternum, 2 hanches, ventral) répartissent les forces de chute sur l'ensemble du corps. Les sangles en polyester haute ténacité résistent à 15 kN. Contrôle annuel recommandé — fiche de traçabilité incluse.</div>
      <div class="card-features">
        <div class="feature-item">5 points d'attache — résistance 15 kN</div>
        <div class="feature-item">Charge max. 140 kg — taille universelle réglable</div>
        <div class="feature-item">Boucles aluminium à dégagement rapide</div>
        <div class="feature-item">Fiche de traçabilité & sac de transport inclus</div>
      </div>
    </div>
    <div class="card-footer">
      <div class="price-block">
        <div class="price-label">À partir de (HT)</div>
        <div class="price-value">89,00 <span>€</span></div>
      </div>
      <button class="btn-add">+ Ajouter</button>
    </div>
  </div>

  <!-- MASQUE -->
  <div class="card">
    <div class="card-img-wrap">
      <span class="card-badge badge-promo">PROMO</span>
      <span class="card-norm">FFP3</span>
      <div class="emoji-icon">😷</div>
    </div>
    <div class="card-body">
      <div class="card-category">Protection respiratoire</div>
      <div class="card-title">Masque FFP3 Valve</div>
      <div class="card-desc">Le masque FFP3 offre la protection respiratoire la plus élevée disponible (filtration ≥ 99 %). Indispensable dans les environnements exposés aux poussières de silice, amiante, fumées de soudage et aérosols toxiques. La valve d'expiration réduit la chaleur accumulée et facilite la respiration lors de travaux physiques intenses. Forme coque — ne s'affaisse pas sur le visage.</div>
      <div class="card-features">
        <div class="feature-item">Filtration ≥ 99 % (classe FFP3 — protection maximale)</div>
        <div class="feature-item">Valve d'expiration — confort en port prolongé</div>
        <div class="feature-item">Forme coque rigide — étanchéité optimale</div>
        <div class="feature-item">Vendu par boîte de 10 unités</div>
      </div>
    </div>
    <div class="card-footer">
      <div class="price-block">
        <div class="price-label">Boîte de 10 (HT)</div>
        <div class="price-value">32,00 <span>€</span></div>
      </div>
      <button class="btn-add">+ Ajouter</button>
    </div>
  </div>

  <!-- LUNETTES -->
  <div class="card">
    <div class="card-img-wrap">
      <span class="card-badge badge-ce">✓ CE</span>
      <span class="card-norm">EN 166</span>
      <div class="emoji-icon">🥽</div>
    </div>
    <div class="card-body">
      <div class="card-category">Protection oculaire</div>
      <div class="card-title">Lunettes Panoramiques</div>
      <div class="card-desc">Lunettes de protection panoramiques à champ de vision élargi 180°. Les verres en polycarbonate traités antibuée et anti-rayures résistent aux projections de particules, liquides et éclats. Légères (28 g) et ergonomiques, elles s'adaptent sur les lunettes de vue correctrices. Incontournables en laboratoire, usine chimique, menuiserie et soudure légère.</div>
      <div class="card-features">
        <div class="feature-item">Traitement antibuée permanent — vision claire garantie</div>
        <div class="feature-item">Protection UV 400 & résistance aux projections (3B)</div>
        <div class="feature-item">Compatible sur lunettes correctrices</div>
        <div class="feature-item">Branches réglables — poids 28 g seulement</div>
      </div>
    </div>
    <div class="card-footer">
      <div class="price-block">
        <div class="price-label">À partir de (HT)</div>
        <div class="price-value">9,90 <span>€</span></div>
      </div>
      <button class="btn-add">+ Ajouter</button>
    </div>
  </div>

  <!-- GILET -->
  <div class="card">
    <div class="card-img-wrap">
      <span class="card-badge badge-ce">✓ CE</span>
      <span class="card-norm">EN ISO 20471</span>
      <div class="emoji-icon">🦺</div>
    </div>
    <div class="card-body">
      <div class="card-category">Haute visibilité</div>
      <div class="card-title">Gilet HV Classe 2</div>
      <div class="card-desc">Gilet de signalisation haute visibilité classe 2 indispensable sur tout chantier, entrepôt, zone logistique ou voirie. Le tissu fluorescent jaune ou orange garantit une détection visuelle optimale de jour, tandis que les bandes rétro-réfléchissantes de 5 cm assurent la visibilité de nuit. Conforme à la réglementation du travail en France et en Europe.</div>
      <div class="card-features">
        <div class="feature-item">Classe 2 EN ISO 20471 — visibilité jour & nuit</div>
        <div class="feature-item">Bandes réfléchissantes 360° (5 cm de largeur)</div>
        <div class="feature-item">2 poches cargo avec fermeture zip</div>
        <div class="feature-item">Tailles S à 4XL — coloris jaune ou orange</div>
      </div>
    </div>
    <div class="card-footer">
      <div class="price-block">
        <div class="price-label">À partir de (HT)</div>
        <div class="price-value">7,50 <span>€</span></div>
      </div>
      <button class="btn-add">+ Ajouter</button>
    </div>
  </div>

</div>

<footer>
  <p>© 2026 — Catalogue Équipements de Sécurité Industrielle</p>
  <div class="footer-badges">
    <div class="footer-badge">✓ Marquage CE</div>
    <div class="footer-badge">🚚 Livraison 24–72h</div>
    <div class="footer-badge">📞 Support Pro</div>
    <div class="footer-badge">🔁 Retours 30j</div>
  </div>
</footer>

<script>
  // Filter buttons
  document.querySelectorAll('.filter-btn').forEach(btn => {
    btn.addEventListener('click', () => {
      document.querySelectorAll('.filter-btn').forEach(b => b.classList.remove('active'));
      btn.classList.add('active');
    });
  });

  // Add to cart button feedback
  document.querySelectorAll('.btn-add').forEach(btn => {
    btn.addEventListener('click', () => {
      const original = btn.textContent;
      btn.textContent = '✓ Ajouté';
      btn.style.background = '#22C55E';
      setTimeout(() => {
        btn.textContent = original;
        btn.style.background = '';
      }, 1500);
    });
  });
</script>
</body>
</html>