/* =============================================================================
   RFD Boutique — Midnight Titanium (thème sombre)
   Feuille de personnalisation officielle du thème Hummingbird 2.1.2.
   Chargée automatiquement par PrestaShop 9.2 APRÈS theme.css
   (FrontController::setMedia → registerStylesheet 'theme-custom', priorité 1000).
   Réversibilité : supprimer ce fichier + vider le cache → thème d'origine.
   Aucun fichier de base de Hummingbird n'est modifié.
   Source des tokens : site principal, css/midnight-titanium.css (variables --rfd-*).
   ============================================================================= */

/* -----------------------------------------------------------------------------
   1. TOKENS — copie conforme de l'identité du site principal
   ----------------------------------------------------------------------------- */
:root {
  /* Fonds */
  --rfd-bg: #060b16;             /* fond de page */
  --rfd-bg-secondary: #08101f;   /* barres, pied de page, panneaux */
  --rfd-surface: #0b1424;        /* surface standard (cartes) */
  --rfd-surface-2: #101b2e;      /* surface élevée (menus, modales) */
  --rfd-surface-3: #16243a;      /* surface haute (survols, encarts) */
  --rfd-surface-hover: #1b2c45;  /* survol de surface */

  /* Bordures (alpha sur bleu) */
  --rfd-border: rgba(120, 170, 255, .10);
  --rfd-border-strong: rgba(120, 170, 255, .18);
  /* Bordure des contrôles (champs, cases, boutons à contour) : ≥ 3:1 sur tous
     les fonds, exigence WCAG 2.2 / 1.4.11 pour identifier un composant.
     Ratios mesurés : 3.84 (fond page) / 3.59 (surface) / 3.36 (surface 2). */
  --rfd-border-control: rgba(120, 170, 255, .60);

  /* Texte */
  --rfd-text: #f2f6fc;
  --rfd-text-secondary: #a3b3cc;
  --rfd-text-muted: #8b9cb8;

  /* Couleurs de marque et états */
  --rfd-primary: #4b8fff;
  --rfd-primary-light: #71b2ff;
  --rfd-primary-dark: #1c5ed1;
  --rfd-live: #c7d72c;
  --rfd-success: #45c785;
  --rfd-warning: #e8aa43;
  --rfd-danger: #e65f6c;
  --rfd-premium: #d7b46a;

  /* Typographie : Inter est déjà embarquée par Hummingbird (theme.css). */

  /* Ombres du site principal */
  --rfd-shadow-1: 0 1px 2px rgba(2, 6, 16, .35), 0 0 0 1px rgba(120, 170, 255, .04);
  --rfd-shadow-2: 0 10px 30px -12px rgba(2, 6, 16, .65), 0 0 0 1px rgba(120, 170, 255, .05);
  --rfd-shadow-3: 0 24px 60px -18px rgba(2, 6, 16, .8), 0 0 0 1px rgba(120, 170, 255, .06);

  /* Dégradés de bouton : la teinte claire plafonne à 4,5:1 avec texte blanc
     (#2a6ed7 = 4.87:1 ; survol #2e73da = 4.58:1). */
  --rfd-btn-grad: linear-gradient(180deg, #2a6ed7, #1c5ed1);
  --rfd-btn-grad-hover: linear-gradient(180deg, #2e73da, #1f61d5);
  --rfd-on-primary: #ffffff;
  --rfd-on-bright: #061022;   /* texte sur accent bleu vif ou jaune live */

  /* Plaque média (solution d'attente pour visuels JPG clairs) */
  --rfd-media-plate: #eef2f8;

  color-scheme: dark;
}

/* -----------------------------------------------------------------------------
   2. BOOTSTRAP 5.3 — bascule des variables de thème (le thème n'utilise pas
   data-bs-theme="dark" ; on remappe les variables claires ici)
   ----------------------------------------------------------------------------- */
:root {
  --bs-body-color: var(--rfd-text);
  --bs-body-color-rgb: 242, 246, 252;
  --bs-body-bg: var(--rfd-bg);
  --bs-body-bg-rgb: 6, 11, 22;
  --bs-emphasis-color: #ffffff;
  --bs-emphasis-color-rgb: 255, 255, 255;
  --bs-secondary-color: rgba(163, 179, 204, .85);
  --bs-secondary-color-rgb: 163, 179, 204;
  --bs-secondary-bg: var(--rfd-surface-2);
  --bs-secondary-bg-rgb: 16, 27, 46;
  --bs-tertiary-color: rgba(139, 156, 184, .92);
  --bs-tertiary-color-rgb: 139, 156, 184;
  --bs-tertiary-bg: var(--rfd-surface);
  --bs-tertiary-bg-rgb: 11, 20, 36;

  --bs-primary: var(--rfd-primary);
  --bs-primary-rgb: 75, 143, 255;
  --bs-secondary: var(--rfd-text-muted);
  --bs-secondary-rgb: 139, 156, 184;
  --bs-success: var(--rfd-success);
  --bs-success-rgb: 69, 199, 133;
  --bs-info: #6cb2ff;
  --bs-info-rgb: 108, 178, 255;
  --bs-warning: var(--rfd-warning);
  --bs-warning-rgb: 232, 170, 67;
  --bs-danger: var(--rfd-danger);
  --bs-danger-rgb: 230, 95, 108;
  --bs-light: #f2f6fc;
  --bs-light-rgb: 242, 246, 252;
  --bs-dark: var(--rfd-surface-3);
  --bs-dark-rgb: 22, 36, 58;
  --bs-gray-200: var(--rfd-surface-3);
  --bs-gray-300: var(--rfd-text-secondary);

  --bs-primary-text-emphasis: #9cc4ff;
  --bs-secondary-text-emphasis: #c3cede;
  --bs-success-text-emphasis: #6fdca6;
  --bs-info-text-emphasis: #9cc4ff;
  --bs-warning-text-emphasis: #f0c476;
  --bs-danger-text-emphasis: #f0909a;
  --bs-primary-bg-subtle: rgba(75, 143, 255, .12);
  --bs-secondary-bg-subtle: rgba(139, 156, 184, .10);
  --bs-success-bg-subtle: rgba(69, 199, 133, .12);
  --bs-info-bg-subtle: rgba(108, 178, 255, .12);
  --bs-warning-bg-subtle: rgba(232, 170, 67, .12);
  --bs-danger-bg-subtle: rgba(230, 95, 108, .12);
  --bs-primary-border-subtle: rgba(75, 143, 255, .38);
  --bs-secondary-border-subtle: rgba(139, 156, 184, .32);
  --bs-success-border-subtle: rgba(69, 199, 133, .38);
  --bs-info-border-subtle: rgba(108, 178, 255, .38);
  --bs-warning-border-subtle: rgba(232, 170, 67, .38);
  --bs-danger-border-subtle: rgba(230, 95, 108, .38);
  --bs-light-bg-subtle: var(--rfd-surface-3);
  --bs-dark-bg-subtle: var(--rfd-surface);
  --bs-light-border-subtle: var(--rfd-border-strong);
  --bs-dark-border-subtle: var(--rfd-border-strong);

  --bs-heading-color: inherit;
  --bs-link-color: var(--rfd-primary-light);
  --bs-link-color-rgb: 113, 178, 255;
  --bs-link-hover-color: #a8ccff;
  --bs-link-hover-color-rgb: 168, 204, 255;
  --bs-code-color: #e685b5;
  --bs-highlight-color: var(--rfd-text);
  --bs-highlight-bg: #3a3413;

  --bs-border-color: var(--rfd-border-strong);
  --bs-border-color-translucent: var(--rfd-border);
  --bs-form-valid-color: #6fdca6;
  --bs-form-valid-border-color: var(--rfd-success);
  --bs-form-invalid-color: #f0909a;
  --bs-form-invalid-border-color: var(--rfd-danger);

  --bs-border-radius: 8px;
  --bs-border-radius-sm: 6px;
  --bs-border-radius-lg: 12px;
  --bs-border-radius-xl: 16px;

  --bs-box-shadow: 0 10px 30px -12px rgba(2, 6, 16, .65), 0 0 0 1px rgba(120, 170, 255, .05);
  --bs-box-shadow-sm: 0 1px 2px rgba(2, 6, 16, .35), 0 0 0 1px rgba(120, 170, 255, .04);
  --bs-box-shadow-lg: 0 24px 60px -18px rgba(2, 6, 16, .8), 0 0 0 1px rgba(120, 170, 255, .06);
  --bs-box-shadow-md: 0 10px 30px -12px rgba(2, 6, 16, .65), 0 0 0 1px rgba(120, 170, 255, .05);
  --bs-backdrop-bg: rgba(4, 8, 16, .78);
  --bs-backdrop-opacity: 1;

  /* Composants Bootstrap dont la variable dérive d'un gris fixe */
  --bs-dropdown-link-active-bg: var(--rfd-primary-dark);
  --bs-list-group-active-bg: var(--rfd-primary-dark);
  --bs-list-group-active-border-color: var(--rfd-primary-dark);
  --bs-nav-pills-link-active-bg: var(--rfd-primary-dark);
  --bs-pagination-active-color: var(--rfd-primary-light);
  --bs-pagination-focus-box-shadow: 0 0 0 .25rem rgba(75, 143, 255, .3);
}

/* Pilotage par data-bs-theme au cas où (extensions tierces). */
[data-bs-theme="dark"] {
  color-scheme: dark;
}

/* -----------------------------------------------------------------------------
   3. BASE
   ----------------------------------------------------------------------------- */
html {
  background-color: var(--rfd-bg);
}

body {
  background-color: var(--rfd-bg);
  background-image:
    radial-gradient(1200px 560px at 50% -14%, rgba(64, 118, 210, .22), transparent 62%),
    radial-gradient(900px 640px at 100% 0%, rgba(38, 84, 160, .14), transparent 60%);
  background-repeat: no-repeat;
  color: var(--rfd-text);
}

::selection {
  color: #fff;
  background: rgba(75, 143, 255, .6);
}

:focus-visible {
  outline: 2px solid var(--rfd-primary-light);
  outline-offset: 2px;
}

* {
  scrollbar-color: rgba(113, 139, 170, .42) transparent;
  scrollbar-width: thin;
}

.blockquote-footer { color: var(--rfd-text-muted); }
hr { color: var(--rfd-border); }

/* Champs de formulaire : bordure 3:1 (WCAG 1.4.11) + focus aux couleurs RFD */
.form-control,
.form-select,
.form-check-input,
.input-group-text,
.quantity-button button,
.ps-searchbar__input {
  border-color: var(--rfd-border-control);
}

.form-control,
.form-select,
.form-check-input {
  background-color: var(--rfd-surface);
  color: var(--rfd-text);
}

.form-control:focus,
.form-select:focus {
  background-color: var(--rfd-surface);
  border-color: var(--rfd-primary-light);
  box-shadow: 0 0 0 .25rem rgba(75, 143, 255, .25);
}

.form-check-input:focus {
  border-color: var(--rfd-primary-light);
  box-shadow: 0 0 0 .25rem rgba(75, 143, 255, .3);
}

.form-check-input:checked,
.form-check-input[type="checkbox"]:indeterminate {
  background-color: var(--rfd-primary);
  border-color: var(--rfd-primary);
}

.form-range::-webkit-slider-thumb { background-color: var(--rfd-primary); }
.form-range::-moz-range-thumb { background-color: var(--rfd-primary); }
.form-range:focus::-webkit-slider-thumb { box-shadow: 0 0 0 1px var(--rfd-bg), 0 0 0 .25rem rgba(75, 143, 255, .3); }
.form-range:focus::-moz-range-thumb { box-shadow: 0 0 0 1px var(--rfd-bg), 0 0 0 .25rem rgba(75, 143, 255, .3); }

.nav-link:focus-visible,
.accordion-button:focus,
.stars-selector:has(.stars-selector__input:focus-visible),
.search-filters__form-check--color .color:focus-visible {
  box-shadow: 0 0 0 .25rem rgba(75, 143, 255, .3);
}

/* Astérisques de champs obligatoires */
.form-check-label.required:before,
.form-label.required:after { color: var(--rfd-danger); }

/* -----------------------------------------------------------------------------
   4. BOUTONS
   ----------------------------------------------------------------------------- */
.btn { --bs-btn-border-radius: 8px; }

.btn-primary {
  --bs-btn-color: var(--rfd-on-primary);
  --bs-btn-bg: #2a6ed7;
  --bs-btn-border-color: rgba(113, 178, 255, .42);
  --bs-btn-hover-color: var(--rfd-on-primary);
  --bs-btn-hover-bg: #2e73da;
  --bs-btn-hover-border-color: rgba(133, 190, 255, .55);
  --bs-btn-active-color: var(--rfd-on-primary);
  --bs-btn-active-bg: #1c5ed1;
  --bs-btn-active-border-color: rgba(113, 178, 255, .42);
  --bs-btn-focus-shadow-rgb: 75, 143, 255;
  --bs-btn-disabled-color: rgba(255, 255, 255, .8);
  --bs-btn-disabled-bg: #24466e;
  --bs-btn-disabled-border-color: transparent;
  background-image: var(--rfd-btn-grad);
  box-shadow: 0 10px 28px rgba(43, 110, 220, .32), inset 0 1px rgba(255, 255, 255, .2);
  font-weight: 600;
}
.btn-primary:hover,
.btn-primary:focus-visible {
  background-image: var(--rfd-btn-grad-hover);
  box-shadow: 0 12px 32px rgba(43, 110, 220, .42), inset 0 1px rgba(255, 255, 255, .24);
}
.btn-primary:active,
.btn-primary.active,
.btn-primary.show {
  background-image: none;
  background-color: #1c5ed1;
}

.btn-secondary {
  --bs-btn-color: var(--rfd-text);
  --bs-btn-bg: var(--rfd-surface-2);
  --bs-btn-border-color: var(--rfd-border-control);
  --bs-btn-hover-color: #ffffff;
  --bs-btn-hover-bg: var(--rfd-surface-hover);
  --bs-btn-hover-border-color: rgba(113, 178, 255, .4);
  --bs-btn-active-color: #ffffff;
  --bs-btn-active-bg: var(--rfd-surface-3);
  --bs-btn-active-border-color: rgba(113, 178, 255, .4);
  --bs-btn-focus-shadow-rgb: 75, 143, 255;
}

.btn-outline-primary {
  --bs-btn-color: var(--rfd-primary-light);
  --bs-btn-border-color: var(--rfd-border-control);
  --bs-btn-hover-color: var(--rfd-on-bright);
  --bs-btn-hover-bg: var(--rfd-primary);
  --bs-btn-hover-border-color: var(--rfd-primary);
  --bs-btn-active-color: var(--rfd-on-bright);
  --bs-btn-active-bg: var(--rfd-primary-light);
  --bs-btn-active-border-color: var(--rfd-primary-light);
  --bs-btn-focus-shadow-rgb: 75, 143, 255;
}

.btn-tertiary {
  --bs-btn-color: var(--rfd-text-secondary);
  --bs-btn-bg: var(--rfd-surface);
  --bs-btn-border-color: var(--rfd-border-control);
  --bs-btn-hover-color: #ffffff;
  --bs-btn-hover-bg: var(--rfd-surface-hover);
  --bs-btn-hover-border-color: var(--rfd-border-strong);
  --bs-btn-active-color: #ffffff;
  --bs-btn-active-bg: var(--rfd-surface-3);
  --bs-btn-active-border-color: var(--rfd-border-strong);
  --bs-btn-focus-shadow-rgb: 75, 143, 255;
}

.btn-outline-tertiary {
  --bs-btn-color: var(--rfd-text-secondary);
  --bs-btn-border-color: var(--rfd-border-control);
  --bs-btn-hover-color: #ffffff;
  --bs-btn-hover-bg: var(--rfd-surface-2);
  --bs-btn-hover-border-color: var(--rfd-primary-light);
  --bs-btn-active-color: #ffffff;
  --bs-btn-active-bg: var(--rfd-surface-3);
  --bs-btn-active-border-color: var(--rfd-primary-light);
}

.btn-basic,
.btn-link { --bs-btn-disabled-color: var(--rfd-text-muted); }

/* Croix de fermeture : icône SVG noire remplacée par une icône claire
   (sans filter, pour ne pas altérer l'anneau de focus) */
.btn-close {
  --bs-btn-close-bg: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23f2f6fc'%3E%3Cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414'/%3E%3C/svg%3E");
  --bs-btn-close-opacity: .75;
  --bs-btn-close-hover-opacity: 1;
}
.btn-close:focus { box-shadow: 0 0 0 .25rem rgba(75, 143, 255, .3); }

/* -----------------------------------------------------------------------------
   5. EN-TÊTE, RECHERCHE, PANIER
   ----------------------------------------------------------------------------- */
.header {
  background-color: rgba(8, 16, 31, .94);
  border-bottom: 1px solid var(--rfd-border);
  backdrop-filter: blur(14px);
}

.header-top,
.header-bottom { border-bottom-color: var(--rfd-border); }
.header-top a:not(.dropdown-item) { color: var(--rfd-text-secondary); }
.header-top a:not(.dropdown-item):hover { color: var(--rfd-text); }

.header-block__action-btn { color: var(--rfd-text-secondary); }
.header-block__action-btn[href]:focus,
.header-block__action-btn[href]:hover { color: var(--rfd-primary-light); }
.header-block__badge {
  background: var(--rfd-primary);
  color: var(--rfd-on-bright);
  font-weight: 600;
}
.header-block--active .header-block,
.header-block--active .header-block__icon { color: var(--rfd-primary-light); }

.header-bottom .nav-link.active,
.header-bottom .nav-link:active { color: #ffffff; }

.ps-searchbar__input {
  background-color: var(--rfd-surface);
  color: var(--rfd-text);
}
.ps-searchbar__input::placeholder { color: var(--rfd-text-muted); opacity: 1; }
.ps-searchbar__clear,
.ps-searchbar__magnifier { color: var(--rfd-text-secondary); }
.ps-searchbar__clear:focus-visible,
.ps-searchbar__clear:hover {
  background-color: var(--rfd-surface-hover);
  color: var(--rfd-primary-light);
}
.ps-searchbar__dropdown {
  background-color: var(--rfd-surface-2);
  border-color: var(--rfd-border-strong);
  box-shadow: var(--rfd-shadow-2);
}
.ps-searchbar__result-link:hover,
.ps-searchbar__result-link:focus,
.ps-searchbar__result-link:active { background-color: var(--rfd-surface-hover); }
.ps-searchbar__result-image { border-radius: var(--bs-border-radius); }

/* Panier : modal « ajouté au panier » */
.blockcart-modal__title { color: var(--rfd-text); }
.blockcart-modal__title-icon { color: var(--rfd-success); }
.blockcart-modal__image {
  border-radius: var(--bs-border-radius);
  box-shadow: 0 0 0 1px var(--rfd-border);
}

/* -----------------------------------------------------------------------------
   6. MENU PRINCIPAL (desktop + mobile)
   ----------------------------------------------------------------------------- */
.ps-mainmenu:is(.ps-mainmenu--desktop) .ps-mainmenu__tree > li .ps-mainmenu__tree-link { color: var(--rfd-text-secondary); }
.ps-mainmenu:is(.ps-mainmenu--desktop) .ps-mainmenu__tree > li.current .ps-mainmenu__tree-link { color: var(--rfd-primary-light); }
.ps-mainmenu:is(.ps-mainmenu--desktop) .ps-mainmenu__tree > li .ps-mainmenu__tree-link:hover,
.ps-mainmenu:is(.ps-mainmenu--desktop) .ps-mainmenu__tree > li .ps-mainmenu__tree-link:active { color: #ffffff; }

.ps-mainmenu:is(.ps-mainmenu--desktop) .ps-mainmenu__tree > li .submenu {
  background-color: var(--rfd-surface-2);
  border-top-color: var(--rfd-border);
  box-shadow: var(--rfd-shadow-3);
}
.ps-mainmenu:is(.ps-mainmenu--desktop) .submenu__left { border-right-color: var(--rfd-border); }
.ps-mainmenu:is(.ps-mainmenu--desktop) .submenu__left-item:hover,
.ps-mainmenu:is(.ps-mainmenu--desktop) .submenu__left-item:focus,
.ps-mainmenu:is(.ps-mainmenu--desktop) .submenu__left-item.active { background-color: var(--rfd-surface-hover); }
.ps-mainmenu:is(.ps-mainmenu--desktop) .submenu__right-items .menu-item { color: var(--rfd-text-secondary); }
.ps-mainmenu:is(.ps-mainmenu--desktop) .submenu__right-items .menu-item:hover { color: var(--rfd-primary-light); }

.ps-mainmenu:is(.ps-mainmenu--mobile) .menu a { color: var(--rfd-text-secondary); }
.ps-mainmenu:is(.ps-mainmenu--mobile) .menu a:hover { color: var(--rfd-primary-light); }
.ps-mainmenu:is(.ps-mainmenu--mobile) .menu__title { color: var(--rfd-text); }

.offcanvas {
  --bs-offcanvas-bg: var(--rfd-bg-secondary);
  --bs-offcanvas-color: var(--rfd-text);
  --bs-offcanvas-border-color: var(--rfd-border);
}
.offcanvas-header { border-bottom: 1px solid var(--rfd-border); }

.dropdown-menu {
  --bs-dropdown-bg: var(--rfd-surface-2);
  --bs-dropdown-color: var(--rfd-text-secondary);
  --bs-dropdown-border-color: var(--rfd-border-strong);
  --bs-dropdown-divider-bg: var(--rfd-border);
  --bs-dropdown-link-color: var(--rfd-text-secondary);
  --bs-dropdown-link-hover-color: #ffffff;
  --bs-dropdown-link-hover-bg: var(--rfd-surface-hover);
  --bs-dropdown-header-color: var(--rfd-text-muted);
}
.dropdown-item.active,
.dropdown-item:active {
  background-color: rgba(75, 143, 255, .16);
  color: #ffffff;
}

/* -----------------------------------------------------------------------------
   7. CARTES PRODUIT (accueil + listes)
   ----------------------------------------------------------------------------- */
.product-miniature__inner {
  background-color: var(--rfd-surface);
  border: 1px solid var(--rfd-border);
  border-radius: 12px;
  box-shadow: var(--rfd-shadow-1);
}
.product-miniature__inner:hover,
.product-miniature__inner:has(:focus-visible) {
  border-color: var(--rfd-border-strong);
  box-shadow: var(--rfd-shadow-2), 0 0 24px -12px rgba(77, 141, 255, .55);
}

.product-miniature__title { color: var(--rfd-text); }
.product-miniature__title:hover { color: var(--rfd-primary-light); }

.product-miniature__price { color: var(--rfd-text); font-weight: 600; }
.product-miniature__regular-price { color: var(--rfd-text-muted); }

.product-miniature__quickview-button,
.product-miniature__quickview-touch {
  background-color: var(--rfd-surface);
  color: var(--rfd-text-secondary);
}
.product-miniature__quickview-button:hover,
.product-miniature__quickview-button:focus-visible,
.product-miniature__quickview-touch:hover,
.product-miniature__quickview-touch:focus-visible {
  color: var(--rfd-primary-light);
  background-color: var(--rfd-surface-hover);
}

.product-miniature__image-container,
.product-miniature__image-link {
  border-radius: 11px 11px 0 0;
  overflow: hidden;
}

/* Drapeaux produit */
.product-flags .badge:not(.discount) {
  background-color: var(--rfd-primary);
  border-color: var(--rfd-primary);
  color: var(--rfd-on-bright);
  font-weight: 600;
}
.product-flags .badge.discount {
  background-color: var(--rfd-live);
  border-color: var(--rfd-live);
  color: #0a0f1a;
  font-weight: 700;
}

.subcategory__link {
  border-color: var(--rfd-border-strong);
  color: var(--rfd-text);
}
.subcategory__link:hover {
  background-color: var(--rfd-surface-2);
  color: var(--rfd-primary-light);
}

/* Compteur et tris de liste */
.products__count { color: var(--rfd-text-muted); }
.products__sort-label { color: var(--rfd-text-secondary); }
.pagination__number { color: var(--rfd-text-secondary); }
.page-link:hover { color: var(--rfd-primary-light); }

/* -----------------------------------------------------------------------------
   8. FICHE PRODUIT
   ----------------------------------------------------------------------------- */
.page-product .product__thumbnail { background-color: transparent; }
.page-product .product__thumbnail-image {
  border-radius: 8px;
  outline-color: transparent;
  box-shadow: 0 0 0 1px var(--rfd-border);
}
.page-product .product__thumbnail.active .product__thumbnail-image {
  outline-color: var(--rfd-primary);
  box-shadow: 0 0 0 1px var(--rfd-primary);
}
.page-product .product__carousel {
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 0 0 1px var(--rfd-border);
}
.page-product .product__zoom {
  background-color: var(--rfd-surface-2);
  border: 1px solid var(--rfd-border-control);
  color: var(--rfd-text-secondary);
  box-shadow: var(--rfd-shadow-1);
}
.page-product .product__zoom:hover { color: #ffffff; background-color: var(--rfd-surface-hover); }

.product__price,
.product__price .price { color: var(--rfd-text); }
.product__tax-infos,
.product__taxless-price,
.product__delivery-infos,
.product__minimal-quantity { color: var(--rfd-text-muted); }
.product__unit-price,
.product__discount-price { color: var(--rfd-text-secondary); }

.details__list {
  background-color: var(--rfd-surface);
  border: 1px solid var(--rfd-border);
}
.details__item { border-bottom-color: var(--rfd-border); }

.product-customization {
  border-color: var(--rfd-border);
  background-color: var(--rfd-surface);
}

.ps-sharebuttons__label { color: var(--rfd-text-secondary); }
.ps-sharebuttons__link { color: var(--rfd-text-secondary); }
.ps-sharebuttons__link:hover { color: var(--rfd-primary-light); }

/* Avis produits */
.average-grade { color: var(--rfd-text-muted); }
.page-product #product-comments-list .comment { border-bottom-color: var(--rfd-border); }
.page-product #product-comments-list .comment__date { color: var(--rfd-text-muted); }
.page-product #product-comments-list .comment__buttons a { color: var(--rfd-text-muted); }
.product-comment-modal input[name="comment_title"].error,
.product-comment-modal input[name="customer_name"].error,
.product-comment-modal textarea.error { border-color: var(--rfd-danger); }
.product-comment-modal input[name="comment_title"].error:focus,
.product-comment-modal input[name="customer_name"].error:focus,
.product-comment-modal textarea.error:focus { box-shadow: 0 0 0 .25rem rgba(230, 95, 108, .25); }
.product-comment-modal input[name="comment_title"].valid,
.product-comment-modal input[name="customer_name"].valid,
.product-comment-modal textarea.valid { border-color: var(--rfd-success); }
.product-comment-modal input[name="comment_title"].valid:focus,
.product-comment-modal input[name="customer_name"].valid:focus,
.product-comment-modal textarea.valid:focus { box-shadow: 0 0 0 .25rem rgba(69, 199, 133, .25); }
.product-comment-modal #ratingNotChosen { color: var(--rfd-danger); }

/* Réassurance (bandeau services) */
.blockreassurance--light { background-color: var(--rfd-surface); }
.blockreassurance .reassurance__desc { color: var(--rfd-text-muted); }
.blockreassurance .reassurance--link { color: var(--rfd-text); }
.blockreassurance .reassurance--link:hover { color: var(--rfd-primary-light); }

/* -----------------------------------------------------------------------------
   9. PANIER ET TUNNEL DE COMMANDE
   ----------------------------------------------------------------------------- */
.cart__item { border-block-end-color: var(--rfd-border); }
.product-line__title { color: var(--rfd-text); }
.product-line__title:hover { color: var(--rfd-primary-light); }
.product-line__img,
.cart-summary-product__img { border-radius: 8px; box-shadow: 0 0 0 1px var(--rfd-border); }

.cart-summary__total { border-block-color: var(--rfd-border); }
.cart-summary-product__attributes,
.cart-summary-product__price .value,
.cart-summary-product__unit-price { color: var(--rfd-text-muted); }

.cart-voucher__accordion,
.cart-voucher__highlight,
.cart-voucher__list { border-block-end-color: var(--rfd-border); }
.cart-voucher__code-value { color: var(--rfd-primary-light); }

.checkout-steps {
  background-color: var(--rfd-surface);
  border-block-end-color: var(--rfd-border);
}
.checkout-steps__step--current .checkout-steps__number { background: var(--rfd-surface-3); }
.checkout-steps__step:after,
.checkout-steps__step:before { background: var(--rfd-surface-3); }
.checkout-steps__subtitle { color: var(--rfd-text-muted); }

.delivery-option__item {
  background-color: var(--rfd-surface);
  border-block-end-color: var(--rfd-border);
}
.payment-option dl { background-color: var(--rfd-surface); }
.payment-option dl dt,
.payment-option dl dd { border-block-end-color: var(--rfd-border); }
.final-summary__header { color: var(--rfd-text-secondary); }

/* Adresses, historique de commandes, retours */
.address-card { border-color: var(--rfd-border-strong); }
.address-card--radio.selected,
.address-card--radio:hover,
.address-card--add-address:hover { background-color: var(--rfd-surface-2); }
.address-card--radio.selected { border-color: var(--rfd-primary); }

.order-history__row,
.grid-table__row,
.order-message { border-color: var(--rfd-border); }
.order-history__cell--date,
.order-history__cell--payment { color: var(--rfd-text-muted); }
.order-message:nth-child(2n) { background-color: var(--rfd-surface); }
.order-returns .order-return > div:not(:last-child) { border-bottom-color: var(--rfd-border); }

/* -----------------------------------------------------------------------------
   10. NOTIFICATIONS, MODALES, SURFACES FLOTTANTES
   ----------------------------------------------------------------------------- */
.alert { border-radius: 10px; }
.alert-success {
  --bs-alert-color: #b9f0d2;
  --bs-alert-bg: rgba(69, 199, 133, .13);
  --bs-alert-border-color: rgba(69, 199, 133, .4);
  --bs-alert-link-color: #d6f7e6;
}
.alert-danger {
  --bs-alert-color: #f7c3c8;
  --bs-alert-bg: rgba(230, 95, 108, .13);
  --bs-alert-border-color: rgba(230, 95, 108, .4);
  --bs-alert-link-color: #fbd8dc;
}
.alert-warning {
  --bs-alert-color: #f5d9a3;
  --bs-alert-bg: rgba(232, 170, 67, .13);
  --bs-alert-border-color: rgba(232, 170, 67, .4);
  --bs-alert-link-color: #fbe8c5;
}
.alert-info {
  --bs-alert-color: #c7ddff;
  --bs-alert-bg: rgba(108, 178, 255, .13);
  --bs-alert-border-color: rgba(108, 178, 255, .4);
  --bs-alert-link-color: #dcebff;
}

.toast {
  --bs-toast-bg: rgba(16, 27, 46, .97);
  --bs-toast-color: var(--rfd-text);
  --bs-toast-border-color: var(--rfd-border-strong);
  --bs-toast-header-bg: rgba(11, 20, 36, .97);
  --bs-toast-header-color: var(--rfd-text-secondary);
  backdrop-filter: blur(10px);
}

.modal {
  --bs-modal-bg: var(--rfd-surface);
  --bs-modal-color: var(--rfd-text);
  --bs-modal-border-color: var(--rfd-border-strong);
  --bs-modal-header-border-color: var(--rfd-border);
  --bs-modal-footer-border-color: var(--rfd-border);
}
.modal-content { border: 1px solid var(--rfd-border-strong); }
.modal-title { color: var(--rfd-text); }

.tooltip {
  --bs-tooltip-bg: var(--rfd-surface-3);
  --bs-tooltip-color: var(--rfd-text);
}
.popover {
  --bs-popover-bg: var(--rfd-surface-2);
  --bs-popover-border-color: var(--rfd-border-strong);
  --bs-popover-header-bg: var(--rfd-surface-3);
  --bs-popover-header-color: var(--rfd-text);
  --bs-popover-body-color: var(--rfd-text-secondary);
}

.page-loader { background: rgba(6, 11, 22, .8); }

/* -----------------------------------------------------------------------------
   11. DIVERS (breadcrumb, accordéons, tables, slider prix, wishlist)
   ----------------------------------------------------------------------------- */
.breadcrumb__wrapper { background-color: var(--rfd-bg-secondary); border-bottom: 1px solid var(--rfd-border); }
.breadcrumb-link { color: var(--rfd-text-secondary); }
.breadcrumb-link:hover { color: var(--rfd-primary-light); }

.accordion { --bs-accordion-btn-focus-box-shadow: 0 0 0 .25rem rgba(75, 143, 255, .3); }
.accordion-item { border-block-end-color: var(--rfd-border); }

.table { --bs-table-bg: transparent; }

.noUi-target { background: var(--rfd-surface-3); border-color: var(--rfd-border-strong); }
.noUi-connect { background: var(--rfd-primary); }
.noUi-handle { background: var(--rfd-surface-2); border-color: var(--rfd-border-control); }
.noUi-handle:hover,
.noUi-active { background: var(--rfd-primary); border-color: var(--rfd-primary); }
.noui-pips,
.noui-value-sub { color: var(--rfd-text-muted); }
.noui-marker,
.noui-marker-large,
.noui-marker-sub { background: var(--rfd-surface-3); }
.noui-tooltip {
  background: var(--rfd-surface-2);
  border: 1px solid var(--rfd-border-strong);
  border-radius: 6px;
  color: var(--rfd-text);
}

.wishlist-button-add {
  background-color: var(--rfd-surface) !important;
  border: 1px solid var(--rfd-border) !important;
  color: var(--rfd-text-secondary) !important;
}
.wishlist-button-add:hover { color: var(--rfd-primary-light) !important; }

/* Modale liste d'envies : le CSS du module blockwishlist impose des couleurs
   claires codées en dur (#232323, #000) ; on les remappe sur le thème sombre. */
.wishlist-modal .modal-header h5,
.wishlist-modal .modal-text { color: var(--rfd-text); }
.wishlist-modal .modal-body .form-group .form-control {
  background-color: var(--rfd-surface-2);
  color: var(--rfd-text);
}
.wishlist-modal .close { color: var(--rfd-text-secondary); }

/* -----------------------------------------------------------------------------
   12. PIED DE PAGE
   ----------------------------------------------------------------------------- */
.footer__main {
  background: var(--rfd-bg-secondary);
  border-top: 1px solid var(--rfd-border);
  color: var(--rfd-text-secondary);
}
.footer-block__title,
.footer-block__title a { color: var(--rfd-text); }
.footer-block a { color: var(--rfd-text-secondary); }
.footer-block a:hover { color: #ffffff; }
.copyright,
.copyright a { color: var(--rfd-text-muted); }
.copyright a:hover { color: var(--rfd-text); }
.ps-socialfollow a { color: var(--rfd-text-secondary); }
.ps-socialfollow a:hover { color: var(--rfd-primary-light); }

/* -----------------------------------------------------------------------------
   13. MÉDIAS — voir MANIFESTE pour le plan (logo transparent, visuels produits)
   ----------------------------------------------------------------------------- */
/* Attributs mesurés (08/10/2026) :
   - logo-1683799265.jpg : fond noir (coins RGB 0,0,0), motif bleu clair ;
   - visuels produits : fond blanc (coins RGB 255,255,255) → blocs blancs.
   Ces règles encadrent proprement l'existant ; la vraie correction = fichiers
   détourés (WebP/PNG transparents). Décommenter les essais après validation. */

.product-miniature__image,
.page-product .product__image {
  border-radius: 8px;
  box-shadow: 0 0 0 1px rgba(120, 170, 255, .08);
}

/* Essai logo (fond noir → fondu sur la barre sombre) :
.header-bottom__logo .logo { mix-blend-mode: screen; }
*/

/* Essai visuels produits (inverse le fond blanc en foncé ; à valider au cas par cas) :
.product-miniature__image,
.page-product .product__image { filter: invert(1) hue-rotate(180deg); }
*/

/* -----------------------------------------------------------------------------
   14. ACCESSIBILITÉ — mouvement réduit (aligné sur le site principal)
   ----------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}

/* -----------------------------------------------------------------------------
   15. CONTENUS RICH-TEXT (WYSIWYG) — correctif « barres blanches » (08/10/2026)
   Les descriptions produit/catégorie et contenus CMS collés depuis un éditeur
   portent des styles inline (background-color:#f8f8f8, #fafbfc ; color:#000000)
   prévus pour un fond clair. Mesuré sur la boutique : texte hérité clair sur
   fond clair = 1.02:1, texte noir inline sur fond sombre = 1.07:1 (illisible).
   Seul !important bat un style inline : on neutralise les fonds inline et on
   rend la couleur au flux (héritée : #f2f6fc sur #060b16 = 18.14:1).
   Conteneurs réellement mesurés au navigateur (08/10/2026) :
   - fiche produit : .product__description-short.rich-text et .product__description.rich-text ;
   - catégorie : .category__description.rich-text ;
   - aperçu rapide (modale) : .product__description-short SANS .rich-text
     (l'échec du sélecteur .rich-text seul dans la quickview venait de là).
   Effet de bord assumé : les surlignages de fond voulus par l'éditeur
   disparaissent (ils étaient de toute façon illisibles sur fond sombre).
   ----------------------------------------------------------------------------- */
.rich-text [style*="background-color"],
.product__description [style*="background-color"],
.product__description-short [style*="background-color"],
.category__description [style*="background-color"],
.product-comment-modal [style*="background-color"] { background-color: transparent !important; }
.rich-text [style*="color"],
.product__description [style*="color"],
.product__description-short [style*="color"],
.category__description [style*="color"],
.product-comment-modal [style*="color"] { color: inherit !important; }

/* Boutons hérités d'anciens éditeurs (classe Bootstrap 3 « btn-default »,
   inconnue du thème Hummingbird) : rendus lisibles, alignés sur .btn-secondary. */
.rich-text .btn-default {
  background-color: var(--rfd-surface-2);
  border-color: var(--rfd-border-control);
  color: var(--rfd-text);
}
.rich-text .btn-default:hover,
.rich-text .btn-default:focus-visible {
  background-color: var(--rfd-surface-hover);
  border-color: var(--rfd-border-strong);
  color: #ffffff;
}
