/*
Theme Name: Juste Prix — Maquette 1.3
Author: Juste Prix
Description: Adaptation WordPress de la maquette Juste Prix 1.3 fournie, avec catalogue et panier WooCommerce.
Version: 1.3.5
Requires PHP: 8.0
Text Domain: juste-prix
*/
/* ============================================
   JUSTE PRIX — Maquette HTML Navigable v1.0
   Charte graphique officielle
   ============================================ */

@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&family=Inter:wght@400;500;600&display=swap');

:root {
  --jp-vert: #0F7A4A;
  --jp-vert-fonce: #0a5c37;
  --jp-vert-clair: #E6F4ED;
  --jp-jaune: #F5B800;
  --jp-jaune-clair: #FFF3D6;
  --jp-bleu: #17324D;
  --jp-bleu-clair: #EEF2F8;
  --jp-rouge: #E94B35;
  --jp-rouge-clair: #FEF0EE;
  --jp-ivoire: #FFF8EA;
  --jp-blanc: #FFFFFF;
  --jp-gris: #F5F5F0;
  --jp-border: #E0D8C8;
  --jp-muted: #6B7B8A;
  --jp-shadow: 0 2px 8px rgba(23,50,77,.08);
  --jp-shadow-md: 0 4px 16px rgba(23,50,77,.12);
  --radius-sm: 6px;
  --radius: 10px;
  --radius-lg: 14px;
  --font-title: 'Poppins', system-ui, sans-serif;
  --font-body: 'Inter', system-ui, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { font-family: var(--font-body); background: var(--jp-ivoire); color: var(--jp-bleu); font-size: 15px; line-height: 1.6; }
h1,h2,h3,h4 { font-family: var(--font-title); }
a { text-decoration: none; color: inherit; }
img { max-width: 100%; height: auto; display: block; }
button { cursor: pointer; font-family: var(--font-body); border: none; }
input, select, textarea { font-family: var(--font-body); }

/* ---- LAYOUT ---- */
.container { max-width: 1160px; margin: 0 auto; padding: 0 20px; }
.section { padding: 48px 0; }
.section--white { background: var(--jp-blanc); }
.section--ivoire { background: var(--jp-ivoire); }
.section--bleu { background: var(--jp-bleu); }
.section-title { font-size: 22px; font-weight: 700; color: var(--jp-bleu); margin-bottom: 6px; }
.section-sub { font-size: 14px; color: var(--jp-muted); margin-bottom: 28px; }

/* ---- BUTTONS ---- */
.btn { display: inline-flex; align-items: center; gap: 8px; border-radius: var(--radius-sm); padding: 11px 22px; font-size: 14px; font-weight: 600; font-family: var(--font-title); transition: all .18s; cursor: pointer; border: none; white-space: nowrap; }
.btn--primary { background: var(--jp-vert); color: white; }
.btn--primary:hover { background: var(--jp-vert-fonce); }
.btn--jaune { background: var(--jp-jaune); color: var(--jp-bleu); }
.btn--jaune:hover { background: #e0a800; }
.btn--wa { background: #25D366; color: white; }
.btn--wa:hover { background: #1da851; }
.btn--ghost { background: transparent; color: white; border: 1.5px solid rgba(255,255,255,.5); }
.btn--ghost:hover { background: rgba(255,255,255,.1); }
.btn--outline { background: transparent; color: var(--jp-vert); border: 1.5px solid var(--jp-vert); }
.btn--outline:hover { background: var(--jp-vert-clair); }
.btn--sm { padding: 8px 14px; font-size:14px; }
.btn--full { width: 100%; justify-content: center; }

/* ---- HEADER ---- */
.header { background: var(--jp-blanc); border-bottom: 1px solid var(--jp-border); position: sticky; top: 0; z-index: 1000; box-shadow: var(--jp-shadow); }
.header__inner { display: flex; align-items: center; gap: 20px; height: 64px; }
.header__logo img { height: 38px; width: auto; }
.header__nav { display: flex; gap: 4px; flex: 1; }
.header__nav a { font-size:14px; font-weight: 500; color: var(--jp-bleu); padding: 7px 12px; border-radius: var(--radius-sm); transition: background .15s; }
.header__nav a:hover, .header__nav a.active { background: var(--jp-ivoire); color: var(--jp-vert); }
.header__nav a.nav--diaspora { color: var(--jp-vert); font-weight: 600; }
.header__actions { display: flex; gap: 8px; align-items: center; }
.panier-badge { background: var(--jp-vert); color: white; border-radius: 50%; width: 18px; height: 18px; display: flex; align-items: center; justify-content: center; font-size:14px; font-weight: 700; }
.hamburger { display: none; flex-direction: column; gap: 5px; padding: 6px; cursor: pointer; }
.hamburger span { width: 22px; height: 2px; background: var(--jp-bleu); border-radius: 2px; transition: all .2s; }

/* ---- HERO ---- */
.hero { background: linear-gradient(135deg, var(--jp-vert) 0%, var(--jp-vert-fonce) 100%); padding: 60px 0; color: white; overflow: hidden; position: relative; }
.hero::before { content: ''; position: absolute; right: -60px; top: -60px; width: 300px; height: 300px; background: rgba(245,184,0,.1); border-radius: 50%; }
.hero::after { content: ''; position: absolute; right: 80px; bottom: -40px; width: 180px; height: 180px; background: rgba(255,255,255,.05); border-radius: 50%; }
.hero__inner { position: relative; z-index: 1; max-width: 640px; }
.hero__badge { display: inline-block; background: var(--jp-jaune); color: var(--jp-bleu); font-size:14px; font-weight: 700; padding: 4px 12px; border-radius: 20px; margin-bottom: 16px; letter-spacing: .04em; }
.hero h1 { font-size: 32px; font-weight: 700; line-height: 1.2; margin-bottom: 14px; }
.hero h1 em { color: var(--jp-jaune); font-style: normal; }
.hero__sub { font-size: 15px; line-height: 1.7; opacity: .92; margin-bottom: 28px; }
.hero__btns { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 24px; }
.hero__note { font-size:14px; opacity: .7; border-left: 2px solid rgba(245,184,0,.5); padding-left: 10px; line-height: 1.6; }

/* ---- PARCOURS BARRE ---- */
.parcours-bar { background: var(--jp-bleu); }
.parcours-bar__inner { display: grid; grid-template-columns: repeat(3,1fr); }
.parcours-item { padding: 20px; text-align: center; border-right: 1px solid rgba(255,255,255,.1); transition: background .15s; cursor: pointer; }
.parcours-item:last-child { border-right: none; }
.parcours-item:hover { background: rgba(255,255,255,.06); }
.parcours-item__icon { width: 44px; height: 44px; border-radius: 50%; display: flex; align-items: center; justify-content: center; margin: 0 auto 10px; font-size: 20px; }
.parcours-item__icon--vert { background: rgba(15,122,74,.35); }
.parcours-item__icon--jaune { background: rgba(245,184,0,.2); }
.parcours-item__icon--blanc { background: rgba(255,255,255,.12); }
.parcours-item__title { font-size:14px; font-weight: 700; color: white; margin-bottom: 4px; font-family: var(--font-title); }
.parcours-item__sub { font-size:14px; color: rgba(255,255,255,.65); line-height: 1.4; }
.parcours-item__link { display: inline-block; margin-top: 8px; font-size:14px; color: var(--jp-jaune); font-weight: 600; }

/* ---- CATEGORIES ---- */
.cats-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 12px; }
.cat-card { background: var(--jp-blanc); border: 1px solid var(--jp-border); border-radius: var(--radius); padding: 18px 10px; text-align: center; transition: all .18s; cursor: pointer; }
.cat-card:hover { border-color: var(--jp-vert); box-shadow: 0 4px 12px rgba(15,122,74,.12); transform: translateY(-2px); }
.cat-card__icon { font-size: 28px; margin-bottom: 8px; display: block; }
.cat-card__name { font-size:14px; font-weight: 600; color: var(--jp-bleu); font-family: var(--font-title); }
.cat-card__badge { display: inline-block; margin-top: 5px; background: var(--jp-jaune); color: var(--jp-bleu); font-size: 9px; font-weight: 700; padding: 2px 7px; border-radius: 10px; }

/* ---- PACKS ---- */
.packs-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; }
.pack-card { background: var(--jp-blanc); border: 1px solid var(--jp-border); border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--jp-shadow); }
.pack-card__header { padding: 16px 18px; }
.pack-card__header--vert { background: var(--jp-vert); }
.pack-card__header--bleu { background: var(--jp-bleu); }
.pack-card__header--amber { background: #B38600; }
.pack-card__tag { font-size:14px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: rgba(255,255,255,.75); margin-bottom: 4px; }
.pack-card__name { font-size: 16px; font-weight: 700; color: white; font-family: var(--font-title); }
.pack-card__body { padding: 14px 18px; }
.pack-card__items { font-size:14px; color: var(--jp-muted); line-height: 2; margin-bottom: 12px; }
.pack-card__price { font-size: 18px; font-weight: 700; color: var(--jp-bleu); margin-bottom: 2px; font-family: var(--font-title); }
.pack-card__eur { font-size:14px; color: var(--jp-muted); margin-bottom: 12px; }
.pack-card__btns { display: flex; gap: 8px; }

/* ---- PRODUITS ---- */
.produits-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 12px; }
.produit-card { background: var(--jp-blanc); border: 1px solid var(--jp-border); border-radius: var(--radius); overflow: hidden; transition: box-shadow .18s; }
.produit-card:hover { box-shadow: var(--jp-shadow-md); }
.produit-card__img { height: 100px; background: var(--jp-gris); display: flex; align-items: center; justify-content: center; font-size: 36px; border-bottom: 1px solid var(--jp-border); position: relative; }
.promo-badge { position: absolute; top: 8px; right: 8px; background: var(--jp-rouge); color: white; font-size: 9px; font-weight: 700; padding: 2px 7px; border-radius: 6px; }
.produit-card__body { padding: 12px; }
.produit-card__name { font-size:14px; font-weight: 600; color: var(--jp-bleu); margin-bottom: 4px; line-height: 1.3; font-family: var(--font-title); }
.produit-card__prix { font-size: 15px; font-weight: 700; color: var(--jp-bleu); margin-bottom: 2px; }
.produit-card__eur { font-size:14px; color: var(--jp-muted); margin-bottom: 8px; }
.dispo { display: inline-block; font-size:14px; font-weight: 600; padding: 3px 9px; border-radius: 8px; margin-bottom: 10px; }
.dispo--ok { background: var(--jp-vert-clair); color: var(--jp-vert); }
.dispo--confirm { background: var(--jp-jaune-clair); color: #B38600; }
.dispo--cmd { background: var(--jp-bleu-clair); color: var(--jp-bleu); }
.dispo--non { background: var(--jp-rouge-clair); color: var(--jp-rouge); opacity: .75; }
.produit-card__btns { display: flex; gap: 6px; }

/* ---- STEPS ---- */
.steps-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; }
.step-item { text-align: center; padding: 20px 16px; }
.step-item__num { width: 40px; height: 40px; border-radius: 50%; background: var(--jp-vert); color: white; display: flex; align-items: center; justify-content: center; font-size: 16px; font-weight: 700; margin: 0 auto 12px; font-family: var(--font-title); }
.step-item__title { font-size: 14px; font-weight: 600; color: var(--jp-bleu); margin-bottom: 6px; font-family: var(--font-title); }
.step-item__text { font-size:14px; color: var(--jp-muted); line-height: 1.6; }

/* ---- NOTE 48H ---- */
.note-48h { background: var(--jp-vert-clair); border-left: 3px solid var(--jp-vert); padding: 10px 14px; border-radius: 0 var(--radius-sm) var(--radius-sm) 0; font-size:14px; color: var(--jp-vert-fonce); line-height: 1.6; }

/* ---- DIASPORA BANNER ---- */
.diaspora-banner { background: var(--jp-bleu); border-radius: var(--radius-lg); padding: 28px; display: flex; align-items: center; gap: 24px; flex-wrap: wrap; }
.diaspora-banner__icon { font-size: 48px; flex-shrink: 0; }
.diaspora-banner__content { flex: 1; min-width: 220px; }
.diaspora-banner__title { font-size: 18px; font-weight: 700; color: white; margin-bottom: 6px; font-family: var(--font-title); }
.diaspora-banner__sub { font-size:14px; color: rgba(255,255,255,.8); line-height: 1.6; }
.diaspora-banner__btns { display: flex; gap: 10px; flex-wrap: wrap; flex-shrink: 0; }

/* ---- CONFIANCE ---- */
.confiance-grid { display: grid; grid-template-columns: repeat(5,1fr); gap: 16px; }
.confiance-item { text-align: center; padding: 16px 8px; }
.confiance-item__icon { font-size: 28px; margin-bottom: 8px; display: block; }
.confiance-item__title { font-size:14px; font-weight: 700; color: var(--jp-bleu); margin-bottom: 3px; font-family: var(--font-title); }
.confiance-item__sub { font-size:14px; color: var(--jp-muted); }

/* ---- FOOTER ---- */
.footer { background: var(--jp-bleu); color: white; padding: 48px 0 24px; }
.footer__grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 32px; margin-bottom: 32px; }
.footer__logo img { height: 36px; margin-bottom: 12px; filter: brightness(0) invert(1); }
.footer__tagline { font-size:14px; opacity: .65; margin-bottom: 12px; line-height: 1.5; }
.footer__col-title { font-size:14px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; opacity: .5; margin-bottom: 12px; }
.footer__links { list-style: none; }
.footer__links li { margin-bottom: 8px; }
.footer__links a { font-size:14px; color: rgba(255,255,255,.75); transition: color .15s; }
.footer__links a:hover { color: var(--jp-jaune); }
.footer__bottom { border-top: 1px solid rgba(255,255,255,.12); padding-top: 20px; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 8px; }
.footer__copy { font-size:14px; opacity: .45; }
.footer__48h { font-size:14px; opacity: .45; font-style: italic; }

/* ---- PAGE HEADER ---- */
.page-header { background: var(--jp-blanc); border-bottom: 1px solid var(--jp-border); padding: 14px 0; }
.breadcrumb { font-size:14px; color: var(--jp-muted); display: flex; align-items: center; gap: 6px; }
.breadcrumb a { color: var(--jp-muted); }
.breadcrumb a:hover { color: var(--jp-vert); }
.breadcrumb .current { color: var(--jp-vert); font-weight: 600; }

/* ---- BOUTIQUE FILTRES ---- */
.filters-bar { background: var(--jp-blanc); padding: 16px 0; border-bottom: 1px solid var(--jp-border); position: sticky; top: 64px; z-index: 100; }
.filters-inner { display: flex; gap: 16px; flex-wrap: wrap; align-items: center; }
.filter-group { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.filter-label { font-size:14px; font-weight: 700; color: var(--jp-bleu); margin-right: 4px; font-family: var(--font-title); }
.chip { background: var(--jp-blanc); border: 1px solid var(--jp-border); border-radius: 20px; padding: 5px 13px; font-size:14px; color: var(--jp-bleu); cursor: pointer; font-weight: 500; transition: all .15s; }
.chip:hover { border-color: var(--jp-vert); color: var(--jp-vert); }
.chip.active { background: var(--jp-vert); color: white; border-color: var(--jp-vert); }
.chip.active-jaune { background: var(--jp-jaune); color: var(--jp-bleu); border-color: var(--jp-jaune); }

/* ---- FICHE PRODUIT ---- */
.fiche-layout { display: grid; grid-template-columns: 380px 1fr; gap: 32px; padding: 32px 0; }
.fiche-gallery__main { height: 280px; background: var(--jp-gris); border-radius: var(--radius-lg); border: 1px solid var(--jp-border); display: flex; align-items: center; justify-content: center; font-size: 80px; margin-bottom: 10px; }
.fiche-gallery__thumbs { display: flex; gap: 8px; }
.fiche-gallery__thumb { flex: 1; height: 60px; background: var(--jp-gris); border-radius: var(--radius-sm); border: 1px solid var(--jp-border); display: flex; align-items: center; justify-content: center; font-size: 22px; cursor: pointer; transition: border-color .15s; }
.fiche-gallery__thumb.active { border-color: var(--jp-vert); border-width: 2px; }
.fiche-info__name { font-size: 22px; font-weight: 700; color: var(--jp-bleu); margin-bottom: 6px; }
.fiche-info__cat { font-size:14px; color: var(--jp-muted); margin-bottom: 16px; }
.fiche-info__prix { font-size: 26px; font-weight: 700; color: var(--jp-bleu); margin-bottom: 3px; }
.fiche-info__eur { font-size:14px; color: var(--jp-muted); margin-bottom: 16px; }
.fiche-info__zones { display: flex; gap: 8px; flex-wrap: wrap; margin: 10px 0 14px; }
.zone-pill { background: var(--jp-ivoire); border: 1px solid var(--jp-border); border-radius: var(--radius-sm); padding: 5px 12px; font-size:14px; color: var(--jp-bleu); }
.fiche-info__btns { display: flex; gap: 12px; margin-bottom: 14px; flex-wrap: wrap; }
.fiche-info__remises { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.remise-option { border: 1px solid var(--jp-border); border-radius: var(--radius-sm); padding: 10px 14px; display: flex; align-items: center; gap: 10px; }
.remise-option__icon { font-size: 18px; }
.remise-option__title { font-size:14px; font-weight: 600; color: var(--jp-bleu); }
.remise-option__sub { font-size:14px; color: var(--jp-muted); }

/* ---- CHECKOUT ---- */
.checkout-layout { display: grid; grid-template-columns: 1fr 340px; gap: 24px; padding: 32px 0; align-items: start; }
.checkout-block { background: var(--jp-blanc); border: 1px solid var(--jp-border); border-radius: var(--radius-lg); padding: 20px; margin-bottom: 14px; }
.checkout-block__title { font-size: 14px; font-weight: 700; color: var(--jp-bleu); padding-bottom: 12px; border-bottom: 1px solid var(--jp-border); margin-bottom: 16px; display: flex; align-items: center; gap: 10px; }
.num-badge { width: 24px; height: 24px; border-radius: 50%; background: var(--jp-vert); color: white; display: flex; align-items: center; justify-content: center; font-size:14px; font-weight: 700; flex-shrink: 0; }
.field-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 12px; }
.field-grid.full { grid-template-columns: 1fr; }
.field label { display: block; font-size:14px; font-weight: 600; color: var(--jp-bleu); margin-bottom: 5px; }
.field input, .field select, .field textarea { width: 100%; border: 1px solid var(--jp-border); border-radius: var(--radius-sm); padding: 9px 12px; font-size:14px; color: var(--jp-bleu); background: var(--jp-blanc); outline: none; transition: border-color .15s; }
.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--jp-vert); }
.field textarea { resize: none; height: 70px; }
.radio-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 14px; }
.radio-opt { border: 1.5px solid var(--jp-border); border-radius: var(--radius-sm); padding: 12px; cursor: pointer; display: flex; align-items: flex-start; gap: 10px; transition: all .15s; }
.radio-opt.selected { border-color: var(--jp-vert); background: var(--jp-vert-clair); }
.radio-dot { width: 16px; height: 16px; border-radius: 50%; border: 1.5px solid #aaa; flex-shrink: 0; margin-top: 2px; }
.radio-opt.selected .radio-dot { border-color: var(--jp-vert); background: var(--jp-vert); }
.radio-opt__title { font-size:14px; font-weight: 600; color: var(--jp-bleu); }
.radio-opt__sub { font-size:14px; color: var(--jp-muted); }
.diaspora-section { background: var(--jp-ivoire); border: 1.5px dashed var(--jp-vert); border-radius: var(--radius-sm); padding: 14px; margin-top: 4px; }
.diaspora-section__toggle { display: flex; align-items: center; gap: 10px; font-size:14px; font-weight: 600; color: var(--jp-vert); cursor: pointer; }
.diaspora-section__body { margin-top: 14px; display: none; }
.diaspora-section__body.open { display: block; }
.payment-opt { border: 1px solid var(--jp-border); border-radius: var(--radius-sm); padding: 12px 14px; margin-bottom: 8px; display: flex; align-items: center; gap: 12px; cursor: pointer; transition: all .15s; }
.payment-opt.selected { border-color: var(--jp-vert); background: var(--jp-vert-clair); }
.payment-opt:hover { border-color: var(--jp-vert); }
.payment-icon { width: 32px; height: 32px; background: var(--jp-gris); border-radius: var(--radius-sm); display: flex; align-items: center; justify-content: center; font-size: 16px; flex-shrink: 0; }
.payment-opt__title { font-size:14px; font-weight: 600; color: var(--jp-bleu); }
.payment-opt__sub { font-size:14px; color: var(--jp-muted); }
.recap-box { background: var(--jp-blanc); border: 1px solid var(--jp-border); border-radius: var(--radius-lg); padding: 20px; position: sticky; top: 80px; }
.recap-title { font-size: 14px; font-weight: 700; color: var(--jp-bleu); padding-bottom: 12px; border-bottom: 1px solid var(--jp-border); margin-bottom: 14px; }
.recap-row { display: flex; justify-content: space-between; font-size:14px; color: var(--jp-muted); margin-bottom: 8px; }
.recap-row span:first-child { color: var(--jp-bleu); font-weight: 500; }
.recap-total { display: flex; justify-content: space-between; font-size: 16px; font-weight: 700; color: var(--jp-bleu); padding-top: 12px; border-top: 1px solid var(--jp-border); margin: 6px 0 16px; }
.recap-note { font-size:14px; color: var(--jp-muted); text-align: center; margin-bottom: 14px; line-height: 1.5; }
.recap-wa-note { background: var(--jp-vert-clair); border-radius: var(--radius-sm); padding: 10px; font-size:14px; color: var(--jp-vert-fonce); text-align: center; margin-top: 10px; line-height: 1.6; }

/* ---- HERO DIASPORA ---- */
.hero-diaspora { background: var(--jp-bleu); padding: 56px 0; color: white; position: relative; overflow: hidden; }
.hero-diaspora::before { content: ''; position: absolute; right: -80px; top: -80px; width: 340px; height: 340px; background: rgba(245,184,0,.08); border-radius: 50%; }
.hero-diaspora__inner { position: relative; z-index: 1; max-width: 580px; }
.hero-diaspora__badge { display: inline-block; background: var(--jp-jaune); color: var(--jp-bleu); font-size:14px; font-weight: 700; padding: 4px 12px; border-radius: 20px; margin-bottom: 14px; }
.hero-diaspora h1 { font-size: 28px; font-weight: 700; line-height: 1.25; margin-bottom: 10px; }
.hero-diaspora h1 em { color: var(--jp-jaune); font-style: normal; }
.hero-diaspora__sub { font-size: 14px; opacity: .88; line-height: 1.7; margin-bottom: 24px; }
.hero-diaspora__btns { display: flex; gap: 12px; flex-wrap: wrap; }

/* ---- ÉTAPES DIASPORA ---- */
.steps-diaspora { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; }
.step-dia { background: var(--jp-blanc); border: 1px solid var(--jp-border); border-radius: var(--radius-lg); padding: 18px; }
.step-dia__num { width: 30px; height: 30px; border-radius: 50%; background: var(--jp-vert); color: white; display: flex; align-items: center; justify-content: center; font-size:14px; font-weight: 700; margin-bottom: 10px; }
.step-dia__title { font-size:14px; font-weight: 700; color: var(--jp-bleu); margin-bottom: 4px; font-family: var(--font-title); }
.step-dia__text { font-size:14px; color: var(--jp-muted); line-height: 1.6; }

/* ---- FAQ ---- */
.faq-item { background: var(--jp-blanc); border: 1px solid var(--jp-border); border-radius: var(--radius-sm); margin-bottom: 8px; overflow: hidden; }
.faq-q { padding: 14px 18px; font-size:14px; font-weight: 600; color: var(--jp-bleu); display: flex; justify-content: space-between; align-items: center; cursor: pointer; transition: background .15s; }
.faq-q:hover { background: var(--jp-ivoire); }
.faq-q .faq-icon { font-size: 18px; color: var(--jp-vert); transition: transform .2s; }
.faq-a { padding: 0 18px 14px; font-size:14px; color: var(--jp-muted); line-height: 1.7; display: none; }
.faq-a.open { display: block; }

/* ---- CHECKOUT STEPS ---- */
.checkout-steps { background: var(--jp-bleu); padding: 10px 0; }
.checkout-steps__inner { display: flex; gap: 8px; align-items: center; }
.cs { border-radius: 20px; padding: 5px 14px; font-size:14px; font-weight: 600; }
.cs--done { background: var(--jp-jaune); color: var(--jp-bleu); }
.cs--active { background: white; color: var(--jp-bleu); }
.cs--next { background: rgba(255,255,255,.15); color: rgba(255,255,255,.55); }

/* ---- MOBILE RESPONSIVE ---- */
@media (max-width: 768px) {
  .header__nav { display: none; }
  .hamburger { display: flex; }
  .header__nav.mobile-open { display: flex; flex-direction: column; position: fixed; top: 64px; left: 0; right: 0; background: white; padding: 16px; border-bottom: 1px solid var(--jp-border); box-shadow: 0 8px 24px rgba(0,0,0,.12); z-index: 999; }
  .header__nav.mobile-open a { padding: 12px 16px; border-radius: var(--radius-sm); border-bottom: 1px solid var(--jp-border); }
  .hero { padding: 40px 0; }
  .hero h1 { font-size: 22px; }
  .hero__btns { flex-direction: column; }
  .hero__btns .btn { justify-content: center; }
  .parcours-bar__inner { grid-template-columns: 1fr; }
  .parcours-item { border-right: none; border-bottom: 1px solid rgba(255,255,255,.1); }
  .cats-grid { grid-template-columns: repeat(2,1fr); }
  .packs-grid { grid-template-columns: 1fr; }
  .produits-grid { grid-template-columns: repeat(2,1fr); }
  .steps-grid { grid-template-columns: 1fr; }
  .confiance-grid { grid-template-columns: repeat(2,1fr); }
  .diaspora-banner { flex-direction: column; text-align: center; }
  .footer__grid { grid-template-columns: 1fr 1fr; }
  .footer__bottom { flex-direction: column; text-align: center; }
  .fiche-layout { grid-template-columns: 1fr; }
  .checkout-layout { grid-template-columns: 1fr; }
  .steps-diaspora { grid-template-columns: 1fr; }
  .section { padding: 32px 0; }
  .section-title { font-size: 18px; }
  .header__actions .btn--sm { display: none; }
  .btn--wa.header-wa { display: flex; }
  .filters-inner { flex-direction: column; align-items: flex-start; gap: 10px; }
  .checkout-steps__inner { flex-wrap: wrap; }
  .fiche-info__btns { flex-direction: column; }
  .fiche-info__btns .btn { justify-content: center; }
}

@media (max-width: 480px) {
  .footer__grid { grid-template-columns: 1fr; }
  .produits-grid { grid-template-columns: 1fr; }
  .hero h1 { font-size: 20px; }
}

/* ---- PAGE ACTIVE NAV ---- */
.nav-active { color: var(--jp-vert) !important; font-weight: 700 !important; }

/* ---- MOBILE INDICATOR ---- */
.mobile-tag { background: var(--jp-jaune); color: var(--jp-bleu); font-size:14px; font-weight: 700; padding: 2px 8px; border-radius: 10px; display: inline-block; margin-left: 8px; vertical-align: middle; }

/* ---- NAV SERVICES ---- */
.header__nav a.nav--services { color: #0F7A4A; font-weight: 600; }
.header__nav a.nav--services:hover { background: #E6F4ED; }

/* ---- NOTE 48H dans services ---- */
.services-hero h1 { font-family: var(--font-title); }


    .srv-hero{background:linear-gradient(135deg,#0F7A4A 0%,#0a5c37 55%,#17324D 100%);padding:44px 0;color:white;position:relative;overflow:hidden}
    .srv-hero::before{content:'';position:absolute;right:-40px;top:-40px;width:240px;height:240px;background:rgba(245,184,0,.09);border-radius:50%}
    .srv-hero__badge{display:inline-block;background:var(--jp-jaune);color:var(--jp-bleu);font-size:11px;font-weight:700;padding:4px 12px;border-radius:20px;margin-bottom:12px}
    .srv-hero h1{font-size:26px;font-weight:700;line-height:1.25;margin-bottom:10px;position:relative;z-index:1}
    .srv-hero h1 em{color:var(--jp-jaune);font-style:normal}
    .srv-hero__sub{font-size:13px;opacity:.88;line-height:1.7;max-width:500px;position:relative;z-index:1}

    .sep{display:flex;align-items:center;gap:12px;margin:28px 0 20px}
    .sep__line{flex:1;height:1px;background:var(--jp-border)}
    .sep__label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--jp-muted);white-space:nowrap;padding:0 4px}

    .srv-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
    @media(max-width:900px){.srv-grid{grid-template-columns:repeat(2,1fr)}}
    @media(max-width:560px){.srv-grid{grid-template-columns:1fr}}

    .srv-card{background:white;border:1px solid var(--jp-border);border-radius:14px;overflow:hidden;display:flex;flex-direction:column;transition:box-shadow .18s}
    .srv-card:hover{box-shadow:0 6px 20px rgba(23,50,77,.1)}
    .srv-card--muted{opacity:.72}
    .srv-card--muted .srv-footer{background:var(--jp-gris)}

    .srv-head{padding:16px 18px 12px;display:flex;align-items:flex-start;gap:12px}
    .srv-icon{width:46px;height:46px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}
    .ic-vert{background:var(--jp-vert-clair)}
    .ic-bleu{background:var(--jp-bleu-clair)}
    .ic-amber{background:var(--jp-jaune-clair)}
    .ic-rouge{background:var(--jp-rouge-clair)}

    .srv-title{font-size:14px;font-weight:700;color:var(--jp-bleu);margin-bottom:2px;font-family:var(--font-title)}
    .srv-cat{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--jp-muted)}

    .pill{display:inline-flex;align-items:center;gap:3px;font-size:10px;font-weight:700;padding:3px 9px;border-radius:10px;margin-top:5px}
    .pill-launch{background:var(--jp-vert-clair);color:var(--jp-vert)}
    .pill-confirm{background:var(--jp-jaune-clair);color:#B38600}
    .pill-future{background:var(--jp-bleu-clair);color:var(--jp-bleu)}

    .srv-body{padding:0 18px 12px;flex:1}
    .srv-desc{font-size:13px;color:var(--jp-muted);line-height:1.65;margin-bottom:10px}
    .srv-list{list-style:none;font-size:11px;color:var(--jp-muted);line-height:2}
    .srv-list li{padding-left:14px;position:relative}
    .srv-list li::before{content:'·';position:absolute;left:0;color:var(--jp-vert);font-weight:700}

    .warn-box{border-radius:0 6px 6px 0;padding:9px 12px;font-size:11px;line-height:1.6;margin:10px 0;border-left-width:3px;border-left-style:solid}
    .warn-amber{background:var(--jp-jaune-clair);border-color:var(--jp-jaune);color:#7a5900}
    .warn-rouge{background:var(--jp-rouge-clair);border-color:#E94B35;color:#8c2a1c}
    .warn-vert{background:var(--jp-vert-clair);border-color:var(--jp-vert);color:#0a5c37}

    .srv-form{background:var(--jp-ivoire);border:1px dashed var(--jp-border);border-radius:8px;padding:14px;margin-top:8px;display:none}
    .srv-form.open{display:block}
    .frow{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}
    .frow.full{grid-template-columns:1fr}
    @media(max-width:480px){.frow{grid-template-columns:1fr}}
    .ff label{display:block;font-size:11px;font-weight:600;color:var(--jp-bleu);margin-bottom:4px}
    .ff input,.ff select,.ff textarea{width:100%;border:1px solid var(--jp-border);border-radius:6px;padding:8px 11px;font-size:13px;color:var(--jp-bleu);background:white;outline:none;font-family:var(--font-body)}
    .ff input:focus,.ff select:focus{border-color:var(--jp-vert)}
    .ff textarea{resize:none;height:60px}

    .srv-footer{padding:12px 18px 15px;border-top:1px solid var(--jp-border);display:flex;gap:8px;flex-wrap:wrap}
  

body{font-size:16px}.jp-skip{position:absolute;top:-100px;left:10px;z-index:100000;background:white;padding:12px}.jp-skip:focus{top:5px}.header__inner{flex-wrap:wrap}.header__logo img{max-width:190px;object-fit:contain}.hamburger{background:transparent;border:0;padding:6px}.jp-product-photo img{height:190px;width:100%;object-fit:contain;background:white;padding:12px}.jp-product-photo{height:215px;background:white}.jp-format{font-size:14px;color:var(--jp-muted);margin:8px 0}.produit-card__btns{flex-wrap:wrap}.produit-card__btns a{flex:1;min-width:110px}.jp-search{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:20px 0}.jp-search input,.jp-search select{padding:10px;border:1px solid var(--jp-border);border-radius:6px;font:inherit;max-width:100%}.jp-wc .button,.jp-wc button.button{background:var(--jp-vert)!important;color:white!important;border-radius:6px!important;font-size:16px!important;padding:12px 20px!important}.jp-wc input,.jp-wc select,.jp-wc textarea{font:inherit;padding:10px;border:1px solid var(--jp-border);border-radius:6px}.jp-wc .quantity input{max-width:90px}.jp-wc .woocommerce-notices-wrapper{margin:15px 0}.jp-wc img{max-width:100%}.jp-wc .price{color:var(--jp-vert)!important;font-weight:700}.woocommerce form .form-row label{font-size:14px}.woocommerce table.shop_table{font-size:16px}.jp-wc .woocommerce ul.products li.product .woocommerce-loop-product__title{font-size:18px}.faq-q{width:100%;text-align:left;font:inherit;border:0;background:none}.wa-float{position:fixed;bottom:24px;right:24px;background:#0f7a4a;color:white;padding:13px 20px;border-radius:28px;box-shadow:0 4px 14px #0003;z-index:999;display:block!important;font-size:14px!important}details{padding:18px 0;border-bottom:1px solid #ddd}summary{font-weight:650;cursor:pointer}.jp-service-send{margin-top:14px}a:focus-visible,button:focus-visible{outline:3px solid var(--jp-jaune);outline-offset:3px}body.admin-bar .header{top:32px}@media(max-width:782px){body.admin-bar .header{top:46px}.jp-wc .col2-set .col-1,.jp-wc .col2-set .col-2{width:100%;float:none}.jp-search{display:block}.jp-search label,.jp-search input,.jp-search select{display:block;margin-bottom:8px}.jp-wc #customer_details{display:block}.woocommerce div.product div.images,.woocommerce div.product div.summary{float:none;width:100%}.header__inner{gap:8px}.header__logo img{max-width:145px}.header__actions{gap:5px}.header__actions .btn{font-size:12px;padding:7px}.wa-float{bottom:16px;right:12px}}@media(max-width:480px){.produits-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.jp-product-photo img{height:145px}.jp-product-photo{height:165px}.produit-card__body{padding:12px}.produit-card__name{font-size:16px}.produit-card__prix{font-size:18px}.produit-card__btns .btn{font-size:12px}.header__nav.mobile-open{width:100%}.jp-wc{overflow-wrap:anywhere}.section [style*="grid-template-columns:1fr 1fr"]{grid-template-columns:1fr!important}}

/* Recherche globale */
.header__search{display:flex;align-items:center;background:#fff;border:1px solid rgba(0,0,0,.18);border-radius:999px;overflow:hidden}
.header__search input{border:0;outline:0;background:transparent;padding:7px 4px 7px 14px;width:140px;font:inherit;font-size:.85rem}
.header__search button{border:0;background:transparent;cursor:pointer;padding:0 12px 0 6px;font-size:.95rem}
.header__searchlink{display:none;text-decoration:none;font-size:1.15rem;padding:4px 8px}
@media(max-width:1200px){.header__search{display:none}.header__searchlink{display:inline-flex}}
.jp-sr-list{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:8px}
.jp-sr-list a{display:block;padding:12px 16px;background:#fff;border:1px solid rgba(0,0,0,.1);border-radius:10px;text-decoration:none;font-weight:600}
.jp-sr-list a:hover{border-color:#0b7a3e}
.jp-contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px;margin:24px 0}
.jp-contact-card{display:block;padding:22px;background:#fff;border:1px solid rgba(0,0,0,.1);border-radius:14px;text-decoration:none;color:inherit}
.jp-contact-card:hover{border-color:#0b7a3e;box-shadow:0 4px 14px rgba(0,0,0,.08)}
.jp-contact-card .ico{font-size:1.9rem;display:block;margin-bottom:8px}
.jp-contact-card strong{display:block;margin-bottom:4px}
.jp-contact-card p{margin:0;font-size:.92rem;opacity:.8}
.jp-need{list-style:none;padding:0;margin:16px 0;display:grid;gap:10px}
.jp-need a{display:flex;justify-content:space-between;gap:12px;padding:14px 18px;background:#fff;border:1px solid rgba(0,0,0,.1);border-radius:10px;text-decoration:none;font-weight:600}
.jp-need a span{font-weight:400;opacity:.7;font-size:.9rem}
.header__nav a{white-space:nowrap}
@media(max-width:1380px){.header__search input{width:90px}}
@media(max-width:1280px){.header__search{display:none}.header__searchlink{display:inline-flex}}
.jpnav{}
