/* Style pour les cartes produits */
.sdsarticle-des .product-card {
  width: 48%;  /* Légèrement moins que 50% pour laisser un peu d'espace */
  display: inline-block;
  vertical-align: top;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
  margin: 0 1% 20px;
  background-color: #fff;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}

.sdsarticle-des .product-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.15);
}

/* Titre du produit */
.sdsarticle-des .product-card h4 {
  margin: 0;
  padding: 15px 10px;
  color: #333;
  font-size: 16px;
  text-align: center;
  font-weight: 600;
  border-bottom: 1px solid #f0f0f0;
  height: 70px;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Bloc image */
.sdsarticle-des .product-card .imgbl {
  width: 100%;
  height: auto;
  display: flex;
  justify-content: center;
  align-items: center;
  overflow: hidden;
  background-color: #f9f9f9;
  padding: 10px;
}

.sdsarticle-des .product-card .imgbl img {
  width: 100%;
  height: auto;
  object-fit: cover;
  transition: transform 0.5s ease;
}

.sdsarticle-des .product-card .imgbl img:hover {
  transform: scale(1.05);
}

/* Bloc prix */
.sdsarticle-des .product-card .prixbl {
  padding: 10px;
  font-size: 20px;
  font-weight: 700;
  color: #e63946;
  text-align: center;
  background-color: #f8f9fa;
}

/* Bloc description */
.sdsarticle-des .product-card .descbl {
  padding: 15px;
  color: #666;
  font-size: 14px;
  line-height: 1.5;
  text-align: justify;
  height: 120px;
  overflow-y: auto;
}

/* Bloc bouton */
.sdsarticle-des .product-card .btnbl {
  padding: 15px;
  text-align: center;
}

.sdsarticle-des .product-card .btnbl a {
  display: inline-block;
  padding: 10px 20px;
  background-color: #000;
  color: #fff;
  font-size: 14px;
  font-weight: 500;
  text-decoration: none;
  border-radius: 4px;
  transition: background-color 0.3s ease;
}

.sdsarticle-des .product-card .btnbl a:hover {
  background-color: #333;
}

/* Correction pour que les titres normaux ne soient pas affectés */
.sdsarticle-des h2, .sdsarticle-des h3 {
  clear: both;
  display: block;
  width: 100%;
}

/* Media query pour les appareils mobiles */
@media (max-width: 768px) {
  .sdsarticle-des .product-card {
    width: 100%;
    margin: 0 0 20px;
  }
  
  .sdsarticle-des .product-card .descbl {
    height: auto;
    max-height: 150px;
  }
  
  .sdsarticle-des .product-card h4 {
    height: auto;
  }
}
/* .gm-cat-second-desc partage le style typographique de :is(#product .product-description, .gm-cat-second-desc)
   (voir bloc « Product description: typography & rich content » plus bas). */
.gm-cat-second-desc.card.card-block {
  margin-top: 20px;
}
.block-category.card.card-block p {
  color: #272525;
  font-size: 15px;
}
.product-container.product-layout1 .col-md-6:nth-child(2) {
    background: white;
    box-shadow: 3px 4px 14px 5px rgba(0,0,0,0.08);
	transition: box-shadow 0.3s;
    border-radius: 12px;
    padding: 2.5rem;
}
.elementor-1020101 .elementor-element.elementor-element-fa7a693 .pos-brand-widgets .brand-item {
    border: dotted #BBA709;
    min-height: 116px;
    align-content: center;
}

.slick-list { overflow: hidden; }
.slick-track { display: flex; }

a.ce-edit-btn { z-index: 999999999999; }

.animated {
    animation-duration: 1s;
    animation-fill-mode: both;
}

.animated.infinite { animation-iteration-count: infinite; }
.animated.hinge { animation-duration: 2s; }
.animated.flipOutX, .animated.flipOutY, .animated.bounceIn, .animated.bounceOut { animation-duration: .75s; }

@keyframes bounce {
    0%, 20%, 53%, 80%, 100% { transform: translate3d(0, 0, 0); }
    40%, 43% { transform: translate3d(0, -30px, 0); }
    70% { transform: translate3d(0, -15px, 0); }
    90% { transform: translate3d(0, -4px, 0); }
}

.bounce { animation-name: bounce; transform-origin: center bottom; }

@keyframes flash {
    0%, 50%, 100% { opacity: 1; }
    25%, 75% { opacity: 0; }
}

.flash { animation-name: flash; }

@keyframes pulse {
    0%, 100% { transform: scale3d(1, 1, 1); }
    50% { transform: scale3d(1.15, 1.15, 1.15); }
}

.pulse { animation-name: pulse; }

@keyframes rubberBand {
    0% { transform: scale3d(1, 1, 1); }
    30% { transform: scale3d(1.25, 0.75, 1); }
    40% { transform: scale3d(0.75, 1.25, 1); }
    50% { transform: scale3d(1.15, 0.85, 1); }
    65% { transform: scale3d(0.95, 1.05, 1); }
    75% { transform: scale3d(1.05, 0.95, 1); }
    100% { transform: scale3d(1, 1, 1); }
}

.rubberBand { animation-name: rubberBand; }

@keyframes shake {
    0%, 100% { transform: translate3d(0, 0, 0); }
    10%, 30%, 50%, 70%, 90% { transform: translate3d(-10px, 0, 0); }
    20%, 40%, 60%, 80% { transform: translate3d(10px, 0, 0); }
}

.shake { animation-name: shake; }

@keyframes headShake {
    0%, 50% { transform: translateX(0); }
    6.5% { transform: translateX(-6px) rotateY(-9deg); }
    18.5% { transform: translateX(5px) rotateY(7deg); }
    31.5% { transform: translateX(-3px) rotateY(-5deg); }
    43.5% { transform: translateX(2px) rotateY(3deg); }
}

.headShake { animation-name: headShake; animation-timing-function: ease-in-out; }

@keyframes swing {
    20% { transform: rotate3d(0, 0, 1, 15deg); }
    40% { transform: rotate3d(0, 0, 1, -10deg); }
    60% { transform: rotate3d(0, 0, 1, 5deg); }
    80% { transform: rotate3d(0, 0, 1, -5deg); }
    100% { transform: rotate3d(0, 0, 1, 0deg); }
}

.swing { transform-origin: top center; animation-name: swing; }

@keyframes tada {
    0% { transform: scale3d(1, 1, 1); }
    10%, 20% { transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg); }
    30%, 50%, 70%, 90% { transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); }
    40%, 60%, 80% { transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); }
    100% { transform: scale3d(1, 1, 1); }
}

.tada { animation-name: tada; }

@keyframes wobble {
    0% { transform: none; }
    15% { transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); }
    30% { transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); }
    45% { transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); }
    60% { transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); }
    75% { transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); }
    100% { transform: none; }
}

.wobble { animation-name: wobble; }

@keyframes jello {
    0%, 11.1%, 100% { transform: none; }
    22.2% { transform: skewX(-12.5deg) skewY(-12.5deg); }
    33.3% { transform: skewX(6.25deg) skewY(6.25deg); }
    44.4% { transform: skewX(-3.125deg) skewY(-3.125deg); }
    55.5% { transform: skewX(1.5625deg) skewY(1.5625deg); }
    66.6% { transform: skewX(-0.78125deg) skewY(-0.78125deg); }
    77.7% { transform: skewX(0.390625deg) skewY(0.390625deg); }
    88.8% { transform: skewX(-0.1953125deg) skewY(-0.1953125deg); }
}

.jello { animation-name: jello; transform-origin: center; }

@keyframes bounceIn {
    0% { opacity: 0; transform: scale3d(0.3, 0.3, 0.3); }
    20% { transform: scale3d(1.1, 1.1, 1.1); }
    40% { transform: scale3d(0.9, 0.9, 0.9); }
    60% { opacity: 1; transform: scale3d(1.03, 1.03, 1.03); }
    80% { transform: scale3d(0.97, 0.97, 0.97); }
    100% { opacity: 1; transform: scale3d(1, 1, 1); }
}

.bounceIn { animation-name: bounceIn; }

@keyframes bounceInDown {
    0% { opacity: 0; transform: translate3d(0, -3000px, 0); }
    60% { opacity: 1; transform: translate3d(0, 25px, 0); }
    75% { transform: translate3d(0, -10px, 0); }
    90% { transform: translate3d(0, 5px, 0); }
    100% { transform: none; }
}
.bounceInDown { animation-name: bounceInDown; }

/* Animations de base */
.animated {
    animation-duration: 1s;
    animation-fill-mode: both;
}

.animated.infinite { animation-iteration-count: infinite; }
.animated.hinge { animation-duration: 2s; }
.animated.flipOutX, .animated.flipOutY, .animated.bounceIn, .animated.bounceOut { animation-duration: .75s; }

/* Animations de rebond */
@keyframes bounce {
    0%, 20%, 53%, 80%, 100% { transform: translate3d(0, 0, 0); }
    40%, 43% { transform: translate3d(0, -30px, 0); }
    70% { transform: translate3d(0, -15px, 0); }
    90% { transform: translate3d(0, -4px, 0); }
}

.bounce { animation-name: bounce; transform-origin: center bottom; }

/* Animations de fondu */
@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

.fadeIn { animation-name: fadeIn; }

@keyframes fadeOut {
    from { opacity: 1; }
    to { opacity: 0; }
}

.fadeOut { animation-name: fadeOut; }

/* Animations de zoom */
@keyframes zoomIn {
    from { opacity: 0; transform: scale3d(0.3, 0.3, 0.3); }
    50% { opacity: 1; }
}

.zoomIn { animation-name: zoomIn; }

@keyframes zoomOut {
    from { opacity: 1; }
    50% { opacity: 0; transform: scale3d(0.3, 0.3, 0.3); }
    to { opacity: 0; }
}

.zoomOut { animation-name: zoomOut; }

/* Animations de rotation */
@keyframes rotateIn {
    from { transform: rotate3d(0, 0, 1, -200deg); opacity: 0; }
    to { transform: none; opacity: 1; }
}

.rotateIn { animation-name: rotateIn; }

@keyframes rotateOut {
    from { opacity: 1; }
    to { transform: rotate3d(0, 0, 1, 200deg); opacity: 0; }
}

.rotateOut { animation-name: rotateOut; }

/* Animations de glissement */
@keyframes slideInDown {
    from { transform: translate3d(0, -100%, 0); visibility: visible; }
    to { transform: translate3d(0, 0, 0); }
}

.slideInDown { animation-name: slideInDown; }

@keyframes slideOutUp {
    from { transform: translate3d(0, 0, 0); }
    to { visibility: hidden; transform: translate3d(0, -100%, 0); }
}

.slideOutUp { animation-name: slideOutUp; }

/* Styles spécifiques */
.med-bestsale .product-miniature {
    border: none;
    padding: 0;
    margin: 0 20px;
}

.med-bestsale .product-miniature:hover { border-color: #ebebeb; }

.med-bestsale .pos-product-widget .slick-arrow { top: -2.957rem; }
.med-bestsale .pos-product-widget .slick-next { right: 1rem; }
.med-bestsale .pos-product-widget .slick-prev { right: 3.5rem; }

.toy-bestsale .product-miniature {
    border: none;
    padding: 0;
    margin: 0 20px;
    border-radius: 0;
}

.toy-bestsale .product-miniature:hover { border-color: #ebebeb; }
.toy-bestsale .pos-product-widget .slick-next { right: 1rem; }
.toy-bestsale .pos-product-widget .slick-prev { right: 3.5rem; }

/* Responsive */
@media (max-width: 1600px) and (min-width: 1024px) {
    .banner-left { max-width: 52%; }
    .banner-right { max-width: 46%; }
}

/* Autres styles */
.list-bigger-image .style_product_list .img_block { max-width: 170px; }
.has-section-inner .elementor-widget-wrap { display: block; }
.elementor-widget-wrap > section { width: 100%; }
.elementor-editor-active .elementor.elementor-edit-mode .elementor-top-column .elementor-widget-wrap .elementor-inner-section { margin-top: 0; }

/* ===== CLS fix : headerSpace placeholder ===== */
/* headerSticky() inserts a .headerSpace div inside #header on DOMReady.
   Without this rule the div takes space and shifts wrapper down (CLS 0.258). */
.headerSpace.unvisible {
  display: none;
}

/* ===== CLS fix : reserve space for product images ===== */
.product-cover-container {
  aspect-ratio: 1 / 1;
  overflow: hidden;
}
.product-cover .easyzoom {
  display: block;
  width: 100%;
}
.product-cover .easyzoom > a {
  display: block;
  aspect-ratio: 1 / 1;
}
.product-cover .easyzoom > a > img,
.product-cover .cover-item > img {
  width: 100%;
  height: auto;
  display: block;
}
/* Slick: prevent pre-init flash — !important overrides theme's
   .slick-block:not(.slick-initialized) > * { display: inline-block !important } */
.product-cover:not(.slick-initialized) .cover-item {
  display: none !important;
}
.product-cover:not(.slick-initialized) .cover-item:first-child {
  display: block !important;
}
/* Grid layout: no hide, aspect-ratio per item */
.grid .product-cover:not(.slick-initialized) .cover-item {
  display: block !important;
}
.grid .product-cover-container {
  aspect-ratio: auto;
}
/* Top slider layout */
.top .product-cover-container {
  aspect-ratio: auto;
}
.top .product-cover:not(.slick-initialized) .cover-item {
  display: none !important;
}
.top .product-cover:not(.slick-initialized) .cover-item:first-child {
  display: inline-block !important;
}
/* Thumbnail images: fixed dimensions */
.product-images .image-item img {
  aspect-ratio: 1 / 1;
  object-fit: cover;
}
/* Thumbnails: column-mobile-4 is missing from theme CSS (only 1-3 defined).
   Without this, thumbnails stack full-width before Slick init → CLS on mobile. */
.column-mobile-4:not(.slick-initialized) > * {
  width: 25%;
}

/* ===== Accessibility fixes ===== */
/* Contrast: #7a7a7a -> #595959 (7:1 ratio on white) */
.product-prices .tax-shipping-delivery-label,
.product-discount,
.product-information .label,
.product-features .data-sheet dd,
.product-features .data-sheet dt {
  color: #595959;
}
/* Contrast: #888888 -> #767676 (4.54:1 on white — AA pass) */
.tabs .nav-tabs .nav-item .nav-link {
  color: #767676;
}
.tabs .nav-tabs .nav-item .nav-link:hover,
.tabs .nav-tabs .nav-item .nav-link.active {
  color: #253237;
}
/* Contrast: #999999 -> #767676 (4.54:1 on white — AA pass) */
.js-product-miniature .product_desc .manufacturer a {
  color: #767676;
}

/* ===== Product description: typography & rich content ===== */
:is(#product .product-description, .gm-cat-second-desc) {
  font-size: 0.9375rem;
  color: #595959;
  line-height: 1.75;
}

/* Headings */
:is(#product .product-description, .gm-cat-second-desc) h2 {
  font-size: 1.3125rem;
  font-weight: 700;
  color: #253237;
  margin: 2.25rem 0 1rem;
  padding-bottom: 0.65rem;
  line-height: 1.3;
  position: relative;
}
:is(#product .product-description, .gm-cat-second-desc) h2:after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 50px;
  height: 2px;
  background: #C29958;
}
:is(#product .product-description, .gm-cat-second-desc) h2:first-child {
  margin-top: 0;
}
:is(#product .product-description, .gm-cat-second-desc) h3 {
  font-size: 1.125rem;
  font-weight: 700;
  color: #253237;
  margin: 1.75rem 0 0.75rem;
  line-height: 1.3;
  display: flex;
  align-items: center;
}
:is(#product .product-description, .gm-cat-second-desc) h3:before {
  content: "";
  display: inline-block;
  width: 18px;
  height: 2px;
  background: #C29958;
  margin-right: 12px;
  flex-shrink: 0;
}
:is(#product .product-description, .gm-cat-second-desc) h4 {
  font-size: 1rem;
  font-weight: 700;
  color: #253237;
  margin: 1.25rem 0 0.5rem;
  line-height: 1.3;
}
:is(#product .product-description, .gm-cat-second-desc) h5,
:is(#product .product-description, .gm-cat-second-desc) h6 {
  font-size: 0.9375rem;
  font-weight: 700;
  color: #253237;
  margin: 1rem 0 0.5rem;
}

/* Paragraphs */
:is(#product .product-description, .gm-cat-second-desc) p {
  font-size: 0.9375rem;
  color: #595959;
  line-height: 1.75;
  margin: 0 0 1rem;
}

/* Inline emphasis */
:is(#product .product-description, .gm-cat-second-desc) strong,
:is(#product .product-description, .gm-cat-second-desc) b {
  font-weight: 700;
  color: #253237;
}
:is(#product .product-description, .gm-cat-second-desc) em,
:is(#product .product-description, .gm-cat-second-desc) i {
  font-style: italic;
  color: #595959;
}

/* Links — bronze fonce pour passer WCAG AA (5:1 sur blanc) + soulignement
   permanent (WCAG 1.4.1 : la couleur seule ne suffit pas) */
:is(#product .product-description, .gm-cat-second-desc) a {
  color: #8a6829;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  transition: color 0.2s ease, text-decoration-color 0.2s ease;
}
:is(#product .product-description, .gm-cat-second-desc) a:hover,
:is(#product .product-description, .gm-cat-second-desc) a:focus {
  color: #5e4717;
  text-decoration-thickness: 2px;
}
:is(#product .product-description, .gm-cat-second-desc) a:focus-visible {
  outline: 2px solid #C29958;
  outline-offset: 2px;
}

/* Unordered lists */
:is(#product .product-description, .gm-cat-second-desc) ul {
  list-style: none;
  margin: 0 0 1.25rem;
  padding-left: 0.5rem;
  font-size: 0.9375rem;
  color: #595959;
  line-height: 1.9;
}
:is(#product .product-description, .gm-cat-second-desc) ul li {
  position: relative;
  padding-left: 1.5rem;
  margin-bottom: 0.25rem;
}
:is(#product .product-description, .gm-cat-second-desc) ul li:before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.7em;
  width: 7px;
  height: 7px;
  background: #C29958;
  border-radius: 50%;
}
:is(#product .product-description, .gm-cat-second-desc) ul li strong,
:is(#product .product-description, .gm-cat-second-desc) ul li b {
  color: #253237;
}
:is(#product .product-description, .gm-cat-second-desc) ul ul {
  margin: 0.5rem 0 0.5rem 0.5rem;
}
:is(#product .product-description, .gm-cat-second-desc) ul ul li:before {
  background: transparent;
  border: 1px solid #C29958;
}

/* Ordered lists */
:is(#product .product-description, .gm-cat-second-desc) ol {
  margin: 0 0 1.25rem;
  padding-left: 1.5rem;
  font-size: 0.9375rem;
  color: #595959;
  line-height: 1.9;
  list-style-type: decimal;
}
:is(#product .product-description, .gm-cat-second-desc) ol li {
  padding-left: 0.25rem;
  margin-bottom: 0.25rem;
}
:is(#product .product-description, .gm-cat-second-desc) ol li::marker {
  color: #C29958;
  font-weight: 700;
}

/* Tables */
:is(#product .product-description, .gm-cat-second-desc) table {
  width: 100%;
  border-collapse: collapse;
  margin: 1.5rem 0;
  font-size: 0.9375rem;
  background: #fff;
}
:is(#product .product-description, .gm-cat-second-desc) thead {
  background: #253237;
  color: #fff;
}
/* A11y contraste — bandeau cookies #poscookielaw
 * Fond #908E8F (gris moyen) + texte blanc = 3.13:1 (échec AA)
 * → Fond #595959 (gris foncé) + texte blanc = 7:1 (AAA) */
#poscookielaw {
  background-color: #595959 !important;
}
#poscookielaw p,
#poscookielaw a,
#poscookielaw span {
  color: #ffffff !important;
}

/* Cover produit <picture> : restaurer la responsivité après wrapping
 * (theme.css a .easyzoom img { max-width: none } qui casse le shrink en viewport étroit) */
.easyzoom picture,
.product-cover picture,
.cover-item picture {
  display: block;
  width: 100%;
  max-width: 100%;
}
.easyzoom picture img,
.product-cover picture img,
.cover-item picture img {
  display: block;
  width: 100%;
  height: auto;
  max-width: 100%;
}

/* th dans <thead> : style en-tête sombre/blanc (cas tableau classique) */
:is(#product .product-description, .gm-cat-second-desc) thead th {
  text-align: left;
  padding: 0.75rem 1rem;
  font-weight: 700;
  color: #fff;
  border: 1px solid #253237;
}
/* th dans <tbody> : style label "clé-valeur" — fond beige clair, texte sombre */
:is(#product .product-description, .gm-cat-second-desc) tbody th {
  text-align: left;
  padding: 0.75rem 1rem;
  font-weight: 700;
  color: #253237;
  background: #faf7f2;
  border: 1px solid #ebebeb;
  width: 30%;
  vertical-align: top;
}
:is(#product .product-description, .gm-cat-second-desc) td {
  padding: 0.75rem 1rem;
  border: 1px solid #ebebeb;
  color: #595959;
  vertical-align: top;
}
:is(#product .product-description, .gm-cat-second-desc) tbody tr:nth-child(even) td {
  background: #faf7f2;
}
:is(#product .product-description, .gm-cat-second-desc) caption {
  caption-side: top;
  text-align: left;
  font-weight: 700;
  color: #253237;
  padding: 0.5rem 0;
}

/* Blockquote */
:is(#product .product-description, .gm-cat-second-desc) blockquote {
  margin: 1.5rem 0;
  padding: 0.75rem 1.25rem;
  border-left: 3px solid #C29958;
  background: #faf7f2;
  color: #595959;
  font-style: italic;
}
:is(#product .product-description, .gm-cat-second-desc) blockquote p:last-child {
  margin-bottom: 0;
}

/* Inline code & preformatted */
:is(#product .product-description, .gm-cat-second-desc) code {
  background: #f5f2ec;
  color: #253237;
  padding: 0.1em 0.4em;
  border-radius: 2px;
  font-size: 0.875em;
}
:is(#product .product-description, .gm-cat-second-desc) pre {
  background: #253237;
  color: #f5f2ec;
  padding: 1rem;
  border-radius: 2px;
  overflow-x: auto;
  margin: 1.25rem 0;
}
:is(#product .product-description, .gm-cat-second-desc) pre code {
  background: transparent;
  color: inherit;
  padding: 0;
}

/* Horizontal rule */
:is(#product .product-description, .gm-cat-second-desc) hr {
  border: none;
  border-top: 1px solid #ebebeb;
  margin: 2rem 0;
}

/* Images inside description */
:is(#product .product-description, .gm-cat-second-desc) img {
  max-width: 100%;
  height: auto;
  margin: 1rem 0;
}

/* Small responsive tweaks */
@media (max-width: 575px) {
  :is(#product .product-description, .gm-cat-second-desc) h2 {
    font-size: 1.1875rem;
    margin-top: 1.75rem;
  }
  :is(#product .product-description, .gm-cat-second-desc) h3 {
    font-size: 1.0625rem;
  }
  :is(#product .product-description, .gm-cat-second-desc) table {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
}

/* ===== Social share icons: replace missing SVGs with inline data URIs ===== */
.facebook.icon-gray {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath fill='%23999' d='M18 32V18h4.4l.6-5.2h-5v-3.2c0-1.5.4-2.5 2.6-2.5H23V2.1A38 38 0 0019.9 2C16.6 2 14.3 4 14.3 7.5v3.8H10V18h4.3v14H18z'/%3E%3C/svg%3E") !important;
}
.facebook.icon-gray:hover {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath fill='%233b5998' d='M18 32V18h4.4l.6-5.2h-5v-3.2c0-1.5.4-2.5 2.6-2.5H23V2.1A38 38 0 0019.9 2C16.6 2 14.3 4 14.3 7.5v3.8H10V18h4.3v14H18z'/%3E%3C/svg%3E") !important;
}
.twitter.icon-gray {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath fill='%23999' d='M32 6.1a13.2 13.2 0 01-3.8 1A6.6 6.6 0 0031.1 3.5a13.2 13.2 0 01-4.2 1.6 6.6 6.6 0 00-11.2 6A18.7 18.7 0 012.2 4.2a6.6 6.6 0 002 8.8 6.6 6.6 0 01-3-.8 6.6 6.6 0 005.3 6.5 6.6 6.6 0 01-3 .1 6.6 6.6 0 006.1 4.6A13.2 13.2 0 010 26.1a18.6 18.6 0 0010.1 3c12.1 0 18.7-10 18.7-18.7l-.1-.9A13.4 13.4 0 0032 6.1z'/%3E%3C/svg%3E") !important;
}
.twitter.icon-gray:hover {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath fill='%231da1f2' d='M32 6.1a13.2 13.2 0 01-3.8 1A6.6 6.6 0 0031.1 3.5a13.2 13.2 0 01-4.2 1.6 6.6 6.6 0 00-11.2 6A18.7 18.7 0 012.2 4.2a6.6 6.6 0 002 8.8 6.6 6.6 0 01-3-.8 6.6 6.6 0 005.3 6.5 6.6 6.6 0 01-3 .1 6.6 6.6 0 006.1 4.6A13.2 13.2 0 010 26.1a18.6 18.6 0 0010.1 3c12.1 0 18.7-10 18.7-18.7l-.1-.9A13.4 13.4 0 0032 6.1z'/%3E%3C/svg%3E") !important;
}
.pinterest.icon-gray {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath fill='%23999' d='M16 0C7.2 0 0 7.2 0 16c0 6.6 4 12.3 9.8 14.7 0-1.1 0-2.5.3-3.7l2.1-9s-.5-1.1-.5-2.6c0-2.4 1.4-4.2 3.2-4.2 1.5 0 2.2 1.1 2.2 2.5 0 1.5-1 3.8-1.5 5.9-.4 1.8 1 3.3 2.7 3.3 3.3 0 5.5-4.2 5.5-9.2 0-3.8-2.6-6.6-7.2-6.6-5.3 0-8.6 3.9-8.6 8.3 0 1.5.4 2.6 1.1 3.4.3.4.4.5.3 1l-.4 1.5c-.1.5-.5.6-1 .4C5.7 20.4 4.3 17.5 4.3 14.6c0-5.4 4.6-11.9 13.7-11.9 7.3 0 12.1 5.3 12.1 11 0 7.5-4.2 13.2-10.4 13.2-2.1 0-4-1.1-4.7-2.4l-1.3 5.2c-.4 1.5-1.2 3-2 4.2A16 16 0 0032 16C32 7.2 24.8 0 16 0z'/%3E%3C/svg%3E") !important;
}
.pinterest.icon-gray:hover {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath fill='%23bd081c' d='M16 0C7.2 0 0 7.2 0 16c0 6.6 4 12.3 9.8 14.7 0-1.1 0-2.5.3-3.7l2.1-9s-.5-1.1-.5-2.6c0-2.4 1.4-4.2 3.2-4.2 1.5 0 2.2 1.1 2.2 2.5 0 1.5-1 3.8-1.5 5.9-.4 1.8 1 3.3 2.7 3.3 3.3 0 5.5-4.2 5.5-9.2 0-3.8-2.6-6.6-7.2-6.6-5.3 0-8.6 3.9-8.6 8.3 0 1.5.4 2.6 1.1 3.4.3.4.4.5.3 1l-.4 1.5c-.1.5-.5.6-1 .4C5.7 20.4 4.3 17.5 4.3 14.6c0-5.4 4.6-11.9 13.7-11.9 7.3 0 12.1 5.3 12.1 11 0 7.5-4.2 13.2-10.4 13.2-2.1 0-4-1.1-4.7-2.4l-1.3 5.2c-.4 1.5-1.2 3-2 4.2A16 16 0 0032 16C32 7.2 24.8 0 16 0z'/%3E%3C/svg%3E") !important;
}
/* Neutralize ::before SVGs (also 404) */
.facebook.icon-gray::before,
.twitter.icon-gray::before,
.pinterest.icon-gray::before {
  background-image: none !important;
}

/* ---------------------------------------------------------------------
 * Footer pos_links widget — single render (button + responsive CSS)
 * Remplace l'ancien double rendu <p hidden-sm-down> + <p hidden-md-up>.
 * Inclut la ligne dorée décorative sous chaque titre (mobile + desktop).
 * --------------------------------------------------------------------- */

/* Reset complet du <button> natif (sélecteur ultra-spécifique pour battre la cascade) */
.elementor-widget-pos_links .pos-links-widget button.links-widget-title,
.elementor-widget-pos_links .pos-links-widget p.links-widget-title {
  background: transparent;
  border: 0;
  padding: 0 0 0.65rem 0;
  margin: 0 0 1.1rem 0;
  width: 100%;
  text-align: left;
  font: inherit;
  color: inherit;
  cursor: pointer;
  display: block;
  position: relative;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

/* Ligne dorée décorative sous chaque titre (visible mobile ET desktop) */
.elementor-widget-pos_links .pos-links-widget button.links-widget-title::after,
.elementor-widget-pos_links .pos-links-widget p.links-widget-title::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 50px;
  height: 2px;
  background: #C29958;
}

/* Focus visible (accessibilité clavier) */
.elementor-widget-pos_links .pos-links-widget button.links-widget-title:focus-visible {
  outline: 2px solid #C29958;
  outline-offset: 4px;
}

/* Desktop (>= 768px) : liste toujours visible, bouton inerte visuellement, chevron caché */
@media (min-width: 768px) {
  .elementor-widget-pos_links .pos-links-widget .links-widget-content.collapse {
    display: block !important;
    height: auto !important;
  }
  .elementor-widget-pos_links .pos-links-widget button.links-widget-title {
    cursor: default;
    pointer-events: none;
  }
  .elementor-widget-pos_links .pos-links-widget button.links-widget-title .navbar-toggler.collapse-icons {
    display: none;
  }
}

/* Mobile / tablette (< 768px) : conserver l'icône chevron à droite du titre */
@media (max-width: 767.98px) {
  .elementor-widget-pos_links .pos-links-widget button.links-widget-title .navbar-toggler.collapse-icons {
    display: inline-block;
    position: absolute;
    right: 0;
    top: 0;
  }
}

/* ---------------------------------------------------------------------
 * Accessibilité — contrastes WCAG AA (Lighthouse)
 * Plan : voir .claude/plans/ok-maintenant-tu-vas-dreamy-cupcake.md (sect. accessibilité)
 * --------------------------------------------------------------------- */

/* A1. Badge "Rupture de stock" : texte sombre sur fond or → ratio 8.5:1 (AAA) */
.product-flags li.product-flag.out_of_stock,
.product-flag .out_of_stock {
  color: #1a1a1a !important;
}

/* A2. Prix barré : gris #9b9b9b (2.83:1) → #595959 (7:1 AAA) */
.product-price-and-shipping .regular-price,
.product-discount .regular-price {
  color: #595959 !important;
}

/* A3. Placeholder searchbox : gris #7a7a7a (4.23:1) → #595959 (7:1 AAA) */
input[type="search"]::placeholder,
.pos-search__input::placeholder {
  color: #595959 !important;
  opacity: 1; /* Firefox default = 0.54, force pour respecter la couleur exacte */
}
input[type="search"]::-webkit-input-placeholder,
.pos-search__input::-webkit-input-placeholder {
  color: #595959 !important;
}
input[type="search"]::-moz-placeholder,
.pos-search__input::-moz-placeholder {
  color: #595959 !important;
  opacity: 1;
}

/* A4. Breadcrumb : séparateurs "/" et item courant (page actuelle) */
/* Séparateur "/" : #7a7a7a (4.48:1) → #595959 (7:1 AAA) */
#wrapper .breadcrumb li::after {
  color: #595959 !important;
}
/* Item courant : or clair #C29958 (2.46:1) → or sombre #8c6c3e (4.6:1 AA) */
#wrapper .breadcrumb li:last-child,
#wrapper .breadcrumb li:last-child a,
#wrapper .breadcrumb li:last-child span {
  color: #8c6c3e !important;
}

/* ---------------------------------------------------------------------
 * Bloc Partager (ps_sharebuttons) — un seul rendu par icône
 * Cause initiale : superposition de 3 sources (background-image li +
 * background-image li::before + font-icon roadthemes-icon sur <a>).
 * Fix : neutraliser tous les background-image SVG, garder uniquement le
 * font-icon du thème (\e93c, \e932, \e93e) coloré en or sombre.
 * --------------------------------------------------------------------- */
.social-sharing li.facebook,
.social-sharing li.twitter,
.social-sharing li.pinterest,
.social-sharing li.googleplus,
.social-sharing li.linkedin,
.social-sharing li.facebook.icon-gray,
.social-sharing li.twitter.icon-gray,
.social-sharing li.pinterest.icon-gray,
.social-sharing li.facebook:hover,
.social-sharing li.twitter:hover,
.social-sharing li.pinterest:hover,
.social-sharing li.facebook.icon-gray:hover,
.social-sharing li.twitter.icon-gray:hover,
.social-sharing li.pinterest.icon-gray:hover {
  background-image: none !important;
}

/* Couleur des squelettes font-icon : or sombre 4.6:1 AA au repos, or charte au hover */
.social-sharing li a,
.social-sharing li a:before {
  color: #8c6c3e !important;
}
.social-sharing li a:hover,
.social-sharing li a:hover:before {
  color: #C29958 !important;
}