/* ============================================
 TOP HEADER
=========================================== */

/* Grille desktop : 3 colonnes statiques */
.aj-top-reassurance {
    margin: 0 auto;
    padding: 10px 16px 6px 16px;
    background: #101511;
    width:100%;
}

@media (min-width: 1025px) {
  .aj-top-reassurance {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    align-items: center;
    justify-items: center;
  }
  .aj-top-reassurance__item { position: relative; }
}

/* Item (contenu commun) */
.aj-tr__inner {
  display: flex;
  align-items: center;
  gap: 10px;
}

.aj-tr__icon {
    width: 35px;
    height: 20px;
    flex: 0 0 35px;
    overflow: hidden;
}

.aj-tr__img {
    width: 100%;
    height: 100% !important;
    object-fit: contain;
    display: block;
}

.aj-tr__text {
    color: #ffffff;
    font-weight: 300;
    line-height: 1.2;
    font-size: 14px;
    letter-spacing: 1px;
}

/* =========================
 * Mobile/Tablet ≤ 1024px
 * - un item visible à la fois
 * - arrive depuis la droite
 * - boucle infinie, items décalés
 * ========================= */
@media (max-width: 1024px) {
  .aj-top-reassurance {
    position: relative;
    height: 40px;
    overflow: hidden;
    display: block;
    width: 100%;
  }
  
.aj-tr__inner {
    display: flex;
    align-items: center;
    gap: 10px;
    justify-content: center;
}

  .aj-top-reassurance__item {
    position: absolute;
    top: 10px;    /* au lieu de inset */
    left: 0;
    right: 0;
    bottom: 0;

    width: 100%;
    transform: translateX(100%);
    opacity: 0;
    animation: aj-slide-rotator 9s infinite ease-out;
    will-change: transform, opacity;   /* hint pour Safari */
  }

  /* Délai pour l’ordre d’apparition : 1, 2, 3 */
  .aj-item-1 { animation-delay: 0s; }
  .aj-item-2 { animation-delay: 3s; }
  .aj-item-3 { animation-delay: 6s; }

  /* Anim :
     0-8%     : slide-in rapide depuis la droite
     8-28%    : visible fixe
     28-33%   : slide-out vers la gauche (ou fade)
     33-100%  : caché en attente du prochain tour
  */
  @keyframes aj-slide-rotator {
    0%   { transform: translateX(100%); opacity: 0; }
    8%   { transform: translateX(0%);   opacity: 1; }
    28%  { transform: translateX(0%);   opacity: 1; }
    33%  { transform: translateX(-30%); opacity: 0; }
    100% { transform: translateX(-30%); opacity: 0; }
  }
}
/* coup de pouce GPU safari ios fix */
.aj-top-reassurance__item,
.aj-tr__inner,
.aj-tr__img {
  transform: translateZ(0);
  will-change: transform, opacity; /* renforce la stabilité sur WebKit */
}
/* =========================================
   RESET LISTES / LIENS
========================================= */
.my-menu-desktop,
.my-menu-desktop ul,
.my-menu-mobile,
.my-menu-mobile ul{
  list-style:none;
  margin:0;
  padding:0;
}

.my-menu-desktop a,
.my-menu-mobile a{
  text-decoration:none;
}

/* =========================================
   CART ICON
========================================= */
.fkcart-shortcode-icon-wrap svg {
    width: 25px;
    fill: #fff;
}
svg.dgwt-wcas-ico-magnifier-handler {
    fill: #fff;
}
/* =========================================
   CONTENEURS GÉNÉRAUX
========================================= */
.site-header {
    padding-top: 10px;
}
.my-header,
.my-header-desktop,
.my-header-mobile{
  background:#000;
}

.my-inside{
  max-width:1280px;
  margin:0 auto;
  padding:10px 16px 0px 16px;
  color:inherit;
}
@media(min-width:1025px) {
    .my-inside {
        border-bottom:1px solid #fff;
    }
}

/* liens en blanc dans les headers */
.my-header a,
.my-header-desktop a,
.my-header-mobile a{ color:#fff; }

.my-header-center a:hover {
    color: #fff;
}
/* =========================================
   LOGO (53x53)
========================================= */
.my-logo{
  display:inline-flex;
  height:50px;
  align-items:center;
  justify-content:center;
}
.my-logo img,
.my-logo svg{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

/* =========================================
   DESKTOP
========================================= */
.my-header-desktop{ display:none; }

@media (min-width:1025px){
    .my-header-left {
        margin-left: 80px;
    }
  .my-header-desktop{
    display:grid;
    grid-template-columns:1fr auto 1fr;
    align-items:center;
    gap:24px;
    width:100%;
  }
  .my-header-desktop .my-header-left{ justify-self:start; }
  .my-header-desktop .my-header-center{ justify-self:center; }
  .my-header-desktop .my-header-right{
    justify-self:end;
    display:inline-flex;
    align-items:center;
    gap:16px;
    color:#fff;
    margin-right: 15px;
  }
}

/* Menu desktop */
.my-nav-desktop .my-menu-desktop{ display:flex; align-items:center; gap:24px; }
.my-nav-desktop .my-menu-desktop > li{ position:relative; }
.my-nav-desktop .my-menu-desktop > li > a{
  display:inline-flex; align-items:center; gap:8px;
  padding:10px 6px; font-weight:400; line-height:1;
}
.my-nav-desktop .my-menu-desktop > li.menu-item-has-children > a::after{
  content:""; width:12px; height:12px; display:inline-block; vertical-align:middle;
  background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>") no-repeat center/contain;
  transition:transform .2s ease;
}
.my-nav-desktop .my-menu-desktop > li.menu-item-has-children:hover > a::after,
.my-nav-desktop .my-menu-desktop > li.menu-item-has-children:focus-within > a::after{
  transform:rotate(180deg);
}

/* Sous-menus desktop */
.my-nav-desktop .my-menu-desktop > li > .sub-menu{
  position:absolute; top:140%; left:50%; transform:translateX(-50%);
  min-width:250px; background:#000;
  padding:10px 0;
  opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .16s ease, visibility 0s linear .16s;
  z-index:9999;
  border: 2px solid #fff;
  border-top: 2px solid #f2f2f2;
}
.my-nav-desktop .my-menu-desktop > li > .sub-menu::before{
  content:""; position:absolute; top:-12px; left:0; right:0; height:12px;
  pointer-events:auto; background:transparent;
}
.my-nav-desktop .my-menu-desktop > li:hover > .sub-menu,
.my-nav-desktop .my-menu-desktop > li:focus-within > .sub-menu{
  opacity:1; visibility:visible; pointer-events:auto;
}
.my-nav-desktop .my-menu-desktop .sub-menu > li > a{
  display:block; padding:5px 14px; font-weight:400; white-space:nowrap;
}
.my-nav-desktop .my-menu-desktop .sub-menu > li > a:hover,
.my-nav-desktop .my-menu-desktop .sub-menu > li > a:focus{
  background:rgba(255,255,255,.08);
}

/* Sous-sous menu desktop */
.my-nav-desktop .my-menu-desktop .sub-menu li.menu-item-has-children{ position:relative; }
.my-nav-desktop .my-menu-desktop .sub-menu li.menu-item-has-children > a::after{
  content:""; width:10px; height:10px; float:right; margin-left:8px;
  background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='9 18 15 12 9 6'/></svg>") no-repeat center/contain;
  opacity:.85;
}
.my-nav-desktop .my-menu-desktop .sub-menu li > .sub-menu{
  position:absolute; top:0; left:100%; margin-left:0px; min-width:200px;
  background:#fff; padding:10px 0; border-top:none; border:2px solid #fff;
  box-shadow:0 12px 24px rgba(0,0,0,.28);
  opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .16s ease, visibility 0s linear .16s; z-index:10000;
}
.my-nav-desktop .my-menu-desktop .sub-menu li > .sub-menu::before{
  content:""; position:absolute; left:-12px; top:0; width:12px; height:100%;
  pointer-events:auto; background:transparent;
}
.my-nav-desktop .my-menu-desktop .sub-menu li:hover > .sub-menu,
.my-nav-desktop .my-menu-desktop .sub-menu li:focus-within > .sub-menu{
  opacity:1; visibility:visible; pointer-events:auto;
}

/* Accessibilité desktop */
.my-nav-desktop a:focus{ outline:2px solid #0d6efd; outline-offset:2px; border-radius:6px; }
@media (prefers-reduced-motion: reduce){
  .my-nav-desktop .my-menu-desktop > li > .sub-menu,
  .my-nav-desktop .my-menu-desktop .sub-menu li > .sub-menu,
  .my-nav-desktop .my-menu-desktop > li.menu-item-has-children > a::after{
    transition:none !important;
  }
}

/* =========================================
   FIX GENERATEPRESS : largeur pleine header mobile
========================================= */
.site-header .inside-header,
.site-header .inside-header.grid-container{
  max-width:none !important;
  width:100% !important;
  padding-left:0 !important;
  padding-right:0 !important;
}

/* =========================================
   MOBILE HEADER (≤1024px) – grille 3 colonnes
   (gauche 140px / centre auto / droite 140px)
========================================= */
@media (max-width:1024px) {
div.my-cart-box .fkcart-shortcode-price {
    display: none;
}
}

.my-header-mobile{
  display:grid;
  grid-template-columns: 0.5fr 1.5fr 0.5fr;
  align-items:center;
  column-gap:0px;
  background:#fff;
  color:#000;
  padding:0px;
  position:relative;
  z-index:10010;
  width:100%;
  max-width:none;
  margin:0;
}
@media (min-width:1025px){ .my-header-mobile{ display:none; } }

/* Colonnes gauche/droite : même largeur (centrage parfait du logo) */
.my-burger-wrap,
.my-utilities{
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
}

/* Logo au centre de la grille */
.my-header-mobile .my-logo{
  justify-self:center;
  width:120px; height:auto;
  display:flex; align-items:center; justify-content:center; margin: 0 auto;
}

/* =========================
   Capsules blanches (burger / panier)
========================= */
.my-burger-box,
.my-cart-box{
  background:#fff;
  color:#000;               /* texte & icônes en noir */
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  width:100%;
  box-sizing:border-box;
  position: relative;
}
.my-cart-box {
    padding: 8px 0px;
}
.my-burger-box {
    padding: 5px 0px;
}
/* Bouton burger blindé (+ icône noire via currentColor) */
.my-burger{
  appearance:none; -webkit-appearance:none;
  background:transparent;
  border:0;
  padding:0;
  margin:0;
  color:#000;                      /* currentColor -> noir */
  width:40px; height:40px;
  display:inline-grid; place-items:center;
  line-height:0;
  position:relative; isolation:isolate;
}
.my-burger::before,
.my-burger::after{ content:none; display:none; }

.my-burger svg{ width:35px; height:35px; display:block; }
.my-burger,
.my-burger svg,
.my-burger svg *{ fill:currentColor; stroke:currentColor; }
button svg{ display:block; } /* sécurité reset globaux */

.my-burger-label,
.my-cart-label{
  font-size:10px;
  line-height:1;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:#000;
}

/* Harmonise le shortcode panier dans la capsule */
.my-cart-box .fkcart-shortcode-container{ color:#fff; line-height:1; }
.my-cart-box a{ color:#fff; }
.my-cart-box .fkcart-shortcode-icon-wrap svg {
    width: 35px;
    height: 35px;
}
/* =========================================
   OFF-CANVAS : panneau + backdrop
========================================= */
/* Le panneau peut défiler, mais ne “passe” pas le scroll à la page */
#my-mobile-menu{
  overscroll-behavior: contain;  /* l’inertie reste confinée au panneau */
}

#my-mobile-menu.my-mobile-menu{
  position:fixed;
  top:0; left:0;
  height:100vh;                 /* fallback */
  width:90vw; max-width:480px;
  background:#fff; color:#000;
  overflow-y:auto; -webkit-overflow-scrolling:touch;
  box-shadow:8px 0 24px rgba(0,0,0,.4);
  transform:translateX(-105%);
  transition:transform .25s ease;
  z-index:10020;                /* AU-DESSUS du backdrop */
  border-right:2px solid #000;
  padding:12px 0;
  padding-top:70px;             /* décale le contenu sous le haut du panneau */
}
@supports (height:100dvh){
  #my-mobile-menu.my-mobile-menu{ height:100dvh; }
}
#my-mobile-menu.is-open{ transform:translateX(0); }

/* Backdrop sous le panneau, cliquable seulement actif */
.my-mobile-backdrop{
  position:fixed; inset:0;
  background:rgba(0,0,0,.55);
  opacity:0; pointer-events:none;
  transition:opacity .25s ease-in-out;
  z-index:10015;               /* SOUS le panneau (menu = 10020) */
}
.my-mobile-backdrop.is-active{
  opacity:1; pointer-events:auto;
}
.my-mobile-backdrop.is-active{
  touch-action: none;
}
/* Empêcher le scroll de page quand ouvert */
html.mobile-menu-open,
body.mobile-menu-open{
  overflow: hidden !important;
  height: 100%;
  overscroll-behavior: none;     /* stoppe le scroll chaining (iOS/Android) */
}

/* =========================================
   MENU MOBILE (accordéon + alignement gauche)
========================================= */
.my-menu-mobile{ margin:0; padding:4px 0 36px; }
ul#menu-mobile-menu{ text-align:left; } /* WP id commun */

.my-menu-mobile > li > a{
  display:block; padding:14px 18px;
  color:#000; font-weight:400;
  border-bottom:1px solid rgba(255,255,255,.08);
  text-align:left;
}
.my-menu-mobile .sub-menu > li > a:hover{
 color:#fff;
}
/* état ouvert */
.my-menu-mobile > li.is-expanded > a{ background:rgba(255,255,255,.06); }

/* chevrons */
.my-menu-mobile .menu-item-has-children > a{
  position:relative; padding-right:42px;
}
.my-menu-mobile .menu-item-has-children > a::after{
  content:""; position:absolute; right:16px; top:50%; transform:translateY(-50%) rotate(0deg);
  width:16px; height:16px;
  background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>") no-repeat center/contain;
  opacity:.95; transition:transform .2s ease;
}
.my-menu-mobile .menu-item-has-children.is-expanded > a::after{
  transform:translateY(-50%) rotate(180deg);
}

/* accordéon */
.my-menu-mobile .sub-menu{
  max-height:0; overflow:hidden;
  transition:max-height .25s ease;
  background:#fff;
}
.my-menu-mobile .menu-item-has-children.is-expanded > .sub-menu{ max-height:3000px; }

.my-menu-mobile .sub-menu > li > a{
  display:block; padding:12px 22px;
  font-weight:400;
  border-bottom:1px solid rgba(255,255,255,.06);
  text-align:left;
}

/* sous-niveaux : même logique de chevrons */
.my-menu-mobile .sub-menu .menu-item-has-children > a{ padding-right:42px; }
.my-menu-mobile .sub-menu .menu-item-has-children > a::after{
  right:16px; width:14px; height:14px; opacity:.9;
}

/* Focus accessibilité */
#my-mobile-menu a:focus{ outline:2px solid #0d6efd; outline-offset:2px; border-radius:6px; }

/* CROIX FERMETURE MENU BURGER */
button.my-mobile-close {
    position: absolute;
    top: 5px;
    right: 12px;
    width: 36px;
    height: 36px;
    display: grid;
    place-items: center;
    border: 0;
    background: transparent;
    color: #000;
    cursor: pointer;
}
/* =========================================
   DIVERS
========================================= */
.sr-only{
  position:absolute !important;
  width:1px; height:1px;
  padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0);
  white-space:nowrap; border:0;
}

/* =========================================
    Bottom Header (after)
============================================*/
/* Bannière promo sous le header */
.aj-promo-banner {
    background-color: #1a2217;
    padding: 12px 0;
    color: #ffffff;
    font-family: sans-serif;
}

.aj-promo-inner {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0 16px;
}

.aj-promo-text {
    font-size: 13px;
    font-weight: 600;
}

.aj-promo-code-wrapper {
    display: flex;
    align-items: center;
    gap: 12px;
}

.aj-promo-code {
    border: 2px dotted #ffffff;
    border-radius: 20px;
    padding: 3px 14px;
    font-weight: 700;
    font-size: 12px;
}

.aj-promo-cut-btn {
    border: 2px solid #ffffff;
    border-radius: 50%;
    background-color: #323931;
    color: #ffffff;
    width: 31px;
    height: 31px;
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    padding: 0;
}

.aj-promo-cut-btn svg {
    width: 16px;   /* taille du SVG */
    height: 16px;
    display: block;
}
/* Toast */
.aj-toast {
    position: fixed;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%) translateY(20px);
    background: #3f4047;
    color: #fff;
    padding: 10px 16px;
    border-radius: 6px;
    font-size: 14px;
    opacity: 0;
    transition: all 0.3s ease;
    z-index: 9999;
}

.aj-toast.show {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
}
.aj-toast {
    position: fixed;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%) translateY(20px);
    background: #3f4047;
    color: #fff;
    padding: 10px 16px;
    border-radius: 6px;
    font-size: 14px;
    opacity: 0;
    transition: all 0.3s ease;
    z-index: 9999;
}

.aj-toast.show {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
}