/* =============================================================================
 * SONOYA - productDetails.css
 * -----------------------------------------------------------------------------
 * Fiche produit (ecran 4). Prefixe pd-* (D-011 #22).
 *
 * Mobile-first strict : ordre DOM unique (galerie -> infos -> onglets -> avis
 * -> rails), le passage en 2 colonnes se fait a 1024px sans toucher au DOM.
 * Reutilise nb-btn, nb-badge, nb-chip, nb-breadcrumb, nb-follow-btn, nb-product.
 * ============================================================================= */

@layer pages {

  /* ===============================================
   * PAGE
   * =============================================== */
  .pd-page {
    max-width: var(--nb-container-max);
    margin-inline: auto;
    padding-inline: var(--nb-container-pad);
    /* espace pour la barre collante mobile (au-dessus de la bottom nav) */
    padding-bottom: calc(var(--nb-mobile-nav-h) + 64px);
  }
  @media (min-width: 1024px) {
    .pd-page { padding-bottom: var(--nb-space-16); }
  }

  .pd-section-title {
    font-family: var(--nb-font-heading);
    font-size: var(--nb-fs-lg);
    font-weight: var(--nb-fw-heavy);
    color: var(--nb-color-text-strong);
    letter-spacing: var(--nb-ls-tighter);
    line-height: var(--nb-lh-tight);
  }
  @media (min-width: 768px) {
    .pd-section-title { font-size: var(--nb-fs-xl); }
  }

  .pd-block-title {
    display: inline-flex;
    align-items: center;
    gap: var(--nb-space-2);
    font-family: var(--nb-font-heading);
    font-size: var(--nb-fs-sm);
    font-weight: var(--nb-fw-bold);
    color: var(--nb-color-text-strong);
    text-transform: uppercase;
    letter-spacing: var(--nb-ls-wider);

    & > i { color: var(--nb-color-accent); font-size: 1.15em; }
  }

  /* Etoiles partagees (head, avis, resume) */
  .pd-stars {
    display: inline-flex;
    font-size: var(--nb-fs-sm);
    letter-spacing: 0.06em;
    line-height: 1;
  }
  .pd-stars__full  { color: var(--nb-color-star); }
  .pd-stars__empty { color: var(--nb-color-star-empty); }


  /* ===============================================
   * BREADCRUMB
   * =============================================== */
  .pd-breadcrumb {
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: none;
    white-space: nowrap;
  }
  .pd-breadcrumb::-webkit-scrollbar { display: none; }
  .pd-breadcrumb__list { display: contents; }


  /* ===============================================
   * LAYOUT PRINCIPAL : GALERIE + INFOS
   * =============================================== */
  .pd-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--nb-space-6);
  }
  @media (min-width: 1024px) {
    .pd-layout {
      grid-template-columns: minmax(0, 44%) minmax(0, 1fr);
      gap: var(--nb-space-10);
      align-items: start;
    }
  }
  @media (min-width: 1440px) {
    .pd-layout { grid-template-columns: minmax(0, 560px) minmax(0, 1fr); }
  }


  /* ===============================================
   * GALERIE
   * =============================================== */
  .pd-gallery {
    display: flex;
    flex-direction: column;
    gap: var(--nb-space-3);
    min-width: 0;
  }
  @media (min-width: 1024px) {
    .pd-gallery {
      position: sticky;
      top: calc(var(--nb-header-menu-h) + var(--nb-space-4));
    }
  }

  .pd-gallery__stage {
    position: relative;
    border-radius: var(--nb-radius-lg);
    overflow: hidden;
    background: var(--nb-color-surface);
    border: 1px solid var(--nb-color-border);
  }

  .pd-gallery__track {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }
  .pd-gallery__track::-webkit-scrollbar { display: none; }
  .pd-gallery__track:focus-visible {
    outline: none;
    box-shadow: var(--nb-focus-ring);
  }

  .pd-gallery__slide {
    flex: 0 0 100%;
    scroll-snap-align: center;
    aspect-ratio: 1;
    position: relative;

    & > img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }
  }

  .pd-gallery__badges {
    position: absolute;
    top: var(--nb-space-3);
    left: var(--nb-space-3);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--nb-space-1);
    pointer-events: none;
  }
  .pd-gallery__badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3px var(--nb-space-2);
    border-radius: var(--nb-radius-xs);
    font-size: var(--nb-fs-2xs);
    font-weight: var(--nb-fw-bold);
    text-transform: uppercase;
    letter-spacing: var(--nb-ls-wide);
  }
  .pd-gallery__badge--flash      { background: var(--nb-color-live);    color: white; }
  .pd-gallery__badge--discount   { background: var(--nb-color-danger);  color: white; }
  .pd-gallery__badge--bestseller { background: var(--nb-color-warning); color: var(--nb-color-text-strong); }

  .pd-gallery__zoom {
    position: absolute;
    right: var(--nb-space-3);
    bottom: var(--nb-space-3);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: color-mix(in oklch, var(--nb-color-surface) 82%, transparent);
    color: var(--nb-color-text);
    backdrop-filter: blur(8px);
    box-shadow: var(--nb-shadow-sm);
    font-size: 1.15rem;
    transition: background var(--nb-dur-fast) var(--nb-ease-standard),
                transform var(--nb-dur-fast) var(--nb-ease-spring);
  }
  .pd-gallery__zoom:hover { background: var(--nb-color-surface); transform: scale(1.08); }
  .pd-gallery__zoom:focus-visible { outline: none; box-shadow: var(--nb-focus-ring); }

  .pd-gallery__nav {
    position: absolute;
    top: 50%;
    translate: 0 -50%;
    display: none;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: color-mix(in oklch, var(--nb-color-surface) 88%, transparent);
    color: var(--nb-color-text);
    box-shadow: var(--nb-shadow-md);
    font-size: 1.2rem;
    opacity: 0;
    transition: opacity var(--nb-dur-normal) var(--nb-ease-out-quart),
                background var(--nb-dur-fast) var(--nb-ease-standard);
  }
  .pd-gallery__nav--prev { left: var(--nb-space-3); }
  .pd-gallery__nav--next { right: var(--nb-space-3); }
  .pd-gallery__nav:hover { background: var(--nb-color-surface); }
  .pd-gallery__nav:focus-visible { outline: none; box-shadow: var(--nb-focus-ring); opacity: 1; }
  @media (min-width: 768px) {
    .pd-gallery__nav { display: inline-flex; }
    .pd-gallery__stage:hover .pd-gallery__nav { opacity: 1; }
  }

  .pd-gallery__dots {
    position: absolute;
    bottom: var(--nb-space-3);
    left: 50%;
    translate: -50% 0;
    display: flex;
    gap: var(--nb-space-1);
  }
  .pd-gallery__dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: color-mix(in oklch, var(--nb-color-text) 30%, transparent);
    transition: background var(--nb-dur-fast) var(--nb-ease-standard),
                width var(--nb-dur-normal) var(--nb-ease-out-expo);
  }
  .pd-gallery__dot.is-active {
    width: 20px;
    border-radius: var(--nb-radius-pill);
    background: var(--nb-color-accent);
  }
  .pd-gallery__dot:focus-visible { outline: none; box-shadow: var(--nb-focus-ring); }
  @media (min-width: 768px) {
    .pd-gallery__dots { display: none; }
  }

  .pd-gallery__thumbs {
    display: flex;
    gap: var(--nb-space-2);
    overflow-x: auto;
    scrollbar-width: none;
    padding-block: 2px;
  }
  .pd-gallery__thumbs::-webkit-scrollbar { display: none; }
  .pd-gallery__thumb {
    flex: 0 0 auto;
    width: 60px;
    height: 60px;
    border-radius: var(--nb-radius-sm);
    overflow: hidden;
    border: 2px solid var(--nb-color-border-alt);
    opacity: 0.7;
    transition: border-color var(--nb-dur-fast) var(--nb-ease-standard),
                opacity var(--nb-dur-fast) var(--nb-ease-standard);

    & > img { width: 100%; height: 100%; object-fit: cover; }
  }
  .pd-gallery__thumb:hover { opacity: 1; }
  .pd-gallery__thumb.is-active {
    border-color: var(--nb-color-accent);
    opacity: 1;
  }
  .pd-gallery__thumb:focus-visible { outline: none; box-shadow: var(--nb-focus-ring); }
  @media (min-width: 768px) {
    .pd-gallery__thumb { width: 72px; height: 72px; }
  }


  /* ===============================================
   * COLONNE INFOS & ACHAT
   * =============================================== */
  .pd-info {
    display: flex;
    flex-direction: column;
    gap: var(--nb-space-5);
    min-width: 0;
  }

  /* ---------- Head : marque, titre, note ---------- */
  .pd-head {
    display: flex;
    flex-direction: column;
    gap: var(--nb-space-2);
  }
  .pd-head__brand {
    display: inline-flex;
    align-items: baseline;
    gap: var(--nb-space-1);
    align-self: flex-start;
    font-size: var(--nb-fs-xs);
    font-weight: var(--nb-fw-bold);
    color: var(--nb-color-accent);
    text-transform: uppercase;
    letter-spacing: var(--nb-ls-wider);
    transition: color var(--nb-dur-fast) var(--nb-ease-standard);
  }
  .pd-head__brand:hover { color: var(--nb-color-accent-hover); }
  .pd-head__brand-label {
    color: var(--nb-color-text-faint);
    font-weight: var(--nb-fw-medium);
    text-transform: none;
    letter-spacing: var(--nb-ls-normal);
  }
  .pd-head__title {
    font-family: var(--nb-font-heading);
    font-size: var(--nb-fs-lg);
    font-weight: var(--nb-fw-bold);
    line-height: var(--nb-lh-snug);
    color: var(--nb-color-text-strong);
    letter-spacing: var(--nb-ls-tight);
  }
  @media (min-width: 768px) {
    .pd-head__title { font-size: var(--nb-fs-xl); }
  }
  .pd-head__meta {
    display: flex;
    align-items: center;
    gap: var(--nb-space-3);
    flex-wrap: wrap;
    font-size: var(--nb-fs-xs);
    color: var(--nb-color-text-muted);
  }
  .pd-head__rating {
    display: inline-flex;
    align-items: center;
    gap: var(--nb-space-1);
    transition: color var(--nb-dur-fast) var(--nb-ease-standard);
  }
  .pd-head__rating:hover .pd-head__rating-count { color: var(--nb-color-accent); }
  .pd-head__rating-value {
    color: var(--nb-color-text-strong);
    font-variant-numeric: tabular-nums;
  }
  .pd-head__rating-count {
    color: var(--nb-color-text-muted);
    text-decoration: underline;
    text-underline-offset: 0.2em;
    font-variant-numeric: tabular-nums;
  }
  .pd-head__sep {
    width: 1px;
    height: 14px;
    background: var(--nb-color-border-strong);
  }
  .pd-head__sold {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-variant-numeric: tabular-nums;

    & > i { color: var(--nb-color-accent); }
  }
  .pd-head__sku { font-variant-numeric: tabular-nums; }

  /* ---------- Vente flash ---------- */
  .pd-flash {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    gap: var(--nb-space-2) var(--nb-space-3);
    padding: var(--nb-space-3) var(--nb-space-4);
    background: var(--nb-color-live-soft);
    border: 1px solid color-mix(in oklch, var(--nb-color-live) 35%, transparent);
    border-radius: var(--nb-radius-md);
  }
  .pd-flash__label {
    display: inline-flex;
    align-items: center;
    gap: var(--nb-space-2);
    color: var(--nb-color-live);
    font-size: var(--nb-fs-sm);
    font-weight: var(--nb-fw-bold);

    & > i { font-size: 1.2em; animation: pd-flash-pulse 1.6s var(--nb-ease-in-out-quart) infinite; }
  }
  .pd-flash__ends {
    color: var(--nb-color-text-muted);
    font-weight: var(--nb-fw-medium);
    font-size: var(--nb-fs-xs);
  }
  .pd-flash__timer {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    font-family: var(--nb-font-mono);
    font-weight: var(--nb-fw-bold);
    font-variant-numeric: tabular-nums;
  }
  .pd-flash__timer-block {
    min-width: 2ch;
    padding: 3px 5px;
    background: var(--nb-color-text);
    color: var(--nb-color-text-inverse);
    border-radius: var(--nb-radius-xs);
    font-size: var(--nb-fs-sm);
    text-align: center;
  }
  .pd-flash__timer-sep { color: var(--nb-color-live); }
  .pd-flash__progress {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    gap: var(--nb-space-3);
  }
  .pd-flash__progress-bar {
    flex: 1;
    height: 6px;
    background: color-mix(in oklch, var(--nb-color-live) 18%, var(--nb-color-surface));
    border-radius: var(--nb-radius-pill);
    overflow: hidden;

    & > span {
      display: block;
      height: 100%;
      background: var(--nb-color-live);
      border-radius: var(--nb-radius-pill);
    }
  }
  .pd-flash__progress-text {
    font-size: var(--nb-fs-2xs);
    font-weight: var(--nb-fw-bold);
    color: var(--nb-color-live);
    text-transform: uppercase;
    letter-spacing: var(--nb-ls-wide);
    white-space: nowrap;
  }
  @keyframes pd-flash-pulse {
    0%, 100% { transform: scale(1); }
    50%       { transform: scale(1.2); }
  }

  /* ---------- Prix ---------- */
  .pd-price {
    display: flex;
    flex-direction: column;
    gap: var(--nb-space-1);
  }
  .pd-price__row {
    display: flex;
    align-items: baseline;
    gap: var(--nb-space-2);
    flex-wrap: wrap;
  }
  .pd-price__amount {
    font-family: var(--nb-font-heading);
    font-size: var(--nb-fs-3xl);
    font-weight: var(--nb-fw-heavy);
    color: var(--nb-color-accent);
    letter-spacing: var(--nb-ls-tight);
    line-height: 1;
    font-variant-numeric: tabular-nums;
  }
  .pd-price__currency {
    font-size: var(--nb-fs-md);
    font-weight: var(--nb-fw-bold);
    color: var(--nb-color-text-muted);
  }
  .pd-price__old {
    font-size: var(--nb-fs-sm);
    color: var(--nb-color-text-faint);
    text-decoration: line-through;
    font-variant-numeric: tabular-nums;
  }
  .pd-price__discount {
    display: inline-flex;
    align-items: center;
    padding: 2px 8px;
    background: var(--nb-color-danger);
    color: white;
    font-size: var(--nb-fs-xs);
    font-weight: var(--nb-fw-bold);
    border-radius: var(--nb-radius-xs);
    font-variant-numeric: tabular-nums;
  }
  .pd-price__savings {
    font-size: var(--nb-fs-xs);
    font-weight: var(--nb-fw-semibold);
    color: var(--nb-color-success-hover);
  }
  .pd-price__stock {
    display: flex;
    align-items: center;
    gap: var(--nb-space-2);
    flex-wrap: wrap;
    font-size: var(--nb-fs-sm);
    font-weight: var(--nb-fw-semibold);

    & > i { font-size: 1.15em; }
  }
  .pd-price__stock.is-in  { color: var(--nb-color-success); }
  .pd-price__stock.is-low { color: var(--nb-color-danger); }
  .pd-price__stock.is-out { color: var(--nb-color-text-faint); }
  .pd-price__flash-left {
    font-size: var(--nb-fs-xs);
    font-weight: var(--nb-fw-medium);
    color: var(--nb-color-live);
  }

  /* ---------- Variantes ---------- */
  .pd-variants {
    display: flex;
    flex-direction: column;
    gap: var(--nb-space-2);
  }
  .pd-variants__legend {
    display: flex;
    align-items: baseline;
    gap: var(--nb-space-2);
    font-size: var(--nb-fs-sm);
    font-weight: var(--nb-fw-bold);
    color: var(--nb-color-text-strong);
  }
  .pd-variants__selected {
    font-weight: var(--nb-fw-medium);
    color: var(--nb-color-text-muted);
  }
  .pd-variants__options {
    display: flex;
    gap: var(--nb-space-2);
    flex-wrap: wrap;
  }
  .pd-variants__swatch {
    width: 56px;
    height: 56px;
    border-radius: var(--nb-radius-sm);
    overflow: hidden;
    border: 2px solid var(--nb-color-border);
    padding: 0;
    transition: border-color var(--nb-dur-fast) var(--nb-ease-standard),
                transform var(--nb-dur-fast) var(--nb-ease-spring);

    & > img { width: 100%; height: 100%; object-fit: cover; }
  }
  .pd-variants__swatch:hover { border-color: var(--nb-color-border-hover); transform: scale(1.05); }
  .pd-variants__swatch.is-selected { border-color: var(--nb-color-accent); box-shadow: 0 0 0 1px var(--nb-color-accent); }
  .pd-variants__swatch:focus-visible { outline: none; box-shadow: var(--nb-focus-ring); }
  .pd-variants__swatch.is-disabled {
    opacity: 0.35;
    filter: grayscale(1);
  }
  .pd-variants__chip {
    display: inline-flex;
    align-items: center;
    padding: var(--nb-space-2) var(--nb-space-4);
    border: 1.5px solid var(--nb-color-border);
    border-radius: var(--nb-radius-sm);
    background: var(--nb-color-surface);
    font-size: var(--nb-fs-sm);
    font-weight: var(--nb-fw-semibold);
    color: var(--nb-color-text);
    transition: border-color var(--nb-dur-fast) var(--nb-ease-standard),
                background var(--nb-dur-fast) var(--nb-ease-standard),
                color var(--nb-dur-fast) var(--nb-ease-standard);
  }
  .pd-variants__chip:hover { border-color: var(--nb-color-border-hover); background: var(--nb-color-surface-hover); }
  .pd-variants__chip.is-selected {
    border-color: var(--nb-color-accent);
    background: var(--nb-color-accent-soft);
    color: var(--nb-color-accent-hover);
  }
  .pd-variants__chip:focus-visible { outline: none; box-shadow: var(--nb-focus-ring); }
  .pd-variants__chip.is-disabled {
    opacity: 0.4;
    text-decoration: line-through;
  }

  /* ---------- Quantite ---------- */
  .pd-qty {
    display: flex;
    align-items: center;
    gap: var(--nb-space-4);
    flex-wrap: wrap;
  }
  .pd-qty__label {
    font-size: var(--nb-fs-sm);
    font-weight: var(--nb-fw-bold);
    color: var(--nb-color-text-strong);
  }
  .pd-qty__stepper {
    display: inline-flex;
    align-items: stretch;
    border: 1.5px solid var(--nb-color-border);
    border-radius: var(--nb-radius-sm);
    overflow: hidden;
  }
  .pd-qty__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    color: var(--nb-color-text);
    font-size: 1rem;
    transition: background var(--nb-dur-fast) var(--nb-ease-standard);
  }
  .pd-qty__btn:hover:not(:disabled) { background: var(--nb-color-surface-hover); }
  .pd-qty__btn:disabled { color: var(--nb-color-text-disabled); }
  .pd-qty__btn:focus-visible { outline: none; box-shadow: var(--nb-focus-ring); z-index: 1; }
  .pd-qty__input {
    width: 52px;
    text-align: center;
    font-weight: var(--nb-fw-bold);
    font-variant-numeric: tabular-nums;
    border-inline: 1.5px solid var(--nb-color-border);
    appearance: textfield;
  }
  .pd-qty__input::-webkit-outer-spin-button,
  .pd-qty__input::-webkit-inner-spin-button { appearance: none; }
  .pd-qty__input:focus-visible { outline: none; box-shadow: var(--nb-focus-ring); }
  .pd-qty__subtotal {
    font-size: var(--nb-fs-sm);
    color: var(--nb-color-text-muted);

    & > b {
      color: var(--nb-color-text-strong);
      font-variant-numeric: tabular-nums;
      margin-inline-start: var(--nb-space-1);
    }
  }

  /* ---------- CTA ---------- */
  .pd-cta {
    display: grid;
    grid-template-columns: 1fr 1fr auto;
    gap: var(--nb-space-2);
  }
  .pd-cta__cart,
  .pd-cta__buy {
    min-width: 0;
    padding-block: var(--nb-space-3);
    padding-inline: var(--nb-space-2);
    font-size: var(--nb-fs-xs);
  }
  @media (min-width: 768px) {
    .pd-cta__cart,
    .pd-cta__buy {
      padding-inline: var(--nb-space-4);
      font-size: var(--nb-fs-sm);
    }
  }
  .pd-cta__secondary {
    display: inline-flex;
    gap: var(--nb-space-2);
  }
  .pd-cta__icon-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 100%;
    min-height: 46px;
    border: 1.5px solid var(--nb-color-border);
    border-radius: var(--nb-radius-md);
    background: var(--nb-color-surface);
    color: var(--nb-color-text-muted);
    font-size: 1.25rem;
    transition: color var(--nb-dur-fast) var(--nb-ease-standard),
                border-color var(--nb-dur-fast) var(--nb-ease-standard),
                transform var(--nb-dur-fast) var(--nb-ease-spring);
  }
  .pd-cta__icon-btn:hover {
    color: var(--nb-color-accent);
    border-color: var(--nb-color-accent);
    transform: scale(1.05);
  }
  .pd-cta__icon-btn:focus-visible { outline: none; box-shadow: var(--nb-focus-ring); }
  .pd-cta__icon-btn.is-active {
    color: var(--nb-color-danger);
    border-color: var(--nb-color-danger);
    background: var(--nb-color-danger-soft);
  }
  @media (max-width: 479px) {
    .pd-cta { grid-template-columns: 1fr 1fr; }
    .pd-cta__secondary { grid-column: 1 / -1; justify-content: center; }
    .pd-cta__icon-btn { flex: 1; min-height: 42px; }
  }

  /* ---------- Livraison ---------- */
  .pd-delivery,
  .pd-trust,
  .pd-seller {
    display: flex;
    flex-direction: column;
    gap: var(--nb-space-3);
    padding: var(--nb-space-4);
    background: var(--nb-color-surface);
    border: 1px solid var(--nb-color-border);
    border-radius: var(--nb-radius-md);
  }

  .pd-delivery__list {
    display: flex;
    flex-direction: column;
    gap: var(--nb-space-2);
  }
  .pd-delivery__row {
    display: flex;
    align-items: flex-start;
    gap: var(--nb-space-2);
    font-size: var(--nb-fs-sm);
    color: var(--nb-color-text);
    line-height: var(--nb-lh-snug);

    & > i {
      flex-shrink: 0;
      margin-top: 2px;
      color: var(--nb-color-text-faint);
      font-size: 1.05rem;
    }
    & b { font-variant-numeric: tabular-nums; }
  }
  .pd-delivery__badge {
    display: inline-flex;
    align-items: center;
    padding: 2px var(--nb-space-2);
    background: var(--nb-color-surface-alt);
    border-radius: var(--nb-radius-xs);
    font-size: var(--nb-fs-xs);
    font-weight: var(--nb-fw-bold);
    color: var(--nb-color-text);
  }
  .pd-delivery__badge--hub {
    background: var(--nb-color-info-soft);
    color: var(--nb-color-info-hover);
  }

  /* ---------- Confiance & paiements ---------- */
  .pd-trust__list {
    display: flex;
    flex-direction: column;
    gap: var(--nb-space-2);

    & > li {
      display: flex;
      align-items: flex-start;
      gap: var(--nb-space-2);
      font-size: var(--nb-fs-sm);
      line-height: var(--nb-lh-snug);
      color: var(--nb-color-text);
    }
    & > li > i {
      flex-shrink: 0;
      margin-top: 2px;
      color: var(--nb-color-success);
      font-size: 1.05rem;
    }
  }
  .pd-trust__payments {
    display: flex;
    flex-direction: column;
    gap: var(--nb-space-2);
    padding-top: var(--nb-space-3);
    border-top: 1px dashed var(--nb-color-border);
  }
  .pd-trust__payments-label {
    font-size: var(--nb-fs-2xs);
    font-weight: var(--nb-fw-bold);
    text-transform: uppercase;
    letter-spacing: var(--nb-ls-wider);
    color: var(--nb-color-text-faint);
  }
  .pd-trust__payments-list {
    display: flex;
    gap: var(--nb-space-2);
    flex-wrap: wrap;
  }
  .pd-trust__pay {
    display: inline-flex;
    align-items: center;
    padding: 3px var(--nb-space-2);
    border-radius: var(--nb-radius-xs);
    font-size: var(--nb-fs-2xs);
    font-weight: var(--nb-fw-bold);
    letter-spacing: var(--nb-ls-wide);
  }
  .pd-trust__pay--om   { background: oklch(75% 0.17 60 / 0.18);  color: oklch(52% 0.16 55); }
  .pd-trust__pay--momo { background: oklch(85% 0.17 95 / 0.25);  color: oklch(48% 0.11 90); }
  .pd-trust__pay--cod  { background: var(--nb-color-success-soft); color: var(--nb-color-success-hover); }
  .pd-trust__pay--card { background: var(--nb-color-info-soft);    color: var(--nb-color-info-hover); }

  /* ---------- Vendeur ---------- */
  .pd-seller__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--nb-space-3);
  }
  .pd-seller__identity {
    display: flex;
    align-items: center;
    gap: var(--nb-space-3);
    min-width: 0;
  }
  .pd-seller__avatar {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    flex-shrink: 0;
    border-radius: var(--nb-radius-md);
    background: var(--nb-color-accent-soft);
    color: var(--nb-color-accent-hover);
    font-family: var(--nb-font-heading);
    font-weight: var(--nb-fw-heavy);
    font-size: var(--nb-fs-md);
  }
  .pd-seller__avatar.is-online::after {
    content: "";
    position: absolute;
    right: -2px;
    bottom: -2px;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: var(--nb-color-success);
    border: 2px solid var(--nb-color-surface);
  }
  .pd-seller__names {
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-width: 0;
  }
  .pd-seller__label {
    font-size: var(--nb-fs-2xs);
    text-transform: uppercase;
    letter-spacing: var(--nb-ls-wider);
    color: var(--nb-color-text-faint);
    font-weight: var(--nb-fw-bold);
  }
  .pd-seller__name {
    display: inline-flex;
    align-items: center;
    gap: var(--nb-space-1);
    font-family: var(--nb-font-heading);
    font-size: var(--nb-fs-md);
    font-weight: var(--nb-fw-bold);
    color: var(--nb-color-text-strong);
  }
  .pd-seller__verified { color: var(--nb-color-info); font-size: 1.05em; }
  .pd-seller__tagline {
    font-size: var(--nb-fs-xs);
    color: var(--nb-color-text-muted);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .pd-seller__stats {
    display: flex;
    align-items: center;
    gap: var(--nb-space-3);
    flex-wrap: wrap;
    padding-block: var(--nb-space-2);
    border-block: 1px dashed var(--nb-color-border);
    font-size: var(--nb-fs-xs);
    color: var(--nb-color-text-muted);
  }
  .pd-seller__stat {
    display: inline-flex;
    align-items: center;
    gap: var(--nb-space-1);

    & > dt { display: inline-flex; }
    & > dt > i { color: var(--nb-color-star); }
    & > dd b { color: var(--nb-color-text-strong); font-variant-numeric: tabular-nums; }
  }
  .pd-seller__stat:nth-child(3) > dt > i,
  .pd-seller__stat:nth-child(4) > dt > i { color: var(--nb-color-accent); }
  .pd-seller__actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--nb-space-2);
  }
  .pd-seller__chat,
  .pd-seller__visit {
    min-width: 0;
    padding-inline: var(--nb-space-3);
    font-size: var(--nb-fs-xs);
  }
  @media (min-width: 768px) {
    .pd-seller__actions { grid-template-columns: 1fr 1fr; }
    .pd-seller__chat,
    .pd-seller__visit { font-size: var(--nb-fs-sm); }
  }


  /* ===============================================
   * ONGLETS DETAILS
   * =============================================== */
  .pd-details {
    margin-top: var(--nb-space-10);
    background: var(--nb-color-surface);
    border: 1px solid var(--nb-color-border);
    border-radius: var(--nb-radius-lg);
    overflow: hidden;
  }
  .pd-tabs {
    display: flex;
    border-bottom: 1px solid var(--nb-color-border);
    overflow-x: auto;
    scrollbar-width: none;
  }
  .pd-tabs::-webkit-scrollbar { display: none; }
  .pd-tabs__tab {
    position: relative;
    flex-shrink: 0;
    padding: var(--nb-space-3) var(--nb-space-5);
    font-size: var(--nb-fs-sm);
    font-weight: var(--nb-fw-semibold);
    color: var(--nb-color-text-muted);
    white-space: nowrap;
    transition: color var(--nb-dur-fast) var(--nb-ease-standard);
  }
  .pd-tabs__tab::after {
    content: "";
    position: absolute;
    inset: auto 0 0;
    height: 2.5px;
    background: var(--nb-color-accent);
    transform: scaleX(0);
    transition: transform var(--nb-dur-normal) var(--nb-ease-out-expo);
  }
  .pd-tabs__tab:hover { color: var(--nb-color-text); }
  .pd-tabs__tab.is-active {
    color: var(--nb-color-text-strong);

    &::after { transform: scaleX(1); }
  }
  .pd-tabs__tab:focus-visible { outline: none; box-shadow: inset var(--nb-focus-ring); }
  .pd-tabs__panel {
    display: none;
    padding: var(--nb-space-5);
    flex-direction: column;
    gap: var(--nb-space-6);
  }
  .pd-tabs__panel.is-active { display: flex; }

  .pd-details__subtitle {
    font-family: var(--nb-font-heading);
    font-size: var(--nb-fs-md);
    font-weight: var(--nb-fw-bold);
    color: var(--nb-color-text-strong);
    margin-bottom: var(--nb-space-3);
  }

  .pd-highlights__list {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--nb-space-2);

    & > li {
      display: flex;
      align-items: flex-start;
      gap: var(--nb-space-2);
      font-size: var(--nb-fs-sm);
      line-height: var(--nb-lh-snug);
    }
    & > li > i {
      flex-shrink: 0;
      margin-top: 2px;
      color: var(--nb-color-success);
    }
  }
  @media (min-width: 768px) {
    .pd-highlights__list { grid-template-columns: 1fr 1fr; }
  }

  .pd-description {
    display: flex;
    flex-direction: column;
    gap: var(--nb-space-3);
    font-size: var(--nb-fs-sm);
    line-height: var(--nb-lh-relaxed);
    color: var(--nb-color-text);
    max-width: 72ch;
  }

  .pd-box__list {
    display: flex;
    flex-direction: column;
    gap: var(--nb-space-2);

    & > li {
      display: flex;
      align-items: flex-start;
      gap: var(--nb-space-2);
      font-size: var(--nb-fs-sm);
    }
    & > li > i { color: var(--nb-color-text-faint); margin-top: 2px; }
  }

  .pd-warranty {
    display: inline-flex;
    align-items: center;
    gap: var(--nb-space-2);
    align-self: flex-start;
    padding: var(--nb-space-2) var(--nb-space-3);
    background: var(--nb-color-success-soft);
    color: var(--nb-color-success-hover);
    border-radius: var(--nb-radius-sm);
    font-size: var(--nb-fs-xs);
    font-weight: var(--nb-fw-bold);
  }

  .pd-specs__table {
    width: 100%;
    font-size: var(--nb-fs-sm);

    & th {
      width: 40%;
      max-width: 240px;
      padding: var(--nb-space-2) var(--nb-space-3);
      text-align: start;
      font-weight: var(--nb-fw-medium);
      color: var(--nb-color-text-muted);
      background: var(--nb-color-surface-alt);
    }
    & td {
      padding: var(--nb-space-2) var(--nb-space-3);
      color: var(--nb-color-text-strong);
    }
    & tr + tr { border-top: 1px solid var(--nb-color-border-alt); }
  }

  .pd-ship-details {
    display: flex;
    flex-direction: column;
    gap: var(--nb-space-4);
    max-width: 72ch;

    & > li {
      display: flex;
      align-items: flex-start;
      gap: var(--nb-space-3);
      font-size: var(--nb-fs-sm);
      line-height: var(--nb-lh-relaxed);
    }
    & > li > i {
      flex-shrink: 0;
      margin-top: 2px;
      color: var(--nb-color-accent);
      font-size: 1.25rem;
    }
  }


  /* ===============================================
   * AVIS CLIENTS
   * =============================================== */
  .pd-reviews {
    margin-top: var(--nb-space-10);
    scroll-margin-top: calc(var(--nb-header-menu-h) + var(--nb-space-6));
  }
  .pd-reviews__layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--nb-space-6);
    margin-top: var(--nb-space-5);
  }
  @media (min-width: 1024px) {
    .pd-reviews__layout {
      grid-template-columns: 300px minmax(0, 1fr);
      gap: var(--nb-space-10);
      align-items: start;
    }
  }

  .pd-reviews__summary {
    display: flex;
    flex-direction: column;
    gap: var(--nb-space-4);
    padding: var(--nb-space-5);
    background: var(--nb-color-surface);
    border: 1px solid var(--nb-color-border);
    border-radius: var(--nb-radius-lg);
  }
  @media (min-width: 1024px) {
    .pd-reviews__summary {
      position: sticky;
      top: calc(var(--nb-header-menu-h) + var(--nb-space-4));
    }
  }
  .pd-reviews__average {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--nb-space-1);
    text-align: center;
  }
  .pd-reviews__average-value {
    font-family: var(--nb-font-heading);
    font-size: var(--nb-fs-4xl);
    font-weight: var(--nb-fw-heavy);
    line-height: 1;
    color: var(--nb-color-text-strong);
    font-variant-numeric: tabular-nums;
  }
  .pd-reviews__average-of {
    font-size: var(--nb-fs-xs);
    color: var(--nb-color-text-faint);
  }
  .pd-reviews__average-count {
    font-size: var(--nb-fs-xs);
    color: var(--nb-color-text-muted);
  }
  .pd-reviews__bars {
    display: flex;
    flex-direction: column;
    gap: var(--nb-space-2);
  }
  .pd-reviews__bar-row {
    display: grid;
    grid-template-columns: 42px 1fr 38px;
    align-items: center;
    gap: var(--nb-space-2);
    font-size: var(--nb-fs-xs);
    color: var(--nb-color-text-muted);
    font-variant-numeric: tabular-nums;
  }
  .pd-reviews__bar-star {
    display: inline-flex;
    align-items: center;
    gap: 3px;

    & > i { color: var(--nb-color-star); }
  }
  .pd-reviews__bar-track {
    height: 8px;
    background: var(--nb-color-surface-sunk);
    border-radius: var(--nb-radius-pill);
    overflow: hidden;
  }
  .pd-reviews__bar-fill {
    display: block;
    height: 100%;
    background: var(--nb-color-star);
    border-radius: var(--nb-radius-pill);
  }
  .pd-reviews__bar-percent { text-align: end; }

  .pd-reviews__main {
    display: flex;
    flex-direction: column;
    gap: var(--nb-space-4);
    min-width: 0;
  }
  .pd-reviews__filters {
    display: flex;
    gap: var(--nb-space-2);
    flex-wrap: wrap;
  }
  .pd-reviews__list {
    display: flex;
    flex-direction: column;
  }

  .pd-review {
    display: flex;
    flex-direction: column;
    gap: var(--nb-space-2);
    padding-block: var(--nb-space-5);
    border-bottom: 1px solid var(--nb-color-border-alt);
  }
  .pd-review:first-child { padding-top: 0; }
  .pd-review__head {
    display: flex;
    align-items: center;
    gap: var(--nb-space-3);
  }
  .pd-review__avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    flex-shrink: 0;
    border-radius: 50%;
    background: var(--nb-color-surface-alt);
    color: var(--nb-color-text-muted);
    font-weight: var(--nb-fw-bold);
    font-family: var(--nb-font-heading);
  }
  .pd-review__who {
    display: flex;
    flex-direction: column;
    min-width: 0;
    margin-inline-end: auto;
  }
  .pd-review__name {
    font-size: var(--nb-fs-sm);
    font-weight: var(--nb-fw-semibold);
    color: var(--nb-color-text-strong);
  }
  .pd-review__date {
    font-size: var(--nb-fs-2xs);
    color: var(--nb-color-text-faint);
    font-variant-numeric: tabular-nums;
  }
  .pd-review__verified { flex-shrink: 0; }
  .pd-review__rating {
    display: flex;
    align-items: baseline;
    gap: var(--nb-space-2);
    flex-wrap: wrap;
  }
  .pd-review__title {
    font-size: var(--nb-fs-sm);
    color: var(--nb-color-text-strong);
  }
  .pd-review__content {
    font-size: var(--nb-fs-sm);
    line-height: var(--nb-lh-relaxed);
    color: var(--nb-color-text);
    max-width: 72ch;
  }
  .pd-review__photos {
    display: flex;
    gap: var(--nb-space-2);
    flex-wrap: wrap;
  }
  .pd-review__photo {
    width: 72px;
    height: 72px;
    border-radius: var(--nb-radius-sm);
    overflow: hidden;
    border: 1px solid var(--nb-color-border);
    padding: 0;
    background: var(--nb-color-surface-alt);
    transition: transform var(--nb-dur-fast) var(--nb-ease-spring),
                border-color var(--nb-dur-fast) var(--nb-ease-standard);

    & > img { width: 100%; height: 100%; object-fit: cover; }
  }
  .pd-review__photo:hover { transform: scale(1.05); border-color: var(--nb-color-accent); }
  .pd-review__photo:focus-visible { outline: none; box-shadow: var(--nb-focus-ring); }
  .pd-review__reply {
    display: flex;
    flex-direction: column;
    gap: var(--nb-space-1);
    padding: var(--nb-space-3);
    background: var(--nb-color-surface-alt);
    border-inline-start: 3px solid var(--nb-color-accent);
    border-radius: var(--nb-radius-sm);
    font-size: var(--nb-fs-xs);
    line-height: var(--nb-lh-snug);
    max-width: 62ch;
  }
  .pd-review__reply-label {
    display: inline-flex;
    align-items: center;
    gap: var(--nb-space-1);
    font-weight: var(--nb-fw-bold);
    color: var(--nb-color-accent-hover);
    text-transform: uppercase;
    letter-spacing: var(--nb-ls-wide);
    font-size: var(--nb-fs-2xs);
  }
  .pd-review__helpful {
    display: inline-flex;
    align-items: center;
    gap: var(--nb-space-1);
    align-self: flex-start;
    padding: var(--nb-space-1) var(--nb-space-3);
    border: 1px solid var(--nb-color-border);
    border-radius: var(--nb-radius-pill);
    font-size: var(--nb-fs-xs);
    color: var(--nb-color-text-muted);
    font-variant-numeric: tabular-nums;
    transition: color var(--nb-dur-fast) var(--nb-ease-standard),
                border-color var(--nb-dur-fast) var(--nb-ease-standard),
                background var(--nb-dur-fast) var(--nb-ease-standard);
  }
  .pd-review__helpful:hover {
    color: var(--nb-color-accent);
    border-color: var(--nb-color-accent);
  }
  .pd-review__helpful:focus-visible { outline: none; box-shadow: var(--nb-focus-ring); }
  .pd-review__helpful.is-active {
    background: var(--nb-color-accent-soft);
    border-color: var(--nb-color-accent);
    color: var(--nb-color-accent-hover);
  }
  .pd-reviews__empty {
    padding: var(--nb-space-8);
    text-align: center;
    color: var(--nb-color-text-faint);
    font-size: var(--nb-fs-sm);
  }
  .pd-reviews__more { align-self: center; }


  /* ===============================================
   * RAILS PRODUITS (container queries D-011 #6)
   * =============================================== */
  .pd-rail {
    margin-top: var(--nb-space-10);
    container-type: inline-size;
    container-name: pd-rail;
  }
  .pd-rail__header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--nb-space-3);
    margin-bottom: var(--nb-space-4);
  }
  .pd-rail__see-all {
    display: inline-flex;
    align-items: center;
    gap: var(--nb-space-1);
    flex-shrink: 0;
    font-size: var(--nb-fs-xs);
    font-weight: var(--nb-fw-bold);
    text-transform: uppercase;
    letter-spacing: var(--nb-ls-wide);
    color: var(--nb-color-accent);
    transition: gap var(--nb-dur-fast) var(--nb-ease-out-quart),
                color var(--nb-dur-fast) var(--nb-ease-standard);
  }
  .pd-rail__see-all:hover { gap: var(--nb-space-2); color: var(--nb-color-accent-hover); }
  /* Largeur en fraction du conteneur (jamais en pixels) : la card affichee est
     toujours entiere. Meme regle que les rails du listing catalogue. */
  .pd-rail__track {
    --pd-rail-cols: 2;
    --pd-rail-gap: var(--nb-space-2);

    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: calc(
      (100% - (var(--pd-rail-cols) - 1) * var(--pd-rail-gap)) / var(--pd-rail-cols)
    );
    gap: var(--pd-rail-gap);
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    overscroll-behavior-x: contain;
    padding-block: 2px;
    scrollbar-width: none;
  }
  .pd-rail__track::-webkit-scrollbar { display: none; }
  .pd-rail__track > .nb-product-card { scroll-snap-align: start; }

  @container pd-rail (min-width: 560px) {
    .pd-rail__track { --pd-rail-cols: 3; --pd-rail-gap: var(--nb-space-3); }
  }
  @container pd-rail (min-width: 900px) {
    .pd-rail__track { --pd-rail-cols: 4; }
  }
  @container pd-rail (min-width: 1280px) {
    .pd-rail__track { --pd-rail-cols: 5; --pd-rail-gap: var(--nb-space-4); }
  }


  /* ===============================================
   * BARRE COLLANTE MOBILE
   * =============================================== */
  .pd-sticky {
    position: fixed;
    inset-inline: 0;
    bottom: var(--nb-mobile-nav-h);
    z-index: var(--nb-z-sticky);
    display: flex;
    align-items: stretch;
    gap: var(--nb-space-2);
    padding: var(--nb-space-2) var(--nb-space-3);
    padding-bottom: max(var(--nb-space-2), env(safe-area-inset-bottom));
    background: color-mix(in oklch, var(--nb-color-surface) 92%, transparent);
    backdrop-filter: blur(12px);
    border-top: 1px solid var(--nb-color-border-alt);
    transform: translateY(calc(100% + var(--nb-mobile-nav-h)));
    transition: transform var(--nb-dur-slow) var(--nb-ease-out-expo);
  }
  .pd-sticky.is-visible { transform: translateY(0); }
  @media (min-width: 1024px) {
    .pd-sticky { display: none; }
  }
  .pd-sticky__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    border: 1px solid var(--nb-color-border);
    border-radius: var(--nb-radius-md);
    background: var(--nb-color-surface);
    color: var(--nb-color-text-muted);
    font-size: 1.25rem;
    transition: color var(--nb-dur-fast) var(--nb-ease-standard),
                border-color var(--nb-dur-fast) var(--nb-ease-standard);
  }
  .pd-sticky__icon:hover { color: var(--nb-color-accent); border-color: var(--nb-color-accent); }
  .pd-sticky__icon:focus-visible { outline: none; box-shadow: var(--nb-focus-ring); }
  .pd-sticky__icon.is-active { color: var(--nb-color-danger); border-color: var(--nb-color-danger); }
  .pd-sticky__cart,
  .pd-sticky__buy {
    flex: 1;
    min-width: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--nb-space-2);
    padding: var(--nb-space-3);
    border-radius: var(--nb-radius-md);
    font-size: var(--nb-fs-xs);
    font-weight: var(--nb-fw-bold);
    text-transform: uppercase;
    letter-spacing: var(--nb-ls-wide);
    white-space: nowrap;
    transition: background var(--nb-dur-fast) var(--nb-ease-standard);
  }
  /* < 480px : panier en icone seule, tout l'espace au CTA "Acheter" */
  @media (max-width: 479px) {
    .pd-sticky__cart { flex: 0 0 auto; width: 48px; padding-inline: 0; font-size: 1.25rem; }
    .pd-sticky__cart-label { display: none; }
  }
  .pd-sticky__cart {
    background: var(--nb-color-accent-soft);
    color: var(--nb-color-accent-hover);
  }
  .pd-sticky__cart:hover { background: var(--nb-color-accent-soft-hover); }
  .pd-sticky__buy {
    background: var(--nb-color-accent);
    color: var(--nb-color-accent-contrast);
  }
  .pd-sticky__buy:hover { background: var(--nb-color-accent-hover); }
  .pd-sticky__cart:disabled,
  .pd-sticky__buy:disabled {
    background: var(--nb-color-surface-sunk);
    color: var(--nb-color-text-disabled);
  }
  .pd-sticky__cart:focus-visible,
  .pd-sticky__buy:focus-visible { outline: none; box-shadow: var(--nb-focus-ring); }


  /* ===============================================
   * LIGHTBOX GALERIE (dialog natif D-011 #7)
   * =============================================== */
  .pd-lightbox {
    position: fixed;
    inset: 0;
    width: 100vw;
    height: 100dvh;
    max-width: none;
    max-height: none;
    margin: 0;
    display: none;
    align-items: center;
    justify-content: center;
    background: oklch(12% 0.01 60 / 0.92);
    z-index: var(--nb-z-dialog);
  }
  .pd-lightbox[open] { display: flex; }
  .pd-lightbox::backdrop { background: transparent; }
  .pd-lightbox__stage {
    max-width: min(92vw, 860px);
    max-height: 86dvh;

    & > img {
      width: 100%;
      height: 100%;
      max-height: 86dvh;
      object-fit: contain;
      border-radius: var(--nb-radius-md);
    }
  }
  .pd-lightbox__close {
    position: absolute;
    top: var(--nb-space-4);
    right: var(--nb-space-4);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: oklch(100% 0 0 / 0.12);
    color: white;
    font-size: 1.4rem;
    transition: background var(--nb-dur-fast) var(--nb-ease-standard);
  }
  .pd-lightbox__close:hover { background: oklch(100% 0 0 / 0.25); }
  .pd-lightbox__close:focus-visible { outline: none; box-shadow: var(--nb-focus-ring); }
  .pd-lightbox__nav {
    position: absolute;
    top: 50%;
    translate: 0 -50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    border-radius: 50%;
    background: oklch(100% 0 0 / 0.12);
    color: white;
    font-size: 1.4rem;
    transition: background var(--nb-dur-fast) var(--nb-ease-standard);
  }
  .pd-lightbox__nav--prev { left: var(--nb-space-3); }
  .pd-lightbox__nav--next { right: var(--nb-space-3); }
  .pd-lightbox__nav:hover { background: oklch(100% 0 0 / 0.25); }
  .pd-lightbox__nav:focus-visible { outline: none; box-shadow: var(--nb-focus-ring); }
  .pd-lightbox__counter {
    position: absolute;
    bottom: var(--nb-space-5);
    left: 50%;
    translate: -50% 0;
    padding: var(--nb-space-1) var(--nb-space-3);
    border-radius: var(--nb-radius-pill);
    background: oklch(100% 0 0 / 0.12);
    color: white;
    font-size: var(--nb-fs-xs);
    font-variant-numeric: tabular-nums;
  }

  /* ===============================================
   * DONNEES REELLES : fin de promotion, pastille couleur, FAQ
   * =============================================== */
  .pd-price__promo-until {
    display: inline-flex;
    align-items: center;
    gap: var(--nb-space-1);
    font-size: var(--nb-fs-xs);
    font-weight: var(--nb-fw-semibold);
    color: var(--nb-color-danger);
    & > i { font-size: 1rem; }
  }
  .pd-variants__swatch--color {
    display: grid;
    place-items: center;
    background: var(--nb-color-surface);
  }
  .pd-variants__color {
    display: block;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: 1px solid oklch(0% 0 0 / 0.12);
  }
  .pd-faq {
    display: flex;
    flex-direction: column;
    gap: var(--nb-space-2);
  }
  .pd-faq__item {
    border: 1px solid var(--nb-color-border);
    border-radius: var(--nb-radius-md);
    background: var(--nb-color-surface);
    &[open] .pd-faq__caret { transform: rotate(180deg); }
  }
  .pd-faq__question {
    display: flex;
    align-items: center;
    gap: var(--nb-space-2);
    padding: var(--nb-space-3) var(--nb-space-4);
    font-weight: var(--nb-fw-semibold);
    font-size: var(--nb-fs-sm);
    cursor: pointer;
    list-style: none;
    &::-webkit-details-marker { display: none; }
    & > span { flex: 1; }
    & > i:first-child { color: var(--nb-color-accent); font-size: 1.1rem; }
  }
  .pd-faq__caret { transition: transform var(--nb-dur-fast) var(--nb-ease-standard); color: var(--nb-color-text-muted); }
  .pd-faq__answer {
    padding: 0 var(--nb-space-4) var(--nb-space-4) calc(var(--nb-space-4) + 1.1rem + var(--nb-space-2));
    font-size: var(--nb-fs-sm);
    line-height: 1.6;
    color: var(--nb-color-text);
  }
}
