/* =========================================================
   Biche Oh Ma Biche — Main stylesheet
   Tokens extracted from Figma (Fraunces + DM Sans, Bordeaux + Rose)
   ========================================================= */

:root {
  /* Brand */
  --bomb-bordeaux: #6C1E2D;       /* hero / footer background */
  --bomb-bordeaux-deep: #4A1822;
  --bomb-rouge: #DD004B;          /* CTAs / accents / marquee */
  --bomb-rose: #E8537A;
  --bomb-creme: #F6EFE6;
  --bomb-pink-soft: #FCE4E8;      /* light blush — Notre Histoire section bg */
  --bomb-pink-hero: #FFD2E1;      /* hero background */
  --bomb-pink: #FF3B7D;           /* vivid pink — Johanna card, Instagram */
  --bomb-pink-mid: #EF85A9;       /* mid pink — Cadeaux card */
  --bomb-orange: #FF6200;         /* orange — Éponge card */
  --bomb-magenta: #FF35A4;        /* magenta — gift card section */
  --bomb-white: #FFFFFF;

  --bomb-grey-950: #232425;
  --bomb-grey-700: #4D4F51;
  --bomb-grey-300: #C9CACB;
  --bomb-grey-100: #F2F2F2;
  --bomb-black: #1A1A1A;

  /* Typography */
  --bomb-font-display: "Fraunces", "Times New Roman", serif;
  --bomb-font-body: "DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --bomb-font-small: "Roboto", -apple-system, BlinkMacSystemFont, sans-serif;

  /* Layout */
  --bomb-container: 1440px;            /* wider for premium desktop feel */
  --bomb-gutter: 2rem;
  --bomb-header-h: 100px;

  /* Edge padding — aligns full-bleed section text with the .container's edges. */
  --bomb-edge-pad: max(var(--bomb-gutter), calc((100vw - var(--bomb-container)) / 2 + var(--bomb-gutter)));

  /* Radii */
  --bomb-radius-btn: 30px;
}

*, *::before, *::after { box-sizing: border-box; }

html, body { overflow-x: clip; }     /* prevents horizontal scroll without breaking sticky like overflow-hidden would */
body {
  margin: 0;
  width: 100%;
  font-family: var(--bomb-font-body);
  color: var(--bomb-grey-950);
  background: var(--bomb-white);
  line-height: 1.5;
  font-size: 16px;
}

h1, h2, h3, h4 {
  font-family: var(--bomb-font-display);
  font-weight: 700;
  margin-top: 0;
  line-height: 1.15;
  font-variation-settings: "SOFT" 0, "WONK" 1;
}
.bomb-italic, em.bomb-em {
  font-family: var(--bomb-font-display);
  font-style: italic;
  font-weight: 400;
  font-variation-settings: "SOFT" 0, "WONK" 1;
}

/* Any <em> inside a display-font heading: Fraunces italic, lighter weight (matches Figma) */
.bomb-hero__title em,
.bomb-triple__title em,
.bomb-products__title em,
.bomb-gift__title em,
.bomb-insta__title em,
.bomb-page-hero__title em,
.bomb-split__title em,
.bomb-contact-hero__title em,
.bomb-contact-infos__title em,
.bomb-gift-product__title em {
  font-style: italic;
  font-weight: 400;
  font-variation-settings: "SOFT" 0, "WONK" 1;
}

a { color: inherit; text-decoration: none; }
img { max-width: 100%; height: auto; display: block; }

.container {
  max-width: var(--bomb-container);
  margin-inline: auto;
  padding-inline: var(--bomb-gutter);
}

.screen-reader-text {
  position: absolute !important;
  clip: rect(1px, 1px, 1px, 1px);
  width: 1px; height: 1px;
  overflow: hidden;
}

/* =========================
   Buttons
   ========================= */
.btn {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: 10px 24px;
  border-radius: var(--bomb-radius-btn);
  font-family: var(--bomb-font-body);
  font-weight: 600;
  font-size: 1rem;
  line-height: 1.5;
  border: 1px solid transparent;
  cursor: pointer;
  text-align: center;
  transition: background .2s, color .2s, border-color .2s;
}
.btn--primary {
  background: var(--bomb-rouge);
  color: var(--bomb-white);
  padding-right: 6px; /* space for the icon pill */
}
.btn--primary::after {
  content: "→";
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px; height: 32px;
  background: var(--bomb-white);
  color: var(--bomb-rouge);
  border-radius: 999px;
  font-size: 1rem;
}
.btn--primary:hover { background: var(--bomb-bordeaux); }

.btn--secondary {
  background: var(--bomb-white);
  color: var(--bomb-rouge);
  border-color: var(--bomb-rouge);
}
.btn--secondary:hover { background: var(--bomb-rouge); color: var(--bomb-white); }

.btn--ghost-light {
  background: transparent;
  color: var(--bomb-white);
  border-color: var(--bomb-white);
}

/* =========================
   Header / Navbar
   ========================= */
.site-header {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
  background: var(--bomb-white);
  border-bottom: 1px solid var(--bomb-grey-100);
  position: sticky;
  top: 0;
  z-index: 100;
  transition: box-shadow .2s ease;
  box-sizing: border-box;
}
.site-header.is-scrolled { box-shadow: 0 4px 16px rgba(0,0,0,.06); }
.navbar {
  width: 100%;
  height: var(--bomb-header-h);
  margin: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  padding-inline: var(--bomb-edge-pad);
  box-sizing: border-box;
}
/* Hamburger button — hidden on desktop, visible on tablet/mobile */
.navbar__burger {
  display: none;
  background: none;
  border: 0;
  cursor: pointer;
  padding: 8px;
  color: var(--bomb-grey-950);
  align-items: center;
  justify-content: center;
}
.navbar__burger svg { display: block; }

/* Mobile-only menu sections — hidden on desktop */
.navbar__menu-head,
.navbar__menu-foot,
.navbar__menu-close,
.navbar__menu-search { display: none; }
.navbar__backdrop {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(74, 24, 34, .35);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  z-index: 99;
  opacity: 0;
  transition: opacity .35s ease;
}
body.bomb-menu-open .navbar__backdrop { display: block; opacity: 1; }
body.bomb-menu-open { overflow: hidden; }

.navbar__logo { flex: 0 0 auto; margin: 0; padding: 0; display: inline-flex; align-items: center; }
.navbar__logo .custom-logo-link { margin: 0; padding: 0; display: inline-flex; align-items: center; }
.navbar__logo img, .navbar__logo .custom-logo { display: block; max-height: 64px; width: auto; margin: 0; padding: 0; }
.navbar__menu  { flex: 1 1 auto; display: flex; justify-content: flex-end; }
.navbar__actions { flex: 0 0 auto; }
.navbar__logo img { max-height: 64px; width: auto; }
.navbar__menu-list {
  list-style: none; margin: 0; padding: 0;
  display: flex; gap: 2.5rem;
  font-size: .9rem;
  text-transform: uppercase;
  letter-spacing: .08em;
  font-weight: 600;
}
.navbar__menu-list > li > a {
  position: relative;
  display: inline-flex;
  align-items: center;
  padding: .5rem 0;
  color: var(--bomb-grey-950);
  transition: color .2s ease;
}
/* Animated underline via background-image (no absolute pseudo — avoids
   leaking across the whole site-header for mega-menu items that are static) */
.navbar__menu-list > li > a {
  background-image: linear-gradient(var(--bomb-rouge), var(--bomb-rouge));
  background-repeat: no-repeat;
  background-position: 50% calc(100% + 4px);
  background-size: 0% 2px;
  transition: color .2s ease, background-size .25s cubic-bezier(.22,.9,.3,1);
}
.navbar__menu-list > li:hover > a,
.navbar__menu-list > li.current-menu-item > a,
.navbar__menu-list > li.current_page_item > a {
  color: var(--bomb-rouge);
  background-size: 100% 2px;
}
.navbar__menu-list .menu-item-has-children > a::after { content: "›"; margin-left: .35em; }

/* Dropdown sub-menu (desktop) */
.navbar__menu-list li { position: relative; list-style: none; }
.navbar__menu-list .sub-menu {
  position: absolute;
  top: 100%;
  left: -1rem;
  margin: 0;
  padding: .75rem 0;
  list-style: none;
  background: var(--bomb-white);
  border: 1px solid var(--bomb-grey-100);
  box-shadow: 0 8px 24px rgba(0,0,0,.08);
  min-width: 200px;
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition: opacity .18s ease, transform .18s ease, visibility .18s;
  z-index: 110;
  text-transform: none;
  letter-spacing: 0;
}
.navbar__menu-list .menu-item-has-children:hover > .sub-menu,
.navbar__menu-list .menu-item-has-children:focus-within > .sub-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.navbar__menu-list .sub-menu li { width: 100%; }
.navbar__menu-list .sub-menu a {
  display: block;
  padding: .55rem 1.25rem;
  font-size: .9rem;
  font-weight: 500;
  letter-spacing: .02em;
  color: var(--bomb-grey-950);
  white-space: nowrap;
}
.navbar__menu-list .sub-menu a:hover { background: var(--bomb-grey-100); color: var(--bomb-rouge); }

/* ===== Mega-menu (desktop only) ============================================ */
.navbar__menu-list .menu-item-has-mega { position: static; }   /* anchor mega to nav */
.navbar__menu-list .menu-item-has-mega > a::after { content: none; } /* we render our own chevron */
.navbar__menu-chevron { margin-left: .35em; vertical-align: -1px; transition: transform .2s; }
.navbar__menu-list .menu-item-has-mega:hover .navbar__menu-chevron { transform: rotate(180deg); }

.navbar__menu-list .menu-item-has-mega { position: static !important; } /* anchor mega to site-header */
.navbar__mega {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  width: 100vw;
  max-width: 100vw;
  margin: 0;
  background: var(--bomb-pink-hero, #FFD2E1);
  border-top: 1px solid rgba(221, 0, 75, .12);
  box-shadow: 0 18px 40px rgba(221, 0, 75, .14);
  display: grid;
  grid-template-columns: minmax(320px, .9fr) 1.6fr;
  gap: 3.5rem;
  padding: 3rem clamp(2.5rem, 7vw, 6rem);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;             /* critical: don't intercept hover when closed */
  transform: translateY(8px);
  transition: opacity .2s ease, transform .2s ease, visibility .2s;
  z-index: 110;
  text-transform: none;
  letter-spacing: 0;
  overflow: hidden;                 /* clip floating decorations */
}

/* ----- Décorations flottantes dans le mega menu ----- */
.navbar__mega-deco {
  position: absolute;
  pointer-events: none;
  color: var(--bomb-rouge, #DD004B);
  opacity: 0;
  transition: opacity .4s ease;
  z-index: 0;
}
.navbar__mega-deco svg { display: block; width: 100%; height: 100%; }
.navbar__mega-col, .navbar__mega-cards { position: relative; z-index: 1; }
.navbar__menu-list .menu-item-has-mega:hover > .navbar__mega .navbar__mega-deco,
.navbar__menu-list .menu-item-has-mega.is-hover > .navbar__mega .navbar__mega-deco {
  opacity: 1;
}

/* Sparkles — un peu plus visibles, ils tournent + flottent */
.navbar__mega-deco--sparkle { opacity: 0; }
.navbar__menu-list .menu-item-has-mega:hover > .navbar__mega .navbar__mega-deco--sparkle,
.navbar__menu-list .menu-item-has-mega.is-hover > .navbar__mega .navbar__mega-deco--sparkle {
  opacity: .55;
  animation: bombMegaFloat 7s ease-in-out infinite, bombMegaSpin 12s linear infinite;
}
/* Toutes les décos restent dans les zones VIDES de la colonne de gauche :
   bande droite de la colonne (left 27-37 %), au-dessus du titre et sous la
   liste. Aucune n'est placée sur le titre, les liens ou les cartes images. */
.navbar__mega-deco--sparkle-1 { top: 4%;   left: 30%;  width: 20px; height: 20px; animation-delay: 0s, 0s !important; }
.navbar__mega-deco--sparkle-2 { top: 85%;  left: 9%;   width: 14px; height: 14px; animation-delay: 1.5s, .4s !important; opacity: .35; }
.navbar__mega-deco--sparkle-3 { top: 34%;  left: 33%;  width: 26px; height: 26px; animation-delay: 2.8s, .9s !important; }
.navbar__mega-deco--sparkle-4 { top: 62%;  left: 29%;  width: 18px; height: 18px; animation-delay: .8s, 1.4s !important; opacity: .4; }
.navbar__mega-deco--sparkle-5 { top: 91%;  left: 31%;  width: 16px; height: 16px; animation-delay: 3.5s, .6s !important; opacity: .4; }

/* Cœurs — plus doux, juste un float */
.navbar__menu-list .menu-item-has-mega:hover > .navbar__mega .navbar__mega-deco--heart,
.navbar__menu-list .menu-item-has-mega.is-hover > .navbar__mega .navbar__mega-deco--heart {
  opacity: .35;
  animation: bombMegaFloat 8s ease-in-out infinite, bombMegaPulse 3s ease-in-out infinite;
}
.navbar__mega-deco--heart-1 { top: 48%; left: 34%;  width: 16px; height: 16px; animation-delay: 0s, 0s !important; color: #FF35A4; }
.navbar__mega-deco--heart-2 { top: 19%; left: 28%;  width: 12px; height: 12px; animation-delay: 2s, 1s !important; color: #FF1F7A; opacity: .25; }
.navbar__mega-deco--heart-3 { top: 40%; left: 2%;   width: 14px; height: 14px; animation-delay: 1.2s, .5s !important; color: #DD004B; }

/* Petits points */
.navbar__menu-list .menu-item-has-mega:hover > .navbar__mega .navbar__mega-deco--dot,
.navbar__menu-list .menu-item-has-mega.is-hover > .navbar__mega .navbar__mega-deco--dot {
  opacity: .35;
  animation: bombMegaFloat 9s ease-in-out infinite;
}
.navbar__mega-deco--dot-1 { top: 88%; left: 22%;  width: 8px;  height: 8px; animation-delay: .5s !important; color: #FF6BA0; }
.navbar__mega-deco--dot-2 { top: 66%; left: 2.5%; width: 5px;  height: 5px; animation-delay: 3s !important;   color: #DD004B; }
.navbar__mega-deco--dot-3 { top: 5%;  left: 35%;  width: 6px;  height: 6px; animation-delay: 1.8s !important; color: #FF35A4; }

@keyframes bombMegaFloat {
  0%, 100% { transform: translate3d(0, 0, 0); }
  25%      { transform: translate3d(8px, -12px, 0); }
  50%      { transform: translate3d(-6px, -18px, 0); }
  75%      { transform: translate3d(-10px, -6px, 0); }
}
@keyframes bombMegaSpin {
  to { transform: rotate(360deg); }
}
@keyframes bombMegaPulse {
  0%, 100% { transform: scale(1); }
  50%      { transform: scale(1.2); }
}

@media (prefers-reduced-motion: reduce) {
  .navbar__mega-deco { animation: none !important; }
}
.navbar__menu-list .menu-item-has-mega:hover > .navbar__mega,
.navbar__menu-list .menu-item-has-mega.is-hover > .navbar__mega {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}
/* Invisible bridge from the parent item down to the mega panel — eliminates
   the hover-dead-zone when the cursor travels between them. */
.navbar__menu-list .menu-item-has-mega::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  height: 14px;
  pointer-events: none;
}
.navbar__menu-list .menu-item-has-mega:hover::after,
.navbar__menu-list .menu-item-has-mega.is-hover::after { pointer-events: auto; }
.navbar__mega-col { min-width: 0; }
.navbar__mega-heading {
  display: block;
  font-family: var(--bomb-font-display, inherit);
  font-size: 1.35rem;
  font-weight: 700;
  letter-spacing: .01em;
  text-transform: none;
  color: var(--bomb-rouge);
  margin: 0 0 1.25rem 0;
  padding-bottom: .85rem;
  border-bottom: 2px solid rgba(221, 0, 75, .25);
}
.navbar__mega-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: .15rem;
  min-width: 0;
  /* defensive: reset any inherited dropdown positioning */
  position: static !important;
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}
.navbar__mega-list li { position: relative; }
.navbar__mega-list a {
  display: flex;
  align-items: center;
  gap: .6rem;
  padding: .65rem .25rem;
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--bomb-grey-950);
  letter-spacing: .01em;
  text-transform: none;
  white-space: nowrap;
  transition: color .18s ease, transform .18s ease, padding-left .18s ease;
}
.navbar__mega-list a::before {
  content: "";
  width: 18px;
  height: 1px;
  background: var(--bomb-rouge);
  opacity: 0;
  transform: translateX(-4px);
  transition: opacity .2s ease, transform .2s ease, width .2s ease;
}
.navbar__mega-list a:hover {
  color: var(--bomb-rouge);
  padding-left: .35rem;
}
.navbar__mega-list a:hover::before {
  opacity: 1;
  transform: translateX(0);
  width: 22px;
}
.navbar__mega-cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.25rem;
  min-width: 0;
}
.navbar__mega-card {
  position: relative;
  display: block;
  aspect-ratio: 4/3;
  border-radius: 12px;
  overflow: hidden;
  background-color: #E8D9C9;
  background-size: cover;
  background-position: center;
  transition: transform .35s ease, box-shadow .35s ease;
  isolation: isolate;
}
.navbar__mega-card::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0, 0, 0, .55) 0%, rgba(0, 0, 0, 0) 55%);
  z-index: 1;
}
.navbar__mega-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 14px 28px rgba(221, 0, 75, .15);
}
.navbar__mega-card-label {
  position: absolute;
  left: 1.25rem;
  bottom: 1rem;
  z-index: 2;
  color: #fff;
  font-family: var(--bomb-font-display, inherit);
  font-size: clamp(1.4rem, 2vw, 2rem);
  font-weight: 700;
  letter-spacing: .01em;
}

/* ===== Mobile mega-menu — collapsible accordion ============================ */
@media (max-width: 960px) {
  /* Kill the legacy ">" arrow on ALL parent items (we use our own chevron). */
  .navbar__menu-list .menu-item-has-children > a::after,
  .navbar__menu-list .menu-item-has-mega > a::after { content: none !important; }

  /* The mega becomes a static accordion, hidden by default. */
  .navbar__mega {
    position: static;
    display: block;
    width: 100%;
    max-width: none;
    background: transparent;
    border: 0;
    box-shadow: none;
    padding: 0 0 0 1.25rem;
    margin: 0;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;            /* accordion is in-flow on mobile */
    transform: none;
    max-height: 0;
    overflow: hidden;
    transition: max-height .3s ease;
  }
  .navbar__menu-list .menu-item-has-mega.is-open > .navbar__mega {
    max-height: 800px;
    padding-top: .25rem;
    padding-bottom: .75rem;
  }
  /* Chevron rotation indicator */
  .navbar__menu-chevron { transition: transform .25s ease; }
  .navbar__menu-list .menu-item-has-mega.is-open > a .navbar__menu-chevron { transform: rotate(180deg); }
  /* Suppress desktop :hover-open behavior on mobile */
  .navbar__menu-list .menu-item-has-mega:hover > .navbar__mega,
  .navbar__menu-list .menu-item-has-mega:focus-within > .navbar__mega {
    opacity: 1;
    visibility: visible;
    transform: none;
    max-height: 0;
  }
  .navbar__menu-list .menu-item-has-mega.is-open:hover > .navbar__mega,
  .navbar__menu-list .menu-item-has-mega.is-open:focus-within > .navbar__mega {
    max-height: 800px;
  }
  /* Hide the redundant heading + cards on mobile */
  .navbar__mega-cards,
  .navbar__mega-heading { display: none !important; }
  /* Cleaner list styling for the accordion — align with parent items */
  .navbar__mega { padding: 0; }
  .navbar__mega-list { gap: 0; }
  .navbar__mega-list a {
    white-space: normal;
    padding: .65rem 1.5rem !important;                /* match parent item left padding */
    font-size: .95rem;
    font-weight: 500;
    color: var(--bomb-grey-950) !important;
    background: transparent !important;
  }
  /* Kill the slide-in rouge bar AND the active highlight on submenu items */
  .navbar__mega-list a::before,
  .navbar__mega-list a:hover::before,
  .navbar__mega-list .current-menu-item > a::before,
  .navbar__mega-list .current_page_item > a::before { content: none !important; transform: none !important; }
  .navbar__mega-list a:hover,
  .navbar__mega-list .current-menu-item > a,
  .navbar__mega-list .current_page_item > a {
    color: var(--bomb-rouge) !important;
    background: transparent !important;
    padding-left: 0 !important;
  }
}
.navbar__actions { display: flex; gap: .5rem; align-items: center; color: var(--bomb-grey-950); }
.navbar__icon-btn {
  background: none;
  border: 0;
  padding: 8px;
  cursor: pointer;
  color: var(--bomb-grey-950);
  line-height: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: relative;
  border-radius: 999px;
  text-decoration: none;
  transition: color .15s, background .15s;
}
.navbar__icon-btn:hover { color: var(--bomb-rouge); }
.header__cart-count {
  position: absolute; top: -2px; right: -2px;
  min-width: 18px; height: 18px;
  background: var(--bomb-rouge); color: var(--bomb-white);
  font-family: var(--bomb-font-small); font-size: 11px;
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: 999px; padding: 0 5px;
  line-height: 1;
}

/* =========================
   SEARCH OVERLAY — premium slide-down search panel
   ========================= */
.bomb-search {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 110;                                   /* above sticky header */
  background: var(--bomb-pink-hero);             /* light blush */
  padding: 1.5rem var(--bomb-edge-pad) 2.5rem;
  transform: translateY(-100%);
  transition: transform .45s cubic-bezier(.22, .9, .3, 1);
  box-shadow: 0 12px 32px rgba(74, 24, 34, .15);
}
body.bomb-search-open .bomb-search { transform: translateY(0); }

.bomb-search__backdrop {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(74, 24, 34, .35);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  z-index: 109;
  opacity: 0;
  transition: opacity .35s ease;
}
body.bomb-search-open .bomb-search__backdrop { display: block; opacity: 1; }
body.bomb-search-open { overflow: hidden; }

.bomb-search__close {
  position: absolute;
  top: 1rem; right: 1rem;
  width: 40px; height: 40px;
  background: var(--bomb-white);
  border: 1px solid rgba(74, 24, 34, .12);
  border-radius: 999px;
  color: var(--bomb-grey-950);
  cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center;
  transition: background .2s, color .2s, border-color .2s;
}
.bomb-search__close:hover { background: var(--bomb-rouge); color: var(--bomb-white); border-color: var(--bomb-rouge); }

.bomb-search__form {
  max-width: 720px;
  margin: 0 auto;
}
.bomb-search__label {
  display: block;
  text-align: center;
  font-family: var(--bomb-font-display);
  font-weight: 700;
  font-size: clamp(1.5rem, 3vw, 2.5rem);
  color: var(--bomb-rouge);
  margin: 0 0 1rem;
}
.bomb-search__label::after { content: ""; }

.bomb-search__field {
  display: flex;
  align-items: center;
  background: var(--bomb-white);
  border-radius: 999px;
  padding: .5rem .5rem .5rem 1.25rem;
  box-shadow: 0 4px 14px rgba(74, 24, 34, .08);
  transition: box-shadow .2s;
}
.bomb-search__field:focus-within { box-shadow: 0 6px 20px rgba(221, 0, 75, .25); }

.bomb-search__icon {
  flex-shrink: 0;
  color: var(--bomb-rouge);
}
.bomb-search__input {
  flex: 1 1 auto;
  min-width: 0;
  border: 0;
  background: transparent;
  padding: .75rem .75rem;
  font-family: var(--bomb-font-body);
  font-size: 1rem;
  color: var(--bomb-grey-950);
  outline: 0;
}
.bomb-search__input::placeholder { color: #84898C; font-weight: 400; }

.bomb-search__submit {
  background: var(--bomb-rouge);
  color: var(--bomb-white);
  border: 0;
  border-radius: 999px;
  padding: .65rem 1.5rem;
  font-family: var(--bomb-font-body);
  font-weight: 600;
  font-size: .95rem;
  cursor: pointer;
  transition: background .2s;
  flex-shrink: 0;
}
.bomb-search__submit:hover { background: var(--bomb-bordeaux); }

.bomb-search__hints {
  margin-top: 1.25rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  flex-wrap: wrap;
}
.bomb-search__hints-label {
  font-family: var(--bomb-font-body);
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
  font-size: .8rem;
  color: var(--bomb-grey-700);
  margin-right: .25rem;
}
.bomb-search__chip {
  display: inline-flex;
  align-items: center;
  background: var(--bomb-white);
  color: var(--bomb-grey-950);
  border: 1px solid rgba(74, 24, 34, .12);
  border-radius: 999px;
  padding: .35rem .9rem;
  font-size: .85rem;
  font-weight: 500;
  text-decoration: none;
  transition: background .2s, color .2s, border-color .2s;
}
.bomb-search__chip:hover { background: var(--bomb-rouge); color: var(--bomb-white); border-color: var(--bomb-rouge); }

/* Live search results */
.bomb-search__results {
  max-width: 760px;
  margin: 1.25rem auto 0;
  background: #fff;
  border: 1px solid #F0D9E2;
  border-radius: 14px;
  box-shadow: 0 12px 32px rgba(221, 0, 75, .12);
  overflow: hidden;
  max-height: 60vh;
  overflow-y: auto;
}
.bomb-search__list { list-style: none; margin: 0; padding: .5rem; }
.bomb-search__result {
  display: flex; align-items: center; gap: .85rem;
  padding: .6rem .75rem;
  border-radius: 10px;
  text-decoration: none;
  color: var(--bomb-noir, #1A1A1A);
  transition: background .15s ease;
}
.bomb-search__result:hover { background: #FCE9F1; }
.bomb-search__result-img {
  flex: 0 0 52px; width: 52px; height: 52px;
  border-radius: 8px; overflow: hidden;
  background: #F6EFE6;
  display: flex; align-items: center; justify-content: center;
}
.bomb-search__result-img img { width: 100%; height: 100%; object-fit: cover; }
.bomb-search__result-body { display: flex; flex-direction: column; gap: .15rem; min-width: 0; }
.bomb-search__result-title {
  font-weight: 600; font-size: .95rem;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.bomb-search__result-price { color: var(--bomb-rouge); font-size: .85rem; font-weight: 500; }
.bomb-search__empty {
  margin: 0; padding: 1.25rem; text-align: center;
  color: #84898C; font-size: .95rem;
}

@media (max-width: 720px) {
  .bomb-search { padding: 1rem 1rem 2rem; }
  .bomb-search__submit { padding: .65rem 1rem; font-size: .85rem; }
  .bomb-search__close { top: .75rem; right: .75rem; width: 36px; height: 36px; }
  .bomb-search__label { font-size: 1.25rem; margin-bottom: 1rem; padding-top: 1.5rem; }
}

/* =========================
   HOME — Hero
   ========================= */
.bomb-hero {
  display: grid;
  grid-template-columns: 1.62fr 1fr;
  background: var(--bomb-pink-hero, #FFD2E1);   /* light blush — updated maquette */
  color: var(--bomb-grey-950);
  min-height: 630px;
  min-width: 0;
  position: relative;
  overflow: hidden;
}

/* Decorative floating sparkles in the hero — pure CSS, no JS */
.bomb-hero__deco {
  position: absolute;
  pointer-events: none;
  z-index: 1;
  color: var(--bomb-rouge);
  opacity: .85;
  transform-origin: center;
}
.bomb-hero__deco svg { display: block; width: 100%; height: 100%; }

/* Each sparkle gets its OWN keyframe so they move differently */
.bomb-hero__deco--1 {
  top: 10%; left: 5%; width: 36px; height: 36px;
  animation: bomb-deco-A 5s ease-in-out infinite;
}
.bomb-hero__deco--2 {
  top: 35%; left: 26%; width: 24px; height: 24px;
  animation: bomb-deco-B 4s ease-in-out infinite;
  animation-delay: .8s;
  opacity: .75;
}
.bomb-hero__deco--3 {
  top: 65%; left: 40%; width: 30px; height: 30px;
  animation: bomb-deco-C 6s ease-in-out infinite;
  animation-delay: 1.5s;
}
.bomb-hero__deco--4 {
  top: 18%; left: 58%; width: 22px; height: 22px;
  animation: bomb-deco-A 5.5s ease-in-out infinite;
  animation-delay: 2s;
  opacity: .7;
}
.bomb-hero__deco--5 {
  top: 80%; left: 12%; width: 28px; height: 28px;
  animation: bomb-deco-B 5s ease-in-out infinite;
  animation-delay: 2.5s;
}

/* A — wide vertical swing + full spin */
@keyframes bomb-deco-A {
  0%, 100% { transform: translate(0, 0) rotate(0deg) scale(1); opacity: .85; }
  25%      { transform: translate(8px, -28px) rotate(120deg) scale(1.3); opacity: 1; }
  50%      { transform: translate(-6px, -14px) rotate(240deg) scale(.75); opacity: .55; }
  75%      { transform: translate(10px, -32px) rotate(330deg) scale(1.2); opacity: 1; }
}

/* B — figure-eight drift */
@keyframes bomb-deco-B {
  0%, 100% { transform: translate(0, 0) rotate(0deg) scale(1); opacity: .85; }
  25%      { transform: translate(20px, -14px) rotate(180deg) scale(1.15); opacity: 1; }
  50%      { transform: translate(0, -24px) rotate(360deg) scale(.7); opacity: .5; }
  75%      { transform: translate(-22px, -10px) rotate(540deg) scale(1.25); opacity: 1; }
}

/* C — diagonal sway */
@keyframes bomb-deco-C {
  0%, 100% { transform: translate(0, 0) rotate(0deg) scale(1); opacity: .9; }
  33%      { transform: translate(-18px, -22px) rotate(150deg) scale(1.35); opacity: 1; }
  66%      { transform: translate(16px, -8px) rotate(300deg) scale(.8); opacity: .6; }
}

@media (prefers-reduced-motion: reduce) {
  .bomb-hero__deco { animation: none; }
}
.bomb-hero__content {
  padding: 70px 80px 70px var(--bomb-edge-pad);
  display: flex; flex-direction: column; justify-content: flex-end; gap: 2.5rem;
  min-width: 0;                                 /* allow grid item to shrink under image natural width */
  max-width: 100%;
  overflow: hidden;
}
.bomb-hero__sparkle { width: 54px; height: 54px; color: var(--bomb-rouge); }
/* Graphic title (designed lettering image) — natural ratio, no clipping. */
.bomb-hero__title-wrap {
  margin: 0;
  padding: 0;
  line-height: 0;
  display: block;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  height: auto;
  overflow: visible;
}
.bomb-hero__title-img {
  display: block;
  width: 100%;
  height: auto;
  max-width: 100%;
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}
/* Same safeguard for ALL flex children of hero content (CTAs, etc.) */
.bomb-hero__content > * { min-width: 0; max-width: 100%; }
/* Text-title fallback */
.bomb-hero__title {
  font-size: clamp(2.25rem, 4.6vw, 4.6rem);
  line-height: 1.15;
  margin: 0;
  max-width: 18ch;
}
.bomb-hero__actions { display: flex; gap: 1rem; flex-wrap: wrap; }
.bomb-hero__image {
  background-size: cover;
  background-position: center;
  min-height: 320px;
}

/* =========================
   HOME — Marquee strip
   ========================= */
.bomb-marquee--orange { background: #FF4D00 !important; }
.bomb-marquee {
  background: #FF0056;
  color: var(--bomb-white);
  overflow: hidden;
  padding-block: 1.75rem;
  font-family: var(--bomb-font-display);
  font-style: italic;
  font-weight: 700;
  font-size: clamp(1.5rem, 3.5vw, 3rem);
  white-space: nowrap;
}
.bomb-marquee__track {
  display: inline-flex;
  animation: bomb-marquee-scroll 22s linear infinite;
  will-change: transform;
}
.bomb-marquee__track span {
  margin-right: 3rem;            /* trailing space — kept uniform across items for seamless loop */
}
/* Sparkle separator — SVG mask so it inherits currentColor, matches the
   Figma 4-pointed star icon (same shape as the hero __deco sparkles). */
.bomb-marquee__track span::after {
  content: "";
  display: inline-block;
  width: 1em;
  height: 1em;
  margin-left: 3rem;
  background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 0c.5 8 4 11.5 12 12-8 .5-11.5 4-12 12-.5-8-4-11.5-12-12 8-.5 11.5-4 12-12Z'/></svg>") center / contain no-repeat;
          mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 0c.5 8 4 11.5 12 12-8 .5-11.5 4-12 12-.5-8-4-11.5-12-12 8-.5 11.5-4 12-12Z'/></svg>") center / contain no-repeat;
  vertical-align: -.05em;
  opacity: .95;
}
/* Template duplicates words 4×, so -25% = exactly one set → seamless loop
   that always has enough content to fill the viewport on both sides. */
@keyframes bomb-marquee-scroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-25%); }
}

/* =========================
   HOME — Products carousel
   ========================= */
.bomb-products {
  padding-block: 5rem;
}
.bomb-products__head {
  display: flex; justify-content: space-between; align-items: flex-start;
  margin-bottom: 2.5rem; gap: 2rem; flex-wrap: wrap;
}
.bomb-products__title {
  font-size: clamp(2rem, 3.5vw, 3rem);
  margin: 0;
  max-width: 60%;
  color: var(--bomb-rouge);          /* pink title — matches maquette */
}
.bomb-products__head-right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 1.25rem;
}
.bomb-products__nav {
  display: flex;
  gap: .85rem;
  justify-content: flex-end;
  margin-top: 1.5rem;
}
.bomb-products__nav-btn {
  width: 48px; height: 48px;
  border-radius: 999px;
  border: 1.5px solid var(--bomb-rouge);
  background: var(--bomb-white);
  color: var(--bomb-rouge);
  display: inline-flex; align-items: center; justify-content: center;
  cursor: pointer;
  transition: background .25s cubic-bezier(.22, .9, .3, 1),
              color .25s cubic-bezier(.22, .9, .3, 1),
              transform .25s cubic-bezier(.22, .9, .3, 1),
              box-shadow .25s cubic-bezier(.22, .9, .3, 1);
}
.bomb-products__nav-btn:hover {
  background: var(--bomb-rouge);
  color: var(--bomb-white);
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(221, 0, 75, .25);
}
.bomb-products__nav-btn:active { transform: translateY(0); box-shadow: 0 4px 10px rgba(221, 0, 75, .2); }
.bomb-products__nav-btn:focus-visible {
  outline: 0;
  box-shadow: 0 0 0 3px rgba(221, 0, 75, .25);
}
/* Tiny micro-interaction: arrow shifts slightly on hover */
.bomb-products__nav-btn svg { transition: transform .25s cubic-bezier(.22, .9, .3, 1); }
.bomb-products__nav-btn[data-bomb-carousel-prev]:hover svg { transform: translateX(-2px); }
.bomb-products__nav-btn[data-bomb-carousel-next]:hover svg { transform: translateX(2px); }

@media (max-width: 720px) {
  .bomb-products__nav { justify-content: center; }  /* easier thumb reach on mobile */
}

/* Carousel track (home product carousels) */
.bomb-products__track {
  display: flex;
  gap: 1.5rem;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
  padding-bottom: .5rem;
  align-items: stretch;          /* éviter qu'un premier item plus court raccourcisse les autres */
  margin: 0;
  list-style: none;
  padding-left: 0;
}
.bomb-products__track::-webkit-scrollbar { display: none; }
.bomb-products__track .bomb-product-card {
  flex: 0 0 calc((100% - 3 * 1.5rem) / 4);
  min-width: 0;                  /* permet à flex de respecter calc() sans déborder */
  scroll-snap-align: start;
  margin: 0 !important;
  padding: 0 !important;
  clear: none !important;
}
.bomb-products__track .bomb-product-card.first,
.bomb-products__track .bomb-product-card:first-child {
  margin-left: 0 !important;
  clear: none !important;
}
/* Make sure WC's thumbnail wrapper fills the card width */
.bomb-product-card > a,
.bomb-product-card .attachment-bomb-product-card { display: block; width: 100%; }

/* Static grid (used on the gift-card "Vous aimerez aussi" section) */
.bomb-products__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
}
.bomb-product-card img {
  aspect-ratio: 3/4;
  object-fit: cover;
  object-position: center;
  width: 100%;
  height: auto;
  display: block;
}

/* Category / shop archive header — big pink centered title */
.woocommerce-products-header,
.woocommerce .woocommerce-products-header {
  text-align: center !important;
  padding-block: 3rem 2rem;
  margin-bottom: 1.5rem;
}
.woocommerce-products-header__title,
.woocommerce .page-title,
.woocommerce-page .page-title {
  font-family: var(--bomb-font-display) !important;
  font-weight: 700 !important;
  font-size: clamp(2.5rem, 5vw, 4.5rem) !important;
  color: var(--bomb-rouge) !important;
  text-align: center !important;
  margin: 0 auto !important;
  line-height: 1.1 !important;
}
.term-description,
.woocommerce-products-header .term-description {
  max-width: 60ch;
  margin: 1rem auto 0;
  text-align: center;
  color: var(--bomb-grey-700);
  font-size: 1rem;
  line-height: 1.5;
}

/* Shop top bar — result count + sort dropdown */
.woocommerce-products-header { margin-bottom: 1.5rem; }
.woocommerce .woocommerce-result-count {
  margin: 0 !important;
  float: none !important;
  color: var(--bomb-grey-700);
  font-size: .9rem;
  letter-spacing: .02em;
}
.woocommerce .woocommerce-ordering {
  margin: 0 0 1.5rem 0 !important;
  float: none !important;
  display: inline-block;
}
.woocommerce .woocommerce-ordering select,
.woocommerce .woocommerce-ordering .orderby {
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  appearance: none !important;
  background: var(--bomb-white) !important;
  border: 1px solid #DBDBDB !important;
  border-radius: 999px !important;
  padding: 10px 44px 10px 20px !important;
  font-family: var(--bomb-font-body) !important;
  font-size: .95rem !important;
  font-weight: 600 !important;
  color: var(--bomb-grey-950) !important;
  cursor: pointer !important;
  min-width: 220px !important;
  /* Custom chevron icon */
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23232425' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>") !important;
  background-repeat: no-repeat !important;
  background-position: right 18px center !important;
  background-size: 14px 14px !important;
  transition: border-color .2s, box-shadow .2s, color .2s;
}
.woocommerce .woocommerce-ordering select:hover,
.woocommerce .woocommerce-ordering .orderby:hover {
  border-color: var(--bomb-rouge) !important;
  color: var(--bomb-rouge) !important;
}
.woocommerce .woocommerce-ordering select:focus,
.woocommerce .woocommerce-ordering .orderby:focus {
  outline: 0 !important;
  border-color: var(--bomb-rouge) !important;
  box-shadow: 0 0 0 3px rgba(221, 0, 75, .12) !important;
  color: var(--bomb-rouge) !important;
}
/* When focused, swap chevron to rouge */
.woocommerce .woocommerce-ordering select:hover,
.woocommerce .woocommerce-ordering select:focus {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23DD004B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>") !important;
}

/* ===== Premium filter bar ================================================== */
.bomb-shop-toolbar {
  /* container of the form + active filters */
}
.bomb-shop-filters {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .6rem;
  width: 100%;
  margin: 0 0 1rem 0;
  padding: .85rem 1.1rem;
  background: var(--bomb-white, #fff);
  border: 1px solid var(--bomb-grey-100, #EEE);
  border-radius: 999px;
  box-shadow: 0 4px 14px rgba(0, 0, 0, .04);
}
.bomb-shop-toolbar__right {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  gap: 1rem;
}
/* Ordering pill (inside the filters group). On desktop it sits inline with
   the filter triggers; on mobile it shows inside the expandable group. */
.bomb-shop-filters__ordering { display: inline-flex; align-items: center; }
.bomb-shop-filters__ordering .woocommerce-ordering { margin: 0 !important; }
.bomb-shop-filters__ordering .woocommerce-ordering select,
.bomb-shop-filters__ordering .orderby {
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  appearance: none !important;
  margin: 0 !important;
  min-width: 240px !important;
  background: var(--bomb-white) !important;
  border: 1.5px solid #DBDBDB !important;
  border-radius: 999px !important;
  padding: .55rem 2.75rem .55rem 1.1rem !important;
  font-family: var(--bomb-font-body) !important;
  font-size: .9rem !important;
  font-weight: 600 !important;
  color: var(--bomb-grey-950) !important;
  cursor: pointer !important;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23232425' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>") !important;
  background-repeat: no-repeat !important;
  background-position: right 16px center !important;
  background-size: 13px 13px !important;
  transition: border-color .2s, color .2s, box-shadow .2s;
}
.bomb-shop-filters__ordering .woocommerce-ordering select:hover,
.bomb-shop-filters__ordering .orderby:hover,
.bomb-shop-filters__ordering .woocommerce-ordering select:focus,
.bomb-shop-filters__ordering .orderby:focus {
  outline: 0 !important;
  border-color: var(--bomb-rouge) !important;
  color: var(--bomb-rouge) !important;
  box-shadow: 0 0 0 3px rgba(221, 0, 75, .12) !important;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23DD004B' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>") !important;
}
.bomb-shop-toolbar__right .woocommerce-result-count {
  margin: 0 !important;
  font-size: .85rem !important;
  color: var(--bomb-grey-700) !important;
}
.bomb-shop-toolbar__right .woocommerce-ordering { margin: 0 !important; }
.bomb-shop-toolbar__right .woocommerce-ordering select,
.bomb-shop-toolbar__right .orderby {
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  appearance: none !important;
  background: var(--bomb-white) !important;
  border: 1px solid #DBDBDB !important;
  border-radius: 999px !important;
  padding: .5rem 2.5rem .5rem 1rem !important;
  margin: 0 !important;
  font-family: var(--bomb-font-body) !important;
  font-size: .9rem !important;
  font-weight: 600 !important;
  color: var(--bomb-grey-950) !important;
  cursor: pointer !important;
  min-width: 200px !important;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23232425' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>") !important;
  background-repeat: no-repeat !important;
  background-position: right 14px center !important;
  background-size: 13px 13px !important;
  transition: border-color .2s, color .2s, box-shadow .2s;
}
.bomb-shop-toolbar__right .woocommerce-ordering select:hover,
.bomb-shop-toolbar__right .woocommerce-ordering select:focus {
  outline: 0 !important;
  border-color: var(--bomb-rouge) !important;
  color: var(--bomb-rouge) !important;
  box-shadow: 0 0 0 3px rgba(221, 0, 75, .12) !important;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23DD004B' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>") !important;
}

/* Filter dropdown trigger (details/summary) */
.bomb-filter { position: relative; }
.bomb-filter > summary {
  list-style: none;
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  padding: .5rem 1rem;
  background: transparent;
  border: 1px solid #DBDBDB;
  border-radius: 999px;
  font-size: .9rem;
  font-weight: 600;
  color: var(--bomb-grey-950);
  cursor: pointer;
  user-select: none;
  transition: border-color .2s, color .2s, background .2s, box-shadow .2s;
}
.bomb-filter > summary::-webkit-details-marker { display: none; }
.bomb-filter > summary:hover,
.bomb-filter[open] > summary {
  border-color: var(--bomb-rouge);
  color: var(--bomb-rouge);
  box-shadow: 0 0 0 3px rgba(221, 0, 75, .08);
}
.bomb-filter[open] > summary svg { transform: rotate(180deg); }
.bomb-filter > summary svg { transition: transform .25s ease; }

.bomb-filter__panel {
  position: absolute;
  top: calc(100% + .5rem);
  left: 0;
  z-index: 50;
  background: var(--bomb-white);
  border: 1px solid var(--bomb-grey-100);
  border-radius: 14px;
  box-shadow: 0 18px 36px rgba(0, 0, 0, .12);
  padding: 1rem;
  min-width: 240px;
  animation: bomb-filter-pop .18s ease-out;
}
@keyframes bomb-filter-pop {
  from { opacity: 0; transform: translateY(-6px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* Size chips inside panel */
.bomb-filter__chips {
  display: flex; flex-wrap: wrap; gap: .4rem;
  max-width: 260px;
}
.bomb-filter__chip {
  position: relative; cursor: pointer;
}
.bomb-filter__chip input { position: absolute; opacity: 0; pointer-events: none; }
.bomb-filter__chip span {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 44px; height: 36px; padding: 0 .75rem;
  border: 1.5px solid #DBDBDB; border-radius: 999px;
  font-size: .85rem; font-weight: 600; color: var(--bomb-grey-950);
  transition: border-color .15s, background .15s, color .15s, transform .15s;
}
.bomb-filter__chip:hover span { border-color: var(--bomb-rouge); color: var(--bomb-rouge); }
.bomb-filter__chip.is-active span,
.bomb-filter__chip input:checked + span {
  background: var(--bomb-rouge); border-color: var(--bomb-rouge); color: var(--bomb-white);
  transform: scale(1.04);
}

/* Color swatches */
.bomb-filter__swatches {
  display: grid; grid-template-columns: repeat(2, 1fr); gap: .5rem .85rem;
  max-width: 280px;
}
.bomb-filter__swatch {
  position: relative; display: inline-flex; align-items: center; gap: .55rem; cursor: pointer;
  padding: .3rem .3rem .3rem .25rem; border-radius: 999px; transition: background .15s;
}
.bomb-filter__swatch:hover { background: #FAF3F6; }
.bomb-filter__swatch input { position: absolute; opacity: 0; pointer-events: none; }
.bomb-filter__swatch > span {
  width: 24px; height: 24px; border-radius: 50%;
  border: 1.5px solid #E5E5E5;
  box-shadow: inset 0 0 0 2px var(--bomb-white);
  transition: box-shadow .2s, transform .2s;
  flex-shrink: 0;
}
.bomb-filter__swatch em {
  font-style: normal; font-size: .85rem; font-weight: 500; color: var(--bomb-grey-950);
}
.bomb-filter__swatch.is-active > span,
.bomb-filter__swatch input:checked + span {
  box-shadow: inset 0 0 0 2px var(--bomb-white), 0 0 0 2px var(--bomb-rouge);
  transform: scale(1.08);
}

/* Price */
.bomb-filter__panel--price { min-width: 280px; }
.bomb-filter__price-row {
  display: flex; align-items: end; gap: .5rem;
}
.bomb-filter__price-row label {
  display: flex; flex-direction: column; gap: .25rem; flex: 1;
  font-size: .75rem; color: var(--bomb-grey-700); font-weight: 600;
  position: relative;
}
.bomb-filter__price-row input[type="number"] {
  width: 100%;
  padding: .55rem .65rem .55rem .65rem;
  border: 1.5px solid #DBDBDB; border-radius: 10px;
  font-size: .95rem; font-weight: 600; color: var(--bomb-grey-950);
  background: var(--bomb-white);
  transition: border-color .15s, box-shadow .15s;
  -moz-appearance: textfield;
}
.bomb-filter__price-row input[type="number"]::-webkit-outer-spin-button,
.bomb-filter__price-row input[type="number"]::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.bomb-filter__price-row input[type="number"]:focus {
  outline: 0; border-color: var(--bomb-rouge); box-shadow: 0 0 0 3px rgba(221, 0, 75, .12);
}
.bomb-filter__price-row label em {
  position: absolute; right: .65rem; bottom: .55rem;
  font-style: normal; color: var(--bomb-grey-700); font-weight: 600; font-size: .85rem; pointer-events: none;
}
.bomb-filter__price-sep { padding-bottom: .65rem; color: var(--bomb-grey-700); }

/* Apply button */
.bomb-filter__apply {
  background: var(--bomb-rouge); color: var(--bomb-white);
  border: 0; padding: .55rem 1.25rem; border-radius: 999px;
  font-family: var(--bomb-font-body); font-size: .9rem; font-weight: 700; letter-spacing: .02em;
  cursor: pointer; transition: background .2s, transform .15s, box-shadow .2s;
}
.bomb-filter__apply:hover {
  background: var(--bomb-bordeaux, #4A1822);
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgba(221, 0, 75, .25);
}

/* Active filters chip strip */
.bomb-active-filters {
  display: flex; flex-wrap: wrap; align-items: center; gap: .5rem;
  margin: 0 0 1.5rem 0;
}
.bomb-active-filters__label {
  font-size: .8rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
  color: var(--bomb-grey-700);
}
.bomb-active-filters__chip {
  display: inline-flex; align-items: center; gap: .35rem;
  padding: .3rem .55rem .3rem .75rem;
  background: rgba(221, 0, 75, .08); color: var(--bomb-rouge);
  border-radius: 999px; font-size: .85rem; font-weight: 600;
  text-decoration: none; transition: background .15s, color .15s;
}
.bomb-active-filters__chip:hover { background: var(--bomb-rouge); color: var(--bomb-white); }
.bomb-active-filters__chip svg { opacity: .8; }
.bomb-active-filters__clear {
  font-size: .85rem; font-weight: 600; color: var(--bomb-grey-700);
  text-decoration: underline; text-underline-offset: 3px;
}
.bomb-active-filters__clear:hover { color: var(--bomb-rouge); }

/* Mobile-only "Filtres" toggle button — hidden by default on desktop */
.bomb-shop-filters__toggle { display: none; }
.bomb-shop-filters__group { display: contents; }   /* desktop: pass through to flex */

/* Responsive — switch to mobile collapsed layout below 960px to match the
   rest of the design system breakpoints. */
@media (max-width: 960px) {
  .bomb-shop-filters {
    border-radius: 20px;
    padding: 1rem;
    gap: .5rem;
    flex-direction: column;
    align-items: stretch;
  }
  /* Toggle button on top */
  .bomb-shop-filters__toggle {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    width: 100%;
    padding: .75rem 1rem;
    background: var(--bomb-white);
    border: 1.5px solid #DBDBDB;
    border-radius: 999px;
    font-family: var(--bomb-font-body);
    font-size: .95rem;
    font-weight: 700;
    color: var(--bomb-grey-950);
    cursor: pointer;
    transition: border-color .2s, color .2s, box-shadow .2s;
  }
  .bomb-shop-filters__toggle:hover,
  .bomb-shop-filters__toggle[aria-expanded="true"] {
    border-color: var(--bomb-rouge);
    color: var(--bomb-rouge);
  }
  .bomb-shop-filters__toggle > span:first-of-type { flex: 1; text-align: left; }
  .bomb-shop-filters__count {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 22px; height: 22px;
    padding: 0 .4rem;
    background: var(--bomb-rouge);
    color: var(--bomb-white);
    border-radius: 999px;
    font-size: .75rem;
    font-weight: 700;
  }
  .bomb-shop-filters__chevron { transition: transform .25s ease; }
  .bomb-shop-filters__toggle[aria-expanded="true"] .bomb-shop-filters__chevron { transform: rotate(180deg); }

  /* Hidden group on mobile — expanded by JS */
  .bomb-shop-filters__group {
    display: none;
    width: 100%;
    flex-direction: column;
    gap: .5rem;
    padding-top: .25rem;
  }
  .bomb-shop-filters__group.is-open { display: flex; }
  /* Ordering becomes full-width pill in the expanded group on mobile */
  .bomb-shop-filters__ordering,
  .bomb-shop-filters__ordering .woocommerce-ordering { width: 100%; }
  .bomb-shop-filters__ordering .woocommerce-ordering select,
  .bomb-shop-filters__ordering .orderby {
    width: 100% !important;
    min-width: 0 !important;
  }
  /* Filter triggers on one row that scrolls horizontally */
  .bomb-shop-filters > .bomb-filter,
  .bomb-shop-filters > .bomb-filter__apply { flex: 0 0 auto; }
  .bomb-shop-filters .bomb-filter > summary {
    width: 100%;
    justify-content: space-between;
    padding: .65rem 1rem;
  }
  .bomb-filter__apply { width: 100%; padding: .75rem 1rem; }

  /* Filter panels become full-width drawers below their trigger */
  .bomb-filter__panel {
    left: 0 !important;
    right: 0 !important;
    width: 100%;
    min-width: 0 !important;
    border-radius: 14px;
  }
  .bomb-filter__chips,
  .bomb-filter__swatches { max-width: none; }
  .bomb-filter__swatches { grid-template-columns: repeat(3, 1fr); }

  /* Result count + sort: own row, stacked, full width */
  .bomb-shop-toolbar__right {
    width: 100%;
    margin: .25rem 0 0;
    padding-top: .75rem;
    border-top: 1px solid var(--bomb-grey-100, #EEE);
    flex-direction: column;
    align-items: stretch;
    gap: .5rem;
  }
  .bomb-shop-toolbar__right .woocommerce-result-count {
    text-align: center;
    font-size: .8rem !important;
  }
  .bomb-shop-toolbar__right .woocommerce-ordering select,
  .bomb-shop-toolbar__right .orderby {
    width: 100% !important;
    min-width: 0 !important;
  }

  /* Active-filter chips: wrap nicely below the bar */
  .bomb-active-filters { gap: .35rem; }
  .bomb-active-filters__label { width: 100%; }
}

/* Shop toolbar — result count (left) + ordering (right) on the same row,
   ALWAYS sitting above the products grid (defensive against float/inline-block
   layout quirks that can push the grid sideways). */
.bomb-shop-toolbar {
  display: block !important;
  width: 100%;
  margin: 0 0 1.75rem 0;
  clear: both;
}
.bomb-shop-toolbar .woocommerce-result-count,
.bomb-shop-toolbar .woocommerce-ordering {
  float: none !important;
  margin: 0 !important;
  display: inline-flex !important;
  align-items: center;
}
/* ===== Page Livraison et retours (Info pages) ============================== */
.bomb-info-hero {
  background: linear-gradient(160deg, var(--bomb-pink-hero, #FFD2E1) 0%, var(--bomb-pink-soft, #FCE4E8) 100%);
  padding: clamp(3rem, 8vw, 6rem) 0 clamp(2.5rem, 6vw, 4rem);
  text-align: center;
}
.bomb-info-hero__overline {
  display: inline-block;
  font-size: .8rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase;
  color: var(--bomb-rouge);
  margin-bottom: 1rem;
  padding: .35rem .8rem;
  background: var(--bomb-white);
  border-radius: 999px;
  box-shadow: 0 4px 12px rgba(221, 0, 75, .12);
}
.bomb-info-hero__title {
  font-family: var(--bomb-font-display, inherit);
  font-weight: 700;
  font-size: clamp(2.25rem, 5vw, 4rem);
  line-height: 1.05;
  color: var(--bomb-bordeaux, #4A1822);
  margin: 0 0 1rem;
}
.bomb-info-hero__intro {
  max-width: 620px;
  margin: 0 auto;
  color: var(--bomb-grey-700, #555);
  font-size: 1.05rem;
  line-height: 1.55;
}

.bomb-info-blocks { padding: clamp(2.5rem, 6vw, 5rem) 0; }
.bomb-info-blocks .container {
  max-width: 880px;
  display: grid;
  gap: 1.5rem;
}
.bomb-info-block {
  display: grid;
  grid-template-columns: 64px 1fr;
  gap: 1.5rem;
  align-items: start;
  padding: 1.75rem 1.75rem 1.5rem;
  background: var(--bomb-white);
  border: 1px solid var(--bomb-grey-100, #EEE);
  border-radius: 18px;
  box-shadow: 0 8px 22px rgba(0, 0, 0, .04);
  transition: transform .25s ease, box-shadow .25s ease;
}
.bomb-info-block:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 32px rgba(221, 0, 75, .1);
}
.bomb-info-block__icon {
  width: 56px; height: 56px;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--bomb-pink-soft, #FCE4E8);
  color: var(--bomb-rouge);
  border-radius: 50%;
}
.bomb-info-block__title {
  font-family: var(--bomb-font-display, inherit);
  font-weight: 700;
  font-size: 1.5rem;
  color: var(--bomb-bordeaux, #4A1822);
  margin: .2rem 0 .6rem;
}
.bomb-info-block__text {
  color: var(--bomb-grey-700, #555);
  font-size: 1rem;
  line-height: 1.6;
}
.bomb-info-block__text p:last-child { margin-bottom: 0; }
.bomb-info-block__text a {
  color: var(--bomb-rouge);
  text-decoration: underline;
  text-underline-offset: 3px;
  font-weight: 600;
}
.bomb-info-block__text a:hover { color: var(--bomb-bordeaux, #4A1822); }
.bomb-info-block__text strong { color: var(--bomb-bordeaux, #4A1822); }

.bomb-info-cta { padding: 0 0 clamp(3rem, 6vw, 5rem); }
.bomb-info-cta__card {
  max-width: 720px;
  margin: 0 auto;
  text-align: center;
  padding: clamp(2rem, 5vw, 3rem);
  background: var(--bomb-rouge);
  color: var(--bomb-white);
  border-radius: 22px;
  box-shadow: 0 20px 40px rgba(221, 0, 75, .2);
}
.bomb-info-cta__title {
  font-family: var(--bomb-font-display, inherit);
  font-weight: 700;
  font-size: clamp(1.5rem, 3vw, 2rem);
  color: var(--bomb-white);
  margin: 0 0 .75rem;
}
.bomb-info-cta__text {
  color: rgba(255, 255, 255, .9);
  font-size: 1rem;
  margin: 0 0 1.5rem;
}
.bomb-info-cta__btn {
  display: inline-flex; align-items: center; gap: .5rem;
  padding: .9rem 2rem;
  background: var(--bomb-white) !important;
  color: var(--bomb-rouge) !important;
  border: 2px solid var(--bomb-white) !important;
  border-radius: 999px !important;
  font-weight: 700 !important;
  font-size: .95rem !important;
  transition: background .2s, color .2s, transform .2s;
}
.bomb-info-cta__btn:hover {
  background: transparent !important;
  color: var(--bomb-white) !important;
  transform: translateY(-2px);
}

@media (max-width: 600px) {
  .bomb-info-block {
    grid-template-columns: 1fr;
    gap: 1rem;
    padding: 1.5rem 1.25rem 1.25rem;
  }
}

/* ===== Page-title sparkles — pink animated stars around archive titles ==== */
.woocommerce-products-header__title,
.woocommerce .page-title,
.woocommerce-page .page-title {
  position: relative;
  display: inline-flex !important;
  align-items: center;
  gap: 1rem;
}
.bomb-page-sparkles {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  vertical-align: middle;
}
.bomb-page-sparkle {
  width: 22px; height: 22px;
  fill: var(--bomb-pink, #FF1F7A);
  filter: drop-shadow(0 2px 6px rgba(255, 31, 122, .35));
  transform-origin: center;
  animation: bomb-page-sparkle-twinkle 3.2s ease-in-out infinite;
}
.bomb-page-sparkle--a { width: 28px; height: 28px; animation-delay: 0s;    }
.bomb-page-sparkle--b { width: 18px; height: 18px; animation-delay: .6s; }
.bomb-page-sparkle--c { width: 14px; height: 14px; animation-delay: 1.2s; }
@keyframes bomb-page-sparkle-twinkle {
  0%, 100% { transform: translate(0, 0)        rotate(0deg)   scale(1);    opacity: 1;   }
  25%      { transform: translate(4px, -4px)   rotate(90deg)  scale(1.2);  opacity: .9;  }
  50%      { transform: translate(-3px, 3px)   rotate(180deg) scale(.85);  opacity: 1;   }
  75%      { transform: translate(-5px, -2px)  rotate(270deg) scale(1.1);  opacity: .92; }
}
@media (prefers-reduced-motion: reduce) {
  .bomb-page-sparkle { animation: none; }
}

/* ===== Mini-cart drawer — slide-in from right ============================== */
.bomb-cart-drawer__backdrop {
  position: fixed; inset: 0;
  background: rgba(74, 24, 34, .35);
  z-index: 9998;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;                       /* never intercept hits when closed */
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  transition: opacity .3s ease, visibility .3s;
}
body.bomb-drawer-open .bomb-cart-drawer__backdrop { pointer-events: auto; }
body.bomb-drawer-open .bomb-cart-drawer__backdrop { opacity: 1; visibility: visible; }

.bomb-cart-drawer {
  position: fixed;
  top: 0; right: 0;
  width: min(560px, 100vw);
  height: 100vh;
  background: var(--bomb-white, #fff);
  z-index: 9999;
  box-shadow: -20px 0 50px rgba(74, 24, 34, .15);
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  transition: transform .4s cubic-bezier(.22, .9, .3, 1);
  font-family: var(--bomb-font-body);
}
body.bomb-drawer-open .bomb-cart-drawer { transform: translateX(0); }
body.bomb-drawer-open { overflow: hidden; }

.bomb-cart-drawer__head {
  display: flex; align-items: center; justify-content: space-between;
  padding: 1.5rem 1.75rem;
  background: linear-gradient(160deg, var(--bomb-pink-hero, #FFD2E1) 0%, var(--bomb-pink-soft, #FCE4E8) 100%);
  border-bottom: 1px solid rgba(221, 0, 75, .1);
  flex-shrink: 0;
}
.bomb-cart-drawer__head h2 {
  margin: 0;
  font-family: var(--bomb-font-display, inherit);
  font-size: 1.65rem;
  font-weight: 700;
  color: var(--bomb-bordeaux, #4A1822);
  display: inline-flex; align-items: center; gap: .5rem;
}
.bomb-cart-drawer__head h2::before {
  content: "";
  width: 18px; height: 18px;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M6 2L3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4z'/><line x1='3' y1='6' x2='21' y2='6'/><path d='M16 10a4 4 0 0 1-8 0'/></svg>") center / contain no-repeat;
  mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M6 2L3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4z'/><line x1='3' y1='6' x2='21' y2='6'/><path d='M16 10a4 4 0 0 1-8 0'/></svg>") center / contain no-repeat;
  color: var(--bomb-rouge);
}
.bomb-cart-drawer__close {
  background: transparent;
  border: 0;
  width: 36px; height: 36px;
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: 50%;
  color: var(--bomb-grey-700, #555);
  cursor: pointer;
  transition: background .15s, color .15s;
}
.bomb-cart-drawer__close:hover { background: rgba(221, 0, 75, .08); color: var(--bomb-rouge); }

.bomb-cart-drawer__body {
  flex: 1;
  overflow-y: auto;
  overflow-x: hidden;
  padding: .5rem 1.75rem 1.5rem !important;
  background: var(--bomb-white);
}
/* Inner replaceable wrapper (the bit WC fragments swap on every refresh).
   No padding/margin here — they live on the outer body. */
.bomb-cart-drawer__body > .widget_shopping_cart_content {
  padding: 0 !important;
  margin: 0 !important;
  width: 100%;
}
.bomb-cart-drawer__body .bomb-mini-cart,
.bomb-cart-drawer__body ul.bomb-mini-cart {
  padding: 0 !important;
  margin: 0 !important;
  width: 100%;
}
/* Hover discret sur chaque item du mini-cart */
li.bomb-mc__item { transition: background .15s ease; }
li.bomb-mc__item:hover { background: rgba(221, 0, 75, .025); }

/* Trust strip — small icons + label, discret au-dessus du footer du drawer */
.bomb-mc__trust {
  list-style: none !important;
  margin: 1rem 0 0 !important;
  padding: 0 !important;
  display: flex !important;
  flex-wrap: wrap;
  gap: .35rem 1.25rem;
  justify-content: center;
  align-items: center;
  font-size: .78rem;
  font-weight: 600;
  color: var(--bomb-grey-700, #555);
}
.bomb-mc__trust li {
  display: inline-flex !important;
  align-items: center;
  gap: .4rem;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  white-space: nowrap;
}
.bomb-mc__trust li::before { content: none !important; }
.bomb-mc__trust svg {
  width: 14px !important;
  height: 14px !important;
  color: var(--bomb-rouge);
  flex-shrink: 0;
  display: inline-block !important;
}

/* ===== Relay picker (order-received page) ===== */
.bomb-relay {
  margin: 2rem auto 2.5rem;
  max-width: 720px;
}
.bomb-relay__card {
  display: grid;
  grid-template-columns: 64px 1fr;
  gap: 1.25rem;
  align-items: start;
  padding: 1.75rem;
  background: linear-gradient(160deg, var(--bomb-pink-hero, #FFD2E1) 0%, var(--bomb-pink-soft, #FCE4E8) 100%);
  border-radius: 22px;
  box-shadow: 0 20px 40px rgba(221, 0, 75, .15);
  border: 1px solid rgba(221, 0, 75, .12);
}
.bomb-relay__card--done {
  background: linear-gradient(160deg, rgba(221, 0, 75, .06) 0%, rgba(255, 31, 122, .04) 100%);
}
.bomb-relay__icon {
  width: 56px; height: 56px;
  border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--bomb-white);
  color: var(--bomb-rouge);
  box-shadow: 0 8px 18px rgba(221, 0, 75, .18);
  flex-shrink: 0;
}
.bomb-relay__card--done .bomb-relay__icon { color: #16a34a; }
.bomb-relay__copy { min-width: 0; }
.bomb-relay__overline {
  display: inline-block;
  font-size: .75rem; font-weight: 700; letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--bomb-rouge);
  margin-bottom: .35rem;
}
.bomb-relay__title {
  font-family: var(--bomb-font-display, inherit);
  font-size: 1.5rem; font-weight: 700;
  color: var(--bomb-bordeaux, #4A1822);
  margin: 0 0 .5rem;
  line-height: 1.2;
}
.bomb-relay__text {
  color: var(--bomb-grey-700, #555);
  font-size: .95rem;
  margin: 0 0 1rem;
  line-height: 1.5;
}
.bomb-relay__cta {
  display: inline-flex; align-items: center; gap: .55rem;
  padding: .85rem 1.5rem;
  background: var(--bomb-rouge);
  color: var(--bomb-white);
  border: 0; border-radius: 999px;
  font-family: var(--bomb-font-body);
  font-size: .95rem; font-weight: 700; letter-spacing: .02em;
  cursor: pointer;
  box-shadow: 0 10px 22px rgba(221, 0, 75, .25);
  transition: background .2s, transform .2s, box-shadow .2s;
}
.bomb-relay__cta:hover {
  background: var(--bomb-bordeaux, #4A1822);
  transform: translateY(-2px);
  box-shadow: 0 14px 28px rgba(221, 0, 75, .35);
}
.bomb-relay__change {
  background: transparent;
  border: 0;
  color: var(--bomb-rouge);
  font-weight: 600;
  font-size: .9rem;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 3px;
  padding: 0;
}
.bomb-relay__change:hover { color: var(--bomb-bordeaux, #4A1822); }

/* Modal */
.bomb-relay-modal {
  position: fixed; inset: 0;
  z-index: 9999;
  display: none;
  align-items: center; justify-content: center;
  padding: 1rem;
}
.bomb-relay-modal[aria-hidden="false"] { display: flex; }
.bomb-relay-modal__backdrop {
  position: absolute; inset: 0;
  background: rgba(74, 24, 34, .55);
  backdrop-filter: blur(2px);
}
.bomb-relay-modal__panel {
  position: relative;
  width: min(720px, 100%);
  max-height: 92vh;
  background: var(--bomb-white);
  border-radius: 18px;
  display: flex; flex-direction: column;
  overflow: hidden;
  box-shadow: 0 30px 60px rgba(0, 0, 0, .35);
  animation: bomb-relay-pop .3s cubic-bezier(.22,.9,.3,1);
}
@keyframes bomb-relay-pop { from { opacity: 0; transform: scale(.96) translateY(10px); } to { opacity: 1; transform: scale(1) translateY(0); } }
.bomb-relay-modal__head {
  display: flex; align-items: center; justify-content: space-between;
  padding: 1.25rem 1.5rem;
  background: linear-gradient(160deg, var(--bomb-pink-hero, #FFD2E1), var(--bomb-pink-soft, #FCE4E8));
  border-bottom: 1px solid rgba(221, 0, 75, .1);
}
.bomb-relay-modal__head h3 {
  margin: 0;
  font-family: var(--bomb-font-display, inherit);
  font-size: 1.35rem; font-weight: 700;
  color: var(--bomb-bordeaux, #4A1822);
}
.bomb-relay-modal__close {
  background: transparent; border: 0;
  width: 36px; height: 36px;
  border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  color: var(--bomb-grey-700, #555);
  cursor: pointer;
  transition: background .15s, color .15s;
}
.bomb-relay-modal__close:hover { background: rgba(221, 0, 75, .1); color: var(--bomb-rouge); }
.bomb-relay-modal__body {
  flex: 1;
  overflow-y: auto;
  padding: 1rem;
}
body.bomb-relay-open { overflow: hidden; }

@media (max-width: 600px) {
  .bomb-relay__card { grid-template-columns: 1fr; padding: 1.5rem 1.25rem; }
  .bomb-relay__icon { margin-bottom: .5rem; }
  .bomb-relay__title { font-size: 1.25rem; }
  .bomb-relay-modal__panel { max-height: 100vh; max-height: 100dvh; border-radius: 0; width: 100vw; }
}

/* ===== Mini-cart v2 — custom renderer, full control ===== */
ul.bomb-mc {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
li.bomb-mc__item {
  display: grid !important;
  grid-template-columns: 84px minmax(0, 1fr) !important;
  grid-template-areas: "img body" !important;
  column-gap: 1rem !important;
  align-items: start !important;
  padding: 1.25rem 2.5rem 1.25rem 0 !important;
  margin: 0 !important;
  border-bottom: 1px solid rgba(221, 0, 75, .08) !important;
  list-style: none !important;
  position: relative !important;
  text-align: left !important;
  width: 100%;
  box-sizing: border-box;
}
li.bomb-mc__item:last-child { border-bottom: 0 !important; }
.bomb-mc__thumb {
  grid-area: img !important;
  display: block !important;
  width: 84px !important;
  margin: 0 !important;
  padding: 0 !important;
  border-radius: 12px;
  overflow: hidden;
}
.bomb-mc__thumb img {
  width: 84px !important;
  height: 108px !important;
  max-width: 84px !important;
  max-height: 108px !important;
  object-fit: cover !important;
  display: block !important;
  border-radius: 12px;
  background: #f6f6f6;
  margin: 0 !important;
}
.bomb-mc__body {
  grid-area: body !important;
  min-width: 0;
  display: flex; flex-direction: column; gap: .4rem;
  align-items: flex-start;
  text-align: left;
}
.bomb-mc__name {
  font-family: var(--bomb-font-display, inherit);
  font-size: 1rem;
  font-weight: 700;
  color: var(--bomb-bordeaux, #4A1822);
  text-decoration: none;
  line-height: 1.25;
  transition: color .15s;
  display: block;
}
.bomb-mc__name:hover { color: var(--bomb-rouge); }
.bomb-mc__meta {
  font-size: .8rem;
  color: var(--bomb-grey-700, #555);
  display: flex; flex-wrap: wrap; gap: .15rem .35rem;
}
.bomb-mc__meta dl,
.bomb-mc__meta dt,
.bomb-mc__meta dd,
.bomb-mc__meta p {
  display: inline !important;
  margin: 0 !important;
  font-size: .8rem !important;
  font-weight: 500 !important;
  color: var(--bomb-grey-700) !important;
}
.bomb-mc__meta dt::after { content: ": "; }
.bomb-mc__meta dd::after { content: " · "; }
.bomb-mc__meta dd:last-child::after { content: ""; }
.bomb-mc__bottom {
  display: flex; justify-content: space-between; align-items: center;
  width: 100%;
  margin-top: .15rem;
}
.bomb-mc__qty {
  display: inline-flex; align-items: center; gap: .15rem;
  padding: .2rem;
  border: 1.5px solid var(--bomb-grey-100, #EEE);
  border-radius: 999px;
  background: var(--bomb-white);
}
.bomb-mc__qty-btn {
  width: 26px; height: 26px;
  background: transparent; border: 0; border-radius: 50%;
  color: var(--bomb-grey-700);
  cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center;
  transition: background .15s, color .15s, transform .1s;
  padding: 0; line-height: 1;
}
.bomb-mc__qty-btn:hover { background: var(--bomb-rouge); color: var(--bomb-white); }
.bomb-mc__qty-btn:active { transform: scale(.92); }
.bomb-mc__qty-num {
  min-width: 22px; text-align: center;
  font-size: .9rem; font-weight: 700;
  color: var(--bomb-bordeaux, #4A1822);
  line-height: 1;
}
.bomb-mc__price {
  font-family: var(--bomb-font-body);
  font-size: 1rem;
  font-weight: 800;
  color: var(--bomb-rouge);
}
.bomb-mc__remove {
  position: absolute !important;
  top: 1.25rem; right: 0;
  width: 28px; height: 28px;
  display: inline-flex !important; align-items: center; justify-content: center;
  background: var(--bomb-grey-100, #f0f0f0);
  color: var(--bomb-grey-700) !important;
  border-radius: 50%;
  border: 0;
  text-decoration: none !important;
  transition: background .15s, color .15s, transform .2s;
  margin: 0; padding: 0;
  float: none !important;
}
.bomb-mc__remove:hover {
  background: var(--bomb-rouge);
  color: var(--bomb-white) !important;
  transform: rotate(90deg);
}

.bomb-mc__subtotal {
  display: flex !important;
  justify-content: space-between;
  align-items: baseline;
  padding: 1.25rem 0 0 !important;
  margin: .75rem 0 0 !important;
  border-top: 2px solid rgba(221, 0, 75, .12);
}
.bomb-mc__subtotal strong {
  font-family: var(--bomb-font-display, inherit) !important;
  font-size: 1.1rem !important;
  font-weight: 700 !important;
  color: var(--bomb-bordeaux, #4A1822) !important;
}
.bomb-mc__subtotal span {
  color: var(--bomb-rouge) !important;
  font-size: 1.5rem !important;
  font-weight: 800 !important;
}
@media (max-width: 480px) {
  li.bomb-mc__item { grid-template-columns: 72px minmax(0, 1fr) !important; padding: 1rem 2rem 1rem 0 !important; }
  .bomb-mc__thumb { width: 72px !important; }
  .bomb-mc__thumb img { width: 72px !important; height: 92px !important; max-width: 72px !important; max-height: 92px !important; }
}

/* ===== Premium mini-cart (theme override template) ===== */
.bomb-mini-cart {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
/* Force the LI to be a 2-column grid no matter what other CSS tries to apply */
.bomb-cart-drawer__body li.bomb-mini-cart__item,
.bomb-cart-drawer__body .widget_shopping_cart_content li,
.bomb-cart-drawer__body ul li {
  display: grid !important;
  grid-template-columns: 80px minmax(0, 1fr) !important;
  grid-template-areas: "img body" !important;
  column-gap: 1rem !important;
  padding: 1.25rem 2.25rem 1.25rem 0 !important;
  margin: 0 !important;
  border-bottom: 1px solid rgba(221, 0, 75, .08) !important;
  list-style: none !important;
  position: relative !important;
  width: 100% !important;
  box-sizing: border-box !important;
  align-items: start !important;
  text-align: left !important;
  float: none !important;
}
.bomb-cart-drawer__body ul li:last-child { border-bottom: 0 !important; }
/* Image cell */
.bomb-cart-drawer__body li > a.bomb-mini-cart__thumb,
.bomb-cart-drawer__body li > span.bomb-mini-cart__thumb,
.bomb-cart-drawer__body li > .bomb-mini-cart__thumb {
  grid-area: img !important;
  width: 80px !important;
  margin: 0 !important;
  padding: 0 !important;
  display: block !important;
}
.bomb-cart-drawer__body li > a.bomb-mini-cart__thumb img,
.bomb-cart-drawer__body li img {
  width: 80px !important;
  height: 100px !important;
  max-width: 80px !important;
  max-height: 100px !important;
  object-fit: cover !important;
  border-radius: 10px !important;
  margin: 0 !important;
  display: block !important;
  background: #f6f6f6 !important;
  float: none !important;
}
/* Body cell */
.bomb-cart-drawer__body li > .bomb-mini-cart__body {
  grid-area: body !important;
  min-width: 0 !important;
  width: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  gap: .5rem !important;
  overflow: hidden !important;
  align-items: flex-start !important;
  text-align: left !important;
}
.bomb-mini-cart__item:last-child { border-bottom: 0 !important; }
.bomb-mini-cart__thumb,
.bomb-mini-cart__item > a.bomb-mini-cart__thumb,
.bomb-mini-cart__item > span.bomb-mini-cart__thumb {
  grid-column: 1 / 2 !important;
  display: block !important;
  width: 72px !important;
  margin: 0 !important;
  padding: 0 !important;
  flex: 0 0 72px !important;     /* in case display:flex sneaks in */
}
.bomb-mini-cart__thumb img,
.bomb-mini-cart__thumb .attachment-woocommerce_thumbnail,
.bomb-mini-cart__thumb .wp-post-image,
.widget_shopping_cart_content .bomb-mini-cart__thumb img,
/* Brutal catch-all: ANY image inside the drawer body is forced to 72×92 */
.bomb-cart-drawer__body img,
.bomb-cart-drawer__body li img,
.bomb-cart-drawer__body a img,
aside#bomb-cart-drawer img:not(.bomb-cart-empty__icon img):not(svg) {
  width: 72px !important;
  height: 92px !important;
  max-width: 72px !important;
  max-height: 92px !important;
  min-width: 0 !important;
  object-fit: cover !important;
  border-radius: 10px !important;
  margin: 0 !important;
  padding: 0 !important;
  display: block !important;
  background: #f6f6f6;
  float: none !important;
  flex: 0 0 72px !important;
}
/* Title in the body — full width, normal wrapping (not character-by-character) */
.bomb-mini-cart__title {
  word-break: normal !important;
  overflow-wrap: anywhere;
  width: 100%;
}
.bomb-mini-cart__body {
  grid-column: 2 / 3 !important;
  display: flex; flex-direction: column; gap: .45rem;
  min-width: 0;
  width: 100%;
  overflow: hidden;
}
.bomb-mini-cart__title {
  font-family: var(--bomb-font-display, inherit) !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
  color: var(--bomb-bordeaux, #4A1822) !important;
  text-decoration: none !important;
  line-height: 1.25 !important;
  transition: color .15s;
  display: block;
}
.bomb-mini-cart__title:hover { color: var(--bomb-rouge) !important; }
/* Variation block (output by wc_get_formatted_cart_item_data) */
.bomb-mini-cart__body dl.variation,
.bomb-mini-cart__body .wc-item-meta {
  margin: 0 !important;
  padding: 0 !important;
  font-size: .8rem !important;
  color: var(--bomb-grey-700) !important;
  display: flex; flex-wrap: wrap; gap: .15rem .45rem;
  list-style: none;
}
.bomb-mini-cart__body dl.variation dt,
.bomb-mini-cart__body dl.variation dd,
.bomb-mini-cart__body .wc-item-meta li,
.bomb-mini-cart__body .wc-item-meta strong {
  display: inline !important;
  margin: 0 !important;
  font-size: .8rem !important;
  font-weight: 500 !important;
  color: var(--bomb-grey-700) !important;
}
.bomb-mini-cart__body dl.variation dt::after,
.bomb-mini-cart__body .wc-item-meta strong::after { content: ": "; }
.bomb-mini-cart__body dl.variation dd::after { content: " · "; }
.bomb-mini-cart__body dl.variation dd:last-child::after { content: ""; }
.bomb-mini-cart__body dl.variation p { margin: 0 !important; display: inline; }

.bomb-mini-cart__row {
  display: flex; justify-content: space-between; align-items: baseline;
  margin-top: .3rem;
}
/* Quantity selector inside drawer items — pill with +/- */
.bomb-mini-cart__qty {
  display: inline-flex !important;
  align-items: center;
  gap: .15rem;
  padding: .2rem;
  border: 1.5px solid var(--bomb-grey-100, #EEE);
  border-radius: 999px;
  background: var(--bomb-white);
}
.bomb-mini-cart__qty-btn {
  width: 26px; height: 26px;
  background: transparent;
  border: 0;
  border-radius: 50%;
  color: var(--bomb-grey-700);
  cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center;
  transition: background .15s, color .15s, transform .1s;
  padding: 0;
  line-height: 1;
}
.bomb-mini-cart__qty-btn:hover {
  background: var(--bomb-rouge);
  color: var(--bomb-white);
}
.bomb-mini-cart__qty-btn:active { transform: scale(.92); }
.bomb-mini-cart__qty-num {
  min-width: 22px;
  text-align: center;
  font-size: .9rem;
  font-weight: 700;
  color: var(--bomb-bordeaux, #4A1822);
  line-height: 1;
}
.bomb-mini-cart__total {
  font-family: var(--bomb-font-body);
  font-size: 1rem !important;
  font-weight: 800 !important;
  color: var(--bomb-rouge) !important;
}
.bomb-mini-cart__total .amount,
.bomb-mini-cart__total .woocommerce-Price-amount { font-weight: 800 !important; color: var(--bomb-rouge) !important; }

.bomb-mini-cart__remove,
a.bomb-mini-cart__remove,
li.bomb-mini-cart__item > a.remove,
li.bomb-mini-cart__item > a.remove_from_cart_button,
.bomb-cart-drawer__body li > a.remove {
  position: absolute !important;
  top: 1.1rem !important;
  right: 0 !important;
  left: auto !important;
  float: none !important;
  width: 28px !important; height: 28px !important;
  display: inline-flex !important; align-items: center !important; justify-content: center !important;
  background: var(--bomb-grey-100, #f0f0f0) !important;
  color: var(--bomb-grey-700) !important;
  border-radius: 50% !important;
  font-size: 15px !important; font-weight: 400 !important;
  line-height: 1 !important; text-decoration: none !important;
  border: 0 !important; margin: 0 !important; padding: 0 !important;
  transition: background .15s, color .15s, transform .2s;
}
.bomb-mini-cart__remove:hover {
  background: var(--bomb-rouge) !important;
  color: var(--bomb-white) !important;
  transform: rotate(90deg);
}

/* Subtotal block at the bottom */
.bomb-mini-cart__subtotal {
  display: flex !important;
  justify-content: space-between;
  align-items: baseline;
  padding: 1.25rem 0 0 !important;
  margin: .75rem 0 0 !important;
  border-top: 2px solid rgba(221, 0, 75, .12);
  font-family: var(--bomb-font-body) !important;
  font-size: 1rem !important;
  color: var(--bomb-bordeaux, #4A1822) !important;
}
.bomb-mini-cart__subtotal strong {
  font-family: var(--bomb-font-display, inherit) !important;
  font-size: 1.1rem !important;
  font-weight: 700 !important;
  color: var(--bomb-bordeaux, #4A1822) !important;
}
.bomb-mini-cart__subtotal .amount,
.bomb-mini-cart__subtotal .woocommerce-Price-amount {
  color: var(--bomb-rouge) !important;
  font-size: 1.5rem !important;
  font-weight: 800 !important;
}

/* Reset WC mini-cart list — nuke bullets, default margins (legacy support) */
.bomb-cart-drawer__body ul,
.bomb-cart-drawer__body ul.cart_list,
.bomb-cart-drawer__body ul.product_list_widget,
.bomb-cart-drawer__body ul.woocommerce-mini-cart {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
.bomb-cart-drawer__body ul li::marker,
.bomb-cart-drawer__body ul li::before { content: none !important; }

/* ITEM ROW — premium card */
.bomb-cart-drawer__body li,
.bomb-cart-drawer__body li.woocommerce-mini-cart-item,
.bomb-cart-drawer__body li.mini_cart_item {
  display: grid !important;
  grid-template-columns: 76px 1fr 32px !important;
  grid-template-rows: auto auto !important;
  grid-template-areas:
    "img  name  remove"
    "img  meta  meta" !important;
  column-gap: 1rem !important;
  row-gap: .25rem !important;
  align-items: start !important;
  padding: 1rem 0 !important;
  margin: 0 !important;
  border-bottom: 1px solid rgba(221, 0, 75, .08) !important;
  list-style: none !important;
  background: transparent !important;
}
.bomb-cart-drawer__body li:last-child { border-bottom: 0 !important; }

/* Image */
.bomb-cart-drawer__body li > a img,
.bomb-cart-drawer__body li img {
  grid-area: img !important;
  width: 76px !important;
  height: 96px !important;
  max-width: 76px !important;
  object-fit: cover !important;
  border-radius: 10px !important;
  margin: 0 !important;
  float: none !important;
  background: #f6f6f6;
  display: block !important;
}
/* Wrapping anchor needs to span the image cell, not flow as inline */
.bomb-cart-drawer__body li > a:not(.remove) {
  grid-area: img !important;
  display: block !important;
  width: 76px;
  text-decoration: none !important;
  font-size: 0 !important;     /* hide the text node that WC puts inside this anchor */
}

/* Product name (rendered as text node in mini_cart_item — we use a pseudo block) */
.bomb-cart-drawer__body li {
  position: relative;
}
.bomb-cart-drawer__body li::before {
  /* placeholder — actual name comes from anchor + we'll absolute position the text */
}

/* The "name + variation + qty" zone — WC outputs the product title as a TEXT
   NODE inside the wrapper <a>, then a <dl class="variation"> and a <span class="quantity">.
   We push the title up via a CSS trick: re-render the text using ::before of <a>.
   Instead, simpler: ::after on the LI showing nothing — and style the children directly. */

/* Quantity line (e.g. "1 × 95,00 €") */
.bomb-cart-drawer__body li .quantity,
.bomb-cart-drawer__body li.mini_cart_item .quantity {
  grid-area: meta !important;
  align-self: end;
  font-size: .9rem !important;
  font-weight: 600 !important;
  color: var(--bomb-grey-700) !important;
}
.bomb-cart-drawer__body li .quantity .amount,
.bomb-cart-drawer__body li .quantity .woocommerce-Price-amount {
  color: var(--bomb-rouge) !important;
  font-weight: 800 !important;
  font-size: 1rem !important;
}

/* Variation list (Taille / Couleur) */
.bomb-cart-drawer__body li dl.variation {
  grid-area: meta !important;
  align-self: start;
  margin: 0 !important;
  padding: 0 !important;
  font-size: .8rem !important;
  color: var(--bomb-grey-700) !important;
  display: flex; flex-wrap: wrap; gap: .15rem .35rem;
}
.bomb-cart-drawer__body li dl.variation dt,
.bomb-cart-drawer__body li dl.variation dd {
  display: inline !important;
  margin: 0 !important;
  padding: 0 !important;
  font-size: .8rem !important;
  font-weight: 500 !important;
}
.bomb-cart-drawer__body li dl.variation dt::after { content: ": "; }
.bomb-cart-drawer__body li dl.variation dd::after { content: " · "; }
.bomb-cart-drawer__body li dl.variation dd:last-child::after { content: ""; }
.bomb-cart-drawer__body li dl.variation p { margin: 0 !important; display: inline; }

/* Stack: name area uses the LI grid "name" cell — actual product title is the
   text inside the <a>. We force the anchor to wrap and stretch into "name". */
.bomb-cart-drawer__body li > a:not(.remove) {
  grid-area: img !important;   /* anchor wraps only the image */
}
/* Force WC's stray text node (the product title between <a> and <span>) to
   become a visible block by displaying it via the LI's flex */

/* WC outputs:
   <li>
     <a class="remove">×</a>
     <a><img/>Product Name</a>     ← title is INSIDE this anchor, after <img>
     <dl class="variation">…</dl>
     <span class="quantity">1 × 95,00 €</span>
   </li>
   The title is awkward to extract via CSS. Easiest approach:
   we make the wrapping <a> span the whole grid (img+name areas) and let the
   text wrap to the right of the image. */
.bomb-cart-drawer__body li > a:not(.remove) {
  grid-area: img-name !important;
}
/* Redefine the grid so the anchor covers img+name in one zone */
.bomb-cart-drawer__body li,
.bomb-cart-drawer__body li.woocommerce-mini-cart-item,
.bomb-cart-drawer__body li.mini_cart_item {
  grid-template-areas:
    "anchor anchor remove"
    "meta   meta   meta" !important;
}
.bomb-cart-drawer__body li > a:not(.remove) {
  grid-area: anchor !important;
  display: grid !important;
  grid-template-columns: 76px 1fr;
  gap: 1rem;
  align-items: center;
  font-family: var(--bomb-font-display, inherit) !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
  color: var(--bomb-bordeaux, #4A1822) !important;
  line-height: 1.25 !important;
  text-decoration: none !important;
  transition: color .15s;
}
.bomb-cart-drawer__body li > a:not(.remove):hover {
  color: var(--bomb-rouge) !important;
}

/* Remove button (top-right of each item) */
.bomb-cart-drawer__body a.remove,
.bomb-cart-drawer__body a.remove_from_cart_button {
  grid-area: remove !important;
  width: 28px !important; height: 28px !important;
  display: inline-flex !important;
  align-items: center !important; justify-content: center !important;
  background: var(--bomb-grey-100, #f0f0f0) !important;
  color: var(--bomb-grey-700) !important;
  border-radius: 50% !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  text-decoration: none !important;
  border: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  transition: background .15s, color .15s, transform .2s;
  justify-self: end !important;
  align-self: start !important;
}
.bomb-cart-drawer__body a.remove:hover,
.bomb-cart-drawer__body a.remove_from_cart_button:hover {
  background: var(--bomb-rouge) !important;
  color: var(--bomb-white) !important;
  transform: rotate(90deg);
}

/* Mini-cart total (subtotal line at the end) */
.bomb-cart-drawer__body p.woocommerce-mini-cart__total,
.bomb-cart-drawer__body .total {
  display: flex !important;
  justify-content: space-between;
  align-items: baseline;
  padding: 1.25rem 0 0 !important;
  margin: .75rem 0 0 !important;
  border-top: 2px solid rgba(221, 0, 75, .12);
  font-family: var(--bomb-font-body) !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
  color: var(--bomb-bordeaux, #4A1822) !important;
}
.bomb-cart-drawer__body p.woocommerce-mini-cart__total strong {
  font-family: var(--bomb-font-display, inherit) !important;
  font-size: 1.1rem !important;
  font-weight: 700 !important;
  color: var(--bomb-bordeaux, #4A1822) !important;
}
.bomb-cart-drawer__body p.woocommerce-mini-cart__total .amount,
.bomb-cart-drawer__body p.woocommerce-mini-cart__total .woocommerce-Price-amount {
  color: var(--bomb-rouge) !important;
  font-size: 1.5rem !important;
  font-weight: 800 !important;
}

/* Hide WC default buttons — we render our own footer CTAs */
.bomb-cart-drawer__body .buttons,
.bomb-cart-drawer__body .woocommerce-mini-cart__buttons,
.bomb-cart-drawer__body a.wc-forward { display: none !important; }

/* Empty state — premium centred card */
.bomb-mini-cart-empty {
  display: flex; flex-direction: column; align-items: center;
  text-align: center;
  padding: 3rem 1.5rem 1.5rem;
  gap: 1rem;
}
.bomb-mini-cart-empty__icon {
  position: relative;
  width: 96px; height: 96px;
  border-radius: 50%;
  background: linear-gradient(160deg, var(--bomb-pink-hero, #FFD2E1), var(--bomb-pink-soft, #FCE4E8));
  display: inline-flex; align-items: center; justify-content: center;
  color: var(--bomb-rouge);
  box-shadow: 0 12px 28px rgba(221, 0, 75, .14);
  margin-bottom: .5rem;
}
.bomb-mini-cart-empty__sparkle {
  position: absolute;
  background: var(--bomb-white);
  clip-path: polygon(50% 0%, 60% 40%, 100% 50%, 60% 60%, 50% 100%, 40% 60%, 0% 50%, 40% 40%);
  filter: drop-shadow(0 2px 4px rgba(221,0,75,.25));
  animation: bomb-mc-empty-twinkle 3s ease-in-out infinite;
}
.bomb-mini-cart-empty__sparkle--a {
  width: 22px; height: 22px;
  top: -8px; right: -4px;
}
.bomb-mini-cart-empty__sparkle--b {
  width: 14px; height: 14px;
  bottom: 4px; left: -10px;
  animation-delay: 1.2s;
}
@keyframes bomb-mc-empty-twinkle {
  0%, 100% { transform: scale(1) rotate(0deg); opacity: 1; }
  50%      { transform: scale(1.2) rotate(180deg); opacity: .7; }
}
@media (prefers-reduced-motion: reduce) {
  .bomb-mini-cart-empty__sparkle { animation: none; }
}
.bomb-mini-cart-empty__title {
  margin: 0;
  font-family: var(--bomb-font-display, inherit);
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--bomb-bordeaux, #4A1822);
  line-height: 1.25;
  max-width: 260px;
}
.bomb-mini-cart-empty__title em { font-style: italic; font-weight: 400; color: var(--bomb-rouge); }
.bomb-mini-cart-empty__text {
  margin: 0;
  color: var(--bomb-grey-700, #555);
  font-size: .95rem;
  max-width: 280px;
}
.bomb-mini-cart-empty__cta {
  display: inline-flex; align-items: center; gap: .5rem;
  margin-top: .5rem;
  padding: .85rem 1.75rem;
  background: var(--bomb-rouge);
  color: var(--bomb-white) !important;
  border-radius: 999px;
  font-family: var(--bomb-font-body);
  font-size: .95rem;
  font-weight: 700;
  letter-spacing: .02em;
  text-decoration: none !important;
  box-shadow: 0 10px 22px rgba(221, 0, 75, .25);
  transition: background .2s, transform .2s, box-shadow .2s;
}
.bomb-mini-cart-empty__cta:hover {
  background: var(--bomb-bordeaux, #4A1822);
  transform: translateY(-2px);
  box-shadow: 0 14px 28px rgba(221, 0, 75, .35);
}

/* When the drawer is empty, hide the bottom CTAs (we render our own inside the empty card). */
.bomb-cart-drawer[data-empty="1"] .bomb-cart-drawer__foot { display: none !important; }

/* Legacy empty message (in case WC ever serves a non-overridden template) */
.bomb-cart-drawer__body .woocommerce-mini-cart__empty-message {
  text-align: center;
  padding: 3rem 1rem;
  color: var(--bomb-grey-700);
  font-style: italic;
  font-size: 1rem;
}

/* Smooth scrollbar */
.bomb-cart-drawer__body::-webkit-scrollbar { width: 6px; }
.bomb-cart-drawer__body::-webkit-scrollbar-thumb { background: rgba(221,0,75,.2); border-radius: 999px; }

.bomb-cart-drawer__foot {
  flex-shrink: 0;
  padding: 1.25rem 1.5rem;
  border-top: 1px solid var(--bomb-grey-100, #EEE);
  background: var(--bomb-white);
  display: flex;
  gap: .65rem;
}
.bomb-cart-drawer__btn {
  flex: 1;
  display: inline-flex; align-items: center; justify-content: center;
  padding: .85rem 1rem;
  border-radius: 999px;
  font-family: var(--bomb-font-body);
  font-size: .9rem;
  font-weight: 700;
  letter-spacing: .02em;
  text-decoration: none;
  transition: background .2s, color .2s, border-color .2s, transform .15s;
  border: 1.5px solid transparent;
}
.bomb-cart-drawer__btn--ghost {
  background: transparent;
  color: var(--bomb-rouge);
  border-color: rgba(221, 0, 75, .25);
}
.bomb-cart-drawer__btn--ghost:hover {
  background: rgba(221, 0, 75, .08);
  border-color: var(--bomb-rouge);
}
.bomb-cart-drawer__btn--primary {
  background: var(--bomb-rouge);
  color: var(--bomb-white);
  border-color: var(--bomb-rouge);
}
.bomb-cart-drawer__btn--primary:hover {
  background: var(--bomb-bordeaux, #4A1822);
  border-color: var(--bomb-bordeaux, #4A1822);
  transform: translateY(-1px);
}

@media (max-width: 480px) {
  .bomb-cart-drawer { width: 100vw; }
  .bomb-cart-drawer__body { padding: .5rem 1.25rem 1.5rem !important; }
  .bomb-mini-cart__item { padding: 1rem 2rem 1rem 0 !important; gap: .75rem !important; }
  .bomb-mini-cart__thumb,
  .bomb-mini-cart__item > a.bomb-mini-cart__thumb { width: 64px !important; flex: 0 0 64px !important; }
  .bomb-mini-cart__thumb img { width: 64px !important; height: 82px !important; max-width: 64px !important; max-height: 82px !important; }
  .bomb-mini-cart__title { font-size: .95rem !important; }
  .bomb-mini-cart__row { flex-wrap: wrap; gap: .35rem .65rem; }
}

/* ===== Add-to-cart toast — premium bottom-right notification ============== */
.bomb-toast {
  position: fixed;
  bottom: 24px;
  right: 24px;
  z-index: 9999;
  width: min(360px, calc(100vw - 32px));
  background: var(--bomb-white, #fff);
  border-radius: 16px;
  box-shadow: 0 18px 42px rgba(221, 0, 75, .22), 0 4px 12px rgba(0, 0, 0, .06);
  padding: 1.1rem 1.25rem 1.1rem;
  font-family: var(--bomb-font-body);
  border: 1px solid rgba(221, 0, 75, .08);
  opacity: 0;
  transform: translateY(20px) scale(.96);
  visibility: hidden;
  pointer-events: none;
  transition: opacity .35s cubic-bezier(.22,.9,.3,1), transform .35s cubic-bezier(.22,.9,.3,1), visibility .35s;
}
.bomb-toast[data-active="1"] {
  opacity: 1;
  transform: translateY(0) scale(1);
  visibility: visible;
  pointer-events: auto;
}
.bomb-toast::before {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--bomb-rouge, #DD004B), var(--bomb-pink, #FF1F7A));
  border-radius: 0 0 16px 16px;
  transform-origin: left;
  animation: bomb-toast-progress 6s linear forwards;
}
.bomb-toast[data-active="0"]::before { animation: none; }
@keyframes bomb-toast-progress {
  from { transform: scaleX(1); }
  to   { transform: scaleX(0); }
}
.bomb-toast__close {
  position: absolute;
  top: 8px; right: 8px;
  width: 26px; height: 26px;
  background: transparent;
  border: 0;
  color: var(--bomb-grey-700, #555);
  border-radius: 50%;
  cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center;
  transition: background .15s, color .15s;
}
.bomb-toast__close:hover { background: rgba(221, 0, 75, .08); color: var(--bomb-rouge); }
.bomb-toast__head {
  display: flex; align-items: center; gap: .75rem;
  margin-bottom: .85rem;
}
.bomb-toast__icon {
  width: 38px; height: 38px;
  flex-shrink: 0;
  background: var(--bomb-rouge, #DD004B);
  color: var(--bomb-white);
  border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  box-shadow: 0 4px 12px rgba(221, 0, 75, .35);
}
.bomb-toast__copy { display: flex; flex-direction: column; gap: .1rem; min-width: 0; }
.bomb-toast__title {
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--bomb-rouge);
}
.bomb-toast__product {
  font-family: var(--bomb-font-display, inherit);
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--bomb-bordeaux, #4A1822);
  line-height: 1.25;
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}
.bomb-toast__actions {
  display: flex; gap: .5rem;
}
.bomb-toast__btn {
  flex: 1;
  display: inline-flex; align-items: center; justify-content: center;
  padding: .65rem .9rem;
  border-radius: 999px;
  font-family: var(--bomb-font-body);
  font-size: .85rem;
  font-weight: 700;
  letter-spacing: .02em;
  text-decoration: none;
  cursor: pointer;
  transition: background .2s, color .2s, border-color .2s, transform .15s;
  border: 1.5px solid transparent;
}
.bomb-toast__btn--primary {
  background: var(--bomb-rouge);
  color: var(--bomb-white);
  border-color: var(--bomb-rouge);
}
.bomb-toast__btn--primary:hover {
  background: var(--bomb-bordeaux, #4A1822);
  border-color: var(--bomb-bordeaux, #4A1822);
  transform: translateY(-1px);
}
.bomb-toast__btn--ghost {
  background: transparent;
  color: var(--bomb-rouge);
  border-color: rgba(221, 0, 75, .25);
}
.bomb-toast__btn--ghost:hover {
  background: rgba(221, 0, 75, .08);
  border-color: var(--bomb-rouge);
}
@media (max-width: 480px) {
  .bomb-toast {
    left: 12px; right: 12px;
    width: auto;
    bottom: 12px;
  }
  .bomb-toast__actions { flex-direction: column; }
}

/* Warning variant of the toast — used when a required option is missing. */
.bomb-toast[data-type="warning"] {
  border-color: rgba(221, 0, 75, .15);
  box-shadow: 0 18px 42px rgba(221, 0, 75, .18), 0 4px 12px rgba(0, 0, 0, .06);
}
.bomb-toast[data-type="warning"] .bomb-toast__icon {
  background: var(--bomb-pink, #FF1F7A);
  box-shadow: 0 4px 12px rgba(255, 31, 122, .35);
}
.bomb-toast[data-type="warning"] .bomb-toast__icon svg {
  /* Swap check for exclamation circle via mask */
  display: none;
}
.bomb-toast[data-type="warning"] .bomb-toast__icon::before {
  content: "!";
  font-family: var(--bomb-font-display, inherit);
  font-weight: 700;
  font-size: 1.4rem;
  color: var(--bomb-white);
  line-height: 1;
}
.bomb-toast[data-type="warning"] .bomb-toast__title {
  color: var(--bomb-pink, #FF1F7A);
}
.bomb-toast[data-type="warning"]::before {
  background: linear-gradient(90deg, var(--bomb-pink, #FF1F7A), var(--bomb-rouge, #DD004B));
}

/* Hide the legacy inline WC "added to cart" message — replaced by the toast. */
.woocommerce-message,
.wc-block-store-notices .wc-block-components-notice-banner.is-success {
  display: none !important;
}

/* ===== Cart page — premium brand styling =================================== */
.woocommerce-cart .container { max-width: 1100px; }

.bomb-cart-hero {
  text-align: center;
  padding: clamp(2.5rem, 6vw, 4rem) 1rem 1.5rem;
  background: linear-gradient(160deg, var(--bomb-pink-hero, #FFD2E1) 0%, var(--bomb-pink-soft, #FCE4E8) 100%);
  border-radius: 24px;
  margin: 1.5rem 0 2.5rem;
}
.bomb-cart-hero__overline {
  display: inline-block;
  font-size: .8rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase;
  color: var(--bomb-rouge);
  margin-bottom: .85rem;
  padding: .35rem .85rem;
  background: var(--bomb-white);
  border-radius: 999px;
  box-shadow: 0 4px 12px rgba(221, 0, 75, .12);
}
.bomb-cart-hero__title {
  font-family: var(--bomb-font-display, inherit);
  font-weight: 700;
  font-size: clamp(2rem, 5vw, 3.5rem);
  color: var(--bomb-bordeaux, #4A1822);
  margin: 0 0 .65rem;
  display: inline-flex; align-items: center; gap: .85rem;
}
.bomb-cart-hero__title .bomb-page-sparkle { width: 26px; height: 26px; fill: var(--bomb-pink, #FF1F7A); }
.bomb-cart-hero__sub {
  margin: 0; color: var(--bomb-grey-700, #555);
  font-size: 1rem;
}

/* ----- Cart layout: 2-column flex (form left, totals right) ----- */
.woocommerce-cart .woocommerce {
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  gap: 2rem;
  align-items: start;
}
.woocommerce-cart .woocommerce-cart-form { min-width: 0; }
.woocommerce-cart .cart-collaterals {
  width: auto !important;
  float: none !important;
  position: sticky;
  top: 100px;
}
.woocommerce-cart .cart-collaterals .cart_totals {
  width: 100% !important;
  float: none !important;
}

/* ----- Cart table — card-style rows ----- */
.woocommerce-cart table.shop_table {
  border: 0 !important;
  border-collapse: separate !important;
  border-spacing: 0 .85rem !important;
  margin: 0 !important;
  background: transparent !important;
}
.woocommerce-cart table.shop_table thead { display: none; }   /* clean visual without legacy headers */
.woocommerce-cart table.shop_table tbody tr.cart_item {
  background: var(--bomb-white) !important;
  border-radius: 16px;
  box-shadow: 0 4px 14px rgba(0, 0, 0, .04);
  overflow: hidden;
  display: grid;
  grid-template-columns: 90px 1fr auto auto 36px;
  gap: 1rem;
  align-items: center;
  padding: 1rem 1.25rem;
}
.woocommerce-cart table.shop_table tbody tr.cart_item td {
  border: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  display: contents;        /* defer to the grid above */
}
.woocommerce-cart .product-thumbnail { display: block !important; }
.woocommerce-cart .product-thumbnail img,
.woocommerce-cart .product-thumbnail a img {
  width: 90px !important; height: 110px !important;
  object-fit: cover;
  border-radius: 12px;
  background: #f6f6f6;
  display: block;
  margin: 0 !important;
}
.woocommerce-cart .product-name {
  display: flex !important; flex-direction: column; gap: .25rem;
  min-width: 0;
}
.woocommerce-cart .product-name a {
  font-family: var(--bomb-font-display, inherit);
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--bomb-bordeaux, #4A1822);
  text-decoration: none;
  line-height: 1.25;
}
.woocommerce-cart .product-name a:hover { color: var(--bomb-rouge); }
.woocommerce-cart .product-name .variation,
.woocommerce-cart .product-name dl.variation {
  margin: 0; padding: 0;
  font-size: .8rem;
  color: var(--bomb-grey-700);
}
.woocommerce-cart .product-name .variation dt,
.woocommerce-cart .product-name .variation dd { display: inline; margin: 0; font-weight: 500; }
.woocommerce-cart .product-name .variation dt::after { content: ": "; }
.woocommerce-cart .product-name .variation dd::after { content: " · "; }
.woocommerce-cart .product-name .variation dd:last-child::after { content: ""; }

.woocommerce-cart .product-price { display: none !important; }
.woocommerce-cart .product-subtotal {
  font-weight: 700;
  color: var(--bomb-rouge);
  font-size: 1rem;
  white-space: nowrap;
}

/* Quantity input — match our +/- chip style */
.woocommerce-cart .product-quantity .quantity {
  display: inline-flex !important;
  align-items: center;
  border: 1.5px solid var(--bomb-grey-100, #EEE);
  border-radius: 999px;
  padding: .15rem;
  background: var(--bomb-white);
}
.woocommerce-cart .product-quantity input.qty {
  border: 0 !important;
  width: 36px !important;
  height: 30px;
  text-align: center;
  font-weight: 700;
  font-family: var(--bomb-font-body);
  color: var(--bomb-bordeaux, #4A1822);
  background: transparent !important;
  -moz-appearance: textfield;
}
.woocommerce-cart .product-quantity input.qty::-webkit-outer-spin-button,
.woocommerce-cart .product-quantity input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.woocommerce-cart .bomb-qty-btn {
  width: 28px; height: 28px;
  border-radius: 50%;
  background: transparent;
  border: 0;
  color: var(--bomb-grey-700);
  cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center;
  transition: background .15s, color .15s;
}
.woocommerce-cart .bomb-qty-btn:hover {
  background: var(--bomb-rouge);
  color: var(--bomb-white);
}

/* Remove link */
.woocommerce-cart .product-remove a.remove,
.woocommerce-cart .product-remove a.remove:hover {
  width: 36px !important; height: 36px !important;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--bomb-grey-100, #f0f0f0) !important;
  color: var(--bomb-grey-700) !important;
  border-radius: 50%;
  font-size: 1.1rem !important;
  font-weight: 400 !important;
  text-decoration: none !important;
  transition: background .15s, color .15s, transform .2s;
}
.woocommerce-cart .product-remove a.remove:hover {
  background: var(--bomb-rouge) !important;
  color: var(--bomb-white) !important;
  transform: rotate(90deg);
}

/* Actions bar (coupon + update) — clean pill style */
.woocommerce-cart tr.cart-subtotal,
.woocommerce-cart tr.shipping,
.woocommerce-cart tr.order-total { background: transparent !important; }
.woocommerce-cart .actions {
  display: contents !important;          /* break out of the grid layout */
}
.woocommerce-cart .actions .coupon {
  display: flex;
  gap: .5rem;
  margin: 1rem 0 0;
  padding: 0 !important;
}
.woocommerce-cart .actions .coupon input[type="text"] {
  flex: 1;
  padding: .65rem 1rem !important;
  border: 1.5px solid #DBDBDB !important;
  border-radius: 999px !important;
  font-family: var(--bomb-font-body);
  font-size: .9rem;
  transition: border-color .15s, box-shadow .15s;
}
.woocommerce-cart .actions .coupon input[type="text"]:focus {
  outline: 0;
  border-color: var(--bomb-rouge) !important;
  box-shadow: 0 0 0 3px rgba(221, 0, 75, .12);
}
.woocommerce-cart .actions .coupon button,
.woocommerce-cart .actions button[name="update_cart"] {
  padding: .65rem 1.25rem !important;
  background: var(--bomb-rouge) !important;
  color: var(--bomb-white) !important;
  border: 0 !important;
  border-radius: 999px !important;
  font-family: var(--bomb-font-body);
  font-weight: 700 !important;
  font-size: .85rem !important;
  letter-spacing: .02em;
  cursor: pointer;
  transition: background .2s, transform .15s;
}
.woocommerce-cart .actions .coupon button:hover,
.woocommerce-cart .actions button[name="update_cart"]:hover {
  background: var(--bomb-bordeaux, #4A1822) !important;
  transform: translateY(-1px);
}
.woocommerce-cart .actions button[name="update_cart"] {
  background: transparent !important;
  color: var(--bomb-rouge) !important;
  border: 1.5px solid rgba(221, 0, 75, .25) !important;
  margin-left: 0 !important;
  display: inline-block;
  margin-top: .5rem !important;
}
.woocommerce-cart .actions button[name="update_cart"]:hover {
  background: rgba(221, 0, 75, .08) !important;
  border-color: var(--bomb-rouge) !important;
}

/* ----- Totals box (right column) ----- */
.woocommerce-cart .cart_totals {
  background: var(--bomb-white);
  border-radius: 18px;
  padding: 1.75rem;
  box-shadow: 0 14px 32px rgba(0, 0, 0, .06);
  border: 1px solid var(--bomb-grey-100, #EEE);
}
.woocommerce-cart .cart_totals h2 {
  font-family: var(--bomb-font-display, inherit);
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--bomb-bordeaux, #4A1822);
  margin: 0 0 1.25rem;
  padding-bottom: .85rem;
  border-bottom: 2px solid rgba(221, 0, 75, .15);
}
.woocommerce-cart .cart_totals table { width: 100%; margin: 0 !important; }
.woocommerce-cart .cart_totals table tr {
  display: grid;
  grid-template-columns: 1fr auto;
  padding: .65rem 0;
  border-bottom: 1px dashed var(--bomb-grey-100, #EEE);
}
.woocommerce-cart .cart_totals table tr:last-child { border-bottom: 0; padding-top: 1rem; }
.woocommerce-cart .cart_totals table th {
  font-weight: 600 !important;
  color: var(--bomb-grey-700);
  font-size: .9rem;
  text-align: left !important;
  background: transparent !important;
  padding: 0 !important;
  border: 0 !important;
}
.woocommerce-cart .cart_totals table td {
  text-align: right !important;
  font-weight: 700;
  color: var(--bomb-bordeaux, #4A1822);
  background: transparent !important;
  padding: 0 !important;
  border: 0 !important;
}
.woocommerce-cart .cart_totals table tr.order-total th,
.woocommerce-cart .cart_totals table tr.order-total td {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--bomb-rouge);
}
.woocommerce-cart .cart_totals table tr.order-total td .amount,
.woocommerce-cart .cart_totals table tr.order-total td .woocommerce-Price-amount {
  font-size: 1.4rem;
}
.woocommerce-cart .shipping-calculator-button {
  color: var(--bomb-rouge) !important;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* Proceed to checkout — big pink CTA */
.woocommerce-cart .wc-proceed-to-checkout { padding: 1rem 0 0 !important; }
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
  display: inline-flex !important;
  align-items: center; justify-content: center;
  width: 100%;
  padding: 1rem 1.5rem !important;
  background: var(--bomb-rouge) !important;
  color: var(--bomb-white) !important;
  border: 0 !important;
  border-radius: 999px !important;
  font-family: var(--bomb-font-body);
  font-size: 1rem !important;
  font-weight: 700 !important;
  letter-spacing: .02em;
  text-transform: none;
  box-shadow: 0 10px 24px rgba(221, 0, 75, .25);
  transition: background .2s, transform .2s, box-shadow .2s;
}
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover {
  background: var(--bomb-bordeaux, #4A1822) !important;
  transform: translateY(-2px);
  box-shadow: 0 14px 28px rgba(221, 0, 75, .35);
}

/* Cross-sells: discreet section below */
.woocommerce-cart .cross-sells { margin-top: 3rem; grid-column: 1 / -1; }
.woocommerce-cart .cross-sells h2 {
  font-family: var(--bomb-font-display, inherit);
  font-weight: 700;
  font-size: clamp(1.5rem, 3vw, 2rem);
  color: var(--bomb-rouge);
  text-align: center;
  margin-bottom: 1.5rem;
}

/* ----- Responsive: stack on tablet/mobile ----- */
@media (max-width: 900px) {
  .woocommerce-cart .woocommerce {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }
  .woocommerce-cart .cart-collaterals { position: static; }
}
@media (max-width: 600px) {
  .bomb-cart-hero { padding: 2rem 1rem 1.25rem; border-radius: 18px; margin: 1rem 0 1.5rem; }
  .bomb-cart-hero__title .bomb-page-sparkle { width: 20px; height: 20px; }

  .woocommerce-cart table.shop_table tbody tr.cart_item {
    grid-template-columns: 72px 1fr 32px;
    grid-template-areas:
      "img name remove"
      "img qty  subtotal";
    gap: .65rem 1rem;
    padding: .85rem 1rem;
  }
  .woocommerce-cart .product-thumbnail { grid-area: img; }
  .woocommerce-cart .product-thumbnail img { width: 72px !important; height: 88px !important; }
  .woocommerce-cart .product-name { grid-area: name; }
  .woocommerce-cart .product-quantity { grid-area: qty; }
  .woocommerce-cart .product-subtotal { grid-area: subtotal; justify-self: end; align-self: end; }
  .woocommerce-cart .product-remove { grid-area: remove; justify-self: end; align-self: start; }
  .woocommerce-cart .product-remove a.remove,
  .woocommerce-cart .product-remove a.remove:hover {
    width: 28px !important; height: 28px !important;
    font-size: .95rem !important;
  }
  .woocommerce-cart .product-name a { font-size: 1rem; }
  .woocommerce-cart .cart_totals { padding: 1.25rem; border-radius: 16px; }
  .woocommerce-cart .actions .coupon { flex-direction: column; }
  .woocommerce-cart .actions .coupon button,
  .woocommerce-cart .actions button[name="update_cart"] { width: 100%; }
}

/* ===== Checkout page — premium brand, conversion-oriented ================= */
.wp-block-woocommerce-checkout .wc-block-checkout,
.woocommerce-checkout .wc-block-checkout {
  max-width: 1180px;
  margin: 0 auto;
}
/* Hide the legacy page H1 ("Validation de la commande") — our hero replaces it. */
.woocommerce-checkout h1.entry-title,
.woocommerce-checkout .entry-header,
body.woocommerce-checkout .page-title,
body.page-template-default.woocommerce-checkout h1:first-of-type:not(.bomb-checkout-hero__title) {
  display: none !important;
}
/* On mobile, the Cart Block can render the order-summary BOTH in the main
   column (as a collapsible card at the top) AND in the sidebar — kill the
   sidebar duplicate so we keep only the collapsible top one. */
@media (max-width: 900px) {
  .wc-block-checkout__sidebar { display: none !important; }
}

.bomb-checkout-hero {
  text-align: center;
  padding: clamp(2rem, 5vw, 3rem) 1rem 1.25rem;
  background: linear-gradient(160deg, var(--bomb-pink-hero, #FFD2E1) 0%, var(--bomb-pink-soft, #FCE4E8) 100%);
  border-radius: 24px;
  margin: 1.5rem 0 1.5rem;
}
.bomb-checkout-hero__title {
  font-family: var(--bomb-font-display, inherit);
  font-weight: 700;
  font-size: clamp(1.85rem, 4vw, 3rem);
  color: var(--bomb-bordeaux, #4A1822);
  margin: 0 0 .5rem;
  display: inline-flex; align-items: center; gap: .85rem;
}
.bomb-checkout-hero__title .bomb-page-sparkle { width: 24px; height: 24px; fill: var(--bomb-pink, #FF1F7A); }
.bomb-checkout-hero__sub { color: var(--bomb-grey-700); margin: 0 0 1.25rem; font-size: 1rem; }
.bomb-checkout-trust {
  list-style: none; margin: 0; padding: 0;
  display: flex; flex-wrap: wrap; gap: .75rem 1.5rem;
  justify-content: center;
}
.bomb-checkout-trust li {
  display: inline-flex; align-items: center; gap: .5rem;
  font-size: .85rem; font-weight: 600;
  color: var(--bomb-bordeaux, #4A1822);
}
.bomb-checkout-trust svg { color: var(--bomb-rouge); }

/* Block layout (left forms + right summary) */
.wc-block-checkout__main { min-width: 0; }
.wc-block-checkout__sidebar {
  position: sticky;
  top: 100px;
}

/* Form section cards */
.wc-block-checkout__contact-fields,
.wc-block-checkout__shipping-fields,
.wc-block-checkout__billing-fields,
.wc-block-checkout__shipping-method,
.wc-block-checkout__payment-method,
.wc-block-checkout__additional-information {
  background: var(--bomb-white);
  border-radius: 18px;
  padding: 1.5rem !important;
  box-shadow: 0 6px 18px rgba(0, 0, 0, .04);
  border: 1px solid var(--bomb-grey-100, #EEE);
  margin-bottom: 1.25rem !important;
}
.wc-block-components-checkout-step__title,
.wp-block-woocommerce-checkout-fields-block h2,
.wc-block-checkout__main h2 {
  font-family: var(--bomb-font-display, inherit) !important;
  font-weight: 700 !important;
  font-size: 1.3rem !important;
  color: var(--bomb-bordeaux, #4A1822) !important;
  margin: 0 0 1rem !important;
  display: flex; align-items: center; gap: .75rem;
  text-transform: none !important;
  letter-spacing: 0 !important;
}
.wc-block-components-checkout-step__title-content {
  color: inherit !important;
}
.wc-block-components-checkout-step__heading-content,
.wc-block-components-checkout-step__description {
  color: var(--bomb-grey-700) !important;
  font-size: .9rem !important;
  margin: 0 0 1rem !important;
}

/* Input fields — pills, rouge focus ring */
.wc-block-components-text-input,
.wc-block-components-checkout-step__container .wc-block-components-text-input {
  margin-bottom: .75rem !important;
}
.wc-block-components-text-input input,
.wc-block-components-text-input input[type="text"],
.wc-block-components-text-input input[type="email"],
.wc-block-components-text-input input[type="tel"],
.wc-block-components-select select,
.wc-block-components-textarea {
  border: 1.5px solid #DBDBDB !important;
  border-radius: 12px !important;
  padding: 1.1rem 1rem .55rem !important;       /* room for floating label */
  font-family: var(--bomb-font-body) !important;
  font-size: .95rem !important;
  background: var(--bomb-white) !important;
  color: var(--bomb-grey-950) !important;
  transition: border-color .15s, box-shadow .15s;
}
.wc-block-components-text-input input:focus,
.wc-block-components-select select:focus,
.wc-block-components-textarea:focus {
  outline: 0 !important;
  border-color: var(--bomb-rouge) !important;
  box-shadow: 0 0 0 3px rgba(221, 0, 75, .12) !important;
}
.wc-block-components-text-input label,
.wc-block-components-select label {
  color: var(--bomb-grey-700) !important;
  font-weight: 500 !important;
  font-size: .85rem !important;
}
.wc-block-components-text-input.is-active label {
  color: var(--bomb-rouge) !important;
}
.wc-block-components-validation-error {
  color: var(--bomb-rouge) !important;
  font-size: .8rem !important;
  font-weight: 500 !important;
}

/* Checkboxes / radios — brand colors */
.wc-block-components-checkbox__input:checked + .wc-block-components-checkbox__mark,
.wc-block-components-checkbox__input:checked {
  background: var(--bomb-rouge) !important;
  border-color: var(--bomb-rouge) !important;
}
.wc-block-components-radio-control__option {
  position: relative;
  background: var(--bomb-white);
  border: 1.5px solid #DBDBDB !important;
  border-radius: 14px !important;
  padding: 1rem 1.25rem 1rem 3rem !important;
  margin-bottom: .65rem !important;
  cursor: pointer;
  transition: border-color .15s, box-shadow .15s, background .15s;
}
.wc-block-components-radio-control__option .wc-block-components-radio-control__input,
.wc-block-components-radio-control__option input[type="radio"] {
  position: absolute !important;
  left: 1.05rem !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  margin: 0 !important;
}
.wc-block-components-radio-control__option-layout,
.wc-block-components-radio-control__label {
  padding-left: 0 !important;
  margin-left: 0 !important;
}
.wc-block-components-radio-control__option:hover {
  border-color: var(--bomb-rouge) !important;
}
.wc-block-components-radio-control__option--checked,
.wc-block-components-radio-control__option-checked {
  border-color: var(--bomb-rouge) !important;
  background: rgba(221, 0, 75, .04) !important;
  box-shadow: 0 0 0 3px rgba(221, 0, 75, .08);
}
.wc-block-components-radio-control__input:checked {
  background: var(--bomb-rouge) !important;
  border-color: var(--bomb-rouge) !important;
}
.wc-block-components-radio-control__label {
  font-weight: 600;
  color: var(--bomb-bordeaux, #4A1822) !important;
}

/* Express payment area (Apple Pay / Google Pay) — top-of-page emphasis */
.wc-block-components-express-payment,
.wp-block-woocommerce-checkout-express-payment-block {
  background: var(--bomb-white) !important;
  border: 1px solid var(--bomb-grey-100, #EEE) !important;
  border-radius: 18px;
  padding: 1.25rem !important;
  margin-bottom: 1.5rem !important;
  box-shadow: 0 6px 18px rgba(0, 0, 0, .04);
}
.wc-block-components-express-payment__title-container,
.wc-block-components-express-payment__title {
  text-align: center;
  margin: 0 0 .85rem !important;
  font-family: var(--bomb-font-body) !important;
  font-size: .85rem !important;
  font-weight: 700 !important;
  letter-spacing: .14em !important;
  text-transform: uppercase !important;
  color: var(--bomb-rouge) !important;
}
.wc-block-components-express-payment__event-buttons,
.wc-block-components-express-payment__event-buttons button {
  border-radius: 12px !important;
  height: 48px !important;
  font-weight: 700 !important;
}
/* Separator "OR" line under express */
.wc-block-components-express-payment-continue-rule {
  margin: 1.25rem 0 !important;
  color: var(--bomb-grey-700) !important;
  font-size: .8rem !important;
  font-weight: 600 !important;
  letter-spacing: .12em !important;
  text-transform: uppercase !important;
  display: flex; align-items: center; gap: 1rem;
}
.wc-block-components-express-payment-continue-rule::before,
.wc-block-components-express-payment-continue-rule::after {
  content: ""; flex: 1; height: 1px;
  background: var(--bomb-grey-100, #EEE);
}

/* ----- Sidebar : order summary ----- */
.wp-block-woocommerce-checkout-order-summary-block {
  background: var(--bomb-white) !important;
  border-radius: 18px;
  padding: 1.75rem !important;
  box-shadow: 0 14px 32px rgba(0, 0, 0, .06);
  border: 1px solid var(--bomb-grey-100, #EEE);
}
.wp-block-woocommerce-checkout-order-summary-block .wc-block-components-totals-wrapper {
  background: transparent !important;
  border: 0 !important;
  padding: 0 !important;
  box-shadow: none !important;
}
.wc-block-components-order-summary-item {
  display: grid;
  grid-template-columns: 56px 1fr auto;
  gap: .85rem;
  align-items: center;
  padding: .75rem 0;
  border-bottom: 1px dashed var(--bomb-grey-100, #EEE);
}
.wc-block-components-order-summary-item:last-child { border-bottom: 0; }
.wc-block-components-order-summary-item__image img,
.wc-block-components-order-summary-item__image > * {
  width: 56px !important; height: 70px !important;
  border-radius: 10px !important;
  object-fit: cover !important;
}
.wc-block-components-order-summary-item__quantity {
  background: var(--bomb-rouge) !important;
  color: var(--bomb-white) !important;
  border-color: var(--bomb-rouge) !important;
  border-radius: 50% !important;
  width: 22px !important; height: 22px !important;
  font-size: .7rem !important;
  font-weight: 700 !important;
}
.wc-block-components-order-summary-item__description .wc-block-components-product-name {
  font-family: var(--bomb-font-display, inherit) !important;
  font-size: .95rem !important;
  font-weight: 700 !important;
  color: var(--bomb-bordeaux, #4A1822) !important;
}
.wc-block-components-order-summary-item__total-price,
.wc-block-components-order-summary-item__total-price .wc-block-components-formatted-money-amount {
  color: var(--bomb-rouge) !important;
  font-weight: 700 !important;
}

/* Place-order — the BIG pink conversion CTA */
.wc-block-components-checkout-place-order-button {
  display: flex !important; align-items: center; justify-content: center;
  width: 100% !important;
  padding: 1.1rem 1.5rem !important;
  background: var(--bomb-rouge) !important;
  color: var(--bomb-white) !important;
  border: 0 !important;
  border-radius: 999px !important;
  font-family: var(--bomb-font-body) !important;
  font-size: 1.05rem !important;
  font-weight: 700 !important;
  letter-spacing: .02em !important;
  text-transform: none !important;
  box-shadow: 0 12px 26px rgba(221, 0, 75, .28) !important;
  transition: background .2s, transform .2s, box-shadow .2s !important;
  margin-top: 1rem !important;
}
.wc-block-components-checkout-place-order-button:hover {
  background: var(--bomb-bordeaux, #4A1822) !important;
  transform: translateY(-2px);
  box-shadow: 0 16px 32px rgba(221, 0, 75, .38) !important;
}
.wc-block-components-checkout-place-order-button:disabled {
  opacity: .6 !important;
  cursor: not-allowed;
  transform: none !important;
}

/* ----- Réassurance & badges paiement (avant le bouton Commander) ----- */
.bomb-checkout-reassurance {
  margin: 1.5rem 0 1rem;
  padding: 1.5rem 1.75rem;
  border-radius: 18px;
  background: linear-gradient(180deg, #fdf7f3 0%, #fff 100%);
  border: 1px solid var(--bomb-grey-100, #EEE);
  box-shadow: 0 6px 18px rgba(74, 24, 34, .04);
}
.bomb-checkout-reassurance__row--badges {
  display: flex; flex-direction: column; align-items: center; gap: .65rem;
  padding-bottom: 1.25rem; margin-bottom: 1.25rem;
  border-bottom: 1px solid var(--bomb-grey-100, #EEE);
}
.bomb-checkout-reassurance__label {
  font-family: var(--bomb-font-body);
  font-size: .7rem; font-weight: 700;
  letter-spacing: .14em; text-transform: uppercase;
  color: var(--bomb-grey-700);
}
.bomb-checkout-reassurance__cards {
  display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem;
}
.bomb-pay-badge {
  display: inline-flex; align-items: center;
  background: #fff; border-radius: 6px;
  padding: 2px; line-height: 0;
}
.bomb-pay-badge svg { display: block; width: 40px; height: 26px; }
.bomb-checkout-reassurance__list {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.25rem;
}
.bomb-checkout-reassurance__list li {
  display: flex; gap: .65rem; align-items: flex-start;
}
.bomb-checkout-reassurance__list svg {
  color: var(--bomb-rouge); flex-shrink: 0; margin-top: 2px;
}
.bomb-checkout-reassurance__list strong {
  display: block;
  font-family: var(--bomb-font-display, inherit);
  font-size: .9rem; font-weight: 700;
  color: var(--bomb-bordeaux, #4A1822);
  margin-bottom: 2px;
}
.bomb-checkout-reassurance__list span {
  font-size: .78rem; line-height: 1.45; color: var(--bomb-grey-700);
}
.bomb-checkout-reassurance__note {
  margin: 1.25rem 0 0; padding-top: 1rem;
  border-top: 1px dashed var(--bomb-grey-100, #EEE);
  text-align: center; font-size: .8rem; color: var(--bomb-grey-700);
}
.bomb-checkout-reassurance__note a {
  color: var(--bomb-rouge); font-weight: 600;
  text-decoration: underline; text-underline-offset: 2px;
}
@media (max-width: 720px) {
  /* Sur mobile, on veut un parcours ultra-direct : Paiement → Commander.
     Le bandeau de réassurance est masqué pour ne pas s'intercaler. */
  .bomb-checkout-reassurance { display: none; }
}

/* Login link top of page */
.wc-block-checkout__login-prompt,
.wc-block-checkout-login-prompt-block {
  text-align: center; font-size: .9rem; color: var(--bomb-grey-700);
  margin: 0 0 1rem;
}
.wc-block-checkout__login-prompt a,
.wc-block-checkout-login-prompt-block a {
  color: var(--bomb-rouge) !important;
  font-weight: 600;
  text-decoration: underline; text-underline-offset: 3px;
}

/* Coupon panel (matches cart) */
.wc-block-components-totals-coupon { margin-top: 1rem; }

/* Responsive */
@media (max-width: 900px) {
  .wp-block-woocommerce-checkout .wc-block-checkout,
  .woocommerce-checkout .wc-block-checkout {
    display: flex;
    flex-direction: column;
    gap: 1rem;
  }
  /* Sur mobile : 1) Résumé de commande en premier, 2) Infos, 3) Paiement + CTA */
  .wc-block-checkout__sidebar { position: static; order: 1; margin-bottom: .5rem; }
  .wc-block-checkout__main    { order: 2; }
}
@media (max-width: 600px) {
  .bomb-checkout-hero { border-radius: 18px; padding: 1.75rem 1rem 1rem; margin: 1rem 0 1.25rem; }
  .bomb-checkout-trust { gap: .5rem .85rem; font-size: .75rem; }
  .bomb-checkout-trust li { font-size: .75rem; }
  .wc-block-checkout__contact-fields,
  .wc-block-checkout__shipping-fields,
  .wc-block-checkout__billing-fields,
  .wc-block-checkout__shipping-method,
  .wc-block-checkout__payment-method,
  .wc-block-checkout__additional-information,
  .wp-block-woocommerce-checkout-order-summary-block { padding: 1.25rem !important; border-radius: 16px; }
  .wc-block-components-checkout-place-order-button { padding: 1rem 1.25rem !important; font-size: 1rem !important; }
}

/* ===== WooCommerce Cart BLOCK (Gutenberg) — premium brand styling ========== */
.wp-block-woocommerce-cart .wc-block-cart {
  max-width: 1100px;
  margin: 0 auto;
}
.wc-block-cart__main { min-width: 0; }

/* Strip the legacy table header "PRODUIT | TOTAL" — we use card rows */
.wc-block-cart-items__header,
.wc-block-cart__main thead,
.wc-block-cart__main .wc-block-cart-items__header { display: none !important; }

/* Each row → card */
.wc-block-cart-items .wc-block-cart-items__row,
.wc-block-cart-items tr.wc-block-cart-items__row {
  background: var(--bomb-white) !important;
  border-radius: 16px;
  box-shadow: 0 4px 14px rgba(0, 0, 0, .04);
  border: 0 !important;
  padding: 1rem 1.25rem !important;
  margin-bottom: .85rem;
  display: grid !important;
  grid-template-columns: 90px 1fr auto auto 36px;
  gap: 1rem;
  align-items: center;
}
.wc-block-cart-items .wc-block-cart-items__row td { border: 0 !important; padding: 0 !important; background: transparent !important; }

.wc-block-cart-item__image,
.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__image {
  width: 90px !important; padding: 0 !important;
}
.wc-block-cart-item__image img {
  width: 90px !important; height: 110px !important;
  object-fit: cover;
  border-radius: 12px;
  background: #f6f6f6;
}

.wc-block-cart-item__product {
  display: flex; flex-direction: column; gap: .35rem;
  padding: 0 !important;
  min-width: 0;
}
.wc-block-components-product-name {
  font-family: var(--bomb-font-display, inherit) !important;
  font-size: 1.05rem !important;
  font-weight: 700 !important;
  color: var(--bomb-bordeaux, #4A1822) !important;
  text-decoration: none !important;
  line-height: 1.25 !important;
}
.wc-block-components-product-name:hover { color: var(--bomb-rouge) !important; }
.wc-block-components-product-metadata,
.wc-block-components-product-metadata__description,
.wc-block-cart-item__product .wc-block-components-product-metadata {
  font-size: .8rem !important;
  color: var(--bomb-grey-700) !important;
  margin: 0 !important;
}
.wc-block-components-product-metadata .wc-block-components-product-metadata__description-row {
  display: inline; margin-right: .25rem;
}
.wc-block-components-product-price,
.wc-block-cart-item__product .wc-block-components-product-price__value {
  color: var(--bomb-rouge) !important;
  font-weight: 600 !important;
  font-size: .9rem !important;
}

/* Quantity selector */
.wc-block-cart-item__quantity,
.wc-block-cart-items .wc-block-cart-item__quantity {
  padding: 0 !important;
  display: inline-flex; align-items: center;
}
.wc-block-components-quantity-selector {
  display: inline-flex !important;
  align-items: center;
  border: 1.5px solid var(--bomb-grey-100, #EEE) !important;
  border-radius: 999px !important;
  padding: .15rem;
  background: var(--bomb-white) !important;
  overflow: hidden;
}
.wc-block-components-quantity-selector__button {
  width: 28px !important; height: 28px !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 50% !important;
  color: var(--bomb-grey-700) !important;
  cursor: pointer;
  display: inline-flex !important; align-items: center; justify-content: center;
  font-size: 1.1rem !important;
  line-height: 1 !important;
  transition: background .15s, color .15s;
}
.wc-block-components-quantity-selector__button:hover:not(:disabled) {
  background: var(--bomb-rouge) !important;
  color: var(--bomb-white) !important;
}
.wc-block-components-quantity-selector__input {
  width: 36px !important;
  border: 0 !important;
  background: transparent !important;
  text-align: center !important;
  font-weight: 700 !important;
  font-family: var(--bomb-font-body) !important;
  color: var(--bomb-bordeaux, #4A1822) !important;
  padding: 0 !important;
}

/* Subtotal column */
.wc-block-cart-item__total,
.wc-block-cart-items .wc-block-cart-item__total {
  padding: 0 !important;
  text-align: right !important;
}
.wc-block-cart-item__total .wc-block-components-product-price__value,
.wc-block-cart-item__total .wc-block-components-formatted-money-amount {
  color: var(--bomb-rouge) !important;
  font-weight: 700 !important;
  font-size: 1rem !important;
}

/* Remove link → round trash button (hide any inner SVG/text WC injects) */
.wc-block-cart-item__remove-link {
  background: var(--bomb-grey-100, #f0f0f0) !important;
  color: var(--bomb-grey-700) !important;
  border-radius: 50% !important;
  width: 36px; height: 36px;
  display: inline-flex !important; align-items: center; justify-content: center;
  font-size: 0 !important;
  text-decoration: none !important;
  border: 0 !important;
  transition: background .15s, color .15s, transform .2s;
  position: relative;
  overflow: hidden;
}
.wc-block-cart-item__remove-link > * { display: none !important; } /* kill any inner icon WC adds */
.wc-block-cart-item__remove-link::before {
  content: "";
  width: 16px; height: 16px;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='3 6 5 6 21 6'/><path d='M19 6l-2 14a2 2 0 0 1-2 2H9a2 2 0 0 1-2-2L5 6'/><path d='M10 11v6M14 11v6'/><path d='M9 6V4a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v2'/></svg>") center / contain no-repeat;
  mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='3 6 5 6 21 6'/><path d='M19 6l-2 14a2 2 0 0 1-2 2H9a2 2 0 0 1-2-2L5 6'/><path d='M10 11v6M14 11v6'/><path d='M9 6V4a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v2'/></svg>") center / contain no-repeat;
}
.wc-block-cart-item__remove-link:hover {
  background: var(--bomb-rouge) !important;
  color: var(--bomb-white) !important;
  transform: rotate(10deg);
}

/* ===== Sidebar — "Total panier" totals card =============================== */
.wp-block-woocommerce-cart-order-summary-block,
.wc-block-components-totals-wrapper {
  background: var(--bomb-white) !important;
  border-radius: 18px;
  padding: 1.75rem !important;
  box-shadow: 0 14px 32px rgba(0, 0, 0, .06);
  border: 1px solid var(--bomb-grey-100, #EEE);
}
.wc-block-components-totals-wrapper > h2,
.wp-block-woocommerce-cart-order-summary-heading-block .wc-block-components-totals-item__label,
.wc-block-components-totals-item__label.wc-block-cart__totals-title,
.wc-block-cart__totals-title {
  font-family: var(--bomb-font-display, inherit) !important;
  font-size: 1.35rem !important;
  font-weight: 700 !important;
  color: var(--bomb-bordeaux, #4A1822) !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  margin: 0 0 1rem !important;
  padding-bottom: .85rem !important;
  border-bottom: 2px solid rgba(221, 0, 75, .15) !important;
  display: block;
}

.wc-block-components-totals-item {
  padding: .65rem 0 !important;
  border-bottom: 1px dashed var(--bomb-grey-100, #EEE) !important;
  display: flex; justify-content: space-between; align-items: baseline;
}
.wc-block-components-totals-item:last-child { border-bottom: 0 !important; }
.wc-block-components-totals-item__label {
  font-weight: 600 !important;
  color: var(--bomb-grey-700) !important;
  font-size: .9rem !important;
}
.wc-block-components-totals-item__value,
.wc-block-components-totals-item .wc-block-components-formatted-money-amount {
  font-weight: 700 !important;
  color: var(--bomb-bordeaux, #4A1822) !important;
}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
  font-size: 1.1rem !important;
  color: var(--bomb-rouge) !important;
}
.wc-block-components-totals-footer-item .wc-block-components-formatted-money-amount {
  font-size: 1.4rem !important;
  color: var(--bomb-rouge) !important;
}

/* Coupon expandable & gift-card field — pill inputs */
.wc-block-components-totals-coupon__form,
.wc-block-components-totals-coupon input[type="text"],
.wc-block-components-text-input input {
  border-radius: 12px !important;
}
.wc-block-components-totals-coupon input[type="text"],
.wc-block-components-text-input input,
.wp-block-woocommerce-cart-order-summary-coupon-form-block input[type="text"] {
  border: 1.5px solid #DBDBDB !important;
  padding: .65rem 1rem !important;
  font-family: var(--bomb-font-body) !important;
  font-size: .9rem !important;
  background: var(--bomb-white) !important;
}
.wc-block-components-totals-coupon input[type="text"]:focus,
.wc-block-components-text-input input:focus {
  outline: 0 !important;
  border-color: var(--bomb-rouge) !important;
  box-shadow: 0 0 0 3px rgba(221, 0, 75, .12) !important;
}
.wc-block-components-totals-coupon__button,
.wp-block-woocommerce-cart-order-summary-coupon-form-block button {
  background: var(--bomb-rouge) !important;
  color: var(--bomb-white) !important;
  border-radius: 999px !important;
  border: 0 !important;
  padding: .45rem .9rem !important;       /* réduit (était .65rem 1.25rem) */
  font-family: var(--bomb-font-body) !important;
  font-weight: 600 !important;             /* réduit (était 700) */
  font-size: .75rem !important;            /* réduit (était .85rem) */
  line-height: 1.2 !important;
  min-height: 0 !important;                /* annule la hauteur min WC blocks */
  height: auto !important;
  white-space: nowrap !important;
  flex: 0 0 auto !important;               /* empêche le bouton de stretcher */
  cursor: pointer !important;
  transition: background .2s !important;
}
.wc-block-components-totals-coupon__button:hover,
.wp-block-woocommerce-cart-order-summary-coupon-form-block button:hover {
  background: var(--bomb-bordeaux, #4A1822) !important;
}
/* PW Gift Cards block — premium card style matching the brand */
.wp-block-pw-woocommerce-gift-cards-checkout-block,
.wp-block-pw-woocommerce-gift-cards-cart-block,
[class*="pw-woocommerce-gift-cards"][class*="block"] {
  background: var(--bomb-white) !important;
  border-radius: 18px;
  padding: 1.25rem 1.75rem !important;
  box-shadow: 0 14px 32px rgba(0, 0, 0, .06);
  border: 1px solid var(--bomb-grey-100, #EEE);
  margin-top: 1rem !important;
}
/* "Vous avez une carte-cadeau ?" summary */
[class*="pw-woocommerce-gift-cards"] .wc-block-components-panel__button,
.pwgc-applied-gift-cards-title,
[class*="gift-card"] > summary,
[class*="gift-card"] .wc-block-components-panel__button {
  font-family: var(--bomb-font-body) !important;
  font-weight: 600 !important;
  font-size: 1rem !important;
  color: var(--bomb-bordeaux, #4A1822) !important;
  padding: 0 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}
/* Pill input for gift card number */
[class*="pw-woocommerce-gift-cards"] input[type="text"],
[class*="gift-card"] input[type="text"],
input[placeholder*="carte-cadeau" i],
input[placeholder*="gift card" i] {
  border: 1.5px solid #DBDBDB !important;
  border-radius: 999px !important;
  padding: .65rem 1rem !important;
  font-family: var(--bomb-font-body) !important;
  font-size: .9rem !important;
  background: var(--bomb-white) !important;
  width: 100%;
  transition: border-color .15s, box-shadow .15s;
}
[class*="pw-woocommerce-gift-cards"] input[type="text"]:focus,
[class*="gift-card"] input[type="text"]:focus,
input[placeholder*="carte-cadeau" i]:focus,
input[placeholder*="gift card" i]:focus {
  outline: 0 !important;
  border-color: var(--bomb-rouge) !important;
  box-shadow: 0 0 0 3px rgba(221, 0, 75, .12) !important;
}
/* Apply gift-card button */
.pwgc-apply-gift-card-button,
[class*="pw-woocommerce-gift-cards"] button:not(.wc-block-components-panel__button) {
  display: inline-flex !important; align-items: center; justify-content: center;
  width: 100% !important;
  margin-top: .65rem !important;
  padding: .75rem 1.25rem !important;
  background: var(--bomb-rouge) !important;
  color: var(--bomb-white) !important;
  border: 0 !important;
  border-radius: 999px !important;
  font-family: var(--bomb-font-body) !important;
  font-size: .9rem !important;
  font-weight: 700 !important;
  letter-spacing: .02em !important;
  cursor: pointer !important;
  transition: background .2s, transform .15s !important;
}
.pwgc-apply-gift-card-button:hover,
[class*="pw-woocommerce-gift-cards"] button:not(.wc-block-components-panel__button):hover {
  background: var(--bomb-bordeaux, #4A1822) !important;
  transform: translateY(-1px);
}
/* Applied gift-card chips */
.pwgc-applied-gift-cards-list { list-style: none; margin: .75rem 0 0; padding: 0; }
.pwgc-applied-gift-cards-item {
  display: flex; justify-content: space-between; align-items: center;
  padding: .5rem .75rem;
  background: rgba(221, 0, 75, .08);
  color: var(--bomb-rouge);
  border-radius: 999px;
  font-size: .85rem;
  font-weight: 600;
  margin-bottom: .35rem;
}
.pwgc-remove-gift-card {
  background: transparent;
  border: 0;
  color: var(--bomb-rouge);
  cursor: pointer;
  font-size: 1rem;
  line-height: 1;
}

/* Collapsible "Ajouter des codes promo" heading */
.wc-block-components-panel__button,
.wp-block-woocommerce-cart-order-summary-coupon-form-block .wc-block-components-panel__button {
  font-family: var(--bomb-font-body) !important;
  font-weight: 600 !important;
  color: var(--bomb-bordeaux, #4A1822) !important;
}

/* "Valider la commande" — big rouge pill */
.wp-block-woocommerce-proceed-to-checkout-block .wc-block-cart__submit-container,
.wc-block-cart__submit-container,
.wp-block-woocommerce-proceed-to-checkout-block {
  margin-top: 1.25rem !important;
}
.wc-block-cart__submit-button,
.wp-block-woocommerce-proceed-to-checkout-block .wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button,
a.wc-block-cart__submit-button {
  display: flex !important;
  align-items: center; justify-content: center;
  width: 100% !important;
  padding: 1rem 1.5rem !important;
  background: var(--bomb-rouge) !important;
  color: var(--bomb-white) !important;
  border: 0 !important;
  border-radius: 999px !important;
  font-family: var(--bomb-font-body) !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
  letter-spacing: .02em !important;
  text-transform: none !important;
  text-decoration: none !important;
  box-shadow: 0 10px 24px rgba(221, 0, 75, .25) !important;
  transition: background .2s, transform .2s, box-shadow .2s !important;
}
.wc-block-cart__submit-button:hover,
.wp-block-woocommerce-proceed-to-checkout-block .wc-block-cart__submit-button:hover {
  background: var(--bomb-bordeaux, #4A1822) !important;
  transform: translateY(-2px);
  box-shadow: 0 14px 28px rgba(221, 0, 75, .35) !important;
}

/* Responsive */
@media (max-width: 600px) {
  .wc-block-cart-items .wc-block-cart-items__row,
  .wc-block-cart-items tr.wc-block-cart-items__row {
    grid-template-columns: 72px 1fr 32px !important;
    grid-template-areas:
      "img name remove"
      "img qty  subtotal" !important;
    gap: .65rem 1rem;
    padding: .85rem 1rem !important;
  }
  .wc-block-cart-item__image { grid-area: img; }
  .wc-block-cart-item__image img { width: 72px !important; height: 88px !important; }
  .wc-block-cart-item__product { grid-area: name; }
  .wc-block-cart-item__quantity { grid-area: qty; }
  .wc-block-cart-item__total { grid-area: subtotal; justify-self: end; align-self: end; }
  .wc-block-cart-item__remove-link { grid-area: remove; justify-self: end; align-self: start; width: 28px; height: 28px; }
  .wc-block-cart-item__remove-link::before { width: 14px; height: 14px; }
  .wp-block-woocommerce-cart-order-summary-block,
  .wc-block-components-totals-wrapper { padding: 1.25rem !important; border-radius: 16px; }
}

/* ===== Empty cart — premium girly pink ===================================== */
.woocommerce-cart .cart-empty.woocommerce-info {
  background: transparent !important;
  border: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  color: inherit !important;
}
.woocommerce-cart .cart-empty.woocommerce-info::before { content: none !important; }
.woocommerce-cart .return-to-shop { display: none !important; }   /* our card has its own CTAs */
.woocommerce-cart h1.entry-title { display: none; }               /* hide bare "Panier" title; we have our own headline */

.bomb-cart-empty {
  position: relative;
  max-width: 720px;
  margin: 2rem auto 4rem;
  padding: 4rem 2.5rem 3.5rem;
  background: linear-gradient(160deg, var(--bomb-pink-hero, #FFD2E1) 0%, var(--bomb-pink-soft, #FCE4E8) 100%);
  border-radius: 28px;
  text-align: center;
  box-shadow: 0 24px 60px rgba(221, 0, 75, .15);
  overflow: hidden;
}
.bomb-cart-empty__sparkles {
  position: absolute; inset: 0; pointer-events: none;
}
.bomb-cart-empty__sparkle {
  position: absolute;
  fill: var(--bomb-white);
  opacity: .9;
  filter: drop-shadow(0 2px 6px rgba(221, 0, 75, .2));
  animation: bomb-cart-sparkle 4s ease-in-out infinite;
}
.bomb-cart-empty__sparkle--a { top: 12%;  left: 8%;  width: 36px; height: 36px; animation-delay: 0s;   }
.bomb-cart-empty__sparkle--b { top: 18%;  right: 11%; width: 24px; height: 24px; animation-delay: .8s; }
.bomb-cart-empty__sparkle--c { bottom: 18%; left: 12%; width: 20px; height: 20px; animation-delay: 1.6s; }
@keyframes bomb-cart-sparkle {
  0%, 100% { transform: translate(0, 0) rotate(0deg) scale(1); opacity: .9; }
  50%      { transform: translate(6px, -8px) rotate(180deg) scale(1.15); opacity: 1; }
}
.bomb-cart-empty__icon {
  position: relative; z-index: 1;
  display: inline-flex; align-items: center; justify-content: center;
  width: 110px; height: 110px;
  margin: 0 auto 1.5rem;
  background: var(--bomb-white);
  border-radius: 50%;
  color: var(--bomb-rouge);
  box-shadow: 0 10px 26px rgba(221, 0, 75, .18);
}
.bomb-cart-empty__title {
  position: relative; z-index: 1;
  font-family: var(--bomb-font-display, inherit);
  font-weight: 700;
  font-size: clamp(1.75rem, 3.5vw, 2.5rem);
  line-height: 1.15;
  color: var(--bomb-bordeaux, #4A1822);
  margin: 0 0 1rem;
}
.bomb-cart-empty__title em { font-style: italic; font-weight: 400; color: var(--bomb-rouge); }
.bomb-cart-empty__text {
  position: relative; z-index: 1;
  margin: 0 auto 2rem;
  max-width: 480px;
  color: var(--bomb-grey-700, #555);
  font-size: 1rem;
  line-height: 1.55;
}
.bomb-cart-empty__actions {
  position: relative; z-index: 1;
  display: flex; flex-wrap: wrap; gap: .75rem;
  justify-content: center;
}
.bomb-cart-empty__cta,
.bomb-cart-empty__cta-secondary {
  display: inline-flex; align-items: center; gap: .5rem;
  padding: .85rem 1.5rem;
  border-radius: 999px;
  font-family: var(--bomb-font-body);
  font-size: .95rem; font-weight: 700; letter-spacing: .02em;
  text-decoration: none;
  transition: background .2s, color .2s, transform .2s, box-shadow .2s, border-color .2s;
}
.bomb-cart-empty__cta {
  background: var(--bomb-rouge);
  color: var(--bomb-white);
  border: 2px solid var(--bomb-rouge);
  box-shadow: 0 8px 20px rgba(221, 0, 75, .25);
}
.bomb-cart-empty__cta:hover {
  background: var(--bomb-bordeaux, #4A1822);
  border-color: var(--bomb-bordeaux, #4A1822);
  color: var(--bomb-white);
  transform: translateY(-2px);
  box-shadow: 0 12px 26px rgba(221, 0, 75, .35);
}
.bomb-cart-empty__cta-secondary {
  background: transparent;
  color: var(--bomb-rouge);
  border: 2px solid var(--bomb-rouge);
}
.bomb-cart-empty__cta-secondary:hover {
  background: var(--bomb-rouge);
  color: var(--bomb-white);
  transform: translateY(-2px);
}
@media (max-width: 600px) {
  .bomb-cart-empty { padding: 3rem 1.25rem 2.5rem; border-radius: 22px; }
  .bomb-cart-empty__icon { width: 92px; height: 92px; }
  .bomb-cart-empty__actions { flex-direction: column; }
  .bomb-cart-empty__cta,
  .bomb-cart-empty__cta-secondary { justify-content: center; width: 100%; }
  .bomb-cart-empty__sparkle--a { width: 28px; height: 28px; }
}
@media (prefers-reduced-motion: reduce) {
  .bomb-cart-empty__sparkle { animation: none; }
}

/* ===== Pagination — premium pill style ===================================== */
.woocommerce nav.woocommerce-pagination,
.woocommerce-page nav.woocommerce-pagination {
  margin: 3rem 0 1rem !important;
  text-align: center !important;
  border: 0 !important;
}
.woocommerce nav.woocommerce-pagination ul,
.woocommerce-page nav.woocommerce-pagination ul {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: .35rem;
  margin: 0 auto !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}
.woocommerce nav.woocommerce-pagination ul li,
.woocommerce-page nav.woocommerce-pagination ul li {
  display: inline-flex !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  overflow: visible !important;
}
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span,
.woocommerce-page nav.woocommerce-pagination ul li a,
.woocommerce-page nav.woocommerce-pagination ul li span {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-width: 42px;
  height: 42px;
  padding: 0 .8rem !important;
  margin: 0 !important;
  background: var(--bomb-white) !important;
  color: var(--bomb-grey-950) !important;
  border: 1px solid transparent !important;
  border-radius: 999px !important;
  font-family: var(--bomb-font-body) !important;
  font-size: .95rem !important;
  font-weight: 600 !important;
  line-height: 1 !important;
  letter-spacing: .02em;
  text-decoration: none !important;
  transition: background .2s ease, color .2s ease, border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce-page nav.woocommerce-pagination ul li a:hover {
  background: var(--bomb-white) !important;
  color: var(--bomb-rouge) !important;
  border-color: var(--bomb-rouge) !important;
  transform: translateY(-1px);
  box-shadow: 0 6px 14px rgba(221, 0, 75, .15);
}
.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce-page nav.woocommerce-pagination ul li span.current {
  background: var(--bomb-rouge) !important;
  color: var(--bomb-white) !important;
  border-color: var(--bomb-rouge) !important;
  box-shadow: 0 6px 16px rgba(221, 0, 75, .25);
}
.woocommerce nav.woocommerce-pagination ul li span.dots,
.woocommerce-page nav.woocommerce-pagination ul li span.dots {
  background: transparent !important;
  color: var(--bomb-grey-700) !important;
  box-shadow: none !important;
  min-width: 24px;
}
/* Prev / Next arrows — turn them into icon buttons */
.woocommerce nav.woocommerce-pagination ul li a.prev,
.woocommerce nav.woocommerce-pagination ul li a.next,
.woocommerce-page nav.woocommerce-pagination ul li a.prev,
.woocommerce-page nav.woocommerce-pagination ul li a.next {
  font-size: 0 !important;
  padding: 0 !important;
  width: 42px;
  background-color: var(--bomb-rouge) !important;
  color: var(--bomb-white) !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: 16px 16px !important;
}
.woocommerce nav.woocommerce-pagination ul li a.prev,
.woocommerce-page nav.woocommerce-pagination ul li a.prev {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><polyline points='15 18 9 12 15 6'/></svg>") !important;
}
.woocommerce nav.woocommerce-pagination ul li a.next,
.woocommerce-page nav.woocommerce-pagination ul li a.next {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><polyline points='9 18 15 12 9 6'/></svg>") !important;
}
.woocommerce nav.woocommerce-pagination ul li a.prev:hover,
.woocommerce nav.woocommerce-pagination ul li a.next:hover,
.woocommerce-page nav.woocommerce-pagination ul li a.prev:hover,
.woocommerce-page nav.woocommerce-pagination ul li a.next:hover {
  background-color: var(--bomb-bordeaux, #4A1822) !important;
  border-color: transparent !important;
  transform: translateY(-1px);
  box-shadow: 0 8px 18px rgba(221, 0, 75, .3);
}
@media (max-width: 480px) {
  .woocommerce nav.woocommerce-pagination ul,
  .woocommerce-page nav.woocommerce-pagination ul { gap: .25rem; }
  .woocommerce nav.woocommerce-pagination ul li a,
  .woocommerce nav.woocommerce-pagination ul li span,
  .woocommerce-page nav.woocommerce-pagination ul li a,
  .woocommerce-page nav.woocommerce-pagination ul li span {
    min-width: 36px; height: 36px; padding: 0 .55rem !important; font-size: .9rem !important;
  }
  .woocommerce nav.woocommerce-pagination ul li a.prev,
  .woocommerce nav.woocommerce-pagination ul li a.next,
  .woocommerce-page nav.woocommerce-pagination ul li a.prev,
  .woocommerce-page nav.woocommerce-pagination ul li a.next { width: 36px; }
}

/* Defensive: force the products list to start fresh on its own row, full width. */
.woocommerce ul.products,
.woocommerce-page ul.products,
main ul.products {
  clear: both !important;
  width: 100% !important;
  float: none !important;
}
/* Kill any stray result-count/ordering that escaped the toolbar wrapper */
main > .woocommerce-result-count,
main > .woocommerce-ordering,
.container > .woocommerce-result-count,
.container > .woocommerce-ordering {
  float: none !important;
  display: block;
  width: 100%;
}

/* Shop archive loop — bigger product cards inspired by perpete.co */
.woocommerce ul.products,
.woocommerce-page ul.products {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: .5rem !important;                /* tight gap like perpete */
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product,
.woocommerce ul.products li.product.first,
.woocommerce-page ul.products li.product.first,
.woocommerce ul.products li.product.last,
.woocommerce-page ul.products li.product.last {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
  clear: none !important;     /* neutralise le clear:both par défaut de Woo sur .first */
}
/* Hide subcategory cards in the loop — we list products only on category archives */
.woocommerce ul.products li.product-category,
.woocommerce-page ul.products li.product-category { display: none !important; }
/* Neutralise WC's clearfix pseudo-elements — in CSS grid they steal the first/last cell */
.woocommerce ul.products::before,
.woocommerce ul.products::after,
.woocommerce-page ul.products::before,
.woocommerce-page ul.products::after,
main ul.products::before,
main ul.products::after { content: none !important; display: none !important; }
.bomb-product-card__images {
  position: relative;
  aspect-ratio: 3/4;
  overflow: hidden;
  background: #f6f6f6;
  margin-bottom: 1rem;
}
/* Badge "Rupture" sur le coin haut-gauche des cartes produit */
.bomb-product-card__badge {
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 3;
  display: inline-block;
  padding: 5px 11px;
  border-radius: 999px;
  font-family: var(--bomb-font-body, system-ui, sans-serif);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
  line-height: 1;
  pointer-events: none;
  box-shadow: 0 2px 8px rgba(0, 0, 0, .12);
}
.bomb-product-card__badge--soldout {
  background: #1A1A1A;
  color: #fff;
}
/* Atténue les images des produits en rupture (signal visuel doux) */
.bomb-product-card:has(.bomb-product-card__badge--soldout) .bomb-product-card__img {
  filter: grayscale(.35) opacity(.85);
  transition: filter .25s ease;
}
.bomb-product-card:has(.bomb-product-card__badge--soldout):hover .bomb-product-card__img {
  filter: grayscale(0) opacity(1);
}
.bomb-product-card__img {
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
  margin: 0 !important;
  transition: opacity .3s ease, transform .4s ease;
}
.bomb-product-card__img--hover { opacity: 0; }
/* Hover-swap UNIQUEMENT si une 2e image existe (sinon l'image principale
 * passait à opacity:0 sans relève → fond gris visible = bug "image disparaît").
 * :has() supporté Chrome 105+ / Safari 15.4+ / Firefox 121+ — fallback : pas de swap. */
li.product:has(.bomb-product-card__img--hover):hover .bomb-product-card__img--hover,
.bomb-product-card:has(.bomb-product-card__img--hover):hover .bomb-product-card__img--hover { opacity: 1; }
li.product:has(.bomb-product-card__img--hover):hover .bomb-product-card__img--main,
.bomb-product-card:has(.bomb-product-card__img--hover):hover .bomb-product-card__img--main { opacity: 0; }
/* Uniformisation hover : si pas de 2e image, pas d'effet (sinon zoom écrasait
 * visuellement le border-radius — incohérent avec les cards à 2 images). */

@media (max-width: 1100px) {
  .woocommerce ul.products,
  .woocommerce-page ul.products { grid-template-columns: repeat(3, 1fr) !important; }
}
@media (max-width: 720px) {
  .woocommerce ul.products,
  .woocommerce-page ul.products { grid-template-columns: repeat(2, 1fr) !important; }
}
.bomb-product-card__name {
  margin: 1rem 0 .25rem; font-size: .875rem; letter-spacing: .04em; text-transform: uppercase; font-weight: 600;
}
.bomb-product-card__price {
  color: var(--bomb-rouge);
  font-size: .95rem;
  font-weight: 600;
}

/* Product price — pink on every card thumbnail across the site */
.bomb-product-card__price,
.bomb-product-card__price *,
.woocommerce ul.products li.product .price,
.woocommerce ul.products li.product .price *,
.woocommerce ul.products li.product .woocommerce-Price-amount,
.woocommerce ul.products li.product .amount {
  color: var(--bomb-rouge) !important;
}
.woocommerce ul.products li.product .price del,
.woocommerce ul.products li.product .price del * {
  color: var(--bomb-grey-400, #9aa0a3) !important;   /* old price stays grey, struck-through */
  text-decoration: line-through;
}

/* Exception: cards inside the pink "Vous aimerez aussi…" section → white price for contrast */
.bomb-related-products .bomb-product-card__price,
.bomb-related-products .bomb-product-card__price * {
  color: rgba(255, 255, 255, .92) !important;
}

/* =========================
   HOME — Triple banner
   ========================= */
.bomb-triple-section { width: 100%; }
.bomb-triple {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 0;            /* cards edge-to-edge like Figma */
  width: 100%;
  margin-block: 4rem;
}
.bomb-triple__card {
  position: relative;
  min-height: 685px;
  display: flex;
  flex-direction: column;
  color: var(--bomb-white);
  overflow: hidden;
}
.bomb-triple__card--bg-rouge    .bomb-triple__content { background: var(--bomb-rouge); }
.bomb-triple__card--bg-bordeaux .bomb-triple__content { background: var(--bomb-bordeaux); }
.bomb-triple__card--bg-pink     .bomb-triple__content { background: var(--bomb-pink); }
.bomb-triple__card--bg-pink-mid .bomb-triple__content { background: var(--bomb-pink-mid); }
.bomb-triple__card--bg-orange   .bomb-triple__content { background: var(--bomb-orange); }

/* full_solid : content fills the entire card */
.bomb-triple__card--full_solid .bomb-triple__content {
  flex: 1;
  justify-content: flex-end;
}

/* image_top : image grows, content sits at bottom (fixed height) */
.bomb-triple__card--image_top .bomb-triple__image { flex: 1; min-height: 370px; }
.bomb-triple__card--image_top .bomb-triple__content { min-height: 315px; }

/* image_bottom : content sits at top (fixed height), image grows below */
.bomb-triple__card--image_bottom .bomb-triple__content { min-height: 369px; }
.bomb-triple__card--image_bottom .bomb-triple__image { flex: 1; min-height: 316px; }

.bomb-triple__image {
  background-size: cover;
  background-position: center;
  width: 100%;
}

.bomb-triple__content {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 40px 30px;
  gap: 1.5rem;
}
.bomb-triple__text {
  display: flex;
  flex-direction: column;
  gap: .5rem;        /* title and description stay tight together */
}
.bomb-triple__card--full_solid .bomb-triple__content { padding: 70px 40px; gap: 2.5rem; }
.bomb-triple__sparkle {
  width: 60px;
  height: 60px;
  color: var(--bomb-white);
  margin-bottom: auto;
  animation: bomb-sparkle-twinkle 6s ease-in-out infinite;
  transform-origin: center;
}

/* Sparkle twinkle — subtle pro animation reused by all star icons */
@keyframes bomb-sparkle-twinkle {
  0%, 100% { transform: translate(0, 0)        rotate(0deg)   scale(1);    opacity: 1;   }
  25%      { transform: translate(10px, -8px)  rotate(90deg)  scale(1.08); opacity: .9;  }
  50%      { transform: translate(-6px, 12px)  rotate(180deg) scale(.94);  opacity: 1;   }
  75%      { transform: translate(-12px, -6px) rotate(270deg) scale(1.05); opacity: .92; }
}
.bomb-hero__sparkle,
.bomb-page-hero__sparkle,
.bomb-concept__sparkle svg,
.bomb-histoire-tri__sparkle svg,
.bomb-gift__content > svg {
  animation: bomb-sparkle-twinkle 6s ease-in-out infinite;
  transform-origin: center;
}

/* Respect user motion preferences */
@media (prefers-reduced-motion: reduce) {
  .bomb-triple__sparkle,
  .bomb-hero__sparkle,
  .bomb-page-hero__sparkle,
  .bomb-concept__sparkle svg,
  .bomb-histoire-tri__sparkle svg,
  .bomb-gift__content > svg { animation: none; }
}

.bomb-triple__overline {
  font-size: .9rem;
  letter-spacing: .04em;
  text-transform: uppercase;
  margin: 0;
  opacity: .95;
  font-weight: 400;
}
.bomb-triple__title {
  font-family: var(--bomb-font-display);
  font-size: clamp(1.75rem, 2.6vw, 2.5rem);
  font-weight: 700;
  line-height: 1.2;
  margin: 0;
  max-width: 18ch;
}
.bomb-triple__card--full_solid .bomb-triple__title { font-size: clamp(2.25rem, 3.6vw, 3.5rem); max-width: 14ch; }
.bomb-triple__cta { align-self: flex-start; }

/* =========================
   HOME — Gift card banner
   ========================= */
/* Leopard-print bands framing the gift-card section — scroll horizontally */
.bomb-gift__leopard {
  height: 35px;
  background-image: url('../images/leopard-pattern.png');
  background-repeat: repeat-x;
  background-size: 200px auto;
  background-position: 0 center;
  animation: bomb-leopard-scroll 18s linear infinite;
  will-change: background-position;
}
/* Top band scrolls left → right ; bottom band scrolls right → left (opposite direction) */
.bomb-gift-wrap .bomb-gift__leopard:last-child {
  animation-direction: reverse;
}
@keyframes bomb-leopard-scroll {
  from { background-position: 0 center; }
  to   { background-position: 200px center; }   /* = one tile = seamless loop */
}
@media (prefers-reduced-motion: reduce) {
  .bomb-gift__leopard { animation: none; }
}
.bomb-gift {
  background: var(--bomb-magenta);
  color: var(--bomb-white);
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: 0;
  padding: 0;
}
.bomb-gift__image img { width: 100%; height: 100%; object-fit: cover; max-height: 558px; }
.bomb-gift__content {
  padding: 4rem;
  padding-right: var(--bomb-edge-pad);
  display: flex; flex-direction: column; gap: 1.5rem;
}
.bomb-gift__content > svg { color: var(--bomb-white); width: 44px; height: 96px; }
.bomb-gift__title { font-size: clamp(2rem, 3.5vw, 3rem); margin: 0; }

/* Gift CTA — white pill, magenta text, red arrow circle */
.btn--gift {
  background: var(--bomb-white);
  color: var(--bomb-magenta);
  border: 1px solid var(--bomb-rouge);
  padding-right: 6px;
}
.btn--gift::after {
  content: "\2197";
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px; height: 32px;
  background: var(--bomb-rouge);
  color: var(--bomb-white);
  border-radius: 999px;
  font-size: 1rem;
}
.btn--gift:hover { background: var(--bomb-rouge); color: var(--bomb-white); }

/* =========================
   HOME — Instagram feed
   ========================= */
.bomb-insta {
  padding-block: 5rem;
  text-align: center;
  background: var(--bomb-pink);       /* pink section background — matches maquette */
  color: var(--bomb-white);
}
.bomb-insta__title {
  font-family: var(--bomb-font-display);
  font-size: clamp(1.75rem, 3vw, 2.75rem);
  margin: 0 auto 1.5rem;
  max-width: 32ch;
  font-weight: 700;
  color: var(--bomb-white);
}
.bomb-insta__title em { font-style: italic; font-weight: 400; }
.bomb-insta__cta-wrap { margin-bottom: 3rem; }

/* Carousel — horizontal scroll-snap, edge-bleed left padding to match container */
.bomb-insta__carousel { position: relative; }
.bomb-insta__track {
  display: flex;
  gap: 1.5rem;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  padding-inline: var(--bomb-edge-pad);
  padding-bottom: 1rem;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.bomb-insta__track::-webkit-scrollbar { display: none; }

.bomb-insta__item {
  position: relative;
  flex: 0 0 calc((100% - 3 * 1.5rem) / 4);   /* 4 visible by default */
  aspect-ratio: 3/4;
  overflow: hidden;
  scroll-snap-align: start;
  text-decoration: none;
}
.bomb-insta__item img { width: 100%; height: 100%; object-fit: cover; }
.bomb-insta__item--video::after {
  content: "";
  position: absolute; top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: 60px; height: 60px;
  background: rgba(255,255,255,.95);
  clip-path: polygon(30% 20%, 80% 50%, 30% 80%);
  pointer-events: none;
}
.bomb-insta__item--video::before {
  content: "";
  position: absolute; top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: 76px; height: 76px;
  background: rgba(0,0,0,.25);
  border-radius: 50%;
  pointer-events: none;
}

/* Nav arrows */
.bomb-insta__nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
  width: 44px; height: 44px;
  background: var(--bomb-white);
  border: 1px solid var(--bomb-grey-300);
  border-radius: 999px;
  display: inline-flex; align-items: center; justify-content: center;
  cursor: pointer;
  color: var(--bomb-grey-950);
  box-shadow: 0 2px 8px rgba(0,0,0,.08);
  transition: background .15s, color .15s;
}
.bomb-insta__nav:hover { background: var(--bomb-rouge); color: var(--bomb-white); border-color: var(--bomb-rouge); }
.bomb-insta__nav--prev { left: 1rem; }
.bomb-insta__nav--next { right: 1rem; }

@media (max-width: 1100px) {
  .bomb-insta__item { flex-basis: calc((100% - 2 * 1.5rem) / 3); }
}
@media (max-width: 720px) {
  .bomb-insta__item { flex-basis: calc((100% - 1.5rem) / 2); }
}
@media (max-width: 480px) {
  .bomb-insta__item { flex-basis: 80%; }
}

/* =========================
   STATIC PAGES — Shared
   ========================= */
.bomb-page-section { padding-block: 5rem; }
.bomb-page-section--reverse {
  background: var(--bomb-rouge);
  color: var(--bomb-white);
  padding-block: 0;        /* image fills section height */
}
.bomb-page-section--reverse .bomb-split__content { padding-block: clamp(3rem, 6vw, 5rem); }
.bomb-page-section--reverse .bomb-split__text { color: var(--bomb-white); }

/* Page hero — proportions 1.62fr (text-bordeaux) / 1fr (image), Figma 892/548 */
.bomb-page-hero {
  background: var(--bomb-rouge);
  color: var(--bomb-white);
  display: flex;
  min-height: 566px;
}
.bomb-page-hero__content {
  flex: 1.62 1 0;
  padding: 70px 80px 70px var(--bomb-edge-pad);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  gap: 2.5rem;
}
.bomb-page-hero__sparkle { width: 54px; height: 54px; color: var(--bomb-white); }
.bomb-page-hero__title {
  font-size: clamp(2.25rem, 4.6vw, 4.6rem);
  line-height: 1.15;
  margin: 0;
  max-width: 18ch;
  font-family: var(--bomb-font-display);
  font-weight: 700;
}
.bomb-page-hero__title em { font-style: italic; font-weight: 400; }
.bomb-page-hero__cta {
  background: var(--bomb-white);
  color: var(--bomb-rouge);
  padding-right: 6px;
  border-color: var(--bomb-white);
}
.bomb-page-hero__cta::after {
  content: "→";
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px; height: 32px;
  background: var(--bomb-rouge);
  color: var(--bomb-white);
  border-radius: 999px;
  font-size: 1rem;
}
.bomb-page-hero__cta:hover { background: var(--bomb-bordeaux); color: var(--bomb-white); border-color: var(--bomb-bordeaux); }

.bomb-page-hero__image { flex: 1 1 0; }
.bomb-page-hero__image img { width: 100%; height: 100%; object-fit: cover; }

/* When no image is set, the content keeps a comfortable max-width */
.bomb-page-hero:not(.bomb-page-hero--with-image) .bomb-page-hero__content { flex: 1; }

/* Split section (image + text) — used on Notre Histoire */
.bomb-page-section--split:not(.bomb-page-section--reverse) {
  background: var(--bomb-pink-soft);
  padding-block: 0;       /* image fills full section height */
}
.bomb-page-section--split:not(.bomb-page-section--reverse) .bomb-split__content {
  padding-block: clamp(3rem, 6vw, 5rem);
}
.bomb-page-section--split:not(.bomb-page-section--reverse) .bomb-split { grid-template-columns: 1fr 1.1fr; }

/* Image bleed-right: pulls the image past the .container right padding into the viewport edge. */
.bomb-page-section--split:not(.bomb-page-section--reverse) .bomb-split__media {
  margin-right: calc(-1 * var(--bomb-edge-pad));
}
/* Same trick mirrored for reverse (image on the left bleeds-left). */
.bomb-page-section--reverse .bomb-split__media {
  margin-left: calc(-1 * var(--bomb-edge-pad));
}

.bomb-split {
  display: grid;
  gap: 4rem;
  align-items: stretch;
  min-height: 420px;
}
.bomb-split--reverse { grid-template-columns: 1.1fr 1fr; }
.bomb-split__content { display: flex; flex-direction: column; justify-content: center; }
.bomb-split__title  { font-size: clamp(2rem, 3.5vw, 3.2rem); margin: 0 0 1.5rem; }
.bomb-split__title em { font-style: italic; font-weight: 400; }
.bomb-split__text   { font-size: 1.0625rem; line-height: 1.7; color: var(--bomb-grey-950); }
.bomb-split__text p { margin: 0 0 1rem; }

/* Image fills its grid cell exactly — absolute positioning means it always matches the text column height */
.bomb-split__media {
  position: relative;
  overflow: hidden;
  min-height: 420px;
}
.bomb-split__media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* ===== Notre Histoire — "Notre histoire de Biche" 3-zone section ===== */
.bomb-histoire-tri {
  display: grid;
  grid-template-columns: 613fr 277fr 550fr;   /* Figma widths */
  min-height: 685px;
}
.bomb-histoire-tri__text {
  background: var(--bomb-pink);
  color: var(--bomb-white);
  padding: 70px 60px 70px var(--bomb-edge-pad);
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 1.5rem;
}
.bomb-histoire-tri__sparkle svg { width: 48px; height: 48px; color: var(--bomb-white); }
.bomb-histoire-tri__title {
  font-family: var(--bomb-font-display);
  font-weight: 700;
  font-size: clamp(1.75rem, 3vw, 2.75rem);
  margin: 0;
}
.bomb-histoire-tri__title em { font-style: italic; font-weight: 400; }
.bomb-histoire-tri__body { font-size: .95rem; line-height: 1.65; }
.bomb-histoire-tri__body p { margin: 0 0 1rem; }

.bomb-histoire-tri__leopard {
  background-image: url('../images/leopard-pattern.png');
  background-repeat: repeat;
  background-size: 200px auto;
  background-position: center;
}

.bomb-histoire-tri__highlights { display: flex; flex-direction: column; }
.bomb-histoire-tri__hl {
  flex: 1;
  display: flex;
  align-items: center;
  padding: 40px;
  color: var(--bomb-white);
}
.bomb-histoire-tri__hl--pink   { background: #FF0056; }   /* Top  : "Made for…"     */
.bomb-histoire-tri__hl--orange { background: #FF4D00; }   /* Bottom: "TEAM Biche !"   */
.bomb-histoire-tri__hl h3 {
  font-family: var(--bomb-font-display);
  font-weight: 700;
  margin: 0;
}
.bomb-histoire-tri__hl--pink h3   { font-size: clamp(2rem, 3.4vw, 3.5rem); line-height: 1.05; }     /* 56px "Made for…" */
.bomb-histoire-tri__hl--orange h3 { font-size: clamp(2.75rem, 5.6vw, 6rem); line-height: 1.05; }   /* 96px "TEAM Biche !" */

/* ===== Notre Histoire — "Le concept de biche" ===== */
.bomb-concept {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  min-height: 540px;
}
.bomb-concept__image { position: relative; overflow: hidden; }
.bomb-concept__image img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.bomb-concept__content {
  background: var(--bomb-magenta);     /* #FF35A4 — matches maquette */
  color: var(--bomb-white);
  padding: 70px var(--bomb-edge-pad) 70px 60px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 1.5rem;
}
.bomb-concept__sparkle svg { width: 56px; height: 56px; color: var(--bomb-white); }
.bomb-concept__title {
  font-family: var(--bomb-font-display);
  font-weight: 700;
  font-size: clamp(2rem, 3.4vw, 3.25rem);
  margin: 0;
}
.bomb-concept__title em { font-style: italic; font-weight: 400; }
.bomb-concept__body { font-size: .95rem; line-height: 1.65; }
.bomb-concept__body p { margin: 0 0 1rem; }

@media (max-width: 960px) {
  .bomb-histoire-tri { grid-template-columns: 1fr; }
  .bomb-histoire-tri__leopard { min-height: 120px; }
  .bomb-histoire-tri__text { padding: 3rem var(--bomb-edge-pad); }
  .bomb-histoire-tri__highlights { }
  .bomb-histoire-tri__hl { min-height: 220px; }
  .bomb-concept { grid-template-columns: 1fr; }
  .bomb-concept__image { min-height: 320px; }
  .bomb-concept__content { padding: 3rem var(--bomb-edge-pad); }
}

/* Features row (3 advantages) — used on home + notre-histoire + shop archives */
.bomb-features-section { padding-block: 5rem; }
.bomb-features-section--archive {
  margin-top: 3rem;
  border-top: 1px solid #ECECEC;
}
.bomb-features__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2.5rem;
  text-align: center;
}
.bomb-features__card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .75rem;
  padding: 1rem;
}
.bomb-features__icon {
  width: 56px; height: 56px;
  display: inline-flex; align-items: center; justify-content: center;
  color: var(--bomb-grey-950);
}
.bomb-features__icon svg { width: 40px; height: 40px; }
.bomb-features__title {
  margin: 0;
  font-family: var(--bomb-font-display);
  font-weight: 700;
  font-size: clamp(1.5rem, 2.2vw, 2rem);
}
.bomb-features__title em { font-style: italic; font-weight: 400; }
.bomb-features__text { margin: 0; color: var(--bomb-grey-700); font-size: .95rem; max-width: 32ch; }

/* =========================
   CONTACT PAGE
   ========================= */
.bomb-contact-hero {
  background: var(--bomb-pink-hero);   /* light blush — updated maquette */
  color: var(--bomb-grey-950);
  padding-block: 5rem;
  position: relative;                  /* anchor the floating sparkles */
  overflow: hidden;                    /* clip sparkles that drift past the section */
}
.bomb-contact-hero__title-wrap {
  margin: 0;
  padding: 0;
  line-height: 0;
  display: block;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  aspect-ratio: 1366 / 1151;        /* matches contact-hero-title.png ratio */
  overflow: hidden;
}
.bomb-contact-hero__title-img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  object-fit: contain;
  object-position: left center;
}
.bomb-contact-hero__content > * { min-width: 0; max-width: 100%; }
.bomb-contact-hero__inner {
  max-width: var(--bomb-container);
  margin-inline: auto;
  padding-inline: var(--bomb-gutter);
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(420px, 1fr);
  gap: 4rem;
  align-items: center;
}
.bomb-contact-hero__title { font-size: clamp(2rem, 4vw, 3.6rem); margin: 0; }
.bomb-contact-hero__form {
  background: #F11D65;
  padding: 2rem;
  border-radius: 24px;
  width: 100%;
}
/* Captcha (Cloudflare Turnstile / reCAPTCHA) aligné à gauche */
.bomb-contact-hero__form .cf-turnstile,
.bomb-contact-hero__form .g-recaptcha,
.bomb-contact-hero__form .wpcf7-recaptcha,
.bomb-contact-hero__form iframe[src*="turnstile"],
.bomb-contact-hero__form iframe[src*="recaptcha"] {
  display: block !important;
  margin-left: 0 !important;
  margin-right: auto !important;
}

/* CF7 / WPForms common reset */
.bomb-contact-hero__form .wpcf7-form p { margin: 0 0 1rem; }
.bomb-contact-hero__form form > p { margin: 0 0 1rem; }
.bomb-contact-hero__form br { display: none; }

/* 2-column row (Nom + Prénom) — !important to override CF7's <p> auto-wrapping which can break the flex */
.bomb-contact-hero__form .bomb-form-row,
.bomb-contact-hero__form p:has(> .bomb-form-row),
.bomb-contact-hero__form > div.bomb-form-row {
  display: flex !important;
  gap: 1rem !important;
  margin: 0 0 1rem !important;
}
.bomb-contact-hero__form .bomb-form-half {
  flex: 1 1 0 !important;
  min-width: 0 !important;
  display: block;
  margin: 0;
}
.bomb-contact-hero__form .bomb-form-half input { width: 100% !important; }

/* Labels — white, DM Sans, p2 */
.bomb-contact-hero__form .wpforms-field-label,
.bomb-contact-hero__form label {
  color: var(--bomb-white) !important;
  font-family: var(--bomb-font-body);
  font-size: 1rem;
  font-weight: 400;
  margin-bottom: .5rem;
  display: block;
}

/* Inputs / textarea — light gray rounded */
.bomb-contact-hero__form input[type=text],
.bomb-contact-hero__form input[type=email],
.bomb-contact-hero__form input[type=tel],
.bomb-contact-hero__form input[type=url],
.bomb-contact-hero__form textarea,
.bomb-contact-hero__form select {
  background: #FAFAFA !important;
  border: 1px solid #E6E7E7 !important;
  border-radius: 8px !important;
  padding: 10px 12px !important;
  font-family: inherit !important;
  font-size: .9rem !important;
  color: var(--bomb-grey-950) !important;
  width: 100% !important;
  box-shadow: none !important;
}
.bomb-contact-hero__form ::placeholder {
  color: #84898C !important;
  font-family: "Manrope", var(--bomb-font-body), sans-serif;
  font-weight: 500;
  font-size: .875rem;
}
.bomb-contact-hero__form textarea { min-height: 100px !important; resize: vertical; }

/* Make WPForms field rows tighter */
.bomb-contact-hero__form .wpforms-field { padding: 8px 0 !important; }
.bomb-contact-hero__form .wpforms-field-medium,
.bomb-contact-hero__form .wpforms-field-large,
.bomb-contact-hero__form .wpforms-field-small { max-width: none !important; }

/* Nom + Prénom on same row : if both are flagged with .wpforms-one-half or in a name field row */
.bomb-contact-hero__form .wpforms-field-row { display: flex; gap: 1rem; }
.bomb-contact-hero__form .wpforms-field-row-block { flex: 1 1 0; }
.bomb-contact-hero__form .wpforms-one-half,
.bomb-contact-hero__form .wpforms-first.wpforms-one-half { width: calc(50% - .5rem) !important; float: none !important; display: inline-block; vertical-align: top; margin-right: 1rem; }
.bomb-contact-hero__form .wpforms-one-half:last-child { margin-right: 0 !important; }

/* Submit button — white pill, red text, arrow → in red circle on the right.
   Targets CF7 <input type=submit> AND WPForms <button type=submit>.
   Arrow rendered as inline SVG via background-image (since ::after doesn't work on <input>). */
.bomb-contact-hero__form .wpforms-submit-container { padding-top: .75rem !important; }
.bomb-contact-hero__form input[type=submit],
.bomb-contact-hero__form button[type=submit],
.bomb-contact-hero__form .wpcf7-submit,
.bomb-contact-hero__form .wpforms-submit {
  -webkit-appearance: none !important;
  appearance: none !important;
  background: var(--bomb-white, #fff)
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'><circle cx='16' cy='16' r='14' fill='%23FF0056'/><path d='M11 21L21 11M13 11h8v8' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/></svg>")
    no-repeat right 8px center !important;
  background-size: 32px 32px !important;
  color: #FF0056 !important;
  border: 1.5px solid #FF0056 !important;
  padding: 0 50px 0 24px !important;
  border-radius: 30px !important;
  font-family: var(--bomb-font-body) !important;
  font-weight: 700 !important;
  font-size: 1.125rem !important;
  letter-spacing: .02em !important;
  cursor: pointer !important;
  width: 100% !important;
  height: 52px !important;
  text-align: center !important;
  text-shadow: none !important;
  box-shadow: none !important;
  transition: background-color .2s, color .2s, transform .15s, box-shadow .2s !important;
}
.bomb-contact-hero__form input[type=submit]:hover,
.bomb-contact-hero__form button[type=submit]:hover,
.bomb-contact-hero__form .wpcf7-submit:hover {
  background-color: #FF0056 !important;
  color: var(--bomb-white) !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 10px 24px rgba(255, 0, 86, .35) !important;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'><circle cx='16' cy='16' r='14' fill='white'/><path d='M11 21L21 11M13 11h8v8' fill='none' stroke='%23FF0056' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/></svg>") !important;
}

/* CF7 wraps submit in <p>: kill default margin/padding so the button is full-width */
.bomb-contact-hero__form .wpcf7-form > p:last-of-type { margin: 0 !important; }
.bomb-contact-hero__form .wpcf7-spinner { display: inline-block; margin-left: .5rem; vertical-align: middle; }

/* --- Cloudflare Turnstile : centré + bien aéré, juste avant le bouton --- */
.bomb-contact-hero__form .cf-turnstile,
.bomb-contact-hero__form .cf7-turnstile,
.bomb-contact-hero__form [class*="turnstile"] {
  display: flex !important;
  justify-content: center !important;
  margin: .25rem 0 1.25rem !important;
}
/* Le <p> CF7 qui contient le widget : pas de marge en double */
.bomb-contact-hero__form .wpcf7-form p:has(.cf-turnstile),
.bomb-contact-hero__form .wpcf7-form p:has([class*="turnstile"]) {
  margin: 0 !important;
}
/* Le widget lui-même reste à sa taille native (iframe Cloudflare) */
.bomb-contact-hero__form .cf-turnstile iframe { display: block; }

/* =====================================================================
   CF7 notifications — success / error / validation
   ===================================================================== */

/* Main response banner (under submit) */
.bomb-contact-hero__form .wpcf7-response-output {
  margin: 1rem 0 0 !important;
  padding: .85rem 1rem !important;
  border: 0 !important;
  border-radius: 8px !important;
  font-family: var(--bomb-font-body) !important;
  font-size: .9rem !important;
  font-weight: 500 !important;
  line-height: 1.45 !important;
  background: var(--bomb-white) !important;
  color: var(--bomb-grey-950) !important;
  display: flex;
  align-items: flex-start;
  gap: .65rem;
}
.bomb-contact-hero__form .wpcf7-response-output::before {
  content: "";
  flex-shrink: 0;
  width: 20px; height: 20px;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}

/* Success state */
.bomb-contact-hero__form .wpcf7 form.sent .wpcf7-response-output {
  background: #E7F7EE !important;
  color: #1F7A3F !important;
}
.bomb-contact-hero__form .wpcf7 form.sent .wpcf7-response-output::before {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231F7A3F' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><polyline points='20 6 9 17 4 12'/></svg>");
}

/* Error / failed / spam / invalid states */
.bomb-contact-hero__form .wpcf7 form.failed .wpcf7-response-output,
.bomb-contact-hero__form .wpcf7 form.aborted .wpcf7-response-output,
.bomb-contact-hero__form .wpcf7 form.invalid .wpcf7-response-output,
.bomb-contact-hero__form .wpcf7 form.payment-required .wpcf7-response-output,
.bomb-contact-hero__form .wpcf7 form.unaccepted .wpcf7-response-output,
.bomb-contact-hero__form .wpcf7 form.spam .wpcf7-response-output {
  background: #FFE9EE !important;
  color: #B30038 !important;
}
.bomb-contact-hero__form .wpcf7 form.failed .wpcf7-response-output::before,
.bomb-contact-hero__form .wpcf7 form.aborted .wpcf7-response-output::before,
.bomb-contact-hero__form .wpcf7 form.invalid .wpcf7-response-output::before,
.bomb-contact-hero__form .wpcf7 form.payment-required .wpcf7-response-output::before,
.bomb-contact-hero__form .wpcf7 form.unaccepted .wpcf7-response-output::before,
.bomb-contact-hero__form .wpcf7 form.spam .wpcf7-response-output::before {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B30038' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='10'/><line x1='12' y1='8' x2='12' y2='12'/><line x1='12' y1='16' x2='12.01' y2='16'/></svg>");
}

/* Inline validation tips (below each field) */
.bomb-contact-hero__form .wpcf7-not-valid-tip {
  display: block;
  margin-top: .35rem !important;
  padding: .35rem .6rem !important;
  background: rgba(255, 255, 255, .95) !important;
  color: #B30038 !important;
  border-radius: 6px !important;
  font-size: .8rem !important;
  font-weight: 500;
}

/* Invalid input fields — red border + light glow */
.bomb-contact-hero__form input.wpcf7-not-valid,
.bomb-contact-hero__form textarea.wpcf7-not-valid {
  border-color: #B30038 !important;
  box-shadow: 0 0 0 1px #B30038 !important;
}

/* Spinner positioning (when sending) */
.bomb-contact-hero__form .wpcf7-spinner {
  background-color: var(--bomb-white) !important;
  margin: .5rem 0 0 .75rem !important;
  vertical-align: middle;
}

.bomb-contact-infos__title {
  font-family: var(--bomb-font-display);
  font-weight: 700;
  font-size: clamp(1.75rem, 3.5vw, 3.4rem);
  line-height: 1.15;
  margin: 0 0 3rem;
  color: var(--bomb-pink);            /* vivid pink title — matches maquette */
}
.bomb-contact-infos__title em { font-style: italic; font-weight: 400; }

.bomb-contact-infos__layout {
  display: grid;
  grid-template-columns: minmax(0, 640px) minmax(0, 1fr);
  gap: 2rem;
  align-items: stretch;
}

/* Left column : 2-col grid where the 3rd item spans full width.
   Stretches to match the map height on desktop. */
.bomb-contact-infos__list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-auto-rows: 1fr;       /* equal-height rows that fill the column */
  gap: 1rem;
  align-content: stretch;
  height: 100%;
}
.bomb-info-card {
  background: #FAFAFA;
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1.5rem;
  height: 100%;              /* fill the grid cell */
}
.bomb-info-card:nth-child(3) {
  grid-column: 1 / -1;
  flex-direction: row;       /* horizontal layout for the Email card */
  align-items: center;
  gap: 1.5rem;
}
.bomb-info-card__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px; height: 40px;
  color: var(--bomb-grey-950);        /* dark icons — matches maquette */
  flex-shrink: 0;
}
.bomb-info-card__icon svg { width: 40px; height: 40px; stroke-width: 1.5; }

.bomb-info-card > div { display: flex; flex-direction: column; gap: .5rem; }
.bomb-info-card__title { margin: 0; font-family: var(--bomb-font-body); font-weight: 700; font-size: 1.25rem; color: var(--bomb-grey-950); }
.bomb-info-card__text { color: var(--bomb-grey-700); font-size: 1rem; line-height: 1.5; }
.bomb-info-card__text p { margin: 0; }
.bomb-info-card__text a { color: inherit; text-decoration: none; }
.bomb-info-card__text a:hover { color: var(--bomb-rouge); }

/* Map fills full column height */
.bomb-contact-infos__map {
  min-height: 100%;
  height: 100%;
  display: flex;
}
.bomb-contact-infos__map iframe { width: 100%; height: 100%; min-height: 400px; border: 0; display: block; }
.bomb-contact-infos__map img { width: 100%; height: 100%; object-fit: cover; }

/* =========================
   GIFT CARD PAGE
   ========================= */
.bomb-gift-product__layout {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 4rem;
  align-items: start;
}
.bomb-gift-product__media img { width: 100%; height: auto; }
.bomb-breadcrumb { color: var(--bomb-grey-400, #84898C); font-size: .9rem; letter-spacing: .04em; margin: 0 0 1.5rem; }
.bomb-breadcrumb a { color: inherit; }
.bomb-gift-product__title { font-size: clamp(1.75rem, 3vw, 3rem); margin: 0 0 .5rem; }
.bomb-gift-product__price { font-family: var(--bomb-font-display); font-style: italic; font-size: 2rem; margin: 0 0 2rem; }
.bomb-gift-product__label { font-weight: 600; letter-spacing: .04em; margin: 0 0 .75rem; font-size: .95rem; }
.bomb-gift-product__chips { display: flex; flex-wrap: wrap; gap: .75rem; margin-bottom: 1.5rem; }
.bomb-gift-product__chip {
  display: inline-flex;
  align-items: center;
  padding: 8px 24px;
  border: 1px solid #dbdbdb;
  border-radius: 10px;
  font-weight: 600;
  text-decoration: none;
  color: inherit;
  cursor: pointer;
}
.bomb-gift-product__chip:hover, .bomb-gift-product__chip:focus { border-color: var(--bomb-black); }
.bomb-gift-product__cta { display: inline-flex; width: 100%; justify-content: center; margin-bottom: 1.5rem; }
.bomb-gift-product__desc { border-top: 1px solid #eee; padding: 1rem 0; }
.bomb-gift-product__desc summary { font-weight: 600; cursor: pointer; letter-spacing: .04em; }
.bomb-gift-product__desc > div { padding-top: 1rem; color: var(--bomb-grey-700); }
.bomb-gift-product__security {
  border: 1px solid #ddd;
  padding: 1.5rem;
  margin-top: 1rem;
}
.bomb-gift-product__security strong { display: block; font-family: var(--bomb-font-display); font-weight: 700; font-size: 1.5rem; margin-bottom: .5rem; }
.bomb-gift-product__security em { font-style: italic; }
.bomb-gift-product__security p { margin: 0; color: var(--bomb-grey-700); font-size: .95rem; }

/* =====================================================================
   WooCommerce — Single product page (matches Figma "Carte cadeau")
   ===================================================================== */
.woocommerce-page .woocommerce-notices-wrapper { max-width: var(--bomb-container); margin: 1rem auto; padding-inline: var(--bomb-gutter); }

/* Side-by-side product layout — grid-based for predictable widths and gap.
   Applies on single product pages AND when [product_page] is embedded in a regular Page. */
.woocommerce div.product,
.bomb-page--gift div.product,
div.product.type-product {
  display: grid !important;
  grid-template-columns: 1.4fr 1fr !important;
  gap: 4rem !important;
  align-items: start !important;
  padding-block: 3rem !important;
}
.woocommerce div.product .woocommerce-product-gallery,
.bomb-page--gift div.product .woocommerce-product-gallery,
div.product .woocommerce-product-gallery {
  width: 100% !important;
  float: none !important;
  margin: 0 !important;
}
.woocommerce div.product .summary,
.bomb-page--gift div.product .summary,
div.product .summary {
  width: 100% !important;
  float: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: .75rem !important;
  /* Desktop : la colonne d'infos reste figée pendant qu'on parcourt
     les photos à gauche, puis le scroll reprend normalement à la fin. */
  position: sticky !important;
  top: 110px;
  align-self: start !important;
}

/* Breadcrumb */
.bomb-product__breadcrumb {
  font-family: var(--bomb-font-body);
  font-size: .95rem;
  font-weight: 600;
  color: #84898C;
  letter-spacing: .04em;
}
.bomb-product__breadcrumb a { color: inherit; text-decoration: none; }
.bomb-product__breadcrumb a:hover { color: var(--bomb-rouge); }
.bomb-product__breadcrumb > span:last-child { color: #434547; }

/* Title — pink, matches the maquette */
.woocommerce div.product .product_title {
  font-family: var(--bomb-font-display) !important;
  font-size: clamp(1.75rem, 3vw, 3rem) !important;
  font-weight: 700 !important;
  line-height: 1.1 !important;
  margin: 0 !important;
  color: var(--bomb-rouge) !important;
}
.woocommerce div.product .product_title em { font-style: italic; font-weight: 400; }

/* Gallery — stacked images, same width */
.woocommerce div.product .woocommerce-product-gallery__image,
.woocommerce div.product .woocommerce-product-gallery__image--placeholder {
  display: block !important;
  width: 100% !important;
  margin: 0 0 1.5rem !important;
  float: none !important;
  position: relative;
  overflow: hidden;
  border-radius: 14px;
  background: transparent;
  cursor: zoom-in;
  transition: box-shadow .35s ease, transform .35s ease;
}
.woocommerce div.product .woocommerce-product-gallery__image:hover {
  box-shadow: 0 18px 40px rgba(221, 0, 75, .12);
}
.woocommerce div.product .woocommerce-product-gallery__image img,
.woocommerce div.product .woocommerce-product-gallery__image--placeholder img {
  width: 100% !important;
  height: auto !important;
  display: block !important;
  aspect-ratio: 1/1.2;
  object-fit: cover;
  transition: transform .55s cubic-bezier(.22,.9,.3,1);
  will-change: transform;
}
/* Nuclear override : aucun fond sur la galerie produit (mobile + desktop) */
.woocommerce div.product .woocommerce-product-gallery,
.woocommerce div.product .woocommerce-product-gallery__wrapper,
.woocommerce div.product .woocommerce-product-gallery__image,
.woocommerce div.product .woocommerce-product-gallery__image--placeholder,
.woocommerce div.product .woocommerce-product-gallery__image img,
.woocommerce div.product .woocommerce-product-gallery__image--placeholder img,
.woocommerce div.product img.wp-post-image,
.bomb-product-gallery-wrap,
.bomb-gift-product__media,
.bomb-gift-product__media img {
  background: none !important;
  background-color: transparent !important;
  box-shadow: none !important;
}

/* Desktop : chaque photo garde son ratio natif, jamais coupée.
   Largeur cappée à 560px sur TOUTES les images (paysage comprises). */
@media (min-width: 992px) {
  /* Verrouille la largeur de chaque image, peu importe son ratio (portrait/paysage) */
  .woocommerce div.product .woocommerce-product-gallery,
  .woocommerce div.product .woocommerce-product-gallery__wrapper {
    max-width: 560px !important;
    margin-left: 0 !important;
    margin-right: auto !important;
  }
  .woocommerce div.product .woocommerce-product-gallery__image,
  .woocommerce div.product .woocommerce-product-gallery__image--placeholder {
    text-align: left;
    background: transparent !important;
    box-shadow: none !important;
    scroll-margin-top: 110px;
    aspect-ratio: auto !important;
    width: 100% !important;
    max-width: 560px !important;
    margin: 0 0 1.5rem 0 !important;
    overflow: visible;
    border-radius: 0;
    display: block !important;
  }
  .woocommerce div.product .woocommerce-product-gallery__image img,
  .woocommerce div.product .woocommerce-product-gallery__image--placeholder img,
  .woocommerce div.product img.wp-post-image {
    aspect-ratio: auto !important;
    width: 100% !important;
    height: auto !important;
    max-width: 560px !important;
    max-height: none !important;
    object-fit: contain !important;
    margin: 0 !important;
    display: block !important;
    border-radius: 14px !important;
  }

  /* ===== Miniatures verticales à gauche (style ASOS) ===== */
  .bomb-product-gallery-wrap {
    display: grid;
    grid-template-columns: 80px 1fr;
    gap: 1.25rem;
    align-items: start;
  }
  .bomb-product-thumbs {
    position: sticky;
    top: 110px;
    display: flex;
    flex-direction: column;
    gap: .5rem;
    max-height: calc(100vh - 140px);
    overflow-y: auto;
    padding-right: 4px;
  }
  .bomb-product-thumbs__item {
    width: 72px;
    height: 90px;
    border: 2px solid transparent;
    border-radius: 8px;
    overflow: hidden;
    cursor: pointer;
    background: #f8f4ee;
    transition: border-color .2s ease, transform .2s ease;
  }
  .bomb-product-thumbs__item:hover { transform: translateY(-1px); }
  .bomb-product-thumbs__item.is-active {
    border-color: var(--bomb-rouge, #DD004B);
  }
  .bomb-product-thumbs__item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }
}
@media (max-width: 991px) {
  /* Mobile : on conserve la pile classique, pas de miniatures */
  .bomb-product-thumbs { display: none; }
  .bomb-product-gallery-wrap { display: block; }
}
.woocommerce div.product .woocommerce-product-gallery__image:hover img {
  transform: scale(1.045);
}
.woocommerce div.product .woocommerce-product-gallery__image:active img {
  transform: scale(1.02);
}
/* Magnifier badge on hover — soft, premium hint */
.woocommerce div.product .woocommerce-product-gallery__image::after {
  content: "";
  position: absolute;
  top: 1rem; right: 1rem;
  width: 42px; height: 42px;
  border-radius: 50%;
  background: var(--bomb-white) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23DD004B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='11' cy='11' r='7'/><line x1='21' y1='21' x2='16.65' y2='16.65'/><line x1='8' y1='11' x2='14' y2='11'/><line x1='11' y1='8' x2='11' y2='14'/></svg>") center / 18px 18px no-repeat;
  box-shadow: 0 6px 18px rgba(221, 0, 75, .18);
  opacity: 0;
  transform: translateY(-6px) scale(.9);
  transition: opacity .25s ease, transform .25s ease;
  pointer-events: none;
}
.woocommerce div.product .woocommerce-product-gallery__image:hover::after {
  opacity: 1;
  transform: translateY(0) scale(1);
}
/* Hide the flex-control thumbnails (we display all images stacked instead) */
.woocommerce div.product .woocommerce-product-gallery .flex-control-thumbs,
.woocommerce div.product .flex-control-nav { display: none !important; }
/* Keep WC's default trigger hidden — we use our own magnifier badge */
.woocommerce div.product .woocommerce-product-gallery__trigger { display: none !important; }

/* ===== Mobile gallery — horizontal swipeable carousel ====================== */
@media (max-width: 720px) {
  .woocommerce div.product .woocommerce-product-gallery {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    gap: .75rem;
    padding-bottom: .5rem;
    margin: 0 calc(50% - 50vw) 1rem;     /* full-bleed edge-to-edge */
    padding-inline: var(--bomb-edge-pad, 1rem);
    width: auto;
  }
  .woocommerce div.product .woocommerce-product-gallery::-webkit-scrollbar { display: none; }

  /* Wrapper that WC adds — make it inline so children participate in flex */
  .woocommerce div.product .woocommerce-product-gallery__wrapper {
    display: contents !important;
  }
  .woocommerce div.product .woocommerce-product-gallery__image,
  .woocommerce div.product .woocommerce-product-gallery__image--placeholder {
    flex: 0 0 88%;
    margin: 0 !important;
    scroll-snap-align: center;
    border-radius: 14px;
  }
  .woocommerce div.product .woocommerce-product-gallery__image:first-child {
    scroll-snap-align: start;
  }
  /* Magnifier badge slightly smaller on mobile */
  .woocommerce div.product .woocommerce-product-gallery__image::after {
    width: 36px; height: 36px;
    top: .65rem; right: .65rem;
  }
}

/* PhotoSwipe lightbox — premium tint to match the brand */
.pswp__bg { background: rgba(74, 24, 34, .92) !important; }
.pswp__caption__center { font-family: var(--bomb-font-body) !important; letter-spacing: .02em; }
.pswp__counter { font-family: var(--bomb-font-body) !important; font-weight: 600; }
.pswp__button { transition: opacity .2s; }
.pswp__button:hover { opacity: .85 !important; }
/* Price old/new presentation */
.woocommerce div.product .price del,
.woocommerce div.product .price del span.amount {
  color: var(--bomb-grey-400, #9aa0a3) !important;
  text-decoration: line-through;
  font-size: 1.25rem !important;
  font-style: normal !important;
}
.woocommerce div.product .price ins,
.woocommerce div.product .price ins span.amount {
  color: var(--bomb-rouge) !important;
  text-decoration: none;
}

/* Stock indicator */
.woocommerce div.product p.stock {
  display: inline-block !important;
  padding: 8px 16px !important;
  border-radius: 999px !important;
  background: rgba(221, 0, 75, .08) !important;
  color: var(--bomb-rouge) !important;
  font-family: var(--bomb-font-body) !important;
  font-size: .875rem !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
  margin: 0 !important;
}
.woocommerce div.product .out-of-stock,
.woocommerce div.product .stock.out-of-stock {
  background: rgba(0,0,0,.05) !important;
  color: #6a6a6a !important;
}

/* Quantity selector — clean outlined circles like the maquette */
.woocommerce div.product form.cart .quantity {
  display: inline-flex !important;
  align-items: center;
  gap: .85rem;
  margin: 0 !important;
}
.woocommerce div.product form.cart .quantity .qty {
  width: 32px !important;
  height: 32px !important;
  text-align: center !important;
  border: 0 !important;
  background: transparent !important;
  padding: 0 !important;
  font-family: var(--bomb-font-body) !important;
  font-weight: 600 !important;
  font-size: 1rem !important;
  color: var(--bomb-grey-950) !important;
  appearance: none;
  -moz-appearance: textfield;
}
.woocommerce div.product form.cart .quantity .qty::-webkit-outer-spin-button,
.woocommerce div.product form.cart .quantity .qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

.bomb-qty-label {
  font-family: var(--bomb-font-body);
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-size: .85rem;
  color: var(--bomb-grey-950);
  margin-right: .25rem;
}
.bomb-qty-btn {
  width: 32px; height: 32px;
  border-radius: 999px;                  /* round circle, not square */
  border: 1px solid #DBDBDB;
  background: var(--bomb-white);
  color: var(--bomb-grey-950);
  display: inline-flex; align-items: center; justify-content: center;
  cursor: pointer;
  padding: 0;
  transition: border-color .2s, background .2s, color .2s;
}
.bomb-qty-btn:hover {
  border-color: var(--bomb-grey-950);
  background: var(--bomb-grey-950);
  color: var(--bomb-white);
}
.bomb-qty-btn svg { display: block; }

/* Variation labels uppercase + spacing */
.woocommerce div.product form.cart .variations label {
  font-family: var(--bomb-font-body) !important;
  font-weight: 600 !important;
  font-size: .9rem !important;
  letter-spacing: .04em !important;
  text-transform: uppercase !important;
  color: #3B3C3E !important;
}

/* Couleur swatches — round circles */
.bomb-product__swatches { display: flex; gap: .75rem; flex-wrap: wrap; }
.bomb-product__swatch {
  width: 36px; height: 36px;
  border-radius: 999px;
  border: 1px solid #DBDBDB;
  cursor: pointer;
  position: relative;
  padding: 0;
  background-clip: content-box;
  background-color: transparent;
  transition: outline-color .15s;
  outline: 2px solid transparent;
  outline-offset: 3px;
}
.bomb-product__swatch.is-active {
  outline-color: var(--bomb-grey-950);
}
.bomb-product__swatch--multi {
  background: conic-gradient(#ff4081, #ffb74d, #fff176, #aed581, #4fc3f7, #ba68c8, #ff4081);
}

/* Multi-tabs / Additional info — accordions (Marque, Composition) */
.bomb-product__attr {
  border-top: 1px solid #EEE;
  padding: 1rem 0;
}
.bomb-product__attr summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-family: var(--bomb-font-body);
  font-weight: 600;
  font-size: 1rem;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: #3B3C3E;
}
.bomb-product__attr summary::-webkit-details-marker { display: none; }
.bomb-product__attr[open] .bomb-product__attr-chevron { transform: rotate(180deg); }
.bomb-product__attr-chevron { transition: transform .2s; }
.bomb-product__attr-body { padding-top: .75rem; color: #5A5E60; font-size: .9rem; line-height: 1.5; }

/* Price */
.woocommerce div.product p.price,
.woocommerce div.product span.price {
  font-family: var(--bomb-font-display) !important;
  font-style: italic !important;
  font-size: 2rem !important;
  font-weight: 400 !important;
  color: var(--bomb-grey-950) !important;
  margin: 0 !important;
}
.woocommerce div.product .price del { opacity: .5; margin-right: .5rem; }
.woocommerce div.product .price ins { background: none; text-decoration: none; color: var(--bomb-rouge); }

/* Hide the default short description (we'll show full description below as accordion) */
.woocommerce div.product .woocommerce-product-details__short-description { display: none; }

/* Variations table → chips (JS-driven) */
.woocommerce div.product form.cart .variations { display: block; margin-bottom: 1.5rem; }
.woocommerce div.product form.cart .variations table,
.woocommerce div.product form.cart .variations tbody,
.woocommerce div.product form.cart .variations tr,
.woocommerce div.product form.cart .variations td { display: block; width: 100%; padding: 0 !important; border: 0 !important; background: none !important; }
.woocommerce div.product form.cart .variations tr { margin-bottom: 1.75rem; }
.woocommerce div.product form.cart .variations tr:last-child { margin-bottom: 0; }
.woocommerce div.product form.cart .variations th.label { margin-bottom: .75rem; }
.woocommerce div.product form.cart .variations label {
  display: block;
  font-family: var(--bomb-font-body);
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: #3B3C3E;
  margin: 0 0 .75rem !important;
}
.woocommerce div.product form.cart .reset_variations { display: none !important; }
.bomb-product__select-hidden { display: none !important; }

.bomb-product__chips { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 0; }
.bomb-product__chip {
  background: var(--bomb-white);
  border: 1px solid #DBDBDB;
  border-radius: 10px;
  padding: 8px 22px;
  font-family: var(--bomb-font-body);
  font-weight: 600;
  font-size: 1rem;
  color: var(--bomb-black);
  cursor: pointer;
  transition: border-color .15s, background .15s;
}
.bomb-product__chip:hover { border-color: var(--bomb-black); }
.bomb-product__chip.is-active { border-color: var(--bomb-black); border-width: 2px; padding: 7px 21px; }

/* ===== PW WooCommerce Gift Cards — form fields (To / From / Message) ===== */
.bomb-page--gift .summary .pwgc-message-fields,
.bomb-page--gift .summary .pwgc-multiple-recipients-fields,
.bomb-page--gift .summary [class*="pwgc"] {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.bomb-page--gift .summary label,
.woocommerce div.product .summary .pwgc-label,
.bomb-page--gift .summary .pwgc-label {
  display: block;
  font-family: var(--bomb-font-body);
  font-weight: 600;
  font-size: 1rem;
  color: #3B3C3E;
  margin: 0 0 .5rem;
}
.bomb-page--gift .summary input[type=text],
.bomb-page--gift .summary input[type=email],
.bomb-page--gift .summary textarea,
.woocommerce div.product .summary input[type=text],
.woocommerce div.product .summary input[type=email],
.woocommerce div.product .summary textarea {
  width: 100% !important;
  background: #FAFAFA !important;
  border: 1px solid #E6E7E7 !important;
  border-radius: 8px !important;
  padding: 10px 12px !important;
  font-family: var(--bomb-font-body) !important;
  font-size: .9rem !important;
  color: var(--bomb-grey-950) !important;
  box-shadow: none !important;
}
.bomb-page--gift .summary textarea { min-height: 90px; resize: vertical; }
.bomb-page--gift .summary .pwgc-help-text,
.bomb-page--gift .summary .pwgc-character-count,
.bomb-page--gift .summary .description {
  font-size: .8rem;
  color: #84898C;
  margin: -.5rem 0 0;
}

/* Add to cart button — primary red pill with arrow */
.woocommerce div.product form.cart { margin: 0 !important; }
.woocommerce div.product form.cart .quantity,
.bomb-page--gift .summary .quantity,
.bomb-page--gift .summary input[type=number].qty,
.bomb-page--gift .summary input.qty {
  display: none !important;        /* Hide qty selector — gift cards = always 1 */
}
.woocommerce div.product form.cart .single_add_to_cart_button,
.woocommerce div.product form.cart button.button {
  background: var(--bomb-rouge) !important;
  color: var(--bomb-white) !important;
  border: 0 !important;
  width: 100% !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: .5rem !important;
  padding: 10px 6px 10px 24px !important;
  border-radius: 30px !important;
  font-family: var(--bomb-font-body) !important;
  font-weight: 600 !important;
  font-size: 1rem !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  text-shadow: none !important;
  transition: background .15s !important;
  height: 48px;
}
.woocommerce div.product form.cart .single_add_to_cart_button::after {
  content: "→";
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px; height: 32px;
  background: var(--bomb-white);
  color: var(--bomb-rouge);
  border-radius: 999px;
  font-size: 1rem;
}
.woocommerce div.product form.cart .single_add_to_cart_button:hover { background: var(--bomb-bordeaux) !important; }
.woocommerce div.product form.cart .single_add_to_cart_button:disabled,
.woocommerce div.product form.cart .single_add_to_cart_button.disabled { opacity: .55 !important; cursor: not-allowed; }

/* Apple Pay / Express checkout buttons (Stripe / Woo Payments inject these) */
.wc-stripe-payment-request-button-separator,
.wc-stripe-paymentRequest { display: none !important; }   /* hide "OR" separator that looks bad */
.woocommerce-product-page .stripe-payment-request-wrapper,
.woocommerce-product-page .wc-stripe-payment-request-wrapper { margin-top: .75rem; }

/* Accordions — Description / Marque / Composition — clean & airy */
.bomb-product__desc,
.bomb-product__attr {
  border-top: 1px solid #ECECEC;
  padding: 1.25rem 0;
  margin: 0;
}
.bomb-product__desc:last-of-type,
.bomb-product__attr:last-of-type { border-bottom: 1px solid #ECECEC; }

.bomb-product__desc summary,
.bomb-product__attr summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-family: var(--bomb-font-body);
  font-weight: 700;
  font-size: .95rem;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--bomb-grey-950);
  padding: .25rem 0;
}
.bomb-product__desc summary::-webkit-details-marker,
.bomb-product__attr summary::-webkit-details-marker { display: none; }
.bomb-product__desc summary::marker,
.bomb-product__attr summary::marker { display: none; }

/* Chevron — thin caret, rotates when open */
.bomb-product__desc-chevron,
.bomb-product__attr-chevron {
  width: 14px; height: 14px;
  stroke-width: 1.5;
  color: var(--bomb-grey-950);
  transition: transform .25s ease;
}
.bomb-product__desc[open] .bomb-product__desc-chevron,
.bomb-product__attr[open] .bomb-product__attr-chevron {
  transform: rotate(180deg);
}

/* Body content */
.bomb-product__desc-body,
.bomb-product__attr-body {
  padding-top: .75rem;
  color: #6A6E70;
  font-size: .9rem;
  line-height: 1.55;
  font-weight: 400;
}
.bomb-product__desc-body p,
.bomb-product__attr-body p { margin: 0 0 .5rem; }
.bomb-product__desc-body p:last-child,
.bomb-product__attr-body p:last-child { margin-bottom: 0; }
.bomb-product__desc-body ul { padding-left: 1.25rem; margin: 0 0 .5rem; }
.bomb-product__desc-body li { margin-bottom: .15rem; }

/* Features card on the single product page (Retour / Livraison / Paiement) */
.bomb-product__features {
  border: 1px solid #DDD;
  border-radius: 12px;
  padding: 1.75rem;
  margin-top: 1rem;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}
.bomb-product__feature {
  display: flex;
  gap: 1rem;
  align-items: flex-start;
}
.bomb-product__feature-icon {
  width: 36px; height: 36px;
  color: var(--bomb-grey-950);
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.bomb-product__feature-icon svg { width: 28px; height: 28px; }
.bomb-product__feature-content { flex: 1; min-width: 0; }
.bomb-product__feature-title {
  font-family: var(--bomb-font-display);
  font-weight: 700;
  font-size: 1.25rem;
  line-height: 1.2;
  margin: 0 0 .35rem;
  color: var(--bomb-grey-950);
}
.bomb-product__feature-title em { font-style: italic; font-weight: 400; }
.bomb-product__feature-text {
  color: var(--bomb-grey-700);
  font-size: .9rem;
  line-height: 1.5;
  margin: 0;
}

/* "Vous aimerez aussi…" section — full-bleed pink + carousel on mobile */
.bomb-related-products {
  background: var(--bomb-pink) !important;
  color: var(--bomb-white);
  padding-block: 4rem;
  margin-top: 4rem;
  /* Full-bleed: pull the section out to the viewport edges regardless of parent container */
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}

.bomb-related-products__title {
  font-family: var(--bomb-font-display);
  font-weight: 700;
  font-size: clamp(1.75rem, 3vw, 2.5rem);
  text-align: center;
  color: var(--bomb-white) !important;
  margin: 0 0 2.5rem;
}
.bomb-related-products__title em { font-style: italic; font-weight: 400; }

/* One-row carousel — auto-scroll + manual scroll (drag / wheel / touch) */
.bomb-related-products__track {
  display: flex;
  flex-wrap: nowrap;
  gap: 1.25rem;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
  -ms-overflow-style: none;
  -webkit-overflow-scrolling: touch;
  padding: .25rem 0 1rem;
  /* prevent full-bleed overflow from forcing horizontal page scroll */
  scroll-padding-left: 0;
}
.bomb-related-products__track::-webkit-scrollbar { display: none; }
.bomb-related-products__track .bomb-product-card {
  flex: 0 0 calc((100% - 3 * 1.25rem) / 4); /* 4 cards visible on desktop */
  scroll-snap-align: start;
}
.bomb-related-products .bomb-product-card { color: var(--bomb-white) !important; text-decoration: none; }
.bomb-related-products .bomb-product-card__name { color: var(--bomb-white) !important; }
.bomb-related-products .bomb-product-card__price { color: rgba(255,255,255,.9) !important; }

@media (max-width: 1100px) {
  .bomb-related-products__track .bomb-product-card { flex: 0 0 calc((100% - 2 * 1.25rem) / 3); } /* 3 visible */
}
@media (max-width: 720px) {
  .bomb-related-products { padding-block: 2.5rem; }
  .bomb-related-products__track { gap: 1rem; }
  .bomb-related-products__track .bomb-product-card { flex: 0 0 80%; }    /* 1 + peek */
}

/* Hide product tabs / reviews / meta / SKU — Figma layout is inline */
.woocommerce div.product .woocommerce-tabs,
.woocommerce-tabs.wc-tabs-wrapper,
.woocommerce div.product .product_meta { display: none !important; }

/* Gallery: keep clean, no border */
.woocommerce div.product .woocommerce-product-gallery .flex-control-thumbs { margin-top: 1rem; }
.woocommerce div.product .woocommerce-product-gallery__image img { width: 100% !important; height: auto !important; }

/* Responsive */
@media (max-width: 960px) {
  .woocommerce div.product { flex-direction: column; gap: 2rem; }
  .woocommerce div.product .woocommerce-product-gallery,
  .woocommerce div.product .summary { width: 100%; }
}

/* Styles Complianz personnalisés retirés à la demande de la cliente —
 * rendu natif Complianz uniquement (preview = live identiques). */


/* =========================
   Footer — Figma v2 (pink bg + terracotta text)
   ========================= */
/* Hide "Retour au panier" CTA on checkout (WC Block Checkout — broken link
 * since we redirect /panier/ to home + auto-open drawer). */
.wc-block-checkout__actions_row .wc-block-components-checkout-return-to-cart-button,
.wc-block-components-checkout-return-to-cart-button,
a.wc-block-components-checkout-return-to-cart-button { display: none !important; }

/* ---------------------------------------------------------------------------
 *  Bandeau d'annonce défilant (en haut du site, avant la navbar)
 *  Contenu éditable dans Réglages → Bandeau annonce (ACF)
 * ------------------------------------------------------------------------- */
.bomb-announce {
  background: #FFD2E1;          /* même rose pâle que le footer */
  color: #C32E1D;               /* même rouge terracotta que le footer */
  overflow: hidden;
  position: relative;
  width: 100%;
  z-index: 50;
  font-size: 0.85rem;
  letter-spacing: 0.02em;
  font-weight: 500;
}
/* Mode statique : 1 seul message → centré, immobile, propre */
.bomb-announce--static .bomb-announce__static {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.65rem 1.5rem;
  text-align: center;
  white-space: normal;          /* permet le retour à la ligne si écran étroit */
}
/* Mode scroll : 2+ messages → carrousel horizontal */
.bomb-announce__track {
  display: flex;
  animation: bomb-announce-scroll var(--bomb-announce-duration, 25s) linear infinite;
  will-change: transform;
}
/* Chaque "group" = un container LARGE comme l'écran, message CENTRÉ dedans.
 * Au défilement, on translate de -100vw = exactement la largeur d'un group →
 * 1 seul message visible à l'écran à la fois, scroll seamless sans doublons. */
.bomb-announce__group {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2rem;
  padding: 0.65rem 1.5rem;
  white-space: nowrap;
  flex-shrink: 0;
  min-width: 100vw;
}
.bomb-announce__sep {
  opacity: 0.6;
  font-weight: 700;
  margin: 0 0.5rem;
}
.bomb-announce strong { font-weight: 700; }
@keyframes bomb-announce-scroll {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-100vw); }
}
/* Pause au survol (UX : laisse le temps de lire) */
.bomb-announce:hover .bomb-announce__track { animation-play-state: paused; }
/* Respect des préférences utilisateur "reduce motion" */
@media (prefers-reduced-motion: reduce) {
  .bomb-announce__track { animation: none; justify-content: center; }
  .bomb-announce__group + .bomb-announce__group { display: none; }
}

.site-footer {
  background: #FFD2E1;                  /* pink-hero from maquette */
  color: #C32E1D;                       /* terracotta red */
  margin-top: 0;
}
.footer {
  max-width: 1440px;
  margin: 0 auto;
  padding: 80px 64px;
  display: flex;
  flex-direction: column;
  gap: 56px;
}
.footer a { color: #C32E1D; text-decoration: none; transition: opacity .15s; }
.footer a:hover { opacity: .7; }

.footer__main {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) repeat(4, auto);
  gap: 90px;
  align-items: start;
  padding-bottom: 48px;
  border-bottom: 1px solid #FFBCD2;
}
.footer__brand img { max-width: 260px; height: auto; display: block; }
.footer__col { min-width: 0; }
.footer__col-title {
  font-family: var(--bomb-font-body, 'DM Sans', sans-serif);
  font-size: 16px;
  font-weight: 700;
  margin: 0 0 24px;
  text-transform: uppercase;
  letter-spacing: .02em;
  color: #C32E1D;
}
.footer__col ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 16px; }
.footer__col li { margin: 0; }
.footer__col a {
  font-family: var(--bomb-font-body, 'DM Sans', sans-serif);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.5;
}
.footer__social {
  display: flex;
  gap: 16px;
  align-items: center;
}
.footer__social a {
  width: 24px;
  height: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #C32E1D;
  background: transparent;
  border-radius: 0;
}
.footer__social a:hover { opacity: .7; }
.footer__social svg { width: 24px; height: 24px; }

/* === NAP block — coordonnées boutique (SEO local + UX) === */
.footer__nap {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 1.5rem 2.5rem;
  padding: 1.75rem 0;
  margin-top: 1.5rem;
  border-top: 1px solid rgba(255, 255, 255, .12);
  border-bottom: 1px solid rgba(255, 255, 255, .12);
  color: inherit;
  font-size: .92rem;
  line-height: 1.55;
}
.footer__nap-block {
  display: flex;
  flex-direction: column;
  gap: .25rem;
}
.footer__nap-name {
  font-family: var(--bomb-font-display, "Playfair Display", serif);
  font-size: 1.15rem;
  font-weight: 700;
  margin-bottom: .35rem;
}
.footer__nap-addr {
  font-style: normal;
  opacity: .9;
}
.footer__nap-label {
  text-transform: uppercase;
  letter-spacing: .08em;
  font-size: .72rem;
  font-weight: 700;
  opacity: .6;
  margin-bottom: .15rem;
}
.footer__nap-link {
  color: inherit;
  text-decoration: none;
  transition: opacity .2s ease;
}
.footer__nap-link:hover { opacity: .7; text-decoration: underline; }
.footer__nap-hours { opacity: .9; }

/* Bottom row : credit + legal */
.footer__bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1.5rem;
  font-family: 'Roboto', sans-serif;
  font-size: 14px;
}
.footer__credit {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #C32E1D;
  text-decoration: none;
  transition: opacity .15s;
}
.footer__credit:hover { opacity: .85; }
.footer__credit-logo {
  height: 24px !important;
  width: auto !important;
  max-width: 140px !important;
  display: block;
  object-fit: contain;
  flex-shrink: 0;
}
.footer__legal {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  gap: 24px;
  align-items: center;
  flex-wrap: wrap;
}
.footer__legal li,
.footer__legal a,
.footer__copyright {
  font-family: 'Roboto', sans-serif;
  font-size: 14px;
  font-weight: 400;
  color: #C32E1D;
  margin: 0;
}

/* Footer responsive */
@media (max-width: 1100px) {
  .footer { padding: 60px 40px; gap: 40px; }
  .footer__main { gap: 48px; }
}
@media (max-width: 900px) {
  .footer__main { grid-template-columns: 1fr 1fr; }
  .footer__brand { grid-column: 1 / -1; }
  .footer__brand img { max-width: 200px; }
}
@media (max-width: 600px) {
  .footer { padding: 48px 24px; gap: 32px; }
  .footer__main {
    grid-template-columns: 1fr;
    gap: 32px;
    padding-bottom: 32px;
  }
  .footer__brand img { max-width: 180px; }
  .footer__bottom {
    flex-direction: column;
    align-items: flex-start;
    gap: 1.25rem;
  }
  .footer__legal { gap: 16px; }
}

/* =========================
   Responsive
   ========================= */
/* =====================================================================
   RESPONSIVE — Breakpoints :
     ≥ 1280 : desktop normal (default)
     ≤ 1280 : large tablet / small laptop
     ≤ 1100 : tablet landscape
     ≤ 960  : tablet portrait / mobile menu activates
     ≤ 720  : large mobile
     ≤ 480  : small mobile
   ===================================================================== */

/* ---- ≤ 1280 : laptops ---- */
@media (max-width: 1280px) {
  .bomb-products__head { gap: 1.5rem; }
  .bomb-hero__content { padding-right: 2rem; }
}

/* ===== Large viewports — widen container so edge-pad stays reasonable ===== */
@media (min-width: 1500px) {
  :root { --bomb-container: 1380px; }
  .bomb-hero__content        { padding-right: clamp(80px, 6vw, 140px); }
  .bomb-histoire-tri__text   { padding-right: clamp(60px, 5vw, 120px); }
  .bomb-concept__content     { padding-left:  clamp(60px, 5vw, 120px); }
  .bomb-gift__content        { padding-left:  clamp(60px, 5vw, 120px); }
}
@media (min-width: 1700px) {
  :root { --bomb-container: 1500px; }
}
@media (min-width: 1900px) {
  :root { --bomb-container: 1600px; }
}
@media (min-width: 2100px) {
  :root { --bomb-container: 1720px; }
}

/* ---- ≤ 1100 : tablet landscape ---- */
@media (max-width: 1100px) {
  .bomb-products__grid { grid-template-columns: repeat(3, 1fr); }
  .bomb-products__track .bomb-product-card { flex-basis: calc((100% - 2 * 1.5rem) / 3); }
  .bomb-features__grid { grid-template-columns: repeat(3, 1fr); }
  .bomb-contact-hero__inner { gap: 2.5rem; }
  .woocommerce ul.products,
  .woocommerce-page ul.products { grid-template-columns: repeat(3, 1fr) !important; }
}
/* MOBILE: always 2 products per row, never less */
@media (max-width: 720px) {
  .woocommerce ul.products,
  .woocommerce-page ul.products {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: .5rem !important;
  }
}
@media (max-width: 480px) {
  .woocommerce ul.products,
  .woocommerce-page ul.products {
    grid-template-columns: repeat(2, 1fr) !important;   /* keep 2 even on tiny screens */
    gap: .35rem !important;
  }
}
@media (max-width: 720px) {
  .bomb-products__track .bomb-product-card { flex-basis: calc((100% - 1.5rem) / 2); }   /* 2 visibles */

  /* ===== Mobile rhythm — uniform section padding (2.5rem all around) ===== */
  .bomb-products,
  .bomb-features-section,
  .bomb-page-section,
  .bomb-contact-hero,
  .bomb-contact-infos,
  .bomb-insta,
  .bomb-gift-product { padding-block: 2.5rem !important; }

  /* Hero variants — slightly more breath because they're showcases */
  .bomb-hero__content,
  .bomb-page-hero__content,
  .bomb-contact-hero__inner,
  .bomb-gift__content,
  .bomb-concept__content,
  .bomb-histoire-tri__text,
  .bomb-page-section--split:not(.bomb-page-section--reverse) .bomb-split__content,
  .bomb-page-section--reverse .bomb-split__content { padding-block: 2.5rem !important; }

  /* Inner spacing reduced too */
  .bomb-products__head { margin-bottom: 1.5rem; }
  .bomb-insta__cta-wrap { margin-bottom: 1.5rem; }
  .bomb-insta__title { margin-bottom: 1rem; font-size: clamp(1.25rem, 5vw, 1.75rem); }
  .bomb-contact-infos__title { margin-bottom: 1.5rem; }
  .bomb-split__title,
  .bomb-histoire-tri__title,
  .bomb-concept__title { margin-bottom: .75rem; }

  /* Triple banner — content sizes naturally on mobile, no dead space */
  .bomb-triple__card { min-height: auto; }
  .bomb-triple__card--image_top .bomb-triple__image,
  .bomb-triple__card--image_bottom .bomb-triple__image {
    min-height: 0;
    aspect-ratio: 4/3;
    flex: 0 0 auto;
  }
  .bomb-triple__card--image_top .bomb-triple__content,
  .bomb-triple__card--image_bottom .bomb-triple__content {
    min-height: 0;
    padding: 1.75rem 1.5rem;
    gap: 1rem;
  }
  .bomb-triple__card--full_solid .bomb-triple__content {
    padding: 2rem 1.5rem;
    gap: 1rem;
    min-height: 0;            /* let the content set its own height */
  }
  .bomb-triple__sparkle { width: 44px; height: 44px; }

  /* Footer cleaner spacing */
  .footer { padding-block: 2.5rem 1.25rem; }
}
@media (max-width: 480px) {
  .bomb-products__track .bomb-product-card { flex-basis: 80%; }                          /* 1.25 visibles → peek du suivant */
  .bomb-products__track { padding-right: 1rem; }                                        /* aération à droite */
}

/* ---- ≤ 960 : tablet portrait / MOBILE MENU activates ---- */
@media (max-width: 960px) {
  /* Mobile navbar : completely flat, white background always. */
  .site-header,
  .site-header.is-scrolled,
  .navbar {
    background: var(--bomb-white, #fff) !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    border-bottom: 0 !important;
    filter: none !important;
  }

  /* Hide search icon in the closed navbar — it's now inside the open menu */
  .navbar__actions .navbar__search-toggle { display: none !important; }

  /* Premium search bar inside the open mobile menu — VISIBLE only on mobile */
  .navbar__menu-search {
    display: flex !important;
    align-items: center;
    gap: .75rem;
    width: 100%;
    padding: .85rem 1.25rem;
    margin: 0 1.5rem 1rem;
    width: calc(100% - 3rem);
    background: var(--bomb-white);
    border: 1.5px solid var(--bomb-rouge);
    border-radius: 999px;
    color: var(--bomb-grey-700);
    font-family: var(--bomb-font-body);
    font-size: .9rem;
    font-weight: 500;
    cursor: pointer;
    text-align: left;
    transition: background .15s, color .15s, box-shadow .2s;
  }
  .navbar__menu-search svg { color: var(--bomb-rouge); flex-shrink: 0; }
  .navbar__menu-search:hover {
    background: var(--bomb-rouge);
    color: var(--bomb-white);
    box-shadow: 0 8px 18px rgba(221, 0, 75, .2);
  }
  .navbar__menu-search:hover svg { color: var(--bomb-white); }

  /* === MOBILE NAVBAR — 3-column grid: burger | logo (centered) | actions === */
  .navbar {
    display: grid !important;
    grid-template-columns: 1fr auto 1fr;
    grid-template-rows: 1fr;             /* lock to ONE row */
    align-items: center;
    gap: .5rem;
    padding-inline: 1rem;
    height: 68px;
  }
  .navbar__burger {
    display: inline-flex;
    grid-column: 1;
    grid-row: 1;
    justify-self: start;
    padding: 10px;
    color: var(--bomb-grey-950);
  }
  .navbar__burger svg { width: 24px; height: 24px; }
  .navbar__logo {
    grid-column: 2;
    grid-row: 1;
    justify-self: center;
  }
  .navbar__logo img,
  .navbar__logo .custom-logo { max-height: 48px; }
  /* .navbar__menu is position:fixed (fullscreen overlay) — explicitly park it
     in the same first cell so it never claims an auto-placed grid track. */
  .navbar__menu {
    grid-column: 1;
    grid-row: 1;
  }
  .navbar__actions {
    grid-column: 3;
    grid-row: 1;
    justify-self: end;
    display: flex;
    gap: .25rem;
    align-items: center;
  }
  .navbar__icon-btn { padding: 10px; }
  .navbar__icon-btn svg { width: 22px; height: 22px; }
  .header__cart-count {
    min-width: 18px;
    height: 18px;
    font-size: 11px;
    top: 2px;
    right: 2px;
  }

  .navbar__menu {
    position: fixed;
    top: 0; left: 0;
    width: 100vw;
    max-width: 100vw;
    height: 100vh;
    height: 100dvh;                                /* keeps the foot visible under iOS Safari toolbar */
    background: var(--bomb-pink-hero);            /* full-pink, no gradient */
    z-index: 100;
    transform: translateX(-100%);
    transition: transform .45s cubic-bezier(.22, .9, .3, 1);
    overflow: hidden;
    box-shadow: none;                             /* no shadow when fullscreen */
    display: flex;
    flex-direction: column;
    padding: 0;
  }
  body.bomb-menu-open .navbar__menu { transform: translateX(0); }

  .navbar__menu-head {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    padding: 1.25rem 1.5rem;
    border-bottom: 1px solid rgba(74, 24, 34, .12);
    flex-shrink: 0;
    background: transparent;
  }
  .navbar__menu-logo,
  .navbar__menu-logo .custom-logo-link {
    display: inline-flex;
    align-items: center;
    margin: 0; padding: 0;
  }
  .navbar__menu-logo img,
  .navbar__menu-logo .custom-logo { max-height: 48px; width: auto; display: block; }

  .navbar__menu-close {
    display: inline-flex !important;
    position: static;
    background: var(--bomb-white);
    border: 1px solid var(--bomb-grey-100);
    border-radius: 999px;
    width: 40px; height: 40px;
    color: var(--bomb-grey-950);
    cursor: pointer;
    align-items: center; justify-content: center;
    transition: background .2s, color .2s, border-color .2s;
  }
  .navbar__menu-close:hover { background: var(--bomb-rouge); color: var(--bomb-white); border-color: var(--bomb-rouge); }

  .navbar__menu-body {
    flex: 1 1 auto;
    overflow-y: auto;
    padding: 1.5rem 0;
    -webkit-overflow-scrolling: touch;
  }

  .navbar__menu-list {
    flex-direction: column !important;
    gap: 0 !important;
    font-family: var(--bomb-font-body) !important;
    font-size: 1.05rem !important;
    letter-spacing: .02em !important;
    text-transform: uppercase !important;
    font-weight: 600 !important;
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  .navbar__menu-list li { width: 100%; position: relative; }
  .navbar__menu-list a,
  .navbar__menu-list > li > a,
  .navbar__menu-list .menu-item > a {
    display: flex !important;
    align-items: center;
    padding: 1rem 1.5rem !important;
    color: var(--bomb-grey-950);
    text-decoration: none;
    position: relative;
    background-image: none !important;          /* kill the desktop linear-gradient underline */
    background-size: 0 !important;
    transition: color .2s, background .2s, padding-left .2s;
  }
  /* Slide-in rouge bar on hover/active */
  .navbar__menu-list a::before {
    content: "";
    position: absolute;
    left: 0; top: 50%;
    transform: translateY(-50%) scaleY(0);
    width: 3px;
    height: 60%;
    background: var(--bomb-rouge);
    border-radius: 0 3px 3px 0;
    transition: transform .25s cubic-bezier(.22, .9, .3, 1);
    transform-origin: center;
  }
  .navbar__menu-list a:hover,
  .navbar__menu-list .current-menu-item > a,
  .navbar__menu-list .current_page_item > a {
    color: var(--bomb-rouge);
    padding-left: 1.85rem;
    background: rgba(255, 255, 255, .35);          /* white wash on pink hover */
  }
  .navbar__menu-list a:hover::before,
  .navbar__menu-list .current-menu-item > a::before,
  .navbar__menu-list .current_page_item > a::before { transform: translateY(-50%) scaleY(1); }

  /* Parent items with chevron */
  .navbar__menu-list .menu-item-has-children > a::after {
    content: "";
    display: inline-block;
    margin-left: auto;
    width: 8px; height: 8px;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: rotate(-45deg);
    transition: transform .2s;
  }

  /* Sub-menu items */
  .navbar__menu-list .sub-menu {
    list-style: none;
    padding: .25rem 0 .5rem;
    margin: 0;
    background: rgba(255, 255, 255, .25);          /* subtle white wash on pink bg */
  }
  .navbar__menu-list .sub-menu a {
    font-size: .95rem !important;
    font-weight: 500 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    padding: .65rem 1.5rem .65rem 2.5rem;
    color: var(--bomb-grey-700);
  }
  .navbar__menu-list .sub-menu a::before { left: 1.5rem; }
  .navbar__menu-list .sub-menu a:hover { padding-left: 2.85rem; color: var(--bomb-rouge); }

  /* Foot — cart + social */
  .navbar__menu-foot {
    display: block !important;
    border-top: 1px solid rgba(74, 24, 34, .12);
    padding: 1.25rem 1.5rem;
    background: transparent;                       /* keeps the pink bg */
    flex-shrink: 0;
  }
  .navbar__menu-cart {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .75rem 1rem;
    background: var(--bomb-white);
    border-radius: 12px;
    color: var(--bomb-grey-950);
    text-decoration: none;
    font-weight: 600;
    font-size: 1rem;
    margin-bottom: 1rem;
    transition: background .2s, color .2s;
  }
  .navbar__menu-cart:hover { background: var(--bomb-rouge); color: var(--bomb-white); }
  .navbar__menu-cart span:first-of-type { flex: 1; }
  .navbar__menu-cart-count {
    min-width: 22px; height: 22px;
    background: var(--bomb-rouge);
    color: var(--bomb-white);
    border-radius: 999px;
    display: inline-flex; align-items: center; justify-content: center;
    font-size: .8rem; font-weight: 700;
    padding: 0 6px;
  }
  .navbar__menu-cart:hover .navbar__menu-cart-count { background: var(--bomb-white); color: var(--bomb-rouge); }

  .navbar__menu-social {
    display: flex;
    gap: .5rem;
    justify-content: center;
  }
  .navbar__menu-social a {
    width: 40px; height: 40px;
    border-radius: 999px;
    background: var(--bomb-white);
    color: var(--bomb-grey-950);
    display: inline-flex; align-items: center; justify-content: center;
    text-decoration: none;
    transition: background .2s, color .2s;
  }
  .navbar__menu-social a:hover { background: var(--bomb-rouge); color: var(--bomb-white); }

  /* Sections : 2-col → 1-col */
  /* HERO mobile — fully responsive, no aspect-ratio constraint.
     Cover BOTH .bomb-hero and the with-image variant explicitly. */
  .bomb-hero,
  .bomb-hero--with-image,
  .bomb-page-hero,
  .bomb-page-hero--with-image {
    display: grid !important;
    grid-template-columns: 1fr !important;
    min-height: auto !important;
    width: 100% !important;
    max-width: 100vw !important;
    overflow: visible !important;
  }
  .bomb-hero__content {
    padding: 2.5rem var(--bomb-edge-pad);
    gap: 1.5rem;
    min-width: 0;
    max-width: 100%;
    overflow: visible;
  }
  .bomb-hero__image { min-height: 300px; aspect-ratio: 16/10; }
  .bomb-hero__title-wrap,
  .bomb-page-hero__title-wrap {
    width: 100%;
    max-width: min(85%, 320px);    /* cap so the title stays readable */
    min-width: 0;
    height: auto;
    overflow: visible;
    display: block;
    line-height: 0;
    margin: 0 auto;
    padding: 0;
  }
  /* Smaller hero side image on mobile — applied to BOTH home hero and page heroes
     (Notre histoire, Nous contacter, Livraison & Retours…) so they're consistent. */
  .bomb-hero__image,
  .bomb-page-hero__image {
    min-height: 220px !important;
    aspect-ratio: 4/3 !important;
    max-height: 320px;
    width: 100%;
  }
  .bomb-hero__image img,
  .bomb-page-hero__image img {
    width: 100%; height: 100%; object-fit: cover; display: block;
  }
  /* Page hero CTAs same responsive treatment as the home hero */
  .bomb-page-hero__cta,
  .bomb-page-hero__actions {
    width: 100%;
  }
  .bomb-page-hero__actions {
    display: flex; flex-direction: column; gap: .65rem;
  }
  .bomb-page-hero__actions .btn,
  .bomb-page-hero__cta { width: 100%; justify-content: center; padding: 1rem 1.5rem; }
  .bomb-hero__title-img,
  .bomb-page-hero__title-img {
    height: auto;
    max-height: none;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin: 0;
    padding: 0;
    display: block;
    object-fit: unset;
    object-position: initial;
  }
  /* CTA buttons on hero — full width + better tap target */
  .bomb-hero__actions {
    display: flex; flex-direction: column; gap: .65rem;
    width: 100%;
  }
  .bomb-hero__actions .btn { width: 100%; justify-content: center; padding: 1rem 1.5rem; }

  .bomb-triple { grid-template-columns: 1fr; }
  .bomb-triple__card { min-height: auto; }
  /* On mobile, image_top cards: content FIRST (closer to its CTA) then image */
  .bomb-triple__card--image_top { flex-direction: column-reverse; }
  .bomb-triple__card--image_top .bomb-triple__image,
  .bomb-triple__card--image_bottom .bomb-triple__image {
    min-height: 0 !important;
    aspect-ratio: 4/3;
    flex: 0 0 auto;
  }
  .bomb-triple__card--full_solid .bomb-triple__content {
    min-height: auto;
    justify-content: flex-start;          /* no more space-between gap */
    gap: 1.25rem;
    padding: 2rem 1.5rem;
  }
  .bomb-triple__sparkle { margin-bottom: 0 !important; }   /* don't push content down */

  .bomb-gift { grid-template-columns: 1fr; }
  .bomb-gift__image img { max-height: 320px; }
  .bomb-gift__content { padding: 3rem var(--bomb-edge-pad); }

  .bomb-page-hero { flex-direction: column; min-height: auto; }
  .bomb-page-hero__content { flex: 1 1 auto; padding: 3rem var(--bomb-edge-pad); gap: 1.5rem; }
  .bomb-page-hero__image { flex: 1 1 auto; min-height: 280px; }

  .bomb-split, .bomb-split--reverse { grid-template-columns: 1fr; gap: 0; min-height: auto; }
  .bomb-split__media { min-height: 280px; }
  .bomb-split__content { padding-block: 2.5rem; padding-inline: var(--bomb-edge-pad); }

  /* Bleed margins reset on mobile (no more horizontal bleed) */
  .bomb-page-section--split:not(.bomb-page-section--reverse) .bomb-split__media,
  .bomb-page-section--reverse .bomb-split__media {
    margin: 0 !important;
  }

  .bomb-features__grid { grid-template-columns: repeat(2, 1fr); }

  .bomb-contact-hero { padding-block: 3rem; }
  .bomb-contact-hero__inner { grid-template-columns: 1fr; gap: 2rem; }
  .bomb-contact-hero__title { font-size: clamp(1.75rem, 5vw, 2.5rem); }

  .bomb-contact-infos__layout { grid-template-columns: 1fr; }
  .bomb-contact-infos__list { grid-template-columns: 1fr 1fr; }
  .bomb-info-card:nth-child(3) { flex-direction: row; }

  .bomb-gift-product__layout { grid-template-columns: 1fr; }

  /* Footer */
  .footer__main { grid-template-columns: 1fr 1fr; gap: 1.5rem; }

  /* Products grid */
  .bomb-products__head { flex-direction: column; align-items: flex-start; gap: 1rem; }
  .bomb-products__title { max-width: 100%; }

  /* Single product (Woo) */
  .woocommerce div.product,
  .bomb-page--gift div.product,
  div.product.type-product {
    grid-template-columns: 1fr !important;
    gap: 2rem !important;
  }
  /* En colonne unique, on désactive le sticky de la colonne d'infos. */
  .woocommerce div.product .summary,
  .bomb-page--gift div.product .summary,
  div.product .summary {
    position: static !important;
    top: auto;
  }
}

/* ---- ≤ 720 : large mobile ---- */
@media (max-width: 720px) {
  .bomb-products__grid { grid-template-columns: repeat(2, 1fr); }
  .bomb-features__grid { grid-template-columns: 1fr; }
  .bomb-contact-infos__list { grid-template-columns: 1fr; }
  .bomb-info-card:nth-child(3) { flex-direction: column; align-items: flex-start; }

  /* Form Nom + Prénom stack on small screens (too cramped side-by-side) */
  .bomb-contact-hero__form .bomb-form-row { flex-direction: column !important; gap: 1rem !important; }

  /* Hero text smaller */
  .bomb-hero__title,
  .bomb-page-hero__title { font-size: clamp(2rem, 7vw, 2.75rem); }
  .bomb-triple__title { font-size: clamp(1.4rem, 5vw, 2rem); }
  .bomb-products__title { font-size: clamp(1.5rem, 5vw, 2rem); }
  .bomb-insta__title   { font-size: clamp(1.4rem, 5vw, 1.9rem); }
  .bomb-gift__title    { font-size: clamp(1.5rem, 5vw, 2.25rem); }

  /* Footer */
  .footer__main { grid-template-columns: 1fr; }
  .footer__bottom { flex-direction: column; align-items: flex-start; gap: .75rem; }
  .footer__legal { flex-wrap: wrap; gap: 1rem; }

  /* Marquee a tad smaller */
  .bomb-marquee { font-size: clamp(1.25rem, 6vw, 2rem); padding-block: 1.25rem; }

  /* Container gutter */
  :root { --bomb-gutter: 1rem; }
}

/* ---- ≤ 480 : small mobile ---- */
@media (max-width: 480px) {
  .bomb-products__grid { grid-template-columns: 1fr; }
  .navbar__actions { gap: 0; }
  .navbar__icon-btn { padding: 6px; }
  .header__cart-count { top: -4px; right: -4px; min-width: 16px; height: 16px; font-size: 10px; }

  /* Hero on tiny screens */
  .bomb-hero__content,
  .bomb-page-hero__content { padding-block: 2rem; }
  .bomb-hero__actions { flex-direction: column; align-items: stretch; }
  .bomb-hero__actions .btn { justify-content: center; }

  /* Product page chips */
  .bomb-product__chips { gap: .5rem; }
  .bomb-product__chip { padding: 6px 14px; font-size: .9rem; }

  /* Carte cadeau page form */
  .bomb-page--gift .summary input[type=text],
  .bomb-page--gift .summary input[type=email],
  .bomb-page--gift .summary textarea { font-size: 1rem !important; }  /* prevents iOS zoom on focus */

  /* Contact form sizes */
  .bomb-contact-hero__form { padding: 1.5rem; }
  .bomb-contact-hero__form input,
  .bomb-contact-hero__form textarea { font-size: 1rem !important; }    /* prevents iOS zoom */
}

/* ===== Blog / Archive / Recherche / 404 (index.php + 404.php) ============== */
.bomb-archive-header {
  text-align: center;
  margin: 2.5rem 0 2rem;
}
.bomb-archive-header .entry-title {
  font-family: var(--bomb-font-display, Georgia, serif);
  font-size: clamp(1.8rem, 4vw, 2.6rem);
  color: var(--bomb-bordeaux, #4A1822);
  margin: 0;
}
.bomb-post-card {
  background: var(--bomb-white, #fff);
  border-radius: 16px;
  padding: 1.5rem 1.75rem;
  margin-bottom: 1rem;
  box-shadow: 0 6px 18px rgba(74, 24, 34, .05);
}
.bomb-post-card .entry-title {
  font-family: var(--bomb-font-display, Georgia, serif);
  font-size: 1.35rem;
  margin: 0 0 .5rem;
}
.bomb-post-card .entry-title a {
  color: var(--bomb-bordeaux, #4A1822);
  text-decoration: none;
}
.bomb-post-card .entry-title a:hover { color: var(--bomb-rouge, #DD004B); }
.bomb-post-card .entry-summary { color: var(--bomb-grey-700, #555); font-size: .95rem; line-height: 1.6; }

.bomb-no-results,
.bomb-404 {
  text-align: center;
  max-width: 540px;
  margin: 4rem auto;
  padding: 2rem 1rem;
}
.bomb-no-results .entry-title,
.bomb-404 .entry-title {
  font-family: var(--bomb-font-display, Georgia, serif);
  font-size: clamp(1.8rem, 5vw, 2.8rem);
  color: var(--bomb-bordeaux, #4A1822);
  margin: 0 0 .75rem;
}
.bomb-no-results p,
.bomb-404 p { color: var(--bomb-grey-700, #555); margin: 0 0 1.5rem; }
.bomb-404__actions {
  display: flex; gap: .75rem; justify-content: center; flex-wrap: wrap;
}

/* Boutons réutilisables */
.bomb-btn {
  display: inline-flex; align-items: center; justify-content: center;
  padding: .85rem 1.75rem;
  border-radius: 999px;
  font-family: var(--bomb-font-body, 'Roboto', sans-serif);
  font-size: .95rem; font-weight: 700;
  text-decoration: none;
  transition: background .2s, color .2s, transform .15s, box-shadow .2s;
}
.bomb-btn--primary {
  background: var(--bomb-rouge, #DD004B); color: #fff;
  box-shadow: 0 10px 24px rgba(221, 0, 75, .25);
}
.bomb-btn--primary:hover {
  background: var(--bomb-bordeaux, #4A1822); color: #fff;
  transform: translateY(-2px);
}
.bomb-btn--ghost {
  background: transparent; color: var(--bomb-rouge, #DD004B);
  border: 1.5px solid var(--bomb-rouge, #DD004B);
}
.bomb-btn--ghost:hover {
  background: var(--bomb-rouge, #DD004B); color: #fff;
}

/* =====================================================================
   Page de confirmation de commande — « Merci » (thankyou.php)
   ===================================================================== */
.bomb-thankyou {
  max-width: 760px;
  margin: 2rem auto 4rem;
}

/* ----- Hero de confirmation ----- */
.bomb-thankyou-hero {
  position: relative;
  overflow: hidden;
  text-align: center;
  border-radius: 24px;
  padding: 3rem 2rem 2.75rem;
  background: linear-gradient(135deg, #DD004B 0%, #FF1F7A 60%, #FF35A4 100%);
  color: #fff;
  box-shadow: 0 24px 48px rgba(221, 0, 75, .26);
}
.bomb-thankyou-hero--failed {
  background: linear-gradient(135deg, #4A1822 0%, #6a2230 100%);
  box-shadow: 0 24px 48px rgba(74, 24, 34, .3);
}
.bomb-thankyou-hero__inner { position: relative; z-index: 2; }
.bomb-thankyou-hero__deco {
  position: absolute; z-index: 1; pointer-events: none;
  color: rgba(255, 255, 255, .55);
}
.bomb-thankyou-hero__deco .bomb-page-sparkle { width: 100%; height: 100%; fill: currentColor; }
.bomb-thankyou-hero__deco--1 { width: 30px; height: 30px; top: 16%; left: 9%;  animation: bombMegaFloat 7s ease-in-out infinite; }
.bomb-thankyou-hero__deco--2 { width: 18px; height: 18px; top: 64%; left: 16%; animation: bombMegaFloat 9s ease-in-out infinite; opacity: .7; }
.bomb-thankyou-hero__deco--3 { width: 24px; height: 24px; top: 26%; right: 11%; animation: bombMegaFloat 8s ease-in-out infinite; }
.bomb-thankyou-hero__check {
  display: inline-flex; align-items: center; justify-content: center;
  width: 64px; height: 64px; margin-bottom: 1.1rem;
  background: #fff; border-radius: 50%;
  box-shadow: 0 10px 24px rgba(0, 0, 0, .18);
}
.bomb-thankyou-hero__check svg { width: 30px; height: 30px; color: #DD004B; }
.bomb-thankyou-hero__overline {
  display: inline-block;
  font-family: var(--bomb-font-body);
  font-size: .72rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase;
  padding: .35rem .85rem; margin-bottom: .9rem;
  background: rgba(255, 255, 255, .2); border-radius: 999px;
}
.bomb-thankyou-hero__title {
  font-family: var(--bomb-font-display, Georgia, serif);
  font-size: clamp(2rem, 5vw, 3rem);
  font-weight: 700; line-height: 1.1;
  margin: 0 0 .65rem; color: #fff;
}
.bomb-thankyou-hero__sub {
  max-width: 480px; margin: 0 auto;
  font-size: 1rem; line-height: 1.6; color: rgba(255, 255, 255, .92);
}
.bomb-thankyou-hero__sub strong { color: #fff; font-weight: 700; }
.bomb-thankyou-hero__actions {
  display: flex; gap: .75rem; justify-content: center; flex-wrap: wrap;
  margin-top: 1.5rem;
}
.bomb-thankyou-hero--failed .bomb-btn--ghost { color: #fff; border-color: rgba(255,255,255,.5); }
.bomb-thankyou-hero--failed .bomb-btn--ghost:hover { background: rgba(255,255,255,.15); }

/* ----- Cartes méta (numéro, date, total, paiement) ----- */
.bomb-thankyou-meta {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: .85rem;
  margin: -1.75rem 1rem 0;
  position: relative; z-index: 3;
}
.bomb-thankyou-meta__card {
  display: flex; flex-direction: column; gap: .3rem;
  background: #fff; border-radius: 14px;
  padding: 1.1rem 1rem;
  border: 1px solid #f0e4e8;
  box-shadow: 0 10px 24px rgba(74, 24, 34, .07);
  text-align: center;
}
.bomb-thankyou-meta__label {
  font-size: .66rem; font-weight: 700; letter-spacing: .1em;
  text-transform: uppercase; color: #84898C;
}
.bomb-thankyou-meta__value {
  font-family: var(--bomb-font-display, Georgia, serif);
  font-size: 1rem; font-weight: 700; color: #4A1822;
}
.bomb-thankyou-meta__value--total,
.bomb-thankyou-meta__value--total .amount { color: #DD004B !important; }

/* ----- Timeline « Et maintenant ? » ----- */
.bomb-thankyou-steps {
  margin: 2.25rem 0 .5rem;
  padding: 1.75rem 1.75rem 1.5rem;
  background: linear-gradient(180deg, #fdf7f3 0%, #fff 100%);
  border: 1px solid #f0e4e8; border-radius: 18px;
}
.bomb-thankyou-steps__title {
  font-family: var(--bomb-font-display, Georgia, serif);
  font-size: 1.3rem; color: #4A1822;
  margin: 0 0 1.25rem; text-align: center;
}
.bomb-thankyou-steps__list {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem;
}
.bomb-thankyou-steps__item { display: flex; gap: .7rem; align-items: flex-start; }
.bomb-thankyou-steps__num {
  flex-shrink: 0;
  width: 28px; height: 28px;
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: 50%;
  font-size: .8rem; font-weight: 800;
  background: #f0e4e8; color: #84898C;
}
.bomb-thankyou-steps__item.is-done .bomb-thankyou-steps__num {
  background: linear-gradient(135deg, #DD004B, #FF1F7A); color: #fff;
}
.bomb-thankyou-steps__item strong {
  display: block; font-size: .9rem; color: #4A1822; margin-bottom: 2px;
}
.bomb-thankyou-steps__item span { font-size: .8rem; line-height: 1.45; color: #84898C; }

/* ----- Détails de commande + adresses (rendus par WooCommerce) ----- */
.bomb-thankyou .woocommerce-order-details,
.bomb-thankyou .woocommerce-customer-details {
  margin-top: 2.25rem;
}
.bomb-thankyou .woocommerce-order-details__title,
.bomb-thankyou .woocommerce-customer-details h2,
.bomb-thankyou .woocommerce-column__title {
  font-family: var(--bomb-font-display, Georgia, serif) !important;
  font-size: 1.3rem !important; font-weight: 700 !important;
  color: #4A1822 !important; margin: 0 0 1rem !important;
}
.bomb-thankyou table.woocommerce-table--order-details {
  width: 100%; border-collapse: collapse;
  background: #fff; border-radius: 14px; overflow: hidden;
  border: 1px solid #f0e4e8;
  font-size: .92rem;
}
.bomb-thankyou table.woocommerce-table--order-details th,
.bomb-thankyou table.woocommerce-table--order-details td {
  padding: .85rem 1.1rem; text-align: left;
  border-bottom: 1px solid #f5e6eb;
}
.bomb-thankyou table.woocommerce-table--order-details thead th {
  background: #fdf7f3; color: #84898C;
  font-size: .7rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
}
.bomb-thankyou table.woocommerce-table--order-details tfoot th,
.bomb-thankyou table.woocommerce-table--order-details tfoot td {
  font-weight: 600; color: #4A1822; border-bottom: 0;
}
.bomb-thankyou table.woocommerce-table--order-details tfoot tr:last-child th,
.bomb-thankyou table.woocommerce-table--order-details tfoot tr:last-child td {
  font-family: var(--bomb-font-display, Georgia, serif);
  font-size: 1.15rem; color: #DD004B;
  border-top: 2px solid #4A1822;
}
.bomb-thankyou table.woocommerce-table--order-details a { color: #4A1822; text-decoration: none; font-weight: 600; }
.bomb-thankyou table.woocommerce-table--order-details a:hover { color: #DD004B; }
.bomb-thankyou .woocommerce-customer-details address {
  font-style: normal; line-height: 1.6;
  background: #fdf7f3; border: 1px solid #f0e4e8;
  border-radius: 12px; padding: 1.1rem 1.25rem;
}

/* ----- CTA bas de page ----- */
.bomb-thankyou-cta {
  text-align: center; margin-top: 2.5rem;
}
.bomb-thankyou-cta__help {
  display: block; margin-top: 1rem;
  font-size: .85rem; color: #84898C; text-decoration: underline;
  text-underline-offset: 3px;
}
.bomb-thankyou-cta__help:hover { color: #DD004B; }

@media (max-width: 720px) {
  .bomb-thankyou-meta { grid-template-columns: 1fr 1fr; margin-left: 0; margin-right: 0; }
  .bomb-thankyou-steps__list { grid-template-columns: 1fr; gap: .85rem; }
  .bomb-thankyou-hero { padding: 2.25rem 1.25rem; }
}

/* =====================================================================
   Template « Page SEO » (template-seo.php)
   ===================================================================== */
.bomb-seo { overflow: hidden; background: #fff; }

/* ----- Bannière ----- */
.bomb-seo-hero {
  position: relative;
  text-align: center;
  padding: clamp(3rem, 7vw, 5rem) 0 clamp(2.75rem, 6vw, 4rem);
  background: radial-gradient(ellipse 60% 80% at 50% 0%, #fbe9ef 0%, #fdf7f3 55%, #fff 100%);
  overflow: hidden;
}
.bomb-seo-hero .container { position: relative; z-index: 2; }
.bomb-seo-hero__deco {
  position: absolute; z-index: 1; pointer-events: none;
  color: var(--bomb-pink, #FF1F7A);
  animation: bombMegaFloat 8s ease-in-out infinite;
}
.bomb-seo-hero__deco .bomb-page-sparkle { width: 100%; height: 100%; fill: currentColor; }
.bomb-seo-hero__deco--1 { width: 26px; height: 26px; top: 22%;  left: 10%;  opacity: .6; animation-delay: 0s; }
.bomb-seo-hero__deco--2 { width: 16px; height: 16px; top: 60%;  left: 20%;  opacity: .4; animation-delay: 1.6s; }
.bomb-seo-hero__deco--3 { width: 30px; height: 30px; top: 30%;  right: 12%; opacity: .55; animation-delay: .8s; color: var(--bomb-rouge, #DD004B); }
.bomb-seo-hero__deco--4 { width: 18px; height: 18px; top: 68%;  right: 22%; opacity: .45; animation-delay: 2.4s; }
.bomb-seo-hero__deco--5 { width: 12px; height: 12px; top: 14%;  left: 46%;  opacity: .35; animation-delay: 3.2s; }
.bomb-seo-hero__overline {
  display: inline-block;
  font-family: var(--bomb-font-body);
  font-size: .76rem; font-weight: 700;
  letter-spacing: .18em; text-transform: uppercase;
  color: var(--bomb-rouge, #DD004B);
  padding: .4rem 1rem; margin-bottom: 1.1rem;
  background: rgba(221, 0, 75, .08); border-radius: 999px;
}
.bomb-seo-hero__title {
  font-family: var(--bomb-font-display, Georgia, serif);
  font-size: clamp(2.1rem, 5.5vw, 3.6rem);
  font-weight: 700; line-height: 1.08;
  color: var(--bomb-rouge, #DD004B);
  margin: 0 auto .9rem; max-width: 18ch;
}
.bomb-seo-hero__title em { font-style: italic; font-weight: 400; }
.bomb-seo-hero__intro {
  max-width: 600px; margin: 0 auto;
  font-size: 1.05rem; line-height: 1.75; color: var(--bomb-grey-700, #555);
}
.bomb-seo-hero__rule {
  display: block; width: 60px; height: 3px; margin: 1.5rem auto 0;
  border-radius: 2px;
  background: linear-gradient(90deg, var(--bomb-rouge, #DD004B), var(--bomb-pink, #FF1F7A));
}

/* ----- Bloc image + texte ----- */
.bomb-seo-media { padding: clamp(3rem, 6vw, 5rem) 0; }
.bomb-seo-media__inner {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: clamp(2rem, 5vw, 5rem); align-items: center;
}
.bomb-seo-media--image-right .bomb-seo-media__visual { order: 2; }

/* Visuel : cadre photo avec une « ombre portée » colorée décalée derrière. */
.bomb-seo-media__visual { position: relative; }
.bomb-seo-media__visual::before {
  content: ""; position: absolute; z-index: 0;
  inset: 18px -18px -18px 18px;
  border-radius: 22px;
  background: linear-gradient(135deg, #FFD2E1, #FF1F7A);
  opacity: .55;
}
.bomb-seo-media--image-right .bomb-seo-media__visual::before {
  inset: 18px 18px -18px -18px;
}
.bomb-seo-media__visual img,
.bomb-seo-media__placeholder {
  position: relative; z-index: 1;
  display: block; width: 100%;
  aspect-ratio: 4 / 3; object-fit: cover;
  border-radius: 18px;
  box-shadow: 0 20px 44px rgba(74, 24, 34, .14);
}
.bomb-seo-media__placeholder {
  background: linear-gradient(135deg, #FFD2E1, #FF1F7A);
}
.bomb-seo-media__overline {
  display: inline-block;
  font-family: var(--bomb-font-body);
  font-size: .74rem; font-weight: 700;
  letter-spacing: .15em; text-transform: uppercase;
  color: var(--bomb-rouge, #DD004B); margin-bottom: .7rem;
}
.bomb-seo-media__title {
  font-family: var(--bomb-font-display, Georgia, serif);
  font-size: clamp(1.65rem, 3.2vw, 2.5rem);
  font-weight: 700; line-height: 1.15;
  color: var(--bomb-bordeaux, #4A1822); margin: 0 0 1.1rem;
}
.bomb-seo-media__title em { font-style: italic; font-weight: 400; color: var(--bomb-rouge, #DD004B); }
.bomb-seo-media__text { color: var(--bomb-grey-700, #555); line-height: 1.8; font-size: 1.02rem; }
.bomb-seo-media__text p { margin: 0 0 1rem; }
.bomb-seo-media__content .bomb-btn { margin-top: 1rem; }

/* ----- Bloc texte ----- */
.bomb-seo-text {
  padding: clamp(2.5rem, 6vw, 4.5rem) 0;
  background: linear-gradient(180deg, #fdf7f3, #fff);
}
.bomb-seo-text__inner {
  position: relative;
  max-width: 1080px; margin: 0 auto;
  background: #fff; border: 1px solid #f0e4e8;
  border-radius: 22px; padding: clamp(2rem, 4.5vw, 3.5rem);
  box-shadow: 0 18px 44px rgba(74, 24, 34, .07);
  overflow: hidden;
}
/* Liseré rose en haut de la carte */
.bomb-seo-text__inner::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 5px;
  background: linear-gradient(90deg, var(--bomb-rouge, #DD004B), var(--bomb-pink, #FF1F7A), #FF35A4);
}
.bomb-seo-text__title {
  font-family: var(--bomb-font-display, Georgia, serif);
  font-size: clamp(1.7rem, 3.4vw, 2.3rem);
  font-weight: 700; color: var(--bomb-rouge, #DD004B);
  margin: 0 0 1.75rem; text-align: center;
}
.bomb-seo-text__content { color: var(--bomb-grey-700, #555); line-height: 1.85; }
.bomb-seo-text__content h2,
.bomb-seo-text__content h3 {
  font-family: var(--bomb-font-display, Georgia, serif);
  color: var(--bomb-bordeaux, #4A1822);
  margin: 2rem 0 .75rem; line-height: 1.25;
}
.bomb-seo-text__content h2:first-child,
.bomb-seo-text__content h3:first-child { margin-top: 0; }
.bomb-seo-text__content h2 { font-size: 1.5rem; }
.bomb-seo-text__content h3 {
  font-size: 1.18rem; color: var(--bomb-rouge, #DD004B);
  padding-left: .85rem; border-left: 3px solid var(--bomb-pink, #FF1F7A);
}
.bomb-seo-text__content p { margin: 0 0 1rem; }
.bomb-seo-text__content ul,
.bomb-seo-text__content ol { margin: 0 0 1.15rem 1.25rem; padding: 0; }
.bomb-seo-text__content li { margin-bottom: .45rem; }
.bomb-seo-text__content a { color: var(--bomb-rouge, #DD004B); font-weight: 600; }
.bomb-seo-text__content strong { color: var(--bomb-bordeaux, #4A1822); }

/* ----- Galerie de produits ----- */
.bomb-seo-products {
  padding: clamp(2.75rem, 6vw, 4.5rem) 0 clamp(3.5rem, 7vw, 5.5rem);
  background: #fff;
}
.bomb-seo-products__title {
  font-family: var(--bomb-font-display, Georgia, serif);
  font-size: clamp(1.75rem, 3.6vw, 2.6rem);
  font-weight: 700; color: var(--bomb-rouge, #DD004B);
  text-align: center; margin: 0 0 .75rem;
}
.bomb-seo-products .container > .bomb-products__grid { margin-top: 2.5rem; }
/* Petit ornement sous le titre de la galerie */
.bomb-seo-products__title + .bomb-products__grid::before { content: none; }

@media (max-width: 880px) {
  .bomb-seo-media__inner { grid-template-columns: 1fr; gap: 2.5rem; }
  .bomb-seo-media--image-right .bomb-seo-media__visual { order: 0; }
  .bomb-seo-media__visual::before { inset: 12px -12px -12px 12px; }
  .bomb-seo-media--image-right .bomb-seo-media__visual::before { inset: 12px 12px -12px -12px; }
}
@media (prefers-reduced-motion: reduce) {
  .bomb-seo-hero__deco { animation: none; }
}
