/* ============================================================================
   store-redesign.css — Calque de refonte visuelle du storefront (06/10/2026)
   ----------------------------------------------------------------------------
   Chargé EN DERNIER : il unifie les 3 systèmes concurrents (store-premium
   --c-*, modern-v2 --mv2-*, tokens layout --primary/--bg/--text) en les
   re-branchant sur LA couleur de marque du marchand + des neutres dérivés de
   sa palette, puis élève chaque composant au niveau d'un storefront premium.

   Règle d'or : AUCUNE couleur en dur de marque. Tout dérive des tokens
   injectés par le builder (--primary, --bg, --surface, --text, ...).
   ========================================================================== */

:root {
  /* ── Neutres dérivés de la palette marchand (jamais figés) ────────────── */
  --rd-surface-2: color-mix(in srgb, var(--text) 4%, var(--surface));
  --rd-line:      color-mix(in srgb, var(--text) 11%, var(--bg));
  --rd-line-soft: color-mix(in srgb, var(--text) 6%, var(--bg));
  --rd-muted:     var(--text-secondary);
  --rd-faint:     color-mix(in srgb, var(--text-secondary) 70%, var(--bg));

  /* ── Teintes d'accent dérivées de la marque ──────────────────────────── */
  --rd-accent:        var(--primary);
  --rd-accent-ink:    #ffffff;
  --rd-accent-600:    color-mix(in srgb, var(--primary) 82%, #000);
  --rd-accent-tint:   color-mix(in srgb, var(--primary) 9%,  var(--surface));
  --rd-accent-tint-2: color-mix(in srgb, var(--primary) 16%, var(--surface));
  --rd-accent-glow:   color-mix(in srgb, var(--primary) 38%, transparent);
  --rd-star:          #e8a317;
  --rd-good:          var(--success, #1c8a5b);

  /* ── Élévation feutrée, en couches ───────────────────────────────────── */
  --rd-sh-1: 0 1px 2px color-mix(in srgb, var(--text) 5%, transparent), 0 1px 3px color-mix(in srgb, var(--text) 6%, transparent);
  --rd-sh-2: 0 6px 16px color-mix(in srgb, var(--text) 9%, transparent), 0 2px 6px color-mix(in srgb, var(--text) 6%, transparent);
  --rd-sh-3: 0 18px 44px color-mix(in srgb, var(--text) 14%, transparent), 0 6px 14px color-mix(in srgb, var(--text) 8%, transparent);

  /* ── Rayons & transitions ────────────────────────────────────────────── */
  --rd-r:    10px;
  --rd-r-sm: 6px;
  --rd-pill: 999px;
  --rd-t:    .28s cubic-bezier(.22,.61,.36,1);

  /* ── Re-branchement de store-premium (--c-*) sur la marque + neutres ──── */
  --c-brand:      var(--primary);
  --c-brand-2:    var(--primary);
  --c-brand-soft: var(--rd-accent-tint);
  --c-bg:         var(--surface);
  --c-bg-alt:     var(--rd-surface-2);
  --c-bg-soft:    var(--rd-surface-2);
  --c-text:       var(--text);
  --c-text-muted: var(--text-secondary);
  --c-text-soft:  var(--rd-faint);
  --c-border:     var(--rd-line);
  --c-border-soft:var(--rd-line-soft);

  /* ── Re-branchement de modern-v2 (--mv2-*) ────────────────────────────── */
  --mv2-bg:          var(--bg);
  --mv2-surface:     var(--surface);
  --mv2-surface-alt: var(--rd-surface-2);
  --mv2-text:        var(--text);
  --mv2-text-muted:  var(--text-secondary);
  --mv2-border:      var(--rd-line);
  --mv2-border-soft: var(--rd-line-soft);
  --mv2-accent:      var(--primary);
  --mv2-accent-2:    var(--primary);
  --mv2-accent-soft: var(--rd-accent-tint);
}

/* ── Mode sombre : on garde la MARQUE, on réécrit les neutres ───────────── */
body.dark-theme {
  --bg:             #0E1012;
  --surface:        #16191C;
  --text:           #ECEEF1;
  --text-secondary: #9BA1A9;
  /* Accent éclairci pour rester lisible sur fond sombre */
  --primary:        color-mix(in srgb, var(--brand) 78%, #ffffff);
  --rd-accent-600:  color-mix(in srgb, var(--brand) 60%, #ffffff);
  --rd-accent-ink:  #130a07;
  --rd-surface-2:   #1C2024;
  --rd-line:        #262B30;
  --rd-line-soft:   #1E2227;
  --rd-faint:       #6B727A;
  --rd-sh-1: 0 1px 2px rgba(0,0,0,.4);
  --rd-sh-2: 0 6px 18px rgba(0,0,0,.45);
  --rd-sh-3: 0 20px 48px rgba(0,0,0,.6);
  color: var(--text);
}
body.dark-theme { background: var(--bg); }

/* ========================================================================== */
/*  BASE                                                                       */
/* ========================================================================== */
body {
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
::selection { background: var(--rd-accent-tint-2); color: var(--text); }
h1, h2, h3, h4 { text-wrap: balance; letter-spacing: -.018em; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 2px solid var(--primary); outline-offset: 2px; border-radius: 4px;
}

/* ========================================================================== */
/*  HEADER / NAV                                                               */
/* ========================================================================== */
.pal-nav, .pal-header {
  background: color-mix(in srgb, var(--surface) 86%, transparent) !important;
  -webkit-backdrop-filter: saturate(1.4) blur(14px);
  backdrop-filter: saturate(1.4) blur(14px);
  border-bottom: 1px solid var(--rd-line);
}
.pal-nav-link, .pal-menu-link { position: relative; transition: color var(--rd-t); }
.pal-nav-link::after, .pal-menu-link::after {
  content: ""; position: absolute; left: 0; right: 100%; bottom: -3px; height: 2px;
  background: var(--primary); border-radius: 2px; transition: right var(--rd-t);
}
.pal-nav-link:hover, .pal-menu-link:hover { color: var(--primary); }
.pal-nav-link:hover::after, .pal-menu-link:hover::after { right: 0; }

.pal-search input, .pal-search-input {
  transition: box-shadow var(--rd-t), border-color var(--rd-t);
}
.pal-search:focus-within {
  border-color: var(--primary);
  box-shadow: 0 0 0 3px var(--rd-accent-tint-2);
}
.pal-icon-btn { transition: background var(--rd-t), color var(--rd-t); border-radius: var(--rd-pill); }
.pal-icon-btn:hover { background: var(--rd-surface-2); color: var(--primary); }
.pal-icon-btn-badge, #cart-badge, #wishlistCount {
  background: var(--primary) !important; color: var(--rd-accent-ink) !important;
}

/* Promo bar : léger dégradé de marque */
.pal-promo-bar, .pal-topbar {
  background: var(--text);
  color: color-mix(in srgb, var(--bg) 88%, #fff);
}

/* Mega-menu : panneau premium + CTA sur la marque */
.pal-mega {
  background: var(--surface);
  border: 1px solid var(--rd-line);
  border-radius: var(--rd-r);
  box-shadow: var(--rd-sh-3);
}
.pal-mega-link {
  color: var(--text); border-radius: var(--rd-r-sm);
  transition: background var(--rd-t), color var(--rd-t), transform var(--rd-t);
}
.pal-mega-link:hover { background: var(--rd-accent-tint); color: var(--primary); transform: translateX(3px); }
.pal-mega-link i { color: var(--primary); opacity: .55; }
.pal-mega-cta {
  background: var(--primary) !important; color: var(--rd-accent-ink) !important;
  border-radius: var(--rd-pill); font-weight: 600;
}
.pal-mega-cta:hover { background: var(--rd-accent-600) !important; color: var(--rd-accent-ink) !important; }
.pal-dropdown { background: var(--surface); border: 1px solid var(--rd-line); border-radius: var(--rd-r); box-shadow: var(--rd-sh-2); }
.pal-dropdown-link { color: var(--text); transition: background var(--rd-t), color var(--rd-t); }
.pal-dropdown-link:hover { background: var(--rd-accent-tint); color: var(--primary); }

/* ========================================================================== */
/*  BOUTONS                                                                    */
/* ========================================================================== */
.btn-pal {
  border-radius: var(--rd-pill);
  font-weight: 600;
  transition: transform var(--rd-t), background var(--rd-t), box-shadow var(--rd-t), color var(--rd-t), border-color var(--rd-t);
}
.btn-pal-primary {
  background: var(--primary) !important;
  color: var(--rd-accent-ink) !important;
  box-shadow: 0 6px 18px var(--rd-accent-glow);
}
.btn-pal-primary:hover {
  background: var(--rd-accent-600) !important;
  box-shadow: 0 10px 28px var(--rd-accent-glow);
  transform: translateY(-1px);
}
.btn-pal-dark {
  background: var(--text) !important; color: var(--bg) !important;
}
.btn-pal-dark:hover { background: color-mix(in srgb, var(--text) 86%, var(--primary)) !important; color: var(--bg) !important; transform: translateY(-1px); }
.btn-pal-light {
  background: var(--surface) !important; color: var(--text) !important;
  border: 1px solid var(--rd-line); box-shadow: var(--rd-sh-1);
}
.btn-pal-light:hover { box-shadow: var(--rd-sh-2); transform: translateY(-1px); border-color: var(--rd-line); }
.btn-pal-outline { border: 1px solid var(--rd-line); color: var(--text) !important; background: transparent !important; }
.btn-pal-outline:hover { background: var(--text) !important; color: var(--bg) !important; border-color: var(--text); }
.btn-pal-ghost:hover { background: var(--rd-surface-2) !important; color: var(--primary) !important; }
.btn-pal-lg { padding: 15px 28px; font-size: 15.5px; border-radius: var(--rd-pill); }
.btn-pal-sm { border-radius: var(--rd-pill); }

/* ========================================================================== */
/*  EN-TÊTE DE SECTION (produits / catégories)                                 */
/* ========================================================================== */
.pal-section-sm, .pal-cat-section { padding-block: clamp(44px, 6vw, 84px); }
.pal-section-title, .pal-cat-title {
  font-size: clamp(22px, 3vw, 32px); font-weight: 700; letter-spacing: -.025em;
  color: var(--text);
}
.pal-cat-eyebrow, .pal-section-eyebrow {
  font-size: 11.5px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase;
  color: var(--primary);
}
.pal-cat-subtitle, .pal-section-sub { color: var(--text-secondary); }
.pal-section-link {
  font-weight: 600; color: var(--primary) !important; display: inline-flex; gap: 6px; align-items: center;
}
.pal-section-link i, .pal-section-link svg { transition: transform var(--rd-t); }
.pal-section-link:hover i, .pal-section-link:hover svg { transform: translateX(4px); }

/* ========================================================================== */
/*  GRILLE & CARTES PRODUIT — le gros gain visuel                              */
/* ========================================================================== */
.pal-products-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
  gap: 22px;
}
@media (max-width: 576px) { .pal-products-grid { grid-template-columns: 1fr 1fr; gap: 14px; } }

.product-card {
  position: relative;
  display: flex; flex-direction: column;
  background: var(--surface);
  border: 1px solid var(--rd-line);
  border-radius: var(--rd-r);
  overflow: hidden;
  color: var(--text);
  transition: transform var(--rd-t), box-shadow var(--rd-t), border-color var(--rd-t);
}
.product-card:hover {
  transform: translateY(-5px);
  box-shadow: var(--rd-sh-3);
  border-color: transparent;
}
.product-card.is-out-of-stock { opacity: .96; }

/* Image */
.product-img-wrap {
  position: relative; aspect-ratio: 1; overflow: hidden;
  background: var(--rd-surface-2);
}
.product-img, .product-img-alt {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
  transition: transform .6s cubic-bezier(.22,.61,.36,1), opacity var(--rd-t);
}
.product-img-alt { opacity: 0; }
.product-card:hover .product-img { transform: scale(1.07); }
.product-card:hover .product-img-alt { opacity: 1; transform: scale(1.07); }

/* Badge unique */
.product-badge {
  position: absolute; top: 12px; left: 12px; z-index: 3;
  font-size: 11px; font-weight: 700; letter-spacing: .03em;
  padding: 5px 10px; border-radius: var(--rd-pill); line-height: 1;
}
.product-badge.sale { background: var(--primary); color: var(--rd-accent-ink); }
.product-badge.new  { background: var(--text); color: var(--bg); }
.product-badge.feat { background: var(--rd-accent-tint-2); color: var(--primary); }
.product-badge.out  { background: color-mix(in srgb, var(--text) 55%, var(--bg)); color: var(--bg); }

/* Favori / comparer : apparition au survol */
.product-fav-btn, .product-cmp-btn {
  position: absolute; z-index: 3; right: 10px;
  width: 36px; height: 36px; border-radius: 50%; border: 0; cursor: pointer;
  background: color-mix(in srgb, var(--surface) 86%, transparent);
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
  color: var(--text); display: grid; place-items: center;
  opacity: 0; transform: translateY(-6px);
  transition: opacity var(--rd-t), transform var(--rd-t), color var(--rd-t);
  box-shadow: var(--rd-sh-1);
}
.product-fav-btn { top: 10px; }
.product-cmp-btn { top: 54px; }
.product-card:hover .product-fav-btn,
.product-card:hover .product-cmp-btn { opacity: 1; transform: translateY(0); }
.product-fav-btn:hover, .product-cmp-btn:hover { color: var(--primary); }
.product-fav-btn.is-active, .product-fav-btn.on { color: var(--primary); opacity: 1; transform: none; }

/* Barre d'actions coulissante */
.product-actions {
  position: absolute; left: 12px; right: 12px; bottom: 12px; z-index: 3;
  display: flex; gap: 8px;
  transform: translateY(16px); opacity: 0;
  transition: opacity var(--rd-t), transform var(--rd-t);
}
.product-card:hover .product-actions { transform: translateY(0); opacity: 1; }
.product-add-btn {
  flex: 1; border: 0; cursor: pointer;
  background: var(--text); color: var(--bg);
  border-radius: var(--rd-pill); padding: 11px 14px;
  font-weight: 600; font-size: 13.5px; line-height: 1;
  transition: background var(--rd-t), color var(--rd-t);
}
.product-add-btn:hover:not(.is-disabled) { background: var(--primary); color: var(--rd-accent-ink); }
.product-add-btn.is-disabled { background: color-mix(in srgb, var(--text) 30%, var(--bg)); cursor: not-allowed; }

/* Corps */
.product-info-wrap { padding: 15px 16px 16px; display: flex; flex-direction: column; gap: 3px; flex: 1; }
.product-card-cat {
  font-size: 11.5px; letter-spacing: .055em; text-transform: uppercase;
  color: var(--rd-faint); margin: 0;
}
.product-card-title {
  font-size: 15px; font-weight: 600; letter-spacing: -.01em; line-height: 1.35;
  color: var(--text); margin: 0;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.product-card-rating { display: flex; align-items: center; gap: 5px; font-size: 12px; color: var(--text-secondary); margin-top: 2px; }
.product-card-rating .bi-star-fill, .product-card-rating .bi-star-half { color: var(--rd-star); }
.product-card-rating .bi-star { color: color-mix(in srgb, var(--text) 22%, var(--bg)); }
.product-card-rating-count { color: var(--rd-faint); }
.product-card-rating-empty { color: var(--rd-faint); font-size: 11.5px; }
.product-card-stock { font-size: 12px; margin: 2px 0 0; display: flex; align-items: center; gap: 5px; }
.product-card-stock-low { color: var(--warning, #c2751a); }
.product-card-stock-ok  { color: var(--rd-good); }
.product-card-stock-out { color: var(--rd-faint); }
.product-card-foot { margin-top: auto; padding-top: 10px; display: flex; align-items: baseline; gap: 9px; }
.product-card-price {
  font-size: 16.5px; font-weight: 700; letter-spacing: -.01em; color: var(--text);
  font-variant-numeric: tabular-nums;
}
.product-card-old-price {
  font-size: 13px; color: var(--rd-faint); text-decoration: line-through;
  font-variant-numeric: tabular-nums;
}

/* ========================================================================== */
/*  CATÉGORIES                                                                 */
/* ========================================================================== */
.pal-cat-card, .pal-category-tile {
  border-radius: var(--rd-r); overflow: hidden;
  transition: transform var(--rd-t), box-shadow var(--rd-t);
}
.pal-cat-card:hover, .pal-category-tile:hover { transform: translateY(-4px); box-shadow: var(--rd-sh-3); }
.pal-cat-card img, .pal-category-tile img { transition: transform .6s cubic-bezier(.22,.61,.36,1); }
.pal-cat-card:hover img, .pal-category-tile:hover img { transform: scale(1.06); }

/* ========================================================================== */
/*  CARTES / SURFACES GÉNÉRIQUES                                               */
/* ========================================================================== */
.pal-card {
  background: var(--surface);
  border: 1px solid var(--rd-line);
  border-radius: var(--rd-r);
  box-shadow: var(--rd-sh-1);
}
.pal-section-sm:nth-of-type(even) { background: var(--rd-surface-2); }

/* ========================================================================== */
/*  FORMULAIRES                                                                */
/* ========================================================================== */
.form-control, .form-select, .pal-input, input[type="text"].pal-field, input[type="email"].pal-field {
  background: var(--surface); color: var(--text);
  border: 1px solid var(--rd-line); border-radius: var(--rd-r-sm);
  transition: border-color var(--rd-t), box-shadow var(--rd-t);
}
.form-control:focus, .form-select:focus, .pal-input:focus {
  border-color: var(--primary); box-shadow: 0 0 0 3px var(--rd-accent-tint-2);
}
.form-control::placeholder { color: var(--rd-faint); }

/* ========================================================================== */
/*  NEWSLETTER / BANDEAUX                                                       */
/* ========================================================================== */
.pal-newsletter, .pal-section-newsletter {
  background: linear-gradient(120deg, var(--text), color-mix(in srgb, var(--text) 68%, var(--primary)));
  color: var(--bg);
}
.pal-newsletter input { background: color-mix(in srgb, var(--surface) 96%, transparent); }

/* ========================================================================== */
/*  FOOTER                                                                      */
/* ========================================================================== */
.pal-footer { border-top: 1px solid var(--rd-line); }
.pal-footer a { transition: color var(--rd-t); }
.pal-footer a:hover { color: var(--primary); }

/* ========================================================================== */
/*  TOGGLE THÈME (bouton flottant)                                             */
/* ========================================================================== */
.pal-theme-fab {
  position: fixed; bottom: 22px; right: 22px; z-index: 900;
  width: 46px; height: 46px; border-radius: 50%;
  border: 1px solid var(--rd-line); background: var(--surface); color: var(--text);
  box-shadow: var(--rd-sh-2); cursor: pointer; display: grid; place-items: center;
  transition: transform var(--rd-t), color var(--rd-t);
}
.pal-theme-fab:hover { transform: scale(1.08); color: var(--primary); }
/* Décalage si le bouton WhatsApp flottant est présent à droite */
body:has(.pal-wa-float) .pal-theme-fab { bottom: 86px; }

/* ========================================================================== */
/*  BOOTSTRAP *-primary → COULEUR DE MARQUE                                     */
/*  (icônes/spinners/boutons bleus « text-primary » etc. suivent la marque)    */
/* ========================================================================== */
.text-primary { color: var(--primary) !important; }
.bg-primary   { background-color: var(--primary) !important; }
.border-primary { border-color: var(--primary) !important; }
.link-primary { color: var(--primary) !important; }
.btn-primary {
  --bs-btn-bg: var(--primary); --bs-btn-border-color: var(--primary);
  --bs-btn-hover-bg: var(--rd-accent-600); --bs-btn-hover-border-color: var(--rd-accent-600);
  --bs-btn-active-bg: var(--rd-accent-600); --bs-btn-active-border-color: var(--rd-accent-600);
  --bs-btn-color: var(--rd-accent-ink); --bs-btn-hover-color: var(--rd-accent-ink);
  border-radius: var(--rd-pill);
}
.btn-outline-primary {
  --bs-btn-color: var(--primary); --bs-btn-border-color: var(--primary);
  --bs-btn-hover-bg: var(--primary); --bs-btn-hover-border-color: var(--primary);
  --bs-btn-hover-color: var(--rd-accent-ink);
}
.spinner-border.text-primary, .spinner-grow.text-primary { color: var(--primary) !important; }
.form-check-input:checked { background-color: var(--primary); border-color: var(--primary); }
.form-check-input:focus { border-color: var(--primary); box-shadow: 0 0 0 .2rem var(--rd-accent-tint-2); }
a { color: inherit; }
.text-decoration-none:hover { color: var(--primary); }

/* ========================================================================== */
/*  PANIER / CHECKOUT — pages de conversion                                     */
/* ========================================================================== */
/* Lignes d'articles */
.pal-cart-item, .co-line, .pal-cart-row {
  border: 1px solid var(--rd-line); border-radius: var(--rd-r);
  background: var(--surface); transition: box-shadow var(--rd-t), border-color var(--rd-t);
}
.pal-cart-item:hover, .co-line:hover { box-shadow: var(--rd-sh-1); }
/* Stepper quantité */
.pal-qty, .qty-stepper, .pal-qty-box {
  border: 1px solid var(--rd-line); border-radius: var(--rd-pill); overflow: hidden; background: var(--surface);
}
.pal-qty button, .qty-stepper button { background: transparent; color: var(--text); border: 0; transition: background var(--rd-t), color var(--rd-t); }
.pal-qty button:hover, .qty-stepper button:hover { background: var(--rd-surface-2); color: var(--primary); }
/* Résumé de commande (carte sticky) */
.pal-summary, .pal-order-summary, .pal-nl-card.pal-summary {
  background: var(--surface); border: 1px solid var(--rd-line); border-radius: var(--rd-r);
  box-shadow: var(--rd-sh-1);
}
.pal-summary-total, .pal-summary-row strong { color: var(--text); font-variant-numeric: tabular-nums; }
.pal-summary-divider { border-color: var(--rd-line); }
/* Coupon */
.pal-coupon-input, #cart-coupon-input { border-radius: var(--rd-pill); }
/* Stepper du checkout */
.pal-step .pal-step-num {
  background: var(--rd-surface-2); color: var(--text-secondary);
  border: 1px solid var(--rd-line);
}
.pal-step.is-active .pal-step-num { background: var(--primary); color: var(--rd-accent-ink); border-color: var(--primary); }
.pal-step.is-done .pal-step-num { background: var(--rd-good); color: #fff; border-color: var(--rd-good); }
.pal-step-bar { background: var(--rd-line); }
.pal-step.is-done + .pal-step-bar { background: var(--rd-good); }
/* Badge rupture / stock sur la fiche */
.pal-stock-badge-out, .pal-pd-stock-out {
  background: color-mix(in srgb, var(--error, #ef4444) 12%, var(--surface));
  color: var(--error, #ef4444); border-radius: var(--rd-pill);
}

/* ========================================================================== */
/*  BARRE DE CATÉGORIES (marketplace) — sous le header, desktop                */
/* ========================================================================== */
.pal-catbar {
  background: var(--surface);
  border-bottom: 1px solid var(--rd-line);
  position: relative; z-index: 40;
}
.pal-catbar-inner {
  display: flex; align-items: stretch; gap: 8px;
  height: 48px;
}
.pal-catbar-all {
  display: inline-flex; align-items: center; gap: 9px;
  padding: 0 18px; font-weight: 700; font-size: 14px;
  background: var(--primary); color: var(--rd-accent-ink);
  text-decoration: none; white-space: nowrap;
  border-radius: 0 0 var(--rd-r-sm) var(--rd-r-sm);
  transition: background var(--rd-t);
}
.pal-catbar-all:hover { background: var(--rd-accent-600); color: var(--rd-accent-ink); }
.pal-catbar-all i { font-size: 15px; }
.pal-catbar-links {
  display: flex; align-items: center; gap: 2px;
  flex: 1 1 auto; min-width: 0; overflow: hidden;
}
.pal-catbar-link {
  display: inline-flex; align-items: center; height: 100%;
  padding: 0 13px; font-size: 14px; font-weight: 500;
  color: var(--text-secondary); text-decoration: none; white-space: nowrap;
  border-bottom: 2px solid transparent;
  transition: color var(--rd-t), border-color var(--rd-t);
}
.pal-catbar-link:hover { color: var(--primary); border-bottom-color: var(--primary); }
.pal-catbar-promo {
  display: inline-flex; align-items: center; gap: 7px;
  padding: 0 16px; font-weight: 700; font-size: 13.5px; white-space: nowrap;
  color: var(--primary); text-decoration: none;
}
.pal-catbar-promo i { font-size: 15px; }
.pal-catbar-promo:hover { color: var(--rd-accent-600); }
@media (max-width: 1200px) {
  .pal-catbar-link { padding: 0 10px; font-size: 13.5px; }
}

/* ========================================================================== */
/*  POLISH VITRINE MARKETPLACE — rythme de sections + titres                   */
/* ========================================================================== */
.pal-section-title { letter-spacing: -.02em; }
.pal-ftabs .pal-products-grid { margin-top: .25rem; }

/* ========================================================================== */
/*  LANDING PAGE PRODUIT — primitives PARTAGÉES par toutes les sections        */
/*  (définies ici, pas dans un partial : le bouton de conversion doit être     */
/*   stylé même quand la section qui le définissait n'est pas rendue)          */
/* ========================================================================== */
.pal-pdl-title {
  font-size: clamp(1.35rem, 2.5vw, 1.9rem); font-weight: 800;
  letter-spacing: -.02em; margin: 0 0 24px; color: var(--text);
  text-align: center;
}
.pal-pdl-btn {
  display: inline-flex; align-items: center; gap: 8px;
  background: var(--primary); color: #fff;
  font-weight: 700; padding: 12px 26px; border-radius: var(--rd-pill);
  text-decoration: none; border: 0; cursor: pointer;
  transition: transform .2s, box-shadow .2s, background .2s;
}
.pal-pdl-btn:hover {
  color: #fff; transform: translateY(-1px);
  box-shadow: 0 10px 24px var(--rd-accent-glow);
}

/* ========================================================================== */
/*  REVEAL AU SCROLL (le layout pose .pal-reveal) + accessibilité              */
/* ========================================================================== */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: .001ms !important; animation-duration: .001ms !important; scroll-behavior: auto !important; }
  .product-card:hover { transform: none; }
}
