/* ============================================================
   JP Theme — Bibliothèque de composants
   Design « Site Jonathan Pak » (Marcellus + Jost · forêt/sauge/argile/crème).
   Tout est préfixé .jp- et scopé pour NE PAS impacter les pages
   encore rendues par Elementor pendant la migration.
   ============================================================ */

/* ---------- Layout ---------- */
.jp-wrap   { width:100%; max-width:var(--jp-maxw); margin-inline:auto; padding-inline:var(--jp-gutter); }
.jp-wrap--narrow { max-width:var(--jp-maxw-narrow); }
.jp-section{ padding-block:var(--jp-section-y); }
.jp-section--alt  { background:var(--jp-paper); border-top:1px solid var(--jp-line-soft); border-bottom:1px solid var(--jp-line-soft); }
.jp-section--dark { background:var(--jp-forest); color:var(--jp-on-dark-body); }
.jp-section--ink  { background:var(--jp-forest-deep); color:var(--jp-on-dark-body); }

/* ---------- Typographie ----------
   NB : la typo de base est scopée à NOS composants (.jp-*), jamais au wrapper .jp-main,
   pour ne pas cascader dans le contenu rendu par Elementor pendant la migration. */
.jp-main{ -webkit-font-smoothing:antialiased; overflow-x:clip; }
.jp-page, .jp-prose, .jp-post-list, .jp-archive-head, .jp-article-head,
.jp-site-header, .jp-site-footer, .jp-home{ font-family:var(--jp-body); color:var(--jp-ink); line-height:1.7; }
.jp-h1{ font-family:var(--jp-serif); font-weight:400; font-size:clamp(2.5rem,5.4vw,3.75rem); line-height:1.04; letter-spacing:.005em; }
.jp-h2{ font-family:var(--jp-serif); font-weight:400; font-size:clamp(1.9rem,3.8vw,2.6rem); line-height:1.1; letter-spacing:.005em; }
.jp-h3{ font-family:var(--jp-serif); font-weight:400; font-size:clamp(1.3rem,2.2vw,1.5rem); line-height:1.2; }
.jp-h1 em, .jp-h2 em{ font-style:italic; color:var(--jp-clay); }
.jp-section--dark em, .jp-section--ink em{ color:var(--jp-on-dark-soft); }
.jp-lead{ font-size:clamp(1.06rem,1.5vw,1.16rem); line-height:1.7; color:var(--jp-ink-soft); max-width:480px; }

/* eyebrow : label argile, capitales, tracking large (sans filet) */
.jp-eyebrow{ display:inline-flex; align-items:center; gap:.7rem; font-family:var(--jp-ui); font-weight:400; font-size:.75rem; letter-spacing:.32em; text-transform:uppercase; color:var(--jp-clay-ink); }
.jp-eyebrow--center{ display:flex; justify-content:center; }
.jp-section--dark .jp-eyebrow, .jp-section--ink .jp-eyebrow{ color:#D2B48C; }
.jp-eyebrow .jp-dot{ display:block; width:4px; height:4px; border-radius:50%; background:var(--jp-line-btn); }

/* ---------- Prose (corps d'article / contenu re-skinné) ---------- */
.jp-prose{ color:var(--jp-ink-soft); }
.jp-prose > * + *{ margin-top:1.1rem; }
.jp-prose h2{ font-family:var(--jp-serif); font-weight:400; color:var(--jp-forest); font-size:clamp(1.6rem,3vw,1.9rem); margin-top:2.6rem; line-height:1.25; }
.jp-prose h3{ font-family:var(--jp-serif); font-weight:400; color:var(--jp-ink); font-size:1.3rem; margin-top:1.9rem; }
.jp-prose a{ color:var(--jp-forest); text-decoration:underline; text-underline-offset:3px; text-decoration-thickness:1px; }
.jp-prose strong{ color:var(--jp-ink); }
.jp-prose blockquote{ font-family:var(--jp-serif); font-style:normal; font-weight:400; font-size:clamp(1.5rem,2.9vw,1.75rem); line-height:1.45; color:var(--jp-forest); border:0; margin:2.4rem 0; padding:0; }
.jp-prose img{ display:block; max-width:100%; height:auto; border-radius:var(--jp-r-md); }
.jp-prose{ overflow-wrap:break-word; }
.jp-prose table{ display:block; width:100%; max-width:100%; overflow-x:auto; }
.jp-prose pre{ overflow-x:auto; }

/* ---------- Boutons (design : rectangulaire arrondi, forêt plein) ---------- */
.jp-cta{ display:inline-flex; align-items:center; justify-content:center; gap:.5rem; font-family:var(--jp-ui); font-weight:500; font-size:.95rem; letter-spacing:.04em; line-height:1; padding:16px 28px; border-radius:9px; border:0; cursor:pointer; text-decoration:none; transition:transform .18s ease, box-shadow .18s ease, background .18s ease, border-color .18s ease, color .18s ease; }
.jp-cta--primary{ color:var(--jp-cream); background:var(--jp-forest); }
.jp-cta--primary:hover{ transform:translateY(-2px); box-shadow:var(--jp-shadow-cta); }
.jp-cta--ghost{ color:var(--jp-forest); background:transparent; border:1.5px solid var(--jp-line-btn); padding:14.5px 26px; }
.jp-cta--ghost:hover{ transform:translateY(-2px); border-color:var(--jp-forest); }
.jp-cta--on-dark{ color:var(--jp-forest); background:var(--jp-cream); }
.jp-cta--on-dark:hover{ transform:translateY(-2px); box-shadow:0 18px 40px -22px rgba(0,0,0,.45); }
.jp-cta:focus-visible{ outline:3px solid var(--jp-forest); outline-offset:3px; }
.jp-cta--on-dark:focus-visible{ outline-color:var(--jp-cream); }
@media (max-width:560px){ .jp-cta{ width:100%; } }
/* Le kit Elementor colore tous les <a> (.elementor-kit-1207 a = 0,0,1,1) → forcer la couleur
   du TEXTE des CTA au-dessus (ancêtre + a.classe = 0,0,2,1), sans !important. */
.jp-hdr a.jp-cta--primary, .jp-home a.jp-cta--primary, .jp-site-footer a.jp-cta--primary, .jp-single a.jp-cta--primary{ color:var(--jp-cream); }
.jp-hdr a.jp-cta--ghost, .jp-home a.jp-cta--ghost, .jp-site-footer a.jp-cta--ghost, .jp-single a.jp-cta--ghost{ color:var(--jp-forest); }
.jp-home a.jp-cta--on-dark, .jp-site-footer a.jp-cta--on-dark, .jp-single a.jp-cta--on-dark{ color:var(--jp-forest); }

/* ---------- Carte générique ---------- */
.jp-card{ background:var(--jp-paper); border:1px solid var(--jp-line); border-radius:var(--jp-r-md); padding:38px 32px; }
.jp-card .jp-h3{ color:var(--jp-ink); }

/* ---------- Chips de réassurance ---------- */
.jp-chips{ display:flex; flex-wrap:wrap; gap:.8rem 1.4rem; }
.jp-chips span{ display:inline-flex; align-items:center; gap:.5rem; font-family:var(--jp-ui); font-weight:400; font-size:.92rem; color:var(--jp-ink-soft); }
.jp-chips span::before{ content:""; width:7px; height:7px; border-radius:var(--jp-pill); background:var(--jp-sage); }
.jp-section--dark .jp-chips span, .jp-section--ink .jp-chips span{ color:var(--jp-on-dark-body); }

/* ---------- Étapes numérotées (générique) ---------- */
.jp-numbered{ display:grid; gap:20px; }
.jp-numbered-item{ display:grid; grid-template-columns:64px 1fr; gap:18px; align-items:start; border-top:1px solid var(--jp-line); padding-top:24px; }
.jp-num{ font-family:var(--jp-serif); font-weight:400; font-size:2.5rem; line-height:1; color:var(--jp-clay); font-variant-numeric:tabular-nums; }

/* ---------- FAQ (accordéon natif) ---------- */
.jp-faq details{ background:var(--jp-paper); border:1px solid var(--jp-line); border-radius:var(--jp-r-sm); padding:4px 22px; margin-bottom:12px; }
.jp-faq summary{ list-style:none; cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:1rem; font-family:var(--jp-ui); font-weight:500; color:var(--jp-ink); padding:18px 0; }
.jp-faq summary::-webkit-details-marker{ display:none; }
.jp-faq summary::after{ content:"+"; color:var(--jp-clay); font-size:1.3rem; line-height:1; }
.jp-faq details[open] summary::after{ content:"\2212"; }
.jp-faq details > *:not(summary){ color:var(--jp-ink-soft); padding-bottom:18px; }

/* ============================================================
   CHROME — En-tête (design badge JP)
   ============================================================ */

/* barre d'annonce */
.jp-topbar{ background:var(--jp-forest); color:var(--jp-on-dark-soft); text-align:center; padding:9px 20px; font-family:var(--jp-ui); font-weight:400; font-size:.72rem; line-height:1.4; letter-spacing:.16em; text-transform:uppercase; }
div.jp-topbar a{ color:#fff; text-decoration:underline; text-underline-offset:2px; }

.jp-hdr{ position:sticky; top:0; z-index:50; background:var(--jp-cream); background:color-mix(in srgb, var(--jp-cream) 86%, transparent); -webkit-backdrop-filter:saturate(140%) blur(10px); backdrop-filter:saturate(140%) blur(10px); border-bottom:1px solid var(--jp-line); }
.jp-hdr__bar{ display:flex; align-items:center; justify-content:space-between; gap:clamp(1.5rem,3vw,1.75rem); padding-block:16px; min-height:72px; }

/* lockup de marque : badge + nom + sous-titre */
.jp-hdr a.jp-hdr__brand{ flex:0 0 auto; display:inline-flex; align-items:center; gap:14px; text-decoration:none; white-space:nowrap; }
.jp-hdr__badge{ width:46px; height:46px; border-radius:11px; background:var(--jp-forest); display:flex; align-items:center; justify-content:center; flex:none; }
.jp-hdr__badge::after{ content:"JP"; font-family:var(--jp-serif); font-size:21px; line-height:1; color:var(--jp-cream); }
.jp-hdr__lockup{ display:flex; flex-direction:column; }
.jp-hdr__name{ display:block; font-family:var(--jp-serif); font-size:1.125rem; line-height:1; letter-spacing:.02em; color:var(--jp-ink); transition:color .18s ease; }
.jp-hdr__sub{ display:block; font-family:var(--jp-ui); font-weight:400; font-size:.4375rem; line-height:1; letter-spacing:.28em; text-transform:uppercase; color:var(--jp-ink-muted); margin-top:5px; }
.jp-hdr a.jp-hdr__brand:hover .jp-hdr__name{ color:var(--jp-forest); }

/* nav desktop + bouton RDV */
.jp-hdr__nav{ display:flex; align-items:center; gap:clamp(1.4rem,2.4vw,2rem); }
.jp-menu{ display:flex; align-items:center; gap:clamp(1.4rem,2.4vw,2rem); list-style:none; margin:0; padding:0; }
.jp-menu > li{ position:relative; }
.jp-hdr .jp-menu a{ font-family:var(--jp-ui); font-weight:400; font-size:.8125rem; letter-spacing:.03em; color:var(--jp-ink-soft); text-decoration:none; white-space:nowrap; transition:color .18s ease; }
.jp-hdr .jp-menu > li > a{ display:inline-flex; align-items:center; gap:.4rem; padding-block:1.4rem; }
.jp-hdr .jp-menu > li > a:hover{ color:var(--jp-forest); }
.jp-menu .menu-item-has-children > a::after{ content:""; width:6px; height:6px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(45deg); margin-top:-3px; opacity:.5; transition:transform .2s ease, margin .2s ease; }
.jp-menu > li:hover.menu-item-has-children > a::after{ transform:rotate(225deg); margin-top:2px; }
.jp-menu .sub-menu{ position:absolute; top:100%; left:-16px; min-width:248px; background:var(--jp-paper); border:1px solid var(--jp-line); border-radius:14px; box-shadow:var(--jp-shadow-card); padding:8px; margin:0; list-style:none; opacity:0; visibility:hidden; transform:translateY(8px); transition:opacity .2s ease, transform .2s ease; }
.jp-menu > li:hover > .sub-menu, .jp-menu > li:focus-within > .sub-menu{ opacity:1; visibility:visible; transform:translateY(0); }
.jp-hdr .jp-menu .sub-menu a{ display:block; padding:.62rem .85rem; border-radius:10px; color:var(--jp-ink-soft); }
.jp-hdr .jp-menu .sub-menu a:hover{ background:var(--jp-cream); color:var(--jp-forest); }
.jp-hdr .jp-menu .current-menu-item > a, .jp-hdr .jp-menu .current-menu-parent > a, .jp-hdr .jp-menu .current_page_item > a{ color:var(--jp-forest); }
.jp-hdr .jp-menu > .current-menu-item > a, .jp-hdr .jp-menu > .current-menu-parent > a{ border-bottom:1.5px solid var(--jp-clay); padding-bottom:calc(1.4rem - 3px); }
.jp-hdr__cta{ flex:0 0 auto; padding:12px 20px; font-size:.8125rem; border-radius:8px; }

/* burger */
.jp-hdr__burger{ display:none; flex-direction:column; gap:5px; width:42px; height:42px; align-items:center; justify-content:center; background:transparent; border:0; cursor:pointer; padding:0; }
/* le kit Elementor stylise tous les <button> (fond teal + padding) → on neutralise avec une spécificité supérieure */
.jp-hdr button.jp-hdr__burger{ background:transparent; border:0; box-shadow:none; border-radius:0; padding:0; min-height:0; -webkit-appearance:none; appearance:none; }
.jp-hdr button.jp-hdr__burger:hover, .jp-hdr button.jp-hdr__burger:focus, .jp-hdr button.jp-hdr__burger:active{ background:transparent; box-shadow:none; outline:none; }
.jp-hdr button.jp-hdr__burger:focus-visible{ background:transparent; box-shadow:none; outline:3px solid var(--jp-forest); outline-offset:2px; }
.jp-hdr__burger span{ display:block; width:24px; height:2px; background:var(--jp-ink); border-radius:2px; transition:transform .25s ease, opacity .2s ease; }
.jp-hdr.is-open .jp-hdr__burger span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.jp-hdr.is-open .jp-hdr__burger span:nth-child(2){ opacity:0; }
.jp-hdr.is-open .jp-hdr__burger span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

/* panneau mobile */
.jp-hdr__mobile{ display:none; }
@media (max-width:920px){
	/* le backdrop-filter crée un containing block pour les fixed → casse le panneau plein écran. On le retire en mobile. */
	.jp-hdr{ background:var(--jp-cream); -webkit-backdrop-filter:none; backdrop-filter:none; }
	.jp-hdr__nav{ display:none; }
	.jp-hdr__burger{ display:flex; }
	.jp-hdr__bar{ min-height:60px; }
	/* panneau plein écran (forêt foncé) ; ouverture en fondu (pas de translateX qui débordait à droite) */
	.jp-hdr__mobile{ display:block; position:fixed; inset:60px 0 0 0; background:var(--jp-forest-deep); border-top:2px solid var(--jp-sage); padding:3.4rem var(--jp-gutter) 3rem; opacity:0; visibility:hidden; pointer-events:none; transform:translateY(-6px); transition:opacity .25s ease, transform .25s ease, visibility .25s; overflow:hidden auto; z-index:55; }
	.jp-hdr.is-open .jp-hdr__mobile{ opacity:1; visibility:visible; pointer-events:auto; transform:translateY(0); }
	.jp-hdr__mobile button.jp-hdr__close{ position:absolute; top:.4rem; right:calc(var(--jp-gutter) - .4rem); width:44px; height:44px; display:grid; place-items:center; background:transparent; border:0; box-shadow:none; padding:0; -webkit-appearance:none; appearance:none; color:var(--jp-cream); font-family:var(--jp-body); font-size:2.3rem; line-height:1; cursor:pointer; }
	.jp-hdr__mobile button.jp-hdr__close:hover{ color:var(--jp-sage); }
	.jp-mmenu, .jp-mmenu .sub-menu{ list-style:none; margin:0; padding:0; }
	.jp-hdr .jp-mmenu a{ display:block; font-family:var(--jp-serif); font-size:1.3rem; color:var(--jp-cream); text-decoration:none; padding:.7rem 0; border-bottom:1px solid rgba(247,245,239,.12); transition:color .18s ease; }
	.jp-hdr .jp-mmenu a:hover{ color:var(--jp-sage); }
	.jp-mmenu .sub-menu{ margin:0 0 .6rem 1rem; }
	.jp-hdr .jp-mmenu .sub-menu a{ font-family:var(--jp-ui); font-size:1rem; color:var(--jp-on-dark-body); border-bottom:0; padding:.5rem 0; }
	.jp-hdr .jp-mmenu .sub-menu a:hover{ color:var(--jp-sage); }
	.jp-hdr .jp-mmenu .current-menu-item > a, .jp-hdr .jp-mmenu .current-menu-parent > a{ color:var(--jp-clay); }
	.jp-hdr__mcta{ display:inline-flex; margin-top:1.8rem; }
}

/* ============================================================
   CHROME — Pied de page (design forêt foncé)
   ============================================================ */
.jp-site-footer{ background:var(--jp-forest-deep); }
.jp-site-footer__top{ display:flex; gap:48px; justify-content:space-between; flex-wrap:wrap; padding-block:56px; }
.jp-site-footer__brand{ max-width:320px; }
.jp-site-footer__lockup{ display:flex; align-items:center; gap:13px; margin-bottom:18px; }
.jp-site-footer__badge{ width:44px; height:44px; border-radius:10px; background:var(--jp-cream); display:flex; align-items:center; justify-content:center; flex:none; }
.jp-site-footer__badge::after{ content:"JP"; font-family:var(--jp-serif); font-size:20px; line-height:1; color:var(--jp-forest-deep); }
.jp-site-footer__name{ display:block; font-family:var(--jp-serif); font-size:1.0625rem; line-height:1; color:var(--jp-cream); }
.jp-site-footer__sub{ display:block; font-family:var(--jp-ui); font-weight:400; font-size:.4375rem; line-height:1; letter-spacing:.28em; text-transform:uppercase; color:var(--jp-on-dark-mut); margin-top:5px; }
.jp-site-footer__tagline{ font-family:var(--jp-body); font-size:.8125rem; line-height:1.7; color:var(--jp-on-dark-mut); margin:0; }
.jp-site-footer__cols{ display:flex; gap:64px; flex-wrap:wrap; }
.jp-site-footer__coltitle{ font-family:var(--jp-ui); font-weight:400; font-size:.6875rem; letter-spacing:.2em; text-transform:uppercase; color:var(--jp-on-dark-mut); margin-bottom:18px; }
.jp-site-footer__menu{ display:flex; flex-direction:column; gap:12px; list-style:none; margin:0; padding:0; }
.jp-site-footer__menu a, .jp-site-footer__col a{ font-family:var(--jp-body); font-size:.875rem; color:var(--jp-on-dark-soft); text-decoration:none; transition:color .2s ease; }
.jp-site-footer__menu a:hover, .jp-site-footer__col a:hover{ color:var(--jp-sage); }
.jp-site-footer__bottom{ border-top:1px solid var(--jp-line-dark2); }
.jp-site-footer__legal{ padding-block:20px; font-family:var(--jp-body); font-size:.75rem; line-height:1.7; color:#A7B6A8; letter-spacing:.02em; margin:0; }
@media (max-width:600px){
	.jp-site-footer__top{ gap:36px; padding-block:44px; }
	.jp-site-footer__cols{ gap:40px; }
}

/* ---------- Listes & pagination ---------- */
.jp-post-list{ display:grid; gap:24px; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); }
.jp-pagination{ margin-top:2.5rem; font-family:var(--jp-ui); }
.jp-pagination a, .jp-pagination .current{ padding:.4rem .8rem; border-radius:var(--jp-r-sm); }
.jp-pagination .current{ background:var(--jp-forest); color:#fff; }

/* ============================================================
   Article / single (re-skin natif) — hérite des nouveaux tokens
   ============================================================ */
.jp-article-head{ max-width:var(--jp-maxw-narrow); margin-inline:auto; margin-bottom:2rem; }
.jp-page.jp-wrap .jp-prose{ max-width:var(--jp-maxw-narrow); margin-inline:auto; }

.jp-single{ max-width:var(--jp-maxw-narrow); padding-block:clamp(3rem,6vw,5rem); }
.jp-single__head{ text-align:center; margin-bottom:1.6rem; }
.jp-single__eyebrow{ justify-content:center; margin-bottom:1.1rem; }
.jp-single__eyebrow a{ color:inherit; text-decoration:none; }
.jp-single__title{ max-width:24ch; margin-inline:auto; }
.jp-single__meta{ display:flex; flex-wrap:wrap; gap:.3rem 0; justify-content:center; align-items:center; font-family:var(--jp-ui); font-size:.9rem; color:var(--jp-ink-muted); margin-top:1.3rem; }
.jp-single__meta span + span::before{ content:"·"; margin:0 .7rem; color:var(--jp-sage); }
.jp-single__meta .jp-rt{ font-variant-numeric:tabular-nums; }
.jp-single__hero{ margin:2.2rem 0; }
.jp-single__hero img{ display:block; width:100%; height:auto; border-radius:var(--jp-r-lg); box-shadow:var(--jp-shadow-card); }
.jp-single__body{ font-size:1.125rem; line-height:1.85; color:#3F4A41; }
.jp-single__foot{ margin-top:3rem; border-top:1px solid var(--jp-line); padding-top:2.2rem; display:grid; gap:2.4rem; }

/* drop-cap éditoriale */
.jp-single__body > p:first-of-type::first-letter{ float:left; font-family:var(--jp-serif); font-weight:400; font-size:3.7em; line-height:.7; padding:.06em .14em 0 0; color:var(--jp-clay); }

/* barre de progression */
.jp-progress{ position:fixed; inset:0 0 auto 0; height:3px; background:transparent; z-index:60; pointer-events:none; }
.jp-progress__bar{ display:block; height:100%; width:0; background:linear-gradient(90deg,var(--jp-sage),var(--jp-clay)); }

/* figures & pullquotes embarqués */
.jp-prose figure{ margin:2.4rem auto; text-align:center; }
.jp-prose figure svg{ max-width:100%; height:auto; }
.jp-prose figure figcaption{ font-family:var(--jp-ui); font-size:.85rem; color:var(--jp-ink-muted); margin-top:.7rem; }
.jp-prose .wp-block-pullquote{ border-top:1px solid var(--jp-line-card); border-bottom:1px solid var(--jp-line-card); padding:2rem 0; text-align:center; }
.jp-prose .wp-block-pullquote blockquote, .jp-prose figure blockquote{ margin:0; }

/* partage */
.jp-share{ display:flex; flex-wrap:wrap; align-items:center; gap:.7rem; }
.jp-share__label{ font-family:var(--jp-ui); font-weight:500; font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; color:var(--jp-ink-muted); margin-right:.2rem; }
.jp-share__btn{ font-family:var(--jp-ui); font-weight:400; font-size:.9rem; color:var(--jp-forest); text-decoration:none; border:1.5px solid var(--jp-line); border-radius:var(--jp-pill); padding:.5rem 1.1rem; transition:border-color .18s ease, background .18s ease; }
.jp-share__btn:hover{ border-color:var(--jp-sage); background:var(--jp-cream); }

/* encart auteur */
.jp-author{ display:flex; gap:1.2rem; align-items:flex-start; background:var(--jp-tint); border:1px solid var(--jp-line-soft); border-radius:var(--jp-r-md); padding:24px; }
.jp-author__avatar{ border-radius:var(--jp-pill); width:72px; height:72px; flex:0 0 auto; }
.jp-author__name{ font-family:var(--jp-serif); font-size:1.2rem; color:var(--jp-ink); }
.jp-author__bio{ margin-top:.4rem; color:var(--jp-ink-soft); font-size:.98rem; line-height:1.6; }

/* encart partenaire (divulgation) */
.jp-partner-note{ display:flex; gap:.85rem; align-items:flex-start; margin:1.8rem auto 0; max-width:var(--jp-maxw-narrow); background:var(--jp-tint); border:1px solid var(--jp-line-soft); border-left:3px solid var(--jp-clay); border-radius:var(--jp-r-sm); padding:15px 20px; }
.jp-partner-note__icon{ flex:0 0 auto; width:30px; height:30px; display:grid; place-items:center; border-radius:var(--jp-pill); background:#fff; border:1px solid var(--jp-line-soft); color:var(--jp-clay); }
.jp-partner-note__t{ display:block; font-family:var(--jp-ui); font-weight:500; font-size:.92rem; color:var(--jp-ink); }
.jp-partner-note__d{ display:block; font-size:.85rem; color:var(--jp-ink-muted); margin-top:.25rem; line-height:1.55; }

/* table des matières (auto) */
.jp-toc{ margin:2.2rem 0; background:var(--jp-paper); border:1px solid var(--jp-line); border-radius:var(--jp-r-md); padding:20px 26px; }
.jp-toc__title{ font-family:var(--jp-serif); font-size:1.18rem; color:var(--jp-ink); margin:0 0 .55rem; }
.jp-toc__list{ list-style:none; margin:0; padding:0; }
.jp-toc__list li{ margin:.32rem 0; }
.jp-toc__h3{ padding-left:1.2rem; }
.jp-toc__list a{ font-family:var(--jp-ui); font-size:.95rem; color:var(--jp-ink-soft); text-decoration:none; border-bottom:1px solid transparent; transition:color .15s ease, border-color .15s ease; }
.jp-toc__list a:hover{ color:var(--jp-forest); border-bottom-color:var(--jp-clay); }

/* séparateur décoratif */
.jp-flourish{ display:flex; align-items:center; justify-content:center; gap:.85rem; margin:2.8rem 0 0; }
.jp-flourish::before, .jp-flourish::after{ content:""; height:1px; width:46px; background:var(--jp-clay); }
.jp-flourish span{ width:5px; height:5px; border-radius:var(--jp-pill); background:var(--jp-clay); }

/* lead-cta + CTA bespoke (Ma Fabrique à Recettes) */
.jp-lead-cta{ text-align:center; margin:2.6rem 0 0; }
.jp-single__cta{ margin:0; }
.jp-cta-card{ margin-top:2.6rem; background:var(--jp-forest); border-radius:var(--jp-r-xl); padding:clamp(28px,4vw,44px); text-align:center; }
.jp-cta-card img{ display:block; width:100%; max-width:520px; height:auto; margin:0 auto 1.3rem; border-radius:var(--jp-r-md); }
.jp-cta-card__t{ font-family:var(--jp-serif); font-weight:400; font-size:clamp(1.5rem,2.6vw,1.875rem); color:var(--jp-cream); margin:0 0 1.4rem; }
.jp-cta-card p{ color:var(--jp-on-dark-body); }

/* liens du single : forcer la couleur design par-dessus le lien du kit Elementor
   (.elementor-kit-1207 a, spécificité 0,0,1,1) — ici 0,0,4,1, sans !important. */
.jp-single a:not(.jp-cta):not(.jp-share__btn):not(.jp-cta-card__media){ color:var(--jp-forest); text-decoration-color:var(--jp-clay); }
.jp-single a:not(.jp-cta):not(.jp-share__btn):not(.jp-cta-card__media):hover{ color:var(--jp-forest-mid); }

/* mobile : la box partenaire passe SOUS le sommaire (desktop inchangé) */
@media (max-width:768px){
	.jp-single{ display:flex; flex-direction:column; }
	.jp-single__head{ order:1; } .jp-single__hero{ order:2; } .jp-toc{ order:3; }
	.jp-partner-note{ order:4; margin-top:1.6rem; } .jp-single__body{ order:5; }
	.jp-lead-cta{ order:6; } .jp-flourish{ order:7; } .jp-single__foot{ order:8; }
}

/* ============================================================
   PAGE D'ACCUEIL — sections (design system appliqué à la stratégie)
   ============================================================ */
.jp-home{ background:var(--jp-cream); overflow-x:hidden; }
.jp-home section{ scroll-margin-top:90px; }

/* — Hero — */
.jp-hero{ max-width:var(--jp-maxw); margin:0 auto; padding:clamp(3rem,6vw,4.5rem) var(--jp-gutter) clamp(3.5rem,7vw,5.5rem); display:flex; gap:clamp(2.5rem,5vw,4rem); align-items:center; flex-wrap:wrap; }
.jp-hero__text{ flex:1 1 420px; min-width:300px; }
.jp-hero__title{ margin:1.6rem 0 0; color:var(--jp-forest); }
.jp-hero .jp-lead{ margin:1.6rem 0 0; }
.jp-hero__actions{ display:flex; gap:14px; flex-wrap:wrap; align-items:center; margin-top:2.2rem; }
.jp-hero__assure{ display:flex; align-items:center; gap:18px; margin-top:2.6rem; }
.jp-hero__dots{ display:flex; gap:8px; flex:none; }
.jp-hero__dots span{ display:block; width:11px; height:11px; border-radius:50%; }
.jp-hero__dots span:nth-child(1){ background:var(--jp-forest); }
.jp-hero__dots span:nth-child(2){ background:var(--jp-sage); }
.jp-hero__dots span:nth-child(3){ background:var(--jp-clay); }
.jp-hero__assure p{ font-family:var(--jp-body); font-size:.875rem; line-height:1.5; color:var(--jp-ink-muted); margin:0; }
.jp-hero__media{ flex:1 1 360px; min-width:280px; }
.jp-hero__figure{ position:relative; border-radius:var(--jp-r-lg); overflow:hidden; box-shadow:var(--jp-shadow-card); aspect-ratio:5/6; }
.jp-hero__figure img{ display:block; width:100%; height:100%; object-fit:cover; }
.jp-hero__card{ position:absolute; bottom:22px; left:22px; right:22px; background:var(--jp-forest); background:color-mix(in srgb, var(--jp-forest) 92%, transparent); border-radius:12px; padding:18px 22px; display:flex; align-items:center; gap:16px; }
.jp-hero__card-badge{ width:42px; height:42px; border-radius:9px; background:var(--jp-cream); display:flex; align-items:center; justify-content:center; flex:none; }
.jp-hero__card-badge::after{ content:"JP"; font-family:var(--jp-serif); font-size:19px; color:var(--jp-forest); }
.jp-hero__card b{ display:block; font-family:var(--jp-body); font-weight:400; font-size:.875rem; line-height:1.3; color:var(--jp-cream); }
.jp-hero__card small{ display:block; font-family:var(--jp-body); font-size:.6875rem; line-height:1.3; color:var(--jp-on-dark-body); margin-top:3px; }

/* — section header (eyebrow + titre centré) — */
.jp-sec-head{ text-align:center; max-width:560px; margin:0 auto clamp(2.5rem,5vw,3.5rem); }
.jp-sec-head .jp-eyebrow{ margin-bottom:18px; }
.jp-sec-head--left{ text-align:left; margin-inline:0; }

/* — Piliers — */
.jp-piliers .jp-wrap{ padding-block:var(--jp-section-y); }
.jp-grid-3{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.jp-pilier{ background:var(--jp-cream); border-radius:var(--jp-r-md); padding:38px 32px; }
.jp-pilier__dot{ display:block; width:30px; height:30px; border-radius:50%; margin-bottom:26px; }
.jp-pilier:nth-child(1) .jp-pilier__dot{ background:var(--jp-forest); }
.jp-pilier:nth-child(2) .jp-pilier__dot{ background:var(--jp-sage); }
.jp-pilier:nth-child(3) .jp-pilier__dot{ background:var(--jp-clay); }
.jp-pilier h3{ font-family:var(--jp-serif); font-weight:400; font-size:1.5rem; line-height:1.2; color:var(--jp-ink); margin:0 0 14px; }
.jp-pilier p{ font-family:var(--jp-body); font-size:.9375rem; line-height:1.7; color:var(--jp-ink-soft); margin:0; }

/* — Parcours (forêt) — */
.jp-parcours .jp-wrap{ padding-block:clamp(5rem,9vw,6rem); }
.jp-grid-steps{ display:grid; grid-template-columns:repeat(2,1fr); gap:48px 64px; }
.jp-step{ display:flex; gap:24px; border-top:1px solid var(--jp-line-dark); padding-top:26px; }
.jp-step__num{ font-family:var(--jp-serif); font-weight:400; font-size:2.5rem; line-height:1; color:var(--jp-clay); flex:none; }
.jp-step h3{ font-family:var(--jp-serif); font-weight:400; font-size:1.3125rem; line-height:1.2; color:var(--jp-cream); margin:0 0 10px; }
.jp-step p{ font-family:var(--jp-body); font-size:.9375rem; line-height:1.7; color:var(--jp-on-dark-body); margin:0; }

/* — À propos — */
.jp-apropos{ max-width:var(--jp-maxw); margin:0 auto; padding:clamp(5rem,9vw,6rem) var(--jp-gutter); display:flex; gap:clamp(2.5rem,5vw,4rem); align-items:center; flex-wrap:wrap; }
.jp-apropos__media{ flex:1 1 320px; min-width:280px; }
.jp-apropos__figure{ border-radius:var(--jp-r-lg); overflow:hidden; aspect-ratio:4/5; box-shadow:var(--jp-shadow-card); }
.jp-apropos__figure img{ display:block; width:100%; height:100%; object-fit:cover; }
.jp-apropos__text{ flex:1 1 420px; min-width:300px; }
.jp-apropos__text h2{ margin:18px 0 24px; color:var(--jp-forest); }
.jp-apropos__text p{ font-family:var(--jp-body); font-size:1rem; line-height:1.8; color:var(--jp-ink-soft); margin:0 0 18px; }
.jp-stats{ display:flex; gap:48px; flex-wrap:wrap; margin-top:18px; }
.jp-stats__n{ font-family:var(--jp-serif); font-weight:400; font-size:2.375rem; line-height:1; color:var(--jp-forest); }
.jp-stats__l{ font-family:var(--jp-body); font-size:.75rem; line-height:1.4; letter-spacing:.14em; text-transform:uppercase; color:var(--jp-ink-muted); margin-top:8px; }

/* — Citation — */
.jp-quote{ text-align:center; max-width:880px; margin:0 auto; padding:clamp(4rem,7vw,5.25rem) var(--jp-gutter); }
.jp-quote__mark{ font-family:var(--jp-serif); font-size:4rem; line-height:.5; color:var(--jp-clay); }
.jp-quote blockquote{ font-family:var(--jp-serif); font-weight:400; font-size:clamp(1.4rem,3vw,1.75rem); line-height:1.5; color:var(--jp-forest); margin:18px 0 30px; }
.jp-quote__cite{ font-family:var(--jp-body); font-size:.8125rem; letter-spacing:.14em; text-transform:uppercase; color:var(--jp-ink-muted); font-style:normal; }

/* — Formules — */
.jp-formules{ max-width:var(--jp-maxw); margin:0 auto; padding:clamp(5rem,9vw,6rem) var(--jp-gutter); }
.jp-formules__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; align-items:stretch; }
.jp-formules__grid--two{ grid-template-columns:repeat(2,1fr); max-width:780px; margin-inline:auto; }
.jp-formule{ background:var(--jp-paper); border:1px solid var(--jp-line); border-radius:var(--jp-r-lg); padding:40px 32px; display:flex; flex-direction:column; }
.jp-formule--feature{ background:var(--jp-forest); border-color:var(--jp-forest); box-shadow:var(--jp-shadow-cta); }
.jp-formule__flag{ font-family:var(--jp-ui); font-size:.625rem; letter-spacing:.22em; text-transform:uppercase; color:#C7A079; margin-bottom:14px; }
.jp-formule h3{ font-family:var(--jp-serif); font-weight:400; font-size:1.5rem; line-height:1.2; color:var(--jp-ink); margin:0 0 8px; }
.jp-formule__sub{ font-family:var(--jp-body); font-size:.875rem; line-height:1.6; color:var(--jp-ink-muted); margin:0 0 28px; }
.jp-formule__list{ display:flex; flex-direction:column; gap:13px; margin:0 0 32px; padding:0; list-style:none; }
.jp-formule__list li{ display:flex; gap:11px; align-items:flex-start; font-family:var(--jp-body); font-size:.875rem; line-height:1.5; color:var(--jp-ink-soft); }
.jp-formule__list li::before{ content:""; flex:none; width:7px; height:7px; border-radius:50%; background:var(--jp-sage); margin-top:7px; }
.jp-formule .jp-cta{ margin-top:auto; width:100%; }
.jp-formule--feature h3{ color:var(--jp-cream); }
.jp-formule--feature .jp-formule__sub{ color:var(--jp-on-dark-body); }
.jp-formule--feature .jp-formule__list li{ color:var(--jp-on-dark-soft); }
.jp-formule--feature .jp-formule__list li::before{ background:var(--jp-clay); }

/* — CTA final — */
.jp-final{ background:var(--jp-cream); }
.jp-final__wrap{ max-width:var(--jp-maxw); margin:0 auto; padding:0 var(--jp-gutter) clamp(5rem,9vw,6rem); }
.jp-final__card{ background:var(--jp-forest); border-radius:var(--jp-r-xl); padding:clamp(3rem,6vw,4.5rem) clamp(1.5rem,4vw,3rem); text-align:center; }
.jp-final__card h2{ color:var(--jp-cream); margin:0 0 18px; }
.jp-final__card p{ font-family:var(--jp-body); font-size:1rem; line-height:1.7; color:var(--jp-on-dark-body); max-width:480px; margin:0 auto 36px; }

/* — Responsive accueil — */
@media (max-width:900px){
	.jp-grid-steps{ grid-template-columns:1fr; gap:0; }
	.jp-step{ padding-block:26px 0; }
}
@media (max-width:780px){
	.jp-hero{ flex-direction:column; align-items:stretch; }
	.jp-hero__media{ order:-1; }
	.jp-hero__figure{ aspect-ratio:4/3; max-height:60vh; }
	.jp-grid-3{ grid-template-columns:1fr; gap:18px; }
	.jp-formules__grid, .jp-formules__grid--two{ grid-template-columns:1fr; }
	.jp-apropos{ flex-direction:column; align-items:stretch; }
	.jp-apropos__figure{ aspect-ratio:16/10; }
}
@media (max-width:480px){ .jp-br-hero{ display:none; } }

/* préférence « mouvement réduit » — scopé au markup natif (n'impacte pas Elementor) */
@media (prefers-reduced-motion: reduce){
	.jp-main *, .jp-hdr *, .jp-site-footer *, .jp-topbar *, .jp-progress__bar{ transition-duration:.01ms !important; animation-duration:.01ms !important; scroll-behavior:auto !important; }
}
