/*
 Theme Name:   Shoptimizer Child
 Theme URI:    https://www.fais-ta-belle.fr
 Description:  Child theme for Shoptimizer — Fais Ta Belle
 Author:       Fanny & Wilson
 Author URI:   https://www.fais-ta-belle.fr
 Template:     shoptimizer
 Version:      1.2.0
 Text Domain:  shoptimizer-child
*/

/* =============================================================================
   1. VARIABLES CSS — Charte graphique Fais Ta Belle
   ============================================================================= */

:root {
  /* ── Fonds ── */
  --ftb-cream:        #FAF6EF;
  --ftb-cream-warm:   #FFF8EE;
  --ftb-warm-white:   #FFFCF7;

  /* ── Vert (accent uniquement, plus en grand fond) ── */
  --ftb-forest:       #3A5449;
  --ftb-forest-light: #4D7060;
  --ftb-forest-deep:  #1F3329;
  --ftb-sage:         #DCE6D5;
  --ftb-sage-deep:    #A9BFA0;

  /* ── Pêche-terracotta (CTA, prix, accents joyeux) ── */
  --ftb-gold:         #D17A4D;          /* alias historique → pointe maintenant vers peach */
  --ftb-gold-light:   #FBE5D6;          /* alias historique → pointe maintenant vers peach-light */
  --ftb-peach:        #D17A4D;
  --ftb-peach-light:  #FBE5D6;
  --ftb-peach-deep:   #B5622F;

  /* ── Beurre (touches lumineuses, stickers) ── */
  --ftb-butter:       #F8E5A8;
  --ftb-butter-deep:  #E9C865;

  /* ── Blush (anciens secondaires gardés pour rétro-compat) ── */
  --ftb-blush:        #E8D5C4;
  --ftb-blush-deep:   #D4A899;

  /* ── Texte ── */
  --ftb-charcoal:     #1F1B17;
  --ftb-mid:          #6B6560;
  --ftb-soft:         #948D85;
  --ftb-border:       rgba(58, 84, 73, 0.10);

  /* ── Fonds sombres (heroes, footer, CTA dark) ── */
  --ftb-dark:         #1C1C1C;
  --ftb-dark-warm:    #2A2520;

  /* ── Sémantique (prix, erreurs, succès) ── */
  --ftb-error:        #D64040;
  --ftb-success:      #1E7A46;

  /* ── Ombres ── */
  --ftb-shadow-sm:    0 4px 16px rgba(58, 84, 73, 0.06);
  --ftb-shadow-md:    0 12px 32px rgba(58, 84, 73, 0.10);
  --ftb-shadow-peach: 0 12px 28px rgba(232, 155, 108, 0.28);

  /* ── Typographie (Fraunces remplace Epilogue pour les titres) ── */
  --ftb-serif: 'Fraunces', 'Epilogue', Georgia, serif;
  --ftb-sans:  'Jost', system-ui, sans-serif;

  /* ── Spacing ── */
  --ftb-section-py:   80px;
  --ftb-container:    1400px;
  --ftb-radius:       12px;
  --ftb-radius-lg:    20px;
  --ftb-radius-xl:    32px;
  --ftb-radius-pill:  9999px;
}

/* =============================================================================
   1b. FULL-WIDTH — Homepage et header/footer pleine largeur
   ============================================================================= */

/*
 * Sur la homepage, le contenu front-page.php est enveloppé dans .col-full
 * (injecté par header.php de Shoptimizer). On le libère pour que chaque
 * section FTB puisse couvrir tout le viewport bord à bord.
 * Le contenu intérieur est centré via .ftb-container (max-width: 1400px).
 */
.home .site-content .col-full {
  max-width: none !important;
  padding: 0 !important;
  box-sizing: border-box;
}

/*
 * Barre de navigation pleine largeur — contenu intérieur sans max-width.
 * Le header utilise maintenant .ftb-header-inner (géré par le CSS Header V2).
 */
@media (min-width: 993px) {
  .col-full-nav .shoptimizer-primary-navigation.col-full {
    max-width: none !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
  }
}

/* Évite le scrollbar horizontal si une section dépasse légèrement */
body {
  overflow-x: hidden;
}

/* =============================================================================
   2. TYPOGRAPHIE — Base globale
   ============================================================================= */

body {
  font-family: var(--ftb-sans);
  color: var(--ftb-charcoal);
  background-color: var(--ftb-cream);
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--ftb-serif);
  color: var(--ftb-forest);
  line-height: 1.2;
}

h1 {
  font-weight: 700;
  letter-spacing: -0.02em;
}
h2 {
  font-weight: 600;
  letter-spacing: -0.015em;
}
h3 {
  font-weight: 600;
  letter-spacing: -0.01em;
}
h4, h5, h6 {
  font-weight: 500;
}

/* =============================================================================
   3. UTILITAIRES — Classes réutilisables
   ============================================================================= */

.ftb-container {
  max-width: var(--ftb-container);
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}

.ftb-section {
  padding-top: var(--ftb-section-py);
  padding-bottom: var(--ftb-section-py);
}

.ftb-section--cream    { background-color: var(--ftb-cream); }
.ftb-section--white    { background-color: var(--ftb-warm-white); }
.ftb-section--blush    { background-color: var(--ftb-blush); }
.ftb-section--forest   { background-color: var(--ftb-forest); }

.ftb-section-title {
  font-family: var(--ftb-serif);
  font-size: clamp(1.75rem, 3vw, 2.5rem);
  font-weight: 400;
  color: var(--ftb-forest);
  margin-bottom: 8px;
}

.ftb-section-subtitle {
  font-family: var(--ftb-sans);
  font-size: 1rem;
  font-weight: 300;
  color: var(--ftb-mid);
  margin-bottom: 40px;
}

/* Boutons */
.ftb-btn {
  display: inline-block;
  font-family: var(--ftb-sans);
  font-size: 0.875rem;
  font-weight: 600;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  text-decoration: none;
  padding: 14px 32px;
  border-radius: var(--ftb-radius-pill);
  transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
  cursor: pointer;
  border: 2px solid transparent;
}

.ftb-btn--gold {
  background-color: var(--ftb-gold);
  border-color: var(--ftb-gold);
  color: #fff;
}
.ftb-btn--gold:hover {
  background-color: var(--ftb-gold-light);
  border-color: var(--ftb-gold-light);
  color: #fff;
  text-decoration: none;
}

.ftb-btn--outline-forest {
  background-color: transparent;
  border-color: var(--ftb-forest);
  color: var(--ftb-forest);
}
.ftb-btn--outline-forest:hover {
  background-color: var(--ftb-forest);
  color: #fff;
  text-decoration: none;
}

/* Badges */
.ftb-badge {
  display: inline-block;
  font-family: var(--ftb-sans);
  font-size: 10px;
  font-weight: 600;
  padding: 3px 8px;
  border-radius: 3px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.ftb-badge--bio {
  background-color: var(--ftb-forest);
  color: #fff;
}
.ftb-badge--fr {
  background-color: var(--ftb-blush);
  color: var(--ftb-forest);
}

/* =============================================================================
   4. PROMO BAR — Section 1
   ============================================================================= */

/* Promo bar — animation CSS pure (4 messages, 5 s chacun = 20 s cycle) */
@keyframes ftb-promo-cycle {
  0%    { opacity: 0; transform: translateY(10px) scale(0.97); }
  5%    { opacity: 1; transform: translateY(0)    scale(1);    }
  20%   { opacity: 1; transform: translateY(0)    scale(1);    }
  25%   { opacity: 0; transform: translateY(-10px) scale(0.97); }
  100%  { opacity: 0; transform: translateY(-10px) scale(0.97); }
}

.ftb-promo-bar {
  background: linear-gradient(90deg, var(--ftb-forest) 0%, var(--ftb-forest-light) 50%, var(--ftb-forest) 100%);
  color: #fff;
  font-family: var(--ftb-sans);
  font-size: 0.8125rem;
  font-weight: 500;
  letter-spacing: 0.4px;
  text-align: center;
  padding: 10px 48px;
  position: relative;
  z-index: 9999;
  overflow: hidden;
}
/* Reflet subtil animé */
.ftb-promo-bar::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(105deg, transparent 40%, rgba(255,255,255,0.06) 50%, transparent 60%);
  animation: ftb-promo-sheen 6s ease-in-out infinite;
  pointer-events: none;
}
@keyframes ftb-promo-sheen {
  0%, 100% { transform: translateX(-100%); }
  50%       { transform: translateX(100%);  }
}

/* Conteneur des messages — hauteur fixe pour éviter le layout shift */
.ftb-promo-bar__track {
  position: relative;
  height: 1.4em;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Chaque message — invisible par défaut, animé en CSS */
.ftb-promo-bar__msg {
  position: absolute;
  left: 0; right: 0;
  opacity: 0;
  transform: translateY(10px) scale(0.97);
  animation: ftb-promo-cycle 20s ease-in-out infinite both;
}
.ftb-promo-bar__msg:nth-child(1) { animation-delay:  0s; }
.ftb-promo-bar__msg:nth-child(2) { animation-delay:  5s; }
.ftb-promo-bar__msg:nth-child(3) { animation-delay: 10s; }
.ftb-promo-bar__msg:nth-child(4) { animation-delay: 15s; }

/* Bouton fermer */
.ftb-promo-bar__close {
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  background: none;
  border: none;
  color: rgba(255,255,255,0.5);
  font-size: 15px;
  line-height: 1;
  cursor: pointer;
  padding: 4px 6px;
  transition: color 0.2s, opacity 0.2s;
}
.ftb-promo-bar__close:hover { color: #fff; }

.ftb-promo-bar.is-hidden { display: none; }

/* =============================================================================
   5. HERO — Section 3
   ============================================================================= */

.ftb-hero {
  background-color: var(--ftb-cream);
  padding: 80px 20px;
  overflow: hidden;
}

.ftb-hero__inner {
  max-width: var(--ftb-container);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: 60px;
}

.ftb-hero__label {
  font-family: var(--ftb-sans);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--ftb-gold);
  margin-bottom: 16px;
  display: block;
}

.ftb-hero__title {
  font-family: var(--ftb-serif);
  font-size: clamp(2.25rem, 4.5vw, 3.75rem);
  font-weight: 600;
  font-style: italic;
  color: var(--ftb-forest);
  line-height: 1.15;
  margin-bottom: 20px;
}

.ftb-hero__subtitle {
  font-family: var(--ftb-sans);
  font-size: 1.0625rem;
  font-weight: 300;
  color: var(--ftb-mid);
  line-height: 1.7;
  margin-bottom: 32px;
  max-width: 480px;
}

.ftb-hero__ctas {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 40px;
}

.ftb-hero__stats {
  display: flex;
  gap: 0;
  flex-wrap: wrap;
  padding-top: 32px;
  border-top: 1px solid var(--ftb-border);
}

.ftb-hero__stat {
  padding-right: 24px;
  margin-right: 24px;
  border-right: 1px solid var(--ftb-border);
}
.ftb-hero__stat:last-child {
  border-right: none;
  padding-right: 0;
  margin-right: 0;
}

.ftb-hero__stat-number {
  font-family: var(--ftb-serif);
  font-size: 1.75rem;
  font-weight: 600;
  color: var(--ftb-forest);
  display: block;
  line-height: 1;
  margin-bottom: 4px;
}

.ftb-hero__stat-label {
  font-family: var(--ftb-sans);
  font-size: 0.75rem;
  font-weight: 400;
  color: var(--ftb-mid);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.ftb-hero__visual {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
}

.ftb-hero__visual-bg {
  width: 420px;
  height: 500px;
  background-color: var(--ftb-blush);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
}

.ftb-hero__visual-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.ftb-hero__visual-badge {
  position: absolute;
  bottom: 30px;
  right: -10px;
  background: #fff;
  border-radius: var(--ftb-radius-lg);
  padding: 12px 16px;
  box-shadow: 0 8px 24px rgba(44,74,62,0.12);
  font-family: var(--ftb-sans);
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--ftb-forest);
  white-space: nowrap;
}

@media (max-width: 768px) {
  .ftb-hero__inner {
    grid-template-columns: 1fr;
    gap: 40px;
  }
  .ftb-hero__visual { order: -1; }
  .ftb-hero__visual-bg {
    width: 280px;
    height: 320px;
  }
  .ftb-hero__stats { gap: 16px; }
}

/* =============================================================================
   6. USP BAR — Section 4
   ============================================================================= */

.ftb-usp-bar {
  background-color: var(--ftb-warm-white);
  border-top: 1px solid var(--ftb-border);
  border-bottom: 1px solid var(--ftb-border);
  padding: 28px 20px;
}

.ftb-usp-bar__grid {
  max-width: var(--ftb-container);
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  text-align: center;
}

.ftb-usp-bar__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}

.ftb-usp-bar__icon {
  font-size: 1.5rem;
  line-height: 1;
}

.ftb-usp-bar__title {
  font-family: var(--ftb-sans);
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--ftb-forest);
  margin: 0;
}

.ftb-usp-bar__desc {
  font-family: var(--ftb-sans);
  font-size: 0.75rem;
  font-weight: 300;
  color: var(--ftb-mid);
  margin: 0;
}

@media (max-width: 768px) {
  .ftb-usp-bar__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
  }
}

/* =============================================================================
   7. QUIZ TYPE DE PEAU — Section 5
   ============================================================================= */

.ftb-quiz {
  background-color: var(--ftb-dark);
  padding: 64px 20px;
  color: #fff;
  text-align: center;
}

.ftb-quiz__title {
  font-family: var(--ftb-serif);
  font-size: clamp(1.5rem, 2.5vw, 2rem);
  font-weight: 400;
  color: #fff;
  margin-bottom: 8px;
}

.ftb-quiz__subtitle {
  font-family: var(--ftb-sans);
  font-size: 0.9375rem;
  font-weight: 300;
  color: rgba(255,255,255,0.75);
  margin-bottom: 36px;
}

.ftb-quiz__buttons {
  display: flex;
  gap: 12px;
  justify-content: center;
  flex-wrap: wrap;
  margin-bottom: 48px;
}

.ftb-quiz__btn {
  font-family: var(--ftb-sans);
  font-size: 0.875rem;
  font-weight: 500;
  padding: 12px 22px;
  border-radius: 100px;
  border: 1.5px solid rgba(255,255,255,0.4);
  background: transparent;
  color: #fff;
  cursor: pointer;
  transition: background 0.2s, border-color 0.2s, color 0.2s;
  text-decoration: none;
}
.ftb-quiz__btn:hover,
.ftb-quiz__btn.is-active {
  background: var(--ftb-gold);
  border-color: var(--ftb-gold);
  color: #fff;
}

.ftb-quiz__results {
  display: none;
  animation: fadeIn 0.3s ease;
}
.ftb-quiz__results.is-visible {
  display: block;
}

.ftb-quiz__results-title {
  font-family: var(--ftb-sans);
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--ftb-gold-light);
  text-transform: uppercase;
  letter-spacing: 1px;
  margin-bottom: 24px;
}

.ftb-quiz__products {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  max-width: 900px;
  margin: 0 auto;
  text-align: left;
}

.ftb-quiz__product-card {
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.15);
  border-radius: var(--ftb-radius-lg);
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.ftb-quiz__product-brand {
  font-family: var(--ftb-sans);
  font-size: 0.6875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--ftb-gold-light);
}

.ftb-quiz__product-name {
  font-family: var(--ftb-sans);
  font-size: 0.9375rem;
  font-weight: 500;
  color: #fff;
  line-height: 1.4;
}

.ftb-quiz__product-price {
  font-family: var(--ftb-sans);
  font-size: 1rem;
  font-weight: 600;
  color: var(--ftb-gold-light);
  margin-top: auto;
}

.ftb-quiz__product-link {
  display: block;
  text-align: center;
  font-family: var(--ftb-sans);
  font-size: 0.8125rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: var(--ftb-forest);
  background: var(--ftb-gold);
  padding: 10px 16px;
  border-radius: var(--ftb-radius);
  text-decoration: none;
  transition: background 0.2s;
}
.ftb-quiz__product-link:hover {
  background: var(--ftb-gold-light);
  color: var(--ftb-forest);
  text-decoration: none;
}

@keyframes fadeIn {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: translateY(0); }
}

@media (max-width: 640px) {
  .ftb-quiz__products { grid-template-columns: 1fr; }
}

/* =============================================================================
   8. BESTSELLERS — Section 6
   ============================================================================= */

.ftb-bestsellers {
  padding: var(--ftb-section-py) 20px;
  background-color: var(--ftb-warm-white);
  text-align: center;
}

.ftb-bestsellers__header {
  margin-bottom: 40px;
}

.ftb-bestsellers__cta {
  margin-top: 40px;
}

/* Override Shoptimizer product grid in this section */
.ftb-bestsellers .products {
  justify-content: center;
}

/*
 * Bouton "Ajouter au panier" — toujours visible sur toutes les grilles.
 *
 * Shoptimizer : opacity:0 + position:absolute par défaut sur desktop,
 * révélé uniquement au :hover. On force l'affichage permanent partout
 * (homepage bestsellers, pages catégorie, recherche…).
 */
ul.products li.product .button,
ul.products li.product .added_to_cart {
  opacity: 1 !important;
  position: relative !important;
  bottom: auto !important;
  width: 100% !important;
  height: auto !important;
  line-height: 1 !important;
  padding: 12px 16px !important;
  margin-top: 12px !important;
  background-color: var(--ftb-gold) !important;
  border-color: var(--ftb-gold) !important;
  color: #fff !important;
  font-family: var(--ftb-sans) !important;
  font-size: 0.8125rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.5px !important;
  text-transform: uppercase !important;
  border-radius: var(--ftb-radius) !important;
  transition: background-color 0.2s ease, border-color 0.2s ease !important;
  text-align: center !important;
  display: block !important;
}

ul.products li.product .button:hover,
ul.products li.product .added_to_cart:hover {
  background-color: var(--ftb-gold-light) !important;
  border-color: var(--ftb-gold-light) !important;
  color: #fff !important;
}

/*
 * Alignement des boutons — toutes les cards à hauteur égale.
 *
 * DOM WooCommerce dans li.product :
 *   <a class="woocommerce-loop-product__link"> image + titre + prix </a>
 *   <a class="button add_to_cart_button">                           </a>
 *
 * Shoptimizer force align-self:flex-start → cards de hauteurs variables.
 * Fix : stretch + flex-column sur li, flex:1 sur le lien → bouton en bas.
 */
ul.products li.product {
  align-self: stretch !important;
  display: flex !important;
  flex-direction: column !important;
  padding-bottom: 16px !important;
}

ul.products li.product > a.woocommerce-loop-product__link {
  flex: 1 !important;
}

/* =============================================================================
   9. NAVIGATION PAR CONCERN — Section 7
   ============================================================================= */

.ftb-concerns {
  padding: var(--ftb-section-py) 20px;
  background-color: var(--ftb-cream);
  text-align: center;
}

.ftb-concerns__grid {
  max-width: var(--ftb-container);
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 16px;
  margin-top: 40px;
}

.ftb-concerns__tile {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  padding: 28px 12px;
  background: #fff;
  border-radius: var(--ftb-radius-lg);
  border: 1px solid var(--ftb-border);
  text-decoration: none;
  transition: box-shadow 0.2s, transform 0.2s, border-color 0.2s;
}
.ftb-concerns__tile:hover {
  box-shadow: 0 8px 24px rgba(44,74,62,0.1);
  transform: translateY(-3px);
  border-color: var(--ftb-forest-light);
  text-decoration: none;
}

.ftb-concerns__tile-icon {
  font-size: 2rem;
  line-height: 1;
}

.ftb-concerns__tile-label {
  font-family: var(--ftb-sans);
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--ftb-forest);
  text-align: center;
  line-height: 1.3;
}

@media (max-width: 900px) {
  .ftb-concerns__grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 480px) {
  .ftb-concerns__grid { grid-template-columns: repeat(2, 1fr); }
}

/* =============================================================================
   10. TRANSPARENCE + CHARTE — Section 8
   ============================================================================= */

.ftb-charter {
  padding: var(--ftb-section-py) 20px;
  background-color: var(--ftb-warm-white);
}

.ftb-charter__inner {
  max-width: var(--ftb-container);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: start;
}

.ftb-charter__actifs-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.ftb-charter__actif {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 20px;
  background: var(--ftb-cream);
  border-radius: var(--ftb-radius-lg);
  border: 1px solid var(--ftb-border);
}

.ftb-charter__actif-icon {
  font-size: 1.5rem;
  flex-shrink: 0;
  margin-top: 2px;
}

.ftb-charter__actif-name {
  font-family: var(--ftb-sans);
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--ftb-forest);
  margin-bottom: 2px;
}

.ftb-charter__actif-origin {
  font-family: var(--ftb-sans);
  font-size: 0.8125rem;
  font-weight: 300;
  color: var(--ftb-mid);
}

.ftb-charter__table {
  border-radius: var(--ftb-radius-lg);
  overflow: hidden;
  border: 1px solid var(--ftb-border);
}

.ftb-charter__table-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
}

.ftb-charter__table-cell {
  padding: 14px 18px;
  font-family: var(--ftb-sans);
  font-size: 0.875rem;
  border-bottom: 1px solid var(--ftb-border);
  display: flex;
  align-items: center;
  gap: 8px;
}

.ftb-charter__table-row:last-child .ftb-charter__table-cell {
  border-bottom: none;
}

.ftb-charter__table-header {
  background-color: var(--ftb-dark);
  color: #fff;
  font-weight: 600;
  font-size: 0.8125rem;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  padding: 14px 18px;
}

.ftb-charter__table-cell--yes {
  background-color: rgba(45, 74, 62, 0.05);
  color: var(--ftb-forest);
}

.ftb-charter__table-cell--no {
  background-color: rgba(212, 168, 153, 0.12);
  color: #7a3a2e;
}

@media (max-width: 768px) {
  .ftb-charter__inner { grid-template-columns: 1fr; gap: 40px; }
}

/* =============================================================================
   11. NOS MARQUES — Section 9
   ============================================================================= */

.ftb-brands {
  padding: var(--ftb-section-py) 20px;
  background-color: var(--ftb-cream);
  text-align: center;
}

.ftb-brands__grid {
  max-width: var(--ftb-container);
  margin: 40px auto 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

.ftb-brands__card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 14px;
  padding: 36px 24px;
  background: #fff;
  border-radius: var(--ftb-radius-lg);
  border: 1px solid var(--ftb-border);
  text-decoration: none;
  transition: box-shadow 0.2s, transform 0.2s;
  min-height: 140px;
}
.ftb-brands__card:hover {
  box-shadow: 0 8px 28px rgba(44,74,62,0.1);
  transform: translateY(-3px);
  text-decoration: none;
}

.ftb-brands__card-name {
  font-family: var(--ftb-serif);
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--ftb-forest);
  line-height: 1.2;
}

.ftb-brands__card-tagline {
  font-family: var(--ftb-sans);
  font-size: 0.75rem;
  font-weight: 300;
  color: var(--ftb-mid);
  text-align: center;
  line-height: 1.4;
}

.ftb-brands__card-badge {
  font-family: var(--ftb-sans);
  font-size: 0.6875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: var(--ftb-gold);
  border: 1px solid var(--ftb-gold-light);
  border-radius: 100px;
  padding: 3px 10px;
}

@media (max-width: 768px) {
  .ftb-brands__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
  .ftb-brands__grid { grid-template-columns: 1fr; }
}

/* =============================================================================
   12. AVIS CLIENTS — Section 10
   ============================================================================= */

.ftb-reviews {
  padding: var(--ftb-section-py) 20px;
  background-color: var(--ftb-blush);
  text-align: center;
}

.ftb-reviews__grid {
  max-width: var(--ftb-container);
  margin: 40px auto 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  text-align: left;
}

.ftb-reviews__card {
  background: #fff;
  border-radius: var(--ftb-radius-lg);
  padding: 28px;
  border: 1px solid rgba(212,168,153,0.3);
}

.ftb-reviews__stars {
  color: var(--ftb-gold);
  font-size: 1rem;
  letter-spacing: 2px;
  margin-bottom: 12px;
}

.ftb-reviews__text {
  font-family: var(--ftb-sans);
  font-size: 0.9375rem;
  font-weight: 300;
  color: var(--ftb-charcoal);
  line-height: 1.7;
  margin-bottom: 20px;
  font-style: italic;
}

.ftb-reviews__author {
  display: flex;
  align-items: center;
  gap: 12px;
}

.ftb-reviews__author-avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background-color: var(--ftb-blush-deep);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--ftb-serif);
  font-size: 1rem;
  font-weight: 600;
  color: var(--ftb-forest);
  flex-shrink: 0;
}

.ftb-reviews__author-name {
  font-family: var(--ftb-sans);
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--ftb-charcoal);
}

.ftb-reviews__author-meta {
  font-family: var(--ftb-sans);
  font-size: 0.75rem;
  font-weight: 300;
  color: var(--ftb-mid);
}

.ftb-reviews__verified {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-family: var(--ftb-sans);
  font-size: 0.6875rem;
  font-weight: 600;
  color: var(--ftb-forest-light);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-top: 4px;
}

@media (max-width: 768px) {
  .ftb-reviews__grid { grid-template-columns: 1fr; }
}

/* =============================================================================
   13. Section Newsletter + Réseaux sociaux
   ============================================================================= */

.ftb-newsletter {
  padding: var(--ftb-section-py) 20px;
  background: linear-gradient(135deg, var(--ftb-warm-white) 0%, var(--ftb-blush) 55%, #e2cabb 100%);
  position: relative;
  overflow: hidden;
}

/* Cercle décoratif en arrière-plan */
.ftb-newsletter::before {
  content: '';
  position: absolute;
  top: -120px;
  right: -80px;
  width: 420px;
  height: 420px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(196,150,74,0.07) 0%, transparent 70%);
  pointer-events: none;
}

.ftb-newsletter__inner {
  max-width: 980px;
  margin: 0 auto;
  position: relative;
}

/* --- Layout 2 colonnes --- */
.ftb-newsletter__layout {
  display: flex;
  align-items: center;
  gap: 72px;
  margin-bottom: 56px;
}

/* --- Colonne texte (gauche) --- */
.ftb-newsletter__text {
  flex: 1 1 0;
  min-width: 0;
}

.ftb-newsletter__eyebrow {
  font-family: var(--ftb-sans);
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ftb-gold);
  display: block;
  margin-bottom: 14px;
}

.ftb-newsletter__title {
  font-family: var(--ftb-serif);
  font-size: clamp(1.5rem, 2.2vw, 1.875rem);
  font-weight: 400;
  font-style: italic;
  color: var(--ftb-forest);
  line-height: 1.25;
  margin-bottom: 14px;
}

.ftb-newsletter__subtitle {
  font-family: var(--ftb-sans);
  font-size: 0.875rem;
  font-weight: 300;
  color: var(--ftb-mid);
  margin-bottom: 28px;
  line-height: 1.7;
}

/* Perks — liste avec icônes SVG */
.ftb-newsletter__perks {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.ftb-newsletter__perk {
  font-family: var(--ftb-sans);
  font-size: 0.875rem;
  font-weight: 400;
  color: var(--ftb-charcoal);
  display: flex;
  align-items: center;
  gap: 10px;
  line-height: 1.4;
}

.ftb-newsletter__perk-icon {
  flex-shrink: 0;
}

.ftb-newsletter__perk strong {
  color: var(--ftb-forest);
  font-weight: 600;
}

/* --- Colonne formulaire (droite) --- */
.ftb-newsletter__form-col {
  flex: 1 1 0;
  min-width: 0;
}

.ftb-newsletter__card {
  background: #fff;
  border-radius: 20px;
  padding: 40px 36px 32px;
  box-shadow: 0 8px 40px rgba(44,74,62,0.10), 0 1px 4px rgba(44,74,62,0.05);
  border: 1px solid rgba(44,74,62,0.06);
}

.ftb-newsletter__embed {
  margin: 0;
}

/* ============================================================
   NEWSLETTER — Form Brevo custom (.ftb-news-form)
   Remplace l'embed Omnisend. Charte FTB Fresh, sitewide
   (homepage card sombre + sections claires blog/cat/article).
   ============================================================ */
.ftb-news-form { margin: 0; width: 100%; }
.ftb-news-form__row {
  display: flex;
  gap: 8px;
  align-items: stretch;
}
.ftb-news-form__input {
  flex: 1 1 auto;
  min-width: 0;
  font-family: var(--ftb-sans);
  font-size: 0.95rem;
  font-weight: 400;
  color: var(--ftb-charcoal);
  background: var(--ftb-cream);
  border: 1.5px solid var(--ftb-border);
  border-radius: var(--ftb-radius-pill);
  padding: 14px 20px;
  transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
  -webkit-appearance: none;
  appearance: none;
}
.ftb-news-form__input::placeholder { color: var(--ftb-soft); }
.ftb-news-form__input:focus {
  outline: none;
  background: #fff;
  border-color: var(--ftb-peach);
  box-shadow: 0 0 0 3px rgba(232,155,108,0.18);
}
.ftb-news-form__btn {
  flex: 0 0 auto;
  font-family: var(--ftb-sans);
  font-size: 0.9rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: #fff;
  background: var(--ftb-peach);
  border: none;
  border-radius: var(--ftb-radius-pill);
  padding: 14px 26px;
  cursor: pointer;
  white-space: nowrap;
  transition: background .2s ease, transform .15s ease, box-shadow .2s ease;
}
.ftb-news-form__btn:hover {
  background: var(--ftb-peach-deep);
  transform: translateY(-1px);
  box-shadow: var(--ftb-shadow-peach);
}
.ftb-news-form__btn:active { transform: translateY(0); }
.ftb-news-form__btn:disabled,
.ftb-news-form__btn.is-loading {
  opacity: 0.65;
  cursor: progress;
  transform: none;
  box-shadow: none;
}
/* Honeypot — hors écran, jamais display:none (certains bots l'ignoreraient) */
.ftb-news-form__hp {
  position: absolute !important;
  left: -9999px !important;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
.ftb-news-form__msg {
  font-family: var(--ftb-sans);
  font-size: 0.82rem;
  font-weight: 500;
  line-height: 1.45;
  margin: 12px 0 0;
}
.ftb-news-form__msg.is-success { color: var(--ftb-forest); }
.ftb-news-form__msg.is-error   { color: var(--ftb-peach-deep); }
.ftb-news-form__msg.is-loading { color: var(--ftb-mid); }
.ftb-news-form__consent {
  font-family: var(--ftb-sans);
  font-size: 0.75rem;
  font-weight: 300;
  color: var(--ftb-mid);
  line-height: 1.5;
  margin: 14px 0 0;
}
@media (max-width: 520px) {
  .ftb-news-form__row { flex-direction: column; }
  .ftb-news-form__btn { width: 100%; }
}

.ftb-newsletter__legal {
  font-family: var(--ftb-sans);
  font-size: 0.75rem;
  font-weight: 300;
  color: var(--ftb-mid);
  margin-top: 16px;
  display: flex;
  align-items: flex-start;
  gap: 6px;
  line-height: 1.5;
}

.ftb-newsletter__legal svg {
  flex-shrink: 0;
  margin-top: 1px;
  opacity: 0.5;
}

/* --- Social block --- */
.ftb-newsletter__social-block {
  border-top: 1px solid rgba(44,74,62,0.1);
  padding-top: 40px;
}

.ftb-newsletter__social-divider {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-bottom: 32px;
}

.ftb-newsletter__social-divider span {
  flex: 1;
  height: 1px;
  background: linear-gradient(to right, transparent, var(--ftb-blush-deep), transparent);
  opacity: 0.6;
}

.ftb-newsletter__social-heading {
  font-family: var(--ftb-sans);
  font-size: 0.6875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--ftb-mid);
  white-space: nowrap;
  margin: 0;
  opacity: 0.75;
}

.ftb-newsletter__social-row {
  display: flex;
  justify-content: center;
  gap: 20px;
  flex-wrap: wrap;
}

.ftb-newsletter__social-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  text-decoration: none;
  color: var(--ftb-forest);
  transition: transform 0.22s ease, color 0.22s ease;
}

.ftb-newsletter__social-btn svg {
  display: block;
  width: 48px;
  height: 48px;
  padding: 12px;
  border-radius: 50%;
  background: #fff;
  border: 1.5px solid rgba(44,74,62,0.12);
  box-shadow: 0 2px 10px rgba(44,74,62,0.07);
  transition: background 0.22s ease, border-color 0.22s ease, box-shadow 0.22s ease, transform 0.22s ease;
  color: var(--ftb-forest);
}

.ftb-newsletter__social-label {
  font-family: var(--ftb-sans);
  font-size: 0.6875rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ftb-mid);
  transition: color 0.22s ease;
}

.ftb-newsletter__social-btn:hover {
  transform: translateY(-4px);
}

.ftb-newsletter__social-btn:hover svg {
  background: var(--ftb-forest);
  border-color: var(--ftb-forest);
  box-shadow: 0 8px 24px rgba(44,74,62,0.22);
  color: #fff;
}

.ftb-newsletter__social-btn:hover .ftb-newsletter__social-label {
  color: var(--ftb-forest);
}

.ftb-newsletter__social-btn:focus-visible {
  outline: 2px solid var(--ftb-forest);
  outline-offset: 4px;
  border-radius: 4px;
}

/* --- Responsive --- */
@media (max-width: 767px) {
  .ftb-newsletter__layout {
    flex-direction: column;
    gap: 36px;
    margin-bottom: 40px;
  }
  .ftb-newsletter__text { text-align: center; }
  .ftb-newsletter__perks { align-items: center; }
  .ftb-newsletter__card { padding: 28px 20px 24px; border-radius: 16px; }
  .ftb-newsletter__legal { justify-content: center; }
}

@media (max-width: 480px) {
  .ftb-newsletter__social-row { gap: 14px; }
}

/* =============================================================================
   14. WooCommerce — Overrides globaux FTB
   ============================================================================= */

/* Bouton Ajouter au panier — fiche produit */
.single-product div.product form.cart .single_add_to_cart_button {
  background-color: var(--ftb-gold) !important;
  border-color: var(--ftb-gold) !important;
  color: #fff !important;
  font-family: var(--ftb-sans) !important;
  font-weight: 600 !important;
  letter-spacing: 0.5px !important;
  text-transform: uppercase !important;
  opacity: 1 !important;
  padding: 0 28px !important;
  font-size: 1rem !important;
  border-radius: var(--ftb-radius-pill) !important;
  cursor: pointer !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  height: 52px !important;
  min-height: 52px !important;
  line-height: 1 !important;
  box-shadow: var(--ftb-shadow-peach) !important;
  transition: transform .15s ease, box-shadow .15s ease, background-color .15s ease !important;
}
.single-product div.product form.cart .single_add_to_cart_button:hover {
  transform: translateY(-1px) !important;
  box-shadow: 0 16px 36px rgba(232,155,108,0.36) !important;
}
.single-product div.product form.cart .single_add_to_cart_button:hover {
  background-color: var(--ftb-gold-light) !important;
  border-color: var(--ftb-gold-light) !important;
  color: #fff !important;
}

/* Bouton checkout */
.wc-proceed-to-checkout .checkout-button {
  background-color: var(--ftb-gold) !important;
  border-color: var(--ftb-gold) !important;
  color: #fff !important;
}
.wc-proceed-to-checkout .checkout-button:hover {
  background-color: var(--ftb-gold-light) !important;
  border-color: var(--ftb-gold-light) !important;
}

/* =============================================================================
   MISE EN PAGE FICHE PRODUIT — Single product overrides
   ============================================================================= */

/* Fond crème sur la page produit */
.single-product {
  background-color: var(--ftb-cream);
}

/* Zone résumé produit */
.single-product div.product .summary {
  font-family: var(--ftb-sans);
}

/* Titre produit */
.single-product div.product .product_title {
  font-family: var(--ftb-serif);
  color: var(--ftb-forest);
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 600;
  line-height: 1.2;
  margin-bottom: 8px;
}

/* Prix — mise en valeur (2026-05-18) */
.single-product div.product p.price,
.single-product div.product span.price {
  font-family: var(--ftb-serif);
  font-size: clamp(1.5rem, 3.4vw, 1.8rem);
  font-weight: 500;
  color: var(--ftb-peach-deep);
  line-height: 1.1;
  letter-spacing: -0.02em;
  margin: 8px 0 14px;
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 10px;
}
.single-product div.product p.price .woocommerce-Price-amount,
.single-product div.product span.price .woocommerce-Price-amount {
  font-variant-numeric: tabular-nums;
}
.single-product div.product p.price .woocommerce-Price-currencySymbol,
.single-product div.product span.price .woocommerce-Price-currencySymbol {
  font-size: 0.7em;
  margin-left: 2px;
  font-weight: 400;
  opacity: 0.85;
}
/* Prix barré (regular) en promo — discret */
.single-product div.product p.price del,
.single-product div.product span.price del {
  font-family: var(--ftb-sans);
  font-size: 0.55em;
  font-weight: 400;
  color: var(--ftb-soft);
  opacity: 0.85;
  text-decoration: line-through;
  order: 2;
}
/* Prix soldé (ins) en promo — accent fort */
.single-product div.product p.price ins,
.single-product div.product span.price ins {
  background: linear-gradient(180deg, transparent 65%, rgba(232,155,108,0.18) 65%);
  text-decoration: none;
  color: var(--ftb-peach-deep);
  font-weight: 700;
  font-size: 1.15em;
  order: 1;
  padding: 0 4px;
}
/* Ligne "Tu économises X €" sous le prix (pill discrète vert clair)
   Le badge -XX% est désormais en haut via .onsale--noicon */
.ftb-pdp-promo {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin: 4px 0 16px;
  font-family: var(--ftb-sans);
}
.ftb-pdp-promo-save {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(58,84,73,0.08);
  color: var(--ftb-forest);
  font-size: 0.82rem;
  font-weight: 500;
  letter-spacing: 0.01em;
  padding: 6px 12px 6px 10px;
  border-radius: var(--ftb-radius-pill);
  line-height: 1.2;
}
.ftb-pdp-promo-save svg {
  flex: 0 0 14px;
  opacity: 0.8;
}
.ftb-pdp-promo-save strong {
  font-weight: 700;
  color: var(--ftb-peach-deep);
  letter-spacing: 0.01em;
}

/* Note / étoiles */
.single-product .woocommerce-product-rating {
  margin-bottom: 12px;
}

/* Formulaire panier (quantité + bouton + stock) — desktop row */
.single-product div.product form.cart {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 12px !important;
  margin-top: 20px;
  flex-wrap: wrap;
}

/* Quantité — flex inline avec arrows collées à droite de l'input */
.single-product div.product form.cart .quantity {
  display: inline-flex !important;
  align-items: stretch !important;
  position: relative;
  width: auto !important;
  flex: 0 0 auto !important;
  height: 52px;
  border: 1.5px solid var(--ftb-border);
  border-radius: var(--ftb-radius);
  background: #fff;
  overflow: hidden;
}
.single-product div.product form.cart .quantity .qty,
.single-product div.product form.cart .quantity .input-text {
  width: 48px !important;
  height: 100% !important;
  font-family: var(--ftb-sans) !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  color: var(--ftb-forest) !important;
  text-align: center !important;
  border: none !important;
  background: transparent !important;
  border-radius: 0 !important;
  padding: 0 4px !important;
  -moz-appearance: textfield;
  outline-offset: -2px;
}
.single-product div.product form.cart .quantity .qty::-webkit-outer-spin-button,
.single-product div.product form.cart .quantity .qty::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
/* Nav arrows Shoptimizer (.quantity-nav contient .quantity-up/.quantity-down) */
.single-product div.product form.cart .quantity .quantity-nav {
  position: static !important;
  right: auto !important;
  top: auto !important;
  bottom: auto !important;
  width: 26px !important;
  height: 100% !important;
  border: none !important;
  border-left: 1.5px solid var(--ftb-border) !important;
  border-radius: 0 !important;
  background: #fff !important;
  display: flex !important;
  flex-direction: column !important;
  box-shadow: none !important;
}
.single-product div.product form.cart .quantity .quantity-button {
  position: relative !important;
  right: auto !important;
  left: auto !important;
  flex: 1 1 50% !important;
  height: auto !important;
  width: 100% !important;
  background: #fff !important;
  cursor: pointer !important;
  transition: background-color .12s ease !important;
}
.single-product div.product form.cart .quantity .quantity-button.quantity-up {
  border-bottom: 1px solid var(--ftb-border) !important;
}
/* Override Shoptimizer parent's :before (mask SVG) → unicode triangle visible */
.single-product div.product form.cart .quantity .quantity-button.quantity-up:before,
.single-product div.product form.cart .quantity .quantity-button.quantity-down:before {
  position: absolute !important;
  top: 50% !important;
  left: 50% !important;
  transform: translate(-50%, -50%) !important;
  width: auto !important;
  height: auto !important;
  background: none !important;
  -webkit-mask-image: none !important;
          mask-image: none !important;
  font-size: 9px !important;
  line-height: 1 !important;
  color: var(--ftb-forest) !important;
}
.single-product div.product form.cart .quantity .quantity-button.quantity-up:before {
  content: '\25B2' !important; /* ▲ */
}
.single-product div.product form.cart .quantity .quantity-button.quantity-down:before {
  content: '\25BC' !important; /* ▼ */
}
.single-product div.product form.cart .quantity .quantity-button:hover {
  background: var(--ftb-sage) !important;
}
.single-product div.product form.cart .quantity .quantity-button:hover:before {
  color: var(--ftb-forest-deep) !important;
}

/* Stock inline (à droite du bouton ATC) */
.ftb-pdp-stock-inline {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--ftb-sans);
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--ftb-forest);
  padding: 8px 14px;
  background: var(--ftb-sage);
  border-radius: var(--ftb-radius-pill);
  line-height: 1.2;
  margin-left: auto;
  white-space: nowrap;
}
.ftb-pdp-stock-inline__icon {
  flex: 0 0 auto;
  color: var(--ftb-forest);
}
/* Stock toujours en vert (sage + forest) — pas de variante peach */
.ftb-pdp-stock-inline--low {
  background: var(--ftb-sage) !important;
  color: var(--ftb-forest) !important;
}
.ftb-pdp-stock-inline--low .ftb-pdp-stock-inline__icon {
  color: var(--ftb-forest) !important;
}

/* Bouton ATC ne doit pas etre 100% — laisser margin-left:auto sur stock */
.single-product div.product form.cart .single_add_to_cart_button {
  flex: 0 0 auto !important;
  width: auto !important;
  min-width: 220px !important;
}
.single-product div.product form.cart .quantity .qty::-webkit-outer-spin-button,
.single-product div.product form.cart .quantity .qty::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.single-product div.product form.cart .quantity .quantity-button,
.single-product div.product form.cart .quantity .qty-up,
.single-product div.product form.cart .quantity .qty-down,
.single-product div.product form.cart .quantity-arrows {
  height: 26px !important;
  color: var(--ftb-forest) !important;
}

/* Stock — "X en stock" plus visible (2026-05-20) */
.single-product div.product .stock,
.single-product div.product p.stock,
.single-product div.product .stock.in-stock {
  font-family: var(--ftb-sans) !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  color: var(--ftb-forest) !important;
  margin: 4px 0 14px !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  padding: 6px 14px !important;
  background: var(--ftb-sage) !important;
  border-radius: var(--ftb-radius-pill) !important;
  line-height: 1.2 !important;
}
.single-product div.product .stock.out-of-stock {
  background: rgba(220, 80, 60, 0.10) !important;
  color: #B73B27 !important;
}

/* ATC + quantité — mobile optimisation 2026-05-18 */
@media (max-width: 768px) {
  .single-product div.product form.cart {
    flex-direction: row !important;
    align-items: center !important;
    gap: 8px !important;
    flex-wrap: wrap !important;
  }
  /* qty + ATC sur la même ligne, stock wrappé dessous */
  .single-product div.product form.cart .quantity {
    width: auto !important;
    flex: 0 0 auto !important;
    height: 48px !important;
  }
  .single-product div.product form.cart .quantity .qty,
  .single-product div.product form.cart .quantity .input-text {
    width: 44px !important;
    height: 100% !important;
    font-size: 0.95rem !important;
    padding: 0 4px !important;
  }
  .single-product div.product form.cart .quantity .quantity-nav {
    width: 24px !important;
  }
  .single-product div.product form.cart .single_add_to_cart_button {
    flex: 1 1 0% !important;
    width: auto !important;
    min-width: 0 !important;
    padding: 0 14px !important;
    font-size: 0.9rem !important;
    letter-spacing: 0.3px !important;
    height: 48px !important;
    min-height: 48px !important;
    line-height: 1 !important;
  }
  .ftb-pdp-stock-inline {
    margin-left: 0 !important;
    flex: 1 0 100%;
    width: 100%;
    justify-content: center;
    font-size: 0.85rem;
    padding: 6px 10px;
    order: 99;
  }
}

/* Onglets produit */
.woocommerce-tabs .tabs li a {
  font-family: var(--ftb-sans);
  font-size: 0.875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: var(--ftb-mid);
}

.woocommerce-tabs .tabs li.active a {
  color: var(--ftb-forest);
  border-bottom-color: var(--ftb-forest);
}

/* Contenu onglets */
.woocommerce-Tabs-panel {
  font-family: var(--ftb-sans);
  font-size: 0.9375rem;
  font-weight: 300;
  line-height: 1.7;
  color: var(--ftb-charcoal);
}

/* Prix */
.woocommerce-Price-amount {
  font-family: var(--ftb-sans);
  font-weight: 600;
  color: var(--ftb-forest);
}

/* =============================================================================
   PHASE 3A — FICHE PRODUIT
   ============================================================================= */

/* Lot 4 — Masquer l'UGS (SKU) */
.single-product .sku_wrapper { display: none !important; }

/* Lot 4 — Sections related/upsells : titres + layout carousel */
.related.products,
.up-sells.products {
  margin-top: 40px;
}
.related.products h2,
.up-sells.products h2 {
  font-family: var(--ftb-serif);
  font-size: clamp(1.3rem, 2.5vw, 1.75rem);
  font-weight: 400;
  color: var(--ftb-forest);
  margin-bottom: 24px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--ftb-border);
}

/* Viewport carousel */
.ftb-pdp-carousel-viewport {
  overflow: hidden;
  position: relative;
}
.related.products ul.products,
.up-sells.products ul.products {
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  gap: 20px !important;
  padding-bottom: 4px !important;
  flex-wrap: nowrap !important;
}
.related.products ul.products::-webkit-scrollbar,
.up-sells.products ul.products::-webkit-scrollbar { display: none; }

/* Badges origine en haut de fiche — pills cohérents avec FTB Fresh */
.ftb-pdp-origin-badge {
  margin: 8px 0 14px;
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
}
.ftb-pdp-origin-pill {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  font-family: var(--ftb-sans) !important;
  font-size: 0.74rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  padding: 6px 12px 6px 10px !important;
  border-radius: var(--ftb-radius-pill) !important;
  line-height: 1.2 !important;
  border: 1px solid transparent;
  transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}
.ftb-pdp-origin-pill--fr {
  background: var(--ftb-peach-light, #FBE5D6) !important;
  color: var(--ftb-peach-deep, #D17A4D) !important;
  border-color: rgba(209,122,77,0.18);
}
.ftb-pdp-origin-pill--bio {
  background: var(--ftb-forest, #3A5449) !important;
  color: #fff !important;
}
.ftb-pdp-origin-pill:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(58,84,73,0.08);
}
.ftb-pdp-origin-flag {
  width: 16px !important;
  height: 11px !important;
  border-radius: 2px;
  flex-shrink: 0;
  display: inline-block;
}
.ftb-pdp-origin-leaf {
  flex-shrink: 0;
  display: inline-block;
  opacity: 0.92;
}

/* Marque au-dessus du titre produit — eyebrow plus marqué avec barre déco */
.ftb-pdp-brand {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--ftb-sans);
  font-size: 0.78rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--ftb-peach-deep);
  text-decoration: none;
  margin: 4px 0 10px;
  padding: 0;
  line-height: 1;
  transition: color .2s ease, gap .2s ease;
}
.ftb-pdp-brand::before {
  content: '';
  width: 18px;
  height: 1.5px;
  background: var(--ftb-peach-deep);
  border-radius: 1px;
  transition: width .2s ease;
}
.ftb-pdp-brand:hover,
.ftb-pdp-brand:focus {
  color: var(--ftb-forest);
  text-decoration: none;
  gap: 12px;
}
.ftb-pdp-brand:hover::before,
.ftb-pdp-brand:focus::before {
  background: var(--ftb-forest);
  width: 26px;
}

/* Bloc "Pour qui / Résultat / Délai" (Gap G5) */
.ftb-pdp-pour-qui {
  border: 1px solid var(--ftb-border);
  border-radius: var(--ftb-radius);
  overflow: hidden;
  margin: 6px 0;
  background: var(--ftb-warm-white);
}

.ftb-pdp-pour-qui__item {
  display: grid;
  grid-template-columns: 130px 1fr;
  gap: 10px;
  align-items: baseline;
  padding: 8px 14px;
  border-bottom: 1px solid var(--ftb-border);
}
.ftb-pdp-pour-qui__item:last-child {
  border-bottom: none;
}

.ftb-pdp-pour-qui__label {
  font-family: var(--ftb-sans);
  font-size: 0.7rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  color: var(--ftb-peach-deep);
  white-space: nowrap;
  line-height: 1.3;
}

.ftb-pdp-pour-qui__value {
  font-family: var(--ftb-sans);
  font-size: 0.875rem;
  font-weight: 400;
  color: var(--ftb-charcoal);
  line-height: 1.35;
}

@media (max-width: 480px) {
  .ftb-pdp-pour-qui { margin: 4px 0; }
  .ftb-pdp-pour-qui__item {
    grid-template-columns: 110px 1fr;
    gap: 8px;
    padding: 6px 12px;
  }
  .ftb-pdp-pour-qui__label { font-size: 0.65rem; letter-spacing: 0.3px; }
  .ftb-pdp-pour-qui__value { font-size: 0.825rem; line-height: 1.3; }
}

/* Indicateurs peau visuels (Gap G6) */
.ftb-pdp-indicators {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin: 12px 0;
}

.ftb-pdp-indicator {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: var(--ftb-cream);
  border: 1px solid var(--ftb-border);
  border-radius: 100px;
  padding: 5px 12px;
}

.ftb-pdp-indicator__icon {
  font-size: 0.875rem;
  line-height: 1;
}

.ftb-pdp-indicator__label {
  font-family: var(--ftb-sans);
  font-size: 0.75rem;
  font-weight: 500;
  color: var(--ftb-forest);
}

/* Trust badges */
.ftb-trust-badges {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-top: 20px;
  padding-top: 20px;
  border-top: 1px solid var(--ftb-border);
}

.ftb-trust-badge {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  text-align: center;
}

.ftb-trust-badge__icon {
  font-size: 1.25rem;
  line-height: 1;
}

.ftb-trust-badge__label {
  font-family: var(--ftb-sans);
  font-size: 0.6875rem;
  font-weight: 400;
  color: var(--ftb-mid);
  line-height: 1.4;
}

@media (max-width: 480px) {
  .ftb-trust-badges { grid-template-columns: repeat(2, 1fr); }
  .ftb-pdp-pour-qui__item { grid-template-columns: 1fr; gap: 4px; }
}

/* =============================================================================
   PHASE 3B — PAGE CATÉGORIE
   ============================================================================= */

/* Masquer le nom de catégorie sur les pages catégorie enfant et la boutique principale.
   Sur les pages catégorie parent, .product__categories reste visible (affiche la sous-catégorie). */
.ftb-child-category .product__categories,
.post-type-archive-product .product__categories {
  display: none !important;
}

/* Badges sur les cards produit */
/* Le wrapper image devient le référentiel de positionnement des badges */
ul.products li.product .woocommerce-image__wrapper {
  position: relative;
  overflow: hidden;
}

/* Badges gauche (Bio + France) — bas de l'image */
.ftb-card-badges {
  position: absolute;
  bottom: 10px;
  left: 10px;
  display: flex;
  gap: 4px;
  flex-wrap: wrap;
  z-index: 2;
}

/* Badges droite (Promo + Nouveau) — haut de l'image */
.ftb-card-badges-right {
  position: absolute;
  top: 10px;
  right: 10px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  align-items: flex-end;
  z-index: 2;
}

.ftb-badge-right {
  font-family: var(--ftb-sans);
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  border-radius: 3px;
  white-space: nowrap;
  line-height: 1.4;
}

/* Promo — taille augmentée pour visibilité maximale */
.ftb-badge-right--promo {
  background: var(--ftb-gold);
  color: #fff;
  font-size: 0.9rem;
  padding: 5px 12px;
}

.ftb-badge-right--new {
  background: var(--ftb-forest);
  color: #fff;
  font-size: 0.68rem;
  padding: 3px 8px;
}

/* Badge rupture de stock — bas droite de l'image */
ul.products li.product .product-out-of-stock {
  bottom: 10px !important;
  right: 10px !important;
  left: auto !important;
  width: auto !important;
  padding: 4px 10px !important;
  border-radius: 3px !important;
  font-size: 0.72rem !important;
  font-family: var(--ftb-sans) !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  background: rgba(28, 28, 28, 0.75) !important;
  color: #fff !important;
  text-align: left !important;
  z-index: 3 !important;
}

/* ─── Routine bundle -15% : affichage prix barré dans cart/checkout ─── */
.ftb-routine-price {
  display: inline-flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 6px;
}
.ftb-routine-price del {
  color: var(--ftb-soft, #948D85);
  font-weight: 400;
  font-size: 0.92em;
  text-decoration: line-through;
}
.ftb-routine-price ins {
  text-decoration: none;
  font-weight: 700;
  color: var(--ftb-peach-deep, #D17A4D);
}
.ftb-routine-price del bdi,
.ftb-routine-price ins bdi { color: inherit; }
/* Prix promo native (Flycart) — affiché entre le regular et le routine */
.ftb-routine-price__native {
  color: var(--ftb-mid, #6B6560) !important;
  font-size: 0.88em !important;
  opacity: 0.85;
  position: relative;
}
.ftb-routine-price__native::before {
  content: 'promo : ';
  font-size: 0.78em;
  color: var(--ftb-peach-deep, #D17A4D);
  font-weight: 500;
  text-decoration: none;
  display: inline-block;
  margin-right: 2px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  opacity: 0.9;
}
/* Label "Offre" dans la liste des meta de l'item panier */
.woocommerce-cart .product-name .variation-Offre,
.woocommerce-checkout .product-name .variation-Offre {
  display: inline-flex;
  align-items: center;
  background: rgba(58,84,73,0.08);
  color: var(--ftb-forest, #3A5449);
  padding: 3px 10px;
  border-radius: var(--ftb-radius-pill, 9999px);
  font-size: 0.78rem;
  font-weight: 500;
  margin-top: 4px;
}

/* ─── Complianz — masque le bouton flottant "Gérer le consentement"
   (laisse le bandeau initial fonctionner, mais cache l'icône permanente
   bas-droite après acceptation. Conformité RGPD : l'utilisateur peut toujours
   gérer ses préférences via la page de politique cookies dédiée.) */
#cmplz-manage-consent,
.cmplz-manage-consent-container,
.cmplz-show-banner,
button.cmplz-manage-consent {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

/* Badge promo Shoptimizer (.sale-item.product-label) — fiche produit uniquement
   (dans le loop il est remplacé par .ftb-badge-right--promo)
   FTB Fresh : pill peach-deep avec icône % SVG inline + pulse subtle */
.sale-item.product-label,
.sale-item.product-label.type-circle,
.sale-item.product-label.type-bubble,
span.onsale {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  background: linear-gradient(135deg, var(--ftb-peach-deep) 0%, #B85F32 100%) !important;
  color: #fff !important;
  font-family: var(--ftb-sans) !important;
  font-size: 0.72rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  border-radius: var(--ftb-radius-pill, 9999px) !important;
  width: auto !important;
  height: auto !important;
  min-height: 0 !important;
  line-height: 1 !important;
  padding: 7px 14px 7px 10px !important;
  box-shadow: 0 4px 14px rgba(209,122,77,0.32), 0 0 0 1px rgba(255,255,255,0.18) inset !important;
  border: 0 !important;
  position: relative !important;
  overflow: visible !important;
  transform: none !important;
  rotate: 0deg !important;
  text-align: center !important;
  text-indent: 0 !important;
  white-space: nowrap !important;
}

/* Icône % via mask-image (couleur héritée du texte) — masquée si .onsale--noicon
   (variante quand le texte contient déjà le % comme "−20%") */
.sale-item.product-label::before,
span.onsale:not(.onsale--noicon)::before {
  content: '' !important;
  display: inline-block !important;
  width: 13px !important;
  height: 13px !important;
  flex: 0 0 13px !important;
  background-color: #fff !important;
  -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><circle cx='7.5' cy='7.5' r='1.8'/><circle cx='16.5' cy='16.5' r='1.8'/><line x1='18.5' y1='5.5' x2='5.5' y2='18.5'/></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='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><circle cx='7.5' cy='7.5' r='1.8'/><circle cx='16.5' cy='16.5' r='1.8'/><line x1='18.5' y1='5.5' x2='5.5' y2='18.5'/></svg>") center / contain no-repeat;
  animation: ftbBadgePulse 2.2s ease-in-out infinite;
}
/* Variante "noicon" : texte plus serré, padding égalisé, font-weight 700 pour le % */
span.onsale.onsale--noicon {
  padding: 7px 14px !important;
  font-weight: 700 !important;
  font-size: 0.78rem !important;
  letter-spacing: 0.06em !important;
}

@keyframes ftbBadgePulse {
  0%, 100% { transform: scale(1); opacity: 1; }
  50%      { transform: scale(1.15); opacity: 0.85; }
}

/* Hover bubble : léger lift */
.sale-item.product-label:hover,
span.onsale:hover {
  transform: translateY(-1px) !important;
  box-shadow: 0 6px 18px rgba(209,122,77,0.38), 0 0 0 1px rgba(255,255,255,0.18) inset !important;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

/* Badge "Nouveau" sur fiche produit */
.ftb-pdp-nouveau {
  display: inline-block;
  background: var(--ftb-forest);
  color: #fff;
  font-family: var(--ftb-sans);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  padding: 3px 10px;
  border-radius: 3px;
  margin-bottom: 8px;
}

/* -----------------------------------------------------------------------
   GRILLE PRODUITS — CSS Grid 3 colonnes desktop, 1 colonne mobile
   ----------------------------------------------------------------------- */

/* Desktop : CSS Grid 3 colonnes propres — exclut les carousels */
@media (min-width: 993px) {
  ul.products:not(.ftb-carousel__track) {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 32px 20px !important;
    align-items: stretch !important;
    width: 100% !important;
  }

  /* Annuler les widths en % de Shoptimizer (inutiles en grid) */
  ul.products:not(.ftb-carousel__track) li.product {
    width: 100% !important;
    padding-right: 0 !important;
    float: none !important;
  }

  /* Meilleures Ventes : grille 3 colonnes desktop */
  body.page-template-page-meilleures-ventes-php ul.products:not(.ftb-carousel__track) {
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 24px 20px !important;
    max-width: none !important;
  }
}

/* Nouveautés — 3 colonnes sur desktop */
@media (min-width: 993px) {
  body.page-template-template-nouveautes-php ul.products:not(.ftb-carousel__track) {
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 28px 20px !important;
    max-width: none !important;
  }
}

/* Nouveautés — breadcrumb : marge gauche corrigée mobile + desktop */
body.page-template-template-nouveautes-php .woocommerce-breadcrumb {
  padding-left: 24px !important;
  padding-right: 24px !important;
}

/* Tablette : 2 colonnes */
@media (max-width: 992px) {
  ul.products:not(.ftb-carousel__track) {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 16px !important;
  }
}
/* Petit mobile : reste 2 colonnes, gap réduit */
@media (max-width: 480px) {
  ul.products:not(.ftb-carousel__track) {
    gap: 12px !important;
  }
}

/* Contour et ombre des cards produit (toutes tailles) */
ul.products li.product {
  border: 1px solid var(--ftb-border) !important;
  border-radius: 8px !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
  box-shadow: 0 2px 8px rgba(44, 74, 62, 0.07) !important;
  transition: box-shadow 0.2s ease, transform 0.2s ease !important;
  background: #fff !important;
}

ul.products li.product:hover {
  box-shadow: 0 6px 20px rgba(44, 74, 62, 0.14) !important;
  transform: translateY(-2px) !important;
}

/* Chaque card = colonne flex interne (ATC ancré en bas) */
ul.products li.product {
  position: relative;
  display: flex !important;
  flex-direction: column !important;
}

/* Le lien principal (image + titre + prix + extras) occupe tout l'espace */
ul.products li.product > a.woocommerce-loop-product__link {
  flex: 1 !important;
  display: flex !important;
  flex-direction: column !important;
}

/* ── Image WC : aspect-ratio 1:1 + zoom hover (identique Promotions) ── */
ul.products li.product .woocommerce-image__wrapper {
  aspect-ratio: 1 !important;
  overflow: hidden !important;
  flex-shrink: 0 !important;
}
ul.products li.product .woocommerce-image__wrapper img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  transition: transform 0.4s ease !important;
}
ul.products li.product:hover .woocommerce-image__wrapper img {
  transform: scale(1.04) !important;
}

/* Ordre flex supprimé — nouveau template ftb-promo-card contrôle l'ordre via DOM */

/* Titre : 2 lignes max, ellipsis explicite (…) en fin si trop long */
ul.products li.product .woocommerce-loop-product__title,
ul.products li.product .woocommerce-loop-product__title a {
  display: -webkit-box !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 2 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: normal !important;
  line-height: 1.3 !important;
  font-size: 1.05rem !important;
  padding-left: 12px !important;
  padding-right: 12px !important;
  font-weight: 600 !important;
  max-width: 100%;
  /* Hauteur fixe = 2 lignes → alignement parfait entre cards */
  height: calc(1.3em * 2) !important;
  min-height: calc(1.3em * 2) !important;
  margin-bottom: 4px;
}

/* Marque sous le titre — Nouveautés + toutes archives WC */
ul.products li.product .ftb-card-brand {
  display: block;
  font-size: 0.68rem !important;
  font-weight: 600 !important;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ftb-mid, #6B6560) !important;
  padding-left: 12px !important;
  padding-right: 12px !important;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  margin-bottom: 2px;
}

/* Catégorie : 1 ligne, ellipsis — taille réduite */
ul.products li.product .product__categories {
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  min-height: 1.4em;
  font-size: 0.6rem !important;
  padding-left: 12px !important;
  padding-right: 12px !important;
}

/* Prix — taille augmentée */
ul.products li.product .price {
  font-size: 1.35rem !important;
  font-weight: 700 !important;
  color: var(--ftb-gold) !important;
  min-height: 1.8em;
  display: flex !important;
  align-items: center;
  padding-left: 12px !important;
  padding-right: 12px !important;
}

ul.products li.product .price .amount {
  font-size: inherit !important;
}

/* ── Prix CRO loop — enrichissement promo (ftb_loop_price_html_cro) ── */
/* Wrapper .price enrichi CRO — tous contextes de loop produit */
li.product .price:has(.ftb-lpc) {
  display: block !important;
  min-height: 0;
  font-size: 1rem !important;
  font-weight: 400 !important;
  color: inherit !important;
  background: rgba(214,64,64,.05);
  border-left: 3px solid var(--ftb-error);
  border-radius: 0 8px 8px 0;
  padding: 8px 12px 10px;
  margin-top: 8px;
}
.ftb-lpc {
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.ftb-lpc__reg-row {
  display: flex;
  align-items: center;
  gap: 7px;
}
.ftb-lpc__reg-label {
  font-family: var(--ftb-sans);
  font-size: .62rem;
  font-weight: 600;
  letter-spacing: .09em;
  text-transform: uppercase;
  color: var(--ftb-mid,#6B6560);
  flex-shrink: 0;
}
.ftb-lpc del,
.ftb-lpc del .woocommerce-Price-amount {
  font-size: .8rem !important;
  font-weight: 400 !important;
  color: var(--ftb-mid,#6B6560) !important;
  opacity: 1;
}
.ftb-lpc__sale-row {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 1px;
}
.ftb-lpc ins {
  text-decoration: none !important;
  background: transparent !important;
  font-size: 1.55rem !important;
  font-weight: 800 !important;
  color: var(--ftb-error) !important;
  line-height: 1;
}
.ftb-lpc ins .woocommerce-Price-amount {
  color: var(--ftb-error) !important;
}
.ftb-lpc__pct {
  font-family: var(--ftb-sans);
  font-size: .73rem;
  font-weight: 800;
  background: var(--ftb-error);
  color: #fff;
  padding: 3px 8px;
  border-radius: 5px;
  flex-shrink: 0;
  line-height: 1.3;
}
.ftb-lpc__savings {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: var(--ftb-success);
  color: #fff;
  border-radius: 6px;
  padding: 4px 9px;
  font-family: var(--ftb-sans);
  font-size: .71rem;
  font-weight: 700;
  margin-top: 6px;
  width: fit-content;
}
.ftb-lpc__savings .woocommerce-Price-amount,
.ftb-lpc__savings .woocommerce-Price-currencySymbol {
  color: #fff !important;
}

/* Rating + compteur d'avis */
.ftb-loop-rating {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 2px 12px 0;
  min-height: 1.6em;
}

.ftb-loop-rating .star-rating {
  margin: 0 !important;
  float: none !important;
}

.ftb-loop-rating__count {
  font-family: var(--ftb-sans);
  font-size: 0.8rem;
  color: var(--ftb-mid);
  white-space: nowrap;
}

/* Description courte — 3 lignes max avec ellipsis */
.ftb-card-excerpt {
  font-family: var(--ftb-sans);
  font-size: 0.87rem;
  font-weight: 400;
  color: var(--ftb-charcoal);
  line-height: 1.5;
  padding: 4px 12px 2px;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Indicateurs FTB — carrousel horizontal avec flèches de navigation */
.ftb-card-indicators-wrap {
  position: relative;
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 6px 4px 4px;
  min-height: 30px;
}

.ftb-card-indicators {
  flex: 1;
  display: flex;
  flex-wrap: nowrap;
  gap: 5px;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;       /* Firefox */
  -ms-overflow-style: none;    /* IE/Edge */
  scroll-behavior: smooth;
}

.ftb-card-indicators::-webkit-scrollbar {
  display: none;               /* Chrome/Safari */
}

/* Flèches de navigation — cachées par défaut, activées via JS si overflow */
.ftb-card-ind-arrow {
  flex: 0 0 22px;
  width: 22px;
  height: 22px;
  display: none;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: #fff;
  color: var(--ftb-forest);
  border: 1px solid var(--ftb-border);
  cursor: pointer;
  transition: background 0.18s ease, color 0.18s ease, transform 0.18s ease, opacity 0.18s ease;
  user-select: none;
  opacity: 1;
}

.ftb-card-indicators-wrap.has-overflow .ftb-card-ind-arrow {
  display: inline-flex;
}

.ftb-card-ind-arrow:hover {
  background: var(--ftb-forest);
  color: var(--ftb-cream);
  transform: scale(1.08);
}

.ftb-card-ind-arrow.is-disabled {
  opacity: 0.35;
  pointer-events: none;
  cursor: default;
}

.ftb-card-ind-arrow svg { display: block; }

.ftb-card-indicator {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 0.72rem;
  font-family: var(--ftb-sans);
  font-weight: 500;
  color: var(--ftb-forest);
  background: rgba(44, 74, 62, 0.08);
  border-radius: 20px;
  padding: 3px 9px;
  white-space: nowrap;
  line-height: 1.4;
  flex-shrink: 0;
  scroll-snap-align: start;
}

.ftb-card-indicator__label {
  font-size: 0.72rem;
}

/* Pour qui / Résultat / Délai — card produit (Gap G5) */
.ftb-card-prd {
  margin: 6px 12px 4px;
  padding: 7px 10px;
  background: var(--ftb-warm-white);
  border: 1px solid var(--ftb-border);
  border-radius: 6px;
  font-family: var(--ftb-sans);
}

.ftb-card-prd__row {
  display: grid;
  grid-template-columns: 72px 1fr;
  gap: 0 6px;
  align-items: baseline;
  line-height: 1.45;
  padding: 2px 0;
}

.ftb-card-prd dt {
  font-size: 0.68rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--ftb-forest);
  white-space: nowrap;
}

.ftb-card-prd dd {
  font-size: 0.78rem;
  color: var(--ftb-charcoal);
  font-weight: 400;
  margin: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Mobile : label au-dessus de la valeur, hauteur fixe = alignement entre cards */
@media (max-width: 767px) {
  .ftb-card-prd__row {
    grid-template-columns: 1fr !important;
    gap: 0 !important;
    padding: 2px 0 !important;
  }

  .ftb-card-prd dt {
    margin-bottom: 1px;
    line-height: 1.3;
  }

  .ftb-card-prd dd {
    /* 2 lignes fixes : line-height 1.35 × 2 = ~2.7em réservées */
    white-space: normal !important;
    overflow: hidden !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    text-overflow: unset !important;
    font-size: 0.75rem !important;
    line-height: 1.35 !important;
    height: calc(1.35em * 2) !important; /* hauteur fixe = exactement 2 lignes */
    margin-bottom: 0 !important;
  }
}

/* ── Mobile : simplification des cards produit ── */
@media (max-width: 767px) {
  /* Masquer indicateurs, CRO et badge économies — cards trop étroites */
  .ftb-card-indicators-wrap,
  .ftb-card-prd,
  .ftb-lpc__savings {
    display: none !important;
  }

  /* Description : 3 lignes max (au lieu de 4) */
  .ftb-card-excerpt {
    -webkit-line-clamp: 3 !important;
    min-height: calc(1.5em * 3) !important;
  }

  /* Prix soldé : réduit pour laisser de la place au badge -XX% */
  .ftb-lpc ins,
  .ftb-lpc ins .woocommerce-Price-amount {
    font-size: 1.2rem !important;
  }

  /* Bouton ATC : une seule ligne, espacé des bords */
  ul.products li.product .button,
  ul.products li.product .added_to_cart {
    width: calc(100% - 20px) !important;
    margin-left: 10px !important;
    margin-right: 10px !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    font-size: 0.68rem !important;
    letter-spacing: 0 !important;
    padding: 10px 4px !important;
  }
}

/* =============================================================================
   CARDS PRODUIT — .ftb-promo-card (global : Nouveautés, Promos, Archives, Search)
   ============================================================================= */

/* Conteneur WC + class partagée */
.ftb-promo-card {
  border: 1px solid var(--ftb-border) !important;
  border-radius: 8px !important;
  overflow: hidden !important;
  box-shadow: 0 2px 8px rgba(44,74,62,.07) !important;
  background: #fff !important;
  display: flex !important;
  flex-direction: column !important;
  transition: transform .2s ease, box-shadow .2s ease !important;
  position: relative !important;
}
.ftb-promo-card:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 6px 20px rgba(44,74,62,.14) !important;
}
/* Désactiver le ::before overlay blanc de Shoptimizer au hover */
.ftb-promo-card::before,
.ftb-promo-card:hover::before,
.ftb-promo-card:focus-within::before {
  display: none !important;
}

/* Image — 1:1, zoom hover */
.ftb-promo-card .ftb-promo-card__img-wrap {
  position: relative; overflow: hidden;
  aspect-ratio: 1; background: var(--ftb-blush, #E8D5C4);
  flex-shrink: 0;
}
.ftb-promo-card .ftb-promo-card__img-wrap img,
.ftb-promo-card .ftb-promo-card__img-wrap a img {
  width: 100% !important; height: 100% !important;
  object-fit: cover !important; display: block !important;
  transition: transform .4s ease !important;
}
.ftb-promo-card:hover .ftb-promo-card__img-wrap img { transform: scale(1.04) !important; }

/* Titre */
.ftb-promo-card .ftb-promo-card__title {
  font-family: var(--ftb-sans,'Jost',sans-serif) !important;
  font-size: 1.05rem !important; font-weight: 600 !important; line-height: 1.3 !important;
  color: var(--ftb-charcoal, #1C1C1C) !important;
  margin: 0 !important;
  display: -webkit-box !important; -webkit-box-orient: vertical !important; -webkit-line-clamp: 2 !important;
  overflow: hidden !important; height: calc(1.3em * 2) !important; min-height: calc(1.3em * 2) !important;
}
.ftb-promo-card .ftb-promo-card__title a { color: inherit !important; text-decoration: none !important; }
.ftb-promo-card .ftb-promo-card__title a:hover { color: var(--ftb-forest) !important; }

/* Body */
.ftb-promo-card .ftb-promo-card__body {
  padding: 12px 12px 10px !important;
  display: flex !important; flex-direction: column !important; flex: 1 !important; gap: 6px !important;
}

/* Marque */
.ftb-promo-card .ftb-promo-card__brand {
  font-size: .68rem !important; font-weight: 600 !important; letter-spacing: .12em !important;
  text-transform: uppercase !important; color: var(--ftb-mid, #6B6560) !important;
  white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important;
}

/* Catégorie */
.ftb-promo-card .ftb-promo-card__cat-badge {
  font-size: .68rem !important; font-weight: 500 !important; letter-spacing: .06em !important;
  color: var(--ftb-mid, #6B6560) !important;
  white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important;
}

/* Étoiles */
.ftb-promo-card .ftb-promo-card__rating {
  display: flex !important; align-items: center !important; gap: 6px !important;
  font-size: .78rem !important; color: var(--ftb-mid, #6B6560) !important;
}
.ftb-promo-card .ftb-promo-card__stars { display: flex !important; gap: 2px !important; color: #F5A623 !important; }
.ftb-promo-card .ftb-promo-card__stars svg { width: 13px !important; height: 13px !important; fill: currentColor !important; }

/* Description */
.ftb-promo-card .ftb-promo-card__desc {
  font-size: .87rem !important; line-height: 1.5 !important;
  color: var(--ftb-charcoal, #1F1B17) !important; margin: 0 !important;
  display: -webkit-box !important; -webkit-box-orient: vertical !important; -webkit-line-clamp: 3 !important; overflow: hidden !important;
}

/* Prix */
.ftb-promo-card .ftb-promo-card__prices {
  margin-top: 8px !important; padding: 8px 10px !important;
  background: rgba(214,64,64,.05) !important;
  border: 1px solid rgba(214,64,64,.18) !important;
  border-radius: 8px !important; width: 100% !important;
  box-sizing: border-box !important; overflow: hidden !important;
}
.ftb-promo-card .ftb-promo-card__price-row { display: flex !important; flex-direction: column !important; gap: 2px !important; }
.ftb-promo-card .ftb-promo-card__regular-wrap {
  display: flex !important; align-items: center !important; gap: 5px !important;
  flex-wrap: nowrap !important; overflow: hidden !important;
}
.ftb-promo-card .ftb-promo-card__regular-label {
  font-size: .58rem !important; font-weight: 700 !important; letter-spacing: .06em !important;
  text-transform: uppercase !important; color: var(--ftb-mid, #6B6560) !important;
  flex-shrink: 0 !important; white-space: nowrap !important;
}
.ftb-promo-card .ftb-promo-card__regular {
  font-size: .72rem !important; color: var(--ftb-mid, #6B6560) !important;
  text-decoration: line-through !important; white-space: nowrap !important;
}
.ftb-promo-card .ftb-promo-card__sale-wrap {
  display: flex !important; align-items: center !important;
  gap: 6px !important; margin-top: 3px !important; flex-wrap: nowrap !important; overflow: hidden !important;
}
.ftb-promo-card .ftb-promo-card__sale {
  font-size: 1.1rem !important; font-weight: 800 !important;
  color: var(--ftb-error, #D64040) !important; line-height: 1 !important; white-space: nowrap !important;
}
.ftb-promo-card .ftb-promo-card__pct-pill {
  font-size: .65rem !important; font-weight: 800 !important;
  background: var(--ftb-error, #D64040) !important; color: #fff !important;
  padding: 2px 6px !important; border-radius: 4px !important; flex-shrink: 0 !important; white-space: nowrap !important;
}
.ftb-promo-card .ftb-promo-card__savings {
  display: inline-flex !important; align-items: center !important; gap: 5px !important;
  background: var(--ftb-forest, #3A5449) !important; color: #fff !important;
  border-radius: 5px !important; padding: 3px 8px !important;
  font-size: .7rem !important; font-weight: 700 !important;
  margin-top: 6px !important; width: fit-content !important;
}

/* Footer ATC */
.ftb-promo-card .ftb-promo-card__footer {
  padding: 0 12px 12px !important; margin-top: auto !important; flex-shrink: 0 !important;
}
.ftb-promo-card .ftb-promo-card__atc,
.ftb-promo-card .ftb-promo-card__atc.button {
  display: flex !important; align-items: center !important; justify-content: center !important;
  width: 100% !important; background: var(--ftb-gold, #D17A4D) !important;
  color: #fff !important; border: none !important; border-radius: var(--ftb-radius, 12px) !important;
  padding: 12px 16px !important; font-family: var(--ftb-sans,'Jost',sans-serif) !important;
  font-size: .68rem !important; font-weight: 600 !important; letter-spacing: .5px !important;
  text-transform: uppercase !important; text-decoration: none !important; cursor: pointer !important;
  transition: background-color .2s ease !important; box-sizing: border-box !important;
  white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important;
  margin: 0 !important;
}
.ftb-promo-card .ftb-promo-card__atc:hover {
  background: var(--ftb-gold-light, #FBE5D6) !important; color: #fff !important;
}

/* Desktop (≥641px) — alignement inter-cards + "Tu économises" inline */
@media (min-width: 641px) {
  .ftb-promo-card .ftb-promo-card__title { font-size: 1.1rem !important; }
  .ftb-promo-card .ftb-promo-card__rating    { min-height: 22px !important; }
  .ftb-promo-card .ftb-promo-card__desc      { min-height: calc(1.5em * 3) !important; }
  .ftb-promo-card .ftb-card-indicators-wrap  { min-height: 34px !important; }
  .ftb-promo-card .ftb-promo-card__cro       { min-height: 84px !important; }
  /* "Tu économises" à droite du prix */
  .ftb-promo-card .ftb-promo-card__prices {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 10px !important;
  }
  .ftb-promo-card .ftb-promo-card__price-row { flex: 1 !important; min-width: 0 !important; }
  .ftb-promo-card .ftb-promo-card__savings {
    margin-top: 0 !important; flex-shrink: 0 !important;
    font-size: .72rem !important; padding: 4px 10px !important;
    color: #fff !important;
  }
  .ftb-promo-card .ftb-promo-card__savings * { color: #fff !important; }
}

/* Mobile */
@media (max-width: 640px) {
  .ftb-promo-card .ftb-promo-card__body { padding: 10px 10px 8px !important; gap: 5px !important; }
  .ftb-promo-card .ftb-promo-card__title { font-size: 1rem !important; }
  .ftb-promo-card .ftb-promo-card__desc {
    display: block !important;
    overflow: visible !important;
    -webkit-line-clamp: unset !important;
    font-size: .87rem !important;
    line-height: 1.5 !important;
  }
  .ftb-promo-card .ftb-card-indicators-wrap,
  .ftb-promo-card .ftb-promo-card__cro,
  .ftb-promo-card .ftb-promo-card__savings { display: none !important; }
  /* Bloc prix : padding réduit + label masqué pour éviter clipping du "€" sur cards ~165px */
  .ftb-promo-card .ftb-promo-card__prices { padding: 8px 8px !important; display: block !important; margin-top: auto !important; }
  .ftb-promo-card .ftb-promo-card__regular-label { display: none !important; }
  .ftb-promo-card .ftb-promo-card__regular { font-size: .78rem !important; }
  .ftb-promo-card .ftb-promo-card__sale { font-size: 1.2rem !important; }
  .ftb-promo-card .ftb-promo-card__footer { padding: 0 10px 10px !important; }
  .ftb-promo-card .ftb-promo-card__atc { font-size: .7rem !important; padding: 10px 8px !important; }
}

/* CRO box — global, priorité haute (override Shoptimizer dl/dt/dd) */
.ftb-promo-card__cro {
  background: var(--ftb-warm-white, #FFFCF7) !important;
  border: 1px solid var(--ftb-border, rgba(58,84,73,.10)) !important;
  border-radius: 6px !important;
  padding: 7px 10px !important;
  margin: 4px 0 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
}
.ftb-promo-card__cro-row {
  display: grid !important;
  grid-template-columns: 72px 1fr !important;
  gap: 0 6px !important;
  align-items: baseline !important;
}
.ftb-promo-card__cro-row dt {
  font-size: .62rem !important; font-weight: 700 !important;
  letter-spacing: .08em !important; text-transform: uppercase !important;
  color: var(--ftb-forest, #3A5449) !important;
  white-space: nowrap !important; margin: 0 !important;
}
.ftb-promo-card__cro-row dd {
  font-size: .78rem !important; color: var(--ftb-charcoal, #1C1C1C) !important;
  margin: 0 !important; line-height: 1.45 !important;
}

/* Guide d'achat collapsible (Gap G3) */
.ftb-buying-guide {
  background: var(--ftb-warm-white);
  border: 1px solid var(--ftb-border);
  border-radius: var(--ftb-radius-lg);
  margin-bottom: 24px;
  overflow: hidden;
}

.ftb-buying-guide__toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 20px;
  cursor: pointer;
  font-family: var(--ftb-sans);
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--ftb-forest);
  list-style: none;
  user-select: none;
  gap: 12px;
}

.ftb-buying-guide__toggle::-webkit-details-marker { display: none; }

.ftb-buying-guide__chevron {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  border-right: 2px solid var(--ftb-forest);
  border-bottom: 2px solid var(--ftb-forest);
  transform: rotate(45deg);
  transition: transform 0.2s;
  margin-top: -4px;
}

.ftb-buying-guide[open] .ftb-buying-guide__chevron {
  transform: rotate(-135deg);
  margin-top: 4px;
}

.ftb-buying-guide__tips {
  padding: 0 20px 20px;
  margin: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 10px;
  border-top: 1px solid var(--ftb-border);
  padding-top: 16px;
}

.ftb-buying-guide__tips li {
  font-family: var(--ftb-sans);
  font-size: 0.9375rem;
  font-weight: 300;
  color: var(--ftb-charcoal);
  line-height: 1.6;
  padding-left: 20px;
  position: relative;
}

.ftb-buying-guide__tips li::before {
  content: '→';
  position: absolute;
  left: 0;
  color: var(--ftb-gold);
  font-weight: 600;
}

/* En-tête catégorie — fond crème */
.woocommerce-products-header {
  background-color: var(--ftb-cream);
  padding: 32px 0 24px;
  border-bottom: 1px solid var(--ftb-border);
  margin-bottom: 32px;
}

.woocommerce-products-header__title {
  font-family: var(--ftb-serif);
  color: var(--ftb-forest);
  font-size: clamp(1.5rem, 3vw, 2.25rem);
}

/* Sidebar filtres */
.widget_product_categories .product-categories,
.widget_layered_nav ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.widget_layered_nav ul li,
.widget_product_categories li {
  font-family: var(--ftb-sans);
  font-size: 0.9rem;
  padding: 6px 0;
  border-bottom: 1px solid var(--ftb-border);
}

.widget_layered_nav ul li a,
.widget_product_categories li a {
  color: var(--ftb-charcoal);
  text-decoration: none;
  transition: color 0.15s;
}
.widget_layered_nav ul li a:hover,
.widget_product_categories li a:hover {
  color: var(--ftb-forest);
}

.widget_layered_nav ul li.chosen a {
  color: var(--ftb-forest);
  font-weight: 600;
}

/* Titre widget sidebar */
.widget-title,
.widgettitle {
  font-family: var(--ftb-sans);
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  color: var(--ftb-forest);
  margin-bottom: 14px;
  padding-bottom: 8px;
  border-bottom: 2px solid var(--ftb-forest);
}

/* =============================================================================
   PHASE 4 — CHECKOUT
   ============================================================================= */

/* Fond page checkout */
.woocommerce-checkout {
  background-color: var(--ftb-cream);
}

/* ---- Barre de progression ---- */
.ftb-checkout-steps {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  margin: 32px auto 40px;
  max-width: 560px;
  position: relative;
}

/* Ligne de connexion entre étapes */
.ftb-checkout-steps::before {
  content: '';
  position: absolute;
  top: 20px;
  left: calc(50% - 160px);
  width: 320px;
  height: 2px;
  background-color: var(--ftb-border);
  z-index: 0;
}

.ftb-checkout-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  flex: 1;
  position: relative;
  z-index: 1;
}

.ftb-checkout-step__number {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background-color: var(--ftb-blush);
  border: 2px solid var(--ftb-blush-deep);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--ftb-sans);
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--ftb-mid);
  transition: background 0.2s, border-color 0.2s, color 0.2s;
}

.ftb-checkout-step__label {
  font-family: var(--ftb-sans);
  font-size: 0.75rem;
  font-weight: 400;
  color: var(--ftb-mid);
  text-align: center;
  line-height: 1.3;
}

/* Étape complétée */
.ftb-checkout-step--done .ftb-checkout-step__number {
  background-color: var(--ftb-forest);
  border-color: var(--ftb-forest);
  color: #fff;
}
.ftb-checkout-step--done .ftb-checkout-step__number::after {
  content: '✓';
}
.ftb-checkout-step--done .ftb-checkout-step__number {
  font-size: 0; /* masque le chiffre */
}
.ftb-checkout-step--done .ftb-checkout-step__number::after {
  font-size: 1rem;
}
.ftb-checkout-step--done .ftb-checkout-step__label {
  color: var(--ftb-forest);
  font-weight: 600;
}

/* Étape active */
.ftb-checkout-step--active .ftb-checkout-step__number {
  background-color: var(--ftb-gold);
  border-color: var(--ftb-gold);
  color: #fff;
}
.ftb-checkout-step--active .ftb-checkout-step__label {
  color: var(--ftb-charcoal);
  font-weight: 600;
}

/* ---- Bannière livraison offerte ---- */
.ftb-checkout-shipping-banner {
  background-color: var(--ftb-blush);
  border: 1px solid var(--ftb-blush-deep);
  border-radius: var(--ftb-radius);
  padding: 12px 20px;
  margin-bottom: 24px;
  font-family: var(--ftb-sans);
  font-size: 0.9375rem;
  font-weight: 300;
  color: var(--ftb-charcoal);
  text-align: center;
}

.ftb-checkout-shipping-banner--free {
  background-color: rgba(45, 74, 62, 0.08);
  border-color: var(--ftb-forest-light);
  color: var(--ftb-forest);
}

/* ---- Formulaire checkout ---- */
.woocommerce-checkout #customer_details h3,
.woocommerce-checkout #order_review_heading {
  font-family: var(--ftb-serif);
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--ftb-forest);
  margin-bottom: 20px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--ftb-border);
}

.woocommerce-checkout .form-row label {
  font-family: var(--ftb-sans);
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--ftb-charcoal);
  text-transform: uppercase;
  letter-spacing: 0.3px;
  margin-bottom: 6px;
  display: block;
}

.woocommerce-checkout .form-row input.input-text,
.woocommerce-checkout .form-row select,
.woocommerce-checkout .form-row textarea {
  font-family: var(--ftb-sans);
  font-size: 0.9375rem;
  font-weight: 300;
  color: var(--ftb-charcoal);
  border: 1.5px solid var(--ftb-blush-deep);
  border-radius: var(--ftb-radius);
  padding: 12px 14px;
  background-color: #fff;
  width: 100%;
  transition: border-color 0.2s;
}

.woocommerce-checkout .form-row input.input-text:focus,
.woocommerce-checkout .form-row select:focus,
.woocommerce-checkout .form-row textarea:focus {
  border-color: var(--ftb-forest);
  outline: none;
}

/* Facturation + Livraison : empilés verticalement dans la colonne gauche.
   On force la main sur les floats WooCommerce (woocommerce-layout.css). */
.woocommerce-checkout .col2-set {
  display: flex !important;
  flex-direction: column;
  gap: 40px;
  width: 100% !important;
  float: none !important;
}

.woocommerce-checkout .col2-set::before,
.woocommerce-checkout .col2-set::after {
  display: none !important; /* supprime les clearfix WooCommerce */
}

.woocommerce-checkout .col2-set .col-1,
.woocommerce-checkout .col2-set .col-2 {
  float: none !important;
  width: 100% !important;
}

/* ---- Récapitulatif commande ---- */
.woocommerce-checkout-review-order {
  background-color: #fff;
  border: 1px solid var(--ftb-border);
  border-radius: var(--ftb-radius-lg);
  padding: 24px;
}

.woocommerce-checkout-review-order-table {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--ftb-sans);
  font-size: 0.9375rem;
}

.woocommerce-checkout-review-order-table thead th {
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: var(--ftb-mid);
  padding: 0 0 12px;
  border-bottom: 1px solid var(--ftb-border);
}

.woocommerce-checkout-review-order-table tbody tr td {
  padding: 12px 0;
  border-bottom: 1px solid var(--ftb-border);
  color: var(--ftb-charcoal);
  font-weight: 300;
  vertical-align: top;
}

.woocommerce-checkout-review-order-table .product-name {
  font-weight: 500;
}

.woocommerce-checkout-review-order-table tfoot tr th,
.woocommerce-checkout-review-order-table tfoot tr td {
  padding: 10px 0;
  font-size: 0.875rem;
  color: var(--ftb-charcoal);
  border-bottom: 1px solid var(--ftb-border);
}

.woocommerce-checkout-review-order-table tfoot .order-total th,
.woocommerce-checkout-review-order-table tfoot .order-total td {
  font-family: var(--ftb-sans);
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--ftb-forest);
  border-bottom: none;
  padding-top: 16px;
}

/* ---- Tableau produits Shoptimizer natif dans la colonne récap ---- */

/* Thumbnail produit (injecté par shoptimizer_product_thumbnail_in_checkout) */
.woocommerce-checkout-review-order-table .product-item-thumbnail {
  width: 52px !important;
  padding-right: 10px;
  vertical-align: middle;
}

.woocommerce-checkout-review-order-table .product-item-thumbnail img {
  width: 48px;
  height: 48px;
  object-fit: cover;
  border-radius: var(--ftb-radius);
  border: 1px solid var(--ftb-border);
  display: block;
}

/* Nom produit */
.cg-checkout-table-product-name {
  font-family: var(--ftb-sans);
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--ftb-charcoal);
  line-height: 1.3;
  vertical-align: middle;
}

/* Quantité */
.woocommerce-checkout-review-order-table .product-quantity {
  font-size: 0.75rem;
  color: var(--ftb-mid);
  font-weight: 400;
  display: block;
  margin-top: 2px;
}

/* Colonne prix */
.woocommerce-checkout-review-order-table td.product-total {
  font-family: var(--ftb-sans);
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--ftb-charcoal);
  white-space: nowrap;
  text-align: right;
  vertical-align: middle;
}

/* Ligne total */
.woocommerce-checkout-review-order-table tfoot .order-total th,
.woocommerce-checkout-review-order-table tfoot .order-total td {
  font-size: 1rem !important;
  font-weight: 700 !important;
  color: var(--ftb-forest) !important;
  border-bottom: none !important;
  border-top: 2px solid var(--ftb-forest);
  padding-top: 12px !important;
}

/* Mention TVA franchise */
.ftb-checkout-tva-notice {
  font-family: var(--ftb-sans);
  font-size: 0.75rem;
  font-weight: 300;
  color: var(--ftb-mid);
  font-style: italic;
  margin-bottom: 12px;
  padding: 8px 12px;
  background-color: var(--ftb-cream);
  border-radius: var(--ftb-radius);
  border-left: 3px solid var(--ftb-blush-deep);
}

/* ---- Bouton "Passer la commande" ---- */
#place_order {
  background-color: var(--ftb-gold) !important;
  border-color: var(--ftb-gold) !important;
  color: #fff !important;
  font-family: var(--ftb-sans) !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.5px !important;
  text-transform: uppercase !important;
  padding: 16px 32px !important;
  border-radius: var(--ftb-radius) !important;
  width: 100% !important;
  cursor: pointer !important;
  transition: background-color 0.2s ease !important;
  margin-top: 16px !important;
}
#place_order:hover {
  background-color: var(--ftb-gold-light) !important;
  border-color: var(--ftb-gold-light) !important;
}

/* ---- Section paiement ---- */
#payment {
  background-color: #fff;
  border: 1px solid var(--ftb-border);
  border-radius: var(--ftb-radius-lg);
  margin-top: 24px;
}

#payment ul.payment_methods {
  list-style: none;
  padding: 0;
  margin: 0;
  border-bottom: 1px solid var(--ftb-border);
}

#payment ul.payment_methods li {
  padding: 14px 20px;
  border-bottom: 1px solid var(--ftb-border);
}

#payment ul.payment_methods li:last-child {
  border-bottom: none;
}

#payment ul.payment_methods li label {
  font-family: var(--ftb-sans);
  font-size: 0.9375rem;
  font-weight: 500;
  color: var(--ftb-charcoal);
  cursor: pointer;
}

#payment div.payment_box {
  background-color: var(--ftb-cream);
  border-top: 1px solid var(--ftb-border);
  padding: 14px 20px;
  font-family: var(--ftb-sans);
  font-size: 0.875rem;
  font-weight: 300;
  color: var(--ftb-mid);
}

#payment div.place-order {
  padding: 20px;
}

/* ---- Neutraliser le float Shoptimizer sur #order_review (toutes tailles) ----
   Shoptimizer impose float:right; width:41% sur #order_review et #order_review_heading
   à partir de 993px. On l'annule pour que notre grid prenne le contrôle. */
.ftb-checkout-col-recap #order_review,
.ftb-checkout-col-recap #order_review_heading {
  float: none !important;
  width: 100% !important;
  clear: none !important;
}


/* ---- Layout 2 colonnes PC ---- */
@media (min-width: 1025px) {
  .ftb-checkout-layout {
    display: grid;
    grid-template-columns: 1fr 380px;
    gap: 56px;
    align-items: start;
    margin-top: 8px;
  }

  .ftb-checkout-recap-sticky {
    position: sticky;
    top: 24px;
  }

  /* Payment et place order sans double border avec le recap */
  .ftb-checkout-col-recap #payment {
    border-radius: var(--ftb-radius-lg);
    overflow: hidden;
    margin-top: 16px;
  }

  /* Titre "Ta commande" dans le bloc recap */
  .ftb-checkout-col-recap #order_review_heading {
    margin-top: 0;
    font-size: 1.125rem;
  }

  /* Champs facturation : prénom + nom côte à côte dans le form col */
  .woocommerce-checkout .woocommerce-billing-fields .form-row-first,
  .woocommerce-checkout .woocommerce-billing-fields .form-row-last {
    width: 48% !important;
    float: left !important;
  }
  .woocommerce-checkout .woocommerce-billing-fields .form-row-last {
    float: right !important;
  }
  .woocommerce-checkout .woocommerce-billing-fields .form-row-wide {
    clear: both;
    width: 100% !important;
  }
}

/* ---- Mobile / tablette : 1 colonne ---- */
@media (max-width: 1024px) {
  .ftb-checkout-layout {
    display: flex;
    flex-direction: column;
    gap: 32px;
    margin-top: 8px;
  }
  .ftb-checkout-recap-sticky {
    position: static;
  }

}

@media (max-width: 768px) {
  .ftb-checkout-steps::before { display: none; }
  .ftb-checkout-step__label { font-size: 0.6875rem; }
}

/* ============================================================
   HEADER V2 — Layout Centifolia
   Hamburger gauche · logo centré · outils droite · menu centré
   S'applique sur TOUTES les pages (y compris WooCommerce)
   ============================================================ */

/* Assurer que notre header V2 a priorité sur les styles Shoptimizer pour WooCommerce */
.woocommerce-account .ftb-header-v2,
.woocommerce-cart .ftb-header-v2,
.woocommerce .ftb-header-v2 {
  display: block !important;
  visibility: visible !important;
}

.woocommerce-account .ftb-header-inner,
.woocommerce-cart .ftb-header-inner,
.woocommerce .ftb-header-inner {
  display: grid !important;
  grid-template-columns: 1fr auto 1fr !important;
}

.ftb-header-v2 {
  background: #fff;
  position: relative;
  z-index: 20;
}

.ftb-header-main {
  width: 100%;
  border-bottom: 1px solid var(--ftb-border);
}

/* Layout 3 colonnes : gauche | logo centré | droite */
.ftb-header-inner {
  display: grid !important;
  grid-template-columns: 1fr auto 1fr !important;
  align-items: center;
  padding: 20px 40px;
  gap: 16px;
}

/* --- Colonne gauche : hamburger mobile + recherche desktop --- */
.ftb-header-left {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 12px;
}

/* --- Colonne centrale : logo --- */
.ftb-header-logo {
  display: flex;
  align-items: center;
  justify-content: center;
}

.ftb-header-logo .custom-logo-link img,
.ftb-header-logo .logo img,
.ftb-header-logo img {
  height: 120px !important;
  width: auto !important;
  max-width: none !important;
}

/* Hamburger — styles mobile (Shoptimizer cible .site-branding .menu-toggle, pas notre structure) */
@media (max-width: 992px) {
  .ftb-header-left .menu-toggle {
    position: relative;
    width: 44px;
    height: 44px;
    padding: 0;
    background: transparent;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
  }
  .ftb-header-left .menu-toggle .bar {
    left: 50%;
    transform: translateX(-50%) rotate(0deg);
  }
}

/* Hamburger masqué sur desktop */
@media (min-width: 993px) {
  .ftb-header-v2 .menu-toggle {
    display: none !important;
  }
}

/* --- Colonne droite (2 lignes) --- */
.ftb-header-right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 10px;
}

/* Liens secondaires */
.ftb-header-secondary {
  display: flex;
  align-items: center;
  gap: 22px;
}

.ftb-header-secondary a,
.ftb-header-secondary span.ftb-obf-b64 {
  font-family: var(--ftb-sans);
  font-size: 0.9rem;
  font-weight: 400;
  color: var(--ftb-mid);
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  transition: color 0.2s;
}

.ftb-header-secondary a:hover,
.ftb-header-secondary span.ftb-obf-b64:hover {
  color: var(--ftb-forest);
}

/* Outils : search + compte + panier */
.ftb-header-tools {
  display: flex;
  align-items: center;
  gap: 10px;
}

.ftb-header-tools .site-search,
.ftb-header-left .site-search {
  margin-left: 0 !important;
  flex-grow: 0;
}

.ftb-header-tools .site-search input[type="search"],
.ftb-header-left .site-search input[type="search"] {
  width: 220px;
  padding: 8px 14px;
  font-family: var(--ftb-sans);
  font-size: 0.875rem;
  font-weight: 300;
  border: 1px solid var(--ftb-border);
  border-radius: var(--ftb-radius);
  background-color: var(--ftb-cream);
  color: var(--ftb-charcoal);
  transition: border-color 0.2s, background-color 0.2s;
}

.ftb-header-tools .site-search input[type="search"]:focus,
.ftb-header-left .site-search input[type="search"]:focus {
  outline: none;
  border-color: var(--ftb-forest);
  background-color: #fff;
}

.ftb-header-tools .shoptimizer-myaccount a,
.ftb-header-tools .site-header-cart a.cart-contents {
  color: var(--ftb-charcoal) !important;
  display: flex;
  align-items: center;
  gap: 4px;
}

.ftb-header-tools .shoptimizer-myaccount a:hover,
.ftb-header-tools .site-header-cart a.cart-contents:hover {
  color: var(--ftb-forest) !important;
}

/* Taille des icônes compte et panier */
.ftb-header-tools .shoptimizer-myaccount svg {
  width: 32px !important;
  height: 32px !important;
}
.ftb-header-tools .shoptimizer-cart-icon svg {
  width: 32px !important;
  height: 32px !important;
}

/* --- Barre de navigation --- */
.ftb-nav-bar {
  border-bottom: 1px solid var(--ftb-border);
}

/* Centrer les liens du menu */
.ftb-nav-bar .shoptimizer-primary-navigation,
.ftb-nav-bar .primary-navigation {
  display: flex;
  justify-content: center;
}

.ftb-nav-bar .main-navigation {
  width: 100%;
}

/* --- Mobile (< 993px) --- */
@media (max-width: 992px) {
  .ftb-header-inner {
    padding: 14px 20px;
  }

  .ftb-header-logo .custom-logo-link img,
  .ftb-header-logo .logo img,
  .ftb-header-logo img {
    height: 80px !important;
    width: auto !important;
    max-width: none !important;
  }

  .ftb-header-secondary {
    display: none;
  }

  .ftb-header-right {
    flex-direction: row;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
  }

  .ftb-header-tools .site-search,
  .ftb-header-left .site-search {
    display: none;
  }
}

/* ============================================================
   MENU MOBILE — Drawer pleine largeur
   ============================================================ */

@media (max-width: 992px) {

  /* Overlay Shoptimizer inutile avec un drawer pleine largeur (stacking context
     du sticky header le bloquerait de toute façon — z-index 101 > 100). */
  .mobile-overlay {
    display: none !important;
  }

  /* --- 1. Drawer pleine largeur --- */
  .col-full-nav,
  .ftb-nav-bar {
    width: 100% !important;
    left: -100% !important;
    padding: 0 !important;
    box-shadow: none !important;
    display: flex !important;
    flex-direction: column !important;
    background: #fff !important;
    transition: left 0.3s ease !important;
  }

  .mobile-toggled .col-full-nav,
  .mobile-toggled .ftb-nav-bar {
    left: 0 !important;
    box-shadow: 4px 0 24px rgba(0,0,0,0.08) !important;
  }

  /* Container intérieur : supprimer le padding col-full */
  .col-full-nav .shoptimizer-primary-navigation.col-full {
    padding: 0 !important;
    max-width: 100% !important;
    width: 100% !important;
    box-sizing: border-box !important;
    display: flex !important;
    flex-direction: column !important;
  }

  /* --- 2. Bouton X : fixé en haut à droite, bien visible --- */
  .mobile-menu.close-drawer {
    position: fixed !important;
    left: auto !important;
    right: 16px !important;
    top: 16px !important;
    z-index: 9999 !important;
    width: 44px !important;
    height: 44px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: var(--ftb-charcoal) !important;
    background: #fff !important;
    border-radius: 50% !important;
    border: 1px solid var(--ftb-border) !important;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08) !important;
  }

  .mobile-menu.close-drawer svg {
    stroke: var(--ftb-charcoal) !important;
    width: 20px !important;
    height: 20px !important;
  }

  /* --- 3. Zone de recherche : redesign mobile --- */
  .col-full-nav .site-search {
    order: -1 !important;
    width: 100% !important;
    padding: 68px 20px 16px !important;
    border-bottom: 1px solid var(--ftb-border) !important;
    background: var(--ftb-cream) !important;
    box-sizing: border-box !important;
    flex-shrink: 0 !important;
  }

  .col-full-nav .site-search .woocommerce-product-search,
  .col-full-nav .site-search form,
  .col-full-nav .site-search .dgwt-wcas-search-wrapp {
    display: flex !important;
    width: 100% !important;
    position: relative !important;
  }

  .col-full-nav .site-search input[type="search"],
  .col-full-nav .site-search .search-field,
  .col-full-nav .site-search .dgwt-wcas-search-input {
    flex: 1 1 auto !important;
    width: 100% !important;
    min-width: 0 !important;
    padding: 14px 20px !important;
    font-size: 0.9375rem !important;
    font-family: var(--ftb-sans) !important;
    font-weight: 400 !important;
    border: 1px solid rgba(58,84,73,0.15) !important;
    border-radius: var(--ftb-radius-pill) !important;
    background: #fff !important;
    color: var(--ftb-charcoal) !important;
    outline: none !important;
    box-sizing: border-box !important;
    -webkit-appearance: none !important;
    text-align: center !important;
  }
  .col-full-nav .site-search input[type="search"]::placeholder,
  .col-full-nav .site-search .search-field::placeholder,
  .col-full-nav .site-search .dgwt-wcas-search-input::placeholder {
    text-align: center !important;
    color: var(--ftb-mid) !important;
    opacity: 1 !important;
  }

  .col-full-nav .site-search input[type="search"]:focus,
  .col-full-nav .site-search .search-field:focus,
  .col-full-nav .site-search .dgwt-wcas-search-input:focus {
    border-color: var(--ftb-forest) !important;
    box-shadow: 0 0 0 3px rgba(58,84,73,0.08) !important;
  }

  /* FiboSearch : icône loupe — positionnée à droite, contraste renforcé */
  .col-full-nav .site-search .dgwt-wcas-search-wrapp .dgwt-wcas-search-submit,
  .col-full-nav .site-search .dgwt-wcas-ico-magnifier-handler {
    position: absolute !important;
    right: 6px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    background: var(--ftb-forest) !important;
    border: none !important;
    color: #fff !important;
    cursor: pointer !important;
    padding: 10px !important;
    z-index: 2 !important;
    border-radius: 50% !important;
    width: 38px !important;
    height: 38px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: background 0.2s ease !important;
  }
  .col-full-nav .site-search .dgwt-wcas-search-wrapp .dgwt-wcas-search-submit:active,
  .col-full-nav .site-search .dgwt-wcas-ico-magnifier-handler:active {
    background: var(--ftb-forest-deep) !important;
  }
  .col-full-nav .site-search .dgwt-wcas-ico-magnifier-handler svg,
  .col-full-nav .site-search .dgwt-wcas-search-submit svg {
    color: #fff !important;
    fill: #fff !important;
    width: 18px !important;
    height: 18px !important;
  }

  /* Fallback pour le search WooCommerce natif (non-FiboSearch) */
  .col-full-nav .site-search button[type="submit"]:not(.dgwt-wcas-search-submit) {
    flex-shrink: 0 !important;
    padding: 14px 20px !important;
    background: var(--ftb-forest) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 0 var(--ftb-radius-pill) var(--ftb-radius-pill) 0 !important;
    font-size: 0.8125rem !important;
    font-family: var(--ftb-sans) !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em !important;
    cursor: pointer !important;
    white-space: nowrap !important;
    transition: background 0.2s ease !important;
  }

  .col-full-nav .site-search button[type="submit"]:not(.dgwt-wcas-search-submit):active {
    background: var(--ftb-forest-deep) !important;
  }

  .col-full-nav .site-search form:before,
  .col-full-nav .site-search .woocommerce-product-search:before {
    display: none !important;
  }

  /* FiboSearch : suggestions dropdown dans le drawer */
  .col-full-nav .dgwt-wcas-suggestions-wrapp {
    max-width: calc(100vw - 40px) !important;
    left: 0 !important;
  }


  /* --- 4. Items de menu : pleine largeur --- */
  .col-full-nav .main-navigation {
    padding-top: 8px !important;
    width: 100% !important;
  }

  .col-full-nav .menu-primary-menu-container,
  .col-full-nav .primary-navigation {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .col-full-nav .menu-primary-menu-container > ul.menu {
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
    width: 100% !important;
  }

  .col-full-nav .menu-primary-menu-container > ul.menu > li {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    border-bottom: 1px solid var(--ftb-border) !important;
    position: relative !important;
  }

  .col-full-nav .menu-primary-menu-container > ul.menu > li > a,
  .col-full-nav .menu-primary-menu-container > ul.menu > li.nolink > span {
    display: block !important;
    width: 100% !important;
    padding: 16px 56px 16px 24px !important;
    font-family: var(--ftb-sans) !important;
    font-size: 0.9375rem !important;
    font-weight: 600 !important;
    letter-spacing: 0.06em !important;
    text-transform: uppercase !important;
    color: var(--ftb-charcoal) !important;
    text-decoration: none !important;
    box-sizing: border-box !important;
    line-height: 1.3 !important;
    position: relative !important;
    z-index: 1 !important;
  }

  /* Hover sur les items mobile */
  .col-full-nav .menu-primary-menu-container > ul.menu > li > a:active {
    background: var(--ftb-cream) !important;
    color: var(--ftb-forest) !important;
  }

  /* Flèche dropdown à droite — zone de clic séparée du lien */
  .col-full-nav .main-navigation ul.menu > li.menu-item-has-children > span.caret {
    position: absolute !important;
    right: 0 !important;
    top: 0 !important;
    bottom: 0 !important;
    width: 56px !important;
    height: auto !important;
    transform: none !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    z-index: 2 !important;
    cursor: pointer !important;
    border-left: 1px solid var(--ftb-border) !important;
    background: transparent !important;
    color: var(--ftb-peach-deep) !important;
    transition: background 0.2s ease, color 0.2s ease !important;
  }

  .col-full-nav .main-navigation ul.menu > li.menu-item-has-children > span.caret:active {
    background: var(--ftb-peach-light) !important;
    color: var(--ftb-forest) !important;
  }
}

/* ============================================================
   MOBILE SUBMENU — accordéons animés (override Shoptimizer)
   ============================================================
   Shoptimizer cache les sous-menus mobile via position:fixed;left:-99999px,
   empêchant toute animation. On repasse sur max-height + opacity pour
   un slide-down fluide.
*/
@media (max-width: 992px) {

  /* Sous-menu replié par défaut — override left:-99999px */
  .col-full-nav .main-navigation ul.menu li.menu-item-has-children:not(.dropdown-open) > .sub-menu-wrapper {
    position: static !important;
    left: auto !important;
    top: auto !important;
    transform: none !important;
    display: block !important;
    max-height: 0 !important;
    opacity: 0 !important;
    overflow: hidden !important;
    padding: 0 !important;
    margin: 0 !important;
    border: none !important;
    box-shadow: none !important;
    transition: max-height 0.35s ease, opacity 0.2s ease;
    pointer-events: none;
  }

  /* Sous-menu ouvert — slide-down */
  .col-full-nav .main-navigation ul.menu li.menu-item-has-children.dropdown-open > .sub-menu-wrapper {
    position: static !important;
    left: auto !important;
    top: auto !important;
    transform: none !important;
    display: block !important;
    max-height: 2000px !important;
    opacity: 1 !important;
    overflow: hidden !important;
    padding: 4px 0 12px !important;
    margin: 0 !important;
    border: none !important;
    box-shadow: none !important;
    background: var(--ftb-cream) !important;
    transition: max-height 0.45s ease, opacity 0.3s ease 0.05s;
    pointer-events: auto;
  }

  /* Rotation de la chevron quand ouvert + couleur */
  .col-full-nav .main-navigation ul.menu > li.menu-item-has-children > span.caret svg,
  .col-full-nav .main-navigation ul.menu li.menu-item-has-children > span.caret svg {
    transition: transform 0.3s ease;
    color: var(--ftb-peach-deep) !important;
    stroke: var(--ftb-peach-deep) !important;
  }
  .col-full-nav .main-navigation ul.menu li.menu-item-has-children.dropdown-open > span.caret svg {
    transform: rotate(180deg);
  }

  /* Indentation propre des items enfants dans le drawer */
  .col-full-nav .main-navigation ul.menu li.menu-item-has-children .sub-menu-wrapper a {
    display: block !important;
    padding: 12px 24px 12px 40px !important;
    font-family: var(--ftb-sans) !important;
    font-size: 0.9375rem !important;
    font-weight: 400 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    color: var(--ftb-charcoal) !important;
    border-bottom: 1px solid rgba(44,74,62,0.06) !important;
  }

  /* Headings de méga-menu (colonnes) — style valorisé dans le drawer */
  .col-full-nav .main-navigation ul.menu li.full-width > .sub-menu-wrapper li.menu-item-has-children > a,
  .col-full-nav .main-navigation ul.menu li.full-width > .sub-menu-wrapper li.heading > a {
    padding: 14px 24px 6px 40px !important;
    font-family: var(--ftb-serif) !important;
    font-size: 0.95rem !important;
    font-weight: 600 !important;
    color: var(--ftb-forest) !important;
    border-bottom: none !important;
  }

  /* Sous-enfants du méga-menu — plus indentés */
  .col-full-nav .main-navigation ul.menu li.full-width > .sub-menu-wrapper li ul.sub-menu a {
    padding: 9px 24px 9px 56px !important;
    font-size: 0.875rem !important;
    color: var(--ftb-mid) !important;
    border-bottom: 1px solid rgba(44,74,62,0.04) !important;
  }

  /* Retirer le dernier border-bottom de chaque groupe */
  .col-full-nav .main-navigation ul.menu li.menu-item-has-children.dropdown-open > .sub-menu-wrapper > ul > li:last-child > a {
    border-bottom: none !important;
  }

  /* La caret doit rester cliquable au-dessus du lien parent */
  .col-full-nav .main-navigation ul.menu > li.menu-item-has-children > span.caret {
    z-index: 2;
    cursor: pointer;
  }
}

/* ============================================================
   HEADER STICKY COMPACT — activé via classe .ftb-scrolled sur <html>
   ============================================================ */

/* Le wrapper sticky groupe masthead + nav bar, les deux collent ensemble.
   Sur mobile .col-full-nav est position:fixed (drawer) donc n'affecte pas. */
.ftb-sticky-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: #fff;
  transition: box-shadow 0.25s ease;
}

/* Ombre douce quand collé (indique le "flottement") */
.ftb-scrolled .ftb-sticky-header {
  box-shadow: 0 2px 14px rgba(0,0,0,0.06);
}

/* Bandeau promo dans le sticky — se cache au scroll */
.ftb-sticky-header .ftb-promo-bar {
  transition: max-height 0.3s ease, opacity 0.2s ease, padding 0.3s ease;
  overflow: hidden;
}

.ftb-scrolled .ftb-sticky-header .ftb-promo-bar {
  max-height: 0;
  opacity: 0;
  padding-top: 0;
  padding-bottom: 0;
}

/* Transitions sur les éléments compactables */
.ftb-header-main,
.ftb-header-inner,
.ftb-header-logo img,
.ftb-header-logo .custom-logo-link img,
.ftb-header-logo .logo img,
.ftb-header-secondary,
.ftb-nav-bar {
  transition: padding 0.25s ease, height 0.25s ease, max-height 0.3s ease, opacity 0.2s ease;
}

/* === DESKTOP : header compact en 1 ligne === */
@media (min-width: 993px) {
  /* Padding réduit */
  .ftb-scrolled .ftb-header-inner {
    padding: 8px 40px !important;
  }

  /* Logo réduit */
  .ftb-scrolled .ftb-header-logo .custom-logo-link img,
  .ftb-scrolled .ftb-header-logo .logo img,
  .ftb-scrolled .ftb-header-logo img {
    height: 52px !important;
  }

  /* Masquer la nav secondaire (Notre histoire / Contact) */
  .ftb-scrolled .ftb-header-secondary {
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    margin: 0 !important;
    padding: 0 !important;
    pointer-events: none;
  }

  /* Colonne droite compacte : plus de colonne, juste les outils */
  .ftb-scrolled .ftb-header-right {
    gap: 0;
  }

  /* Input recherche plus discret */
  .ftb-scrolled .ftb-header-tools .site-search input[type="search"],
  .ftb-scrolled .ftb-header-left .site-search input[type="search"] {
    width: 180px;
    padding: 6px 12px;
  }

  /* Icônes compte/panier un peu plus petites */
  .ftb-scrolled .ftb-header-tools .shoptimizer-myaccount svg,
  .ftb-scrolled .ftb-header-tools .shoptimizer-cart-icon svg {
    width: 26px !important;
    height: 26px !important;
  }

  /* Nav bar : padding items réduit */
  .ftb-scrolled .main-navigation ul.menu > li > a {
    padding: 10px 18px;
  }
}

/* === MOBILE : header compact === */
@media (max-width: 992px) {
  .ftb-scrolled .ftb-header-inner {
    padding: 8px 16px !important;
  }

  .ftb-scrolled .ftb-header-logo .custom-logo-link img,
  .ftb-scrolled .ftb-header-logo .logo img,
  .ftb-scrolled .ftb-header-logo img {
    height: 48px !important;
  }

  .ftb-scrolled .ftb-header-tools .shoptimizer-myaccount svg,
  .ftb-scrolled .ftb-header-tools .shoptimizer-cart-icon svg {
    width: 26px !important;
    height: 26px !important;
  }
}

/* Item actif — géré par le ::after animé dans la section MÉGA-MENU ci-dessous */

/* ============================================================
   MÉGA-MENU — Shoptimizer native (classe .full-width)
   ============================================================ */

/* Fond de la barre de navigation */
.main-navigation,
.col-full-nav,
.ftb-nav-bar {
  background-color: #fff;
}

/* Wave animation — hors media query pour compatibilité navigateurs */
@keyframes ftb-wave-flow {
  from { background-position: 0 0; }
  to { background-position: 20px 0; }
}

/* Items de premier niveau — desktop */
@media (min-width: 993px) {
  .main-navigation ul.menu {
    display: flex;
    justify-content: center;
    gap: 4px;
  }

  .main-navigation ul.menu > li > a {
    font-family: var(--ftb-sans);
    font-size: 0.9rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--ftb-charcoal);
    padding: 14px 18px;
    position: relative;
    transition: color 0.25s ease;
  }

  /* Désactiver le ::after nav du parent (utilisé pour le caret dropdown) — on cible uniquement li sans enfants */
  .main-navigation ul.menu > li > a::after {
    display: none !important;
  }

  /* ── Wave : on remplace le span::before Shoptimizer (barre droite border-bottom)
     par un SVG wave peach animé. Même mécanique scaleX, même position. ── */
  .menu-primary-menu-container > ul > li > a span::before,
  .menu-primary-menu-container > ul > li.nolink > span::before {
    border-bottom: none !important;
    height: 5px !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 20 5%22%3E%3Cpath d=%22M0 2.5C5 0 5 5 10 2.5C15 0 15 5 20 2.5%22 fill=%22none%22 stroke=%22%23E89B6C%22 stroke-width=%221.6%22/%3E%3C/svg%3E") !important;
    background-repeat: repeat-x !important;
    background-size: 20px 5px !important;
    background-color: transparent !important;
  }

  /* Hover : wave visible + animation flow */
  .menu-primary-menu-container > ul > li:hover > a span::before,
  .menu-primary-menu-container > ul > li.nolink:hover > span::before {
    transform: scale(1, 1) !important;
    transform-origin: left center !important;
    animation: ftb-wave-flow 0.7s linear infinite !important;
  }

  /* Page active : wave toujours visible */
  .menu-primary-menu-container > ul > li.current-menu-item > a span::before,
  .menu-primary-menu-container > ul > li.current-menu-ancestor > a span::before {
    transform: scale(1, 1) !important;
    transform-origin: left center !important;
    animation: ftb-wave-flow 1.2s linear infinite !important;
  }

  .main-navigation ul.menu > li > a:hover,
  .main-navigation ul.menu > li.current-menu-item > a,
  .main-navigation ul.menu > li.current-menu-ancestor > a {
    color: var(--ftb-forest);
  }
}

/* Fallback pour < 993px (mobile uses drawer, not this bar) */
@media (max-width: 992px) {
  .main-navigation ul.menu > li > a {
    font-family: var(--ftb-sans);
    font-size: 1rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--ftb-charcoal);
  }
}

/* Sous-menu standard */
.main-navigation ul.menu li ul.sub-menu,
.main-navigation ul.menu li .sub-menu-wrapper {
  background-color: #fff;
  border-top: 2px solid var(--ftb-peach);
  box-shadow: 0 12px 32px rgba(58,84,73,0.10);
  border-radius: 0 0 var(--ftb-radius) var(--ftb-radius);
}

.main-navigation ul.menu li ul.sub-menu a,
.main-navigation ul.menu li .sub-menu-wrapper a {
  font-family: var(--ftb-sans);
  font-size: 0.9375rem;
  font-weight: 400;
  color: var(--ftb-charcoal);
  padding: 10px 20px;
  transition: all 0.2s ease;
}

.main-navigation ul.menu li ul.sub-menu a:hover,
.main-navigation ul.menu li .sub-menu-wrapper a:hover {
  color: var(--ftb-forest);
  background-color: var(--ftb-cream);
  padding-left: 24px;
}

/* Méga-menu : titres de colonne */
.main-navigation ul.menu li.full-width > .sub-menu-wrapper li.menu-item-has-children > a,
.main-navigation ul.menu li.full-width > .sub-menu-wrapper li.heading > a {
  font-family: var(--ftb-serif);
  font-size: 0.9375rem;
  font-weight: 500;
  color: var(--ftb-forest);
  text-transform: none;
  letter-spacing: 0;
  padding-bottom: 6px;
  border-bottom: 1px solid var(--ftb-border);
  margin-bottom: 4px;
}

/* Méga-menu : items enfants */
.main-navigation ul.menu li.full-width > .sub-menu-wrapper li ul.sub-menu a {
  font-size: 0.8125rem;
  color: var(--ftb-mid);
  padding: 6px 20px;
}

.main-navigation ul.menu li.full-width > .sub-menu-wrapper li ul.sub-menu a:hover {
  color: var(--ftb-forest);
  background-color: transparent;
  padding-left: 24px;
}

/* ============================================================
   FOOTER FTB — Light theme (FTB Fresh)
   ============================================================ */

.ftb-footer {
  background-color: var(--ftb-cream);
  color: var(--ftb-charcoal);
  font-family: var(--ftb-sans);
  border-top: 1px solid var(--ftb-border);
}

/* --- Zone principale 4 colonnes --- */
.ftb-footer__main {
  padding: 56px 0 40px;
}

.ftb-footer__inner {
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 24px;
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr;
  gap: 40px;
}

/* --- Colonne À propos --- */
.ftb-footer__brand {
  font-family: var(--ftb-serif);
  font-size: 1.375rem;
  font-weight: 500;
  color: var(--ftb-forest);
  margin: 0 0 6px;
  letter-spacing: -0.02em;
}

.ftb-footer__tagline {
  font-size: 0.75rem;
  font-weight: 500;
  color: var(--ftb-peach-deep);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin: 0 0 14px;
  line-height: 1.5;
}

.ftb-footer__desc {
  font-size: 0.8125rem;
  font-weight: 400;
  line-height: 1.7;
  color: var(--ftb-mid);
  margin: 0 0 20px;
}

/* Réseaux sociaux */
.ftb-footer__social {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 4px;
}

.ftb-footer__social-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  color: var(--ftb-forest);
  background: var(--ftb-warm-white);
  border: 1px solid var(--ftb-border);
  border-radius: 50%;
  text-decoration: none;
  cursor: pointer;
  transition: all 0.25s ease;
}

.ftb-footer__social-link:hover {
  color: #fff;
  background: var(--ftb-forest);
  border-color: var(--ftb-forest);
}

/* --- Colonnes liens --- */
.ftb-footer__heading {
  font-family: var(--ftb-serif);
  font-size: 0.9375rem;
  font-weight: 500;
  text-transform: none;
  letter-spacing: -0.01em;
  color: var(--ftb-forest);
  margin: 0 0 18px;
}

.ftb-footer__links {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.ftb-footer__links a,
.ftb-footer__links li a {
  font-size: 0.875rem !important;
  font-weight: 400 !important;
  color: var(--ftb-charcoal) !important;
  text-decoration: none !important;
  transition: color 0.2s ease !important;
  opacity: 1 !important;
}

.ftb-footer__links a:hover,
.ftb-footer__links li a:hover {
  color: var(--ftb-peach-deep) !important;
  text-decoration: underline !important;
  text-underline-offset: 3px !important;
  opacity: 1 !important;
}

.ftb-footer__links .ftb-obf-b64 {
  font-size: 0.875rem !important;
  font-weight: 400 !important;
  color: var(--ftb-charcoal) !important;
  text-decoration: none !important;
  transition: color 0.2s ease !important;
  cursor: pointer !important;
  opacity: 1 !important;
}
.ftb-footer__links .ftb-obf-b64:hover {
  color: var(--ftb-peach-deep) !important;
  text-decoration: underline !important;
  text-underline-offset: 3px !important;
  opacity: 1 !important;
}

/* --- Trust bar : logos paiement --- */
.ftb-footer__trust {
  border-top: 1px solid var(--ftb-border);
  padding: 20px 0;
}

.ftb-footer__trust-inner {
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 24px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.ftb-footer__pay-img {
  display: block;
  height: 33px;
  width: auto;
  max-width: 360px;
  opacity: 0.8;
  filter: grayscale(20%);
}

/* ══════════════════════════════════════════════════════════
   CARDS ARTICLES BLOG — partagées entre home.php et category.php
══════════════════════════════════════════════════════════ */
.ftb-article-card {
  background: #fff;
  border-radius: 18px;
  overflow: hidden;
  border: 1px solid rgba(44,74,62,.06);
  box-shadow: 0 2px 16px rgba(44,74,62,.04);
  transition: transform .3s ease, box-shadow .3s ease;
  display: flex; flex-direction: column;
  text-decoration: none;
  color: inherit;
}
.ftb-article-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 18px 42px rgba(44,74,62,.12);
}
.ftb-article-card__media {
  position: relative;
  padding-top: 62%;
  overflow: hidden;
  background: var(--ftb-cream,#FAF6EF);
}
.ftb-article-card__media img {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover;
  transition: transform .6s ease;
}
.ftb-article-card:hover .ftb-article-card__media img { transform: scale(1.06); }
.ftb-article-card__placeholder {
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--ftb-serif,'Playfair Display',Georgia,serif);
  font-style: italic; font-size: 3rem; color: rgba(44,74,62,.18);
}
.ftb-article-card__cat {
  position: absolute; top: 14px; left: 14px;
  background: var(--ftb-cream,#FAF6EF);
  color: var(--ftb-forest,#2D4A3E);
  font-size: .7rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
  padding: 5px 12px; border-radius: 20px;
}
.ftb-article-card__body {
  padding: 26px 24px 28px;
  flex: 1; display: flex; flex-direction: column;
}
.ftb-article-card__title {
  font-family: var(--ftb-serif,'Playfair Display',Georgia,serif);
  font-size: 1.18rem; font-weight: 600;
  color: var(--ftb-forest,#2D4A3E);
  line-height: 1.32; margin: 0 0 12px;
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical;
  overflow: hidden; text-overflow: ellipsis;
  min-height: calc(1.32em * 3);
}
.ftb-article-card__excerpt {
  font-size: .92rem; line-height: 1.65;
  color: var(--ftb-mid,#6B6560);
  margin: 0 0 18px;
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical;
  overflow: hidden; text-overflow: ellipsis;
  flex: 1;
}
.ftb-article-card__foot {
  display: flex; align-items: center; justify-content: space-between;
  padding-top: 14px;
  border-top: 1px solid rgba(44,74,62,.06);
  font-size: .82rem; color: var(--ftb-mid,#6B6560);
}
.ftb-article-card__cta {
  color: var(--ftb-gold,#C4964A); font-weight: 600;
  display: inline-flex; align-items: center; gap: 5px;
  transition: gap .2s ease;
}
.ftb-article-card:hover .ftb-article-card__cta { gap: 9px; }

/* --- Barre copyright --- */
.ftb-footer__copyright {
  border-top: 1px solid var(--ftb-border);
  padding: 16px 0;
  background: var(--ftb-warm-white);
}

.ftb-footer__copyright-inner {
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px;
}

.ftb-footer__copyright p {
  font-size: 0.75rem;
  color: var(--ftb-soft);
  margin: 0;
}

.ftb-footer__copyright-links a {
  font-size: 0.75rem;
  color: var(--ftb-soft);
  text-decoration: none;
  transition: color 0.2s ease;
}

.ftb-footer__copyright-links a:hover {
  color: var(--ftb-forest);
}

/* --- Responsive footer --- */
@media (max-width: 1024px) {
  .ftb-footer__inner {
    grid-template-columns: 1fr 1fr;
    gap: 32px;
  }
}

@media (max-width: 600px) {
  .ftb-footer__inner {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px 16px;
  }
  .ftb-footer__main {
    padding: 40px 0 28px;
  }
  /* Colonne "À propos" pleine largeur en tête */
  .ftb-footer__col--about {
    grid-column: 1 / -1;
    text-align: center;
  }
  .ftb-footer__social {
    justify-content: center;
  }
  .ftb-footer__pay-img {
    height: 28px;
    max-width: 280px;
  }
  .ftb-footer__copyright-inner {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }
  /* Liens footer : taille réduite sur mobile */
  .ftb-footer__heading { font-size: 0.9rem; }
  .ftb-footer__links li a,
  .ftb-footer__links li span { font-size: 0.82rem; }
}

/* =============================================================================
   MINI-CART DRAWER — Charte FTB
   ============================================================================= */

/* Fond et dimensions du drawer */
.shoptimizer-mini-cart-wrap {
  background-color: var(--ftb-warm-white) !important;
}

/* Zone de contenu du widget */
.shoptimizer-mini-cart-wrap .widget_shopping_cart {
  background: var(--ftb-warm-white) !important;
}

/* Heading "Votre panier" */
.cart-drawer-heading {
  font-family: var(--ftb-serif);
  font-size: 18px;
  font-weight: 600;
  color: var(--ftb-forest) !important;
  letter-spacing: 0;
}

/* Bouton fermer */
.shoptimizer-mini-cart-wrap .close-drawer {
  color: var(--ftb-forest) !important;
}
.shoptimizer-mini-cart-wrap .close-drawer:hover {
  color: var(--ftb-forest-light) !important;
  background: none !important;
}

/* Séparateur haut de la liste */
.shoptimizer-mini-cart-wrap .woocommerce-mini-cart.cart_list:before {
  border-top-color: var(--ftb-border) !important;
}

/* Items produit */
.shoptimizer-mini-cart-wrap .widget_shopping_cart li.mini_cart_item {
  border-bottom: 1px solid var(--ftb-border) !important;
}
.shoptimizer-mini-cart-wrap .widget_shopping_cart li.mini_cart_item a {
  color: var(--ftb-charcoal) !important;
  font-family: var(--ftb-sans);
  font-size: 14px;
}
.shoptimizer-mini-cart-wrap li.woocommerce-mini-cart-item a:hover {
  color: var(--ftb-forest) !important;
}

/* Quantité */
.shoptimizer-mini-cart-wrap .product_list_widget li .quantity {
  color: var(--ftb-mid) !important;
}

/* Prix */
.widget_shopping_cart .woocommerce-mini-cart-item .amount {
  color: var(--ftb-gold) !important;
  font-family: var(--ftb-sans);
  font-weight: 600;
}

/* Total */
.widget_shopping_cart p.total {
  color: var(--ftb-charcoal) !important;
  border-top-color: var(--ftb-border) !important;
  font-family: var(--ftb-sans);
  font-size: 15px;
}

/* Boutons panier */
.widget_shopping_cart a.button {
  border-color: var(--ftb-border) !important;
  color: var(--ftb-forest) !important;
  background-color: var(--ftb-warm-white) !important;
  font-family: var(--ftb-sans);
  font-weight: 500;
  border-radius: var(--ftb-radius) !important;
  transition: all 0.2s ease;
}
.widget_shopping_cart a.button:hover {
  background-color: var(--ftb-blush) !important;
  border-color: var(--ftb-blush-deep) !important;
  color: var(--ftb-forest) !important;
}

/* Bouton checkout (principal) */
.widget_shopping_cart a.button.checkout {
  background-color: var(--ftb-gold) !important;
  color: #fff !important;
  border-color: var(--ftb-gold) !important;
  font-weight: 600;
  letter-spacing: 0.3px;
}
.widget_shopping_cart a.button.checkout:hover {
  background-color: var(--ftb-gold-light) !important;
  border-color: var(--ftb-gold-light) !important;
  color: #fff !important;
}

/* Message panier vide */
.shoptimizer-mini-cart-wrap .woocommerce-mini-cart__empty-message {
  color: var(--ftb-mid) !important;
  font-family: var(--ftb-sans);
  font-size: 15px;
  font-weight: 400;
  padding-top: 40px !important;
  border-top-color: var(--ftb-border) !important;
  text-align: center;
}
/* Supprime le carré gris Shoptimizer (::before fantôme) */
.shoptimizer-mini-cart-wrap .woocommerce-mini-cart__empty-message::before {
  display: none !important;
}

/* Overlay de fond (desktop) */
@media (min-width: 993px) {
  .drawer-open:before {
    background: rgba(29, 40, 36, 0.45) !important;
  }
}

/* Icône panier dans le header — forcer l'affichage desktop (Shoptimizer le masque par défaut) */
@media (min-width: 993px) {
  .site-header .site-header-cart {
    display: flex !important;
    align-items: center;
    line-height: normal;
    margin-left: 0;
  }
}

.site-header-cart a.cart-contents,
.shoptimizer-cart {
  color: var(--ftb-forest) !important;
}
.site-header-cart a.cart-contents:hover {
  color: var(--ftb-forest-light) !important;
}

/* Compteur bulle panier */
.site-header-cart .count,
.shoptimizer-cart .count {
  background-color: var(--ftb-gold) !important;
  border-color: var(--ftb-gold) !important;
  color: #fff !important;
}

/* ============================================================
   FACETWP — Sidebar filtres à facettes
   ============================================================ */

/* Conteneur principal */
.ftb-facets-sidebar {
  font-family: var(--ftb-sans);
  color: var(--ftb-charcoal);
}

/* En-tête : titre Filtres */
.ftb-facets-header {
  padding-bottom: 14px;
  margin-bottom: 4px;
  border-bottom: 2px solid var(--ftb-forest);
}
.ftb-facets-title {
  font-family: var(--ftb-sans);
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ftb-forest);
  margin: 0;
}

/* Pied de sidebar : bouton reset FacetWP */
.ftb-facets-footer {
  padding-top: 16px;
  text-align: center;
}
.ftb-facets-footer .facetwp-type-reset .facetwp-reset {
  display: inline-block;
  font-size: 0.8rem;
  font-family: var(--ftb-sans);
  color: var(--ftb-mid);
  background: none;
  border: 1px solid var(--ftb-border);
  border-radius: var(--ftb-radius);
  cursor: pointer;
  padding: 8px 16px;
  transition: color 0.2s, border-color 0.2s;
  text-decoration: none;
}
.ftb-facets-footer .facetwp-type-reset .facetwp-reset:hover {
  color: var(--ftb-forest);
  border-color: var(--ftb-forest);
}
.ftb-facets-footer .facetwp-type-reset.hidden {
  display: none;
}

/* Groupe de facettes */
.ftb-facet-group {
  border-bottom: 1px solid var(--ftb-border);
  padding: 4px 0;
}

/* Bouton accordion */
.ftb-facet-group__toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 12px 0;
  background: none;
  border: none;
  cursor: pointer;
  font-family: var(--ftb-sans);
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--ftb-charcoal);
  text-align: left;
}
.ftb-facet-group__toggle:hover {
  color: var(--ftb-forest);
}
.ftb-facet-group__chevron {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  transition: transform 0.25s;
  color: var(--ftb-mid);
}
.ftb-facet-group__toggle[aria-expanded="false"] .ftb-facet-group__chevron {
  transform: rotate(-90deg);
}

/* Corps du groupe */
.ftb-facet-group__body {
  padding-bottom: 12px;
}

/* Checkboxes FacetWP
 * FacetWP 4.x utilise background-image sur .facetwp-checkbox (pas de .facetwp-expand).
 * On écrase cette approche avec ::before pour la case custom + flex pour le layout.
 */
.ftb-facets-sidebar .facetwp-type-checkboxes .facetwp-checkbox {
  /* Écrase background-image de front.css */
  background-image: none !important;
  padding-left: 0 !important;
  /* Layout */
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 5px 0;
  cursor: pointer;
  font-size: 0.85rem;
  color: var(--ftb-charcoal);
  line-height: 1.4;
  transition: color 0.15s;
  position: relative;
}
.ftb-facets-sidebar .facetwp-type-checkboxes .facetwp-checkbox:hover {
  color: var(--ftb-forest);
}
/* Case à cocher custom via ::before */
.ftb-facets-sidebar .facetwp-type-checkboxes .facetwp-checkbox::before {
  content: '';
  display: block;
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  border: 1.5px solid var(--ftb-forest);
  border-radius: 3px;
  background: #fff no-repeat center / 11px 11px;
  transition: background-color 0.15s, border-color 0.15s;
}
/* État coché */
.ftb-facets-sidebar .facetwp-type-checkboxes .facetwp-checkbox.checked {
  background-image: none !important; /* override front.css .checked */
}
.ftb-facets-sidebar .facetwp-type-checkboxes .facetwp-checkbox.checked::before {
  background-color: var(--ftb-forest);
  border-color: var(--ftb-forest);
  /* Coche SVG blanche inline */
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8l4 4 6-6' stroke='%23fff' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.ftb-facets-sidebar .facetwp-checkbox .facetwp-display-value {
  flex: 1;
}
.ftb-facets-sidebar .facetwp-checkbox .facetwp-counter {
  font-size: 0.75rem;
  color: var(--ftb-mid);
  margin-left: auto;
}
/* Ghost items (aucun résultat disponible) */
.ftb-facets-sidebar .facetwp-checkbox.facetwp-ghost,
.ftb-facets-sidebar .facetwp-checkbox.disabled {
  opacity: 0.4;
  pointer-events: none;
}

/* Lien "Voir plus / Voir moins" FacetWP */
.ftb-facets-sidebar .facetwp-toggle {
  font-size: 0.78rem;
  color: var(--ftb-forest);
  cursor: pointer;
  margin-top: 4px;
  display: inline-block;
}
.ftb-facets-sidebar .facetwp-toggle:hover {
  text-decoration: underline;
}

/* Bouton "Reset" natif du slider prix — masqué (remplacé par le bouton global en bas) */
.ftb-facets-sidebar .facetwp-slider-reset {
  display: none !important;
}

/* Slider FacetWP (prix) */
.ftb-facets-sidebar .facetwp-type-slider .facetwp-slider-wrap {
  padding: 10px 4px 0;
}
.ftb-facets-sidebar .ui-slider {
  background: var(--ftb-blush);
  border: none;
  height: 4px;
  border-radius: 4px;
}
.ftb-facets-sidebar .ui-slider-range {
  background: var(--ftb-forest);
}
.ftb-facets-sidebar .ui-slider-handle {
  width: 18px;
  height: 18px;
  top: -7px;
  background: #fff;
  border: 2px solid var(--ftb-forest);
  border-radius: 50%;
  cursor: pointer;
  box-shadow: 0 1px 4px rgba(0,0,0,0.15);
  outline: none;
}
.ftb-facets-sidebar .ui-slider-handle:focus,
.ftb-facets-sidebar .ui-slider-handle:hover {
  background: var(--ftb-forest);
}
.ftb-facets-sidebar .facetwp-slider-label {
  display: flex;
  justify-content: space-between;
  font-size: 0.8rem;
  color: var(--ftb-mid);
  margin-top: 10px;
}

/* Groupe "Adapté pour" — checkboxes sans compteur */
.ftb-facet-group__body--indicators .facetwp-counter {
  display: none;
}
.ftb-facet-group__body--indicators .facetwp-facet {
  margin: 0;
}

/* ============================================================
   FACETWP — Bouton mobile "Show Filters" — restyle FTB
   ============================================================ */
.mobile-filter.shoptimizer-mobile-toggle {
  background-color: var(--ftb-forest) !important;
  color: #fff !important;
  border: none !important;
  font-family: var(--ftb-sans) !important;
  font-size: 0.85rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.05em !important;
  padding: 10px 18px !important;
  border-radius: 4px !important;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
  transition: background 0.2s;
}
.mobile-filter.shoptimizer-mobile-toggle:hover {
  background-color: var(--ftb-forest-light) !important;
}
.mobile-filter.shoptimizer-mobile-toggle svg {
  width: 18px;
  height: 18px;
  stroke: #fff;
}

/* ============================================================
   LAYOUT PLEINE PAGE — Desktop (≥ 993px)
   Pages boutique et catégories : container élargi + sidebar fixe
   ============================================================ */
@media (min-width: 993px) {

  /* Élargir le container principal */
  .woocommerce-page .col-full,
  .post-type-archive-product .col-full,
  .tax-product_cat .col-full {
    max-width: 1440px;
  }

  /* Sidebar : largeur fixe de 260px */
  .left-woocommerce-sidebar #secondary,
  .woocommerce .left-woocommerce-sidebar #secondary {
    width: 260px;
  }

  /* Zone produits : remplit le reste */
  .left-woocommerce-sidebar .content-area,
  .woocommerce .left-woocommerce-sidebar .content-area {
    width: calc(100% - 290px);
  }

  /* Grille produits gérée par loop_shop_columns filter (3 colonnes via PHP) */
}

/* ============================================================
   PAGES CATÉGORIE — Bandeau header
   ============================================================ */

/* Bandeau pleine largeur — positionné avant #content par shoptimizer_before_content */
/* ============================================================
   BANDEAU CATÉGORIE — Layout split : photo gauche + texte droite
   ============================================================ */

.ftb-cat-banner {
  display: flex;
  width: 100%;
  min-height: 320px;
  overflow: hidden;
  position: relative;
  margin-top: 20px;
  margin-bottom: 28px;
  box-shadow: 0 2px 16px rgba(44,74,62,0.07);
}

/* Zone texte gauche — fond crème chaud, pas de border */
.ftb-cat-banner__text {
  flex: 1;
  display: flex;
  align-items: center;
  background-color: var(--ftb-warm-white);
  position: relative;
}

/* Accent doré bas gauche */
.ftb-cat-banner__text::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 48px;
  height: 3px;
  background: var(--ftb-gold);
}

/* Filet doré haut gauche — accent symétrique */
.ftb-cat-banner__text::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 48px;
  height: 3px;
  background: var(--ftb-gold);
}

.ftb-cat-banner__text-inner {
  padding: 44px 52px 44px 44px;
  width: 100%;
}

/* Zone photo droite — séparateur fin, image couvre la zone */
.ftb-cat-banner__photo {
  flex: 0 0 40%;
  max-width: 40%;
  background-color: var(--ftb-cream);
  background-position: center top;
  background-repeat: no-repeat;
  background-size: cover;
  border-left: 1px solid rgba(44,74,62,0.15);
}

/* Fallback : pas d'image → fond dégradé vert forêt */
.ftb-cat-banner:not(.ftb-cat-banner--has-image) .ftb-cat-banner__photo {
  background: linear-gradient(135deg, var(--ftb-forest) 0%, var(--ftb-forest-light) 100%);
}

/* H1 — Playfair italic vert forêt */
.ftb-cat-banner__title {
  font-family: var(--ftb-serif) !important;
  font-size: clamp(24px, 2.8vw, 40px) !important;
  font-weight: 600 !important;
  font-style: italic !important;
  color: var(--ftb-forest) !important;
  margin: 0 0 18px !important;
  line-height: 1.15 !important;
  letter-spacing: -0.01em !important;
}

/* Séparateur doré sous le titre */
.ftb-cat-banner__title::after {
  content: '';
  display: block;
  width: 40px;
  height: 2px;
  background: var(--ftb-gold);
  margin-top: 16px;
}

/* Description courte */
.ftb-cat-banner__desc {
  font-family: var(--ftb-sans);
  font-size: 0.97rem;
  line-height: 1.85;
  color: var(--ftb-charcoal);
  max-width: 520px;
}

.ftb-cat-banner__desc p {
  margin: 0 0 0.75em;
}

.ftb-cat-banner__desc p:last-child {
  margin: 0;
}

.ftb-cat-banner__desc strong {
  color: var(--ftb-forest);
  font-weight: 600;
}

.ftb-cat-banner__desc ul {
  margin: 0.5em 0 0.75em 1.2em;
  padding: 0;
}

.ftb-cat-banner__desc li {
  margin-bottom: 0.3em;
}

/* Tablette */
@media (max-width: 900px) {
  .ftb-cat-banner__photo {
    flex: 0 0 44%;
    max-width: 44%;
    background-size: cover;
  }
  .ftb-cat-banner__text-inner {
    padding: 32px 32px 32px 28px;
  }
}

/* Mobile — empilé vertical */
@media (max-width: 640px) {
  .ftb-cat-banner {
    flex-direction: column;
    min-height: auto;
  }
  .ftb-cat-banner__photo {
    flex: none;
    max-width: 100%;
    min-height: 200px;
    background-size: cover;
    background-position: center top;
    border-left: none;
    border-top: 4px solid var(--ftb-forest);
    order: -1;
  }
  .ftb-cat-banner__text-inner {
    padding: 28px 20px;
    max-width: none;
  }
  .ftb-cat-banner__desc {
    display: block;
    font-size: 0.9rem;
    line-height: 1.7;
    max-width: none;
  }

}

/* Lire la suite — description catégorie (toutes tailles d'écran) */
.ftb-cat-banner__desc.ftb-cat-desc--toggleable.is-truncated {
  position: relative;
  overflow: hidden;
  max-height: 7.5em; /* ~300 chars ≈ 4-5 lignes */
  transition: max-height 0.35s ease;
}
.ftb-cat-banner__desc.ftb-cat-desc--toggleable.is-truncated::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 2.5em;
  background: linear-gradient(transparent, var(--ftb-warm-white, #FFFCF7));
  pointer-events: none;
  transition: opacity 0.3s;
}
.ftb-cat-banner__desc.ftb-cat-desc--toggleable.is-open {
  max-height: 2000px;
}
.ftb-cat-banner__desc.ftb-cat-desc--toggleable.is-open::after {
  opacity: 0;
}

/* Bouton Lire la suite — toutes tailles */
.ftb-cat-desc-toggle {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin-top: 8px;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  font-family: var(--ftb-sans);
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--ftb-forest);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.ftb-cat-desc-toggle:focus-visible {
  outline: 2px solid var(--ftb-peach);
  border-radius: 2px;
}

/* ============================================================
   PAGES CATÉGORIE — Description longue bas de page
   ============================================================ */
.ftb-cat-long-desc {
  clear: both;
  display: block;
  float: none;
  width: 100%;
  margin-top: 48px;
  padding: 40px 20px;
  border-top: 1px solid var(--ftb-border);
  font-family: var(--ftb-sans);
  font-size: 0.95rem;
  line-height: 1.75;
  color: var(--ftb-charcoal);
}

.ftb-cat-long-desc h2,
.ftb-cat-long-desc h3 {
  font-family: var(--ftb-serif);
  color: var(--ftb-forest);
  margin-top: 1.5em;
  margin-bottom: 0.5em;
}

.ftb-cat-long-desc p {
  margin-bottom: 1em;
}

/* ============================================================
   BOUTON FILTRE MOBILE — visible uniquement en mobile
   ============================================================ */
.ftb-mobile-filter-btn {
  display: none; /* masqué en desktop */
  align-items: center;
  gap: 8px;
  width: 100%;
  padding: 12px 20px;
  margin-bottom: 16px;
  background: var(--ftb-forest);
  color: #fff;
  font-family: var(--ftb-sans);
  font-size: 0.9rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  transition: background 0.2s;
}

.ftb-mobile-filter-btn:hover {
  background: var(--ftb-forest-light);
}

.ftb-mobile-filter-btn svg {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}

@media (max-width: 992px) {
  .ftb-mobile-filter-btn {
    display: flex;
  }
}

/* ============================================================
   FTB — FacetWP fermeture mobile
   ============================================================ */
.ftb-filter-close {
  display: none; /* masqué par défaut sur desktop */
}

@media (max-width: 992px) {
  /* Toujours caché hors état filter-open */
  .ftb-filter-close {
    display: none;
  }

  /* #secondary = panneau fixed scroll — supprimer le padding-top pour que
     le bouton colle au bord sans décalage */
  body.filter-open #secondary.widget-area {
    padding-top: 0 !important;
  }

  /* Visible uniquement quand le panneau est ouvert */
  body.filter-open .ftb-filter-close {
    display: flex;
    align-items: center;
    gap: 10px;
    width: calc(100% + 3rem); /* déborde des padding latéraux 1.5rem */
    margin-left: -1.5rem;
    margin-right: -1.5rem;
    margin-bottom: 1.5rem;
    padding: 16px 20px;
    background: var(--ftb-forest);
    color: #fff;
    font-family: var(--ftb-sans);
    font-size: 0.9rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    border: none;
    cursor: pointer;
    position: sticky;
    top: 0;
    z-index: 20;
    flex-shrink: 0;
    transition: background 0.2s;
  }

  body.filter-open .ftb-filter-close:hover {
    background: var(--ftb-forest-light);
  }

  body.filter-open .ftb-filter-close:focus-visible {
    outline: 2px solid var(--ftb-peach);
    outline-offset: -2px;
  }

  body.filter-open .ftb-filter-close svg {
    flex-shrink: 0;
  }
}

/* ============================================================
   PAGE MENTIONS LÉGALES — .ftb-legal-*
   ============================================================ */

.ftb-legal-page {
  max-width: 820px;
  margin: 0 auto;
  padding: 0 20px 60px;
}

/* Hero */
.ftb-legal-hero {
  background: linear-gradient(135deg, var(--ftb-forest) 0%, var(--ftb-forest-deep) 100%);
  border-radius: 12px;
  padding: 48px 52px;
  margin-bottom: 40px;
  position: relative;
  overflow: hidden;
}
.ftb-legal-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 20% 50%, rgba(209,122,77,0.22) 0%, transparent 60%),
              radial-gradient(ellipse at 80% 20%, rgba(209,122,77,0.10) 0%, transparent 50%);
  pointer-events: none;
}
.ftb-legal-hero__tag {
  display: inline-block;
  font-family: var(--ftb-sans);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ftb-gold-light);
  margin-bottom: 12px;
}
.ftb-legal-hero__title {
  font-family: var(--ftb-serif) !important;
  font-size: clamp(28px, 4vw, 44px) !important;
  font-weight: 600 !important;
  font-style: italic !important;
  color: #fff !important;
  margin: 0 0 12px !important;
  line-height: 1.15 !important;
}
.ftb-legal-hero__meta {
  font-family: var(--ftb-sans);
  font-size: 0.85rem;
  color: rgba(255,255,255,0.65);
  margin: 0;
}
.ftb-legal-hero__meta a {
  color: var(--ftb-gold-light);
  text-decoration: underline;
}

/* Sommaire */
.ftb-legal-toc {
  background: var(--ftb-warm-white);
  border: 1px solid var(--ftb-border);
  border-left: 4px solid var(--ftb-gold);
  border-radius: 8px;
  padding: 28px 32px;
  margin-bottom: 40px;
}
.ftb-legal-toc__label {
  font-family: var(--ftb-sans);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ftb-mid);
  margin: 0 0 14px;
}
.ftb-legal-toc__list {
  margin: 0;
  padding-left: 20px;
  columns: 2;
  column-gap: 32px;
}
.ftb-legal-toc__list li {
  font-family: var(--ftb-sans);
  font-size: 0.9rem;
  margin-bottom: 6px;
  break-inside: avoid;
}
.ftb-legal-toc__list a {
  color: var(--ftb-forest);
  text-decoration: none;
  transition: color 0.2s;
}
.ftb-legal-toc__list a:hover {
  color: var(--ftb-gold);
  text-decoration: underline;
}

/* Sections */
.ftb-legal-section {
  border-top: 1px solid var(--ftb-border);
  padding-top: 40px;
  margin-bottom: 40px;
  scroll-margin-top: 100px;
}
.ftb-legal-section:first-child {
  border-top: none;
  padding-top: 0;
}
.ftb-legal-section__title {
  font-family: var(--ftb-serif) !important;
  font-size: 1.35rem !important;
  font-weight: 600 !important;
  color: var(--ftb-forest) !important;
  margin: 0 0 20px !important;
}
.ftb-legal-section__body {
  font-family: var(--ftb-sans);
  font-size: 0.93rem;
  line-height: 1.8;
  color: var(--ftb-charcoal);
}
.ftb-legal-section__body p { margin-bottom: 1em; }
.ftb-legal-section__body ul {
  padding-left: 20px;
  margin-bottom: 1em;
}
.ftb-legal-section__body li { margin-bottom: 0.4em; }
.ftb-legal-section__body h3 {
  font-family: var(--ftb-sans);
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--ftb-forest);
  margin: 1.6em 0 0.6em;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.ftb-legal-section__body a {
  color: var(--ftb-forest);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.ftb-legal-section__body a:hover { color: var(--ftb-gold); }

/* Blocs info identitaires */
.ftb-legal-info-box {
  background: var(--ftb-cream);
  border: 1px solid var(--ftb-border);
  border-radius: 8px;
  padding: 24px 28px;
  margin: 20px 0;
}
.ftb-legal-info-box--secondary {
  background: var(--ftb-warm-white);
  margin-top: 12px;
}
.ftb-legal-info-box__heading {
  font-family: var(--ftb-sans);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ftb-forest);
  margin: 0 0 14px;
}
.ftb-legal-info-box__row {
  display: flex;
  gap: 16px;
  padding: 6px 0;
  border-bottom: 1px solid rgba(44,74,62,0.07);
  font-size: 0.88rem;
  line-height: 1.5;
}
.ftb-legal-info-box__row:last-child { border-bottom: none; }
.ftb-legal-info-box__label {
  flex: 0 0 180px;
  font-weight: 600;
  color: var(--ftb-mid);
}

/* CTA bas de page */
.ftb-legal-footer-cta {
  text-align: center;
  background: linear-gradient(135deg, var(--ftb-forest) 0%, var(--ftb-forest-deep) 100%);
  border-radius: 12px;
  padding: 36px 24px;
  margin-top: 48px;
  position: relative;
  overflow: hidden;
}
.ftb-legal-footer-cta::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 70% 50%, rgba(209,122,77,0.18) 0%, transparent 60%);
  pointer-events: none;
}
.ftb-legal-footer-cta p {
  font-family: var(--ftb-serif);
  font-size: 1.15rem;
  font-style: italic;
  color: rgba(255,255,255,0.9);
  margin: 0 0 16px;
}
.ftb-legal-footer-cta__btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--ftb-gold);
  color: #fff;
  font-family: var(--ftb-sans);
  font-size: 0.9rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  padding: 14px 32px;
  border-radius: var(--ftb-radius-pill);
  text-decoration: none;
  white-space: nowrap;
  transition: background 0.2s, transform 0.2s, box-shadow 0.2s;
  position: relative;
  z-index: 1;
}
.ftb-legal-footer-cta__btn:hover {
  background: var(--ftb-peach-deep);
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(209,122,77,0.35);
}
@media (max-width: 480px) {
  .ftb-legal-footer-cta__btn { font-size: 0.8rem; padding: 12px 20px; }
}

/* Sommaire 3 colonnes (CGV — 16 entrées) */
.ftb-legal-toc__list--cols3 {
  columns: 3;
  column-gap: 24px;
}

/* Bandeau highlights */
.ftb-legal-highlights {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin: 0 0 40px;
}
.ftb-legal-highlight {
  background: var(--ftb-warm-white);
  border: 1px solid var(--ftb-border);
  border-radius: 10px;
  padding: 20px 16px;
  text-align: center;
}
.ftb-legal-highlight__icon {
  display: block;
  font-size: 1.6rem;
  margin-bottom: 8px;
}
.ftb-legal-highlight__label {
  font-family: var(--ftb-sans);
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--ftb-forest);
  margin: 0 0 2px;
}
.ftb-legal-highlight__desc {
  font-family: var(--ftb-sans);
  font-size: 0.78rem;
  color: var(--ftb-mid);
  margin: 0;
}

/* Callout (encart remarque) */
.ftb-legal-callout {
  background: var(--ftb-cream);
  border-left: 3px solid var(--ftb-gold);
  border-radius: 0 8px 8px 0;
  padding: 14px 20px;
  font-family: var(--ftb-sans);
  font-size: 0.9rem;
  color: var(--ftb-charcoal);
  margin-bottom: 20px;
}
.ftb-legal-callout--highlight {
  background: rgba(45,74,62,0.06);
  border-left-color: var(--ftb-forest);
}

/* Note de bas de section */
.ftb-legal-section__note {
  font-size: 0.82rem;
  color: var(--ftb-mid);
  border-top: 1px solid var(--ftb-border);
  padding-top: 12px;
  margin-top: 20px;
}

/* Tableau livraison */
.ftb-legal-table-wrap {
  overflow-x: auto;
  margin: 20px 0;
  border-radius: 8px;
  border: 1px solid var(--ftb-border);
}
.ftb-legal-table {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--ftb-sans);
  font-size: 0.9rem;
}
.ftb-legal-table thead {
  background: var(--ftb-forest);
  color: #fff;
  border-bottom: 3px solid var(--ftb-peach);
}
.ftb-legal-table thead th {
  padding: 14px 16px;
  text-align: center;
  font-weight: 600;
  font-size: 0.78rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.ftb-legal-table thead th:first-child { text-align: left; }
.ftb-legal-table tbody tr {
  border-bottom: 1px solid var(--ftb-border);
  transition: background 0.15s;
}
.ftb-legal-table tbody tr:last-child { border-bottom: none; }
.ftb-legal-table tbody tr:hover { background: var(--ftb-cream); }
.ftb-legal-table tbody td {
  padding: 13px 16px;
  color: var(--ftb-charcoal);
  vertical-align: middle;
}
.ftb-legal-table tbody td:nth-child(2) { white-space: nowrap; }

/* Mobile */
@media (max-width: 640px) {
  .ftb-legal-hero { padding: 32px 24px; }
  .ftb-legal-toc { padding: 20px; }
  .ftb-legal-toc__list,
  .ftb-legal-toc__list--cols3 { columns: 1; }
  .ftb-legal-highlights { grid-template-columns: repeat(2, 1fr); }
  .ftb-legal-info-box { padding: 16px; }
  .ftb-legal-info-box__row { flex-direction: column; gap: 2px; }
  .ftb-legal-info-box__label { flex: none; }
  .ftb-legal-table thead th,
  .ftb-legal-table tbody td { padding: 10px 12px; font-size: 0.82rem; }
  /* Table responsive — cards empilées sur mobile */
  .ftb-legal-table-wrap { overflow-x: visible; margin: 0; padding: 0; }
  .ftb-legal-table,
  .ftb-legal-table tbody,
  .ftb-legal-table tr { display: block; }
  .ftb-legal-table { min-width: 0; border: none; }
  .ftb-legal-table thead { display: none; }
  .ftb-legal-table tbody tr {
    border: 1px solid var(--ftb-border);
    border-radius: 10px;
    padding: 12px 14px;
    margin-bottom: 10px;
    background: #fff;
  }
  .ftb-legal-table tbody td {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 8px;
    padding: 5px 0;
    border: none;
    font-size: 0.83rem;
    color: var(--ftb-charcoal);
  }
  .ftb-legal-table tbody td::before {
    content: attr(data-label);
    font-weight: 600;
    color: var(--ftb-forest);
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    flex-shrink: 0;
    min-width: 80px;
  }
  .ftb-legal-table tbody td:first-child {
    font-weight: 600;
    color: var(--ftb-forest);
    font-size: 0.875rem;
    border-bottom: 1px solid var(--ftb-border);
    padding-bottom: 8px;
    margin-bottom: 4px;
    justify-content: flex-start;
  }
  .ftb-legal-table tbody td:first-child::before { display: none; }
}


/* =============================================================================
   PAGE CONTACT — Nous Contacter
   ============================================================================= */

/* --- Hero bandeau --- */
.ftb-contact-hero {
  background: linear-gradient(135deg, var(--ftb-forest) 0%, var(--ftb-forest-deep) 100%);
  padding: 52px 20px 44px;
  text-align: center;
  position: relative;
  overflow: hidden;
}

.ftb-contact-hero::before {
  content: '';
  position: absolute;
  top: -80px;
  right: -60px;
  width: 320px;
  height: 320px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(196,150,74,0.12) 0%, transparent 70%);
  pointer-events: none;
}

.ftb-contact-hero__inner {
  max-width: 640px;
  margin: 0 auto;
  position: relative;
}

.ftb-contact-hero__tag {
  font-family: var(--ftb-sans);
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ftb-gold);
  display: block;
  margin-bottom: 16px;
}

.ftb-contact-hero__title {
  font-family: var(--ftb-serif);
  font-size: clamp(1.75rem, 3vw, 2.5rem);
  font-weight: 600;
  font-style: italic;
  color: #fff;
  line-height: 1.2;
  margin-bottom: 16px;
}

.ftb-contact-hero__subtitle {
  font-family: var(--ftb-sans);
  font-size: 0.9375rem;
  font-weight: 300;
  color: rgba(255,255,255,0.75);
  line-height: 1.6;
  margin: 0;
}

/* --- Layout 2 colonnes --- */
.ftb-contact-layout {
  display: flex;
  gap: 44px;
  max-width: 1060px;
  margin: 0 auto;
  padding: 44px 20px 56px;
  align-items: flex-start;
}

/* --- Sidebar gauche (infos) --- */
.ftb-contact-sidebar {
  flex: 0 0 300px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

/* Cartes info — layout horizontal */
.ftb-contact-card {
  background: var(--ftb-warm-white);
  border: 1px solid var(--ftb-border);
  border-radius: 14px;
  padding: 18px 20px;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 16px;
}

.ftb-contact-card__icon {
  flex-shrink: 0;
  width: 42px;
  height: 42px;
  border-radius: 12px;
  background: rgba(45,74,62,0.08);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--ftb-forest);
}

.ftb-contact-card__body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.ftb-contact-card__title {
  font-family: var(--ftb-sans);
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--ftb-charcoal);
  margin: 0;
}

.ftb-contact-card__text {
  font-family: var(--ftb-sans);
  font-size: 0.875rem;
  font-weight: 400;
  color: var(--ftb-charcoal);
  margin: 0;
}

.ftb-contact-card__detail {
  font-family: var(--ftb-sans);
  font-size: 0.75rem;
  font-weight: 300;
  color: var(--ftb-mid);
  margin: 0;
}

/* --- FAQ rapide --- */
.ftb-contact-faq {
  margin-top: 12px;
}

.ftb-contact-faq__title {
  font-family: var(--ftb-serif);
  font-size: 1.125rem;
  font-weight: 600;
  font-style: italic;
  color: var(--ftb-forest);
  margin: 0 0 16px;
}

.ftb-contact-faq__item {
  border-bottom: 1px solid var(--ftb-border);
}

.ftb-contact-faq__item:first-of-type {
  border-top: 1px solid var(--ftb-border);
}

.ftb-contact-faq__item summary {
  font-family: var(--ftb-sans);
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--ftb-charcoal);
  padding: 14px 0;
  cursor: pointer;
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
}

.ftb-contact-faq__item summary::-webkit-details-marker { display: none; }

.ftb-contact-faq__item summary::after {
  content: '+';
  font-size: 1.125rem;
  font-weight: 300;
  color: var(--ftb-mid);
  flex-shrink: 0;
  transition: transform 0.2s ease;
}

.ftb-contact-faq__item[open] summary::after {
  content: '−';
  color: var(--ftb-forest);
}

.ftb-contact-faq__item p {
  font-family: var(--ftb-sans);
  font-size: 0.8125rem;
  font-weight: 300;
  color: var(--ftb-mid);
  line-height: 1.7;
  margin: 0 0 16px;
  padding: 0;
}

/* --- Formulaire (colonne droite) --- */
.ftb-contact-form-wrapper {
  flex: 1;
  min-width: 0;
}

.ftb-contact-form-card {
  background: #fff;
  border-radius: 20px;
  padding: 36px 32px 32px;
  box-shadow: 0 8px 40px rgba(44,74,62,0.10), 0 1px 4px rgba(44,74,62,0.05);
  border: 1px solid rgba(44,74,62,0.06);
}

.ftb-contact-form-card__title {
  font-family: var(--ftb-serif);
  font-size: 1.5rem;
  font-weight: 600;
  font-style: italic;
  color: var(--ftb-forest);
  margin: 0 0 8px;
}

.ftb-contact-form-card__subtitle {
  font-family: var(--ftb-sans);
  font-size: 0.875rem;
  font-weight: 300;
  color: var(--ftb-mid);
  margin: 0 0 22px;
  line-height: 1.6;
}

/* --- CF7 Form Styles --- */
.ftb-cf7-form {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.ftb-cf7-row {
  display: flex;
  gap: 16px;
}

.ftb-cf7-row--2col > .ftb-cf7-field {
  flex: 1;
}

.ftb-cf7-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.ftb-cf7-field label {
  font-family: var(--ftb-sans);
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--ftb-charcoal);
}

.ftb-cf7-field label abbr {
  color: var(--ftb-gold);
  text-decoration: none;
  font-weight: 600;
}

/* Inputs + Textarea */
.ftb-cf7-form input[type="text"],
.ftb-cf7-form input[type="email"],
.ftb-cf7-form textarea {
  font-family: var(--ftb-sans);
  font-size: 0.875rem;
  font-weight: 300;
  color: var(--ftb-charcoal);
  background: var(--ftb-warm-white);
  border: 1.5px solid var(--ftb-border);
  border-radius: 10px;
  padding: 12px 16px;
  outline: none;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
  width: 100%;
  box-sizing: border-box;
}

.ftb-cf7-form input[type="text"]:focus,
.ftb-cf7-form input[type="email"]:focus,
.ftb-cf7-form textarea:focus {
  border-color: var(--ftb-forest);
  box-shadow: 0 0 0 3px rgba(45,74,62,0.08);
  background: #fff;
}

.ftb-cf7-form input[type="text"]::placeholder,
.ftb-cf7-form input[type="email"]::placeholder,
.ftb-cf7-form textarea::placeholder {
  color: var(--ftb-mid);
  opacity: 0.6;
}

.ftb-cf7-form textarea {
  min-height: 130px;
  resize: vertical;
}

/* Quiz anti-spam */
.ftb-cf7-field--quiz label {
  font-size: 0.75rem;
  color: var(--ftb-mid);
}

.ftb-cf7-field--quiz .wpcf7-quiz-label {
  font-family: var(--ftb-sans);
  font-size: 0.8125rem;
  font-weight: 400;
  color: var(--ftb-charcoal);
  display: block;
  margin-bottom: 6px;
}

.ftb-cf7-field--quiz input[type="text"] {
  max-width: 160px;
}

/* RGPD checkbox */
.ftb-cf7-field--rgpd {
  justify-content: flex-end;
}

.ftb-cf7-field--rgpd .wpcf7-list-item {
  margin: 0;
}

.ftb-cf7-field--rgpd .wpcf7-list-item label {
  font-family: var(--ftb-sans);
  font-size: 0.75rem;
  font-weight: 300;
  color: var(--ftb-mid);
  display: flex;
  align-items: flex-start;
  gap: 8px;
  cursor: pointer;
  line-height: 1.5;
}

.ftb-cf7-field--rgpd input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;
  width: 18px;
  height: 18px;
  border: 1.5px solid var(--ftb-border);
  border-radius: 4px;
  background: var(--ftb-warm-white);
  flex-shrink: 0;
  margin-top: 1px;
  cursor: pointer;
  transition: border-color 0.2s, background 0.2s;
  position: relative;
}

.ftb-cf7-field--rgpd input[type="checkbox"]:checked {
  background: var(--ftb-forest);
  border-color: var(--ftb-forest);
}

.ftb-cf7-field--rgpd input[type="checkbox"]:checked::after {
  content: '';
  position: absolute;
  top: 2px;
  left: 5px;
  width: 5px;
  height: 9px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}

/* Ligne bas (quiz + RGPD) */
.ftb-cf7-row--bottom {
  align-items: flex-end;
}

/* Bouton submit */
.ftb-cf7-submit {
  margin-top: 8px;
}

.ftb-cf7-submit input[type="submit"],
.ftb-cf7-form .ftb-btn.ftb-btn--gold {
  display: block;
  width: 100%;
  font-family: var(--ftb-sans);
  font-size: 0.875rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #fff;
  background: var(--ftb-gold);
  border: none;
  border-radius: 10px;
  padding: 16px 32px;
  cursor: pointer;
  transition: background 0.2s ease, box-shadow 0.2s ease, transform 0.15s ease;
}

.ftb-cf7-submit input[type="submit"]:hover,
.ftb-cf7-form .ftb-btn.ftb-btn--gold:hover {
  background: var(--ftb-forest);
  box-shadow: 0 6px 20px rgba(44,74,62,0.18);
  transform: translateY(-1px);
}

/* CF7 validation messages */
.wpcf7 form .wpcf7-response-output {
  font-family: var(--ftb-sans);
  font-size: 0.8125rem;
  border-radius: 10px;
  padding: 14px 20px;
  margin: 16px 0 0;
}

.wpcf7 form.sent .wpcf7-response-output {
  border-color: var(--ftb-forest);
  background: rgba(45,74,62,0.06);
  color: var(--ftb-forest);
}

.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output {
  border-color: var(--ftb-error);
  background: rgba(192,57,43,0.06);
  color: var(--ftb-error);
}

.wpcf7-not-valid-tip {
  font-family: var(--ftb-sans);
  font-size: 0.75rem;
  color: var(--ftb-error);
  margin-top: 4px;
}

/* Spinner CF7 */
.wpcf7-spinner {
  margin: 8px auto 0;
  display: block;
}

/* --- Responsive --- */
@media (max-width: 899px) {
  .ftb-contact-layout {
    flex-direction: column;
    gap: 28px;
    padding: 32px 16px 44px;
  }
  .ftb-contact-sidebar {
    flex: none;
    width: 100%;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 12px;
  }
  .ftb-contact-card {
    flex: 1 1 calc(50% - 8px);
    min-width: 160px;
  }
  .ftb-contact-faq {
    flex-basis: 100%;
    margin-top: 4px;
  }
  .ftb-contact-form-card { padding: 28px 22px 24px; }
}

@media (max-width: 600px) {
  .ftb-contact-hero { padding: 40px 16px 32px; }
  .ftb-contact-hero__title { font-size: clamp(1.5rem, 5vw, 1.9rem); margin-bottom: 10px; }
  .ftb-contact-hero__subtitle { font-size: 0.875rem; }
  .ftb-contact-layout { padding: 24px 14px 36px; gap: 20px; }
  .ftb-contact-sidebar { flex-direction: column; gap: 10px; }
  .ftb-contact-card { flex: none; width: 100%; }
  .ftb-contact-card__icon { width: 36px; height: 36px; border-radius: 10px; }
  .ftb-cf7-row--2col { flex-direction: column; gap: 14px; }
  .ftb-cf7-row--bottom { flex-direction: column; gap: 12px; }
  .ftb-cf7-field--quiz input[type="text"] { max-width: 100%; }
  .ftb-contact-form-card { padding: 22px 16px 20px; border-radius: 14px; }
  .ftb-contact-form-card__title { font-size: 1.2rem; }
  .ftb-contact-form-card__subtitle { margin-bottom: 16px; font-size: 0.8125rem; }
  .ftb-cf7-form { gap: 12px; }
  .ftb-contact-faq__title { font-size: 1rem; }
}

/* ============================================================
   MON COMPTE — Page My Account FTB
   Dashboard hero + cards, navigation, login/register,
   formulaires, tables commandes, responsive
   ============================================================ */

/* --- Layout general 2 colonnes (override parent) --- */
@media (min-width: 993px) {
  .woocommerce-account .woocommerce-MyAccount-navigation {
    float: left;
    width: 220px;
    margin-right: 40px;
  }
  .woocommerce-account .woocommerce-MyAccount-content {
    float: right;
    width: calc(100% - 260px);
    padding-top: 0;
  }
}

/* --- Navigation sidebar FTB --- */
.ftb-account-nav ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
.ftb-account-nav ul li {
  border-bottom: 1px solid var(--ftb-border);
}
.ftb-account-nav ul li:last-child {
  border-bottom: none;
}
.ftb-account-nav ul li a {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 13px 14px;
  color: var(--ftb-mid);
  font-family: var(--ftb-sans);
  font-size: 0.9rem;
  font-weight: 400;
  text-decoration: none;
  border-radius: 8px;
  transition: all 0.2s ease;
}
/* Desactiver les icones mask-image du parent Shoptimizer */
.ftb-account-nav ul li a:before {
  display: none !important;
  content: none !important;
}
.ftb-account-nav ul li a:hover {
  color: var(--ftb-forest);
  background: rgba(45, 74, 62, 0.05);
}
.ftb-account-nav ul li.is-active a {
  color: var(--ftb-forest);
  background: rgba(45, 74, 62, 0.08);
  font-weight: 600;
}
.ftb-account-nav__icon {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  color: inherit;
  opacity: 0.6;
}
.ftb-account-nav ul li.is-active .ftb-account-nav__icon,
.ftb-account-nav ul li a:hover .ftb-account-nav__icon {
  opacity: 1;
}
.ftb-account-nav__label {
  flex: 1;
}
/* Logout = style discret */
.ftb-account-nav .woocommerce-MyAccount-navigation-link--customer-logout a {
  color: var(--ftb-blush-deep);
  font-size: 0.85rem;
  margin-top: 8px;
  border-top: 1px solid var(--ftb-border);
  padding-top: 16px;
}
.ftb-account-nav .woocommerce-MyAccount-navigation-link--customer-logout a:hover {
  color: var(--ftb-error);
  background: rgba(192, 57, 43, 0.05);
}

/* --- Dashboard Hero --- */
.ftb-dashboard-hero {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 28px 32px;
  background: linear-gradient(135deg, var(--ftb-dark) 0%, var(--ftb-dark-warm) 100%);
  border-radius: 16px;
  margin-bottom: 28px;
  color: #fff;
}
.ftb-dashboard-hero__avatar {
  flex-shrink: 0;
}
.ftb-dashboard-hero__avatar img {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  border: 3px solid rgba(255, 255, 255, 0.3);
  object-fit: cover;
}
.ftb-dashboard-hero__greeting {
  font-family: var(--ftb-serif);
  font-size: 1.5rem;
  font-weight: 600;
  font-style: italic;
  margin: 0 0 4px;
  color: #fff;
}
.ftb-dashboard-hero__subtitle {
  font-family: var(--ftb-sans);
  font-size: 0.9rem;
  margin: 0;
  opacity: 0.85;
  color: #fff;
}
.ftb-dashboard-hero__subtitle strong {
  color: var(--ftb-gold-light);
}

/* --- Dashboard Grille de raccourcis --- */
.ftb-dashboard-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
}
.ftb-dashboard-card {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 20px 22px;
  background: #fff;
  border: 1px solid var(--ftb-border);
  border-radius: 12px;
  text-decoration: none;
  color: var(--ftb-charcoal);
  transition: all 0.25s ease;
}
.ftb-dashboard-card:hover {
  border-color: var(--ftb-forest);
  box-shadow: 0 4px 16px rgba(45, 74, 62, 0.1);
  transform: translateY(-2px);
}
.ftb-dashboard-card__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  flex-shrink: 0;
  background: var(--ftb-cream);
  border-radius: 12px;
  color: var(--ftb-forest);
}
.ftb-dashboard-card:hover .ftb-dashboard-card__icon {
  background: var(--ftb-forest);
  color: #fff;
}
.ftb-dashboard-card__body {
  flex: 1;
  min-width: 0;
}
.ftb-dashboard-card__body h3 {
  font-family: var(--ftb-sans);
  font-size: 0.95rem;
  font-weight: 600;
  margin: 0 0 2px;
  color: var(--ftb-charcoal);
}
.ftb-dashboard-card__body p {
  font-family: var(--ftb-sans);
  font-size: 0.8rem;
  color: var(--ftb-mid);
  margin: 0;
}
.ftb-dashboard-card__arrow {
  font-size: 1.1rem;
  color: var(--ftb-mid);
  transition: color 0.2s, transform 0.2s;
}
.ftb-dashboard-card:hover .ftb-dashboard-card__arrow {
  color: var(--ftb-forest);
  transform: translateX(3px);
}
/* Card CTA (continuer shopping) */
.ftb-dashboard-card--cta {
  border-color: var(--ftb-gold);
  background: linear-gradient(135deg, #FFFCF7 0%, #FAF6EF 100%);
}
.ftb-dashboard-card--cta .ftb-dashboard-card__icon {
  background: var(--ftb-gold);
  color: #fff;
}
.ftb-dashboard-card--cta:hover {
  border-color: var(--ftb-gold);
  box-shadow: 0 4px 16px rgba(196, 150, 74, 0.15);
}
.ftb-dashboard-card--cta:hover .ftb-dashboard-card__icon {
  background: var(--ftb-forest);
}

/* --- Login / Register page --- */
.ftb-login-wrapper {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 520px;
  border-radius: 20px;
  overflow: hidden;
  border: 1px solid var(--ftb-border);
  margin-bottom: 2rem;
}

/* Hero panel gauche */
.ftb-login-hero {
  background: linear-gradient(160deg, var(--ftb-dark) 0%, var(--ftb-dark-warm) 100%);
  padding: 48px 40px;
  display: flex;
  align-items: center;
  color: #fff;
}
.ftb-login-hero__title {
  font-family: var(--ftb-serif);
  font-size: 2rem;
  font-weight: 600;
  line-height: 1.25;
  margin: 0 0 16px;
  color: #fff;
}
.ftb-login-hero__title em {
  color: var(--ftb-gold-light);
}
.ftb-login-hero__text {
  font-family: var(--ftb-sans);
  font-size: 0.95rem;
  line-height: 1.6;
  opacity: 0.85;
  margin: 0 0 28px;
}
.ftb-login-hero__perks {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.ftb-login-hero__perk {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: var(--ftb-sans);
  font-size: 0.85rem;
  opacity: 0.8;
}
.ftb-login-hero__perk svg {
  flex-shrink: 0;
  color: var(--ftb-gold-light);
}

/* Formulaires cote droit */
.ftb-login-forms {
  background: #fff;
  padding: 40px 36px;
  display: flex;
  flex-direction: column;
}

/* Onglets connexion / inscription */
.ftb-login-tabs {
  display: flex;
  gap: 0;
  margin-bottom: 28px;
  border-bottom: 2px solid var(--ftb-border);
}
.ftb-login-tab {
  flex: 1;
  padding: 12px 0;
  font-family: var(--ftb-sans);
  font-size: 0.9rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  color: var(--ftb-mid);
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
  cursor: pointer;
  transition: all 0.2s;
  text-align: center;
}
.ftb-login-tab:hover {
  color: var(--ftb-forest);
}
.ftb-login-tab--active {
  color: var(--ftb-forest);
  font-weight: 600;
  border-bottom-color: var(--ftb-forest);
}

/* Panels (afficher/masquer) */
.ftb-login-panel {
  display: none;
}
.ftb-login-panel--active {
  display: block;
}

/* Style des formulaires Mon Compte */
.ftb-login-forms .form-row label,
.woocommerce-account .woocommerce-MyAccount-content label {
  font-family: var(--ftb-sans);
  font-size: 0.85rem;
  font-weight: 500;
  color: var(--ftb-charcoal);
  margin-bottom: 6px;
  display: block;
}
.ftb-login-forms .input-text,
.woocommerce-account .woocommerce-MyAccount-content .input-text {
  font-family: var(--ftb-sans);
  font-size: 0.9rem;
  padding: 11px 14px;
  border: 1px solid rgba(44, 74, 62, 0.2);
  border-radius: 8px;
  background: var(--ftb-cream);
  color: var(--ftb-charcoal);
  transition: border-color 0.2s, box-shadow 0.2s;
  width: 100%;
}
.ftb-login-forms .input-text:focus,
.woocommerce-account .woocommerce-MyAccount-content .input-text:focus {
  border-color: var(--ftb-forest);
  box-shadow: 0 0 0 3px rgba(45, 74, 62, 0.1);
  outline: none;
  background: #fff;
}

/* Bouton principal login/register */
.ftb-login-forms .button,
.woocommerce-account .woocommerce-MyAccount-content .button {
  font-family: var(--ftb-sans);
  font-size: 0.9rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  padding: 13px 28px;
  background: var(--ftb-gold);
  border: none;
  border-radius: 8px;
  color: #fff;
  cursor: pointer;
  transition: background 0.2s;
  width: 100%;
}
.ftb-login-forms .button:hover,
.woocommerce-account .woocommerce-MyAccount-content .button:hover {
  background: var(--ftb-forest);
}

/* Actions login (checkbox + lost password) */
.ftb-login-actions {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.ftb-login-actions .woocommerce-form-login__rememberme {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 0.85rem;
  color: var(--ftb-mid);
}
.woocommerce-LostPassword {
  text-align: center;
  margin-top: 8px;
}
.woocommerce-LostPassword a {
  font-family: var(--ftb-sans);
  font-size: 0.85rem;
  color: var(--ftb-forest);
  text-decoration: underline;
  text-underline-offset: 2px;
}
/* Note inscription */
.ftb-register-note {
  font-family: var(--ftb-sans);
  font-size: 0.85rem;
  color: var(--ftb-mid);
  background: var(--ftb-cream);
  padding: 12px 16px;
  border-radius: 8px;
  border-left: 3px solid var(--ftb-gold);
}

/* --- Mon Compte : headings --- */
.woocommerce-account h2,
.woocommerce-account h3 {
  font-family: var(--ftb-serif);
  color: var(--ftb-forest);
}
.woocommerce-account h2 {
  font-size: 1.4rem;
  font-weight: 600;
  margin-bottom: 1rem;
}

/* --- Tables commandes --- */
.woocommerce-account .woocommerce-orders-table {
  border-collapse: collapse;
  width: 100%;
}
.woocommerce-account .woocommerce-orders-table th {
  font-family: var(--ftb-sans);
  font-size: 0.78rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--ftb-forest);
  padding: 10px 14px;
  border-bottom: 2px solid var(--ftb-forest);
  background: var(--ftb-cream);
}
.woocommerce-account .woocommerce-orders-table td {
  font-family: var(--ftb-sans);
  font-size: 0.875rem;
  padding: 12px 14px;
  border-bottom: 1px solid var(--ftb-border);
  color: var(--ftb-charcoal);
}
.woocommerce-account .woocommerce-orders-table tr:hover td {
  background: rgba(250, 246, 239, 0.5);
}
.woocommerce-account td.woocommerce-orders-table__cell-order-number a {
  color: var(--ftb-forest);
  font-weight: 600;
}
.woocommerce-account td.woocommerce-orders-table__cell-order-status {
  font-weight: 500;
}
.woocommerce-account tr.woocommerce-orders-table__row--status-completed td.woocommerce-orders-table__cell-order-status {
  color: var(--ftb-forest);
}
.woocommerce-account .my_account_orders .button,
.woocommerce-account .woocommerce-MyAccount-downloads .button {
  font-size: 0.75rem;
  padding: 6px 14px;
  background: transparent;
  border: 1px solid var(--ftb-forest);
  color: var(--ftb-forest);
  border-radius: 6px;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  width: auto;
}
.woocommerce-account .my_account_orders .button:hover,
.woocommerce-account .woocommerce-MyAccount-downloads .button:hover {
  background: var(--ftb-forest);
  color: #fff;
}

/* --- Adresses --- */
.woocommerce-account .col2-set.addresses {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  float: none;
  width: 100%;
}
.woocommerce-account .col2-set.addresses .col-1,
.woocommerce-account .col2-set.addresses .col-2 {
  float: none;
  width: 100%;
  margin: 0;
}
.woocommerce-account .woocommerce-Address {
  padding: 20px 24px;
  background: var(--ftb-cream);
  border-radius: 12px;
  border: 1px solid var(--ftb-border);
}
.woocommerce-account .woocommerce-Address-title {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 12px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--ftb-border);
}
.woocommerce-account .woocommerce-Address-title h3 {
  font-size: 1rem;
  margin: 0;
}
.woocommerce-account .woocommerce-Address-title a {
  font-family: var(--ftb-sans);
  font-size: 0.8rem;
  color: var(--ftb-gold);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.woocommerce-account .woocommerce-Address address {
  font-family: var(--ftb-sans);
  font-size: 0.875rem;
  color: var(--ftb-charcoal);
  line-height: 1.7;
  font-style: normal;
}

/* --- Formulaire edit-account --- */
.woocommerce-account fieldset {
  border: none;
  padding: 0;
  margin: 24px 0 0;
}
.woocommerce-account fieldset legend {
  font-family: var(--ftb-serif);
  font-size: 1.1rem;
  color: var(--ftb-forest);
  font-weight: 600;
  padding-bottom: 10px;
  margin-bottom: 16px;
  border-bottom: 1px solid var(--ftb-border);
  width: 100%;
}

/* --- Detail commande individuelle --- */
.woocommerce-account .woocommerce-order-details {
  border: 1px solid var(--ftb-border);
  border-radius: 12px;
  padding: 24px 28px;
  margin-bottom: 2rem;
}
.woocommerce-account .woocommerce-order-details th,
.woocommerce-account .woocommerce-order-details td {
  font-family: var(--ftb-sans);
  border-bottom-color: var(--ftb-border);
}
.woocommerce-account .woocommerce-order-details tfoot tr:last-child th,
.woocommerce-account .woocommerce-order-details tfoot tr:last-child td {
  color: var(--ftb-forest);
  font-weight: 700;
}

/* --- Pagination --- */
.woocommerce-account .woocommerce-Pagination a {
  font-family: var(--ftb-sans);
  border-radius: 8px;
  border-color: var(--ftb-border);
  color: var(--ftb-charcoal);
}
.woocommerce-account .woocommerce-Pagination a:hover {
  border-color: var(--ftb-forest);
  color: var(--ftb-forest);
}

/* --- Notices WooCommerce --- */
.woocommerce-account .woocommerce-message,
.woocommerce-account .woocommerce-info {
  font-family: var(--ftb-sans);
  border-radius: 10px;
  border-top-color: var(--ftb-forest);
}

/* --- Password strength --- */
.woocommerce-account .woocommerce-password-strength.strong {
  color: var(--ftb-forest);
}

/* --- Formulaires Mon Compte — form-row layout (edit-account, form-edit-address) --- */
/* Remplace les floats WooCommerce par flexbox/grid */
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-form-row,
.woocommerce-account .woocommerce-MyAccount-content .form-row {
  margin-bottom: 16px;
}
/* 2 colonnes prénom/nom : --first + --last côte à côte */
.woocommerce-account .woocommerce-MyAccount-content p.form-row-first,
.woocommerce-account .woocommerce-MyAccount-content p.woocommerce-form-row--first {
  float: left;
  width: 47%;
  margin-right: 6%;
  clear: left;
}
.woocommerce-account .woocommerce-MyAccount-content p.form-row-last,
.woocommerce-account .woocommerce-MyAccount-content p.woocommerce-form-row--last {
  float: right;
  width: 47%;
  margin-right: 0;
}
.woocommerce-account .woocommerce-MyAccount-content p.form-row-wide,
.woocommerce-account .woocommerce-MyAccount-content p.woocommerce-form-row--wide {
  clear: both;
  float: none;
  width: 100%;
}
/* Clearfix après les paires first/last */
.woocommerce-account .woocommerce-MyAccount-content .clear {
  clear: both;
  display: block;
  height: 0;
}
/* Champ adresse : wrapper */
.woocommerce-account .woocommerce-address-fields {
  margin-top: 8px;
}
.woocommerce-account .woocommerce-address-fields__field-wrapper::after {
  content: '';
  display: table;
  clear: both;
}

/* --- Select + Textarea dans Mon Compte --- */
.woocommerce-account .woocommerce-MyAccount-content select,
.ftb-login-forms select {
  font-family: var(--ftb-sans);
  font-size: 0.9rem;
  padding: 11px 14px;
  border: 1px solid rgba(44, 74, 62, 0.2);
  border-radius: 8px;
  background: var(--ftb-cream);
  color: var(--ftb-charcoal);
  width: 100%;
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='1.5' stroke='%236B6560'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M19.5 8.25l-7.5 7.5-7.5-7.5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  background-size: 16px;
  cursor: pointer;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.woocommerce-account .woocommerce-MyAccount-content select:focus {
  border-color: var(--ftb-forest);
  box-shadow: 0 0 0 3px rgba(45, 74, 62, 0.1);
  outline: none;
  background-color: #fff;
}
.woocommerce-account .woocommerce-MyAccount-content textarea {
  font-family: var(--ftb-sans);
  font-size: 0.9rem;
  padding: 11px 14px;
  border: 1px solid rgba(44, 74, 62, 0.2);
  border-radius: 8px;
  background: var(--ftb-cream);
  color: var(--ftb-charcoal);
  width: 100%;
  min-height: 100px;
  resize: vertical;
  transition: border-color 0.2s;
}
.woocommerce-account .woocommerce-MyAccount-content textarea:focus {
  border-color: var(--ftb-forest);
  box-shadow: 0 0 0 3px rgba(45, 74, 62, 0.1);
  outline: none;
  background: #fff;
}

/* --- woocommerce-Input class variants --- */
.woocommerce-account .woocommerce-Input--password {
  font-family: var(--ftb-sans);
  font-size: 0.9rem;
}

/* --- Vue commande individuelle (view-order) — Order Updates --- */
.woocommerce-account .woocommerce-OrderUpdates {
  margin-top: 24px;
}
.woocommerce-account .woocommerce-OrderUpdates h2 {
  font-size: 1.1rem;
  margin-bottom: 16px;
}
.woocommerce-account .woocommerce-OrderUpdate,
.woocommerce-account ol.commentlist.notes li {
  display: flex;
  gap: 12px;
  padding: 14px 18px;
  background: var(--ftb-cream);
  border-radius: 10px;
  border-left: 3px solid var(--ftb-border);
  margin-bottom: 12px;
  list-style: none;
}
.woocommerce-account ol.commentlist.notes {
  padding: 0;
  margin: 0;
}
.woocommerce-account .woocommerce-OrderUpdate-meta,
.woocommerce-account .comment_container .meta {
  font-family: var(--ftb-sans);
  font-size: 0.78rem;
  color: var(--ftb-mid);
  margin-bottom: 4px;
}
.woocommerce-account .woocommerce-OrderUpdate-description p,
.woocommerce-account .comment_container p {
  font-family: var(--ftb-sans);
  font-size: 0.875rem;
  color: var(--ftb-charcoal);
  margin: 0;
}
/* Note client (customer) vs interne */
.woocommerce-account ol.commentlist.notes li.customer-note {
  border-left-color: var(--ftb-gold);
  background: #FFFCF7;
}
/* Marques <mark> dans view-order */
.woocommerce-account .woocommerce-MyAccount-content mark {
  background: var(--ftb-blush);
  color: var(--ftb-forest);
  padding: 2px 6px;
  border-radius: 4px;
  font-weight: 600;
  font-style: normal;
}

/* --- Edit account : submit button non full-width --- */
.woocommerce-account .woocommerce-EditAccountForm > p:last-of-type .button,
.woocommerce-account .woocommerce-address-fields > p.form-row .button {
  width: auto;
  display: inline-block;
}

/* --- Mobile : form-row first/last en colonne --- */
@media (max-width: 600px) {
  .woocommerce-account .woocommerce-MyAccount-content p.form-row-first,
  .woocommerce-account .woocommerce-MyAccount-content p.woocommerce-form-row--first,
  .woocommerce-account .woocommerce-MyAccount-content p.form-row-last,
  .woocommerce-account .woocommerce-MyAccount-content p.woocommerce-form-row--last {
    float: none;
    width: 100%;
    margin-right: 0;
  }
}

/* ============================================================
   MON COMPTE — Responsive
   ============================================================ */

@media (max-width: 992px) {
  .woocommerce-account .woocommerce-MyAccount-navigation {
    margin-bottom: 24px;
  }
  .ftb-account-nav ul {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
  }
  .ftb-account-nav ul li {
    border-bottom: none;
  }
  .ftb-account-nav ul li a {
    padding: 8px 14px;
    font-size: 0.8rem;
    border: 1px solid var(--ftb-border);
    border-radius: 20px;
    white-space: nowrap;
  }
  .ftb-account-nav ul li.is-active a {
    background: var(--ftb-forest);
    color: #fff;
    border-color: var(--ftb-forest);
  }
  .ftb-account-nav .woocommerce-MyAccount-navigation-link--customer-logout a {
    margin-top: 0;
    border-top: none;
    padding-top: 8px;
  }
  .ftb-dashboard-grid {
    grid-template-columns: 1fr;
  }
  /* Login page */
  .ftb-login-wrapper {
    grid-template-columns: 1fr;
    min-height: auto;
    border-radius: 16px;
  }
  .ftb-login-hero {
    padding: 32px 28px;
  }
  .ftb-login-hero__title {
    font-size: 1.6rem;
  }
  .ftb-login-forms {
    padding: 28px 24px;
  }
  /* Adresses */
  .woocommerce-account .col2-set.addresses {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 600px) {
  .ftb-dashboard-hero {
    flex-direction: column;
    text-align: center;
    padding: 24px 20px;
  }
  .ftb-dashboard-hero__greeting {
    font-size: 1.25rem;
  }
  .ftb-login-hero {
    padding: 28px 20px;
  }
  .ftb-login-hero__title {
    font-size: 1.35rem;
  }
  .ftb-login-forms {
    padding: 24px 20px;
  }
  .ftb-dashboard-card {
    padding: 16px 18px;
  }
  .ftb-account-nav__icon {
    display: none;
  }
}


/* ==========================================================================
   Page Nouveautés cosmétiques Bio — template-nouveautes.php + ftb-carousel.js
   ========================================================================== */

/* ---------- Hero --------------------------------------------------------- */
.ftb-nouveautes-hero {
  position: relative;
  overflow: hidden;
  background: linear-gradient(135deg, var(--ftb-forest) 0%, var(--ftb-forest-deep) 100%);
  padding: 44px 24px 36px;
  text-align: center;
  color: #fff;
}
.ftb-nouveautes-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 30% 40%, rgba(209,122,77,.15) 0%, transparent 60%),
              radial-gradient(ellipse at 75% 60%, rgba(209,122,77,.08) 0%, transparent 50%);
  pointer-events: none;
}
.ftb-nouveautes-hero__inner {
  position: relative;
  z-index: 1;
  max-width: 720px;
  margin: 0 auto;
}
.ftb-nouveautes-hero__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(209,122,77,.18);
  border: 1px solid rgba(209,122,77,.4);
  border-radius: var(--ftb-radius-pill);
  padding: 6px 18px;
  font-family: var(--ftb-sans);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--ftb-peach-light);
  margin-bottom: 20px;
}
.ftb-nouveautes-hero__title {
  font-family: var(--ftb-serif);
  font-size: clamp(1.75rem, 5vw, 2.9rem);
  font-weight: 400;
  font-style: italic;
  color: #fff;
  letter-spacing: -0.02em;
  margin: 0 0 20px;
  line-height: 1.2;
}
.ftb-nouveautes-hero__desc {
  font-family: var(--ftb-sans);
  font-size: 1rem;
  font-weight: 300;
  line-height: 1.75;
  color: rgba(255,255,255,.82);
  margin: 0;
  max-width: 560px;
  margin-left: auto;
  margin-right: auto;
}

/* Accordion mobile — fond sombre */
@media (max-width: 640px) {
  .ftb-nouveautes-hero__desc.is-accordion {
    position: relative;
    overflow: hidden;
    max-height: 5.25em;
    transition: max-height 0.35s ease;
  }
  .ftb-nouveautes-hero__desc.is-accordion::after {
    content: '';
    position: absolute;
    bottom: 0; left: 0; right: 0;
    height: 2.5em;
    background: linear-gradient(transparent, var(--ftb-dark));
    pointer-events: none;
    transition: opacity 0.3s;
  }
  .ftb-nouveautes-hero__desc.is-accordion.is-open {
    max-height: 2000px;
  }
  .ftb-nouveautes-hero__desc.is-accordion.is-open::after {
    opacity: 0;
  }
  .ftb-nouveautes-toggle {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin-top: 10px;
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    font-family: var(--ftb-sans);
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--ftb-peach-light);
    text-decoration: underline;
    text-underline-offset: 3px;
  }
}
@media (min-width: 641px) {
  .ftb-nouveautes-toggle { display: none; }
}

/* ---------- Content wrapper ---------------------------------------------- */
.ftb-nouveautes-content {
  max-width: 1440px;
  margin: 0 auto;
  padding: 56px 24px 80px;
}

/* ---------- Section par catégorie ---------------------------------------- */
.ftb-nouveautes-section {
  margin-bottom: 72px;
}
.ftb-nouveautes-section:last-child {
  margin-bottom: 0;
}
.ftb-nouveautes-section__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 24px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--ftb-border);
}
.ftb-nouveautes-section__title {
  font-family: var(--ftb-serif);
  font-size: 26px;
  font-weight: 400;
  color: var(--ftb-forest);
  margin: 0;
  flex: 1;
}
.ftb-nouveautes-section__actions {
  display: flex;
  align-items: center;
  gap: 20px;
}
.ftb-nouveautes-section__link {
  font-family: var(--ftb-sans);
  font-size: 13px;
  font-weight: 500;
  color: var(--ftb-gold);
  text-decoration: none;
  white-space: nowrap;
  transition: color .2s;
}
.ftb-nouveautes-section__link:hover {
  color: var(--ftb-forest);
}

/* ---------- Carousel container ------------------------------------------- */
.ftb-carousel {
  position: relative;
}

/* Viewport : clip le track horizontal, padding vertical = espace box-shadows */
.ftb-carousel__viewport {
  overflow: hidden;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  padding: 6px 2px 20px;
  margin: -6px -2px -20px;
}

/* Track : flex horizontal, transition CSS */
.ftb-carousel__track.products {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 24px !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  min-width: 100%; /* garantit que le track remplit le viewport même avec 1 seul item */
  transition: transform 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  will-change: transform;
  cursor: grab;
}
.ftb-carousel__track.products:active {
  cursor: grabbing;
}

/* Items : largeur finale posée inline par le JS, fallback CSS si JS lent/échoue */
.ftb-carousel__track.products > li.product {
  flex-shrink: 0 !important;
  flex-grow: 0 !important;
  width: calc((100% - 72px) / 4); /* fallback 4 cols — écrasé par style inline JS */
}
@media (max-width: 1099px) {
  .ftb-carousel__track.products > li.product { width: calc((100% - 48px) / 3); }
}
@media (max-width: 859px) {
  .ftb-carousel__track.products > li.product { width: calc((100% - 24px) / 2); }
}
@media (max-width: 539px) {
  .ftb-carousel__track.products > li.product { width: 100%; }
}

/* Items non visibles : clippés par overflow-hidden du viewport, pas besoin de fade */

/* ---------- Flèches ------------------------------------------------------- */
.ftb-carousel__arrow {
  position: absolute;
  top: 50%;
  transform: translateY(calc(-50% - 10px)); /* -10px = compense le padding viewport */
  z-index: 10;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: none;
  background: var(--ftb-forest);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 4px 16px rgba(44,74,62,.28);
  transition: background .22s, transform .22s, box-shadow .22s, opacity .22s;
  opacity: 1;
  pointer-events: auto;
}
.ftb-carousel__arrow:hover {
  background: var(--ftb-gold);
  box-shadow: 0 6px 20px rgba(196,150,74,.38);
  transform: translateY(calc(-50% - 10px)) scale(1.08);
}
.ftb-carousel__arrow:focus-visible {
  outline: 2px solid var(--ftb-gold);
  outline-offset: 2px;
}
.ftb-carousel__arrow--prev {
  left: -22px;
}
.ftb-carousel__arrow--next {
  right: -22px;
}
.ftb-carousel__arrow.is-disabled {
  opacity: 0 !important;
  pointer-events: none !important;
}

/* ---------- Barre de progression ----------------------------------------- */
.ftb-carousel__progress {
  position: relative;
  height: 3px;
  background: rgba(44,74,62,.12);
  border-radius: 2px;
  margin-top: 28px;
  overflow: hidden;
}
.ftb-carousel__progress-fill {
  position: absolute;
  inset: 0 auto 0 0;
  background: linear-gradient(90deg, var(--ftb-forest), var(--ftb-gold));
  border-radius: 2px;
  transition: width .5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  width: 0%;
}

/* ---------- Compteur "2 / 5" --------------------------------------------- */
.ftb-carousel__counter {
  font-family: var(--ftb-sans);
  font-size: 12px;
  font-weight: 500;
  color: var(--ftb-mid);
  letter-spacing: .04em;
  min-width: 36px;
  text-align: right;
}

/* ---------- Message aucune commande (orders.php) -------------------------- */
.ftb-orders-empty {
  padding: 32px 24px;
  background: var(--ftb-cream);
  border-left: 3px solid var(--ftb-forest);
  border-radius: 4px;
  font-family: var(--ftb-sans);
  color: var(--ftb-charcoal);
}

/* ---------- Responsive ---------------------------------------------------- */
@media (max-width: 768px) {
  .ftb-nouveautes-hero {
    padding: 28px 20px 22px;
  }
  .ftb-nouveautes-content {
    padding: 40px 16px 60px;
  }
  .ftb-nouveautes-section__title {
    font-size: 20px;
  }
  .ftb-carousel__arrow--prev { left: -8px; }
  .ftb-carousel__arrow--next { right: -8px; }
  /* Flèches toujours visibles sur mobile */
  .ftb-carousel__arrow {
    opacity: 1;
    pointer-events: auto;
    width: 36px;
    height: 36px;
  }
  .ftb-carousel__track.products {
    gap: 16px !important;
  }
}
@media (max-width: 540px) {
  .ftb-nouveautes-section__header {
    flex-wrap: wrap;
  }
}

/* ══════════════════════════════════════════════════════════
   SINGLE POST — article blog (Fais Ta Belle)
   single.php → UX lecture améliorée
══════════════════════════════════════════════════════════ */

/* Override container parent pour article pleine largeur */
body.single-post #primary.content-area,
body.single-post #main {
	max-width: none;
	width: 100%;
	margin: 0;
	padding: 0;
	float: none;
}
body.single-post #secondary.widget-area { display: none; }
body.single-post .site-content .col-full {
	max-width: none;
	padding: 0;
}

.ftb-article {
	font-family: var(--ftb-sans, 'Jost', sans-serif);
	color: var(--ftb-charcoal, var(--ftb-dark));
	background: var(--ftb-cream, #FAF6EF);
	overflow-x: hidden;
}

/* Progress bar */
.ftb-article__progress {
	position: fixed; top: 0; left: 0; right: 0;
	height: 3px;
	background: rgba(44, 74, 62, 0.08);
	z-index: 999;
	pointer-events: none;
}
.ftb-article__progress span {
	display: block; height: 100%; width: 0%;
	background: linear-gradient(90deg, var(--ftb-gold, #C4964A), var(--ftb-gold-light, #E8BF7A));
	transition: width .08s linear;
}

/* HERO */
.ftb-article__hero {
	background: var(--ftb-warm-white, #FFFCF7);
	padding: 64px 24px 44px;
	border-bottom: 1px solid rgba(44, 74, 62, 0.06);
}
.ftb-article__hero-inner {
	max-width: 820px; margin: 0 auto;
	text-align: center;
}
.ftb-article__crumbs {
	display: flex; flex-wrap: wrap; gap: 8px; justify-content: center;
	font-size: .78rem; color: var(--ftb-mid, #6B6560);
	letter-spacing: .04em; margin-bottom: 26px;
}
.ftb-article__crumbs a,
.ftb-article__crumbs .ftb-obf-b64 {
	color: var(--ftb-forest, #2D4A3E);
	text-decoration: none;
	cursor: pointer;
	transition: color .2s;
}
.ftb-article__crumbs a:hover,
.ftb-article__crumbs .ftb-obf-b64:hover { color: var(--ftb-gold, #C4964A); }
.ftb-article__crumbs span[aria-hidden="true"] { opacity: .5; }

.ftb-article__cat-pill {
	display: inline-block;
	background: rgba(196, 150, 74, 0.12);
	color: var(--ftb-gold, #C4964A);
	border: 1px solid rgba(196, 150, 74, 0.3);
	padding: 5px 16px;
	border-radius: 50px;
	font-size: .72rem; font-weight: 700;
	letter-spacing: .22em; text-transform: uppercase;
	margin-bottom: 22px;
}

.ftb-article__title {
	font-family: var(--ftb-serif, 'Fraunces', Georgia, serif);
	font-size: clamp(1.9rem, 4.4vw, 3rem);
	font-weight: 600;
	color: var(--ftb-forest, #2D4A3E);
	line-height: 1.16;
	margin: 0 0 18px;
}
.ftb-article__subtitle {
	font-size: 1.08rem; line-height: 1.7;
	color: var(--ftb-mid, #6B6560);
	max-width: 680px; margin: 0 auto 24px;
}

.ftb-article__meta {
	display: flex; flex-wrap: wrap; gap: 12px 20px;
	justify-content: center; align-items: center;
	margin-top: 28px;
	color: var(--ftb-mid, #6B6560);
	font-size: .86rem;
}
.ftb-article__meta-label {
	font-size: .7rem; letter-spacing: .12em;
	text-transform: uppercase; opacity: .7;
	display: block;
}
.ftb-article__meta-author {
	display: flex; align-items: center; gap: 10px;
}
.ftb-article__meta-author-img,
.ftb-article__author-avatar-img {
	width: 40px; height: 40px;
	border-radius: 50%;
	object-fit: cover;
	border: 2px solid rgba(196, 150, 74, 0.3);
}
.ftb-article__meta-author-txt { text-align: left; }
.ftb-article__meta-author-name {
	font-weight: 600; color: var(--ftb-forest, #2D4A3E);
}
.ftb-article__meta-block {
	display: flex; align-items: center; gap: 8px;
	text-align: left;
}
.ftb-article__meta-block time { font-weight: 500; color: var(--ftb-charcoal, var(--ftb-dark)); }
.ftb-article__meta-block svg { color: var(--ftb-gold, #C4964A); flex-shrink: 0; }
.ftb-article__meta-dot {
	width: 3px; height: 3px; border-radius: 50%;
	background: rgba(44, 74, 62, 0.3);
}

/* Featured image */
.ftb-article__featured {
	max-width: 1180px;
	margin: -24px auto 0;
	padding: 0 24px;
	position: relative; z-index: 1;
}
.ftb-article__featured-img {
	width: 100%;
	max-height: 520px;
	object-fit: cover;
	border-radius: 20px;
	box-shadow: 0 24px 60px rgba(44, 74, 62, 0.12);
	display: block;
}

/* BODY : sidebar + contenu */
.ftb-article__body {
	background: var(--ftb-cream, #FAF6EF);
	padding: 72px 24px 40px;
}
.ftb-article__body-inner {
	max-width: 1180px; margin: 0 auto;
	display: grid;
	grid-template-columns: 260px 1fr;
	gap: 56px;
	align-items: start;
}

/* Sommaire sticky */
.ftb-article__toc { position: sticky; top: 100px; }
.ftb-article__toc-card {
	background: #fff;
	border-radius: 16px;
	padding: 22px 20px;
	border: 1px solid rgba(44, 74, 62, 0.08);
	box-shadow: 0 2px 16px rgba(44, 74, 62, 0.04);
}
.ftb-article__toc-label {
	font-size: .7rem; font-weight: 700;
	letter-spacing: .22em; text-transform: uppercase;
	color: var(--ftb-gold, #C4964A);
	display: block;
	margin-bottom: 14px;
}
.ftb-article__toc-list {
	list-style: none; padding: 0; margin: 0;
	counter-reset: toc;
}
.ftb-article__toc-list li {
	counter-increment: toc;
	margin-bottom: 2px;
}
.ftb-article__toc-list a {
	display: flex;
	gap: 10px;
	align-items: baseline;
	padding: 9px 10px 9px 8px;
	border-radius: 8px;
	font-size: .88rem;
	line-height: 1.42;
	color: var(--ftb-charcoal, var(--ftb-dark));
	text-decoration: none;
	transition: background .18s, color .18s, transform .18s;
	position: relative;
}
.ftb-article__toc-list a::before {
	content: counter(toc, decimal-leading-zero);
	font-size: .68rem; font-weight: 700;
	color: var(--ftb-gold, #C4964A);
	letter-spacing: .05em;
	flex-shrink: 0;
	padding-top: 1px;
}
.ftb-article__toc-list a:hover {
	background: rgba(196, 150, 74, 0.08);
	color: var(--ftb-forest, #2D4A3E);
}
.ftb-article__toc-list a.is-active {
	background: var(--ftb-forest, #2D4A3E);
	color: var(--ftb-cream, #FAF6EF);
	font-weight: 500;
}
.ftb-article__toc-list a.is-active::before { color: var(--ftb-gold-light, #E8BF7A); }

.ftb-article__toc-share {
	margin-top: 22px;
	padding-top: 18px;
	border-top: 1px solid rgba(44, 74, 62, 0.08);
}
.ftb-article__toc-share-row {
	display: flex; gap: 8px; margin-top: 10px;
}
.ftb-article__share-btn {
	width: 38px; height: 38px;
	border-radius: 50%;
	display: inline-flex; align-items: center; justify-content: center;
	background: var(--ftb-cream, #FAF6EF);
	border: 1px solid rgba(44, 74, 62, 0.1);
	color: var(--ftb-forest, #2D4A3E);
	cursor: pointer;
	text-decoration: none;
	transition: background .2s, color .2s, transform .2s, border-color .2s;
	position: relative;
	padding: 0;
}
.ftb-article__share-btn:hover {
	background: var(--ftb-forest, #2D4A3E);
	color: var(--ftb-cream, #FAF6EF);
	border-color: var(--ftb-forest, #2D4A3E);
	transform: translateY(-2px);
}
.ftb-article__share-btn.is-copied {
	background: var(--ftb-gold, #C4964A);
	color: #fff;
	border-color: var(--ftb-gold, #C4964A);
}
.ftb-article__share-tip {
	position: absolute;
	bottom: calc(100% + 6px); left: 50%;
	transform: translateX(-50%);
	background: var(--ftb-charcoal, var(--ftb-dark));
	color: #fff;
	font-size: .72rem;
	padding: 4px 8px;
	border-radius: 5px;
	white-space: nowrap;
	pointer-events: none;
}

/* Contenu article — typographie lecture */
.ftb-article__content {
	max-width: 720px;
	font-size: 1.06rem;
	line-height: 1.78;
	color: var(--ftb-charcoal, var(--ftb-dark));
}
.ftb-article__content > * { max-width: 100%; }
.ftb-article__content p {
	margin: 0 0 22px;
	line-height: 1.78;
}
.ftb-article__content p:first-of-type:first-letter {
	font-family: var(--ftb-serif, 'Fraunces', Georgia, serif);
	font-size: 3.6rem;
	line-height: 1;
	float: left;
	margin: 6px 10px -4px 0;
	color: var(--ftb-gold, #C4964A);
	font-weight: 700;
}
.ftb-article__content h2 {
	font-family: var(--ftb-serif, 'Fraunces', Georgia, serif);
	font-size: clamp(1.5rem, 2.4vw, 1.95rem);
	font-weight: 600;
	color: var(--ftb-forest, #2D4A3E);
	line-height: 1.25;
	margin: 48px 0 18px;
	padding-top: 18px;
	scroll-margin-top: 90px;
	position: relative;
}
.ftb-article__content h2::before {
	content: '';
	position: absolute; top: 0; left: 0;
	width: 56px; height: 3px;
	background: var(--ftb-gold, #C4964A);
	border-radius: 2px;
}
.ftb-article__content h3 {
	font-family: var(--ftb-serif, 'Fraunces', Georgia, serif);
	font-size: 1.3rem;
	font-weight: 600;
	color: var(--ftb-forest, #2D4A3E);
	margin: 36px 0 14px;
	line-height: 1.3;
}
.ftb-article__content h4 {
	font-size: 1.08rem;
	font-weight: 600;
	color: var(--ftb-forest, #2D4A3E);
	margin: 28px 0 12px;
}
.ftb-article__content a {
	color: var(--ftb-gold, #C4964A);
	text-decoration: underline;
	text-underline-offset: 3px;
	text-decoration-thickness: 1px;
	transition: color .2s;
}
.ftb-article__content a:hover {
	color: var(--ftb-forest, #2D4A3E);
	text-decoration-thickness: 2px;
}
.ftb-article__content strong { color: var(--ftb-forest, #2D4A3E); font-weight: 600; }
.ftb-article__content em { font-style: italic; color: var(--ftb-mid, #6B6560); }
.ftb-article__content ul,
.ftb-article__content ol {
	margin: 0 0 24px;
	padding-left: 24px;
}
.ftb-article__content ul li,
.ftb-article__content ol li {
	margin-bottom: 8px;
	line-height: 1.72;
}
.ftb-article__content ul { list-style: none; padding-left: 0; }
.ftb-article__content ul li {
	position: relative;
	padding-left: 26px;
}
.ftb-article__content ul li::before {
	content: '';
	position: absolute;
	left: 4px; top: .7em;
	width: 7px; height: 7px;
	border-radius: 50%;
	background: var(--ftb-gold, #C4964A);
}
.ftb-article__content blockquote {
	background: var(--ftb-warm-white, #FFFCF7);
	border-left: 4px solid var(--ftb-gold, #C4964A);
	padding: 22px 26px;
	margin: 30px 0;
	font-family: var(--ftb-serif, 'Fraunces', Georgia, serif);
	font-style: italic;
	font-size: 1.15rem;
	color: var(--ftb-forest, #2D4A3E);
	line-height: 1.55;
	border-radius: 0 10px 10px 0;
}
.ftb-article__content blockquote p { margin: 0; }
.ftb-article__content img,
.ftb-article__content figure {
	max-width: 100%;
	height: auto;
	border-radius: 14px;
	margin: 24px 0;
	display: block;
}
.ftb-article__content figure img { margin: 0; }
.ftb-article__content figcaption {
	font-size: .84rem;
	color: var(--ftb-mid, #6B6560);
	margin-top: 10px;
	text-align: center;
	font-style: italic;
}
.ftb-article__content table {
	width: 100%;
	border-collapse: collapse;
	margin: 24px 0;
	font-size: .94rem;
	background: #fff;
	border-radius: 10px;
	overflow: hidden;
	box-shadow: 0 1px 8px rgba(44, 74, 62, 0.05);
}
.ftb-article__content th,
.ftb-article__content td {
	padding: 12px 16px;
	text-align: left;
	border-bottom: 1px solid rgba(44, 74, 62, 0.08);
}
.ftb-article__content th {
	background: var(--ftb-forest, #2D4A3E);
	color: var(--ftb-cream, #FAF6EF);
	font-weight: 600;
	font-size: .82rem;
	letter-spacing: .06em;
	text-transform: uppercase;
}
.ftb-article__content hr {
	border: 0;
	height: 1px;
	background: rgba(44, 74, 62, 0.12);
	margin: 40px 0;
}

/* Tags */
.ftb-article__tags {
	margin-top: 40px;
	padding-top: 28px;
	border-top: 1px solid rgba(44, 74, 62, 0.1);
	display: flex; flex-wrap: wrap; gap: 8px;
	align-items: center;
}
.ftb-article__tags-label {
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--ftb-mid, #6B6560);
	margin-right: 6px;
}
.ftb-article__tag {
	display: inline-block;
	background: #fff;
	border: 1px solid rgba(44, 74, 62, 0.12);
	color: var(--ftb-forest, #2D4A3E);
	padding: 5px 12px;
	border-radius: 50px;
	font-size: .8rem;
	font-weight: 500;
	cursor: pointer;
	transition: background .2s, border-color .2s, color .2s, transform .2s;
}
.ftb-article__tag:hover {
	background: var(--ftb-forest, #2D4A3E);
	color: var(--ftb-cream, #FAF6EF);
	border-color: var(--ftb-forest, #2D4A3E);
	transform: translateY(-1px);
}

/* Inline newsletter CTA */
.ftb-article__inline-nl {
	margin: 48px 0 40px;
	background: linear-gradient(135deg, var(--ftb-dark) 0%, var(--ftb-dark-warm) 100%);
	border-radius: 18px;
	padding: 34px 32px;
	color: var(--ftb-cream, #FAF6EF);
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 28px;
	align-items: center;
	position: relative; overflow: hidden;
}
.ftb-article__inline-nl::before {
	content: ''; position: absolute; inset: 0;
	background: radial-gradient(ellipse at 80% 50%, rgba(196, 150, 74, .14) 0%, transparent 60%);
	pointer-events: none;
}
.ftb-article__inline-nl-txt { position: relative; z-index: 1; }
.ftb-article__inline-nl-eyebrow {
	font-size: .68rem; font-weight: 700;
	letter-spacing: .22em; text-transform: uppercase;
	color: var(--ftb-gold, #C4964A);
	margin-bottom: 8px; display: block;
}
.ftb-article__inline-nl-title {
	font-family: var(--ftb-serif, 'Fraunces', Georgia, serif);
	font-size: 1.35rem;
	font-weight: 600;
	color: var(--ftb-cream, #FAF6EF);
	line-height: 1.25;
	margin: 0 0 8px;
}
.ftb-article__inline-nl-sub {
	font-size: .92rem;
	line-height: 1.6;
	color: rgba(250, 246, 239, 0.74);
	margin: 0;
}
.ftb-article__inline-nl-form { position: relative; z-index: 1; }
.ftb-article__inline-nl-btn {
	display: inline-flex; align-items: center; gap: 8px;
	background: var(--ftb-gold, #C4964A);
	color: var(--ftb-forest, #2D4A3E);
	padding: 13px 28px;
	border-radius: 50px;
	font-weight: 700;
	font-size: .9rem;
	text-decoration: none;
	transition: background .25s, transform .25s, box-shadow .25s;
	white-space: nowrap;
}
.ftb-article__inline-nl-btn:hover {
	background: var(--ftb-gold-light, #E8BF7A);
	transform: translateY(-2px);
	box-shadow: 0 10px 30px rgba(196, 150, 74, 0.3);
	color: var(--ftb-forest, #2D4A3E);
}

/* Auteur */
.ftb-article__author {
	margin-top: 40px;
	background: #fff;
	border: 1px solid rgba(44, 74, 62, 0.08);
	border-radius: 16px;
	padding: 28px;
	display: flex;
	gap: 22px;
	align-items: flex-start;
}
.ftb-article__author-avatar img {
	width: 72px; height: 72px;
	border-radius: 50%;
	object-fit: cover;
	border: 3px solid rgba(196, 150, 74, 0.25);
}
.ftb-article__author-body { flex: 1; }
.ftb-article__author-label {
	font-size: .7rem; font-weight: 700;
	letter-spacing: .22em; text-transform: uppercase;
	color: var(--ftb-gold, #C4964A);
	display: block;
	margin-bottom: 4px;
}
.ftb-article__author-name {
	font-family: var(--ftb-serif, 'Fraunces', Georgia, serif);
	font-size: 1.25rem;
	font-weight: 600;
	color: var(--ftb-forest, #2D4A3E);
	margin: 0 0 8px;
}
.ftb-article__author-bio {
	font-size: .95rem;
	line-height: 1.65;
	color: var(--ftb-mid, #6B6560);
	margin: 0;
}

/* Newsletter principale (fin article) */
.ftb-article__nl {
	padding: 88px 24px;
	background: linear-gradient(135deg, var(--ftb-dark) 0%, var(--ftb-dark-warm) 100%);
	text-align: center;
	position: relative; overflow: hidden;
}
.ftb-article__nl::before {
	content: ''; position: absolute; inset: 0;
	background: radial-gradient(ellipse at 30% 50%, rgba(196, 150, 74, .14) 0%, transparent 65%);
	pointer-events: none;
}
.ftb-article__nl-inner { position: relative; z-index: 1; max-width: 640px; margin: 0 auto; }
.ftb-article__nl-label {
	font-size: .72rem; font-weight: 700;
	letter-spacing: .26em; text-transform: uppercase;
	color: var(--ftb-gold, #C4964A);
	margin-bottom: 16px; display: block;
}
.ftb-article__nl-title {
	font-family: var(--ftb-serif, 'Fraunces', Georgia, serif);
	font-size: clamp(1.6rem, 3vw, 2.2rem);
	font-style: italic;
	color: var(--ftb-cream, #FAF6EF);
	margin: 0 0 16px;
	line-height: 1.2;
}
.ftb-article__nl-sub {
	font-size: 1rem;
	color: rgba(250, 246, 239, 0.72);
	line-height: 1.7;
	margin: 0 0 32px;
}
.ftb-article__nl-card {
	background: rgba(250, 246, 239, 0.97);
	border-radius: 20px;
	padding: 30px 28px 26px;
	max-width: 520px; margin: 0 auto;
	box-shadow: 0 20px 50px rgba(0, 0, 0, 0.18);
	text-align: left;
}
.ftb-article__nl-embed { margin: 0; }
.ftb-article__nl-legal {
	font-family: var(--ftb-sans, 'Jost', sans-serif);
	font-size: .74rem; font-weight: 300;
	color: var(--ftb-mid, #6B6560);
	margin: 14px 0 0;
	display: flex; align-items: flex-start; gap: 6px;
	line-height: 1.5;
}
.ftb-article__nl-legal svg { flex-shrink: 0; margin-top: 2px; opacity: .55; }

/* Articles liés */
.ftb-article__related {
	padding: 80px 24px;
	background: var(--ftb-warm-white, #FFFCF7);
}
.ftb-article__related-inner { max-width: 1180px; margin: 0 auto; }
.ftb-article__related-label {
	display: block; text-align: center;
	font-size: .72rem; font-weight: 700;
	letter-spacing: .26em; text-transform: uppercase;
	color: var(--ftb-gold, #C4964A);
	margin-bottom: 14px;
}
.ftb-article__related-title {
	font-family: var(--ftb-serif, 'Fraunces', Georgia, serif);
	font-size: clamp(1.6rem, 2.8vw, 2.2rem);
	text-align: center;
	color: var(--ftb-forest, #2D4A3E);
	margin: 0 auto 48px;
	max-width: 680px;
	line-height: 1.22;
	font-weight: 600;
}
.ftb-article__related-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 28px;
}
.ftb-article__related-card {
	background: #fff;
	border-radius: 16px;
	overflow: hidden;
	border: 1px solid rgba(44, 74, 62, 0.06);
	box-shadow: 0 2px 16px rgba(44, 74, 62, 0.04);
	transition: transform .3s, box-shadow .3s;
	display: flex; flex-direction: column;
	text-decoration: none;
	color: inherit;
}
.ftb-article__related-card:hover {
	transform: translateY(-5px);
	box-shadow: 0 16px 38px rgba(44, 74, 62, 0.12);
}
.ftb-article__related-media {
	position: relative;
	padding-top: 60%;
	overflow: hidden;
	background: var(--ftb-cream, #FAF6EF);
}
.ftb-article__related-media img {
	position: absolute; inset: 0;
	width: 100%; height: 100%;
	object-fit: cover;
	transition: transform .5s;
}
.ftb-article__related-card:hover .ftb-article__related-media img { transform: scale(1.05); }
.ftb-article__related-placeholder {
	position: absolute; inset: 0;
	display: flex; align-items: center; justify-content: center;
	font-size: 2.6rem;
	color: rgba(44, 74, 62, 0.18);
}
.ftb-article__related-cat {
	position: absolute; top: 12px; left: 12px;
	background: var(--ftb-cream, #FAF6EF);
	color: var(--ftb-forest, #2D4A3E);
	font-size: .68rem; font-weight: 700;
	letter-spacing: .12em; text-transform: uppercase;
	padding: 4px 10px;
	border-radius: 20px;
}
.ftb-article__related-body {
	padding: 22px 22px 24px;
	flex: 1;
	display: flex; flex-direction: column;
}
.ftb-article__related-name {
	font-family: var(--ftb-serif, 'Fraunces', Georgia, serif);
	font-size: 1.1rem;
	font-weight: 600;
	color: var(--ftb-forest, #2D4A3E);
	line-height: 1.3;
	margin: 0 0 10px;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.ftb-article__related-excerpt {
	font-size: .88rem;
	line-height: 1.6;
	color: var(--ftb-mid, #6B6560);
	margin: 0 0 14px;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	flex: 1;
}
.ftb-article__related-cta {
	color: var(--ftb-gold, #C4964A);
	font-weight: 600;
	font-size: .86rem;
	display: inline-flex;
	align-items: center; gap: 5px;
	transition: gap .2s;
}
.ftb-article__related-card:hover .ftb-article__related-cta { gap: 9px; }
.ftb-article__related-foot {
	text-align: center;
	margin-top: 44px;
}
.ftb-article__related-all {
	display: inline-flex; align-items: center; gap: 8px;
	background: transparent;
	color: var(--ftb-forest, #2D4A3E);
	border: 1.5px solid var(--ftb-forest, #2D4A3E);
	padding: 12px 30px;
	border-radius: 50px;
	font-weight: 600;
	font-size: .88rem;
	letter-spacing: .04em;
	cursor: pointer;
	transition: background .25s, color .25s, transform .25s;
}
.ftb-article__related-all:hover {
	background: var(--ftb-forest, #2D4A3E);
	color: var(--ftb-cream, #FAF6EF);
	transform: translateY(-2px);
}

/* Responsive */
@media (max-width: 1024px) {
	.ftb-article__body-inner {
		grid-template-columns: 220px 1fr;
		gap: 40px;
	}
}
@media (max-width: 880px) {
	.ftb-article__body-inner {
		grid-template-columns: 1fr;
		gap: 32px;
	}
	.ftb-article__toc {
		position: static;
	}
	.ftb-article__toc-card {
		padding: 18px;
	}
	.ftb-article__related-grid {
		grid-template-columns: repeat(2, 1fr);
	}
	.ftb-article__featured {
		margin-top: -16px;
		padding: 0 16px;
	}
	.ftb-article__featured-img {
		max-height: 380px;
		border-radius: 14px;
	}
}
@media (max-width: 640px) {
	.ftb-article__hero {
		padding: 44px 20px 32px;
	}
	.ftb-article__meta {
		gap: 10px 14px;
		font-size: .8rem;
	}
	.ftb-article__meta-dot { display: none; }
	.ftb-article__body {
		padding: 48px 20px 30px;
	}
	.ftb-article__content {
		font-size: 1rem;
	}
	.ftb-article__content p:first-of-type:first-letter {
		font-size: 3rem;
		margin: 4px 8px -4px 0;
	}
	.ftb-article__content h2 {
		margin: 36px 0 14px;
		font-size: 1.45rem;
	}
	.ftb-article__inline-nl {
		grid-template-columns: 1fr;
		gap: 18px;
		padding: 26px 22px;
	}
	.ftb-article__inline-nl-form { text-align: center; }
	.ftb-article__author {
		padding: 22px;
		gap: 16px;
	}
	.ftb-article__author-avatar img {
		width: 58px; height: 58px;
	}
	.ftb-article__related {
		padding: 56px 20px;
	}
	.ftb-article__related-grid {
		grid-template-columns: 1fr;
		gap: 20px;
	}
	.ftb-article__nl {
		padding: 60px 20px;
	}
	.ftb-article__nl-card {
		padding: 24px 20px 22px;
	}
}

/* ══════════════════════════════════════════════════════════
   404 — Page introuvable (Fais Ta Belle)
══════════════════════════════════════════════════════════ */

body.error404 #primary.content-area,
body.error404 #main { max-width: none; width: 100%; margin: 0; padding: 0; float: none; }
body.error404 #secondary.widget-area { display: none; }
body.error404 .site-content .col-full { max-width: none; padding: 0; }

.ftb-404 {
	font-family: var(--ftb-sans, 'Jost', sans-serif);
	color: var(--ftb-charcoal, var(--ftb-dark));
	background: var(--ftb-cream, #FAF6EF);
}

.ftb-404__hero {
	position: relative;
	padding: 56px 24px 44px;
	background: linear-gradient(135deg, var(--ftb-dark) 0%, #0D0D0B 100%);
	overflow: hidden;
	text-align: center;
}
.ftb-404__hero::before {
	content: ''; position: absolute; inset: 0;
	background: radial-gradient(ellipse at 30% 40%, rgba(196, 150, 74, 0.16) 0%, transparent 60%);
	pointer-events: none;
}
.ftb-404__hero::after {
	content: ''; position: absolute; bottom: -140px; right: -100px;
	width: 460px; height: 460px; border-radius: 50%;
	background: radial-gradient(circle, rgba(232, 213, 196, 0.12) 0%, transparent 70%);
	pointer-events: none;
}
.ftb-404__hero-inner { position: relative; z-index: 1; max-width: 760px; margin: 0 auto; }

.ftb-404__badge {
	display: inline-flex; align-items: center; gap: 10px;
	background: rgba(196, 150, 74, 0.15);
	border: 1px solid rgba(196, 150, 74, 0.35);
	border-radius: 50px;
	padding: 7px 18px;
	font-size: .72rem; font-weight: 700;
	letter-spacing: .22em; text-transform: uppercase;
	color: var(--ftb-gold, #C4964A);
	margin-bottom: 28px;
}
.ftb-404__badge svg { opacity: .8; }

.ftb-404__title {
	font-family: var(--ftb-serif, 'Fraunces', Georgia, serif);
	font-size: clamp(2.8rem, 10vw, 6rem);
	font-weight: 700; font-style: italic;
	color: var(--ftb-cream, #FAF6EF);
	margin: 0 0 8px;
	line-height: 1;
	letter-spacing: -.02em;
}
.ftb-404__zero {
	color: var(--ftb-gold, #C4964A);
	display: inline-block;
	transform: rotate(-8deg);
}
.ftb-404__lede {
	font-family: var(--ftb-serif, 'Fraunces', Georgia, serif);
	font-size: clamp(1.1rem, 2.4vw, 1.5rem);
	font-style: italic;
	color: var(--ftb-cream, #FAF6EF);
	margin: 10px 0 8px;
	line-height: 1.3;
}
.ftb-404__sub {
	font-size: .92rem; line-height: 1.6;
	color: rgba(250, 246, 239, 0.74);
	max-width: 560px; margin: 0 auto 24px;
}

.ftb-404__search {
	position: relative;
	max-width: 520px;
	margin: 0 auto;
	display: flex;
	align-items: center;
	background: #fff;
	border-radius: 50px;
	padding: 4px;
	box-shadow: 0 10px 40px rgba(0, 0, 0, 0.22);
}
.ftb-404__search-icon {
	position: absolute; left: 20px; top: 50%;
	transform: translateY(-50%);
	color: var(--ftb-mid, #6B6560);
	pointer-events: none;
}
.ftb-404__search input[type="search"] {
	flex: 1;
	padding: 14px 20px;
	border: none;
	background: transparent;
	font-family: var(--ftb-sans, 'Jost', sans-serif);
	font-size: .95rem;
	color: var(--ftb-charcoal, var(--ftb-dark));
}
.ftb-404__search input[type="search"]:focus { outline: none; }
.ftb-404__search-btn {
	background: var(--ftb-forest, #2D4A3E);
	color: var(--ftb-cream, #FAF6EF);
	border: none;
	padding: 12px 26px;
	border-radius: 50px;
	font-family: var(--ftb-sans, 'Jost', sans-serif);
	font-size: .88rem; font-weight: 600;
	cursor: pointer;
	transition: background .2s, transform .2s;
	white-space: nowrap;
}
.ftb-404__search-btn:hover {
	background: var(--ftb-gold, #C4964A);
	transform: translateY(-1px);
}

.ftb-404__links {
	background: var(--ftb-warm-white, #FFFCF7);
	padding: 72px 24px;
	border-bottom: 1px solid rgba(44, 74, 62, 0.06);
}
.ftb-404__links-inner { max-width: 1180px; margin: 0 auto; }
.ftb-404__section-label {
	font-size: .72rem; font-weight: 700;
	letter-spacing: .26em; text-transform: uppercase;
	color: var(--ftb-gold, #C4964A);
	display: block; margin-bottom: 12px;
	text-align: center;
}
.ftb-404__section-label--light {
	text-align: left;
	margin-bottom: 6px;
}
.ftb-404__links-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 22px;
	margin-top: 10px;
}
.ftb-404__link-card {
	background: #fff;
	border: 1px solid rgba(44, 74, 62, 0.08);
	border-radius: 16px;
	padding: 28px 22px 24px;
	text-decoration: none;
	color: inherit;
	cursor: pointer;
	transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease;
	display: block;
}
.ftb-404__link-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 14px 36px rgba(44, 74, 62, 0.1);
	border-color: var(--ftb-gold, #C4964A);
}
.ftb-404__link-icon {
	width: 46px; height: 46px;
	background: rgba(196, 150, 74, 0.12);
	color: var(--ftb-gold, #C4964A);
	border-radius: 12px;
	display: flex; align-items: center; justify-content: center;
	margin-bottom: 16px;
	transition: background .28s, color .28s;
}
.ftb-404__link-card:hover .ftb-404__link-icon {
	background: var(--ftb-forest, #2D4A3E);
	color: var(--ftb-cream, #FAF6EF);
}
.ftb-404__link-card h3 {
	font-family: var(--ftb-serif, 'Fraunces', Georgia, serif);
	font-size: 1.08rem;
	font-weight: 600;
	color: var(--ftb-forest, #2D4A3E);
	margin: 0 0 6px;
	line-height: 1.3;
}
.ftb-404__link-card p {
	font-size: .86rem;
	line-height: 1.55;
	color: var(--ftb-mid, #6B6560);
	margin: 0;
}

.ftb-404__promo {
	padding: 80px 24px;
	background: var(--ftb-cream, #FAF6EF);
}
.ftb-404__promo-inner { max-width: 1180px; margin: 0 auto; }
.ftb-404__promo-head {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	flex-wrap: wrap;
	gap: 20px;
	margin-bottom: 44px;
}
.ftb-404__promo-title {
	font-family: var(--ftb-serif, 'Fraunces', Georgia, serif);
	font-size: clamp(1.6rem, 2.8vw, 2.2rem);
	color: var(--ftb-forest, #2D4A3E);
	margin: 0 0 8px;
	line-height: 1.25;
	font-weight: 600;
}
.ftb-404__promo-sub {
	font-size: .98rem;
	color: var(--ftb-mid, #6B6560);
	margin: 0;
}
.ftb-404__promo-all {
	display: inline-flex; align-items: center; gap: 7px;
	color: var(--ftb-forest, #2D4A3E);
	font-weight: 600;
	font-size: .9rem;
	text-decoration: none;
	border-bottom: 2px solid var(--ftb-gold, #C4964A);
	padding-bottom: 3px;
	transition: color .2s, gap .2s;
}
.ftb-404__promo-all:hover {
	color: var(--ftb-gold, #C4964A);
	gap: 11px;
}
.ftb-404__promo-grid.products {
	display: grid !important;
	grid-template-columns: repeat(4, 1fr) !important;
	gap: 24px !important;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}
.ftb-404__promo-grid.products li.product {
	width: 100% !important;
	float: none !important;
	margin: 0 !important;
}

.ftb-404__back {
	padding: 60px 24px 80px;
	background: var(--ftb-warm-white, #FFFCF7);
	text-align: center;
}
.ftb-404__back-txt {
	font-family: var(--ftb-serif, 'Fraunces', Georgia, serif);
	font-size: 1.3rem;
	font-style: italic;
	color: var(--ftb-forest, #2D4A3E);
	margin: 0 0 18px;
}
.ftb-404__back-btn {
	display: inline-flex; align-items: center; gap: 10px;
	background: var(--ftb-forest, #2D4A3E);
	color: var(--ftb-cream, #FAF6EF);
	padding: 14px 32px;
	border-radius: 50px;
	text-decoration: none;
	font-weight: 600;
	font-size: .92rem;
	letter-spacing: .04em;
	transition: background .25s, transform .25s, box-shadow .25s;
}
.ftb-404__back-btn:hover {
	background: var(--ftb-gold, #C4964A);
	transform: translateY(-2px);
	box-shadow: 0 10px 28px rgba(196, 150, 74, 0.35);
	color: var(--ftb-forest, #2D4A3E);
}

@media (max-width: 980px) {
	.ftb-404__links-grid { grid-template-columns: repeat(2, 1fr); }
	.ftb-404__promo-grid.products { grid-template-columns: repeat(3, 1fr) !important; }
}
@media (max-width: 640px) {
	.ftb-404__hero { padding: 32px 20px 24px; }
	.ftb-404__search { flex-direction: column; padding: 6px; gap: 6px; }
	/* Icône loupe : masquée sur mobile (form en colonne — la rendre absolute crée un décalage non fiable selon hauteur input) */
	.ftb-404__search-icon { display: none !important; }
	.ftb-404__search input[type="search"] { padding: 14px 18px; width: 100%; text-align: center; }
	.ftb-404__search-btn { width: 100%; border-radius: 50px; }
	.ftb-404__links { padding: 40px 20px; }
	.ftb-404__links-grid { grid-template-columns: 1fr; gap: 10px; }
	/* Raccourcis utiles : layout horizontal compact sur mobile */
	.ftb-404__link-card {
		padding: 14px 16px;
		display: flex;
		align-items: center;
		gap: 14px;
	}
	.ftb-404__link-icon { margin-bottom: 0; flex-shrink: 0; }
	.ftb-404__search-btn { font-size: 0.875rem; }
	.ftb-404__promo { padding: 56px 20px; }
	.ftb-404__promo-head { flex-direction: column; align-items: flex-start; }
	.ftb-404__promo-grid.products { grid-template-columns: repeat(2, 1fr) !important; gap: 16px !important; }
	.ftb-404__back { padding: 44px 20px 64px; }
}

/* ══════════════════════════════════════════════════════════
   SUIVI DE LIVRAISON — page ts-shipment-tracking
══════════════════════════════════════════════════════════ */

body.page-id-17743 #primary.content-area,
body.page-id-17743 #main { max-width: none; width: 100%; margin: 0; padding: 0; float: none; }
body.page-id-17743 #secondary.widget-area { display: none; }
body.page-id-17743 .site-content .col-full { max-width: none; padding: 0; }
body.page-id-17743 .entry-header,
body.page-id-17743 .page-header { display: none; }
body.page-id-17743 .entry-content { margin: 0; padding: 0; }
body.page-id-17743 .shoptimizer-breadcrumb,
body.page-id-17743 .woocommerce-breadcrumb,
body.page-id-17743 nav.breadcrumb { padding: 14px 24px !important; margin: 0 !important; }

/* Page template Nouveautés + Meilleures Ventes — pleine largeur, pas de sidebar */
body.page-template-template-nouveautes #primary.content-area,
body.page-template-template-nouveautes #main { max-width: none; width: 100%; margin: 0; padding: 0; float: none; }
body.page-template-template-nouveautes #secondary.widget-area { display: none; }
body.page-template-template-nouveautes .site-content .col-full { max-width: none; padding: 0; }
body.page-template-template-nouveautes .entry-header,
body.page-template-template-nouveautes .page-header { display: none; }
body.page-template-template-nouveautes .entry-content { margin: 0; padding: 0; }

.ftb-track {
	font-family: var(--ftb-sans, 'Jost', sans-serif);
	color: var(--ftb-charcoal, var(--ftb-dark));
	background: var(--ftb-cream, #FAF6EF);
}

.ftb-track__hero {
	position: relative;
	padding: 72px 24px 48px;
	background: linear-gradient(135deg, #2C4239 0%, #3A5449 100%);
	overflow: hidden;
	text-align: center;
}
.ftb-track__hero::before {
	content: ''; position: absolute; inset: 0;
	background: radial-gradient(ellipse at 70% 40%, rgba(209, 122, 77, 0.22) 0%, transparent 60%);
	pointer-events: none;
}
.ftb-track__hero-inner { position: relative; z-index: 1; max-width: 720px; margin: 0 auto; }

.ftb-track__eyebrow {
	display: inline-block;
	background: rgba(209, 122, 77, 0.12);
	border: 1px solid rgba(209, 122, 77, 0.30);
	border-radius: 50px;
	padding: 6px 18px;
	font-size: .72rem; font-weight: 700;
	letter-spacing: .22em; text-transform: uppercase;
	color: var(--ftb-peach, #D17A4D);
	margin-bottom: 22px;
}
.ftb-track__eyebrow--gold {
	color: var(--ftb-peach, #D17A4D);
	background: transparent;
	border-color: transparent;
	padding: 0;
	letter-spacing: .26em;
}
.ftb-track__title {
	font-family: var(--ftb-serif, 'Fraunces', Georgia, serif);
	font-size: clamp(2rem, 4.4vw, 3rem);
	font-weight: 600; font-style: italic;
	color: var(--ftb-cream, #FAF6EF);
	margin: 0 0 14px;
	line-height: 1.2;
}
.ftb-track__sub {
	font-size: 1.05rem;
	line-height: 1.7;
	color: rgba(250, 246, 239, 0.82);
	max-width: 540px;
	margin: 0 auto;
}

.ftb-track__form-wrap {
	padding: 48px 24px 56px;
	background: var(--ftb-warm-white, #FFFCF7);
	margin-top: -24px;
	position: relative;
	z-index: 1;
}
.ftb-track__form-inner { max-width: 920px; margin: 0 auto; }

.ftb-track__form-card {
	background: #fff;
	border-radius: 18px;
	padding: 28px 30px;
	border: 1px solid rgba(58, 84, 73, 0.08);
	box-shadow: 0 16px 40px rgba(58, 84, 73, 0.08);
	margin-bottom: 32px;
}

/* TrackShip form override FTB */
.ftb-track__form-card .tracking_form_tabs {
	border-bottom: 1px solid rgba(44, 74, 62, 0.1);
	display: flex;
	gap: 4px;
	margin-bottom: 8px;
}
.ftb-track__form-card .order_track_form label.ts_from_label {
	padding: 16px 20px !important;
	font-family: var(--ftb-sans, 'Jost', sans-serif);
	font-weight: 600;
	font-size: .88rem;
	letter-spacing: .04em;
	color: var(--ftb-mid, #6B6560);
	cursor: pointer;
	border-bottom: 3px solid transparent;
	transition: color .2s, border-color .2s;
	text-align: center;
}
.ftb-track__form-card .order_track_form input.ts_from_input:checked + label.ts_from_label {
	color: var(--ftb-forest, #3A5449);
	border-bottom-color: var(--ftb-peach, #D17A4D);
}
.ftb-track__form-card .search_order_form .tracking_form {
	padding: 24px 4px 8px !important;
}
.ftb-track__form-card form.order_track_form label {
	font-size: .82rem !important;
	font-weight: 600 !important;
	color: var(--ftb-forest, #3A5449) !important;
	letter-spacing: .04em;
	text-transform: uppercase;
	display: block !important;
	margin-bottom: 8px !important;
}
.ftb-track__form-card form.order_track_form input[type="text"],
.ftb-track__form-card form.order_track_form input[type="email"] {
	width: 100% !important;
	max-width: 100% !important;
	padding: 12px 16px !important;
	border: 1px solid rgba(44, 74, 62, 0.15) !important;
	border-radius: 10px !important;
	background: var(--ftb-cream, #FAF6EF) !important;
	font-family: var(--ftb-sans, 'Jost', sans-serif) !important;
	font-size: .95rem !important;
	color: var(--ftb-charcoal, var(--ftb-dark)) !important;
	transition: border-color .2s, box-shadow .2s !important;
	margin-bottom: 16px !important;
}
.ftb-track__form-card form.order_track_form input[type="text"]:focus,
.ftb-track__form-card form.order_track_form input[type="email"]:focus {
	outline: none !important;
	border-color: var(--ftb-peach, #D17A4D) !important;
	box-shadow: 0 0 0 4px rgba(209, 122, 77, 0.15) !important;
	background: #fff !important;
}
.ftb-track__form-card button[type="submit"],
.ftb-track__form-card input[type="submit"],
.ftb-track__form-card form.order_track_form button,
.ftb-track__form-card form.order_track_form input[type="submit"],
.ftb-track__form-card .order_track_form button,
.ftb-track__form-card .track-order-section button {
	background: var(--ftb-forest, #3A5449) !important;
	color: var(--ftb-cream, #FAF6EF) !important;
	border: none !important;
	padding: 13px 32px !important;
	border-radius: 50px !important;
	font-family: var(--ftb-sans, 'Jost', sans-serif) !important;
	font-weight: 600 !important;
	font-size: .9rem !important;
	letter-spacing: .04em !important;
	cursor: pointer !important;
	transition: background .25s, transform .25s, box-shadow .25s !important;
	width: auto !important;
	display: inline-flex !important;
	align-items: center !important;
}
.ftb-track__form-card button[type="submit"]:hover,
.ftb-track__form-card input[type="submit"]:hover,
.ftb-track__form-card form.order_track_form button:hover,
.ftb-track__form-card .order_track_form button:hover,
.ftb-track__form-card .track-order-section button:hover {
	background: var(--ftb-peach-deep, #B5622F) !important;
	color: #fff !important;
	transform: translateY(-1px) !important;
}
.ftb-track__form-card .track_fail_msg {
	background: rgba(209, 122, 77, 0.08) !important;
	border: 1px solid rgba(209, 122, 77, 0.25) !important;
	color: var(--ftb-forest, #3A5449) !important;
	border-radius: 10px !important;
	padding: 12px 16px !important;
	margin-top: 14px !important;
}
.ftb-track__form-card .trackship_branding {
	padding-top: 18px !important;
	font-size: .8rem !important;
	color: var(--ftb-soft, #948D85) !important;
}
.ftb-track__form-card .trackship_branding a {
	color: var(--ftb-forest, #3A5449) !important;
	text-decoration: none !important;
	font-weight: 500 !important;
}
.ftb-track__form-card .trackship_branding a:hover {
	color: var(--ftb-peach-deep, #D17A4D) !important;
}

.ftb-track__help {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
}
.ftb-track__help-item {
	background: #fff;
	border: 1px solid rgba(44, 74, 62, 0.08);
	border-radius: 14px;
	padding: 24px 22px;
	text-align: left;
	transition: border-color .25s, transform .25s, box-shadow .25s;
}
.ftb-track__help-item:hover {
	border-color: var(--ftb-peach-deep, #D17A4D);
	transform: translateY(-3px);
	box-shadow: 0 12px 30px rgba(209, 122, 77, 0.10);
}
.ftb-track__help-icon {
	width: 44px; height: 44px;
	background: rgba(209, 122, 77, 0.10);
	color: var(--ftb-peach, #D17A4D);
	border-radius: 12px;
	display: flex; align-items: center; justify-content: center;
	margin-bottom: 14px;
}
.ftb-track__help-item h3 {
	font-family: var(--ftb-serif, 'Fraunces', Georgia, serif);
	font-size: 1.05rem;
	font-weight: 600;
	color: var(--ftb-forest, #3A5449);
	margin: 0 0 6px;
	line-height: 1.3;
}
.ftb-track__help-item p {
	font-size: .88rem;
	line-height: 1.6;
	color: var(--ftb-mid, #6B6560);
	margin: 0;
}

.ftb-track__contact {
	padding: 56px 24px;
	background: var(--ftb-cream, #FAF6EF);
	border-top: 1px solid rgba(58, 84, 73, 0.06);
}
.ftb-track__contact-inner {
	max-width: 480px; margin: 0 auto;
	text-align: center;
}
.ftb-track__contact-title {
	font-family: var(--ftb-serif, 'Fraunces', Georgia, serif);
	font-size: clamp(1.4rem, 2.4vw, 1.85rem);
	color: var(--ftb-forest, #3A5449);
	margin: 6px 0 10px;
	line-height: 1.25;
	font-weight: 600;
}
.ftb-track__contact-sub {
	font-size: .95rem;
	line-height: 1.65;
	color: var(--ftb-mid, #6B6560);
	margin: 0 0 24px;
}
.ftb-track__contact-btns {
	display: flex;
	flex-direction: column;
	gap: 10px;
	align-items: stretch;
	max-width: 360px;
	margin: 0 auto;
}
.ftb-track__contact-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	padding: 0 24px;
	height: 52px;
	border-radius: var(--ftb-radius-pill, 9999px);
	text-decoration: none;
	font-family: var(--ftb-sans, 'Jost', sans-serif);
	font-weight: 600;
	font-size: .9rem;
	letter-spacing: .01em;
	transition: background .25s, color .25s, transform .25s, box-shadow .25s;
	white-space: nowrap;
	box-sizing: border-box;
}
.ftb-track__contact-btn svg {
	flex-shrink: 0;
	width: 16px;
	height: 16px;
	display: block;
}
.ftb-track__contact-btn br { display: none; }
.ftb-track__contact-btn--primary {
	background: var(--ftb-peach-deep, #D17A4D);
	color: #fff;
	box-shadow: 0 4px 16px rgba(209,122,77,0.25);
}
.ftb-track__contact-btn--primary:hover {
	background: #B5622F;
	color: #fff;
	transform: translateY(-2px);
	box-shadow: 0 10px 28px rgba(209,122,77,0.38);
}
.ftb-track__contact-btn--secondary {
	background: #fff;
	color: var(--ftb-forest, #3A5449);
	border: 1.5px solid rgba(58, 84, 73, 0.18);
	box-shadow: 0 2px 8px rgba(58,84,73,0.06);
}
.ftb-track__contact-btn--secondary:hover {
	background: var(--ftb-forest, #3A5449);
	color: #fff;
	transform: translateY(-2px);
	box-shadow: 0 8px 20px rgba(58,84,73,0.18);
}

@media (max-width: 820px) {
	.ftb-track__help { grid-template-columns: 1fr; gap: 10px; }
	.ftb-track__help-item { padding: 18px 18px; }
	.ftb-track__help-icon { width: 38px; height: 38px; margin-bottom: 10px; }
	.ftb-track__help-item h3 { font-size: .95rem; margin-bottom: 4px; }
	.ftb-track__help-item p { font-size: .84rem; line-height: 1.5; }
}
@media (max-width: 560px) {
	.ftb-track__hero { padding: 48px 20px 36px; }
	.ftb-track__title { font-size: clamp(1.6rem, 5vw, 2.2rem) !important; margin-bottom: 8px !important; }
	.ftb-track__sub { font-size: .92rem; line-height: 1.55; }
	.ftb-track__form-wrap { padding: 28px 14px 36px; }
	.ftb-track__form-card { padding: 18px 16px; border-radius: 14px; margin-bottom: 28px; }
	.ftb-track__help { gap: 8px; }
	.ftb-track__help-item { padding: 14px 16px; border-radius: 10px; }
	.ftb-track__help-icon { width: 34px; height: 34px; border-radius: 8px; margin-bottom: 8px; }
	.ftb-track__help-icon svg { width: 18px; height: 18px; }
	.ftb-track__help-item h3 { font-size: .9rem; }
	.ftb-track__help-item p { font-size: .82rem; }
	.ftb-track__contact { padding: 36px 16px; }
	.ftb-track__contact-title { font-size: 1.3rem !important; }
	.ftb-track__contact-sub { font-size: .88rem; margin-bottom: 18px; }
	.ftb-track__contact-btns { gap: 8px; }
	.ftb-track__contact-btn { padding: 12px 18px; font-size: .9rem; min-height: 48px; }
}

/* =============================================================================
   BOTANICAL SVG SYSTEM — Éléments décoratifs botaniques inspirés oOolution
   ============================================================================= */

.ftb-botanical {
  position: absolute;
  pointer-events: none;
  user-select: none;
  z-index: 0;
  overflow: visible;
}
.ftb-botanical--top-right    { top: -20px; right: -20px; }
.ftb-botanical--top-left     { top: -20px; left: -20px; }
.ftb-botanical--bottom-right { bottom: -20px; right: -20px; }
.ftb-botanical--bottom-left  { bottom: -20px; left: -20px; }
.ftb-botanical--mid-right    { top: 50%; right: -30px; transform: translateY(-50%); }
.ftb-botanical--mid-left     { top: 50%; left: -30px; transform: translateY(-50%); }

/* Variantes de couleur */
.ftb-botanical--forest  { color: var(--ftb-forest); }
.ftb-botanical--gold    { color: var(--ftb-gold); }
.ftb-botanical--cream   { color: var(--ftb-cream); }
.ftb-botanical--blush   { color: var(--ftb-blush); }

/* Variantes d'opacité — valeurs élevées car elles se multiplient
   par les opacity internes des <path> SVG (typiquement 0.25–0.40) */
.ftb-botanical--subtle  { opacity: 0.55; }
.ftb-botanical--light   { opacity: 0.80; }
.ftb-botanical--medium  { opacity: 1.00; }

/* Animation douce au scroll */
@media (prefers-reduced-motion: no-preference) {
  .ftb-botanical { transition: transform 0.6s ease; }
  .ftb-botanical--float {
    animation: ftb-botanical-float 8s ease-in-out infinite;
  }
}
@keyframes ftb-botanical-float {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  33%       { transform: translateY(-8px) rotate(1.5deg); }
  66%       { transform: translateY(-4px) rotate(-1deg); }
}

/* =============================================================================
   SVG BOTANIQUES — Micro-décorations sitewide
   ============================================================================= */
.ftb-deco {
  pointer-events: none;
  position: fixed;
  inset: 0;
  z-index: 0;
  overflow: hidden;
}
.ftb-deco__leaf {
  position: absolute;
  color: var(--ftb-forest);
  opacity: 0.35;
}
.ftb-deco__leaf--tl {
  top: 120px;
  left: -20px;
  transform: rotate(15deg);
}
.ftb-deco__leaf--br {
  bottom: 80px;
  right: -16px;
  transform: rotate(-10deg) scaleX(-1);
}
@media (prefers-reduced-motion: no-preference) {
  .ftb-deco__leaf {
    animation: ftb-botanical-float 10s ease-in-out infinite;
  }
  .ftb-deco__leaf--br {
    animation-delay: -4s;
    animation-duration: 12s;
  }
}
@media (max-width: 768px) {
  .ftb-deco { display: none; }
}

/* =============================================================================
   LOT 1 — GLOBAUX
   ============================================================================= */

/* Lot 3 — Meilleures Ventes : SEO intro accordéon */
.ftb-best-seo--toggleable .ftb-best-seo__content {
  position: relative;
  overflow: hidden;
  max-height: 7em;
  transition: max-height 0.4s ease;
}
.ftb-best-seo--toggleable .ftb-best-seo__content::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 3em;
  background: linear-gradient(transparent, #fff);
  pointer-events: none;
}
.ftb-best-seo--toggleable.is-open .ftb-best-seo__content {
  max-height: 1000px;
}
.ftb-best-seo--toggleable.is-open .ftb-best-seo__content::after {
  opacity: 0;
}
.ftb-best-seo__toggle {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin-top: 12px;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  font-family: var(--ftb-sans);
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--ftb-forest);
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* 1. Breadcrumb — marge gauche mobile (trop collé au bord sur toutes les pages) */
@media (max-width: 767px) {
  .woocommerce-breadcrumb {
    padding-left: 16px !important;
    padding-right: 16px !important;
    box-sizing: border-box !important;
  }
}

/* 1b. Breadcrumb desktop — pages full-width (Meilleures Ventes, Promotions, 404) :
   ces pages forcent padding:0 sur #primary/.col-full, ce qui colle le breadcrumb au bord gauche. */
@media (min-width: 768px) {
  body.page-template-page-meilleures-ventes-php .woocommerce-breadcrumb,
  body.page-id-16311 .woocommerce-breadcrumb,
  body.error404 .woocommerce-breadcrumb {
    max-width: 1280px;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 32px !important;
    padding-right: 32px !important;
    box-sizing: border-box !important;
  }
}

/* 2. Menu "Les promos" — badge distinctif desktop + mobile */
@keyframes ftb-promo-pulse {
  0%, 100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(209,122,77,0.35); }
  50% { transform: scale(1.12); box-shadow: 0 0 0 6px rgba(209,122,77,0); }
}

@media (min-width: 993px) {
  .main-navigation ul.menu > li.ftb-menu-promos > a,
  .main-navigation ul.menu > li.ftb-menu-promos > a span {
    color: var(--ftb-peach-deep) !important;
    font-weight: 700 !important;
  }
  /* Supprimer la wave — confusion avec page active */
  .menu-primary-menu-container > ul > li.ftb-menu-promos > a span::before {
    transform: scale(0, 0) !important;
    animation: none !important;
    background-image: none !important;
  }
  /* Badge "%" circulaire */
  .menu-primary-menu-container > ul > li.ftb-menu-promos > a span::after {
    content: "%" !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-family: var(--ftb-sans) !important;
    font-size: 0.58rem !important;
    font-weight: 800 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    line-height: 1 !important;
    color: #fff !important;
    background: var(--ftb-peach-deep) !important;
    border-radius: 50% !important;
    width: 20px !important;
    height: 20px !important;
    margin-left: 6px !important;
    position: relative !important;
    top: -1px !important;
    flex-shrink: 0 !important;
    animation: ftb-promo-pulse 2s ease-in-out infinite !important;
  }
  .menu-primary-menu-container > ul > li.ftb-menu-promos:hover > a span::after {
    background: var(--ftb-forest) !important;
  }
}
@media (max-width: 992px) {
  .col-full-nav .menu-primary-menu-container > ul.menu > li.ftb-menu-promos > a {
    color: var(--ftb-peach-deep) !important;
    background: var(--ftb-peach-light) !important;
    font-weight: 600 !important;
  }
  .col-full-nav .menu-primary-menu-container > ul.menu > li.ftb-menu-promos {
    border-left: 3px solid var(--ftb-peach) !important;
  }
  /* Badge "%" mobile */
  .col-full-nav .menu-primary-menu-container > ul.menu > li.ftb-menu-promos > a span::after {
    content: "%" !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-family: var(--ftb-sans) !important;
    font-size: 0.5rem !important;
    font-weight: 800 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    line-height: 1 !important;
    color: #fff !important;
    background: var(--ftb-peach-deep) !important;
    border-radius: 50% !important;
    width: 17px !important;
    height: 17px !important;
    margin-left: 6px !important;
    flex-shrink: 0 !important;
    animation: ftb-promo-pulse 2.5s ease-in-out infinite !important;
  }
}
@media (prefers-reduced-motion: reduce) {
  .menu-primary-menu-container > ul > li.ftb-menu-promos > a span::after {
    animation: none !important;
  }
}

/* 3. Alignement horizontal boutons CTA en mobile (grille 2 colonnes)
   La carte est déjà flex-column + stretch. On force le lien en flex-column
   et margin-top:auto sur le prix pour aligner les boutons sur la même ligne. */
ul.products:not(.ftb-carousel__track) li.product > a.woocommerce-loop-product__link {
  display: flex !important;
  flex-direction: column !important;
}
ul.products:not(.ftb-carousel__track) li.product > a.woocommerce-loop-product__link .price {
  margin-top: auto !important;
}

/* =============================================================================
   PAGE MEILLEURES VENTES — Layout + hero + grille
   ============================================================================= */

/* Pleine largeur, pas de sidebar */
body.page-template-page-meilleures-ventes-php #primary.content-area,
body.page-template-page-meilleures-ventes-php #main { max-width: none !important; width: 100% !important; padding: 0 !important; float: none !important; }
body.page-template-page-meilleures-ventes-php #secondary.widget-area { display: none !important; }
body.page-template-page-meilleures-ventes-php .site-content .col-full { max-width: none !important; padding: 0 !important; }
body.page-template-page-meilleures-ventes-php .entry-header,
body.page-template-page-meilleures-ventes-php .page-header { display: none !important; }
body.page-template-page-meilleures-ventes-php .entry-content { margin: 0 !important; padding: 0 !important; }

/* Hero */
.ftb-best-page__hero {
  background: linear-gradient(135deg, var(--ftb-forest, #2D4A3E) 0%, #1a3028 60%, #0f1f18 100%) !important;
  padding: 52px 24px 44px !important;
  text-align: center !important;
  position: relative !important;
  overflow: hidden !important;
}
.ftb-best-page__hero::before {
  content: '' !important;
  position: absolute !important; inset: 0 !important;
  background: radial-gradient(ellipse at 25% 35%, rgba(196,150,74,.22) 0%, transparent 55%),
              radial-gradient(ellipse at 75% 65%, rgba(196,150,74,.10) 0%, transparent 50%) !important;
  pointer-events: none !important;
}
.ftb-best-page__hero .ftb-home-wrap { position: relative !important; z-index: 1 !important; max-width: 760px !important; margin: 0 auto !important; }
.ftb-best-page__hero .ftb-home-eyebrow {
  display: inline-flex !important; align-items: center !important; gap: 10px !important;
  background: rgba(196,150,74,.18) !important; border: 1px solid rgba(196,150,74,.45) !important;
  border-radius: 50px !important; padding: 7px 20px !important;
  font-size: .72rem !important; font-weight: 700 !important; letter-spacing: .24em !important;
  text-transform: uppercase !important; color: var(--ftb-gold, #C4964A) !important;
  margin-bottom: 22px !important;
}
.ftb-best-page__hero .ftb-home-eyebrow::before {
  content: '' !important; display: inline-block !important;
  width: 7px !important; height: 7px !important; border-radius: 50% !important;
  background: var(--ftb-gold, #C4964A) !important;
  animation: ftb-blink 1.4s ease-in-out infinite !important;
  flex-shrink: 0 !important;
}
.ftb-best-page__hero .ftb-home-title {
  font-family: var(--ftb-serif, 'Fraunces', Georgia, serif) !important;
  font-size: clamp(2.2rem, 5.5vw, 3.6rem) !important;
  font-weight: 700 !important; font-style: italic !important;
  color: var(--ftb-cream, #FAF6EF) !important;
  margin: 0 0 12px !important; line-height: 1.1 !important;
}
.ftb-best-page__hero .ftb-home-title em { color: var(--ftb-gold, #C4964A) !important; font-style: italic !important; }
.ftb-best-page__hero .ftb-home-subtitle {
  font-size: 1.05rem !important; line-height: 1.7 !important;
  color: rgba(250,246,239,.72) !important;
  max-width: 520px !important; margin: 0 auto 30px !important;
}
.ftb-best-page__meta {
  display: flex !important; flex-wrap: nowrap !important;
  justify-content: center !important; align-items: center !important; gap: 16px !important;
  margin-top: 12px !important;
}
.ftb-best-page__meta-stars { display: flex !important; gap: 2px !important; color: #F5A623 !important; }
.ftb-best-page__meta-stars svg { width: 16px !important; height: 16px !important; fill: currentColor !important; }

/* Section SEO intro */
.ftb-best-page__seo-intro {
  background: var(--ftb-warm-white, #FFFCF7);
  padding: 32px 24px;
  border-bottom: 1px solid rgba(58,84,73,.06);
}
.ftb-best-page__seo-intro .ftb-home-wrap { max-width: 820px; }
.ftb-best-page__seo-intro p { font-size: .9rem; line-height: 1.75; color: var(--ftb-mid, #6B6560); margin: 0 0 12px; }
.ftb-best-page__seo-intro strong { color: var(--ftb-charcoal, #1C1C1C); font-weight: 600; }

/* Grille produits */
.ftb-best-page__grid-section {
  background: var(--ftb-warm-white, #FFFCF7);
  padding: 44px 24px 64px;
}
.ftb-best-page__grid-section .ftb-home-wrap { max-width: 1200px; margin: 0 auto; }

/* Mobile hero */
@media (max-width: 640px) {
  .ftb-best-page__hero { padding: 40px 20px 36px !important; }
  .ftb-best-page__hero .ftb-home-title { font-size: clamp(1.8rem, 5.5vw, 2.4rem) !important; }
  .ftb-best-page__hero .ftb-home-subtitle { font-size: .95rem !important; margin-bottom: 20px !important; }
  .ftb-best-page__grid-section { padding: 28px 12px 48px; }
}

/* ── 404 search form mobile — input et bouton séparés visuellement ───────────── */
@media (max-width: 767px) {
  body.error404 form.ftb-404__search svg.ftb-404__search-icon,
  body.error404 .ftb-404__search .ftb-404__search-icon,
  .ftb-404__search svg.ftb-404__search-icon {
    display: none !important;
  }
  /* Form : transparent, plus de pill globale */
  body.error404 .ftb-404__search {
    background: transparent !important;
    box-shadow: none !important;
    padding: 0 !important;
    gap: 14px !important;
    flex-direction: column !important;
  }
  /* Input : son propre pill blanc */
  body.error404 .ftb-404__search input[type="search"] {
    background: #fff !important;
    border-radius: 50px !important;
    padding: 16px 22px !important;
    text-align: center !important;
    width: 100% !important;
    box-shadow: 0 10px 28px rgba(0,0,0,0.18) !important;
  }
  /* Bouton : son propre pill vert, séparé */
  body.error404 .ftb-404__search-btn {
    width: 100% !important;
    border-radius: 50px !important;
    padding: 16px 26px !important;
  }
}

/* =============================================================================
   FTB SEARCH — Page résultats de recherche (full-width, no sidebar)
   ============================================================================= */

.ftb-search { background: var(--ftb-cream); }

/* Hero compact (dark, même ligne que 404) */
.ftb-search__hero {
	position: relative;
	padding: 44px 24px 36px;
	background: linear-gradient(135deg, #1C1C1C 0%, #2A2520 100%);
	text-align: center;
	overflow: hidden;
}
.ftb-search__hero::before {
	content: ''; position: absolute; inset: 0;
	background: radial-gradient(ellipse at 30% 50%, rgba(232,155,108,0.10) 0%, transparent 60%);
	pointer-events: none;
}
.ftb-search__hero-inner {
	position: relative; z-index: 1;
	max-width: 680px; margin: 0 auto;
}

.ftb-search__badge {
	display: inline-flex; align-items: center; gap: 8px;
	background: rgba(58,84,73,0.25);
	border: 1px solid rgba(58,84,73,0.45);
	border-radius: var(--ftb-radius-pill);
	padding: 6px 16px;
	font-family: var(--ftb-sans); font-size: .7rem; font-weight: 600;
	letter-spacing: .18em; text-transform: uppercase;
	color: var(--ftb-sage);
	margin-bottom: 20px;
}
.ftb-search__badge svg { opacity: .7; }

.ftb-search__title {
	font-family: var(--ftb-serif);
	font-size: clamp(1.3rem, 3vw, 1.8rem);
	font-weight: 400;
	color: var(--ftb-cream);
	margin: 0 0 6px;
	line-height: 1.25;
	letter-spacing: -0.02em;
}
.ftb-search__title em {
	font-style: italic; font-weight: 500;
	color: var(--ftb-peach);
}

.ftb-search__sub {
	font-family: var(--ftb-sans);
	font-size: .9rem; line-height: 1.5;
	color: rgba(250,246,239,0.65);
	margin: 0 auto 18px; max-width: 480px;
}

/* Search form (pill, même pattern 404) */
.ftb-search__form {
	max-width: 480px; margin: 0 auto;
	display: flex; align-items: center;
	background: #fff;
	border-radius: var(--ftb-radius-pill);
	padding: 4px;
	box-shadow: 0 8px 32px rgba(0,0,0,0.18);
}
.ftb-search__form input[type="search"] {
	flex: 1; padding: 12px 18px; border: none; background: transparent;
	font-family: var(--ftb-sans); font-size: .9rem;
	color: var(--ftb-charcoal);
}
.ftb-search__form input[type="search"]:focus { outline: none; }
.ftb-search__form-btn {
	background: var(--ftb-forest);
	color: var(--ftb-cream);
	border: none; padding: 10px 22px;
	border-radius: var(--ftb-radius-pill);
	font-family: var(--ftb-sans); font-size: .82rem; font-weight: 600;
	cursor: pointer; transition: background .2s; white-space: nowrap;
}
.ftb-search__form-btn:hover { background: var(--ftb-forest-light); }

/* Résultats */
.ftb-search__results,
.ftb-search__empty {
	max-width: 1200px; margin: 0 auto;
	padding: 40px 24px 60px;
}
.ftb-search__results-inner,
.ftb-search__empty-inner { max-width: 1200px; margin: 0 auto; }

.ftb-search__section { margin-bottom: 48px; }
.ftb-search__section-title {
	font-family: var(--ftb-serif);
	font-size: 1.3rem; font-weight: 400;
	color: var(--ftb-charcoal);
	margin: 0 0 24px;
	display: flex; align-items: center; gap: 10px;
	letter-spacing: -0.015em;
}
.ftb-search__count {
	font-family: var(--ftb-sans); font-size: .75rem; font-weight: 600;
	background: var(--ftb-sage); color: var(--ftb-forest);
	padding: 3px 10px; border-radius: var(--ftb-radius-pill);
}

/* Grille produits — réutilise les classes WC standard */
.ftb-search__products {
	display: grid !important;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
	list-style: none; padding: 0; margin: 0;
}

/* Posts cards */
.ftb-search__posts {
	display: flex; flex-direction: column; gap: 12px;
}
.ftb-search__post-card {
	display: flex; align-items: flex-start; gap: 16px;
	padding: 16px 20px;
	background: var(--ftb-warm-white);
	border: 1px solid var(--ftb-border);
	border-radius: var(--ftb-radius);
	text-decoration: none; color: inherit;
	transition: box-shadow .2s, transform .2s;
}
.ftb-search__post-card:hover {
	box-shadow: var(--ftb-shadow-sm);
	transform: translateY(-2px);
}
.ftb-search__post-img {
	width: 80px; height: 80px;
	object-fit: cover; border-radius: 8px; flex-shrink: 0;
}
.ftb-search__post-body { flex: 1; min-width: 0; }
.ftb-search__post-type {
	font-family: var(--ftb-sans); font-size: .65rem; font-weight: 600;
	text-transform: uppercase; letter-spacing: .12em;
	color: var(--ftb-forest);
}
.ftb-search__post-title {
	font-family: var(--ftb-serif); font-size: 1rem; font-weight: 500;
	color: var(--ftb-charcoal); margin: 4px 0 6px; line-height: 1.3;
}
.ftb-search__post-excerpt {
	font-family: var(--ftb-sans); font-size: .82rem;
	color: var(--ftb-mid); line-height: 1.5; margin: 0;
}

/* État vide — grille catégories */
.ftb-search__cats {
	display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px;
	margin-bottom: 32px;
}
.ftb-search__cat-card {
	display: flex; flex-direction: column; align-items: center;
	padding: 24px 16px; text-align: center;
	background: var(--ftb-warm-white);
	border: 1px solid var(--ftb-border);
	border-radius: var(--ftb-radius);
	text-decoration: none; color: inherit;
	transition: box-shadow .2s, transform .2s;
}
.ftb-search__cat-card:hover {
	box-shadow: var(--ftb-shadow-sm); transform: translateY(-3px);
}
.ftb-search__cat-img {
	width: 56px; height: 56px; border-radius: 50%;
	object-fit: cover; margin-bottom: 10px;
}
.ftb-search__cat-placeholder {
	width: 56px; height: 56px; border-radius: 50%;
	background: var(--ftb-sage); display: flex;
	align-items: center; justify-content: center;
	color: var(--ftb-forest); margin-bottom: 10px;
}
.ftb-search__cat-name {
	font-family: var(--ftb-serif); font-size: .92rem; font-weight: 500;
	color: var(--ftb-charcoal); margin-bottom: 4px;
}
.ftb-search__cat-count {
	font-family: var(--ftb-sans); font-size: .72rem;
	color: var(--ftb-mid);
}

.ftb-search__empty-cta { text-align: center; margin-top: 12px; }
.ftb-search__btn {
	display: inline-block; padding: 12px 32px;
	background: var(--ftb-forest); color: var(--ftb-cream);
	border-radius: var(--ftb-radius-pill);
	font-family: var(--ftb-sans); font-size: .88rem; font-weight: 600;
	text-decoration: none; transition: background .2s;
}
.ftb-search__btn:hover { background: var(--ftb-forest-light); color: var(--ftb-cream); }

/* Pagination FTB */
.ftb-search + .navigation.pagination,
.ftb-search ~ .navigation.pagination {
	max-width: 1200px; margin: 0 auto; padding: 0 24px 48px; text-align: center;
}

/* Forcer full-width (pas de sidebar) */
body.search-results #primary { width: 100% !important; float: none !important; }
body.search-results #secondary { display: none !important; }
body.search-results .col-full { max-width: 100%; }

/* Mobile */
@media (max-width: 768px) {
	.ftb-search__hero { padding: 32px 16px 28px; }
	.ftb-search__form { flex-direction: column; gap: 6px; padding: 6px; }
	.ftb-search__form input[type="search"] { width: 100%; text-align: center; padding: 12px 16px; }
	.ftb-search__form-btn { width: 100%; border-radius: var(--ftb-radius-pill); }
	.ftb-search__products { grid-template-columns: repeat(2, 1fr) !important; gap: 12px; }
	.ftb-search__post-img { width: 60px; height: 60px; }
	.ftb-search__cats { grid-template-columns: repeat(2, 1fr); gap: 10px; }
	.ftb-search__cat-card { padding: 16px 10px; }
	.ftb-search__results, .ftb-search__empty { padding: 28px 16px 40px; }
}

/* =============================================================================
   FTB CART EMPTY — Page panier vide (charte FTB Fresh)
   ============================================================================= */

.woocommerce-cart .ftb-cart-empty {
  background: linear-gradient(180deg, var(--ftb-warm-white, #FFFCF7) 0%, var(--ftb-cream, #FAF6EF) 100%);
  padding: 64px 20px 96px;
  margin: -24px 0 0;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.woocommerce-cart .ftb-cart-empty::before,
.woocommerce-cart .ftb-cart-empty::after {
  content: '';
  position: absolute;
  width: 220px;
  height: 220px;
  border-radius: 50%;
  filter: blur(60px);
  opacity: 0.45;
  pointer-events: none;
  z-index: 0;
}
.woocommerce-cart .ftb-cart-empty::before {
  background: var(--ftb-peach-light, #FBE5D6);
  top: -60px;
  left: -40px;
}
.woocommerce-cart .ftb-cart-empty::after {
  background: var(--ftb-sage, #DCE6D5);
  bottom: -60px;
  right: -40px;
}
.ftb-cart-empty__inner {
  max-width: 920px;
  margin: 0 auto;
  position: relative;
  z-index: 1;
}
.ftb-cart-empty__decor {
  width: 120px;
  height: 120px;
  margin: 0 auto 24px;
}
.ftb-cart-empty__decor svg { width: 100%; height: 100%; display: block; }

.ftb-cart-empty__eyebrow {
  display: inline-block;
  font-family: var(--ftb-sans, 'Jost'), sans-serif;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ftb-peach-deep, #D17A4D);
  background: rgba(232,155,108,0.10);
  padding: 6px 16px;
  border-radius: var(--ftb-radius-pill, 9999px);
  margin-bottom: 14px;
}
.ftb-cart-empty__title {
  font-family: var(--ftb-serif, 'Fraunces'), Georgia, serif;
  font-weight: 400;
  font-size: clamp(2rem, 5vw, 3.2rem);
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: var(--ftb-charcoal, #1F1B17);
  margin: 0 0 18px;
  font-variation-settings: "opsz" 144, "SOFT" 100;
}
.ftb-cart-empty__title em {
  font-style: italic;
  font-weight: 500;
  color: var(--ftb-peach-deep, #D17A4D);
}
.ftb-cart-empty__lead {
  font-family: var(--ftb-sans, 'Jost'), sans-serif;
  font-size: 1.05rem;
  line-height: 1.55;
  color: var(--ftb-mid, #6B6560);
  max-width: 560px;
  margin: 0 auto 32px;
}
.ftb-cart-empty__lead strong {
  color: var(--ftb-forest, #3A5449);
  font-weight: 600;
}

.ftb-cart-empty__ctas {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 14px;
  margin-bottom: 36px;
}
.ftb-cart-empty__btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--ftb-sans, 'Jost'), sans-serif;
  font-size: 0.95rem;
  font-weight: 500;
  letter-spacing: 0.03em;
  padding: 14px 28px;
  border-radius: var(--ftb-radius-pill, 9999px);
  text-decoration: none;
  transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease, color 0.2s ease;
}
.ftb-cart-empty__btn--primary {
  background: var(--ftb-peach, #E89B6C);
  color: #fff;
  box-shadow: var(--ftb-shadow-peach, 0 12px 28px rgba(232,155,108,0.28));
}
.ftb-cart-empty__btn--primary:hover {
  background: var(--ftb-peach-deep, #D17A4D);
  color: #fff;
  transform: translateY(-2px);
}
.ftb-cart-empty__btn--ghost {
  background: transparent;
  color: var(--ftb-forest, #3A5449);
  border: 1.5px solid var(--ftb-forest, #3A5449);
}
.ftb-cart-empty__btn--ghost:hover {
  background: var(--ftb-forest, #3A5449);
  color: var(--ftb-warm-white, #FFFCF7);
  transform: translateY(-2px);
}

.ftb-cart-empty__trust {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px 28px;
  font-family: var(--ftb-sans, 'Jost'), sans-serif;
  font-size: 0.85rem;
  color: var(--ftb-forest, #3A5449);
  font-weight: 500;
  margin-bottom: 56px;
}
.ftb-cart-empty__trust span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.ftb-cart-empty__suggest {
  margin-top: 24px;
  padding-top: 48px;
  border-top: 1px solid var(--ftb-border, rgba(58,84,73,0.10));
}
.ftb-cart-empty__suggest-head {
  margin-bottom: 32px;
}
.ftb-cart-empty__suggest-eyebrow {
  display: inline-block;
  font-family: var(--ftb-sans, 'Jost'), sans-serif;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ftb-forest, #3A5449);
  margin-bottom: 10px;
}
.ftb-cart-empty__suggest-title {
  font-family: var(--ftb-serif, 'Fraunces'), Georgia, serif;
  font-weight: 400;
  font-size: clamp(1.5rem, 3.2vw, 2.1rem);
  line-height: 1.15;
  letter-spacing: -0.02em;
  color: var(--ftb-charcoal, #1F1B17);
  margin: 0;
}
.ftb-cart-empty__suggest-title em {
  font-style: italic;
  font-weight: 500;
  color: var(--ftb-peach-deep, #D17A4D);
}
.ftb-cart-empty__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.ftb-cart-empty__card {
  background: var(--ftb-warm-white, #FFFCF7);
  border-radius: var(--ftb-radius-lg, 20px);
  padding: 18px 14px 16px;
  box-shadow: var(--ftb-shadow-sm, 0 4px 16px rgba(58,84,73,0.06));
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.ftb-cart-empty__card:hover {
  transform: translateY(-4px);
  box-shadow: var(--ftb-shadow-md, 0 12px 32px rgba(58,84,73,0.10));
}
.ftb-cart-empty__card-link {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-decoration: none;
  color: var(--ftb-charcoal, #1F1B17);
}
.ftb-cart-empty__card-img {
  width: 120px;
  height: 120px;
  margin-bottom: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.ftb-cart-empty__card-img img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  mix-blend-mode: multiply;
}
.ftb-cart-empty__card-name {
  font-family: var(--ftb-serif, 'Fraunces'), Georgia, serif;
  font-size: 0.95rem;
  font-weight: 500;
  line-height: 1.25;
  text-align: center;
  color: var(--ftb-charcoal, #1F1B17);
  margin: 0 0 8px;
  min-height: 2.4em;
}
.ftb-cart-empty__card-price {
  font-family: var(--ftb-sans, 'Jost'), sans-serif;
  font-weight: 600;
  color: var(--ftb-peach-deep, #D17A4D);
  font-size: 0.95rem;
  margin-bottom: 12px;
}
.ftb-cart-empty__card-price del { color: var(--ftb-soft, #948D85); font-weight: 400; margin-right: 6px; font-size: 0.85em; }
.ftb-cart-empty__card-price ins { text-decoration: none; }
.ftb-cart-empty__card-cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--ftb-sans, 'Jost'), sans-serif;
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: 0.05em;
  color: var(--ftb-forest, #3A5449);
  padding: 6px 14px;
  border: 1px solid var(--ftb-forest, #3A5449);
  border-radius: var(--ftb-radius-pill, 9999px);
  transition: background 0.2s ease, color 0.2s ease;
}
.ftb-cart-empty__card:hover .ftb-cart-empty__card-cta {
  background: var(--ftb-forest, #3A5449);
  color: var(--ftb-warm-white, #FFFCF7);
}

/* Masque la notice "Panier mis à jour" en haut quand on est sur le layout custom */
.woocommerce-cart .ftb-cart-empty ~ .woocommerce-notices-wrapper,
.woocommerce-cart .woocommerce-notices-wrapper:has(+ .ftb-cart-empty) .woocommerce-message {
  display: none;
}

@media (max-width: 900px) {
  .ftb-cart-empty__grid { grid-template-columns: repeat(2, 1fr); gap: 14px; }
}
@media (max-width: 600px) {
  .woocommerce-cart .ftb-cart-empty { padding: 40px 16px 64px; }
  .ftb-cart-empty__decor { width: 88px; height: 88px; margin-bottom: 18px; }
  .ftb-cart-empty__title { font-size: 1.9rem; }
  .ftb-cart-empty__lead { font-size: 0.95rem; }
  .ftb-cart-empty__ctas { flex-direction: column; align-items: stretch; max-width: 320px; margin-left: auto; margin-right: auto; }
  .ftb-cart-empty__btn { justify-content: center; }
  .ftb-cart-empty__trust { gap: 8px 14px; font-size: 0.78rem; margin-bottom: 40px; }
  .ftb-cart-empty__suggest { padding-top: 32px; }
  .ftb-cart-empty__card-img { width: 96px; height: 96px; }
}

/* ============================================================
   AVIS CLIENTS — Masquer la photo/avatar de chaque review
   (les acheteurs n'uploadent pas de photo → gravatar par défaut moche)
   Sitewide : couvre WC core (.comment_container .avatar),
   Customer Reviews for WC (.ivole-pic, .cr-photo, .cr-review-avatar)
   et tout `<img class="avatar">` enfant d'un .commentlist.
   ============================================================ */
.commentlist .avatar,
.commentlist li .avatar,
ol.commentlist li img.avatar,
#reviews .commentlist .avatar,
.comment_container > img.avatar,
.woocommerce #reviews #comments ol.commentlist li img.avatar,
.ivole-pic,
.cr-photo,
.cr-review-avatar,
.cr-qna-author-pic {
  display: none !important;
}

/* Re-aligne le texte des avis maintenant que l'avatar n'occupe plus la colonne gauche. */
.woocommerce #reviews #comments ol.commentlist li .comment-text,
.commentlist li .comment-text,
.commentlist li .comment_container .comment-text {
  margin-left: 0 !important;
  padding-left: 0 !important;
  border: 0 !important;
  background: transparent !important;
}
.commentlist li .comment_container {
  display: block !important;
  padding: 14px 0 !important;
  border: 0 !important;
  border-bottom: 1px solid var(--ftb-border) !important;
}

/* Supprime TOUS les traits/borders parasites dans les avis clients.
   Couvre 4 modes d'affichage de Customer Reviews for WooCommerce :
   - Classique WC (commentlist > .comment-text + .meta)
   - Grid (.cr-reviews-grid > .cr-review-card > .top-row 2px border)  ← BIG culprit
   - Slider (.cr-reviews-slider > .cr-review-card > .top-row 2px border)
   - Ajax/All shortcode (.cr-comment-text border-bottom)
   On garde uniquement le séparateur entre 2 avis via .comment_container. */
#reviews .commentlist li .comment-text > *,
#reviews .commentlist li .comment-text p.meta,
#reviews .commentlist li .comment-author,
#reviews .commentlist li .comment-meta,
#reviews .commentlist li time,
#reviews .commentlist li .verified,
#reviews .commentlist li .star-rating,
#reviews .commentlist li .description,
.cr-review-card .top-row,
.cr-reviews-grid .cr-review-card .top-row,
.cr-reviews-slider .cr-review-card .top-row,
.cr-review-card .cr-incentivized-row,
.cr-review-card,
.cr-rating-row,
.cr-review-author,
.cr-review-author-text,
.cr-rinfo,
.cr-info-row,
.cr-comment-text,
.cr-all-reviews-shortcode ol.commentlist li .cr-comment-text,
.cr-reviews-ajax-reviews .cr-reviews-ajax-comments .cr-ajax-reviews-list .comment_container .cr-comment-text,
.cr-reviews-ajax-reviews .cr-reviews-ajax-comments .cr-ajax-reviews-list .review .cr-comment-text,
.cr-onsite-ratings {
  border: 0 !important;
  border-top: 0 !important;
  border-bottom: 0 !important;
  border-left: 0 !important;
  border-right: 0 !important;
  text-decoration: none !important;
  background-image: none !important;
  box-shadow: none !important;
}
/* Compacte le padding du top-row pour que le retrait du trait ne laisse pas un trou visuel */
.cr-review-card .top-row {
  padding: 4px 0 8px !important;
}
