

    /* ── HERO ─────────────────────────────────────────── */
    .pieces-hero {
      position: relative;
      min-height: 60vh;
      display: flex;
      align-items: center;
      justify-content: center;
      overflow: hidden;
      background: var(--c-bg);
    }
    .pieces-hero__bg {
      position: absolute; inset: 0;
      background:
        radial-gradient(ellipse 80% 70% at 50% 0%, rgba(201,166,107,0.10) 0%, transparent 65%),
        radial-gradient(ellipse 60% 50% at 100% 100%, rgba(201,166,107,0.06) 0%, transparent 55%);
    }
    .pieces-hero__lines {
      position: absolute; inset: 0;
      background-image: repeating-linear-gradient(
        -55deg, transparent, transparent 40px,
        rgba(201,166,107,0.025) 40px, rgba(201,166,107,0.025) 41px
      );
    }
    .pieces-hero__content {
      position: relative; z-index: 2;
      text-align: center;
      padding: 180px 32px 80px;
      max-width: 700px;
    }
    .pieces-hero__eyebrow {
      font-size: 10px; letter-spacing: 0.38em; text-transform: uppercase;
      color: var(--c-gold); margin-bottom: 18px; font-weight: 500;
    }
    .pieces-hero__title {
      font-family: var(--f-serif);
      font-size: clamp(38px, 5vw, 76px);
      font-weight: 400; line-height: 1; letter-spacing: -0.02em;
      margin-bottom: 20px;
    }
    .pieces-hero__title em { font-style: italic; color: var(--c-gold); }
    .pieces-hero__sub {
      font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase;
      color: var(--c-text-muted); margin-bottom: 40px;
    }
    .pieces-hero__badges {
      display: flex; gap: 10px; justify-content: center; flex-wrap: wrap;
    }
    .pieces-hero__badge {
      border: 1px solid var(--c-line);
      padding: 6px 18px;
      font-size: 10px; letter-spacing: 0.22em; text-transform: uppercase;
      color: var(--c-gold); font-weight: 500;
    }

    /* ── CATALOGUE ────────────────────────────────────── */
    .catalogue {
      padding: 160px 0 100px;
      background: var(--c-bg);
    }

    /* Barre de recherche */
    .search-bar {
      position: relative;
      margin-bottom: 24px;
      max-width: 480px;
    }
    .search-bar input {
      width: 100%;
      background: var(--c-bg-2);
      border: 1px solid rgba(201,166,107,0.25);
      color: var(--c-text);
      font-family: var(--f-sans);
      font-size: 13px;
      padding: 12px 44px 12px 16px;
      outline: none;
      transition: border-color 0.2s;
    }
    .search-bar input::placeholder { color: var(--c-text-muted); }
    .search-bar input:focus { border-color: var(--c-gold); }
    .search-bar__icon {
      position: absolute; right: 14px; top: 50%;
      transform: translateY(-50%);
      width: 16px; height: 16px;
      stroke: var(--c-text-muted); pointer-events: none;
    }

    /* Table stock */
    .stock-table-wrap {
      overflow-x: auto;
      border: 1px solid var(--c-line);
    }
    .stock-table {
      width: 100%;
      border-collapse: collapse;
      font-size: 13px;
    }
    .stock-table thead th {
      background: var(--c-bg-2);
      padding: 14px 16px;
      text-align: left;
      font-size: 9px; letter-spacing: 0.22em; text-transform: uppercase;
      color: var(--c-text-muted); font-weight: 500;
      border-bottom: 1px solid rgba(201,166,107,0.25);
      white-space: nowrap;
    }
    .stock-table thead th:last-child { text-align: right; }
    .stock-table tbody tr {
      border-bottom: 1px solid rgba(255,255,255,0.04);
      transition: background 0.15s;
    }
    .stock-table tbody tr:hover { background: rgba(201,166,107,0.04); }
    .stock-table tbody tr.hidden { display: none; }
    .stock-table td {
      padding: 13px 16px;
      vertical-align: middle;
    }
    .stock-table td.td-ref {
      font-family: 'Courier New', monospace;
      font-size: 11px;
      color: var(--c-gold);
      white-space: nowrap;
    }
    .stock-table td.td-libelle {
      color: var(--c-text);
      max-width: 340px;
    }
    .stock-table td.td-emp {
      font-size: 11px; color: var(--c-text-muted);
      white-space: nowrap;
      text-align: center;
    }
    .stock-table td.td-type { white-space: nowrap; }
    .stock-table td.td-cta { text-align: right; white-space: nowrap; }
    .type-badge {
      display: inline-block;
      font-size: 9px; letter-spacing: 0.15em; text-transform: uppercase;
      padding: 3px 8px; font-weight: 500;
    }
    .type-badge--origine {
      color: #6db87a;
      background: rgba(109,184,122,0.08);
      border: 1px solid rgba(109,184,122,0.2);
    }
    .type-badge--compatible {
      color: var(--c-text-muted);
      background: rgba(154,150,144,0.06);
      border: 1px solid rgba(154,150,144,0.15);
    }
    .td-cta-btn {
      font-size: 10px; letter-spacing: 0.15em; text-transform: uppercase;
      color: var(--c-gold); cursor: pointer; background: none; border: none;
      font-family: var(--f-sans); padding: 0;
      transition: opacity 0.2s;
    }
    .td-cta-btn:hover { opacity: 0.7; }

    /* Pagination */
    .pagination {
      display: flex; gap: 6px; align-items: center;
      justify-content: center; margin-top: 32px; flex-wrap: wrap;
    }
    .pagination button {
      background: none;
      border: 1px solid rgba(201,166,107,0.25);
      color: var(--c-text-muted);
      font-family: var(--f-sans);
      font-size: 11px; padding: 7px 13px;
      cursor: pointer; transition: all 0.2s;
    }
    .pagination button:hover,
    .pagination button.active {
      border-color: var(--c-gold);
      color: var(--c-gold);
    }
    .pagination button.active { background: rgba(201,166,107,0.08); }
    .pagination button:disabled { opacity: 0.3; cursor: default; }

    /* Filtres */
    .filters {
      display: flex;
      align-items: center;
      gap: 8px;
      flex-wrap: wrap;
      margin-bottom: 56px;
    }
    .filter-label {
      font-size: 10px; letter-spacing: 0.25em; text-transform: uppercase;
      color: var(--c-text-muted); margin-right: 8px; font-weight: 500;
    }
    .filter-btn {
      padding: 8px 20px;
      font-size: 11px; letter-spacing: 0.15em; text-transform: uppercase;
      border: 1px solid rgba(201,166,107,0.25);
      color: var(--c-text-muted);
      background: none;
      cursor: pointer;
      transition: all 0.25s ease;
      font-family: var(--f-sans);
    }
    .filter-btn:hover {
      border-color: var(--c-gold);
      color: var(--c-gold);
    }
    .filter-btn.active {
      background: var(--c-gold);
      border-color: var(--c-gold);
      color: #000;
      font-weight: 500;
    }

    /* Section info stock */
    .stock-info {
      padding: 60px 0;
      background: var(--c-bg-2);
      border-top: 1px solid var(--c-line);
      border-bottom: 1px solid var(--c-line);
    }
    .stock-info__inner {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 1px;
      background: var(--c-line);
      border: 1px solid var(--c-line);
    }
    .stock-info__item {
      background: var(--c-bg-2);
      padding: 32px 24px;
      text-align: center;
    }
    .stock-info__icon {
      width: 32px; height: 32px;
      stroke: var(--c-gold);
      margin: 0 auto 14px;
    }
    .stock-info__title {
      font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase;
      color: var(--c-text); margin-bottom: 8px; font-weight: 500;
    }
    .stock-info__desc {
      font-size: 12px; color: var(--c-text-muted); line-height: 1.6;
    }

    /* Contact pièce */
    .contact-piece {
      padding: 90px 0;
      background: var(--c-bg);
    }

    /* ── RESPONSIVE ──────────────────────────────────── */
    @media (max-width: 1024px) {
      .stock-info__inner { grid-template-columns: repeat(2, 1fr); }
      .td-libelle { max-width: 200px; }
    }
    @media (max-width: 640px) {
      .stock-info__inner { grid-template-columns: 1fr; }
      .filters { gap: 6px; }
      .stock-table td.td-emp, .stock-table thead th:nth-child(3) { display: none; }
    }
  