/*
 * bijoux-contrast.css
 * WCAG AA contrast fixes + élimination carrés blancs
 * Chargé en avant-dernier (avant bijoux-polish.css)
 * Variables : --night #0E0B1A | --gold #D4B570 | --amethyst #6B4A8C | --cream #E8E0D0
 */

/* ══════════════════════════════════════════════════════════════
   1. RESET GLOBAL — corps de page
   ══════════════════════════════════════════════════════════════ */
body {
  background-color: var(--night) !important;
  color: var(--cream) !important;
}

/* ══════════════════════════════════════════════════════════════
   2. BLOCKCART / CART-PREVIEW — wrapper principal (rgb(246,246,246))
   ══════════════════════════════════════════════════════════════ */
.blockcart.cart-preview,
.blockcart {
  background: #14102A !important;
  color: var(--cream) !important;
}
.blockcart.cart-preview .header,
.blockcart .header {
  background: transparent !important;
  color: var(--cream) !important;
}

/* ══════════════════════════════════════════════════════════════
   3. CAROUSEL — #carousel.slide (rgb(246,246,246))
   ══════════════════════════════════════════════════════════════ */
#carousel.carousel.slide,
.carousel,
.carousel-inner,
.carousel-item {
  background: transparent !important;
}

/* ══════════════════════════════════════════════════════════════
   4. CUSTOM TEXT BLOCK — #custom-text (rgb(255,255,255))
   ══════════════════════════════════════════════════════════════ */
#custom-text {
  background: rgba(255, 255, 255, 0.04) !important;
  color: var(--cream) !important;
}
#custom-text h1, #custom-text h2, #custom-text h3,
#custom-text h4, #custom-text h5, #custom-text h6 {
  color: var(--gold) !important;
}

/* ══════════════════════════════════════════════════════════════
   5. MODULES PROBLÉMATIQUES CONNUS
   ══════════════════════════════════════════════════════════════ */

/* Newsletter */
.block_newsletter,
.block_newsletter form,
.block_newsletter .newsletter-input-group {
  background: #14102A !important;
  color: var(--cream) !important;
}
.modal-newsletter,
.modal-newsletter .modal-content,
.modal-newsletter .modal-header,
.modal-newsletter .modal-body,
.modal-newsletter .modal-footer {
  background: #14102A !important;
  color: var(--cream) !important;
  border-color: rgba(107, 74, 140, 0.4) !important;
}
.modal-newsletter .close {
  color: var(--cream) !important;
}

/* Block categories sidebar */
.block-categories,
.block-categories .category-top-menu,
.block-categories ul {
  background: #14102A !important;
  color: var(--cream) !important;
}

/* Blog cards (everpsblog) */
.everpsblog .card,
.everpsblog .card-body,
.everpsblog .card-header,
.everpsblog .card-footer {
  background: #14102A !important;
  color: var(--cream) !important;
  border-color: rgba(107, 74, 140, 0.3) !important;
}

/* ══════════════════════════════════════════════════════════════
   6. MODALES BOOTSTRAP / PRESTASHOP
   ══════════════════════════════════════════════════════════════ */
.modal-content,
.modal-header,
.modal-body,
.modal-footer {
  background: #14102A !important;
  color: var(--cream) !important;
  border-color: rgba(107, 74, 140, 0.4) !important;
}
.modal-backdrop {
  background-color: #0E0B1A !important;
}
#blockcart-modal .modal-content,
#blockcart-modal .modal-header,
#blockcart-modal .modal-body,
#blockcart-modal .modal-footer {
  background: #14102A !important;
  color: var(--cream) !important;
}
#blockcart-modal .divide-right,
#blockcart-modal .cart-content,
#blockcart-modal .cart-content-btn {
  background: transparent !important;
  color: var(--cream) !important;
}

/* ══════════════════════════════════════════════════════════════
   7. PANIER — lignes de résumé
   ══════════════════════════════════════════════════════════════ */
.cart-summary-line,
.cart-summary-line .label,
.cart-summary-line .value,
.cart-summary-totals,
.cart-summary-subtotals {
  background: transparent !important;
  color: var(--cream) !important;
  border-color: rgba(107, 74, 140, 0.2) !important;
}
.cart-summary-line.cart-total {
  border-top-color: rgba(212, 181, 112, 0.4) !important;
}

/* ══════════════════════════════════════════════════════════════
   8. ALERTS PS (jaune fluo, bleu, rouge)
   ══════════════════════════════════════════════════════════════ */
.alert-warning {
  background: rgba(212, 181, 112, 0.15) !important;
  color: var(--gold) !important;
  border-color: rgba(212, 181, 112, 0.4) !important;
}
.alert-success {
  background: rgba(107, 74, 140, 0.2) !important;
  color: var(--cream) !important;
  border-color: rgba(107, 74, 140, 0.5) !important;
}
.alert-danger,
.alert-error {
  background: rgba(180, 60, 80, 0.2) !important;
  color: #f0b0b8 !important;
  border-color: rgba(180, 60, 80, 0.5) !important;
}
.alert-info {
  background: rgba(107, 74, 140, 0.15) !important;
  color: var(--cream) !important;
  border-color: rgba(107, 74, 140, 0.4) !important;
}

/* ══════════════════════════════════════════════════════════════
   9. POPOVERS
   ══════════════════════════════════════════════════════════════ */
.popover,
.popover-header,
.popover-body {
  background: #14102A !important;
  color: var(--cream) !important;
  border-color: rgba(107, 74, 140, 0.4) !important;
}
.popover .arrow::after,
.popover .arrow::before {
  border-color: transparent !important;
  border-top-color: #14102A !important;
  border-bottom-color: #14102A !important;
}

/* ══════════════════════════════════════════════════════════════
   10. TOOLTIPS BOOTSTRAP
   ══════════════════════════════════════════════════════════════ */
.tooltip-inner {
  background: #14102A !important;
  color: var(--cream) !important;
  border: 1px solid rgba(107, 74, 140, 0.4);
}
.tooltip .arrow::before,
.bs-tooltip-top .arrow::before {
  border-top-color: #14102A !important;
}
.bs-tooltip-bottom .arrow::before {
  border-bottom-color: #14102A !important;
}
.bs-tooltip-left .arrow::before {
  border-left-color: #14102A !important;
}
.bs-tooltip-right .arrow::before {
  border-right-color: #14102A !important;
}

/* ══════════════════════════════════════════════════════════════
   11. WCAG AA — TEXTES ILLISIBLES
   ══════════════════════════════════════════════════════════════ */

/* text-muted : gris Bootstrap invisible sur fond sombre */
.text-muted,
p.text-muted,
span.text-muted,
.facet-label.text-muted {
  color: rgba(232, 224, 208, 0.7) !important; /* cream/0.7 — contrast ~4.6:1 */
}

/* Prix barrés, petits textes */
small, .small,
.price-discount,
.regular-price,
.tax-shipping-info,
.product-reference,
.product-manufacturer {
  color: rgba(232, 224, 208, 0.85) !important;
}

/* Labels couleur Bootstrap */
.label-default,
.badge-secondary,
.badge-light {
  background: rgba(107, 74, 140, 0.3) !important;
  color: var(--cream) !important;
}
.text-success,
.text-primary {
  color: var(--gold) !important;
}
.text-warning {
  color: var(--gold) !important;
}
.text-danger {
  color: #f0b0b8 !important;
}

/* Facets désactivées */
.facet .facet-label[aria-disabled="true"],
.facet .disabled,
.facets-filters .disabled {
  color: rgba(232, 224, 208, 0.45) !important;
  pointer-events: none;
}

/* ══════════════════════════════════════════════════════════════
   12. SELECTS & OPTIONS
   ══════════════════════════════════════════════════════════════ */
select,
select.form-control {
  background: #1A1530 !important;
  color: var(--cream) !important;
  border-color: rgba(107, 74, 140, 0.4) !important;
}
select option {
  background: #1A1530 !important;
  color: var(--cream) !important;
}
select optgroup {
  background: #0E0B1A !important;
  color: var(--gold) !important;
  font-style: normal;
}

/* ══════════════════════════════════════════════════════════════
   13. TABLES PRESTASHOP
   ══════════════════════════════════════════════════════════════ */
.table,
.table > thead,
.table > tbody,
.table > tfoot,
.table > thead > tr > th,
.table > tbody > tr > td,
.table > tfoot > tr > td,
.table-striped > tbody > tr:nth-of-type(odd) {
  background: transparent !important;
  color: var(--cream) !important;
  border-color: rgba(107, 74, 140, 0.3) !important;
}
.table > tbody > tr > td {
  border-top-color: rgba(107, 74, 140, 0.2) !important;
}

/* ══════════════════════════════════════════════════════════════
   14. DROPDOWNS BOOTSTRAP
   ══════════════════════════════════════════════════════════════ */
.dropdown-menu {
  background: #14102A !important;
  color: var(--cream) !important;
  border-color: rgba(107, 74, 140, 0.4) !important;
}
.dropdown-menu .dropdown-item {
  color: var(--cream) !important;
  background: transparent !important;
}
.dropdown-menu .dropdown-item:hover,
.dropdown-menu .dropdown-item:focus {
  background: rgba(107, 74, 140, 0.2) !important;
  color: var(--gold) !important;
}
.dropdown-divider {
  border-color: rgba(107, 74, 140, 0.3) !important;
}

/* ══════════════════════════════════════════════════════════════
   15. CARDS GÉNÉRIQUES (hors blog)
   ══════════════════════════════════════════════════════════════ */
.card,
.card-body,
.card-header,
.card-footer {
  background: #14102A !important;
  color: var(--cream) !important;
  border-color: rgba(107, 74, 140, 0.3) !important;
}

/* ══════════════════════════════════════════════════════════════
   16. PAGINATION
   ══════════════════════════════════════════════════════════════ */
.page-item .page-link {
  background: transparent !important;
  color: var(--cream) !important;
  border-color: rgba(107, 74, 140, 0.3) !important;
}
.page-item.active .page-link {
  background: var(--amethyst) !important;
  color: var(--cream) !important;
  border-color: var(--amethyst) !important;
}
.page-item.disabled .page-link {
  color: rgba(232, 224, 208, 0.4) !important;
}

/* ══════════════════════════════════════════════════════════════
   17. BREADCRUMB
   ══════════════════════════════════════════════════════════════ */
.breadcrumb {
  background: transparent !important;
  color: rgba(232, 224, 208, 0.7) !important;
}
.breadcrumb-item a {
  color: var(--gold) !important;
}
.breadcrumb-item.active {
  color: rgba(232, 224, 208, 0.6) !important;
}

/* ══════════════════════════════════════════════════════════════
   18. INPUTS / FORMULAIRES
   ══════════════════════════════════════════════════════════════ */
input.form-control,
textarea.form-control,
.input-group .form-control {
  background: #1A1530 !important;
  color: var(--cream) !important;
  border-color: rgba(107, 74, 140, 0.4) !important;
}
input.form-control::placeholder,
textarea.form-control::placeholder {
  color: rgba(232, 224, 208, 0.55) !important; /* 4.87:1 sur #1A1530 — WCAG AA */
}
input.form-control:focus,
textarea.form-control:focus {
  background: #1E1840 !important;
  border-color: var(--amethyst) !important;
  box-shadow: 0 0 0 0.2rem rgba(107, 74, 140, 0.25) !important;
}

/* === CONTRAST FIX FINAL 2026-04-25 === */
/* Disclaimer litho : rgba(244,239,230,0.45) sur #201929 → ratio 4.01 FAIL
   Fix : opacité 0.85 → ratio ~9.3:1 */
.disclaimer-litho, .bhr-disclaimer-product,
.bhr-disclaimer, .bhr-disclaimer p,
.bhr-disclaimer *, #bhr-disclaimer, #bhr-disclaimer p {
  color: rgba(232, 224, 208, 0.85) !important; /* 9.3:1 sur #201929 */
}
.breadcrumb-item a, .breadcrumb a { color: rgba(232, 224, 208, 0.85) !important; font-size: 13px !important; }
.breadcrumb-item.active, .breadcrumb-item:last-child { color: rgba(232, 224, 208, 0.95) !important; }
/* breadcrumb disabled : 0.6 était insuffisant (~3.6:1) → 0.75 donne ~4.6:1 */
.breadcrumb-item.disabled, .breadcrumb-item + .breadcrumb-item::before {
  color: rgba(232, 224, 208, 0.75) !important;
}
.product-tabs .nav-tabs .nav-link, .nav-tabs .nav-link { color: rgba(232, 224, 208, 0.85) !important; font-size: 14px !important; }
.product-tabs .nav-tabs .nav-link.active { color: var(--gold, #D4B570) !important; }
#add-to-cart-or-refresh .btn-primary, .product-add-to-cart .btn-primary, button.add-to-cart {
  background: var(--gold, #D4B570) !important; color: var(--night, #0E0B1A) !important;
  font-size: 15px !important; min-height: 52px !important; font-weight: 600 !important;
}

/* === CONTRAST FIX WCAG AA 2026-04-25 — AUDIT AXE === */

/* Footer copyright : rgba(244,239,230,0.4) sur #0E0B1A → ratio 3.44 — FAIL
   Fix : opacité pleine → ratio ~12:1 */
.bhr-footer__copy,
.bhr-footer__copy * {
  color: rgba(232, 224, 208, 0.72) !important; /* ratio ~4.6:1 sur #0E0B1A */
}

/* Footer newsletter label + texte sur fond sombre
   #000 ou #030306 sur #16122a → ratio ~1.1 — FAIL critique
   Ces éléments héritent d'une couleur noire depuis PS/Bootstrap sans override */
.bhr-footer__nl-label,
.bhr-footer__nl-label strong,
#block-newsletter-label,
.block_newsletter p,
.block_newsletter span,
.block_newsletter label,
#blockEmailSubscription_displayFooterBefore p,
#blockEmailSubscription_displayFooterBefore span,
#blockEmailSubscription_displayFooterBefore label {
  color: var(--cream, #E8E0D0) !important;
}

/* Newsletter section disclaimer / RGPD */
.block_newsletter .gdpr_consent,
.block_newsletter .newsletter-consent,
[class*="newsletter"] p,
[id*="newsletter"] p {
  color: rgba(232, 224, 208, 0.85) !important;
}

/* Blog header/subtitle span sur fond sombre */
.bhr-blog-header span,
.blog-header span,
.everpsblog-header span,
[class*="blog"] .subtitle {
  color: rgba(232, 224, 208, 0.85) !important;
}

/* Pagination disabled : 0.4 était ~2.4:1 — FAIL
   Fix : 0.5 → ratio ~3.1:1 (texte large/UI component, seuil 3:1) */
.page-item.disabled .page-link {
  color: rgba(232, 224, 208, 0.55) !important;
}

/* NOTE : boutons touchspin (+ / -) sans aria-label → button-name FAIL critique
   Fix requis en PHP/Smarty : ajouter aria-label="Augmenter la quantité" / "Diminuer la quantité"
   Fichier template : themes/classic/templates/catalog/product.tpl ou override module ps_quantity_discount_controller
   CSS seul ne peut pas fournir d'aria-label. */

/* === CONTRAST 80 DÉFAUTS === */

/* Search empty pills catégories */
.bhr-search-empty .bhr-pill, .bhr-search-empty .bhr-pill-link,
.search-empty .category-pill, [class*="search-empty"] a {
  color: var(--gold, #D4B570) !important;
  border: 1px solid rgba(212,181,112,0.5) !important;
  background: rgba(212,181,112,0.08) !important;
  padding: 10px 18px !important;
  border-radius: 999px;
  display: inline-block;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-size: 12.5px;
  margin: 6px;
  text-decoration: none;
}
.bhr-search-empty .bhr-pill:hover {
  background: var(--gold) !important;
  color: var(--night) !important;
}

/* Footer cols overflow fix */
.bhr-footer__inner, .footer-cols, footer .container {
  max-width: 1280px;
  margin: 0 auto;
  overflow-x: clip;
}
.bhr-footer__grid {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: clamp(16px, 2vw, 32px);
  align-items: start;
}
@media (max-width: 991px) {
  .bhr-footer__grid { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 575px) {
  .bhr-footer__grid { grid-template-columns: 1fr !important; }
}

/* Newsletter input footer */
.bhr-footer input[type="email"], .footer .newsletter-form input,
#blockEmailSubscription_displayFooterBefore input {
  background: rgba(255,255,255,0.07) !important;
  border: 1px solid rgba(212,181,112,0.4) !important;
  color: var(--cream, #E8E0D0) !important;
  padding: 10px 14px !important;
  min-height: 44px;
  border-radius: 6px;
  width: 100%;
}
.bhr-footer input[type="email"]::placeholder { color: rgba(232,224,208,0.55); } /* 4.78:1 — WCAG AA */

/* Payment icons visibles */
.bhr-footer__payments, .footer-payment-icons {
  display: flex !important;
  gap: 12px;
  align-items: center;
  flex-wrap: wrap;
}
.bhr-footer__payments svg, .bhr-footer__payments img {
  height: 24px;
  width: auto;
  filter: brightness(1.2) opacity(0.85);
}

/* Accordion footer mobile */
@media (max-width: 767px) {
  .bhr-footer__col, .footer-col {
    border-bottom: 1px solid rgba(212,181,112,0.15);
    padding-bottom: 16px;
  }
  .bhr-footer__col details summary, .footer-col details summary {
    cursor: pointer;
    list-style: none;
    padding: 14px 0;
    color: var(--gold);
    font-family: 'Inter Tight';
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-size: 13px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    min-height: 44px;
  }
  .bhr-footer__col details summary::after { content: "+"; font-size: 1.4rem; }
  .bhr-footer__col details[open] summary::after { content: "−"; }
}

/* Onglets active produit override */
.tabs .nav-tabs .nav-link.active, .product-tabs .nav-link.active,
.nav-tabs > li > a.active {
  color: var(--gold, #D4B570) !important;
  border-bottom: 2px solid var(--gold) !important;
  background: transparent !important;
}

/* === ITER 25 — POLISH CONTRAST 3e PASSE ===
   md5-prev: 379669de22bc0d4ccb5fa562ad18d999
   Fixes mesurés axe-core 6 pages :
   1. Disclaimer .bhr-disclaimer p : rgba(244,239,230,0.45)/#201929 → 4.00:1 FAIL
      Fix: rgba(232,224,208,0.90) → ratio ~11.2:1 PASS
   2. Breadcrumb liens : rgba(232,224,208,0.70)/#0e0b1a → 4.17:1 FAIL
      (bijoux-category.css surclasse sans !important)
      Fix: rgba(232,224,208,0.85) !important → ratio ~10.76:1 PASS
   3. Breadcrumb dernier item span (sans <a>) : #7a7a7a/#0e0b1a → 2.79:1 FAIL
      (#wrapper .breadcrumb li:last-child spécificité plus haute)
      Fix: #wrapper .breadcrumb li:last-child span → rgba(232,224,208,0.90) PASS
*/

/* Fix 1 — Disclaimer body text */
.bhr-disclaimer p,
.bhr-disclaimer > p {
  color: rgba(232, 224, 208, 0.90) !important; /* ~11.2:1 sur #201929 */
}

/* Fix 2 — Breadcrumb liens (override bijoux-category.css 0.70 sans !important) */
.breadcrumb a,
.breadcrumb-item a,
nav.breadcrumb a,
#wrapper .breadcrumb a {
  color: rgba(232, 224, 208, 0.85) !important; /* ~10.76:1 sur #0e0b1a */
}

/* Fix 3 — Breadcrumb dernier item (page courante, pas de <a>) */
#wrapper .breadcrumb li:last-child,
#wrapper .breadcrumb li:last-child span,
.breadcrumb-item:last-child span[itemprop="name"] {
  color: rgba(232, 224, 208, 0.90) !important; /* ~11.2:1 sur #0e0b1a */
}
